From 55d16e8781602f1e6542e3b4bd6d38c7d2250975 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 25 Mar 2026 10:58:16 +0100 Subject: [PATCH 001/208] Remove false-positive `command-injection` sink model for `step-security/harden-runner` The `allowed-endpoints` input only flows to `execFileSync("echo", [content])` (no shell) and `fs.writeFileSync` (JSON config), neither of which is a command injection vector. Fixes https://github.com/github/codeql/issues/21568 --- .../ql/lib/ext/manual/step-security_harden-runner.model.yml | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 actions/ql/lib/ext/manual/step-security_harden-runner.model.yml diff --git a/actions/ql/lib/ext/manual/step-security_harden-runner.model.yml b/actions/ql/lib/ext/manual/step-security_harden-runner.model.yml deleted file mode 100644 index 129c8beb020..00000000000 --- a/actions/ql/lib/ext/manual/step-security_harden-runner.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/actions-all - extensible: actionsSinkModel - data: - - ["step-security/harden-runner", "*", "input.allowed-endpoints", "command-injection", "manual"] From e8075455913cfcfc05dfb02d882396c08ed24c8d Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 26 Mar 2026 09:08:34 +0100 Subject: [PATCH 002/208] Remove false positive `docker/build-push-action` `context` sink model The `context` input is passed as a single array element through `docker/actions-toolkit` and `@actions/exec` all the way to `child_process.spawn()`, which does not perform shell splitting. No code injection is possible. Fixes https://github.com/github/codeql/issues/21428 --- .../ql/lib/ext/manual/docker_build-push-action.model.yml | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 actions/ql/lib/ext/manual/docker_build-push-action.model.yml diff --git a/actions/ql/lib/ext/manual/docker_build-push-action.model.yml b/actions/ql/lib/ext/manual/docker_build-push-action.model.yml deleted file mode 100644 index 116c231c30a..00000000000 --- a/actions/ql/lib/ext/manual/docker_build-push-action.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/actions-all - extensible: actionsSinkModel - data: - - ["docker/build-push-action", "*", "input.context", "code-injection", "manual"] \ No newline at end of file From e0bc18c22866b5808817754bd820d1da53478214 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 26 Mar 2026 09:11:25 +0100 Subject: [PATCH 003/208] Add changenote for false positive sink model removals --- .../change-notes/2026-03-26-remove-false-positive-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 actions/ql/lib/change-notes/2026-03-26-remove-false-positive-sinks.md diff --git a/actions/ql/lib/change-notes/2026-03-26-remove-false-positive-sinks.md b/actions/ql/lib/change-notes/2026-03-26-remove-false-positive-sinks.md new file mode 100644 index 00000000000..20ccc6d6c02 --- /dev/null +++ b/actions/ql/lib/change-notes/2026-03-26-remove-false-positive-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Removed false positive injection sink models for the `context` input of `docker/build-push-action` and the `allowed-endpoints` input of `step-security/harden-runner`. From 10fddc7b960879d188e58cdf02a9a532cd844cea Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 26 Mar 2026 11:40:11 +0000 Subject: [PATCH 004/208] Add barriers and barrier guards to MaD format explanations --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 10 +++++++++- .../code/csharp/dataflow/internal/ExternalFlow.qll | 11 +++++++++-- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 10 +++++++++- .../ql/lib/semmle/code/java/dataflow/ExternalFlow.qll | 11 +++++++++-- .../frameworks/data/internal/ApiGraphModels.qll | 7 ++++++- .../frameworks/data/internal/ApiGraphModels.qll | 7 ++++++- .../ruby/frameworks/data/internal/ApiGraphModels.qll | 7 ++++++- .../codeql/rust/dataflow/internal/ModelsAsData.qll | 11 +++++++++-- 8 files changed, 63 insertions(+), 11 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 7cf3b937ac5..1ec501a85dd 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -10,6 +10,10 @@ * `namespace; type; subtypes; name; signature; ext; input; kind` * - Summaries: * `namespace; type; subtypes; name; signature; ext; input; output; kind` + * - Barriers: + * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` + * - BarrierGuards: + * `namespace; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` * * The interpretation of a row is similar to API-graphs with a left-to-right * reading. @@ -86,7 +90,11 @@ * value, and * - flow from the _second_ indirection of the 0th argument to the first * indirection of the return value, etc. - * 8. The `kind` column is a tag that can be referenced from QL to determine to + * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * under which the guard accepts or blocks flow. It can be one of "true" or + * "false". In the future "no-exception", "not-zero", "null", "not-null" may be + * supported. + * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a 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 024e9cf119d..2b4264fc432 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -11,6 +11,10 @@ * `namespace; type; subtypes; name; signature; ext; input; kind; provenance` * - Summaries: * `namespace; type; subtypes; name; signature; ext; input; output; kind; provenance` + * - Barriers: + * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` + * - BarrierGuards: + * `namespace; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` * - Neutrals: * `namespace; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -69,14 +73,17 @@ * - "Field[f]": Selects the contents of field `f`. * - "Property[p]": Selects the contents of property `p`. * - * 8. The `kind` column is a tag that can be referenced from QL to determine to + * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * under which the guard accepts or blocks flow. It can be one of "true" or + * "false", "no-exception", "not-zero", "null", "not-null". + * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a * globally applicable value-preserving step. For neutrals the kind can be `summary`, * `source` or `sink` to indicate that the neutral is neutral with respect to * flow (no summary), source (is not a source) or sink (is not a sink). - * 9. The `provenance` column is a tag to indicate the origin and verification of a model. + * 10. The `provenance` column is a tag to indicate the origin and verification of a model. * The format is {origin}-{verification} or just "manual" where the origin describes * the origin of the model and verification describes how the model has been verified. * Some examples are: diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index e1170aeda24..3812b3df449 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -11,6 +11,10 @@ * `package; type; subtypes; name; signature; ext; input; kind; provenance` * - Summaries: * `package; type; subtypes; name; signature; ext; input; output; kind; provenance` + * - Barriers: + * `package; type; subtypes; name; signature; ext; output; kind; provenance` + * - BarrierGuards: + * `package; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` * - Neutrals: * `package; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -78,7 +82,11 @@ * - "MapValue": Selects a value in a map. * - "Dereference": Selects the value referenced by a pointer. * - * 8. The `kind` column is a tag that can be referenced from QL to determine to + * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * under which the guard accepts or blocks flow. It can be one of "true" or + * "false". In the future "no-exception", "not-zero", "null", "not-null" may be + * supported. + * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 1536c81aa08..45db15897f7 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -11,6 +11,10 @@ * `package; type; subtypes; name; signature; ext; input; kind; provenance` * - Summaries: * `package; type; subtypes; name; signature; ext; input; output; kind; provenance` + * - Barriers: + * `package; type; subtypes; name; signature; ext; output; kind; provenance` + * - BarrierGuards: + * `package; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` * - Neutrals: * `package; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -69,14 +73,17 @@ * in the given range. The range is inclusive at both ends. * - "ReturnValue": Selects the return value of a call to the selected element. * - "Element": Selects the collection elements of the selected element. - * 8. The `kind` column is a tag that can be referenced from QL to determine to + * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * under which the guard accepts or blocks flow. It can be one of "true" or + * "false", "no-exception", "not-zero", "null", "not-null". + * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a * globally applicable value-preserving step. For neutrals the kind can be `summary`, * `source` or `sink` to indicate that the neutral is neutral with respect to * flow (no summary), source (is not a source) or sink (is not a sink). - * 9. The `provenance` column is a tag to indicate the origin and verification of a model. + * 10. The `provenance` column is a tag to indicate the origin and verification of a model. * The format is {origin}-{verification} or just "manual" where the origin describes * the origin of the model and verification describes how the model has been verified. * Some examples are: diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll index 60fe40e716d..34bf3267522 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll @@ -10,6 +10,10 @@ * `type, path, kind` * - Summaries: * `type, path, input, output, kind` + * - Barriers: + * `type, path, kind` + * - BarrierGuards: + * `type, path, branch, kind` * - Types: * `type1, type2, path` * @@ -42,7 +46,8 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `kind` column is a tag that can be referenced from QL to determine to + * 4. The `branch` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll index 60fe40e716d..34bf3267522 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll @@ -10,6 +10,10 @@ * `type, path, kind` * - Summaries: * `type, path, input, output, kind` + * - Barriers: + * `type, path, kind` + * - BarrierGuards: + * `type, path, branch, kind` * - Types: * `type1, type2, path` * @@ -42,7 +46,8 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `kind` column is a tag that can be referenced from QL to determine to + * 4. The `branch` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll index 60fe40e716d..34bf3267522 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll @@ -10,6 +10,10 @@ * `type, path, kind` * - Summaries: * `type, path, input, output, kind` + * - Barriers: + * `type, path, kind` + * - BarrierGuards: + * `type, path, branch, kind` * - Types: * `type1, type2, path` * @@ -42,7 +46,8 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `kind` column is a tag that can be referenced from QL to determine to + * 4. The `branch` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index 4d28dd8de81..a21d50ed8ad 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -9,6 +9,10 @@ * `path; input; kind; provenance` * - Summaries: * `path; input; output; kind; provenance` + * - Barriers: + * `path; output; kind; provenance` + * - BarrierGuards: + * `path; input; branch; kind; provenance` * * The interpretation of a row is similar to API-graphs with a left-to-right * reading. @@ -34,12 +38,15 @@ * - `Field[i]`: the `i`th element of a tuple. * - `Reference`: the referenced value. * - `Future`: the value being computed asynchronously. - * 3. The `kind` column is a tag that can be referenced from QL to determine to + * 3. The `branch` column of barrier guard models specifies which branch of the + * guard is blocking flow. It can be "true" or "false". In the future + * "no-exception", "not-zero", "null", "not-null" may be supported. + * 4. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a * globally applicable value-preserving step. - * 4. The `provenance` column is mainly used internally, and should be set to `"manual"` for + * 5. The `provenance` column is mainly used internally, and should be set to `"manual"` for * all custom models. */ From 61b13d570272fe63c193a1b6b2158cf20a959883 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 26 Mar 2026 11:40:42 +0000 Subject: [PATCH 005/208] C++: Add provenance to MaD format explanation --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 1ec501a85dd..b36c37d8114 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -99,6 +99,15 @@ * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a * globally applicable value-preserving step. + * 10. The `provenance` column is a tag to indicate the origin and verification of a model. + * The format is {origin}-{verification} or just "manual" where the origin describes + * the origin of the model and verification describes how the model has been verified. + * Some examples are: + * - "df-generated": The model has been generated by the model generator tool. + * - "df-manual": The model has been generated by the model generator and verified by a human. + * - "manual": The model has been written by hand. + * This information is used in a heuristic for dataflow analysis to determine, if a + * model or source code should be used for determining flow. */ import cpp From 805d2ec46cbe4c5aae54c817f59811f1595b250b Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 26 Mar 2026 11:41:59 +0000 Subject: [PATCH 006/208] Go: Add provenance to MaD format explanation --- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 3812b3df449..23e08ce5cbf 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -91,6 +91,15 @@ * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a * globally applicable value-preserving step. + * 10. The `provenance` column is a tag to indicate the origin and verification of a model. + * The format is {origin}-{verification} or just "manual" where the origin describes + * the origin of the model and verification describes how the model has been verified. + * Some examples are: + * - "df-generated": The model has been generated by the model generator tool. + * - "df-manual": The model has been generated by the model generator and verified by a human. + * - "manual": The model has been written by hand. + * This information is used in a heuristic for dataflow analysis to determine, if a + * model or source code should be used for determining flow. */ overlay[local?] module; From df842665b7156aa20de94972d39698a74326462b Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 26 Mar 2026 11:42:13 +0000 Subject: [PATCH 007/208] Rust: Add neutrals to MaD format explanation --- rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index a21d50ed8ad..a43495ac784 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -13,6 +13,9 @@ * `path; output; kind; provenance` * - BarrierGuards: * `path; input; branch; kind; provenance` + * - Neutrals: + * `package; type; name; signature; kind; provenance` + * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). * * The interpretation of a row is similar to API-graphs with a left-to-right * reading. From e680d49c93334f38134c1e7da000e0e18db42fc3 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 26 Mar 2026 12:08:54 +0000 Subject: [PATCH 008/208] Shared: document extensible relations rather than CSV --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 2 +- .../lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll | 2 +- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 2 +- java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index b36c37d8114..df1765ec07c 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -3,7 +3,7 @@ * * Provides classes and predicates for dealing with flow models specified in CSV format. * - * The CSV specification has the following columns: + * The extensible relations have the following columns: * - Sources: * `namespace; type; subtypes; name; signature; ext; output; kind` * - Sinks: 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 2b4264fc432..95b9578e4f3 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -4,7 +4,7 @@ * Provides classes and predicates for dealing with MaD flow models specified * in data extensions and CSV format. * - * The CSV specification has the following columns: + * The extensible relations have the following columns: * - Sources: * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` * - Sinks: diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 23e08ce5cbf..05379c620fb 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -4,7 +4,7 @@ * Provides classes and predicates for dealing with flow models specified * in data extensions and CSV format. * - * The CSV specification has the following columns: + * The extensible relations have the following columns: * - Sources: * `package; type; subtypes; name; signature; ext; output; kind; provenance` * - Sinks: diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 45db15897f7..8f6d1a7855a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -4,7 +4,7 @@ * Provides classes and predicates for dealing with flow models specified * in data extensions and CSV format. * - * The CSV specification has the following columns: + * The extensible relations have the following columns: * - Sources: * `package; type; subtypes; name; signature; ext; output; kind; provenance` * - Sinks: From 886a16bfad664c67da64f4136a3079009a38bd11 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 26 Mar 2026 12:09:11 +0000 Subject: [PATCH 009/208] C++: Add provenance column --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index df1765ec07c..ed40d391917 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -5,11 +5,11 @@ * * The extensible relations have the following columns: * - Sources: - * `namespace; type; subtypes; name; signature; ext; output; kind` + * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` * - Sinks: - * `namespace; type; subtypes; name; signature; ext; input; kind` + * `namespace; type; subtypes; name; signature; ext; input; kind; provenance` * - Summaries: - * `namespace; type; subtypes; name; signature; ext; input; output; kind` + * `namespace; type; subtypes; name; signature; ext; input; output; kind; provenance` * - Barriers: * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` * - BarrierGuards: From 5451424e751d102f492d4f7298518afd20cdf6e6 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 27 Mar 2026 09:46:20 +0000 Subject: [PATCH 010/208] Rust: Fix columns for neutrals --- rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index a43495ac784..cc7dd9963ea 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -14,7 +14,7 @@ * - BarrierGuards: * `path; input; branch; kind; provenance` * - Neutrals: - * `package; type; name; signature; kind; provenance` + * `path; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). * * The interpretation of a row is similar to API-graphs with a left-to-right From b3285c6ae2274aaa456a2fe152945f38bd16f8af Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 27 Mar 2026 11:35:22 +0000 Subject: [PATCH 011/208] Make description of `acceptingvalue` column clearer --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 5 ++--- .../semmle/code/csharp/dataflow/internal/ExternalFlow.qll | 4 ++-- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 5 ++--- java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index ed40d391917..3fe9f6aaedf 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -91,9 +91,8 @@ * - flow from the _second_ indirection of the 0th argument to the first * indirection of the return value, etc. * 8. The `acceptingvalue` column of barrier guard models specifies the condition - * under which the guard accepts or blocks flow. It can be one of "true" or - * "false". In the future "no-exception", "not-zero", "null", "not-null" may be - * supported. + * under which the guard blocks flow. It can be one of "true" or "false". In + * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries 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 95b9578e4f3..17cdcc1bf0b 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -74,8 +74,8 @@ * - "Property[p]": Selects the contents of property `p`. * * 8. The `acceptingvalue` column of barrier guard models specifies the condition - * under which the guard accepts or blocks flow. It can be one of "true" or - * "false", "no-exception", "not-zero", "null", "not-null". + * under which the guard blocks flow. It can be one of "true" or "false". In + * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 05379c620fb..0ad28bac533 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -83,9 +83,8 @@ * - "Dereference": Selects the value referenced by a pointer. * * 8. The `acceptingvalue` column of barrier guard models specifies the condition - * under which the guard accepts or blocks flow. It can be one of "true" or - * "false". In the future "no-exception", "not-zero", "null", "not-null" may be - * supported. + * under which the guard blocks flow. It can be one of "true" or "false". In + * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 8f6d1a7855a..6ad4a5938a3 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -74,8 +74,8 @@ * - "ReturnValue": Selects the return value of a call to the selected element. * - "Element": Selects the collection elements of the selected element. * 8. The `acceptingvalue` column of barrier guard models specifies the condition - * under which the guard accepts or blocks flow. It can be one of "true" or - * "false", "no-exception", "not-zero", "null", "not-null". + * under which the guard blocks flow. It can be one of "true" or "false". In + * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries From 60f9ce4ce7485269027caefacd2fa5ee73099d90 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 20 Mar 2026 13:55:58 +0000 Subject: [PATCH 012/208] Python: Port UnreachableCode.ql --- python/ql/src/Statements/UnreachableCode.ql | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/python/ql/src/Statements/UnreachableCode.ql b/python/ql/src/Statements/UnreachableCode.ql index 55582ed2f06..200e073cff6 100644 --- a/python/ql/src/Statements/UnreachableCode.ql +++ b/python/ql/src/Statements/UnreachableCode.ql @@ -13,7 +13,7 @@ */ import python -private import LegacyPointsTo +private import semmle.python.ApiGraphs predicate typing_import(ImportingStmt is) { exists(Module m | @@ -34,11 +34,7 @@ predicate unique_yield(Stmt s) { /** Holds if `contextlib.suppress` may be used in the same scope as `s` */ predicate suppression_in_scope(Stmt s) { exists(With w | - w.getContextExpr() - .(Call) - .getFunc() - .(ExprWithPointsTo) - .pointsTo(Value::named("contextlib.suppress")) and + w.getContextExpr() = API::moduleImport("contextlib").getMember("suppress").getACall().asExpr() and w.getScope() = s.getScope() ) } From 0ea80ac184013820dbd2da2e5b4ba24c8ea92f3d Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 20 Feb 2026 15:03:15 +0000 Subject: [PATCH 013/208] Python: Port UnusedExceptionObject.ql Depending on whether other queries depend on this, we may end up moving the exception utility functions to a more central location. --- .../src/Statements/UnusedExceptionObject.ql | 46 +++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/python/ql/src/Statements/UnusedExceptionObject.ql b/python/ql/src/Statements/UnusedExceptionObject.ql index 9a6a3650b7e..890cdc963ac 100644 --- a/python/ql/src/Statements/UnusedExceptionObject.ql +++ b/python/ql/src/Statements/UnusedExceptionObject.ql @@ -12,11 +12,49 @@ */ import python -private import LegacyPointsTo +private import semmle.python.dataflow.new.internal.DataFlowDispatch +private import semmle.python.dataflow.new.internal.Builtins +private import semmle.python.ApiGraphs -from Call call, ClassValue ex +/** + * Holds if `cls` is a user-defined exception class, i.e. it transitively + * extends one of the builtin exception base classes. + */ +predicate isUserDefinedExceptionClass(Class cls) { + cls.getABase() = + API::builtin(["BaseException", "Exception"]).getAValueReachableFromSource().asExpr() + or + isUserDefinedExceptionClass(getADirectSuperclass(cls)) +} + +/** + * Gets the name of a builtin exception class. + */ +string getBuiltinExceptionName() { + result = Builtins::getBuiltinName() and + ( + result.matches("%Error") or + result.matches("%Exception") or + result.matches("%Warning") or + result = + ["GeneratorExit", "KeyboardInterrupt", "StopIteration", "StopAsyncIteration", "SystemExit"] + ) +} + +/** + * Holds if `call` is an instantiation of an exception class. + */ +predicate isExceptionInstantiation(Call call) { + exists(Class cls | + classTracker(cls).asExpr() = call.getFunc() and + isUserDefinedExceptionClass(cls) + ) + or + call.getFunc() = API::builtin(getBuiltinExceptionName()).getAValueReachableFromSource().asExpr() +} + +from Call call where - call.getFunc().(ExprWithPointsTo).pointsTo(ex) and - ex.getASuperType() = ClassValue::exception() and + isExceptionInstantiation(call) and exists(ExprStmt s | s.getValue() = call) select call, "Instantiating an exception, but not raising it, has no effect." From a7fdc4b5435e38cffb68fa425cbdec62939091bb Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 27 Mar 2026 22:15:45 +0000 Subject: [PATCH 014/208] Replace `acceptingvalue` with `acceptingValue` --- .../semmle/code/cpp/dataflow/ExternalFlow.qll | 16 +++++++-------- .../internal/ExternalFlowExtensions.qll | 2 +- .../cpp/dataflow/internal/FlowSummaryImpl.qll | 4 ++-- .../csharp/dataflow/internal/ExternalFlow.qll | 18 ++++++++--------- .../internal/ExternalFlowExtensions.qll | 2 +- .../dataflow/internal/FlowSummaryImpl.qll | 4 ++-- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 18 ++++++++--------- .../internal/ExternalFlowExtensions.qll | 2 +- .../go/dataflow/internal/FlowSummaryImpl.qll | 4 ++-- .../code/java/dataflow/ExternalFlow.qll | 18 ++++++++--------- .../internal/ExternalFlowExtensions.qll | 2 +- .../dataflow/internal/FlowSummaryImpl.qll | 4 ++-- .../rust/dataflow/internal/DataFlowImpl.qll | 6 +++--- .../dataflow/internal/FlowSummaryImpl.qll | 20 +++++++++---------- shared/mad/codeql/mad/static/ModelsAsData.qll | 12 +++++------ .../dataflow/internal/FlowSummaryImpl.qll | 2 +- 16 files changed, 67 insertions(+), 67 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 3fe9f6aaedf..e97b6d044d7 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -13,7 +13,7 @@ * - Barriers: * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` * - BarrierGuards: - * `namespace; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` + * `namespace; type; subtypes; name; signature; ext; input; acceptingValue; kind; provenance` * * The interpretation of a row is similar to API-graphs with a left-to-right * reading. @@ -90,7 +90,7 @@ * value, and * - flow from the _second_ indirection of the 0th argument to the first * indirection of the return value, etc. - * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * 8. The `acceptingValue` column of barrier guard models specifies the condition * under which the guard blocks flow. It can be one of "true" or "false". In * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to @@ -1089,13 +1089,13 @@ private module Cached { private predicate barrierGuardChecks(IRGuardCondition g, Expr e, boolean gv, TKindModelPair kmp) { exists( - SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, + SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingValue, string kind, string model | - isBarrierGuardNode(n, acceptingvalue, kind, model) and + isBarrierGuardNode(n, acceptingValue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + gv = convertAcceptingValue(acceptingValue).asBooleanValue() and n.asNode().(Private::ArgumentNode).getCall().asCallInstruction() = g ) } @@ -1112,14 +1112,14 @@ private module Cached { ) { exists( SourceSinkInterpretationInput::InterpretNode interpretNode, - Public::AcceptingValue acceptingvalue, string kind, string model, int indirectionIndex, + Public::AcceptingValue acceptingValue, string kind, string model, int indirectionIndex, Private::ArgumentNode arg | - isBarrierGuardNode(interpretNode, acceptingvalue, kind, model) and + isBarrierGuardNode(interpretNode, acceptingValue, kind, model) and arg = interpretNode.asNode() and arg.asIndirectExpr(indirectionIndex) = e and kmp = MkKindModelPairIntPair(TMkPair(kind, model), indirectionIndex) and - gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + gv = convertAcceptingValue(acceptingValue).asBooleanValue() and arg.getCall().asCallInstruction() = g ) } 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 1a572c221d9..22c74c2aa71 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll @@ -33,7 +33,7 @@ extensible predicate barrierModel( */ 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 + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** 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 cce1b80e7fc..d91dc41febe 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -162,13 +162,13 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { exists( string package, string type, boolean subtypes, string name, string signature, string ext | - barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) 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 17cdcc1bf0b..f8cec8c4d9f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -14,7 +14,7 @@ * - Barriers: * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` * - BarrierGuards: - * `namespace; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` + * `namespace; type; subtypes; name; signature; ext; input; acceptingValue; kind; provenance` * - Neutrals: * `namespace; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -73,7 +73,7 @@ * - "Field[f]": Selects the contents of field `f`. * - "Property[p]": Selects the contents of property `p`. * - * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * 8. The `acceptingValue` column of barrier guard models specifies the condition * under which the guard blocks flow. It can be one of "true" or "false". In * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to @@ -237,11 +237,11 @@ module ModelValidation { result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) or - exists(string acceptingvalue | - barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and - invalidAcceptingValue(acceptingvalue) and + exists(string acceptingValue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingValue, _, _, _) and + invalidAcceptingValue(acceptingValue) and result = - "Unrecognized accepting value description \"" + acceptingvalue + + "Unrecognized accepting value description \"" + acceptingValue + "\" in barrier guard model." ) } @@ -489,13 +489,13 @@ private module Cached { private predicate barrierGuardChecks(Guard g, Expr e, GuardValue gv, TKindModelPair kmp) { exists( - SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingvalue, string kind, + SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingValue, string kind, string model | - isBarrierGuardNode(n, acceptingvalue, kind, model) and + isBarrierGuardNode(n, acceptingValue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) + gv = convertAcceptingValue(acceptingValue) | g.(Call).getAnArgument() = e or g.(QualifiableExpr).getQualifier() = e ) 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 3461f0a5186..cd438ece284 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll @@ -33,7 +33,7 @@ extensible predicate barrierModel( */ 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 + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** 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 6f9b621ff40..4b79ed5feca 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -253,13 +253,13 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + 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 | - barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, + barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance, model) and e = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 0ad28bac533..f0dc0cf0ca2 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -14,7 +14,7 @@ * - Barriers: * `package; type; subtypes; name; signature; ext; output; kind; provenance` * - BarrierGuards: - * `package; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` + * `package; type; subtypes; name; signature; ext; input; acceptingValue; kind; provenance` * - Neutrals: * `package; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -82,7 +82,7 @@ * - "MapValue": Selects a value in a map. * - "Dereference": Selects the value referenced by a pointer. * - * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * 8. The `acceptingValue` column of barrier guard models specifies the condition * under which the guard blocks flow. It can be one of "true" or "false". In * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to @@ -266,11 +266,11 @@ module ModelValidation { result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) or - exists(string acceptingvalue | - barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and - invalidAcceptingValue(acceptingvalue) and + exists(string acceptingValue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingValue, _, _, _) and + invalidAcceptingValue(acceptingValue) and result = - "Unrecognized accepting value description \"" + acceptingvalue + + "Unrecognized accepting value description \"" + acceptingValue + "\" in barrier guard model." ) } @@ -478,13 +478,13 @@ private module Cached { private predicate barrierGuardChecks(DataFlow::Node g, Expr e, boolean gv, TKindModelPair kmp) { exists( - SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, + SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingValue, string kind, string model | - isBarrierGuardNode(n, acceptingvalue, kind, model) and + isBarrierGuardNode(n, acceptingValue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) + gv = convertAcceptingValue(acceptingValue) | g.asExpr().(CallExpr).getAnArgument() = e // TODO: qualifier? ) diff --git a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll index 5d43cf674c1..ab2a241e14a 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll @@ -35,7 +35,7 @@ extensible predicate barrierModel( */ 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 + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index 240665bd492..ff727286c3b 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -174,13 +174,13 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { exists( string package, string type, boolean subtypes, string name, string signature, string ext | - barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 6ad4a5938a3..a6a9347ca03 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -14,7 +14,7 @@ * - Barriers: * `package; type; subtypes; name; signature; ext; output; kind; provenance` * - BarrierGuards: - * `package; type; subtypes; name; signature; ext; input; acceptingvalue; kind; provenance` + * `package; type; subtypes; name; signature; ext; input; acceptingValue; kind; provenance` * - Neutrals: * `package; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -73,7 +73,7 @@ * in the given range. The range is inclusive at both ends. * - "ReturnValue": Selects the return value of a call to the selected element. * - "Element": Selects the collection elements of the selected element. - * 8. The `acceptingvalue` column of barrier guard models specifies the condition + * 8. The `acceptingValue` column of barrier guard models specifies the condition * under which the guard blocks flow. It can be one of "true" or "false". In * the future "no-exception", "not-zero", "null", "not-null" may be supported. * 9. The `kind` column is a tag that can be referenced from QL to determine to @@ -365,11 +365,11 @@ module ModelValidation { result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) or - exists(string acceptingvalue | - barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and - invalidAcceptingValue(acceptingvalue) and + exists(string acceptingValue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingValue, _, _, _) and + invalidAcceptingValue(acceptingValue) and result = - "Unrecognized accepting value description \"" + acceptingvalue + + "Unrecognized accepting value description \"" + acceptingValue + "\" in barrier guard model." ) } @@ -590,13 +590,13 @@ private module Cached { private predicate barrierGuardChecks(Guard g, Expr e, GuardValue gv, TKindModelPair kmp) { exists( - SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingvalue, string kind, + SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingValue, string kind, string model | - isBarrierGuardNode(n, acceptingvalue, kind, model) and + isBarrierGuardNode(n, acceptingValue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) + gv = convertAcceptingValue(acceptingValue) | g.(Call).getAnArgument() = e or g.(MethodCall).getQualifier() = e ) 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 be474ad4535..3c6b003876d 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -35,7 +35,7 @@ extensible predicate barrierModel( */ 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 + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** 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 64fa30c7d91..453b7ccae11 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -282,7 +282,7 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { exists( @@ -290,7 +290,7 @@ module SourceSinkInterpretationInput implements SourceOrSinkElement baseBarrier, string originalInput | barrierGuardModel(namespace, type, subtypes, name, signature, ext, originalInput, - acceptingvalue, kind, provenance, model) and + acceptingValue, kind, provenance, model) and baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseBarrier and input = originalInput diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 27773758fc4..7c1fdd8cf78 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -1183,12 +1183,12 @@ private module Cached { exists( FlowSummaryImpl::Public::BarrierGuardElement b, FlowSummaryImpl::Private::SummaryComponentStack stack, - FlowSummaryImpl::Public::AcceptingValue acceptingvalue, string kind, string model + FlowSummaryImpl::Public::AcceptingValue acceptingValue, string kind, string model | - FlowSummaryImpl::Private::barrierGuardSpec(b, stack, acceptingvalue, kind, model) and + FlowSummaryImpl::Private::barrierGuardSpec(b, stack, acceptingValue, kind, model) and e = FlowSummaryImpl::StepsInput::getSinkNode(b, stack.headOfSingleton()).asExpr() and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) and + gv = convertAcceptingValue(acceptingValue) and g = b.getCall() ) } diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 8b25c54bfa0..0c6e42d9066 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -2189,10 +2189,10 @@ 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 `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. */ @@ -2242,10 +2242,10 @@ module Make< /** * Holds if an external barrier guard specification exists for `n` with input - * specification `input`, accepting value `acceptingvalue`, and kind `kind`. + * specification `input`, accepting value `acceptingValue`, and kind `kind`. */ predicate barrierGuardElement( - Element n, string input, AcceptingValue acceptingvalue, string kind, + Element n, string input, AcceptingValue acceptingValue, string kind, Provenance provenance, string model ); @@ -2371,11 +2371,11 @@ module Make< } private predicate barrierGuardElementRef( - InterpretNode ref, SourceSinkAccessPath input, AcceptingValue acceptingvalue, string kind, + InterpretNode ref, SourceSinkAccessPath input, AcceptingValue acceptingValue, string kind, string model ) { exists(SourceOrSinkElement e | - barrierGuardElement(e, input, acceptingvalue, kind, _, model) and + barrierGuardElement(e, input, acceptingValue, kind, _, model) and if inputNeedsReferenceExt(input.getToken(0)) then e = ref.getCallTarget() else e = ref.asElement() @@ -2518,10 +2518,10 @@ module Make< * given kind in a MaD flow model. */ predicate isBarrierGuardNode( - InterpretNode node, AcceptingValue acceptingvalue, string kind, string model + InterpretNode node, AcceptingValue acceptingValue, string kind, string model ) { exists(InterpretNode ref, SourceSinkAccessPath input | - barrierGuardElementRef(ref, input, acceptingvalue, kind, model) and + barrierGuardElementRef(ref, input, acceptingValue, kind, model) and interpretInput(input, input.getNumToken(), ref, node) ) } diff --git a/shared/mad/codeql/mad/static/ModelsAsData.qll b/shared/mad/codeql/mad/static/ModelsAsData.qll index 84daaa9b6c8..4b58a23186a 100644 --- a/shared/mad/codeql/mad/static/ModelsAsData.qll +++ b/shared/mad/codeql/mad/static/ModelsAsData.qll @@ -31,7 +31,7 @@ signature module ExtensionsSig { */ predicate barrierGuardModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); @@ -142,14 +142,14 @@ module ModelsAsData { or exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance + string input, string acceptingValue, string kind, string provenance | Extensions::barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, - acceptingvalue, kind, provenance, madId) + acceptingValue, kind, provenance, madId) | model = "Barrier Guard: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + - signature + "; " + ext + "; " + input + "; " + acceptingvalue + "; " + kind + "; " + + signature + "; " + ext + "; " + input + "; " + acceptingValue + "; " + kind + "; " + provenance ) or @@ -241,12 +241,12 @@ module ModelsAsData { /** 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 + 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 + acceptingValue, kind, provenance, madId) and model = "MaD:" + madId.toString() ) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll index c1ddb7f781f..3a096fe3d57 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll @@ -168,7 +168,7 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Element n, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { none() From c5ef1f6342bbc04bf34f95abc397df1089617d2c Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 20 Mar 2026 13:56:07 +0000 Subject: [PATCH 015/208] Python: Port UseOfExit.ql --- python/ql/src/Statements/UseOfExit.ql | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/python/ql/src/Statements/UseOfExit.ql b/python/ql/src/Statements/UseOfExit.ql index 437ff93b537..2310a839f67 100644 --- a/python/ql/src/Statements/UseOfExit.ql +++ b/python/ql/src/Statements/UseOfExit.ql @@ -12,10 +12,12 @@ */ import python -private import LegacyPointsTo +private import semmle.python.ApiGraphs from CallNode call, string name -where call.getFunction().(ControlFlowNodeWithPointsTo).pointsTo(Value::siteQuitter(name)) +where + name = ["exit", "quit"] and + call = API::builtin(name).getACall().asCfgNode() select call, "The '" + name + "' site.Quitter object may not exist if the 'site' module is not loaded or is modified." From 37aac059640e804b4b7550279d5f2bfa1812c211 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 27 Mar 2026 22:39:10 +0000 Subject: [PATCH 016/208] Replace `branch` with `acceptingValue` --- .../data/internal/ApiGraphModels.qll | 26 +++++++++---------- .../internal/ApiGraphModelsExtensions.qll | 6 ++--- .../data/internal/ApiGraphModels.qll | 26 +++++++++---------- .../internal/ApiGraphModelsExtensions.qll | 6 ++--- .../data/internal/ApiGraphModels.qll | 26 +++++++++---------- .../internal/ApiGraphModelsExtensions.qll | 6 ++--- .../rust/dataflow/internal/ModelsAsData.qll | 21 ++++++++------- .../dataflow/internal/FlowSummaryImpl.qll | 16 ++++++------ 8 files changed, 67 insertions(+), 66 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll index 34bf3267522..155fb4b7c78 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll @@ -13,7 +13,7 @@ * - Barriers: * `type, path, kind` * - BarrierGuards: - * `type, path, branch, kind` + * `type, path, acceptingValue, kind` * - Types: * `type1, type2, path` * @@ -46,7 +46,7 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `branch` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 4. The `acceptingValue` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries @@ -360,11 +360,11 @@ private predicate barrierModel(string type, string path, string kind, string mod /** Holds if a barrier guard model exists for the given parameters. */ private predicate barrierGuardModel( - string type, string path, string branch, string kind, string model + string type, string path, string acceptingValue, string kind, string model ) { // No deprecation adapter for barrier models, they were not around back then. exists(QlBuiltins::ExtensionId madId | - Extensions::barrierGuardModel(type, path, branch, kind, madId) and + Extensions::barrierGuardModel(type, path, acceptingValue, kind, madId) and model = "MaD:" + madId.toString() ) } @@ -788,16 +788,16 @@ module ModelOutput { } /** - * Holds if a barrier model contributed `barrier` with the given `kind` for the given `branch`. + * Holds if a barrier model contributed `barrier` with the given `kind` for the given `acceptingValue`. */ cached - API::Node getABarrierGuardNode(string kind, boolean branch, string model) { - exists(string type, string path, string branch_str | - branch = true and branch_str = "true" + API::Node getABarrierGuardNode(string kind, boolean acceptingValue, string model) { + exists(string type, string path, string acceptingValue_str | + acceptingValue = true and acceptingValue_str = "true" or - branch = false and branch_str = "false" + acceptingValue = false and acceptingValue_str = "false" | - barrierGuardModel(type, path, branch_str, kind, model) and + barrierGuardModel(type, path, acceptingValue_str, kind, model) and result = getNodeFromPath(type, path) ) } @@ -861,12 +861,12 @@ module ModelOutput { API::Node getABarrierNode(string kind) { result = getABarrierNode(kind, _) } /** - * Holds if an external model contributed `barrier-guard` with the given `kind` and `branch`. + * Holds if an external model contributed `barrier-guard` with the given `kind` and `acceptingValue`. * * INTERNAL: Do not use. */ - API::Node getABarrierGuardNode(string kind, boolean branch) { - result = getABarrierGuardNode(kind, branch, _) + API::Node getABarrierGuardNode(string kind, boolean acceptingValue) { + result = getABarrierGuardNode(kind, acceptingValue, _) } /** diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll index 2a644aabb95..8d8a4f5fd88 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -33,11 +33,11 @@ extensible predicate barrierModel( * of the given `kind` and `madId` is the data extension row number. * `path` is assumed to lead to a parameter of a call (possibly `self`), and * the call is guarding the parameter. - * `branch` is either `true` or `false`, indicating which branch of the guard - * is protecting the parameter. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string type, string path, string branch, string kind, QlBuiltins::ExtensionId madId + string type, string path, string acceptingValue, string kind, QlBuiltins::ExtensionId madId ); /** diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll index 34bf3267522..155fb4b7c78 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll @@ -13,7 +13,7 @@ * - Barriers: * `type, path, kind` * - BarrierGuards: - * `type, path, branch, kind` + * `type, path, acceptingValue, kind` * - Types: * `type1, type2, path` * @@ -46,7 +46,7 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `branch` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 4. The `acceptingValue` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries @@ -360,11 +360,11 @@ private predicate barrierModel(string type, string path, string kind, string mod /** Holds if a barrier guard model exists for the given parameters. */ private predicate barrierGuardModel( - string type, string path, string branch, string kind, string model + string type, string path, string acceptingValue, string kind, string model ) { // No deprecation adapter for barrier models, they were not around back then. exists(QlBuiltins::ExtensionId madId | - Extensions::barrierGuardModel(type, path, branch, kind, madId) and + Extensions::barrierGuardModel(type, path, acceptingValue, kind, madId) and model = "MaD:" + madId.toString() ) } @@ -788,16 +788,16 @@ module ModelOutput { } /** - * Holds if a barrier model contributed `barrier` with the given `kind` for the given `branch`. + * Holds if a barrier model contributed `barrier` with the given `kind` for the given `acceptingValue`. */ cached - API::Node getABarrierGuardNode(string kind, boolean branch, string model) { - exists(string type, string path, string branch_str | - branch = true and branch_str = "true" + API::Node getABarrierGuardNode(string kind, boolean acceptingValue, string model) { + exists(string type, string path, string acceptingValue_str | + acceptingValue = true and acceptingValue_str = "true" or - branch = false and branch_str = "false" + acceptingValue = false and acceptingValue_str = "false" | - barrierGuardModel(type, path, branch_str, kind, model) and + barrierGuardModel(type, path, acceptingValue_str, kind, model) and result = getNodeFromPath(type, path) ) } @@ -861,12 +861,12 @@ module ModelOutput { API::Node getABarrierNode(string kind) { result = getABarrierNode(kind, _) } /** - * Holds if an external model contributed `barrier-guard` with the given `kind` and `branch`. + * Holds if an external model contributed `barrier-guard` with the given `kind` and `acceptingValue`. * * INTERNAL: Do not use. */ - API::Node getABarrierGuardNode(string kind, boolean branch) { - result = getABarrierGuardNode(kind, branch, _) + API::Node getABarrierGuardNode(string kind, boolean acceptingValue) { + result = getABarrierGuardNode(kind, acceptingValue, _) } /** diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll index 2a644aabb95..8d8a4f5fd88 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -33,11 +33,11 @@ extensible predicate barrierModel( * of the given `kind` and `madId` is the data extension row number. * `path` is assumed to lead to a parameter of a call (possibly `self`), and * the call is guarding the parameter. - * `branch` is either `true` or `false`, indicating which branch of the guard - * is protecting the parameter. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string type, string path, string branch, string kind, QlBuiltins::ExtensionId madId + string type, string path, string acceptingValue, string kind, QlBuiltins::ExtensionId madId ); /** diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll index 34bf3267522..155fb4b7c78 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll @@ -13,7 +13,7 @@ * - Barriers: * `type, path, kind` * - BarrierGuards: - * `type, path, branch, kind` + * `type, path, acceptingValue, kind` * - Types: * `type1, type2, path` * @@ -46,7 +46,7 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `branch` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 4. The `acceptingValue` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries @@ -360,11 +360,11 @@ private predicate barrierModel(string type, string path, string kind, string mod /** Holds if a barrier guard model exists for the given parameters. */ private predicate barrierGuardModel( - string type, string path, string branch, string kind, string model + string type, string path, string acceptingValue, string kind, string model ) { // No deprecation adapter for barrier models, they were not around back then. exists(QlBuiltins::ExtensionId madId | - Extensions::barrierGuardModel(type, path, branch, kind, madId) and + Extensions::barrierGuardModel(type, path, acceptingValue, kind, madId) and model = "MaD:" + madId.toString() ) } @@ -788,16 +788,16 @@ module ModelOutput { } /** - * Holds if a barrier model contributed `barrier` with the given `kind` for the given `branch`. + * Holds if a barrier model contributed `barrier` with the given `kind` for the given `acceptingValue`. */ cached - API::Node getABarrierGuardNode(string kind, boolean branch, string model) { - exists(string type, string path, string branch_str | - branch = true and branch_str = "true" + API::Node getABarrierGuardNode(string kind, boolean acceptingValue, string model) { + exists(string type, string path, string acceptingValue_str | + acceptingValue = true and acceptingValue_str = "true" or - branch = false and branch_str = "false" + acceptingValue = false and acceptingValue_str = "false" | - barrierGuardModel(type, path, branch_str, kind, model) and + barrierGuardModel(type, path, acceptingValue_str, kind, model) and result = getNodeFromPath(type, path) ) } @@ -861,12 +861,12 @@ module ModelOutput { API::Node getABarrierNode(string kind) { result = getABarrierNode(kind, _) } /** - * Holds if an external model contributed `barrier-guard` with the given `kind` and `branch`. + * Holds if an external model contributed `barrier-guard` with the given `kind` and `acceptingValue`. * * INTERNAL: Do not use. */ - API::Node getABarrierGuardNode(string kind, boolean branch) { - result = getABarrierGuardNode(kind, branch, _) + API::Node getABarrierGuardNode(string kind, boolean acceptingValue) { + result = getABarrierGuardNode(kind, acceptingValue, _) } /** diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll index 2a644aabb95..8d8a4f5fd88 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -33,11 +33,11 @@ extensible predicate barrierModel( * of the given `kind` and `madId` is the data extension row number. * `path` is assumed to lead to a parameter of a call (possibly `self`), and * the call is guarding the parameter. - * `branch` is either `true` or `false`, indicating which branch of the guard - * is protecting the parameter. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string type, string path, string branch, string kind, QlBuiltins::ExtensionId madId + string type, string path, string acceptingValue, string kind, QlBuiltins::ExtensionId madId ); /** diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index cc7dd9963ea..2b3ecf51fe4 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -12,7 +12,7 @@ * - Barriers: * `path; output; kind; provenance` * - BarrierGuards: - * `path; input; branch; kind; provenance` + * `path; input; acceptingValue; kind; provenance` * - Neutrals: * `path; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -41,7 +41,7 @@ * - `Field[i]`: the `i`th element of a tuple. * - `Reference`: the referenced value. * - `Future`: the value being computed asynchronously. - * 3. The `branch` column of barrier guard models specifies which branch of the + * 3. The `acceptingValue` column of barrier guard models specifies which branch of the * guard is blocking flow. It can be "true" or "false". In the future * "no-exception", "not-zero", "null", "not-null" may be supported. * 4. The `kind` column is a tag that can be referenced from QL to determine to @@ -124,11 +124,12 @@ extensible predicate barrierModel( * extension row number. * * The value referred to by `input` is assumed to lead to an argument of a call - * (possibly `self`), and the call is guarding the argument. `branch` is either `true` - * or `false`, indicating which branch of the guard is protecting the argument. + * (possibly `self`), and the call is guarding the argument. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string path, string input, string branch, string kind, string provenance, + string path, string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); @@ -163,9 +164,9 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { model = "Barrier: " + path + "; " + output + "; " + kind ) or - exists(string path, string input, string branch, string kind | - barrierGuardModel(path, input, branch, kind, _, madId) and - model = "Barrier guard: " + path + "; " + input + "; " + branch + "; " + kind + exists(string path, string input, string acceptingValue, string kind | + barrierGuardModel(path, input, acceptingValue, kind, _, madId) and + model = "Barrier guard: " + path + "; " + input + "; " + acceptingValue + "; " + kind ) } @@ -275,10 +276,10 @@ private class FlowBarrierGuardFromModel extends FlowBarrierGuard::Range { } override predicate isBarrierGuard( - string input, string branch, string kind, Provenance provenance, string model + string input, string acceptingValue, string kind, Provenance provenance, string model ) { exists(QlBuiltins::ExtensionId madId | - barrierGuardModel(path, input, branch, kind, provenance, madId) and + barrierGuardModel(path, input, acceptingValue, kind, provenance, madId) and model = "MaD:" + madId.toString() ) } diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 0c6e42d9066..ce980724778 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -388,11 +388,11 @@ module Make< /** * Holds if this element is a flow barrier guard of kind `kind`, for data - * flowing in as described by `input`, when `this` evaluates to `branch`. + * flowing in as described by `input`, when `this` evaluates to `acceptingValue`. */ pragma[nomagic] abstract predicate isBarrierGuard( - string input, string branch, string kind, Provenance provenance, string model + string input, string acceptingValue, string kind, Provenance provenance, string model ); } @@ -764,10 +764,10 @@ module Make< } private predicate isRelevantBarrierGuard( - BarrierGuardElement e, string input, string branch, string kind, Provenance provenance, - string model + BarrierGuardElement e, string input, string acceptingValue, string kind, + Provenance provenance, string model ) { - e.isBarrierGuard(input, branch, kind, provenance, model) and + e.isBarrierGuard(input, acceptingValue, kind, provenance, model) and ( provenance.isManual() or @@ -1588,11 +1588,11 @@ module Make< * Holds if `barrierGuard` is a relevant barrier guard element with input specification `inSpec`. */ predicate barrierGuardSpec( - BarrierGuardElement barrierGuard, SummaryComponentStack inSpec, string branch, string kind, - string model + BarrierGuardElement barrierGuard, SummaryComponentStack inSpec, string acceptingValue, + string kind, string model ) { exists(string input | - isRelevantBarrierGuard(barrierGuard, input, branch, kind, _, model) and + isRelevantBarrierGuard(barrierGuard, input, acceptingValue, kind, _, model) and External::interpretSpec(input, inSpec) ) } From 70b72f70e14f51930f3c9c4de67174ca0636214e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 2 Apr 2026 11:32:53 +0100 Subject: [PATCH 017/208] C++: Upgrade query precision. --- cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql b/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql index 343e96a00d3..d5a5cd8f665 100644 --- a/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql +++ b/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql @@ -6,7 +6,7 @@ * @kind problem * @problem.severity warning * @security-severity 8.8 - * @precision medium + * @precision high * @id cpp/suspicious-add-sizeof * @tags security * external/cwe/cwe-468 From cc89b6ea919eb619ee932c2008fca5bbdeb4da08 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 2 Apr 2026 11:33:06 +0100 Subject: [PATCH 018/208] C++: Change note. --- cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md diff --git a/cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md b/cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md new file mode 100644 index 00000000000..040e89c1347 --- /dev/null +++ b/cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. From 9ff4ed286f7a060fa77475c6e846546336e0e279 Mon Sep 17 00:00:00 2001 From: MarkLee131 Date: Sat, 4 Apr 2026 20:57:03 +0800 Subject: [PATCH 019/208] Java: recognize Path.toRealPath() as path normalization sanitizer PathNormalizeSanitizer recognized Path.normalize() and File.getCanonicalPath()/getCanonicalFile(), but not Path.toRealPath(). toRealPath() is strictly stronger than normalize() (resolves symlinks and verifies file existence in addition to normalizing ".." components), and is functionally equivalent to File.getCanonicalPath() for the NIO.2 API. CERT FIO16-J and OWASP both recommend it for path traversal defense. This adds toRealPath to PathNormalizeSanitizer alongside normalize, reducing false positives for code using idiomatic NIO.2 path handling. --- .../2026-04-04-path-injection-torealpath.md | 4 ++++ .../code/java/security/PathSanitizer.qll | 2 +- .../CWE-022/semmle/tests/TaintedPath.java | 21 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 java/ql/lib/change-notes/2026-04-04-path-injection-torealpath.md diff --git a/java/ql/lib/change-notes/2026-04-04-path-injection-torealpath.md b/java/ql/lib/change-notes/2026-04-04-path-injection-torealpath.md new file mode 100644 index 00000000000..8856d419bce --- /dev/null +++ b/java/ql/lib/change-notes/2026-04-04-path-injection-torealpath.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `java/path-injection` and `java/zipslip` queries now recognize `Path.toRealPath()` as a path normalization sanitizer, consistent with the existing treatment of `Path.normalize()` and `File.getCanonicalPath()`. This reduces false positives for code that uses the NIO.2 API for path canonicalization. diff --git a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll index 788cd542939..e2957f6b02f 100644 --- a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll @@ -243,7 +243,7 @@ private class PathNormalizeSanitizer extends MethodCall { PathNormalizeSanitizer() { exists(RefType t | this.getMethod().getDeclaringType() = t | (t instanceof TypePath or t instanceof FilesKt) and - this.getMethod().hasName("normalize") + this.getMethod().hasName(["normalize", "toRealPath"]) or t instanceof TypeFile and this.getMethod().hasName(["getCanonicalPath", "getCanonicalFile"]) diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java index 442873b54a4..fb87c687823 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java @@ -72,6 +72,27 @@ public class TaintedPath { } } + public void sendUserFileGood5(Socket sock, String user) throws Exception { + BufferedReader filenameReader = + new BufferedReader(new InputStreamReader(sock.getInputStream(), "UTF-8")); + String filename = filenameReader.readLine(); + + Path publicFolder = Paths.get("/home/" + user + "/public").toRealPath(); + Path filePath = publicFolder.resolve(filename).toRealPath(); + + // GOOD: toRealPath() normalizes the path (resolves ".." and symlinks), + // equivalent to File.getCanonicalPath() + if (!filePath.startsWith(publicFolder + File.separator)) { + throw new IllegalArgumentException("Invalid filename"); + } + BufferedReader fileReader = new BufferedReader(new FileReader(filePath.toString())); + String fileLine = fileReader.readLine(); + while (fileLine != null) { + sock.getOutputStream().write(fileLine.getBytes()); + fileLine = fileReader.readLine(); + } + } + public void sendUserFileGood4(Socket sock, String user) throws IOException { BufferedReader filenameReader = new BufferedReader(new InputStreamReader(sock.getInputStream(), "UTF-8")); From 20cfe291995f1631f9672a8f19aab75a7bfbf511 Mon Sep 17 00:00:00 2001 From: MarkLee131 Date: Sat, 4 Apr 2026 20:56:53 +0800 Subject: [PATCH 020/208] Java: reduce false positives in sensitive-log by expanding FP exclusion regex The getCommonSensitiveInfoFPRegex() only excluded "null", "tokenizer", and "tokenImage", causing widespread false positives for common non-sensitive variable names containing "token" or "secret". This adds exclusions for three categories: - Pagination/iteration tokens: nextToken (AWS SDK), pageToken (GCP), continuationToken (Azure), etc. - Token metadata: tokenType (OAuth), tokenEndpoint (OIDC), tokenCount, tokenIndex, tokenLength, tokenUrl, etc. - Secret metadata: secretName (K8s/AWS), secretId (Azure), secretVersion, secretArn, secretPath, etc. All truly sensitive variable names (accessToken, clientSecret, secretKey, refreshToken, etc.) remain correctly flagged. --- .../2026-04-04-sensitive-log-fp-reduction.md | 4 ++ .../code/java/security/SensitiveActions.qll | 20 ++++++- .../CWE-532/SensitiveLogInfo.expected | 32 ++++++++++++ .../query-tests/security/CWE-532/Test.java | 52 +++++++++++++++++++ 4 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 java/ql/lib/change-notes/2026-04-04-sensitive-log-fp-reduction.md diff --git a/java/ql/lib/change-notes/2026-04-04-sensitive-log-fp-reduction.md b/java/ql/lib/change-notes/2026-04-04-sensitive-log-fp-reduction.md new file mode 100644 index 00000000000..15fc811360b --- /dev/null +++ b/java/ql/lib/change-notes/2026-04-04-sensitive-log-fp-reduction.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `java/sensitive-log` query now excludes additional common variable naming patterns that do not hold sensitive data, reducing false positives. This includes pagination/iteration tokens (`nextToken`, `pageToken`, `continuationToken`), token metadata (`tokenType`, `tokenEndpoint`, `tokenCount`), and secret metadata (`secretName`, `secretId`, `secretVersion`). diff --git a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll index 6733219a8d5..efbc22b0b29 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll @@ -40,14 +40,30 @@ string getCommonSensitiveInfoRegex() { /** * Gets a regular expression for matching common names of variables that - * indicate the value being held does not contains sensitive information, + * indicate the value being held does not contain sensitive information, * but is a false positive for `getCommonSensitiveInfoRegex`. * * - "tokenizer" is often used for java.util.StringTokenizer. * - "tokenImage" appears in parser code generated by JavaCC. + * - Pagination/iteration tokens: "nextToken" (AWS SDK), "pageToken" (GCP), etc. + * - Token metadata: "tokenType" (OAuth), "tokenEndpoint" (OIDC), "tokenCount", etc. + * - Secret metadata: "secretName" (K8s/AWS), "secretId" (Azure), "secretVersion", etc. */ string getCommonSensitiveInfoFPRegex() { - result = "(?i).*(null|tokenizer).*" or result = "tokenImage" + result = "(?i).*(null|tokenizer).*" + or + result = "tokenImage" + or + // Pagination/iteration tokens (e.g., AWS SDK pagination cursors, parser tokens) + result = "(?i).*(next|previous|current|page|continuation|cursor)tokens?.*" + or + // Token metadata/infrastructure (token followed by a non-value descriptor) + result = + "(?i).*tokens?(type|kind|count|index|position|length|offset|endpoint|url|uri|bucket|rate|delimiter|separator|format|number|name|id|prefix|suffix|pattern|class|style).*" + or + // Secret metadata (secret followed by a non-value descriptor) + result = + "(?i).*secrets?(name|id|version|ref|arn|path|type|label|description|question|manager|client|provider|store|factory|properties).*" } /** An expression that might contain sensitive data. */ diff --git a/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected b/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected index 54f1e9f8a5a..ad3715ec7e2 100644 --- a/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected +++ b/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected @@ -3,6 +3,14 @@ | Test.java:12:22:12:52 | ... + ... | Test.java:12:44:12:52 | authToken : String | Test.java:12:22:12:52 | ... + ... | This $@ is written to a log file. | Test.java:12:44:12:52 | authToken | potentially sensitive information | | Test.java:21:22:21:75 | ... + ... | Test.java:21:44:21:52 | authToken : String | Test.java:21:22:21:75 | ... + ... | This $@ is written to a log file. | Test.java:21:44:21:52 | authToken | potentially sensitive information | | Test.java:22:22:22:75 | ... + ... | Test.java:22:44:22:52 | authToken : String | Test.java:22:22:22:75 | ... + ... | This $@ is written to a log file. | Test.java:22:44:22:52 | authToken | potentially sensitive information | +| Test.java:67:21:67:43 | ... + ... | Test.java:67:33:67:43 | accessToken : String | Test.java:67:21:67:43 | ... + ... | This $@ is written to a log file. | Test.java:67:33:67:43 | accessToken | potentially sensitive information | +| Test.java:68:21:68:45 | ... + ... | Test.java:68:34:68:45 | clientSecret : String | Test.java:68:21:68:45 | ... + ... | This $@ is written to a log file. | Test.java:68:34:68:45 | clientSecret | potentially sensitive information | +| Test.java:69:21:69:42 | ... + ... | Test.java:69:34:69:42 | apiSecret : String | Test.java:69:21:69:42 | ... + ... | This $@ is written to a log file. | Test.java:69:34:69:42 | apiSecret | potentially sensitive information | +| Test.java:70:21:70:44 | ... + ... | Test.java:70:33:70:44 | sessionToken : String | Test.java:70:21:70:44 | ... + ... | This $@ is written to a log file. | Test.java:70:33:70:44 | sessionToken | potentially sensitive information | +| Test.java:71:21:71:43 | ... + ... | Test.java:71:33:71:43 | bearerToken : String | Test.java:71:21:71:43 | ... + ... | This $@ is written to a log file. | Test.java:71:33:71:43 | bearerToken | potentially sensitive information | +| Test.java:72:21:72:39 | ... + ... | Test.java:72:31:72:39 | secretKey : String | Test.java:72:21:72:39 | ... + ... | This $@ is written to a log file. | Test.java:72:31:72:39 | secretKey | potentially sensitive information | +| Test.java:73:21:73:44 | ... + ... | Test.java:73:33:73:44 | refreshToken : String | Test.java:73:21:73:44 | ... + ... | This $@ is written to a log file. | Test.java:73:33:73:44 | refreshToken | potentially sensitive information | +| Test.java:74:21:74:43 | ... + ... | Test.java:74:33:74:43 | secretValue : String | Test.java:74:21:74:43 | ... + ... | This $@ is written to a log file. | Test.java:74:33:74:43 | secretValue | potentially sensitive information | edges | Test.java:11:46:11:53 | password : String | Test.java:11:21:11:53 | ... + ... | provenance | Sink:MaD:2 | | Test.java:12:44:12:52 | authToken : String | Test.java:12:22:12:52 | ... + ... | provenance | Sink:MaD:1 | @@ -10,6 +18,14 @@ edges | Test.java:21:44:21:67 | substring(...) : String | Test.java:21:22:21:75 | ... + ... | provenance | Sink:MaD:1 | | Test.java:22:44:22:52 | authToken : String | Test.java:22:44:22:67 | substring(...) : String | provenance | MaD:3 | | Test.java:22:44:22:67 | substring(...) : String | Test.java:22:22:22:75 | ... + ... | provenance | Sink:MaD:1 | +| Test.java:67:33:67:43 | accessToken : String | Test.java:67:21:67:43 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:68:34:68:45 | clientSecret : String | Test.java:68:21:68:45 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:69:34:69:42 | apiSecret : String | Test.java:69:21:69:42 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:70:33:70:44 | sessionToken : String | Test.java:70:21:70:44 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:71:33:71:43 | bearerToken : String | Test.java:71:21:71:43 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:72:31:72:39 | secretKey : String | Test.java:72:21:72:39 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:73:33:73:44 | refreshToken : String | Test.java:73:21:73:44 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:74:33:74:43 | secretValue : String | Test.java:74:21:74:43 | ... + ... | provenance | Sink:MaD:2 | models | 1 | Sink: org.apache.logging.log4j; Logger; true; error; (String); ; Argument[0]; log-injection; manual | | 2 | Sink: org.apache.logging.log4j; Logger; true; info; (String); ; Argument[0]; log-injection; manual | @@ -25,4 +41,20 @@ nodes | Test.java:22:22:22:75 | ... + ... | semmle.label | ... + ... | | Test.java:22:44:22:52 | authToken : String | semmle.label | authToken : String | | Test.java:22:44:22:67 | substring(...) : String | semmle.label | substring(...) : String | +| Test.java:67:21:67:43 | ... + ... | semmle.label | ... + ... | +| Test.java:67:33:67:43 | accessToken : String | semmle.label | accessToken : String | +| Test.java:68:21:68:45 | ... + ... | semmle.label | ... + ... | +| Test.java:68:34:68:45 | clientSecret : String | semmle.label | clientSecret : String | +| Test.java:69:21:69:42 | ... + ... | semmle.label | ... + ... | +| Test.java:69:34:69:42 | apiSecret : String | semmle.label | apiSecret : String | +| Test.java:70:21:70:44 | ... + ... | semmle.label | ... + ... | +| Test.java:70:33:70:44 | sessionToken : String | semmle.label | sessionToken : String | +| Test.java:71:21:71:43 | ... + ... | semmle.label | ... + ... | +| Test.java:71:33:71:43 | bearerToken : String | semmle.label | bearerToken : String | +| Test.java:72:21:72:39 | ... + ... | semmle.label | ... + ... | +| Test.java:72:31:72:39 | secretKey : String | semmle.label | secretKey : String | +| Test.java:73:21:73:44 | ... + ... | semmle.label | ... + ... | +| Test.java:73:33:73:44 | refreshToken : String | semmle.label | refreshToken : String | +| Test.java:74:21:74:43 | ... + ... | semmle.label | ... + ... | +| Test.java:74:33:74:43 | secretValue : String | semmle.label | secretValue : String | subpaths diff --git a/java/ql/test/query-tests/security/CWE-532/Test.java b/java/ql/test/query-tests/security/CWE-532/Test.java index 6521f7e2df7..759228ae3ec 100644 --- a/java/ql/test/query-tests/security/CWE-532/Test.java +++ b/java/ql/test/query-tests/security/CWE-532/Test.java @@ -21,4 +21,56 @@ class Test { logger.error("Auth failed for: " + authToken.substring(1,5) + "..."); // $ Alert logger.error("Auth failed for: " + authToken.substring(0,8) + "..."); // $ Alert } + + // Tests for false positive exclusions: variables with "token" or "secret" in the name + // that do not hold sensitive data. + void testFalsePositiveExclusions( + String nextToken, String pageToken, String continuationToken, String cursorToken, + String tokenType, String tokenEndpoint, String tokenCount, String tokenUrl, + String tokenIndex, String tokenLength, String tokenName, String tokenId, + String secretName, String secretId, String secretVersion, String secretArn, + String secretPath, String secretType, String secretQuestion, + String secretManager, String secretProperties + ) { + Logger logger = null; + // Pagination/iteration tokens (e.g., AWS SDK, GCP, Azure pagination cursors) + logger.info("cursor: " + nextToken); // Safe + logger.info("cursor: " + pageToken); // Safe + logger.info("cursor: " + continuationToken); // Safe + logger.info("cursor: " + cursorToken); // Safe + // Token metadata (e.g., OAuth token type, OIDC discovery endpoint) + logger.info("type: " + tokenType); // Safe + logger.info("endpoint: " + tokenEndpoint); // Safe + logger.info("count: " + tokenCount); // Safe + logger.info("url: " + tokenUrl); // Safe + logger.info("index: " + tokenIndex); // Safe + logger.info("length: " + tokenLength); // Safe + logger.info("name: " + tokenName); // Safe + logger.info("id: " + tokenId); // Safe + // Secret metadata (e.g., K8s secret name, AWS Secrets Manager identifiers) + logger.info("name: " + secretName); // Safe + logger.info("id: " + secretId); // Safe + logger.info("version: " + secretVersion); // Safe + logger.info("arn: " + secretArn); // Safe + logger.info("path: " + secretPath); // Safe + logger.info("type: " + secretType); // Safe + logger.info("question: " + secretQuestion); // Safe + logger.info("manager: " + secretManager); // Safe + logger.info("properties: " + secretProperties); // Safe + } + + // These should still be flagged as sensitive + void testTruePositives(String accessToken, String clientSecret, String apiSecret, + String sessionToken, String bearerToken, String secretKey, + String refreshToken, String secretValue) { + Logger logger = null; + logger.info("token: " + accessToken); // $ Alert + logger.info("secret: " + clientSecret); // $ Alert + logger.info("secret: " + apiSecret); // $ Alert + logger.info("token: " + sessionToken); // $ Alert + logger.info("token: " + bearerToken); // $ Alert + logger.info("key: " + secretKey); // $ Alert + logger.info("token: " + refreshToken); // $ Alert + logger.info("value: " + secretValue); // $ Alert + } } From 46ef0204ef019d7b073ae1d5c275660be157e5b4 Mon Sep 17 00:00:00 2001 From: MarkLee131 Date: Sat, 4 Apr 2026 21:58:32 +0800 Subject: [PATCH 021/208] Remove secretQuestion from FP exclusion list secretQuestion is ambiguous: it could be the question text (not sensitive) or a security question answer. Worse, the regex secrets?(question) also matches secretQuestionAnswer, which is clearly sensitive. Drop it to avoid false negatives. --- .../code/java/security/SensitiveActions.qll | 2 +- .../CWE-532/SensitiveLogInfo.expected | 64 +++++++++---------- .../query-tests/security/CWE-532/Test.java | 3 +- 3 files changed, 34 insertions(+), 35 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll index efbc22b0b29..a4adcd7c341 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll @@ -63,7 +63,7 @@ string getCommonSensitiveInfoFPRegex() { or // Secret metadata (secret followed by a non-value descriptor) result = - "(?i).*secrets?(name|id|version|ref|arn|path|type|label|description|question|manager|client|provider|store|factory|properties).*" + "(?i).*secrets?(name|id|version|ref|arn|path|type|label|description|manager|client|provider|store|factory|properties).*" } /** An expression that might contain sensitive data. */ diff --git a/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected b/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected index ad3715ec7e2..4a5ed058b50 100644 --- a/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected +++ b/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected @@ -3,14 +3,14 @@ | Test.java:12:22:12:52 | ... + ... | Test.java:12:44:12:52 | authToken : String | Test.java:12:22:12:52 | ... + ... | This $@ is written to a log file. | Test.java:12:44:12:52 | authToken | potentially sensitive information | | Test.java:21:22:21:75 | ... + ... | Test.java:21:44:21:52 | authToken : String | Test.java:21:22:21:75 | ... + ... | This $@ is written to a log file. | Test.java:21:44:21:52 | authToken | potentially sensitive information | | Test.java:22:22:22:75 | ... + ... | Test.java:22:44:22:52 | authToken : String | Test.java:22:22:22:75 | ... + ... | This $@ is written to a log file. | Test.java:22:44:22:52 | authToken | potentially sensitive information | -| Test.java:67:21:67:43 | ... + ... | Test.java:67:33:67:43 | accessToken : String | Test.java:67:21:67:43 | ... + ... | This $@ is written to a log file. | Test.java:67:33:67:43 | accessToken | potentially sensitive information | -| Test.java:68:21:68:45 | ... + ... | Test.java:68:34:68:45 | clientSecret : String | Test.java:68:21:68:45 | ... + ... | This $@ is written to a log file. | Test.java:68:34:68:45 | clientSecret | potentially sensitive information | -| Test.java:69:21:69:42 | ... + ... | Test.java:69:34:69:42 | apiSecret : String | Test.java:69:21:69:42 | ... + ... | This $@ is written to a log file. | Test.java:69:34:69:42 | apiSecret | potentially sensitive information | -| Test.java:70:21:70:44 | ... + ... | Test.java:70:33:70:44 | sessionToken : String | Test.java:70:21:70:44 | ... + ... | This $@ is written to a log file. | Test.java:70:33:70:44 | sessionToken | potentially sensitive information | -| Test.java:71:21:71:43 | ... + ... | Test.java:71:33:71:43 | bearerToken : String | Test.java:71:21:71:43 | ... + ... | This $@ is written to a log file. | Test.java:71:33:71:43 | bearerToken | potentially sensitive information | -| Test.java:72:21:72:39 | ... + ... | Test.java:72:31:72:39 | secretKey : String | Test.java:72:21:72:39 | ... + ... | This $@ is written to a log file. | Test.java:72:31:72:39 | secretKey | potentially sensitive information | -| Test.java:73:21:73:44 | ... + ... | Test.java:73:33:73:44 | refreshToken : String | Test.java:73:21:73:44 | ... + ... | This $@ is written to a log file. | Test.java:73:33:73:44 | refreshToken | potentially sensitive information | -| Test.java:74:21:74:43 | ... + ... | Test.java:74:33:74:43 | secretValue : String | Test.java:74:21:74:43 | ... + ... | This $@ is written to a log file. | Test.java:74:33:74:43 | secretValue | potentially sensitive information | +| Test.java:66:21:66:43 | ... + ... | Test.java:66:33:66:43 | accessToken : String | Test.java:66:21:66:43 | ... + ... | This $@ is written to a log file. | Test.java:66:33:66:43 | accessToken | potentially sensitive information | +| Test.java:67:21:67:45 | ... + ... | Test.java:67:34:67:45 | clientSecret : String | Test.java:67:21:67:45 | ... + ... | This $@ is written to a log file. | Test.java:67:34:67:45 | clientSecret | potentially sensitive information | +| Test.java:68:21:68:42 | ... + ... | Test.java:68:34:68:42 | apiSecret : String | Test.java:68:21:68:42 | ... + ... | This $@ is written to a log file. | Test.java:68:34:68:42 | apiSecret | potentially sensitive information | +| Test.java:69:21:69:44 | ... + ... | Test.java:69:33:69:44 | sessionToken : String | Test.java:69:21:69:44 | ... + ... | This $@ is written to a log file. | Test.java:69:33:69:44 | sessionToken | potentially sensitive information | +| Test.java:70:21:70:43 | ... + ... | Test.java:70:33:70:43 | bearerToken : String | Test.java:70:21:70:43 | ... + ... | This $@ is written to a log file. | Test.java:70:33:70:43 | bearerToken | potentially sensitive information | +| Test.java:71:21:71:39 | ... + ... | Test.java:71:31:71:39 | secretKey : String | Test.java:71:21:71:39 | ... + ... | This $@ is written to a log file. | Test.java:71:31:71:39 | secretKey | potentially sensitive information | +| Test.java:72:21:72:44 | ... + ... | Test.java:72:33:72:44 | refreshToken : String | Test.java:72:21:72:44 | ... + ... | This $@ is written to a log file. | Test.java:72:33:72:44 | refreshToken | potentially sensitive information | +| Test.java:73:21:73:43 | ... + ... | Test.java:73:33:73:43 | secretValue : String | Test.java:73:21:73:43 | ... + ... | This $@ is written to a log file. | Test.java:73:33:73:43 | secretValue | potentially sensitive information | edges | Test.java:11:46:11:53 | password : String | Test.java:11:21:11:53 | ... + ... | provenance | Sink:MaD:2 | | Test.java:12:44:12:52 | authToken : String | Test.java:12:22:12:52 | ... + ... | provenance | Sink:MaD:1 | @@ -18,14 +18,14 @@ edges | Test.java:21:44:21:67 | substring(...) : String | Test.java:21:22:21:75 | ... + ... | provenance | Sink:MaD:1 | | Test.java:22:44:22:52 | authToken : String | Test.java:22:44:22:67 | substring(...) : String | provenance | MaD:3 | | Test.java:22:44:22:67 | substring(...) : String | Test.java:22:22:22:75 | ... + ... | provenance | Sink:MaD:1 | -| Test.java:67:33:67:43 | accessToken : String | Test.java:67:21:67:43 | ... + ... | provenance | Sink:MaD:2 | -| Test.java:68:34:68:45 | clientSecret : String | Test.java:68:21:68:45 | ... + ... | provenance | Sink:MaD:2 | -| Test.java:69:34:69:42 | apiSecret : String | Test.java:69:21:69:42 | ... + ... | provenance | Sink:MaD:2 | -| Test.java:70:33:70:44 | sessionToken : String | Test.java:70:21:70:44 | ... + ... | provenance | Sink:MaD:2 | -| Test.java:71:33:71:43 | bearerToken : String | Test.java:71:21:71:43 | ... + ... | provenance | Sink:MaD:2 | -| Test.java:72:31:72:39 | secretKey : String | Test.java:72:21:72:39 | ... + ... | provenance | Sink:MaD:2 | -| Test.java:73:33:73:44 | refreshToken : String | Test.java:73:21:73:44 | ... + ... | provenance | Sink:MaD:2 | -| Test.java:74:33:74:43 | secretValue : String | Test.java:74:21:74:43 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:66:33:66:43 | accessToken : String | Test.java:66:21:66:43 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:67:34:67:45 | clientSecret : String | Test.java:67:21:67:45 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:68:34:68:42 | apiSecret : String | Test.java:68:21:68:42 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:69:33:69:44 | sessionToken : String | Test.java:69:21:69:44 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:70:33:70:43 | bearerToken : String | Test.java:70:21:70:43 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:71:31:71:39 | secretKey : String | Test.java:71:21:71:39 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:72:33:72:44 | refreshToken : String | Test.java:72:21:72:44 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:73:33:73:43 | secretValue : String | Test.java:73:21:73:43 | ... + ... | provenance | Sink:MaD:2 | models | 1 | Sink: org.apache.logging.log4j; Logger; true; error; (String); ; Argument[0]; log-injection; manual | | 2 | Sink: org.apache.logging.log4j; Logger; true; info; (String); ; Argument[0]; log-injection; manual | @@ -41,20 +41,20 @@ nodes | Test.java:22:22:22:75 | ... + ... | semmle.label | ... + ... | | Test.java:22:44:22:52 | authToken : String | semmle.label | authToken : String | | Test.java:22:44:22:67 | substring(...) : String | semmle.label | substring(...) : String | -| Test.java:67:21:67:43 | ... + ... | semmle.label | ... + ... | -| Test.java:67:33:67:43 | accessToken : String | semmle.label | accessToken : String | -| Test.java:68:21:68:45 | ... + ... | semmle.label | ... + ... | -| Test.java:68:34:68:45 | clientSecret : String | semmle.label | clientSecret : String | -| Test.java:69:21:69:42 | ... + ... | semmle.label | ... + ... | -| Test.java:69:34:69:42 | apiSecret : String | semmle.label | apiSecret : String | -| Test.java:70:21:70:44 | ... + ... | semmle.label | ... + ... | -| Test.java:70:33:70:44 | sessionToken : String | semmle.label | sessionToken : String | -| Test.java:71:21:71:43 | ... + ... | semmle.label | ... + ... | -| Test.java:71:33:71:43 | bearerToken : String | semmle.label | bearerToken : String | -| Test.java:72:21:72:39 | ... + ... | semmle.label | ... + ... | -| Test.java:72:31:72:39 | secretKey : String | semmle.label | secretKey : String | -| Test.java:73:21:73:44 | ... + ... | semmle.label | ... + ... | -| Test.java:73:33:73:44 | refreshToken : String | semmle.label | refreshToken : String | -| Test.java:74:21:74:43 | ... + ... | semmle.label | ... + ... | -| Test.java:74:33:74:43 | secretValue : String | semmle.label | secretValue : String | +| Test.java:66:21:66:43 | ... + ... | semmle.label | ... + ... | +| Test.java:66:33:66:43 | accessToken : String | semmle.label | accessToken : String | +| Test.java:67:21:67:45 | ... + ... | semmle.label | ... + ... | +| Test.java:67:34:67:45 | clientSecret : String | semmle.label | clientSecret : String | +| Test.java:68:21:68:42 | ... + ... | semmle.label | ... + ... | +| Test.java:68:34:68:42 | apiSecret : String | semmle.label | apiSecret : String | +| Test.java:69:21:69:44 | ... + ... | semmle.label | ... + ... | +| Test.java:69:33:69:44 | sessionToken : String | semmle.label | sessionToken : String | +| Test.java:70:21:70:43 | ... + ... | semmle.label | ... + ... | +| Test.java:70:33:70:43 | bearerToken : String | semmle.label | bearerToken : String | +| Test.java:71:21:71:39 | ... + ... | semmle.label | ... + ... | +| Test.java:71:31:71:39 | secretKey : String | semmle.label | secretKey : String | +| Test.java:72:21:72:44 | ... + ... | semmle.label | ... + ... | +| Test.java:72:33:72:44 | refreshToken : String | semmle.label | refreshToken : String | +| Test.java:73:21:73:43 | ... + ... | semmle.label | ... + ... | +| Test.java:73:33:73:43 | secretValue : String | semmle.label | secretValue : String | subpaths diff --git a/java/ql/test/query-tests/security/CWE-532/Test.java b/java/ql/test/query-tests/security/CWE-532/Test.java index 759228ae3ec..5c9826ba2cc 100644 --- a/java/ql/test/query-tests/security/CWE-532/Test.java +++ b/java/ql/test/query-tests/security/CWE-532/Test.java @@ -29,7 +29,7 @@ class Test { String tokenType, String tokenEndpoint, String tokenCount, String tokenUrl, String tokenIndex, String tokenLength, String tokenName, String tokenId, String secretName, String secretId, String secretVersion, String secretArn, - String secretPath, String secretType, String secretQuestion, + String secretPath, String secretType, String secretManager, String secretProperties ) { Logger logger = null; @@ -54,7 +54,6 @@ class Test { logger.info("arn: " + secretArn); // Safe logger.info("path: " + secretPath); // Safe logger.info("type: " + secretType); // Safe - logger.info("question: " + secretQuestion); // Safe logger.info("manager: " + secretManager); // Safe logger.info("properties: " + secretProperties); // Safe } From 4fe2f6d2b44e0ea850d8cfffaee5b107aac24791 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 6 Apr 2026 10:30:38 +0000 Subject: [PATCH 022/208] Release preparation for version 2.25.2 --- actions/ql/lib/CHANGELOG.md | 4 ++++ .../ql/lib/change-notes/released/0.4.33.md | 3 +++ actions/ql/lib/codeql-pack.release.yml | 2 +- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/CHANGELOG.md | 4 ++++ .../ql/src/change-notes/released/0.6.25.md | 3 +++ actions/ql/src/codeql-pack.release.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/CHANGELOG.md | 20 +++++++++++++++++++ ...6-03-20-add-indirect-uninitialized-node.md | 4 ---- ...rameter-nodes-and-indirect-instructions.md | 5 ----- .../lib/change-notes/2026-03-24-field-init.md | 5 ----- .../2026-03-26-convert-csv-models-to-yml.md | 4 ---- .../change-notes/2026-03-30-nsdmi-dataflow.md | 4 ---- .../2026-03-31-http-flow-sources.md | 4 ---- cpp/ql/lib/change-notes/2026-03-31-meson.md | 4 ---- cpp/ql/lib/change-notes/released/9.0.0.md | 19 ++++++++++++++++++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 14 +++++++++++++ ...-11-integer-multiplication-cast-to-long.md | 4 ---- ...3-adjust-xss-and-log-injection-severity.md | 4 ---- .../2026-03-16-wrong-type-format-argument.md | 4 ---- .../2026-03-19-suspicious-add-sizeof.md | 4 ---- .../2026-03-19-tainted-format-string.md | 4 ---- .../2026-03-30-warning-diagnostics.md | 4 ---- cpp/ql/src/change-notes/released/1.6.0.md | 13 ++++++++++++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../lib/change-notes/released/1.7.64.md | 3 +++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../src/change-notes/released/1.7.64.md | 3 +++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 10 ++++++++++ .../2026-03-26-expanded-assignments.md | 4 ---- .../5.4.12.md} | 8 +++++--- csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 11 ++++++++++ ...3-adjust-xss-and-log-injection-severity.md | 5 ----- .../1.7.0.md} | 12 ++++++++--- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.47.md | 3 +++ .../codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 4 ++++ go/ql/lib/change-notes/released/7.0.5.md | 3 +++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 7 +++++++ .../1.6.0.md} | 7 ++++--- go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 9 +++++++++ .../change-notes/2026-03-26-kotlin-2.3.20.md | 4 ---- ...6-03-28-tainted-arithmetic-bounds-check.md | 4 ---- .../9.0.3.md} | 9 ++++++--- java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 7 +++++++ .../1.11.0.md} | 7 ++++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ .../ql/lib/change-notes/released/2.6.27.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ++++ .../ql/src/change-notes/released/2.3.7.md | 3 +++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.47.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 6 ++++++ .../7.0.4.md} | 6 +++--- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 11 ++++++++++ ...026-03-13-port-simple-points-to-queries.md | 5 ----- .../1.8.0.md} | 11 +++++++--- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++++ ruby/ql/lib/change-notes/released/5.1.15.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 +++++++ .../1.6.0.md} | 7 ++++--- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/CHANGELOG.md | 4 ++++ rust/ql/lib/change-notes/released/0.2.11.md | 3 +++ rust/ql/lib/codeql-pack.release.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/CHANGELOG.md | 7 +++++++ .../0.1.32.md} | 7 ++++--- rust/ql/src/codeql-pack.release.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/CHANGELOG.md | 4 ++++ .../concepts/change-notes/released/0.0.21.md | 3 +++ shared/concepts/codeql-pack.release.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ .../change-notes/released/2.0.31.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ .../dataflow/change-notes/released/2.1.3.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/1.0.47.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/CHANGELOG.md | 4 ++++ .../quantum/change-notes/released/0.0.25.md | 3 +++ shared/quantum/codeql-pack.release.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.47.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/1.0.47.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/2.0.23.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.47.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ .../tutorial/change-notes/released/1.0.47.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/CHANGELOG.md | 4 ++++ .../typeflow/change-notes/released/1.0.47.md | 3 +++ shared/typeflow/codeql-pack.release.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/CHANGELOG.md | 4 ++++ .../change-notes/released/0.0.28.md | 3 +++ shared/typeinference/codeql-pack.release.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ .../change-notes/released/2.0.31.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/1.0.47.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/2.0.34.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/CHANGELOG.md | 4 ++++ shared/xml/change-notes/released/1.0.47.md | 3 +++ shared/xml/codeql-pack.release.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/1.0.47.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 4 ++++ swift/ql/lib/change-notes/released/6.3.3.md | 3 +++ swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 6 ++++++ .../1.3.0.md} | 7 ++++--- swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 182 files changed, 483 insertions(+), 188 deletions(-) create mode 100644 actions/ql/lib/change-notes/released/0.4.33.md create mode 100644 actions/ql/src/change-notes/released/0.6.25.md delete mode 100644 cpp/ql/lib/change-notes/2026-03-20-add-indirect-uninitialized-node.md delete mode 100644 cpp/ql/lib/change-notes/2026-03-23-indirect-parameter-nodes-and-indirect-instructions.md delete mode 100644 cpp/ql/lib/change-notes/2026-03-24-field-init.md delete mode 100644 cpp/ql/lib/change-notes/2026-03-26-convert-csv-models-to-yml.md delete mode 100644 cpp/ql/lib/change-notes/2026-03-30-nsdmi-dataflow.md delete mode 100644 cpp/ql/lib/change-notes/2026-03-31-http-flow-sources.md delete mode 100644 cpp/ql/lib/change-notes/2026-03-31-meson.md create mode 100644 cpp/ql/lib/change-notes/released/9.0.0.md delete mode 100644 cpp/ql/src/change-notes/2026-03-11-integer-multiplication-cast-to-long.md delete mode 100644 cpp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md delete mode 100644 cpp/ql/src/change-notes/2026-03-16-wrong-type-format-argument.md delete mode 100644 cpp/ql/src/change-notes/2026-03-19-suspicious-add-sizeof.md delete mode 100644 cpp/ql/src/change-notes/2026-03-19-tainted-format-string.md delete mode 100644 cpp/ql/src/change-notes/2026-03-30-warning-diagnostics.md create mode 100644 cpp/ql/src/change-notes/released/1.6.0.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.64.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.64.md delete mode 100644 csharp/ql/lib/change-notes/2026-03-26-expanded-assignments.md rename csharp/ql/lib/change-notes/{2026-03-19-fix-log-forging-extension-methods.md => released/5.4.12.md} (52%) delete mode 100644 csharp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename csharp/ql/src/change-notes/{2026-03-31-constantcondition-simplify.md => released/1.7.0.md} (58%) create mode 100644 go/ql/consistency-queries/change-notes/released/1.0.47.md create mode 100644 go/ql/lib/change-notes/released/7.0.5.md rename go/ql/src/change-notes/{2026-03-13-adjust-xss-and-log-injection-severity.md => released/1.6.0.md} (87%) delete mode 100644 java/ql/lib/change-notes/2026-03-26-kotlin-2.3.20.md delete mode 100644 java/ql/lib/change-notes/2026-03-28-tainted-arithmetic-bounds-check.md rename java/ql/lib/change-notes/{2026-03-27-add-ec-to-secure-algorithms.md => released/9.0.3.md} (63%) rename java/ql/src/change-notes/{2026-03-13-adjust-xss-and-log-injection-severity.md => released/1.11.0.md} (88%) create mode 100644 javascript/ql/lib/change-notes/released/2.6.27.md create mode 100644 javascript/ql/src/change-notes/released/2.3.7.md create mode 100644 misc/suite-helpers/change-notes/released/1.0.47.md rename python/ql/lib/change-notes/{2026-03-11-fix-unresolved-relative-imports.md => released/7.0.4.md} (89%) delete mode 100644 python/ql/src/change-notes/2026-03-13-port-simple-points-to-queries.md rename python/ql/src/change-notes/{2026-03-13-adjust-xss-and-log-injection-severity.md => released/1.8.0.md} (56%) create mode 100644 ruby/ql/lib/change-notes/released/5.1.15.md rename ruby/ql/src/change-notes/{2026-03-13-adjust-xss-and-log-injection-severity.md => released/1.6.0.md} (87%) create mode 100644 rust/ql/lib/change-notes/released/0.2.11.md rename rust/ql/src/change-notes/{2026-03-13-adjust-xss-and-log-injection-severity.md => released/0.1.32.md} (84%) create mode 100644 shared/concepts/change-notes/released/0.0.21.md create mode 100644 shared/controlflow/change-notes/released/2.0.31.md create mode 100644 shared/dataflow/change-notes/released/2.1.3.md create mode 100644 shared/mad/change-notes/released/1.0.47.md create mode 100644 shared/quantum/change-notes/released/0.0.25.md create mode 100644 shared/rangeanalysis/change-notes/released/1.0.47.md create mode 100644 shared/regex/change-notes/released/1.0.47.md create mode 100644 shared/ssa/change-notes/released/2.0.23.md create mode 100644 shared/threat-models/change-notes/released/1.0.47.md create mode 100644 shared/tutorial/change-notes/released/1.0.47.md create mode 100644 shared/typeflow/change-notes/released/1.0.47.md create mode 100644 shared/typeinference/change-notes/released/0.0.28.md create mode 100644 shared/typetracking/change-notes/released/2.0.31.md create mode 100644 shared/typos/change-notes/released/1.0.47.md create mode 100644 shared/util/change-notes/released/2.0.34.md create mode 100644 shared/xml/change-notes/released/1.0.47.md create mode 100644 shared/yaml/change-notes/released/1.0.47.md create mode 100644 swift/ql/lib/change-notes/released/6.3.3.md rename swift/ql/src/change-notes/{2026-03-13-adjust-xss-and-log-injection-severity.md => released/1.3.0.md} (75%) diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 03201c9603a..d625bc6f619 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.33 + +No user-facing changes. + ## 0.4.32 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.33.md b/actions/ql/lib/change-notes/released/0.4.33.md new file mode 100644 index 00000000000..99c04e352df --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.33.md @@ -0,0 +1,3 @@ +## 0.4.33 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 3201cd9b063..7581fef2abf 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.32 +lastReleaseVersion: 0.4.33 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index bc4a8ba134b..131f29b87aa 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.33-dev +version: 0.4.33 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index e42a19a8168..d991237aca9 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.25 + +No user-facing changes. + ## 0.6.24 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.25.md b/actions/ql/src/change-notes/released/0.6.25.md new file mode 100644 index 00000000000..b9d9e69c728 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.25.md @@ -0,0 +1,3 @@ +## 0.6.25 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index f4aa7271ace..b8288b39222 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.24 +lastReleaseVersion: 0.6.25 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 3f76a5273f1..024862b808a 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.25-dev +version: 0.6.25 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 686195e9211..5b5bc748c5d 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,23 @@ +## 9.0.0 + +### Breaking Changes + +* The `SourceModelCsv`, `SinkModelCsv`, and `SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from `ExternalFlow.qll`. New models should be added as `.model.yml` files in the `ext/` directory. + +### New Features + +* Added a subclass `MesonPrivateTestFile` of `ConfigurationTestFile` that represents files created by Meson to test the build configuration. +* Added a class `ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. +* Added a class `ConstructorDefaultFieldInit` to represent default field initializations. +* Added a class `DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. +* Added a predicate `Node::asIndirectInstruction` which returns the `Instruction` that defines the indirect dataflow node, if any. +* Added a class `IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. + +### Minor Analysis Improvements + +* Added `HttpReceiveHttpRequest`, `HttpReceiveRequestEntityBody`, and `HttpReceiveClientCertificate` from Win32's `http.h` as remote flow sources. +* Added dataflow through members initialized via non-static data member initialization (NSDMI). + ## 8.0.3 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/2026-03-20-add-indirect-uninitialized-node.md b/cpp/ql/lib/change-notes/2026-03-20-add-indirect-uninitialized-node.md deleted file mode 100644 index 07235e047d4..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-20-add-indirect-uninitialized-node.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a class `IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. diff --git a/cpp/ql/lib/change-notes/2026-03-23-indirect-parameter-nodes-and-indirect-instructions.md b/cpp/ql/lib/change-notes/2026-03-23-indirect-parameter-nodes-and-indirect-instructions.md deleted file mode 100644 index c3bd4028ee9..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-23-indirect-parameter-nodes-and-indirect-instructions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: feature ---- -* Added a class `DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. -* Added a predicate `Node::asIndirectInstruction` which returns the `Instruction` that defines the indirect dataflow node, if any. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2026-03-24-field-init.md b/cpp/ql/lib/change-notes/2026-03-24-field-init.md deleted file mode 100644 index c11329a3d9f..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-24-field-init.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: feature ---- -* Added a class `ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. -* Added a class `ConstructorDefaultFieldInit` to represent default field initializations. diff --git a/cpp/ql/lib/change-notes/2026-03-26-convert-csv-models-to-yml.md b/cpp/ql/lib/change-notes/2026-03-26-convert-csv-models-to-yml.md deleted file mode 100644 index 41d77b518f1..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-26-convert-csv-models-to-yml.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: breaking ---- -* The `SourceModelCsv`, `SinkModelCsv`, and `SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from `ExternalFlow.qll`. New models should be added as `.model.yml` files in the `ext/` directory. diff --git a/cpp/ql/lib/change-notes/2026-03-30-nsdmi-dataflow.md b/cpp/ql/lib/change-notes/2026-03-30-nsdmi-dataflow.md deleted file mode 100644 index 8bf87900330..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-30-nsdmi-dataflow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added dataflow through members initialized via non-static data member initialization (NSDMI). \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2026-03-31-http-flow-sources.md b/cpp/ql/lib/change-notes/2026-03-31-http-flow-sources.md deleted file mode 100644 index 54a0ad81036..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-31-http-flow-sources.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added `HttpReceiveHttpRequest`, `HttpReceiveRequestEntityBody`, and `HttpReceiveClientCertificate` from Win32's `http.h` as remote flow sources. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2026-03-31-meson.md b/cpp/ql/lib/change-notes/2026-03-31-meson.md deleted file mode 100644 index c18de40b85d..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-31-meson.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a subclass `MesonPrivateTestFile` of `ConfigurationTestFile` that represents files created by Meson to test the build configuration. diff --git a/cpp/ql/lib/change-notes/released/9.0.0.md b/cpp/ql/lib/change-notes/released/9.0.0.md new file mode 100644 index 00000000000..2f97209a02d --- /dev/null +++ b/cpp/ql/lib/change-notes/released/9.0.0.md @@ -0,0 +1,19 @@ +## 9.0.0 + +### Breaking Changes + +* The `SourceModelCsv`, `SinkModelCsv`, and `SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from `ExternalFlow.qll`. New models should be added as `.model.yml` files in the `ext/` directory. + +### New Features + +* Added a subclass `MesonPrivateTestFile` of `ConfigurationTestFile` that represents files created by Meson to test the build configuration. +* Added a class `ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. +* Added a class `ConstructorDefaultFieldInit` to represent default field initializations. +* Added a class `DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. +* Added a predicate `Node::asIndirectInstruction` which returns the `Instruction` that defines the indirect dataflow node, if any. +* Added a class `IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. + +### Minor Analysis Improvements + +* Added `HttpReceiveHttpRequest`, `HttpReceiveRequestEntityBody`, and `HttpReceiveClientCertificate` from Win32's `http.h` as remote flow sources. +* Added dataflow through members initialized via non-static data member initialization (NSDMI). diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 1be4ac8d0d3..fd5f4a48b3c 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 8.0.3 +lastReleaseVersion: 9.0.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 802f3c3e4de..e4e7a96ef68 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 8.0.4-dev +version: 9.0.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 126b1d9efa3..a3f9d1836ad 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,17 @@ +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Minor Analysis Improvements + +* The "Extraction warnings" (`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields `ExtractionRecoverableWarning`s for `build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. +* Fixed an issue with the "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Uncontrolled format string" (`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. +* Fixed an issue with the "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query causing false positive results in `build-mode: none` databases. + ## 1.5.15 No user-facing changes. diff --git a/cpp/ql/src/change-notes/2026-03-11-integer-multiplication-cast-to-long.md b/cpp/ql/src/change-notes/2026-03-11-integer-multiplication-cast-to-long.md deleted file mode 100644 index 4d4a66c0a22..00000000000 --- a/cpp/ql/src/change-notes/2026-03-11-integer-multiplication-cast-to-long.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/cpp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md deleted file mode 100644 index 0810e9c49ba..00000000000 --- a/cpp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The `@security-severity` metadata of `cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/cpp/ql/src/change-notes/2026-03-16-wrong-type-format-argument.md b/cpp/ql/src/change-notes/2026-03-16-wrong-type-format-argument.md deleted file mode 100644 index 84aef7791fc..00000000000 --- a/cpp/ql/src/change-notes/2026-03-16-wrong-type-format-argument.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/change-notes/2026-03-19-suspicious-add-sizeof.md b/cpp/ql/src/change-notes/2026-03-19-suspicious-add-sizeof.md deleted file mode 100644 index 387e2d44b46..00000000000 --- a/cpp/ql/src/change-notes/2026-03-19-suspicious-add-sizeof.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/change-notes/2026-03-19-tainted-format-string.md b/cpp/ql/src/change-notes/2026-03-19-tainted-format-string.md deleted file mode 100644 index 6a1133917bf..00000000000 --- a/cpp/ql/src/change-notes/2026-03-19-tainted-format-string.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Uncontrolled format string" (`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. diff --git a/cpp/ql/src/change-notes/2026-03-30-warning-diagnostics.md b/cpp/ql/src/change-notes/2026-03-30-warning-diagnostics.md deleted file mode 100644 index 0db0d7c718d..00000000000 --- a/cpp/ql/src/change-notes/2026-03-30-warning-diagnostics.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Extraction warnings" (`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields `ExtractionRecoverableWarning`s for `build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. diff --git a/cpp/ql/src/change-notes/released/1.6.0.md b/cpp/ql/src/change-notes/released/1.6.0.md new file mode 100644 index 00000000000..3bbb9480660 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.6.0.md @@ -0,0 +1,13 @@ +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Minor Analysis Improvements + +* The "Extraction warnings" (`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields `ExtractionRecoverableWarning`s for `build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. +* Fixed an issue with the "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Uncontrolled format string" (`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. +* Fixed an issue with the "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index b41e6e78a66..c4f0b07d533 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.15 +lastReleaseVersion: 1.6.0 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 3160da2efb6..fa0391ae9c1 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.16-dev +version: 1.6.0 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index dfbc0f9f376..f7107d18c01 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.64 + +No user-facing changes. + ## 1.7.63 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.64.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.64.md new file mode 100644 index 00000000000..47290bbbeb3 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.64.md @@ -0,0 +1,3 @@ +## 1.7.64 + +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 3d19252da0b..f41e954c9ae 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.63 +lastReleaseVersion: 1.7.64 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 972746e9255..9c094c18dc6 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.64-dev +version: 1.7.64 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index dfbc0f9f376..f7107d18c01 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.64 + +No user-facing changes. + ## 1.7.63 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.64.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.64.md new file mode 100644 index 00000000000..47290bbbeb3 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.64.md @@ -0,0 +1,3 @@ +## 1.7.64 + +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 3d19252da0b..f41e954c9ae 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.63 +lastReleaseVersion: 1.7.64 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 7a4e4fff627..666c44a2805 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.64-dev +version: 1.7.64 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 7261891eed7..57d99a41480 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 5.4.12 + +### Minor Analysis Improvements + +* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. +* The `cs/log-forging` query no longer treats arguments to extension methods with + source code on `ILogger` types as sinks. Instead, taint is tracked interprocedurally + through extension method bodies, reducing false positives when extension methods + sanitize input internally. + ## 5.4.11 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/2026-03-26-expanded-assignments.md b/csharp/ql/lib/change-notes/2026-03-26-expanded-assignments.md deleted file mode 100644 index 159ab1ee3c6..00000000000 --- a/csharp/ql/lib/change-notes/2026-03-26-expanded-assignments.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. diff --git a/csharp/ql/lib/change-notes/2026-03-19-fix-log-forging-extension-methods.md b/csharp/ql/lib/change-notes/released/5.4.12.md similarity index 52% rename from csharp/ql/lib/change-notes/2026-03-19-fix-log-forging-extension-methods.md rename to csharp/ql/lib/change-notes/released/5.4.12.md index 65ce217b105..506fae5a15e 100644 --- a/csharp/ql/lib/change-notes/2026-03-19-fix-log-forging-extension-methods.md +++ b/csharp/ql/lib/change-notes/released/5.4.12.md @@ -1,6 +1,8 @@ ---- -category: minorAnalysis ---- +## 5.4.12 + +### Minor Analysis Improvements + +* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. * The `cs/log-forging` query no longer treats arguments to extension methods with source code on `ILogger` types as sinks. Instead, taint is tracked interprocedurally through extension method bodies, reducing false positives when extension methods diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index f742ee59b53..43db6e52c98 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.11 +lastReleaseVersion: 5.4.12 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index b45bd57ad56..d5088885cdb 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.12-dev +version: 5.4.12 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 39bfe944d5d..fc0f8c58d79 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.7.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + +* The `cs/constant-condition` query has been simplified. The query no longer reports trivially constant conditions as they were found to generally be intentional. As a result, it should now produce fewer false positives. Additionally, the simplification means that it now reports all the results that `cs/constant-comparison` used to report, and as consequence, that query has been deleted. + ## 1.6.6 No user-facing changes. diff --git a/csharp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/csharp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md deleted file mode 100644 index c317194bc25..00000000000 --- a/csharp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: queryMetadata ---- -* The `@security-severity` metadata of `cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). -* The `@security-severity` metadata of `cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/csharp/ql/src/change-notes/2026-03-31-constantcondition-simplify.md b/csharp/ql/src/change-notes/released/1.7.0.md similarity index 58% rename from csharp/ql/src/change-notes/2026-03-31-constantcondition-simplify.md rename to csharp/ql/src/change-notes/released/1.7.0.md index a1051d4c00f..906a13d68d0 100644 --- a/csharp/ql/src/change-notes/2026-03-31-constantcondition-simplify.md +++ b/csharp/ql/src/change-notes/released/1.7.0.md @@ -1,4 +1,10 @@ ---- -category: majorAnalysis ---- +## 1.7.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + * The `cs/constant-condition` query has been simplified. The query no longer reports trivially constant conditions as they were found to generally be intentional. As a result, it should now produce fewer false positives. Additionally, the simplification means that it now reports all the results that `cs/constant-comparison` used to report, and as consequence, that query has been deleted. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index f8e54f30a67..d1184cc6750 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.6 +lastReleaseVersion: 1.7.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 728074e959d..64d02609317 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.6.7-dev +version: 1.7.0 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 065f61912fa..34ae2fd2277 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.47.md b/go/ql/consistency-queries/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +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 05205e6a59e..dcec0f6405a 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.46 +lastReleaseVersion: 1.0.47 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index ba15945e1a2..53b3d29e717 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.47-dev +version: 1.0.47 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 09f0c884320..441d15a0d0e 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 7.0.5 + +No user-facing changes. + ## 7.0.4 No user-facing changes. diff --git a/go/ql/lib/change-notes/released/7.0.5.md b/go/ql/lib/change-notes/released/7.0.5.md new file mode 100644 index 00000000000..adee6ebe3a7 --- /dev/null +++ b/go/ql/lib/change-notes/released/7.0.5.md @@ -0,0 +1,3 @@ +## 7.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 6630ee1984a..2cff21d59fe 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.0.4 +lastReleaseVersion: 7.0.5 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index f3e9e50bf7b..5c371bb7ae4 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 7.0.5-dev +version: 7.0.5 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index f6fcaa51ab3..2bc95cc1922 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `go/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `go/html-template-escaping-bypass-xss`, `go/reflected-xss` and `go/stored-xss` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.5.10 No user-facing changes. diff --git a/go/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/go/ql/src/change-notes/released/1.6.0.md similarity index 87% rename from go/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to go/ql/src/change-notes/released/1.6.0.md index 45320bcd719..1e508254885 100644 --- a/go/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/go/ql/src/change-notes/released/1.6.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.6.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `go/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `go/html-template-escaping-bypass-xss`, `go/reflected-xss` and `go/stored-xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index fda54b31bff..c4f0b07d533 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.10 +lastReleaseVersion: 1.6.0 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index fd374637a9b..1ec2c5b9430 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.11-dev +version: 1.6.0 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index ecbffa5461c..caa1eaecb94 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,12 @@ +## 9.0.3 + +### Minor Analysis Improvements + +* The `java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in `if`-condition bounds-checking patterns. For example, `if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. +* The `java/potentially-weak-cryptographic-algorithm` query no longer flags Elliptic Curve algorithms (`EC`, `ECDSA`, `ECDH`, `EdDSA`, `Ed25519`, `Ed448`, `XDH`, `X25519`, `X448`), HMAC-based algorithms (`HMACSHA1`, `HMACSHA256`, `HMACSHA384`, `HMACSHA512`), or PBKDF2 key derivation as potentially insecure. These are modern, secure algorithms recommended by NIST and other standards bodies. This will reduce the number of false positives for this query. +* The first argument of the method `getInstance` of `java.security.Signature` is now modeled as a sink for `java/potentially-weak-cryptographic-algorithm`, `java/weak-cryptographic-algorithm` and `java/rsa-without-oaep`. This will increase the number of alerts for these queries. +* Kotlin versions up to 2.3.20 are now supported. + ## 9.0.2 No user-facing changes. diff --git a/java/ql/lib/change-notes/2026-03-26-kotlin-2.3.20.md b/java/ql/lib/change-notes/2026-03-26-kotlin-2.3.20.md deleted file mode 100644 index b18cff45704..00000000000 --- a/java/ql/lib/change-notes/2026-03-26-kotlin-2.3.20.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Kotlin versions up to 2.3.20 are now supported. diff --git a/java/ql/lib/change-notes/2026-03-28-tainted-arithmetic-bounds-check.md b/java/ql/lib/change-notes/2026-03-28-tainted-arithmetic-bounds-check.md deleted file mode 100644 index 0688815c822..00000000000 --- a/java/ql/lib/change-notes/2026-03-28-tainted-arithmetic-bounds-check.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in `if`-condition bounds-checking patterns. For example, `if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. diff --git a/java/ql/lib/change-notes/2026-03-27-add-ec-to-secure-algorithms.md b/java/ql/lib/change-notes/released/9.0.3.md similarity index 63% rename from java/ql/lib/change-notes/2026-03-27-add-ec-to-secure-algorithms.md rename to java/ql/lib/change-notes/released/9.0.3.md index ee53bedd417..828b5867f8b 100644 --- a/java/ql/lib/change-notes/2026-03-27-add-ec-to-secure-algorithms.md +++ b/java/ql/lib/change-notes/released/9.0.3.md @@ -1,5 +1,8 @@ ---- -category: minorAnalysis ---- +## 9.0.3 + +### Minor Analysis Improvements + +* The `java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in `if`-condition bounds-checking patterns. For example, `if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. * The `java/potentially-weak-cryptographic-algorithm` query no longer flags Elliptic Curve algorithms (`EC`, `ECDSA`, `ECDH`, `EdDSA`, `Ed25519`, `Ed448`, `XDH`, `X25519`, `X448`), HMAC-based algorithms (`HMACSHA1`, `HMACSHA256`, `HMACSHA384`, `HMACSHA512`), or PBKDF2 key derivation as potentially insecure. These are modern, secure algorithms recommended by NIST and other standards bodies. This will reduce the number of false positives for this query. * The first argument of the method `getInstance` of `java.security.Signature` is now modeled as a sink for `java/potentially-weak-cryptographic-algorithm`, `java/weak-cryptographic-algorithm` and `java/rsa-without-oaep`. This will increase the number of alerts for these queries. +* Kotlin versions up to 2.3.20 are now supported. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 533351acdc9..175658aaf53 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 9.0.2 +lastReleaseVersion: 9.0.3 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index fc1d2c13281..d840954d623 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 9.0.3-dev +version: 9.0.3 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 8d9ce4a75b4..2a2f8052092 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 1.11.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `java/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `java/android/webview-addjavascriptinterface`, `java/android/websettings-javascript-enabled` and `java/xss` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.10.11 No user-facing changes. diff --git a/java/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/java/ql/src/change-notes/released/1.11.0.md similarity index 88% rename from java/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to java/ql/src/change-notes/released/1.11.0.md index fa1288af16e..0be4b0481d6 100644 --- a/java/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/java/ql/src/change-notes/released/1.11.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.11.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `java/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `java/android/webview-addjavascriptinterface`, `java/android/websettings-javascript-enabled` and `java/xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index d267e07fb66..276088d81dc 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.10.11 +lastReleaseVersion: 1.11.0 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 78372a6ec85..2c4f95fb25b 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.12-dev +version: 1.11.0 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 52d003921a0..fedb0b9b587 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.6.27 + +No user-facing changes. + ## 2.6.26 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/released/2.6.27.md b/javascript/ql/lib/change-notes/released/2.6.27.md new file mode 100644 index 00000000000..94482b5ebe6 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.27.md @@ -0,0 +1,3 @@ +## 2.6.27 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 679fedfb2ca..2ce86b10a85 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.26 +lastReleaseVersion: 2.6.27 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 06ba4c2b8c6..df3fa463f35 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.27-dev +version: 2.6.27 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 272799b3da3..29e6c8e8da3 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.3.7 + +No user-facing changes. + ## 2.3.6 No user-facing changes. diff --git a/javascript/ql/src/change-notes/released/2.3.7.md b/javascript/ql/src/change-notes/released/2.3.7.md new file mode 100644 index 00000000000..5be2835f398 --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.3.7.md @@ -0,0 +1,3 @@ +## 2.3.7 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 2c82422104b..914cded08b3 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.3.6 +lastReleaseVersion: 2.3.7 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index c01152a2480..7bd7a08f955 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.3.7-dev +version: 2.3.7 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 1b5fe4c06da..4b73639b1f7 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.47.md b/misc/suite-helpers/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 3107188efcf..9ee0e7338b2 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.47-dev +version: 1.0.47 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index ec5ff5ffe4f..a6833ea8db3 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.0.4 + +### Bug Fixes + +- Fixed the resolution of relative imports such as `from . import helper` inside namespace packages (directories without an `__init__.py` file), which previously did not work correctly, leading to missing flow. + ## 7.0.3 No user-facing changes. diff --git a/python/ql/lib/change-notes/2026-03-11-fix-unresolved-relative-imports.md b/python/ql/lib/change-notes/released/7.0.4.md similarity index 89% rename from python/ql/lib/change-notes/2026-03-11-fix-unresolved-relative-imports.md rename to python/ql/lib/change-notes/released/7.0.4.md index 15290fb3d66..91464598a0e 100644 --- a/python/ql/lib/change-notes/2026-03-11-fix-unresolved-relative-imports.md +++ b/python/ql/lib/change-notes/released/7.0.4.md @@ -1,5 +1,5 @@ ---- -category: fix ---- +## 7.0.4 + +### Bug Fixes - Fixed the resolution of relative imports such as `from . import helper` inside namespace packages (directories without an `__init__.py` file), which previously did not work correctly, leading to missing flow. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index cf80607304e..6630ee1984a 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.0.3 +lastReleaseVersion: 7.0.4 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index bdf4cd0d804..11bd0783583 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 7.0.4-dev +version: 7.0.4 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 4b109dca569..d5f5269c61d 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.8.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `py/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `py/jinja2/autoescape-false` and `py/reflective-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + +- Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. + ## 1.7.11 No user-facing changes. diff --git a/python/ql/src/change-notes/2026-03-13-port-simple-points-to-queries.md b/python/ql/src/change-notes/2026-03-13-port-simple-points-to-queries.md deleted file mode 100644 index 3673b6de83a..00000000000 --- a/python/ql/src/change-notes/2026-03-13-port-simple-points-to-queries.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: majorAnalysis ---- - -- Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. diff --git a/python/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/python/ql/src/change-notes/released/1.8.0.md similarity index 56% rename from python/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to python/ql/src/change-notes/released/1.8.0.md index 4278d0171e3..123b4604da3 100644 --- a/python/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/python/ql/src/change-notes/released/1.8.0.md @@ -1,5 +1,10 @@ ---- -category: queryMetadata ---- +## 1.8.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `py/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `py/jinja2/autoescape-false` and `py/reflective-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + +- Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 6e5b0b6e2f2..dc8a37cc443 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.11 +lastReleaseVersion: 1.8.0 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 32f1015130b..d3c52c315e8 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.12-dev +version: 1.8.0 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index ce1187d6442..40cb88d396f 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.15 + +No user-facing changes. + ## 5.1.14 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.1.15.md b/ruby/ql/lib/change-notes/released/5.1.15.md new file mode 100644 index 00000000000..c3ff6293f36 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.15.md @@ -0,0 +1,3 @@ +## 5.1.15 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index bf92d1c672e..840348ed924 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.14 +lastReleaseVersion: 5.1.15 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 56537ce0a17..687618237bb 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.15-dev +version: 5.1.15 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 884e126d9a1..cb4c0ae7874 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `rb/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `rb/reflected-xss`, `rb/stored-xss` and `rb/html-constructed-from-input` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.5.11 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/ruby/ql/src/change-notes/released/1.6.0.md similarity index 87% rename from ruby/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to ruby/ql/src/change-notes/released/1.6.0.md index 459c2ce7f91..0398dab7aaf 100644 --- a/ruby/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/ruby/ql/src/change-notes/released/1.6.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.6.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `rb/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `rb/reflected-xss`, `rb/stored-xss` and `rb/html-constructed-from-input` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 7e8e8103d99..c4f0b07d533 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.11 +lastReleaseVersion: 1.6.0 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 20487d171b1..a0473f5f849 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.12-dev +version: 1.6.0 groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index 2672c08645b..eea5bd6e89d 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/rust/ql/lib/change-notes/released/0.2.11.md b/rust/ql/lib/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 502f10265fa..cef8c27d1cb 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.11-dev +version: 0.2.11 groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index 35445b7d626..eab921bcbd6 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.1.32 + +### Query Metadata Changes + +* The `@security-severity` metadata of `rust/log-injection` has been increased from 2.6 (low) to 6.1 (medium). +* The `@security-severity` metadata of `rust/xss` has been increased from 6.1 (medium) to 7.8 (high). + ## 0.1.31 No user-facing changes. diff --git a/rust/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/rust/ql/src/change-notes/released/0.1.32.md similarity index 84% rename from rust/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to rust/ql/src/change-notes/released/0.1.32.md index 8bfc5be1551..d18f3ccd08d 100644 --- a/rust/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/rust/ql/src/change-notes/released/0.1.32.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 0.1.32 + +### Query Metadata Changes + * The `@security-severity` metadata of `rust/log-injection` has been increased from 2.6 (low) to 6.1 (medium). * The `@security-severity` metadata of `rust/xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 8f9b017abfe..21bbd752f27 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.31 +lastReleaseVersion: 0.1.32 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 48abcc305ee..41f566526eb 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.32-dev +version: 0.1.32 groups: - rust - queries diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index fc5bdcd8e23..704ea3e8e01 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.21 + +No user-facing changes. + ## 0.0.20 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.21.md b/shared/concepts/change-notes/released/0.0.21.md new file mode 100644 index 00000000000..d32472e976d --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.21.md @@ -0,0 +1,3 @@ +## 0.0.21 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index d2e86745bca..0c15c351db4 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.20 +lastReleaseVersion: 0.0.21 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 04966d3a5b1..c2cc618dd2d 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.21-dev +version: 0.0.21 groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 8725b6df20a..baca729ddda 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.31 + +No user-facing changes. + ## 2.0.30 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.31.md b/shared/controlflow/change-notes/released/2.0.31.md new file mode 100644 index 00000000000..b3cd05e3de4 --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.31.md @@ -0,0 +1,3 @@ +## 2.0.31 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 19c80429585..783d47207cd 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.30 +lastReleaseVersion: 2.0.31 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 2bb2efdb8c0..c5c64a8bcb6 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.31-dev +version: 2.0.31 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index b2836038ddf..52c893f78e2 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.1.3 + +No user-facing changes. + ## 2.1.2 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.1.3.md b/shared/dataflow/change-notes/released/2.1.3.md new file mode 100644 index 00000000000..a1338012fcd --- /dev/null +++ b/shared/dataflow/change-notes/released/2.1.3.md @@ -0,0 +1,3 @@ +## 2.1.3 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 1a4e53e8772..345fb0c73a4 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.1.2 +lastReleaseVersion: 2.1.3 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index da82b4bcd40..3009091cfdb 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.1.3-dev +version: 2.1.3 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index f08f6492daf..1bffb976cf8 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.47.md b/shared/mad/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 00243bdecc0..678be4858dc 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.47-dev +version: 1.0.47 groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index 20ebb6b42c0..8d524a11a09 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.25 + +No user-facing changes. + ## 0.0.24 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.25.md b/shared/quantum/change-notes/released/0.0.25.md new file mode 100644 index 00000000000..e41a9acfa06 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.25.md @@ -0,0 +1,3 @@ +## 0.0.25 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index b956773a07f..6d0e80a50c3 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.24 +lastReleaseVersion: 0.0.25 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 4a33f9168a2..38fca7fc6dc 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.25-dev +version: 0.0.25 groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 0014924513d..0ab7487192c 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.47.md b/shared/rangeanalysis/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index fe558ac3f18..2cf45348dc0 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.47-dev +version: 1.0.47 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index 0b6da82a669..dd6f0c4cad6 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.47.md b/shared/regex/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 58fc5cc3e10..b2070c25fb1 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.47-dev +version: 1.0.47 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 9b5af989964..3573140fc41 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.23 + +No user-facing changes. + ## 2.0.22 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.23.md b/shared/ssa/change-notes/released/2.0.23.md new file mode 100644 index 00000000000..ab6f6f171ed --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.23.md @@ -0,0 +1,3 @@ +## 2.0.23 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 980bdfe195b..1bd7e296a34 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.22 +lastReleaseVersion: 2.0.23 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 3cf46284247..ab991edcccc 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.23-dev +version: 2.0.23 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index 065f61912fa..34ae2fd2277 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.47.md b/shared/threat-models/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index c3589be5880..37f9b1ba744 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.47-dev +version: 1.0.47 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 297d40b694f..cf8f60d1d46 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.47.md b/shared/tutorial/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 53716b9b5ca..d2ab12f9345 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.47-dev +version: 1.0.47 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 039a7ef99a3..8c5ee5e9486 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.47.md b/shared/typeflow/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index ea0f559611c..c8d7a74c297 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.47-dev +version: 1.0.47 groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index be06e2108a8..7153b9314b1 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.28 + +No user-facing changes. + ## 0.0.27 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.28.md b/shared/typeinference/change-notes/released/0.0.28.md new file mode 100644 index 00000000000..1b4fdd47819 --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.28.md @@ -0,0 +1,3 @@ +## 0.0.28 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index dbab90d6989..3462db7d348 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.27 +lastReleaseVersion: 0.0.28 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 75aedbf6423..d459c36ce72 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.28-dev +version: 0.0.28 groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 4132c8bcd99..f779002267a 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.31 + +No user-facing changes. + ## 2.0.30 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.31.md b/shared/typetracking/change-notes/released/2.0.31.md new file mode 100644 index 00000000000..b3cd05e3de4 --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.31.md @@ -0,0 +1,3 @@ +## 2.0.31 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 19c80429585..783d47207cd 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.30 +lastReleaseVersion: 2.0.31 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index b9998e1240a..d2d55be5b55 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.31-dev +version: 2.0.31 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 6f0db2fa4b3..b49f756fef0 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.47.md b/shared/typos/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index dc62caedd6b..b9b579b5176 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.47-dev +version: 1.0.47 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 56a45488e07..cb3ac7bbe79 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.34 + +No user-facing changes. + ## 2.0.33 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.34.md b/shared/util/change-notes/released/2.0.34.md new file mode 100644 index 00000000000..fd170d38ce6 --- /dev/null +++ b/shared/util/change-notes/released/2.0.34.md @@ -0,0 +1,3 @@ +## 2.0.34 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 92e23200b4d..339a3ce7c57 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.33 +lastReleaseVersion: 2.0.34 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index d27b3d6c59c..4f7bb193afb 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.34-dev +version: 2.0.34 groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index dc06867e32d..98702251320 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.47.md b/shared/xml/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 5195fcbbe18..fe6e59d133e 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.47-dev +version: 1.0.47 groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 557db2b4405..4a41f8ee9df 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.47.md b/shared/yaml/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index 05205e6a59e..dcec0f6405a 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.47 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index b6f74301d3a..f8e5976f8fa 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.47-dev +version: 1.0.47 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index fda32d265b0..3967689b933 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.3.3 + +No user-facing changes. + ## 6.3.2 No user-facing changes. diff --git a/swift/ql/lib/change-notes/released/6.3.3.md b/swift/ql/lib/change-notes/released/6.3.3.md new file mode 100644 index 00000000000..86c54aaebb2 --- /dev/null +++ b/swift/ql/lib/change-notes/released/6.3.3.md @@ -0,0 +1,3 @@ +## 6.3.3 + +No user-facing changes. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index bf4d875e15a..83b98dcdbc3 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.3.2 +lastReleaseVersion: 6.3.3 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index d403d14d991..ebe1f051136 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.3.3-dev +version: 6.3.3 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 1d4d9877b60..f880dc3366f 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.3.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `swift/unsafe-webview-fetch` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.2.20 No user-facing changes. diff --git a/swift/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/swift/ql/src/change-notes/released/1.3.0.md similarity index 75% rename from swift/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to swift/ql/src/change-notes/released/1.3.0.md index a46302ed146..5a85d7239d7 100644 --- a/swift/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/swift/ql/src/change-notes/released/1.3.0.md @@ -1,4 +1,5 @@ ---- -category: queryMetadata ---- +## 1.3.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `swift/unsafe-webview-fetch` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 8e035aaa1f4..ec16350ed6f 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.20 +lastReleaseVersion: 1.3.0 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 64c712af472..84b3e1d0b5d 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.21-dev +version: 1.3.0 groups: - swift - queries From 242090e0acdb7d1af75b4f3e4c556629e24f95ff Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 6 Apr 2026 13:49:20 +0000 Subject: [PATCH 023/208] Post-release preparation for codeql-cli-2.25.2 --- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 131f29b87aa..fec27415800 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.33 +version: 0.4.34-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 024862b808a..3216a36f3d0 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.25 +version: 0.6.26-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index e4e7a96ef68..dbf57d2b869 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 9.0.0 +version: 9.0.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index fa0391ae9c1..4648951796c 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.6.0 +version: 1.6.1-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 9c094c18dc6..006ef851567 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.64 +version: 1.7.65-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 666c44a2805..af5fd98f58a 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.64 +version: 1.7.65-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index d5088885cdb..02c1ccd0d33 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.12 +version: 5.4.13-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 64d02609317..9ea341d1b38 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.7.0 +version: 1.7.1-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 53b3d29e717..c9dda4765dd 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.47 +version: 1.0.48-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 5c371bb7ae4..2d7338a020d 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 7.0.5 +version: 7.0.6-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 1ec2c5b9430..de4e5e06d38 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.6.0 +version: 1.6.1-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index d840954d623..7f058cfb8d6 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 9.0.3 +version: 9.0.4-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 2c4f95fb25b..72b4a5f94e6 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.11.0 +version: 1.11.1-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index df3fa463f35..e0834c056d1 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.27 +version: 2.6.28-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 7bd7a08f955..117fae183e9 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.3.7 +version: 2.3.8-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 9ee0e7338b2..1d853802342 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.47 +version: 1.0.48-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 11bd0783583..fe87c5761cf 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 7.0.4 +version: 7.0.5-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index d3c52c315e8..aa2a2364854 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.8.0 +version: 1.8.1-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 687618237bb..bbf4de40909 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.15 +version: 5.1.16-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index a0473f5f849..191689565de 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.6.0 +version: 1.6.1-dev groups: - ruby - queries diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index cef8c27d1cb..f5031020037 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.11 +version: 0.2.12-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 41f566526eb..f78504db76e 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.32 +version: 0.1.33-dev groups: - rust - queries diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index c2cc618dd2d..bf6e8b6018c 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.21 +version: 0.0.22-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index c5c64a8bcb6..5573548794d 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.31 +version: 2.0.32-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 3009091cfdb..3b917def33d 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.1.3 +version: 2.1.4-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 678be4858dc..b5583f8c55a 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.47 +version: 1.0.48-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 38fca7fc6dc..a19e99ef7ea 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.25 +version: 0.0.26-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 2cf45348dc0..d493350749e 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.47 +version: 1.0.48-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index b2070c25fb1..7b953dcff1c 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.47 +version: 1.0.48-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index ab991edcccc..a8fa9a11424 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.23 +version: 2.0.24-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 37f9b1ba744..a4a367a990b 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.47 +version: 1.0.48-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index d2ab12f9345..f961ccdc0eb 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.47 +version: 1.0.48-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index c8d7a74c297..f7e111d28fd 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.47 +version: 1.0.48-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index d459c36ce72..97c8df36895 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.28 +version: 0.0.29-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index d2d55be5b55..aa029687531 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.31 +version: 2.0.32-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index b9b579b5176..37fc79bb1df 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.47 +version: 1.0.48-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 4f7bb193afb..02e6241dccb 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.34 +version: 2.0.35-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index fe6e59d133e..0d75859bdb9 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.47 +version: 1.0.48-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index f8e5976f8fa..cfea54e0b5b 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.47 +version: 1.0.48-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index ebe1f051136..32c6458ddea 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.3.3 +version: 6.3.4-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 84b3e1d0b5d..5b6c7a6977a 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.3.0 +version: 1.3.1-dev groups: - swift - queries From b21dba6131e8550f7ea940c3341ccfbfbbd3dc6d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 7 Apr 2026 13:06:34 +0100 Subject: [PATCH 024/208] C++: Update code scanning suite .expected. --- .../integration-tests/query-suite/cpp-code-scanning.qls.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected b/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected index 57d240fd795..4e86c27d53f 100644 --- a/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected +++ b/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected @@ -40,6 +40,7 @@ ql/cpp/ql/src/Security/CWE/CWE-367/TOCTOUFilesystemRace.ql ql/cpp/ql/src/Security/CWE/CWE-416/IteratorToExpiredContainer.ql ql/cpp/ql/src/Security/CWE/CWE-416/UseOfStringAfterLifetimeEnds.ql ql/cpp/ql/src/Security/CWE/CWE-416/UseOfUniquePointerAfterLifetimeEnds.ql +ql/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql ql/cpp/ql/src/Security/CWE/CWE-497/ExposedSystemData.ql ql/cpp/ql/src/Security/CWE/CWE-611/XXE.ql ql/cpp/ql/src/Security/CWE/CWE-676/DangerousFunctionOverflow.ql From 8d79248ea767a3e931d0e1695d48c8b4d0b719ae Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 20 Mar 2026 13:55:49 +0000 Subject: [PATCH 025/208] Python: Port ModificationOfLocals.ql --- python/ql/src/Statements/ModificationOfLocals.ql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/ql/src/Statements/ModificationOfLocals.ql b/python/ql/src/Statements/ModificationOfLocals.ql index e4791a410f7..82529cbd6d0 100644 --- a/python/ql/src/Statements/ModificationOfLocals.ql +++ b/python/ql/src/Statements/ModificationOfLocals.ql @@ -12,10 +12,10 @@ */ import python -private import LegacyPointsTo +private import semmle.python.ApiGraphs -predicate originIsLocals(ControlFlowNodeWithPointsTo n) { - n.pointsTo(_, _, Value::named("locals").getACall()) +predicate originIsLocals(ControlFlowNode n) { + API::builtin("locals").getReturn().getAValueReachableFromSource().asCfgNode() = n } predicate modification_of_locals(ControlFlowNode f) { @@ -37,5 +37,5 @@ where // in module level scope `locals() == globals()` // see https://docs.python.org/3/library/functions.html#locals // FP report in https://github.com/github/codeql/issues/6674 - not a.getScope() instanceof ModuleScope + not a.getScope() instanceof Module select a, "Modification of the locals() dictionary will have no effect on the local variables." From e3688444d74582c29c0356f96ac80c19201f3166 Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 7 Apr 2026 21:39:30 +0000 Subject: [PATCH 026/208] Python: Also exclude class scope Changing the `locals()` dictionary actually _does_ change the attributes of the class being defined, so we shouldn't alert in this case. --- python/ql/src/Statements/ModificationOfLocals.ql | 5 ++++- python/ql/test/query-tests/Statements/general/test.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/python/ql/src/Statements/ModificationOfLocals.ql b/python/ql/src/Statements/ModificationOfLocals.ql index 82529cbd6d0..f32ddcf7884 100644 --- a/python/ql/src/Statements/ModificationOfLocals.ql +++ b/python/ql/src/Statements/ModificationOfLocals.ql @@ -37,5 +37,8 @@ where // in module level scope `locals() == globals()` // see https://docs.python.org/3/library/functions.html#locals // FP report in https://github.com/github/codeql/issues/6674 - not a.getScope() instanceof Module + not a.getScope() instanceof Module and + // in class level scope `locals()` reflects the class namespace, + // so modifications do take effect. + not a.getScope() instanceof Class select a, "Modification of the locals() dictionary will have no effect on the local variables." diff --git a/python/ql/test/query-tests/Statements/general/test.py b/python/ql/test/query-tests/Statements/general/test.py index eee63fa89e8..a5848f7c718 100644 --- a/python/ql/test/query-tests/Statements/general/test.py +++ b/python/ql/test/query-tests/Statements/general/test.py @@ -174,3 +174,9 @@ def assert_ok(seq): # False positive. ODASA-8042. Fixed in PR #2401. class false_positive: e = (x for x in []) + +# In class-level scope `locals()` reflects the class namespace, +# so modifications do take effect. +class MyClass: + locals()['x'] = 43 # OK + y = x From 2fbfcb970e87aaad8c9501e6ecc071227b6c11a0 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 13:19:00 +0200 Subject: [PATCH 027/208] Swift: Use Swift 6.3 artifacts --- swift/third_party/load.bzl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index 676c5f0ce84..156a2201cda 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -6,6 +6,10 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main + "swift-prebuilt-macOS-swift-6.3-RELEASE-161.tar.zst": "eab65167bfb20e07803b9be61b22b109a0308056c58b572ea9a275b920a3ea0a", + "swift-prebuilt-Linux-swift-6.3-RELEASE-161.tar.zst": "cfc111c983a00acfdb01090ba1f568fa257d2f8fc3050a2f7c37e160fe9f1003", + "resource-dir-macOS-swift-6.3-RELEASE-151.zip": "991e63a2559a762058d66df08275aea55217ff96bd482c5ad7d536181afa573a", + "resource-dir-Linux-swift-6.3-RELEASE-151.zip": "9078cfd1ec62f30cd25c0ea4e43fc3d99449f802e6c165f59a7f789a70eb5284", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" From fd83515843776744084570828a1a25360a8a3383 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 13:19:40 +0200 Subject: [PATCH 028/208] Swift: Make extractor compile --- swift/extractor/infra/SwiftTagTraits.h | 7 +++---- swift/extractor/translators/StmtTranslator.cpp | 2 +- swift/extractor/translators/TypeTranslator.cpp | 12 ++++++++---- swift/extractor/translators/TypeTranslator.h | 3 ++- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index f7825043edd..7ea1d58a576 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -146,7 +146,6 @@ MAP(swift::Expr, ExprTag) MAP(swift::ImplicitConversionExpr, ImplicitConversionExprTag) MAP(swift::LoadExpr, LoadExprTag) MAP(swift::DestructureTupleExpr, DestructureTupleExprTag) - MAP(swift::UnresolvedTypeConversionExpr, UnresolvedTypeConversionExprTag) MAP(swift::FunctionConversionExpr, FunctionConversionExprTag) MAP(swift::CovariantFunctionConversionExpr, CovariantFunctionConversionExprTag) MAP(swift::CovariantReturnConversionExpr, CovariantReturnConversionExprTag) @@ -267,8 +266,7 @@ MAP(swift::TypeRepr, TypeReprTag) MAP(swift::Type, TypeTag) MAP(swift::TypeBase, TypeTag) MAP(swift::ErrorType, ErrorTypeTag) - MAP(swift::UnresolvedType, UnresolvedTypeTag) - MAP(swift::PlaceholderType, void) // appears in ambiguous types but are then transformed to UnresolvedType + MAP(swift::PlaceholderType, void) // appears in ambiguous types but are then transformed to ErrorType MAP(swift::BuiltinType, BuiltinTypeTag) MAP(swift::AnyBuiltinIntegerType, AnyBuiltinIntegerTypeTag) MAP(swift::BuiltinIntegerType, BuiltinIntegerTypeTag) @@ -285,7 +283,8 @@ MAP(swift::TypeBase, TypeTag) MAP(swift::BuiltinVectorType, BuiltinVectorTypeTag) MAP(swift::BuiltinPackIndexType, void) // SIL type, cannot really appear in the frontend run MAP(swift::BuiltinNonDefaultDistributedActorStorageType, void) // Does not appear in AST/SIL, only used during IRGen - MAP(swift::BuiltinFixedArrayType, BuiltinFixedArrayTypeTag) + MAP(swift::BuiltinGenericType, BuiltinGenericTypeTag) + MAP(swift::BuiltinFixedArrayType, BuiltinFixedArrayTypeTag) MAP(swift::BuiltinUnboundGenericType, void) // Only used during type resolution MAP(swift::BuiltinImplicitActorType, void) // SIL type MAP(swift::TupleType, TupleTypeTag) diff --git a/swift/extractor/translators/StmtTranslator.cpp b/swift/extractor/translators/StmtTranslator.cpp index 1562c28f19c..2b059682b33 100644 --- a/swift/extractor/translators/StmtTranslator.cpp +++ b/swift/extractor/translators/StmtTranslator.cpp @@ -137,7 +137,7 @@ codeql::CaseStmt StmtTranslator::translateCaseStmt(const swift::CaseStmt& stmt) auto entry = dispatcher.createEntry(stmt); entry.body = dispatcher.fetchLabel(stmt.getBody()); entry.labels = dispatcher.fetchRepeatedLabels(stmt.getCaseLabelItems()); - entry.variables = dispatcher.fetchRepeatedLabels(stmt.getCaseBodyVariablesOrEmptyArray()); + entry.variables = dispatcher.fetchRepeatedLabels(stmt.getCaseBodyVariables()); return entry; } diff --git a/swift/extractor/translators/TypeTranslator.cpp b/swift/extractor/translators/TypeTranslator.cpp index 52d17c7a357..5d2d1e39667 100644 --- a/swift/extractor/translators/TypeTranslator.cpp +++ b/swift/extractor/translators/TypeTranslator.cpp @@ -233,6 +233,14 @@ codeql::BuiltinIntegerType TypeTranslator::translateBuiltinIntegerType( return entry; } +codeql::BuiltinFixedArrayType TypeTranslator::translateBuiltinFixedArrayType( + const swift::BuiltinFixedArrayType& type) { + // currently the translate dispatching mechanism does not go up more than one step in the + // hierarchy so we need to put this explicitly here, as BuiltinFixedArrayType derives from + // BuiltinGenericType which then derives from BuiltinType + return translateBuiltinType(type); +} + codeql::ExistentialArchetypeType TypeTranslator::translateExistentialArchetypeType( const swift::ExistentialArchetypeType& type) { auto entry = createTypeEntry(type); @@ -258,10 +266,6 @@ codeql::ErrorType TypeTranslator::translateErrorType(const swift::ErrorType& typ return createTypeEntry(type); } -codeql::UnresolvedType TypeTranslator::translateUnresolvedType(const swift::UnresolvedType& type) { - return createTypeEntry(type); -} - codeql::ParameterizedProtocolType TypeTranslator::translateParameterizedProtocolType( const swift::ParameterizedProtocolType& type) { auto entry = createTypeEntry(type); diff --git a/swift/extractor/translators/TypeTranslator.h b/swift/extractor/translators/TypeTranslator.h index c65c0e757de..fd211ec39e0 100644 --- a/swift/extractor/translators/TypeTranslator.h +++ b/swift/extractor/translators/TypeTranslator.h @@ -69,13 +69,14 @@ class TypeTranslator : public TypeTranslatorBase { codeql::BuiltinIntegerLiteralType translateBuiltinIntegerLiteralType( const swift::BuiltinIntegerLiteralType& type); codeql::BuiltinIntegerType translateBuiltinIntegerType(const swift::BuiltinIntegerType& type); + codeql::BuiltinFixedArrayType translateBuiltinFixedArrayType( + const swift::BuiltinFixedArrayType& type); codeql::ExistentialArchetypeType translateExistentialArchetypeType( const swift::ExistentialArchetypeType& type); codeql::ModuleType translateModuleType(const swift::ModuleType& type); codeql::OpaqueTypeArchetypeType translateOpaqueTypeArchetypeType( const swift::OpaqueTypeArchetypeType& type); codeql::ErrorType translateErrorType(const swift::ErrorType& type); - codeql::UnresolvedType translateUnresolvedType(const swift::UnresolvedType& type); codeql::ParameterizedProtocolType translateParameterizedProtocolType( const swift::ParameterizedProtocolType& type); codeql::PackArchetypeType translatePackArchetypeType(const swift::PackArchetypeType& type); From d473c7143d3b83351ee5027320fb831daeceb021 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 13:20:06 +0200 Subject: [PATCH 029/208] Swift: Update schema --- swift/schema.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/swift/schema.py b/swift/schema.py index e7b45fb81a5..9302cb14b57 100644 --- a/swift/schema.py +++ b/swift/schema.py @@ -1480,7 +1480,14 @@ class TypeValueExpr(Expr): class IntegerType(Type): value: string -class BuiltinFixedArrayType(BuiltinType): +class BuiltinGenericType(BuiltinType): + """ + A builtin generic type. + """ + pass + + +class BuiltinFixedArrayType(BuiltinGenericType): """ A builtin type representing N values stored contiguously. """ From 6b2494c3e5c22cb552696dd7d1b91c5e1e6cc211 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 13:21:03 +0200 Subject: [PATCH 030/208] Swift: Update generated files --- swift/ql/.generated.list | 15 ++++---- swift/ql/.gitattributes | 3 ++ swift/ql/lib/codeql/swift/elements.qll | 1 + .../elements/type/BuiltinFixedArrayType.qll | 2 +- .../elements/type/BuiltinGenericType.qll | 12 +++++++ .../type/internal/BuiltinGenericTypeImpl.qll | 19 +++++++++++ .../codeql/swift/generated/ParentChild.qll | 16 ++++----- swift/ql/lib/codeql/swift/generated/Raw.qll | 34 +++++++++++-------- swift/ql/lib/codeql/swift/generated/Synth.qll | 31 ++++++++++++++--- .../generated/type/BuiltinFixedArrayType.qll | 6 ++-- .../generated/type/BuiltinGenericType.qll | 22 ++++++++++++ swift/ql/lib/swift.dbscheme | 14 +++++--- 12 files changed, 134 insertions(+), 41 deletions(-) create mode 100644 swift/ql/lib/codeql/swift/elements/type/BuiltinGenericType.qll create mode 100644 swift/ql/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll create mode 100644 swift/ql/lib/codeql/swift/generated/type/BuiltinGenericType.qll diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index 8d2fb9a2ebc..a666c64948d 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -539,8 +539,9 @@ lib/codeql/swift/elements/type/BoundGenericType.qll 089e5e8d09c62a23d575dcab68cd lib/codeql/swift/elements/type/BuiltinBridgeObjectType.qll b0064e09b53efe801b0bf950ff00698a84e2f714e853e4859ed5f3246025a1bd aa14b6ae2ec510c4ddd2cc073bf971809536ab8fd8763fd05bd171b0bbe83860 lib/codeql/swift/elements/type/BuiltinDefaultActorStorageType.qll e867a9d0b2c61b7eb61f5143c78e31f8d98d3245d79e0e3281d4c172175f496b 265e87f2e37ca968af572cc619294d1ee91dd66ebb0d1bb1ba9ab7159de52f0b lib/codeql/swift/elements/type/BuiltinExecutorType.qll 2b141553bbc02a00d97579ba9d0e38fa0978d40ce954b0caf64826aa259dbc08 a81465fd0e87ad5b8e418d8f21c337b3e96388a3b92b3332f0d6b0ff7663e5c7 -lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll 24a57f15a53070e6308841cd5dac4d55059e84d9fb18a77eec1130647dcdc97c 9f4167ef5190cbeee71abd068bdb0a280b690a16349cd408244d4cf9edfb357a +lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll 9d32f49cd7169d12c00cde31433897e8f8ada62132430020dc2525a97673cf57 0236f494f6ce77b04a80e405d11f5b39b1e45ea9c50a6ee42dd96407516b448f lib/codeql/swift/elements/type/BuiltinFloatType.qll 81f49325077b75cea682904ddab24d1b2fdc5c93b0b28830c08e866d5c9307a7 e26a348d66e3824ccd92729624ce2b2ebc82a844aa47035e0a963a62b08b772d +lib/codeql/swift/elements/type/BuiltinGenericType.qll 108682444f5f28b64b7caa16254fd4d7418813bc9e7f6a17477b13fe37293d40 de3fa330516684f0cfd848101b3a93f83b2d8a9f00b35dae70d2b56cb5414923 lib/codeql/swift/elements/type/BuiltinIntegerLiteralType.qll 34ee35733cf26f90d799a79f8a2362b199ea2ecb6ba83eb5678dda9eb3ed255f e33fdb27d3c22d441277b66ba74136cb88e1da25a2146391b258c68f7fbf5dd3 lib/codeql/swift/elements/type/BuiltinIntegerType.qll b931e79a40fb379a8de377ae4ea1c85befb7b07dbfe913f0ea7f5adf5514b217 5d7e6f21284b8c5ff70773bb64f896a40541c9064bfdd336798ccfda4cb4fb9e lib/codeql/swift/elements/type/BuiltinJobType.qll 4b4cab766d8476efd7482ab47f6fdd63fd90a322e1e791949351092f126f5b46 779ceee86a778b59a3feb5247603fe07e4a73068a7990e25c31dd93ba0dd718d @@ -623,6 +624,7 @@ lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll 0d5 lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll 6b69ba8b271646bcd699e338f41c186f3e4e7d401830918407e392312b2f0ad1 ecaca3d762264423094f7c2cb63e33b5d72d970946766eec33d984fa977950b4 lib/codeql/swift/elements/type/internal/BuiltinFloatTypeConstructor.qll f1dab7b9d36213e57083a6effec1b2d859553831394c0e746c592c96a20db6de cceeaa864cfc84511b3cdad6a88d44fc14ea1c8e38db72b0854c3f217a3f9c44 lib/codeql/swift/elements/type/internal/BuiltinFloatTypeImpl.qll 1dc7f7817c4a238751875b0cee98d060a1ea975a22fd90ceef0f9874b85824d6 d98f743c28174fb3294f0ff60232600a4fc80aeefe72e5cc15bb56e09880ec1e +lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll 2735ef1521c399540ef43fc75aa62b4bbb1871446d87304c9e3a991ad16a96f4 263e41354843afc5d1f57bd2f50610992d05d77ceb1c2079587ddd3a1eceffc5 lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeConstructor.qll 3885775f78e18286aa8dc99ab5b6f386a278b34b47f93da28d67faac918e6087 93be2ad0b7235bab613b74582bc1de0ca8b2a4da7a387d09a9b8ef9b38095534 lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeImpl.qll 7f078bd837acddd0e835f78b0ae6e0381c9c587e82edc61cf78986ce0081e314 f141415be39f8a5f09d4a90cc5d841f90385c3be8781c0bafbad0871681ec8a3 lib/codeql/swift/elements/type/internal/BuiltinIntegerTypeConstructor.qll 2c5a7884c5c8c852d81b6ce03f9c6cc036944428731e3a73208c0d2047b72611 abd29915698109395a4751999aa334ba3c020f20372a5dff213acdd672d024a9 @@ -721,7 +723,7 @@ lib/codeql/swift/elements/type/internal/UnresolvedTypeImpl.qll ee1499dd568753898 lib/codeql/swift/elements/type/internal/VariadicSequenceTypeConstructor.qll fc74a5a2a2effa28ef24509b20ee4373d97cf6e8c71840121bb031c6adedf584 c9b2effc1d01c13c5e6a74a111122fa79a2f6554dda3cb016d68ba397e566ec4 lib/codeql/swift/elements/type/internal/WeakStorageTypeConstructor.qll 5fdce3716aba6318522174a2c455a63480970222ae81c732fb19c6dd3ae2d271 60ea79d6943e129deba0deccb566cf9d73f78398b0f7f0212674d91287d6b2ae lib/codeql/swift/elements/type/internal/WeakStorageTypeImpl.qll 74f79b458f3204ec2519bd654de21bc4fb6b76816bd8ca01990fe897563a1383 34e1810f74cecda5b580ed050438ae1d914b97a36b8f4e2de1c25254c0cac633 -lib/codeql/swift/elements.qll ec0104a658330f595eac7dd8578d996905a6c2cf78765744c3967a8f3d1c3273 ec0104a658330f595eac7dd8578d996905a6c2cf78765744c3967a8f3d1c3273 +lib/codeql/swift/elements.qll 70e20ccd31c9247904fb5ef00ccbda5a6d29c680e88b0ed238f4b4546abf5f33 70e20ccd31c9247904fb5ef00ccbda5a6d29c680e88b0ed238f4b4546abf5f33 lib/codeql/swift/generated/AstNode.qll 6fb80e9b230a1e3ae8193af40744f253d5cc81dc4239156924e5ab606c491efc e5c28418e9a38bde08f323a3986a199620189fc4a8a4dc8f670610a5d3d65b99 lib/codeql/swift/generated/AvailabilityInfo.qll e3a5274c43e72ff124b6988fd8be0c83a41b89337e11104150dd0ca7f51d8a11 889563791ca8d9758dbbccf64a0731c4bdbf721cad32bc6cd723f1072b6aa1de lib/codeql/swift/generated/AvailabilitySpec.qll 1bd2a0ee085f802c99090e681ab3339fc5013024d79deef39f376de12ab76d37 658f2eb51860726cfa6808b3e3501d624e0734750d1420f7a25c89782f1f6c7e @@ -737,10 +739,10 @@ lib/codeql/swift/generated/KeyPathComponent.qll e11dcf952045b5e6062e24c23515cff9 lib/codeql/swift/generated/Locatable.qll 1d37fa20de71c0b9986bfd7a7c0cb82ab7bf3fda2d2008700f955ad82ce109a7 e97d4d4fb8a4800e0008cc00f60c8ed9b1ebd5f1140fd85e68b034616178d721 lib/codeql/swift/generated/Location.qll 5e20316c3e480ddfe632b7e88e016c19f10a67df1f6ae9c8f128755a6907d6f5 5a0af2d070bcb2ed53d6d0282bf9c60dc64c2dce89c21fdd485e9c7893c1c8fa lib/codeql/swift/generated/MacroRole.qll facf907e75490d69cd401c491215e4719324d751f40ea46c86ccf24cf3663c1f 969d8d4b44e3f1a9c193a152a4d83a303e56d2dbb871fc920c47a33f699cf018 -lib/codeql/swift/generated/ParentChild.qll 7fdc133bdec6cc223d5ee85e757b02c5d2e1ab121bcf269bb48c8a12a31a61e9 d8dd6e21d290a293db4db510b1523a9ea428b12f48b7574f03acf00b9ca065ef +lib/codeql/swift/generated/ParentChild.qll 669d39245f2cb735cfd4bcebdb551ef8f334fef5297c5834a8b09ebfa655856e 59b283c8a30b6b364c853302ab919ea713e0289e7b793b08b46fc87178d14a6a lib/codeql/swift/generated/PureSynthConstructors.qll bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 -lib/codeql/swift/generated/Raw.qll 6adc2ec210e91051b6d3d6c84117b827f10dbea682a18b69348d1c6cdc53629c 9ff02fcca7a7b83c85303ffc6daa00ea392da6ce1f9cb389b5053b34d4a45e4c -lib/codeql/swift/generated/Synth.qll b0084d1f573ba1b10ec8a8fab169b15f15866ecb9a6aeeeac81553a442be28e3 09efe455f3fd6b8b983b30efbd797f09af46e6f5a1a1075801650528999ed938 +lib/codeql/swift/generated/Raw.qll c209a47a66f24f54bdfb5adf591dd171b2dbe9e30936a2355160526b9f756399 378e7492ca885f46092628ca26afa76c909deb88f092fe56404fea8f94d133b0 +lib/codeql/swift/generated/Synth.qll e30b50d2645d9c36719d81f1be70712c7c6e89a3f5b4a5ae894411e045d05bff 9bd0c9c90532db97cde9553dde4089b7cf12c462c690d853fa40cb36ea112c21 lib/codeql/swift/generated/SynthConstructors.qll c40f01e1331bdbe238620a41d17409cefe34a6b23066708ef5d74f8631b54f48 c40f01e1331bdbe238620a41d17409cefe34a6b23066708ef5d74f8631b54f48 lib/codeql/swift/generated/UnknownFile.qll 247ddf2ebb49ce5ed4bf7bf91a969ddff37de6c78d43d8affccaf7eb586e06f2 452b29f0465ef45e978ef8b647b75e5a2a1e53f2a568fc003bc8f52f73b3fa4d lib/codeql/swift/generated/UnknownLocation.qll d871000b4f53ffca4f67ea23ca5626e5dcce125d62a4d4b9969e08cc974af6fc b05971d7774e60790362fb810fb7086314f40a2de747b8cb1bc823ec6494a4dd @@ -978,8 +980,9 @@ lib/codeql/swift/generated/type/BoundGenericType.qll 5e7a2210b766437ca301f9675f7 lib/codeql/swift/generated/type/BuiltinBridgeObjectType.qll 97f30768a8788ec4547ce8a8f06fdd165286177e3819bf2e6590b9479f5bada4 ea3161c34d1d18783b38deac43c73048e4510015307d93f77cd95c149e988846 lib/codeql/swift/generated/type/BuiltinDefaultActorStorageType.qll 10e49de9a8bc3e67285c111f7869c8baceb70e478661d5557ebc8c86f41b4aec 1a0ce85eb325f666fbc2ac49c6f994efd552de6f2105e0a7ba9a10e39f3d1591 lib/codeql/swift/generated/type/BuiltinExecutorType.qll 8f58d4d413910aded894bfa9b54748adfc2b78f4ee271ac6db5f5b0214f36a66 69da70d76146155529b7b2426b3a459abe318f887240aac1aed5719fda5f386a -lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll 9bd26596da9137b07324222c9ed39ec0781e44673314fba96a0c7cf16f65cc7d cc2d40961b070a89f3350ab95b92ae33372277e499d7b2a9ea34721cc1fe1923 +lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll 2ae9d1ef215c725bc27f69d25247d360ee8aa0aa5a757df6b8e9734821084435 2f1caacf0f95c8f863296f0cc0a56abac4bf58ddc68e9ed63b5d8672fd21172d lib/codeql/swift/generated/type/BuiltinFloatType.qll 6306a806107bba052fe0b1335c8c4d4391cdb6aa5f42f14c70743113928c4c36 3265d571630c0437e5d81ba20a0b6112b7e88ee3ffca737557186001cf8aa04a +lib/codeql/swift/generated/type/BuiltinGenericType.qll 6cd1b5da102e221f25a301c284ccc9cbd64d595596787df1a4fd3f2a92ded077 3ae4c8676a868205c5334646e395b8fc4e561ee2f4c115003ae2f4ed83197b76 lib/codeql/swift/generated/type/BuiltinIntegerLiteralType.qll 3f49aac9b81c440b902a658294cf95aff5cb79b0d6cee8b1abd8a08ad45c7966 6c184dcf5d9376f193f07fe4722ea7cab51f1dfdef4d72c3042842d73cca31fe lib/codeql/swift/generated/type/BuiltinIntegerType.qll 3cfcbc4ebea6051d1f6dedcf098888c72c02bf697cebb52a0060c1885bea61f0 1c78df7a184e3615024d6e361b88dd619828a0aa7d342564610a95b02cc67d1e lib/codeql/swift/generated/type/BuiltinJobType.qll dc0e1932e972936001b1d688d6e70d7395184eef3c4242cebf3a2608d6607785 e5573304f6043f79cfc28e35744fd390eaebcb86a6f2758cc96aba588c1b8cb9 diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 37f29b6947e..212221509d0 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -543,6 +543,7 @@ /lib/codeql/swift/elements/type/BuiltinExecutorType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinFloatType.qll linguist-generated +/lib/codeql/swift/elements/type/BuiltinGenericType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinIntegerLiteralType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinIntegerType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinJobType.qll linguist-generated @@ -625,6 +626,7 @@ /lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinFloatTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinFloatTypeImpl.qll linguist-generated +/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinIntegerTypeConstructor.qll linguist-generated @@ -982,6 +984,7 @@ /lib/codeql/swift/generated/type/BuiltinExecutorType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinFloatType.qll linguist-generated +/lib/codeql/swift/generated/type/BuiltinGenericType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinIntegerLiteralType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinIntegerType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinJobType.qll linguist-generated diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index bdffeba5261..6a39c465778 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -252,6 +252,7 @@ import codeql.swift.elements.type.BuiltinDefaultActorStorageType import codeql.swift.elements.type.BuiltinExecutorType import codeql.swift.elements.type.BuiltinFixedArrayType import codeql.swift.elements.type.BuiltinFloatType +import codeql.swift.elements.type.BuiltinGenericType import codeql.swift.elements.type.BuiltinIntegerLiteralType import codeql.swift.elements.type.BuiltinIntegerType import codeql.swift.elements.type.BuiltinJobType diff --git a/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll index bf523a0a785..996c38d127b 100644 --- a/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll @@ -4,7 +4,7 @@ */ private import internal.BuiltinFixedArrayTypeImpl -import codeql.swift.elements.type.BuiltinType +import codeql.swift.elements.type.BuiltinGenericType /** * A builtin type representing N values stored contiguously. diff --git a/swift/ql/lib/codeql/swift/elements/type/BuiltinGenericType.qll b/swift/ql/lib/codeql/swift/elements/type/BuiltinGenericType.qll new file mode 100644 index 00000000000..4513423fd60 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/BuiltinGenericType.qll @@ -0,0 +1,12 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the public class `BuiltinGenericType`. + */ + +private import internal.BuiltinGenericTypeImpl +import codeql.swift.elements.type.BuiltinType + +/** + * A builtin generic type. + */ +final class BuiltinGenericType = Impl::BuiltinGenericType; diff --git a/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll new file mode 100644 index 00000000000..0e475d64f01 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll @@ -0,0 +1,19 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module provides a hand-modifiable wrapper around the generated class `BuiltinGenericType`. + * + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.type.BuiltinGenericType + +/** + * INTERNAL: This module contains the customizable definition of `BuiltinGenericType` and should not + * be referenced directly. + */ +module Impl { + /** + * A builtin generic type. + */ + class BuiltinGenericType extends Generated::BuiltinGenericType { } +} diff --git a/swift/ql/lib/codeql/swift/generated/ParentChild.qll b/swift/ql/lib/codeql/swift/generated/ParentChild.qll index efed12bb5fe..424fd7af75e 100644 --- a/swift/ql/lib/codeql/swift/generated/ParentChild.qll +++ b/swift/ql/lib/codeql/swift/generated/ParentChild.qll @@ -2972,12 +2972,6 @@ private module Impl { none() } - private Element getImmediateChildOfBuiltinFixedArrayType( - BuiltinFixedArrayType e, int index, string partialPredicateCall - ) { - none() - } - private Element getImmediateChildOfBuiltinFloatType( BuiltinFloatType e, int index, string partialPredicateCall ) { @@ -3084,6 +3078,12 @@ private module Impl { none() } + private Element getImmediateChildOfBuiltinFixedArrayType( + BuiltinFixedArrayType e, int index, string partialPredicateCall + ) { + none() + } + private Element getImmediateChildOfBuiltinIntegerLiteralType( BuiltinIntegerLiteralType e, int index, string partialPredicateCall ) { @@ -3636,8 +3636,6 @@ private module Impl { or result = getImmediateChildOfBuiltinExecutorType(e, index, partialAccessor) or - result = getImmediateChildOfBuiltinFixedArrayType(e, index, partialAccessor) - or result = getImmediateChildOfBuiltinFloatType(e, index, partialAccessor) or result = getImmediateChildOfBuiltinJobType(e, index, partialAccessor) @@ -3674,6 +3672,8 @@ private module Impl { or result = getImmediateChildOfWeakStorageType(e, index, partialAccessor) or + result = getImmediateChildOfBuiltinFixedArrayType(e, index, partialAccessor) + or result = getImmediateChildOfBuiltinIntegerLiteralType(e, index, partialAccessor) or result = getImmediateChildOfBuiltinIntegerType(e, index, partialAccessor) diff --git a/swift/ql/lib/codeql/swift/generated/Raw.qll b/swift/ql/lib/codeql/swift/generated/Raw.qll index 714579218bc..c2c65234cd4 100644 --- a/swift/ql/lib/codeql/swift/generated/Raw.qll +++ b/swift/ql/lib/codeql/swift/generated/Raw.qll @@ -6291,18 +6291,6 @@ module Raw { none() } - /** - * INTERNAL: Do not use. - * A builtin type representing N values stored contiguously. - */ - class BuiltinFixedArrayType extends @builtin_fixed_array_type, BuiltinType { - override string toString() { result = "BuiltinFixedArrayType" } - } - - private Element getImmediateChildOfBuiltinFixedArrayType(BuiltinFixedArrayType e, int index) { - none() - } - /** * INTERNAL: Do not use. */ @@ -6312,6 +6300,12 @@ module Raw { private Element getImmediateChildOfBuiltinFloatType(BuiltinFloatType e, int index) { none() } + /** + * INTERNAL: Do not use. + * A builtin generic type. + */ + class BuiltinGenericType extends @builtin_generic_type, BuiltinType { } + /** * INTERNAL: Do not use. */ @@ -6537,6 +6531,18 @@ module Raw { int getNumberOfArgTypes() { result = count(int i | bound_generic_type_arg_types(this, i, _)) } } + /** + * INTERNAL: Do not use. + * A builtin type representing N values stored contiguously. + */ + class BuiltinFixedArrayType extends @builtin_fixed_array_type, BuiltinGenericType { + override string toString() { result = "BuiltinFixedArrayType" } + } + + private Element getImmediateChildOfBuiltinFixedArrayType(BuiltinFixedArrayType e, int index) { + none() + } + /** * INTERNAL: Do not use. */ @@ -7224,8 +7230,6 @@ module Raw { or result = getImmediateChildOfBuiltinExecutorType(e, index) or - result = getImmediateChildOfBuiltinFixedArrayType(e, index) - or result = getImmediateChildOfBuiltinFloatType(e, index) or result = getImmediateChildOfBuiltinJobType(e, index) @@ -7262,6 +7266,8 @@ module Raw { or result = getImmediateChildOfWeakStorageType(e, index) or + result = getImmediateChildOfBuiltinFixedArrayType(e, index) + or result = getImmediateChildOfBuiltinIntegerLiteralType(e, index) or result = getImmediateChildOfBuiltinIntegerType(e, index) diff --git a/swift/ql/lib/codeql/swift/generated/Synth.qll b/swift/ql/lib/codeql/swift/generated/Synth.qll index 27508df94e9..cd847f3e6af 100644 --- a/swift/ql/lib/codeql/swift/generated/Synth.qll +++ b/swift/ql/lib/codeql/swift/generated/Synth.qll @@ -1392,12 +1392,17 @@ module Synth { class TBoundGenericType = TBoundGenericClassType or TBoundGenericEnumType or TBoundGenericStructType; + /** + * INTERNAL: Do not use. + */ + class TBuiltinGenericType = TBuiltinFixedArrayType; + /** * INTERNAL: Do not use. */ class TBuiltinType = TAnyBuiltinIntegerType or TBuiltinBridgeObjectType or TBuiltinDefaultActorStorageType or - TBuiltinExecutorType or TBuiltinFixedArrayType or TBuiltinFloatType or TBuiltinJobType or + TBuiltinExecutorType or TBuiltinFloatType or TBuiltinGenericType or TBuiltinJobType or TBuiltinNativeObjectType or TBuiltinRawPointerType or TBuiltinRawUnsafeContinuationType or TBuiltinUnsafeValueBufferType or TBuiltinVectorType; @@ -4291,6 +4296,14 @@ module Synth { result = convertBoundGenericStructTypeFromRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a raw DB element to a synthesized `TBuiltinGenericType`, if possible. + */ + TBuiltinGenericType convertBuiltinGenericTypeFromRaw(Raw::Element e) { + result = convertBuiltinFixedArrayTypeFromRaw(e) + } + /** * INTERNAL: Do not use. * Converts a raw DB element to a synthesized `TBuiltinType`, if possible. @@ -4304,10 +4317,10 @@ module Synth { or result = convertBuiltinExecutorTypeFromRaw(e) or - result = convertBuiltinFixedArrayTypeFromRaw(e) - or result = convertBuiltinFloatTypeFromRaw(e) or + result = convertBuiltinGenericTypeFromRaw(e) + or result = convertBuiltinJobTypeFromRaw(e) or result = convertBuiltinNativeObjectTypeFromRaw(e) @@ -7037,6 +7050,14 @@ module Synth { result = convertBoundGenericStructTypeToRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TBuiltinGenericType` to a raw DB element, if possible. + */ + Raw::Element convertBuiltinGenericTypeToRaw(TBuiltinGenericType e) { + result = convertBuiltinFixedArrayTypeToRaw(e) + } + /** * INTERNAL: Do not use. * Converts a synthesized `TBuiltinType` to a raw DB element, if possible. @@ -7050,10 +7071,10 @@ module Synth { or result = convertBuiltinExecutorTypeToRaw(e) or - result = convertBuiltinFixedArrayTypeToRaw(e) - or result = convertBuiltinFloatTypeToRaw(e) or + result = convertBuiltinGenericTypeToRaw(e) + or result = convertBuiltinJobTypeToRaw(e) or result = convertBuiltinNativeObjectTypeToRaw(e) diff --git a/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll index b61533168b7..5ed9491607a 100644 --- a/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll +++ b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll @@ -6,7 +6,7 @@ private import codeql.swift.generated.Synth private import codeql.swift.generated.Raw -import codeql.swift.elements.type.internal.BuiltinTypeImpl::Impl as BuiltinTypeImpl +import codeql.swift.elements.type.internal.BuiltinGenericTypeImpl::Impl as BuiltinGenericTypeImpl /** * INTERNAL: This module contains the fully generated definition of `BuiltinFixedArrayType` and should not @@ -18,7 +18,9 @@ module Generated { * INTERNAL: Do not reference the `Generated::BuiltinFixedArrayType` class directly. * Use the subclass `BuiltinFixedArrayType`, where the following predicates are available. */ - class BuiltinFixedArrayType extends Synth::TBuiltinFixedArrayType, BuiltinTypeImpl::BuiltinType { + class BuiltinFixedArrayType extends Synth::TBuiltinFixedArrayType, + BuiltinGenericTypeImpl::BuiltinGenericType + { override string getAPrimaryQlClass() { result = "BuiltinFixedArrayType" } } } diff --git a/swift/ql/lib/codeql/swift/generated/type/BuiltinGenericType.qll b/swift/ql/lib/codeql/swift/generated/type/BuiltinGenericType.qll new file mode 100644 index 00000000000..cfed16ac283 --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/type/BuiltinGenericType.qll @@ -0,0 +1,22 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the generated definition of `BuiltinGenericType`. + * INTERNAL: Do not import directly. + */ + +private import codeql.swift.generated.Synth +private import codeql.swift.generated.Raw +import codeql.swift.elements.type.internal.BuiltinTypeImpl::Impl as BuiltinTypeImpl + +/** + * INTERNAL: This module contains the fully generated definition of `BuiltinGenericType` and should not + * be referenced directly. + */ +module Generated { + /** + * A builtin generic type. + * INTERNAL: Do not reference the `Generated::BuiltinGenericType` class directly. + * Use the subclass `BuiltinGenericType`, where the following predicates are available. + */ + class BuiltinGenericType extends Synth::TBuiltinGenericType, BuiltinTypeImpl::BuiltinType { } +} diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 33e5e5e03bd..ee3053b673c 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -2266,8 +2266,8 @@ any_generic_type_parents( //dir=type | @builtin_bridge_object_type | @builtin_default_actor_storage_type | @builtin_executor_type -| @builtin_fixed_array_type | @builtin_float_type +| @builtin_generic_type | @builtin_job_type | @builtin_native_object_type | @builtin_raw_pointer_type @@ -2449,14 +2449,14 @@ builtin_executor_types( //dir=type unique int id: @builtin_executor_type ); -builtin_fixed_array_types( //dir=type - unique int id: @builtin_fixed_array_type -); - builtin_float_types( //dir=type unique int id: @builtin_float_type ); +@builtin_generic_type = + @builtin_fixed_array_type +; + builtin_job_types( //dir=type unique int id: @builtin_job_type ); @@ -2558,6 +2558,10 @@ bound_generic_type_arg_types( //dir=type int arg_type: @type_or_none ref ); +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + builtin_integer_literal_types( //dir=type unique int id: @builtin_integer_literal_type ); From 5eb8db0d4892df079fe3b09c841161d5a3b5b1ec Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 13:21:33 +0200 Subject: [PATCH 031/208] Swift: Update expected QL test results after 6.3 update --- .../extractor-tests/declarations/all.expected | 1 + .../extractor-tests/errors/Errors.expected | 6 +- .../decl/CapturedDecl/PrintAst.expected | 4 +- .../ConcreteVarDecl/ConcreteVarDecl.expected | 14 ++--- .../decl/MacroDecl/MacroRole.expected | 2 + .../decl/ParamDecl/ParamDecl.expected | 4 +- .../ObjectLiteralExpr.expected | 6 +- .../stmt/ForEachStmt/ForEachStmt.expected | 4 +- .../type/BuiltinType/BuiltinType.expected | 61 +++++++++++++++++++ .../type/IntegerType/IntegerType.expected | 6 ++ .../test/library-tests/ast/PrintAst.expected | 12 ++-- .../controlflow/graph/Cfg.expected | 12 ++-- 12 files changed, 101 insertions(+), 31 deletions(-) diff --git a/swift/ql/test/extractor-tests/declarations/all.expected b/swift/ql/test/extractor-tests/declarations/all.expected index 98b94895345..109e80ee4f6 100644 --- a/swift/ql/test/extractor-tests/declarations/all.expected +++ b/swift/ql/test/extractor-tests/declarations/all.expected @@ -116,6 +116,7 @@ | declarations.swift:77:16:77:23 | var ... = ... | | | declarations.swift:77:20:77:20 | _x | | | declarations.swift:77:20:77:20 | get | | +| declarations.swift:77:20:77:20 | var ... = ... | | | declarations.swift:77:20:77:20 | x | | | declarations.swift:81:1:136:1 | HasPropertyAndObserver | | | declarations.swift:81:8:81:8 | HasPropertyAndObserver.init(normalField:hasWillSet1:hasWillSet2:hasDidSet1:hasDidSet2:hasBoth:) | | diff --git a/swift/ql/test/extractor-tests/errors/Errors.expected b/swift/ql/test/extractor-tests/errors/Errors.expected index 50ab8ec658b..51900bf11d0 100644 --- a/swift/ql/test/extractor-tests/errors/Errors.expected +++ b/swift/ql/test/extractor-tests/errors/Errors.expected @@ -1,6 +1,6 @@ -| file://:0:0:0:0 | <> | ErrorType | -| file://:0:0:0:0 | <> | ErrorType | -| file://:0:0:0:0 | <> | ErrorType | +| file://:0:0:0:0 | _ | ErrorType | +| file://:0:0:0:0 | _ | ErrorType | +| file://:0:0:0:0 | _ | ErrorType | | overloaded.swift:6:5:6:5 | OverloadedDeclRefExpr | OverloadedDeclRefExpr | | unresolved.swift:5:1:5:14 | UnresolvedSpecializeExpr | UnresolvedSpecializeExpr | | unspecified.swift:3:1:3:23 | missing extended_type_decl from ExtensionDecl | UnspecifiedElement | diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected index ac61ba1dfc6..689d93cab9b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected +++ b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected @@ -164,8 +164,8 @@ closures.swift: # 31| getArgument(0): [Argument] : ... .!=(_:_:) ... # 31| getExpr(): [BinaryExpr] ... .!=(_:_:) ... # 31| getFunction(): [MethodLookupExpr] .!=(_:_:) -# 31| getBase(): [TypeExpr] Optional.Type -# 31| getTypeRepr(): [TypeRepr] Optional +# 31| getBase(): [TypeExpr] Int?.Type +# 31| getTypeRepr(): [TypeRepr] Int? # 31| getMethodRef(): [DeclRefExpr] !=(_:_:) # 31| getArgument(0): [Argument] : x # 31| getExpr(): [DeclRefExpr] x diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected index 09751f3c41d..03460f83620 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected @@ -118,11 +118,11 @@ getParentInitializer | var_decls.swift:57:36:57:36 | _w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | | var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | getPropertyWrapperBackingVarBinding -| var_decls.swift:24:15:24:15 | wrapped | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:54:10:54:10 | w1 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:55:24:55:24 | w2 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:15 | var ... = ... | +| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | var ... = ... | +| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:24:55:24 | var ... = ... | +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | var ... = ... | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | var ... = ... | getPropertyWrapperBackingVar | var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:15 | _wrapped | | var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | _w1 | @@ -130,8 +130,8 @@ getPropertyWrapperBackingVar | var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | _w3 | | var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | _w4 | getPropertyWrapperProjectionVarBinding -| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | var ... = ... | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | var ... = ... | getPropertyWrapperProjectionVar | var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | $w3 | | var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | $w4 | diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected index 05232a3cd04..52e80f2a2c6 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected @@ -11,6 +11,7 @@ instances | file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | | file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | | file://:0:0:0:0 | @attached(accessor) | getKind: | 4 | getMacroSyntax: | 1 | +| file://:0:0:0:0 | @attached(extension) | getKind: | 256 | getMacroSyntax: | 1 | | file://:0:0:0:0 | @attached(member) | getKind: | 16 | getMacroSyntax: | 1 | | file://:0:0:0:0 | @attached(memberAttribute) | getKind: | 8 | getMacroSyntax: | 1 | | file://:0:0:0:0 | @attached(peer) | getKind: | 32 | getMacroSyntax: | 1 | @@ -22,6 +23,7 @@ instances | test.swift:6:2:6:20 | @attached(extension) | getKind: | 256 | getMacroSyntax: | 1 | getConformance getName +| file://:0:0:0:0 | @attached(extension) | 0 | _() | | file://:0:0:0:0 | @attached(peer) | 0 | $() | | file://:0:0:0:0 | @attached(peer) | 0 | _() | | file://:0:0:0:0 | @attached(peer) | 0 | _lldb_summary() | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected index f67d25dc31b..65191e3d55f 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected @@ -66,8 +66,8 @@ getAttachedPropertyWrapperType getParentPattern getParentInitializer getPropertyWrapperBackingVarBinding -| param_decls.swift:48:18:48:22 | p1 | file://:0:0:0:0 | var ... = ... | -| param_decls.swift:49:26:49:30 | p2 | file://:0:0:0:0 | var ... = ... | +| param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | var ... = ... | +| param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | var ... = ... | getPropertyWrapperBackingVar | param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | _p1 | | param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | _p2 | diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected index abf317e5a3b..9f454d9cd69 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected @@ -3,9 +3,9 @@ instances | object_literals.swift:6:5:6:61 | #colorLiteral(...) | getKind: | 2 | | object_literals.swift:7:5:7:44 | #imageLiteral(...) | getKind: | 1 | getType -| object_literals.swift:5:5:5:42 | #fileLiteral(...) | <> | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | <> | -| object_literals.swift:7:5:7:44 | #imageLiteral(...) | <> | +| object_literals.swift:5:5:5:42 | #fileLiteral(...) | _ | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | _ | +| object_literals.swift:7:5:7:44 | #imageLiteral(...) | _ | getArgument | object_literals.swift:5:5:5:42 | #fileLiteral(...) | 0 | object_literals.swift:5:18:5:32 | resourceName: file.txt | | object_literals.swift:6:5:6:61 | #colorLiteral(...) | 0 | object_literals.swift:6:19:6:24 | red: 255 | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected index 55fc86a8fdb..ff575435d01 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected @@ -12,8 +12,8 @@ getVariable getWhere | for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:25:4:30 | ... .!=(_:_:) ... | getIteratorVar -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | file://:0:0:0:0 | var ... = ... | -| for.swift:7:5:9:5 | for ... in ... { ... } | file://:0:0:0:0 | var ... = ... | +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:14:4:14 | var ... = ... | +| for.swift:7:5:9:5 | for ... in ... { ... } | for.swift:7:14:7:14 | var ... = ... | getNextCall | for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:5:4:5 | call to next() | | for.swift:7:5:9:5 | for ... in ... { ... } | for.swift:7:5:7:5 | call to next() | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected index 1b64e9f4a22..fe0d3372c49 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected @@ -3,8 +3,69 @@ | Builtin.FPIEEE32 | BuiltinFloatType | getName: | FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | | Builtin.FPIEEE64 | BuiltinFloatType | getName: | FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | | Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | | Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | | Builtin.IntLiteral | BuiltinIntegerLiteralType | getName: | IntLiteral | getCanonicalType: | Builtin.IntLiteral | | Builtin.Job | BuiltinJobType | getName: | Job | getCanonicalType: | Builtin.Job | | Builtin.NativeObject | BuiltinNativeObjectType | getName: | NativeObject | getCanonicalType: | Builtin.NativeObject | diff --git a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected index 7fba23db8bd..7b2c1bada26 100644 --- a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected +++ b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected @@ -1,2 +1,8 @@ +| 16 | getName: | 16 | getCanonicalType: | 16 | getValue: | 16 | +| 40 | getName: | 40 | getCanonicalType: | 40 | getValue: | 40 | +| 58 | getName: | 58 | getCanonicalType: | 58 | getValue: | 58 | +| 100 | getName: | 100 | getCanonicalType: | 100 | getValue: | 100 | +| 112 | getName: | 112 | getCanonicalType: | 112 | getValue: | 112 | | 128 | getName: | 128 | getCanonicalType: | 128 | getValue: | 128 | | 256 | getName: | 256 | getCanonicalType: | 256 | getValue: | 256 | +| 716 | getName: | 716 | getCanonicalType: | 716 | getValue: | 716 | diff --git a/swift/ql/test/library-tests/ast/PrintAst.expected b/swift/ql/test/library-tests/ast/PrintAst.expected index 8cd6a4a5aff..9e47767c237 100644 --- a/swift/ql/test/library-tests/ast/PrintAst.expected +++ b/swift/ql/test/library-tests/ast/PrintAst.expected @@ -705,7 +705,7 @@ cfg.swift: # 138| getVariable(0): [ConcreteVarDecl] $generator # 138| Type = IndexingIterator> # 138| getPattern(): [AnyPattern] _ -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 138| getIteratorVar(): [PatternBindingDecl] var ... = ... # 138| getInit(0): [CallExpr] call to makeIterator() # 138| getFunction(): [MethodLookupExpr] .makeIterator() # 138| getBase(): [BinaryExpr] ... ....(_:_:) ... @@ -3263,7 +3263,7 @@ cfg.swift: # 526| getVariable(1): [ConcreteVarDecl] $i$generator # 526| Type = IndexingIterator> # 526| getPattern(): [NamedPattern] i -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 526| getIteratorVar(): [PatternBindingDecl] var ... = ... # 526| getInit(0): [CallExpr] call to makeIterator() # 526| getFunction(): [MethodLookupExpr] .makeIterator() # 526| getBase(): [BinaryExpr] ... ....(_:_:) ... @@ -3302,7 +3302,7 @@ cfg.swift: # 533| getVariable(1): [ConcreteVarDecl] $i$generator # 533| Type = AsyncStream.Iterator # 533| getPattern(): [NamedPattern] i -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 533| getIteratorVar(): [PatternBindingDecl] var ... = ... # 533| getInit(0): [CallExpr] call to makeAsyncIterator() # 533| getFunction(): [MethodLookupExpr] .makeAsyncIterator() # 533| getBase(): [DeclRefExpr] stream @@ -4141,7 +4141,7 @@ declarations.swift: #-----| getResult(): [MemberRefExpr] .wrappedValue #-----| getBase(): [DeclRefExpr] _x #-----| getCapture(0): [CapturedDecl] _x -#-----| getPropertyWrapperBackingVarBinding(): [PatternBindingDecl] var ... = ... +# 77| getPropertyWrapperBackingVarBinding(): [PatternBindingDecl] var ... = ... # 77| getInit(0): [CallExpr] call to ZeroWrapper.init() # 77| getFunction(): [MethodLookupExpr] ZeroWrapper.init() # 77| getBase(): [TypeExpr] ZeroWrapper.Type @@ -7018,7 +7018,7 @@ statements.swift: # 2| getVariable(1): [ConcreteVarDecl] $i$generator # 2| Type = IndexingIterator> # 2| getPattern(): [NamedPattern] i -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 2| getIteratorVar(): [PatternBindingDecl] var ... = ... # 2| getInit(0): [CallExpr] call to makeIterator() # 2| getFunction(): [MethodLookupExpr] .makeIterator() # 2| getBase(): [BinaryExpr] ... ....(_:_:) ... @@ -7470,7 +7470,7 @@ statements.swift: # 71| getExpr(): [IntegerLiteralExpr] 2 # 71| getArgument(1): [Argument] : 0 # 71| getExpr(): [IntegerLiteralExpr] 0 -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 71| getIteratorVar(): [PatternBindingDecl] var ... = ... # 71| getInit(0): [CallExpr] call to makeIterator() # 71| getFunction(): [MethodLookupExpr] .makeIterator() # 71| getBase(): [DeclRefExpr] numbers diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index 8fc8c7808b1..f128a0994b5 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -474,7 +474,8 @@ | cfg.swift:138:12:138:12 | 0 | cfg.swift:138:16:138:16 | 10 | | | cfg.swift:138:12:138:12 | $generator | cfg.swift:138:12:138:12 | .makeIterator() | match | | cfg.swift:138:12:138:12 | .makeIterator() | cfg.swift:138:13:138:13 | ....(_:_:) | | -| cfg.swift:138:12:138:12 | call to makeIterator() | file://:0:0:0:0 | var ... = ... | | +| cfg.swift:138:12:138:12 | call to makeIterator() | cfg.swift:138:12:138:12 | var ... = ... | | +| cfg.swift:138:12:138:12 | var ... = ... | cfg.swift:138:3:138:3 | .next() | | | cfg.swift:138:12:138:16 | ... ....(_:_:) ... | cfg.swift:138:12:138:12 | call to makeIterator() | | | cfg.swift:138:13:138:13 | ....(_:_:) | cfg.swift:138:13:138:13 | Int.Type | | | cfg.swift:138:13:138:13 | Int.Type | cfg.swift:138:12:138:12 | 0 | | @@ -2023,7 +2024,8 @@ | cfg.swift:526:26:526:26 | 1 | cfg.swift:526:30:526:30 | 100 | | | cfg.swift:526:26:526:26 | $i$generator | cfg.swift:526:26:526:26 | .makeIterator() | match | | cfg.swift:526:26:526:26 | .makeIterator() | cfg.swift:526:27:526:27 | ....(_:_:) | | -| cfg.swift:526:26:526:26 | call to makeIterator() | file://:0:0:0:0 | var ... = ... | | +| cfg.swift:526:26:526:26 | call to makeIterator() | cfg.swift:526:26:526:26 | var ... = ... | | +| cfg.swift:526:26:526:26 | var ... = ... | cfg.swift:526:17:526:17 | .next() | | | cfg.swift:526:26:526:30 | ... ....(_:_:) ... | cfg.swift:526:26:526:26 | call to makeIterator() | | | cfg.swift:526:27:526:27 | ....(_:_:) | cfg.swift:526:27:526:27 | Int.Type | | | cfg.swift:526:27:526:27 | Int.Type | cfg.swift:526:26:526:26 | 1 | | @@ -2048,8 +2050,9 @@ | cfg.swift:533:24:533:24 | $i$generator | cfg.swift:533:24:533:24 | .makeAsyncIterator() | match | | cfg.swift:533:24:533:24 | (AsyncStream) ... | cfg.swift:533:24:533:24 | call to makeAsyncIterator() | | | cfg.swift:533:24:533:24 | .makeAsyncIterator() | cfg.swift:533:24:533:24 | stream | | -| cfg.swift:533:24:533:24 | call to makeAsyncIterator() | file://:0:0:0:0 | var ... = ... | | +| cfg.swift:533:24:533:24 | call to makeAsyncIterator() | cfg.swift:533:24:533:24 | var ... = ... | | | cfg.swift:533:24:533:24 | stream | cfg.swift:533:24:533:24 | (AsyncStream) ... | | +| cfg.swift:533:24:533:24 | var ... = ... | cfg.swift:533:5:533:5 | .next(isolation:) | | | cfg.swift:534:9:534:9 | print(_:separator:terminator:) | cfg.swift:534:15:534:15 | i | | | cfg.swift:534:9:534:16 | call to print(_:separator:terminator:) | cfg.swift:533:5:533:5 | .next(isolation:) | | | cfg.swift:534:14:534:14 | default separator | cfg.swift:534:14:534:14 | default terminator | | @@ -2350,6 +2353,3 @@ | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | -| file://:0:0:0:0 | var ... = ... | cfg.swift:138:3:138:3 | .next() | | -| file://:0:0:0:0 | var ... = ... | cfg.swift:526:17:526:17 | .next() | | -| file://:0:0:0:0 | var ... = ... | cfg.swift:533:5:533:5 | .next(isolation:) | | From f7de0abe602d2c4695b11604201e97637bf4673c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 15:32:43 +0200 Subject: [PATCH 032/208] Swift: Fix `BuiltinFixedArrayType` mangling --- swift/extractor/mangler/SwiftMangler.cpp | 11 +++- swift/extractor/mangler/SwiftMangler.h | 1 + .../type/BuiltinType/BuiltinType.expected | 61 ------------------- 3 files changed, 9 insertions(+), 64 deletions(-) diff --git a/swift/extractor/mangler/SwiftMangler.cpp b/swift/extractor/mangler/SwiftMangler.cpp index 8d7d2a8a065..76735bdc09f 100644 --- a/swift/extractor/mangler/SwiftMangler.cpp +++ b/swift/extractor/mangler/SwiftMangler.cpp @@ -202,6 +202,14 @@ SwiftMangledName SwiftMangler::visitBuiltinType(const swift::BuiltinType* type) return initMangled(type) << type->getTypeName(buffer, /* prependBuiltinNamespace= */ false); } +SwiftMangledName SwiftMangler::visitBuiltinFixedArrayType( + const swift::BuiltinFixedArrayType* type) { + auto ret = visitBuiltinType(type); + ret << fetch(type->getSize()); + ret << fetch(type->getElementType()); + return ret; +} + SwiftMangledName SwiftMangler::visitAnyGenericType(const swift::AnyGenericType* type) { auto ret = initMangled(type); auto decl = type->getDecl(); @@ -240,9 +248,6 @@ SwiftMangledName SwiftMangler::visitAnyFunctionType(const swift::AnyFunctionType if (flags.isNonEphemeral()) { ret << "_nonephermeral"; } - if (flags.isIsolated()) { - ret << "_isolated"; - } if (flags.isSending()) { ret << "_sending"; } diff --git a/swift/extractor/mangler/SwiftMangler.h b/swift/extractor/mangler/SwiftMangler.h index caf70718633..bb369101388 100644 --- a/swift/extractor/mangler/SwiftMangler.h +++ b/swift/extractor/mangler/SwiftMangler.h @@ -71,6 +71,7 @@ class SwiftMangler : private swift::TypeVisitor, SwiftMangledName visitModuleType(const swift::ModuleType* type); SwiftMangledName visitTupleType(const swift::TupleType* type); SwiftMangledName visitBuiltinType(const swift::BuiltinType* type); + SwiftMangledName visitBuiltinFixedArrayType(const swift::BuiltinFixedArrayType* type); SwiftMangledName visitAnyGenericType(const swift::AnyGenericType* type); // shouldn't be required, but they forgot to link `NominalType` to its direct superclass diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected index fe0d3372c49..1b64e9f4a22 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected @@ -3,69 +3,8 @@ | Builtin.FPIEEE32 | BuiltinFloatType | getName: | FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | | Builtin.FPIEEE64 | BuiltinFloatType | getName: | FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | | Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | | Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | | Builtin.IntLiteral | BuiltinIntegerLiteralType | getName: | IntLiteral | getCanonicalType: | Builtin.IntLiteral | | Builtin.Job | BuiltinJobType | getName: | Job | getCanonicalType: | Builtin.Job | | Builtin.NativeObject | BuiltinNativeObjectType | getName: | NativeObject | getCanonicalType: | Builtin.NativeObject | From 7bf78de167533dc217ce5aab4f165a7dd0ee78da Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 15:42:10 +0200 Subject: [PATCH 033/208] Swift: Fix `AnyFunctionType` name mangling --- swift/extractor/mangler/SwiftMangler.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/swift/extractor/mangler/SwiftMangler.cpp b/swift/extractor/mangler/SwiftMangler.cpp index 76735bdc09f..483c0ae73d2 100644 --- a/swift/extractor/mangler/SwiftMangler.cpp +++ b/swift/extractor/mangler/SwiftMangler.cpp @@ -314,9 +314,13 @@ SwiftMangledName SwiftMangler::visitAnyFunctionType(const swift::AnyFunctionType if (type->hasGlobalActor()) { ret << "_actor" << fetch(type->getGlobalActor()); } - if (type->getIsolation().isErased()) { + const auto& isolation = type->getIsolation(); + if (isolation.isErased()) { ret << "_isolated"; } + if (isolation.isNonIsolatedCaller()) { + ret << "_nonisolatednonsending"; + } // TODO: see if this needs to be used in identifying types, if not it needs to be removed from // type printing in the Swift compiler code assert(type->hasExtInfo() && "type must have ext info"); From d09e2f66cd2686bddf0640b66a4cfa296fdcf77f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 18:20:59 +0200 Subject: [PATCH 034/208] Swift: Assign indexes to `fileprivate` `ValueDecl`s At least in the case of function declarations there can be multiple identical ones within the same module, causing data set check errors if not differentiated. --- swift/extractor/mangler/SwiftMangler.cpp | 65 +++++++++++++++--------- swift/extractor/mangler/SwiftMangler.h | 19 ++++--- 2 files changed, 53 insertions(+), 31 deletions(-) diff --git a/swift/extractor/mangler/SwiftMangler.cpp b/swift/extractor/mangler/SwiftMangler.cpp index 483c0ae73d2..e9f46a9d3dc 100644 --- a/swift/extractor/mangler/SwiftMangler.cpp +++ b/swift/extractor/mangler/SwiftMangler.cpp @@ -40,8 +40,8 @@ std::string_view getTypeKindStr(const swift::TypeBase* type) { } // namespace -std::unordered_map - SwiftMangler::preloadedExtensionIndexes; +std::unordered_map + SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes; SwiftMangledName SwiftMangler::initMangled(const swift::TypeBase* type) { return {getTypeKindStr(type), '_'}; @@ -75,6 +75,12 @@ SwiftMangledName SwiftMangler::visitValueDecl(const swift::ValueDecl* decl, bool if (decl->isStatic()) { ret << "|static"; } + if (decl->getFormalAccess() == swift::AccessLevel::FilePrivate) { + auto parent = getParent(decl); + auto index = getExtensionOrFilePrivateValueIndex(decl, parent); + ret << "|fileprivate" << index.index + << (index.kind == ExtensionOrFilePrivateValueKind::clang ? "_clang" : ""); + } return ret; } @@ -105,51 +111,63 @@ SwiftMangledName SwiftMangler::visitExtensionDecl(const swift::ExtensionDecl* de auto parent = getParent(decl); auto target = decl->getExtendedType(); - auto index = getExtensionIndex(decl, parent); + auto index = getExtensionOrFilePrivateValueIndex(decl, parent); return initMangled(decl) << fetch(target) << index.index - << (index.kind == ExtensionKind::clang ? "_clang" : ""); + << (index.kind == ExtensionOrFilePrivateValueKind::clang ? "_clang" + : ""); } -SwiftMangler::ExtensionIndex SwiftMangler::getExtensionIndex(const swift::ExtensionDecl* decl, - const swift::Decl* parent) { - // to avoid iterating multiple times on the parent of multiple extensions, we preload extension - // indexes once for each encountered parent into the `preloadedExtensionIndexes` mapping. - if (auto found = SwiftMangler::preloadedExtensionIndexes.find(decl); - found != SwiftMangler::preloadedExtensionIndexes.end()) { +SwiftMangler::ExtensionOrFilePrivateValueIndex SwiftMangler::getExtensionOrFilePrivateValueIndex( + const swift::Decl* decl, + const swift::Decl* parent) { + // to avoid iterating multiple times on the parent, we preload the indexes once for each + // encountered parent. + if (auto found = SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.find(decl); + found != SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.end()) { return found->second; } if (auto parentModule = llvm::dyn_cast(parent)) { llvm::SmallVector siblings; parentModule->getTopLevelDecls(siblings); - indexExtensions(siblings); + indexExtensionsAndFilePrivateValues(siblings); if (auto clangModule = parentModule->findUnderlyingClangModule()) { - indexClangExtensions(clangModule, decl->getASTContext().getClangModuleLoader()); + indexClangExtensionsAndFilePrivateValues(clangModule, + decl->getASTContext().getClangModuleLoader()); } } else if (auto iterableParent = llvm::dyn_cast(parent)) { - indexExtensions(iterableParent->getAllMembers()); + indexExtensionsAndFilePrivateValues(iterableParent->getAllMembers()); } else { // TODO use a generic logging handle for Swift entities here, once it's available CODEQL_ASSERT(false, "non-local context must be module or iterable decl context"); } - auto found = SwiftMangler::preloadedExtensionIndexes.find(decl); + auto found = SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.find(decl); // TODO use a generic logging handle for Swift entities here, once it's available - CODEQL_ASSERT(found != SwiftMangler::preloadedExtensionIndexes.end(), - "extension not found within parent"); + CODEQL_ASSERT(found != SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.end(), + "declaration not found within parent"); return found->second; } -void SwiftMangler::indexExtensions(llvm::ArrayRef siblings) { +bool SwiftMangler::isExtensionOrFilePrivateValue(const swift::Decl* decl) { + return decl->getKind() == swift::DeclKind::Extension || + (swift::isa(decl) && + swift::dyn_cast(decl)->getFormalAccess() == + swift::AccessLevel::FilePrivate); +} + +void SwiftMangler::indexExtensionsAndFilePrivateValues(llvm::ArrayRef siblings) { auto index = 0u; for (auto sibling : siblings) { - if (sibling->getKind() == swift::DeclKind::Extension) { - SwiftMangler::preloadedExtensionIndexes.try_emplace(sibling, ExtensionKind::swift, index); + if (isExtensionOrFilePrivateValue(sibling)) { + SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.try_emplace( + sibling, ExtensionOrFilePrivateValueKind::swift, index); index++; } } } -void SwiftMangler::indexClangExtensions(const clang::Module* clangModule, - swift::ClangModuleLoader* moduleLoader) { +void SwiftMangler::indexClangExtensionsAndFilePrivateValues( + const clang::Module* clangModule, + swift::ClangModuleLoader* moduleLoader) { if (!moduleLoader) { return; } @@ -160,8 +178,9 @@ void SwiftMangler::indexClangExtensions(const clang::Module* clangModule, llvm::SmallVector children; swiftSubmodule->getTopLevelDecls(children); for (const auto child : children) { - if (child->getKind() == swift::DeclKind::Extension) { - SwiftMangler::preloadedExtensionIndexes.try_emplace(child, ExtensionKind::clang, index); + if (isExtensionOrFilePrivateValue(child)) { + SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.try_emplace( + child, ExtensionOrFilePrivateValueKind::clang, index); index++; } } diff --git a/swift/extractor/mangler/SwiftMangler.h b/swift/extractor/mangler/SwiftMangler.h index bb369101388..92175b5887b 100644 --- a/swift/extractor/mangler/SwiftMangler.h +++ b/swift/extractor/mangler/SwiftMangler.h @@ -107,26 +107,29 @@ class SwiftMangler : private swift::TypeVisitor, SwiftMangledName visitPackExpansionType(const swift::PackExpansionType* type); private: - enum class ExtensionKind : bool { + enum class ExtensionOrFilePrivateValueKind : bool { swift, clang, }; - struct ExtensionIndex { - const ExtensionKind kind : 1; + struct ExtensionOrFilePrivateValueIndex { + const ExtensionOrFilePrivateValueKind kind : 1; const uint32_t index : 31; }; - static std::unordered_map preloadedExtensionIndexes; + static std::unordered_map + preloadedExtensionOrFilePrivateValueIndexes; virtual SwiftMangledName fetch(const swift::Decl* decl) = 0; virtual SwiftMangledName fetch(const swift::TypeBase* type) = 0; SwiftMangledName fetch(swift::Type type) { return fetch(type.getPointer()); } - void indexExtensions(llvm::ArrayRef siblings); - void indexClangExtensions(const clang::Module* clangModule, - swift::ClangModuleLoader* moduleLoader); - ExtensionIndex getExtensionIndex(const swift::ExtensionDecl* decl, const swift::Decl* parent); + bool isExtensionOrFilePrivateValue(const swift::Decl* decl); + void indexExtensionsAndFilePrivateValues(llvm::ArrayRef siblings); + void indexClangExtensionsAndFilePrivateValues(const clang::Module* clangModule, + swift::ClangModuleLoader* moduleLoader); + ExtensionOrFilePrivateValueIndex getExtensionOrFilePrivateValueIndex(const swift::Decl* decl, + const swift::Decl* parent); static SwiftMangledName initMangled(const swift::TypeBase* type); SwiftMangledName initMangled(const swift::Decl* decl); SwiftMangledName visitTypeDiscriminatedValueDecl(const swift::ValueDecl* decl); From 34b626e8bb0d00dc98da7826ec388a6191712280 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 8 Apr 2026 18:51:55 +0200 Subject: [PATCH 035/208] Swift: Update expected integration test results --- .../integration-tests/posix/deduplication/BuiltinTypes.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected b/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected index 0f0a0220445..1ca837955b6 100644 --- a/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected +++ b/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected @@ -4,6 +4,7 @@ | Builtin.FPIEEE64 | BuiltinFloatType | | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | | Builtin.FixedArray | BuiltinFixedArrayType | +| Builtin.FixedArray | BuiltinFixedArrayType | | Builtin.Int1 | BuiltinIntegerType | | Builtin.Int8 | BuiltinIntegerType | | Builtin.Int16 | BuiltinIntegerType | From 7879d0a006d6cc7814006f42dd19f8baada5c1e3 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 9 Apr 2026 10:33:27 +0200 Subject: [PATCH 036/208] Swift: Fix `OpaqueTypeArchetypeType` name mangling --- swift/extractor/mangler/SwiftMangler.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/swift/extractor/mangler/SwiftMangler.cpp b/swift/extractor/mangler/SwiftMangler.cpp index e9f46a9d3dc..879bc8fe516 100644 --- a/swift/extractor/mangler/SwiftMangler.cpp +++ b/swift/extractor/mangler/SwiftMangler.cpp @@ -451,7 +451,13 @@ SwiftMangledName SwiftMangler::visitArchetypeType(const swift::ArchetypeType* ty SwiftMangledName SwiftMangler::visitOpaqueTypeArchetypeType( const swift::OpaqueTypeArchetypeType* type) { - return visitArchetypeType(type) << fetch(type->getDecl()); + auto ret = visitArchetypeType(type) << fetch(type->getDecl()); + ret << '<'; + for (auto replacement : type->getSubstitutions().getReplacementTypes()) { + ret << fetch(replacement); + } + ret << '>'; + return ret; } SwiftMangledName SwiftMangler::visitExistentialArchetypeType( From 21937c2415b4a023ba5f31f4644caffaa2ed1ab5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 9 Apr 2026 14:09:00 +0200 Subject: [PATCH 037/208] Swift: Add dbscheme upgrade and downgrade scripts --- .../old.dbscheme | 2889 +++++++++++++++++ .../swift.dbscheme | 2885 ++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 2885 ++++++++++++++++ .../swift.dbscheme | 2889 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 11552 insertions(+) create mode 100644 swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme create mode 100644 swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme create mode 100644 swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties create mode 100644 swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/old.dbscheme create mode 100644 swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/swift.dbscheme create mode 100644 swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/upgrade.properties diff --git a/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme new file mode 100644 index 00000000000..33e5e5e03bd --- /dev/null +++ b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme @@ -0,0 +1,2885 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_fixed_array_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties new file mode 100644 index 00000000000..dfc606c6f14 --- /dev/null +++ b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties @@ -0,0 +1,2 @@ +description: Upgrade to Swift 6.3 +compatibility: full diff --git a/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/old.dbscheme b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/old.dbscheme new file mode 100644 index 00000000000..33e5e5e03bd --- /dev/null +++ b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/old.dbscheme @@ -0,0 +1,2885 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_fixed_array_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/swift.dbscheme b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/swift.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/swift.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/upgrade.properties b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/upgrade.properties new file mode 100644 index 00000000000..dfc606c6f14 --- /dev/null +++ b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/upgrade.properties @@ -0,0 +1,2 @@ +description: Upgrade to Swift 6.3 +compatibility: full From 94fb011b90dac51a4a1860f3f6c9e8cdc0cd185f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 9 Apr 2026 15:17:13 +0200 Subject: [PATCH 038/208] Swift: Add change note --- swift/ql/lib/change-notes/2026-04-06-swift-6.3.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2026-04-06-swift-6.3.md diff --git a/swift/ql/lib/change-notes/2026-04-06-swift-6.3.md b/swift/ql/lib/change-notes/2026-04-06-swift-6.3.md new file mode 100644 index 00000000000..512cb613984 --- /dev/null +++ b/swift/ql/lib/change-notes/2026-04-06-swift-6.3.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Upgraded to allow analysis of Swift 6.3. From 85c42ae9325aa96aee37eb607813edfee083f301 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 9 Apr 2026 15:19:29 +0200 Subject: [PATCH 039/208] Swift: Update supported versions --- docs/codeql/reusables/supported-versions-compilers.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index ddda7065cf1..f40e7960589 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -26,7 +26,7 @@ Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py`` Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" Rust [11]_,"Rust editions 2021 and 2024","Rust compiler","``.rs``, ``Cargo.toml``" - Swift [12]_ [13]_,"Swift 5.4-6.2","Swift compiler","``.swift``" + Swift [12]_ [13]_,"Swift 5.4-6.3","Swift compiler","``.swift``" TypeScript [14]_,"2.6-5.9",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``" .. container:: footnote-group From 3fa5c952b3aa4551c1041ff9703e828363aa4535 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 7 Apr 2026 13:39:09 +0200 Subject: [PATCH 040/208] Rust: Add more closure flow tests --- .../dataflow/lambdas/inline-flow.expected | 65 +++++++++++++++++++ .../library-tests/dataflow/lambdas/main.rs | 26 ++++++++ 2 files changed, 91 insertions(+) diff --git a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected index 7c99702aec6..31b42cc228a 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected @@ -30,6 +30,33 @@ edges | main.rs:77:13:77:22 | f(...) | main.rs:77:9:77:9 | b | provenance | | | main.rs:77:21:77:21 | a | main.rs:66:24:66:32 | ...: i64 | provenance | | | main.rs:77:21:77:21 | a | main.rs:77:13:77:22 | f(...) | provenance | | +| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | +| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | +| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | +| main.rs:82:7:82:7 | x | main.rs:87:12:87:12 | ... | provenance | | +| main.rs:82:7:82:7 | x | main.rs:89:12:89:12 | ... | provenance | | +| main.rs:82:7:82:7 | x | main.rs:99:17:99:17 | ... | provenance | | +| main.rs:82:7:82:7 | x | main.rs:101:17:101:17 | ... | provenance | | +| main.rs:82:7:82:7 | x | main.rs:102:17:102:17 | ... | provenance | | +| main.rs:86:9:86:9 | a | main.rs:87:24:87:24 | a | provenance | | +| main.rs:86:13:86:22 | source(...) | main.rs:86:9:86:9 | a | provenance | | +| main.rs:87:12:87:12 | ... | main.rs:87:20:87:20 | x | provenance | | +| main.rs:87:24:87:24 | a | main.rs:81:28:81:33 | ...: i64 | provenance | | +| main.rs:88:9:88:9 | b | main.rs:89:24:89:24 | b | provenance | | +| main.rs:88:13:88:22 | source(...) | main.rs:88:9:88:9 | b | provenance | | +| main.rs:89:12:89:12 | ... | main.rs:89:20:89:20 | x | provenance | | +| main.rs:89:24:89:24 | b | main.rs:81:28:81:33 | ...: i64 | provenance | | +| main.rs:93:33:93:38 | ...: i64 | main.rs:94:14:94:14 | x | provenance | | +| main.rs:94:14:94:14 | x | main.rs:81:28:81:33 | ...: i64 | provenance | | +| main.rs:98:9:98:9 | a | main.rs:99:29:99:29 | a | provenance | | +| main.rs:98:13:98:22 | source(...) | main.rs:98:9:98:9 | a | provenance | | +| main.rs:99:17:99:17 | ... | main.rs:99:25:99:25 | x | provenance | | +| main.rs:99:29:99:29 | a | main.rs:93:33:93:38 | ...: i64 | provenance | | +| main.rs:100:9:100:9 | b | main.rs:101:29:101:29 | b | provenance | | +| main.rs:100:13:100:22 | source(...) | main.rs:100:9:100:9 | b | provenance | | +| main.rs:101:17:101:17 | ... | main.rs:101:25:101:25 | x | provenance | | +| main.rs:101:29:101:29 | b | main.rs:93:33:93:38 | ...: i64 | provenance | | +| main.rs:102:17:102:17 | ... | main.rs:102:25:102:25 | x | provenance | | nodes | main.rs:10:20:10:52 | if cond {...} else {...} | semmle.label | if cond {...} else {...} | | main.rs:10:30:10:39 | source(...) | semmle.label | source(...) | @@ -68,6 +95,36 @@ nodes | main.rs:77:13:77:22 | f(...) | semmle.label | f(...) | | main.rs:77:21:77:21 | a | semmle.label | a | | main.rs:78:10:78:10 | b | semmle.label | b | +| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:82:7:82:7 | x | semmle.label | x | +| main.rs:82:7:82:7 | x | semmle.label | x | +| main.rs:82:7:82:7 | x | semmle.label | x | +| main.rs:86:9:86:9 | a | semmle.label | a | +| main.rs:86:13:86:22 | source(...) | semmle.label | source(...) | +| main.rs:87:12:87:12 | ... | semmle.label | ... | +| main.rs:87:20:87:20 | x | semmle.label | x | +| main.rs:87:24:87:24 | a | semmle.label | a | +| main.rs:88:9:88:9 | b | semmle.label | b | +| main.rs:88:13:88:22 | source(...) | semmle.label | source(...) | +| main.rs:89:12:89:12 | ... | semmle.label | ... | +| main.rs:89:20:89:20 | x | semmle.label | x | +| main.rs:89:24:89:24 | b | semmle.label | b | +| main.rs:93:33:93:38 | ...: i64 | semmle.label | ...: i64 | +| main.rs:94:14:94:14 | x | semmle.label | x | +| main.rs:98:9:98:9 | a | semmle.label | a | +| main.rs:98:13:98:22 | source(...) | semmle.label | source(...) | +| main.rs:99:17:99:17 | ... | semmle.label | ... | +| main.rs:99:25:99:25 | x | semmle.label | x | +| main.rs:99:29:99:29 | a | semmle.label | a | +| main.rs:100:9:100:9 | b | semmle.label | b | +| main.rs:100:13:100:22 | source(...) | semmle.label | source(...) | +| main.rs:101:17:101:17 | ... | semmle.label | ... | +| main.rs:101:25:101:25 | x | semmle.label | x | +| main.rs:101:29:101:29 | b | semmle.label | b | +| main.rs:102:17:102:17 | ... | semmle.label | ... | +| main.rs:102:25:102:25 | x | semmle.label | x | subpaths | main.rs:29:21:29:21 | a | main.rs:27:20:27:23 | ... | main.rs:27:26:27:52 | if cond {...} else {...} | main.rs:29:13:29:22 | f(...) | | main.rs:77:21:77:21 | a | main.rs:66:24:66:32 | ...: i64 | main.rs:66:42:72:1 | { ... } | main.rs:77:13:77:22 | f(...) | @@ -81,3 +138,11 @@ testFailures | main.rs:52:10:52:13 | data | main.rs:62:13:62:22 | source(...) | main.rs:52:10:52:13 | data | $@ | main.rs:62:13:62:22 | source(...) | source(...) | | main.rs:57:10:57:12 | f(...) | main.rs:48:5:48:14 | source(...) | main.rs:57:10:57:12 | f(...) | $@ | main.rs:48:5:48:14 | source(...) | source(...) | | main.rs:78:10:78:10 | b | main.rs:76:13:76:22 | source(...) | main.rs:78:10:78:10 | b | $@ | main.rs:76:13:76:22 | source(...) | source(...) | +| main.rs:87:20:87:20 | x | main.rs:86:13:86:22 | source(...) | main.rs:87:20:87:20 | x | $@ | main.rs:86:13:86:22 | source(...) | source(...) | +| main.rs:89:20:89:20 | x | main.rs:88:13:88:22 | source(...) | main.rs:89:20:89:20 | x | $@ | main.rs:88:13:88:22 | source(...) | source(...) | +| main.rs:99:25:99:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:99:25:99:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | +| main.rs:99:25:99:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:99:25:99:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | +| main.rs:101:25:101:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | +| main.rs:101:25:101:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | +| main.rs:102:25:102:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:102:25:102:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | +| main.rs:102:25:102:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:102:25:102:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/lambdas/main.rs b/rust/ql/test/library-tests/dataflow/lambdas/main.rs index 252b132ec74..a2dfc7e9a1c 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/main.rs +++ b/rust/ql/test/library-tests/dataflow/lambdas/main.rs @@ -78,6 +78,30 @@ fn function_flows_through() { sink(b); // $ hasValueFlow=56 } +fn apply(f: F, x: i64) { + f(x); +} + +fn test_apply() { + let a = source(77); + apply(|x| sink(x), a); // $ hasValueFlow=77 + let b = source(78); + apply(|x| sink(x), b); // $ hasValueFlow=78 + apply(|x| sink(x), 0); +} + +fn apply_wrap(f: F, x: i64) { + apply(f, x); +} + +fn test_apply_wrap() { + let a = source(79); + apply_wrap(|x| sink(x), a); // $ hasValueFlow=79 $ SPURIOUS: hasValueFlow=80 + let b = source(80); + apply_wrap(|x| sink(x), b); // $ hasValueFlow=80 $ SPURIOUS: hasValueFlow=79 + apply_wrap(|x| sink(x), 0); // $ SPURIOUS: hasValueFlow=79 hasValueFlow=80 +} + fn main() { closure_flow_out(); closure_flow_in(); @@ -86,4 +110,6 @@ fn main() { function_flow_in(); function_flow_out(); function_flows_through(); + test_apply(); + test_apply_wrap(); } From 23f081006ea3ce087e6e18e2715fa33342a39958 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 27 Mar 2026 12:53:45 +0100 Subject: [PATCH 041/208] Rust: Track closure types in data flow --- .../rust/dataflow/internal/DataFlowImpl.qll | 113 ++++++++++++++++-- .../rust/dataflow/internal/ModelsAsData.qll | 6 +- .../dataflow/lambdas/inline-flow.expected | 14 +-- .../library-tests/dataflow/lambdas/main.rs | 2 +- 4 files changed, 109 insertions(+), 26 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 27773758fc4..6ae18d8ce14 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -193,9 +193,7 @@ module LocalFlow { } pragma[nomagic] - predicate localFlowStepCommon(Node nodeFrom, Node nodeTo) { - nodeFrom.asExpr() = getALastEvalNode(nodeTo.asExpr()) - or + predicate localMustFlowStep(Node nodeFrom, Node nodeTo) { // An edge from the right-hand side of a let statement to the left-hand side. exists(LetStmt s | nodeFrom.asExpr() = s.getInitializer() and @@ -238,6 +236,15 @@ module LocalFlow { nodeTo.asPat() = match.getAnArm().getPat() ) or + nodeFrom.asExpr() = nodeTo.asExpr().(ParenExpr).getExpr() + } + + pragma[nomagic] + predicate localFlowStepCommon(Node nodeFrom, Node nodeTo) { + localMustFlowStep(nodeFrom, nodeTo) + or + nodeFrom.asExpr() = getALastEvalNode(nodeTo.asExpr()) + or nodeFrom.asPat().(OrPat).getAPat() = nodeTo.asPat() or nodeTo.(PostUpdateNode).getPreUpdateNode().asExpr() = @@ -263,10 +270,84 @@ predicate lambdaCallExpr(CallExprImpl::DynamicCallExpr call, LambdaCallKind kind exists(kind) } +// NOTE: We do not yet track type information, except for closures where +// we use the closure itself to represent the unique type. +final class DataFlowType extends TDataFlowType { + Expr asClosureExpr() { this = TClosureExprType(result) } + + predicate isUnknownType() { this = TUnknownType() } + + predicate isSourceContextParameterType() { this = TSourceContextParameterType() } + + string toString() { + exists(this.asClosureExpr()) and + result = "... => .." + or + this.isUnknownType() and + result = "" + or + this.isSourceContextParameterType() and + result = "" + } +} + +pragma[nomagic] +private predicate compatibleTypesSourceContextParameterTypeLeft(DataFlowType t1, DataFlowType t2) { + t1.isSourceContextParameterType() and not exists(t2.asClosureExpr()) +} + +pragma[nomagic] +private predicate compatibleTypesLeft(DataFlowType t1, DataFlowType t2) { + t1.isUnknownType() and exists(t2) + or + t1.asClosureExpr() = t2.asClosureExpr() + or + compatibleTypesSourceContextParameterTypeLeft(t1, t2) +} + +predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { + compatibleTypesLeft(t1, t2) + or + compatibleTypesLeft(t2, t1) +} + +pragma[nomagic] +predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { + not t1.isUnknownType() and t2.isUnknownType() + or + compatibleTypesSourceContextParameterTypeLeft(t1, t2) +} + +DataFlowType getNodeType(NodePublic node) { + result.asClosureExpr() = node.asExpr() + or + result.asClosureExpr() = node.(ClosureParameterNode).getCfgScope() + or + exists(VariableCapture::Flow::SynthesizedCaptureNode scn | + scn = node.(CaptureNode).getSynthesizedCaptureNode() and + if scn.isInstanceAccess() + then result.asClosureExpr() = scn.getEnclosingCallable() + else result.isUnknownType() + ) + or + not lambdaCreationExpr(node.asExpr()) and + not node instanceof ClosureParameterNode and + not node instanceof CaptureNode and + result.isUnknownType() +} + // Defines a set of aliases needed for the `RustDataFlow` module private module Aliases { class DataFlowCallableAlias = DataFlowCallable; + class DataFlowTypeAlias = DataFlowType; + + predicate compatibleTypesAlias = compatibleTypes/2; + + predicate typeStrongerThanAlias = typeStrongerThan/2; + + predicate getNodeTypeAlias = getNodeType/1; + class ReturnKindAlias = ReturnKind; class DataFlowCallAlias = DataFlowCall; @@ -398,8 +479,6 @@ module RustDataFlowGen implements InputSig result = node.(Node::Node).getEnclosingCallable() } - DataFlowType getNodeType(Node node) { any() } - predicate nodeIsHidden(Node node) { node instanceof SsaNode or node.(FlowSummaryNode).getSummaryNode().isHidden() or @@ -486,15 +565,17 @@ module RustDataFlowGen implements InputSig */ OutNode getAnOutNode(DataFlowCall call, ReturnKind kind) { call = result.getCall(kind) } - // NOTE: For now we use the type `Unit` and do not benefit from type - // information in the data flow analysis. - final class DataFlowType extends Unit { - string toString() { result = "" } + class DataFlowType = DataFlowTypeAlias; + + predicate compatibleTypes = compatibleTypesAlias/2; + + predicate typeStrongerThan = typeStrongerThanAlias/2; + + DataFlowType getSourceContextParameterNodeType(Node p) { + exists(p) and result.isSourceContextParameterType() } - predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { any() } - - predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } + predicate getNodeType = getNodeTypeAlias/1; class Content = ContentAlias; @@ -897,6 +978,8 @@ module RustDataFlowGen implements InputSig predicate localMustFlowStep(Node node1, Node node2) { SsaFlow::localMustFlowStep(node1, node2) or + LocalFlow::localMustFlowStep(node1, node2) + or FlowSummaryImpl::Private::Steps::summaryLocalMustFlowStep(node1 .(FlowSummaryNode) .getSummaryNode(), node2.(FlowSummaryNode).getSummaryNode()) @@ -1110,6 +1193,12 @@ private module Cached { TCfgScope(CfgScope scope) or TSummarizedCallable(SummarizedCallable c) + cached + newtype TDataFlowType = + TClosureExprType(Expr e) { lambdaCreationExpr(e) } or + TUnknownType() or + TSourceContextParameterType() + /** This is the local flow predicate that is exposed. */ cached predicate localFlowStepImpl(Node nodeFrom, Node nodeTo) { diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index 4d28dd8de81..0a7288a330f 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -280,7 +280,7 @@ private module Debug { private import Content private import codeql.rust.dataflow.internal.DataFlowImpl private import codeql.rust.internal.typeinference.TypeMention - private import codeql.rust.internal.typeinference.Type + private import codeql.rust.internal.typeinference.Type as Type private predicate relevantManualModel(SummarizedCallableImpl sc, string can) { exists(Provenance manual | @@ -298,7 +298,7 @@ private module Debug { sc.propagatesFlow(input, _, _, _, _, _) and input.head() = SummaryComponent::argument(pos) and p = pos.getParameterIn(sc.getParamList()) and - tm.getType() instanceof RefType and + tm.getType() instanceof Type::RefType and not input.tail().head() = SummaryComponent::content(TSingletonContentSet(TReferenceContent())) | tm = p.getTypeRepr() @@ -313,7 +313,7 @@ private module Debug { exists(TypeMention tm | relevantManualModel(sc, can) and sc.propagatesFlow(_, output, _, _, _, _) and - tm.getType() instanceof RefType and + tm.getType() instanceof Type::RefType and output.head() = SummaryComponent::return(_) and not output.tail().head() = SummaryComponent::content(TSingletonContentSet(TReferenceContent())) and diff --git a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected index 31b42cc228a..ca4bbe77479 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected @@ -13,9 +13,9 @@ edges | main.rs:29:13:29:22 | f(...) | main.rs:29:9:29:9 | b | provenance | | | main.rs:29:21:29:21 | a | main.rs:27:20:27:23 | ... | provenance | | | main.rs:29:21:29:21 | a | main.rs:29:13:29:22 | f(...) | provenance | | -| main.rs:37:16:37:25 | source(...) | main.rs:39:5:39:5 | [post] f [captured capt] | provenance | | -| main.rs:39:5:39:5 | [post] f [captured capt] | main.rs:40:10:40:13 | capt | provenance | | -| main.rs:39:5:39:5 | [post] f [captured capt] | main.rs:44:5:44:5 | g [captured capt] | provenance | | +| main.rs:37:16:37:25 | source(...) | main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | provenance | | +| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | main.rs:40:10:40:13 | capt | provenance | | +| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | main.rs:44:5:44:5 | g [captured capt] | provenance | | | main.rs:44:5:44:5 | g [captured capt] | main.rs:42:14:42:17 | capt | provenance | | | main.rs:47:29:49:1 | { ... } | main.rs:57:10:57:12 | f(...) | provenance | | | main.rs:48:5:48:14 | source(...) | main.rs:47:29:49:1 | { ... } | provenance | | @@ -37,7 +37,6 @@ edges | main.rs:82:7:82:7 | x | main.rs:89:12:89:12 | ... | provenance | | | main.rs:82:7:82:7 | x | main.rs:99:17:99:17 | ... | provenance | | | main.rs:82:7:82:7 | x | main.rs:101:17:101:17 | ... | provenance | | -| main.rs:82:7:82:7 | x | main.rs:102:17:102:17 | ... | provenance | | | main.rs:86:9:86:9 | a | main.rs:87:24:87:24 | a | provenance | | | main.rs:86:13:86:22 | source(...) | main.rs:86:9:86:9 | a | provenance | | | main.rs:87:12:87:12 | ... | main.rs:87:20:87:20 | x | provenance | | @@ -56,7 +55,6 @@ edges | main.rs:100:13:100:22 | source(...) | main.rs:100:9:100:9 | b | provenance | | | main.rs:101:17:101:17 | ... | main.rs:101:25:101:25 | x | provenance | | | main.rs:101:29:101:29 | b | main.rs:93:33:93:38 | ...: i64 | provenance | | -| main.rs:102:17:102:17 | ... | main.rs:102:25:102:25 | x | provenance | | nodes | main.rs:10:20:10:52 | if cond {...} else {...} | semmle.label | if cond {...} else {...} | | main.rs:10:30:10:39 | source(...) | semmle.label | source(...) | @@ -75,7 +73,7 @@ nodes | main.rs:29:21:29:21 | a | semmle.label | a | | main.rs:30:10:30:10 | b | semmle.label | b | | main.rs:37:16:37:25 | source(...) | semmle.label | source(...) | -| main.rs:39:5:39:5 | [post] f [captured capt] | semmle.label | [post] f [captured capt] | +| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | semmle.label | [post] f : ... => .. [captured capt] | | main.rs:40:10:40:13 | capt | semmle.label | capt | | main.rs:42:14:42:17 | capt | semmle.label | capt | | main.rs:44:5:44:5 | g [captured capt] | semmle.label | g [captured capt] | @@ -123,8 +121,6 @@ nodes | main.rs:101:17:101:17 | ... | semmle.label | ... | | main.rs:101:25:101:25 | x | semmle.label | x | | main.rs:101:29:101:29 | b | semmle.label | b | -| main.rs:102:17:102:17 | ... | semmle.label | ... | -| main.rs:102:25:102:25 | x | semmle.label | x | subpaths | main.rs:29:21:29:21 | a | main.rs:27:20:27:23 | ... | main.rs:27:26:27:52 | if cond {...} else {...} | main.rs:29:13:29:22 | f(...) | | main.rs:77:21:77:21 | a | main.rs:66:24:66:32 | ...: i64 | main.rs:66:42:72:1 | { ... } | main.rs:77:13:77:22 | f(...) | @@ -144,5 +140,3 @@ testFailures | main.rs:99:25:99:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:99:25:99:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | | main.rs:101:25:101:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | | main.rs:101:25:101:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | -| main.rs:102:25:102:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:102:25:102:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | -| main.rs:102:25:102:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:102:25:102:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/lambdas/main.rs b/rust/ql/test/library-tests/dataflow/lambdas/main.rs index a2dfc7e9a1c..66295f004a2 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/main.rs +++ b/rust/ql/test/library-tests/dataflow/lambdas/main.rs @@ -99,7 +99,7 @@ fn test_apply_wrap() { apply_wrap(|x| sink(x), a); // $ hasValueFlow=79 $ SPURIOUS: hasValueFlow=80 let b = source(80); apply_wrap(|x| sink(x), b); // $ hasValueFlow=80 $ SPURIOUS: hasValueFlow=79 - apply_wrap(|x| sink(x), 0); // $ SPURIOUS: hasValueFlow=79 hasValueFlow=80 + apply_wrap(|x| sink(x), 0); } fn main() { From 4ada727babd85e44f04fbd8e906aee8ba35475f8 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 9 Apr 2026 16:31:12 +0200 Subject: [PATCH 042/208] Swift: Add staged archives to LFS --- swift/third_party/resources/resource-dir-linux.zip | 4 ++-- swift/third_party/resources/resource-dir-macos.zip | 4 ++-- swift/third_party/resources/swift-prebuilt-linux.tar.zst | 4 ++-- swift/third_party/resources/swift-prebuilt-macos.tar.zst | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index a6e0fe2fa12..74170f15323 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:34e30361f98e5c3abec7be1d7136252cad97eba4916a87e3c08992e0289eb00f -size 385238500 +oid sha256:9078cfd1ec62f30cd25c0ea4e43fc3d99449f802e6c165f59a7f789a70eb5284 +size 408208306 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index 80411222aab..a505593bce9 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:e3966e6e8039fba5730dc49bf0a51986c6da28a94aa86552c187b66dc3716a9b -size 613938283 +oid sha256:991e63a2559a762058d66df08275aea55217ff96bd482c5ad7d536181afa573a +size 547982664 diff --git a/swift/third_party/resources/swift-prebuilt-linux.tar.zst b/swift/third_party/resources/swift-prebuilt-linux.tar.zst index 2aedff45fc8..eb86602bcd9 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:1960a80b5cbc7e1ec0ef4b221254efdd6d266eaed11c7fa6fff5388648d1881b -size 132800316 +oid sha256:cfc111c983a00acfdb01090ba1f568fa257d2f8fc3050a2f7c37e160fe9f1003 +size 143475222 diff --git a/swift/third_party/resources/swift-prebuilt-macos.tar.zst b/swift/third_party/resources/swift-prebuilt-macos.tar.zst index aaf3d1c42af..a2df7ad311c 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:2b7ec0e2bd28b16ca9a16cb3d1ad8c917ad4641cf1d0fe574e75381871beeda4 -size 115351244 +oid sha256:eab65167bfb20e07803b9be61b22b109a0308056c58b572ea9a275b920a3ea0a +size 125077905 From 43f48001e38aa2faaf7e900c21a37b6efbd0eb72 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 9 Apr 2026 16:31:57 +0200 Subject: [PATCH 043/208] Swift: Clear override --- swift/third_party/load.bzl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index 156a2201cda..676c5f0ce84 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -6,10 +6,6 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main - "swift-prebuilt-macOS-swift-6.3-RELEASE-161.tar.zst": "eab65167bfb20e07803b9be61b22b109a0308056c58b572ea9a275b920a3ea0a", - "swift-prebuilt-Linux-swift-6.3-RELEASE-161.tar.zst": "cfc111c983a00acfdb01090ba1f568fa257d2f8fc3050a2f7c37e160fe9f1003", - "resource-dir-macOS-swift-6.3-RELEASE-151.zip": "991e63a2559a762058d66df08275aea55217ff96bd482c5ad7d536181afa573a", - "resource-dir-Linux-swift-6.3-RELEASE-151.zip": "9078cfd1ec62f30cd25c0ea4e43fc3d99449f802e6c165f59a7f789a70eb5284", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" From 42fe2d5002f5cad99ce5d92146fca9a23f723e39 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 10 Apr 2026 10:08:09 +0200 Subject: [PATCH 044/208] Rust: Add another type inference test --- .../library-tests/type-inference/closure.rs | 1 + .../type-inference/type-inference.expected | 130 ++++++++++-------- 2 files changed, 71 insertions(+), 60 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/closure.rs b/rust/ql/test/library-tests/type-inference/closure.rs index fbef401bb08..a63a708e245 100644 --- a/rust/ql/test/library-tests/type-inference/closure.rs +++ b/rust/ql/test/library-tests/type-inference/closure.rs @@ -228,6 +228,7 @@ mod implicit_deref { let x = 0i32; let v = Default::default(); // $ type=v:i32 target=default let s = S(v); + let _ret = s(x); // $ type=_ret:bool let s_ref = &s; let _ret = s_ref(x); // $ type=_ret:bool 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 4be70359842..ceae6f4dd09 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -873,7 +873,7 @@ inferCertainType | closure.rs:218:13:218:22 | &... | | {EXTERNAL LOCATION} | & | | closure.rs:218:14:218:22 | \|...\| false | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:218:18:218:22 | false | | {EXTERNAL LOCATION} | bool | -| closure.rs:222:19:240:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:222:19:241:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:223:13:223:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:223:17:223:20 | 0i64 | | {EXTERNAL LOCATION} | i64 | | closure.rs:226:21:226:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | @@ -881,20 +881,23 @@ inferCertainType | closure.rs:226:22:226:22 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:228:13:228:13 | x | | {EXTERNAL LOCATION} | i32 | | closure.rs:228:17:228:20 | 0i32 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:231:13:231:17 | s_ref | | {EXTERNAL LOCATION} | & | -| closure.rs:231:21:231:22 | &s | | {EXTERNAL LOCATION} | & | -| closure.rs:232:20:232:24 | s_ref | | {EXTERNAL LOCATION} | & | -| closure.rs:232:25:232:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:232:25:232:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:232:26:232:26 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:238:13:238:13 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:238:17:238:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:9:239:12 | (...) | | {EXTERNAL LOCATION} | & | -| closure.rs:239:10:239:11 | &c | | {EXTERNAL LOCATION} | & | -| closure.rs:239:11:239:11 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:13:239:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:239:13:239:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:14:239:14 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:21:231:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:231:21:231:23 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:22:231:22 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:13:232:17 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:232:21:232:22 | &s | | {EXTERNAL LOCATION} | & | +| closure.rs:233:20:233:24 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:233:25:233:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:233:25:233:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:233:26:233:26 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:239:13:239:13 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:239:17:239:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:240:9:240:12 | (...) | | {EXTERNAL LOCATION} | & | +| closure.rs:240:10:240:11 | &c | | {EXTERNAL LOCATION} | & | +| closure.rs:240:11:240:11 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:240:13:240:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:13:240:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:14:240:14 | x | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | @@ -6894,7 +6897,7 @@ inferType | closure.rs:218:14:218:22 | \|...\| false | dyn(Output) | {EXTERNAL LOCATION} | bool | | closure.rs:218:15:218:15 | _ | | closure.rs:214:10:214:10 | T | | closure.rs:218:18:218:22 | false | | {EXTERNAL LOCATION} | bool | -| closure.rs:222:19:240:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:222:19:241:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:223:13:223:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:223:17:223:20 | 0i64 | | {EXTERNAL LOCATION} | i64 | | closure.rs:224:13:224:13 | v | | {EXTERNAL LOCATION} | i64 | @@ -6920,50 +6923,57 @@ inferType | closure.rs:230:17:230:20 | S(...) | | closure.rs:212:5:212:19 | S | | closure.rs:230:17:230:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | | closure.rs:230:19:230:19 | v | | {EXTERNAL LOCATION} | i32 | -| closure.rs:231:13:231:17 | s_ref | | {EXTERNAL LOCATION} | & | -| closure.rs:231:13:231:17 | s_ref | TRef | closure.rs:212:5:212:19 | S | -| closure.rs:231:13:231:17 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | -| closure.rs:231:21:231:22 | &s | | {EXTERNAL LOCATION} | & | -| closure.rs:231:21:231:22 | &s | TRef | closure.rs:212:5:212:19 | S | -| closure.rs:231:21:231:22 | &s | TRef.T | {EXTERNAL LOCATION} | i32 | -| closure.rs:231:22:231:22 | s | | closure.rs:212:5:212:19 | S | -| closure.rs:231:22:231:22 | s | T | {EXTERNAL LOCATION} | i32 | -| closure.rs:232:13:232:16 | _ret | | {EXTERNAL LOCATION} | bool | -| closure.rs:232:20:232:24 | s_ref | | {EXTERNAL LOCATION} | & | -| closure.rs:232:20:232:24 | s_ref | TRef | closure.rs:212:5:212:19 | S | -| closure.rs:232:20:232:24 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | -| closure.rs:232:20:232:27 | s_ref(...) | | {EXTERNAL LOCATION} | bool | -| closure.rs:232:25:232:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:232:25:232:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:232:26:232:26 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:238:13:238:13 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:238:13:238:13 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:238:13:238:13 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:238:13:238:13 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:238:17:238:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:238:17:238:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:238:17:238:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:238:17:238:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:238:18:238:18 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:238:21:238:21 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:9:239:12 | (...) | | {EXTERNAL LOCATION} | & | -| closure.rs:239:9:239:12 | (...) | TRef | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:9:239:12 | (...) | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:239:9:239:12 | (...) | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:9:239:12 | (...) | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:9:239:15 | ...(...) | | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:10:239:11 | &c | | {EXTERNAL LOCATION} | & | -| closure.rs:239:10:239:11 | &c | TRef | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:10:239:11 | &c | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:239:10:239:11 | &c | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:10:239:11 | &c | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:11:239:11 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:11:239:11 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:239:11:239:11 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:11:239:11 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:13:239:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:239:13:239:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:14:239:14 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:13:231:16 | _ret | | {EXTERNAL LOCATION} | bool | +| closure.rs:231:20:231:20 | s | | closure.rs:212:5:212:19 | S | +| closure.rs:231:20:231:20 | s | T | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:20:231:23 | s(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:231:21:231:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:231:21:231:23 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:22:231:22 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:13:232:17 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:232:13:232:17 | s_ref | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:232:13:232:17 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:21:232:22 | &s | | {EXTERNAL LOCATION} | & | +| closure.rs:232:21:232:22 | &s | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:232:21:232:22 | &s | TRef.T | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:22:232:22 | s | | closure.rs:212:5:212:19 | S | +| closure.rs:232:22:232:22 | s | T | {EXTERNAL LOCATION} | i32 | +| closure.rs:233:13:233:16 | _ret | | {EXTERNAL LOCATION} | bool | +| closure.rs:233:20:233:24 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:233:20:233:24 | s_ref | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:233:20:233:24 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | +| closure.rs:233:20:233:27 | s_ref(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:233:25:233:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:233:25:233:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:233:26:233:26 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:239:13:239:13 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:239:13:239:13 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:239:13:239:13 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:239:13:239:13 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:239:17:239:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:239:17:239:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:239:17:239:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:239:17:239:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:239:18:239:18 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:239:21:239:21 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:9:240:12 | (...) | | {EXTERNAL LOCATION} | & | +| closure.rs:240:9:240:12 | (...) | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:240:9:240:12 | (...) | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:9:240:12 | (...) | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:9:240:12 | (...) | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:9:240:15 | ...(...) | | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:10:240:11 | &c | | {EXTERNAL LOCATION} | & | +| closure.rs:240:10:240:11 | &c | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:240:10:240:11 | &c | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:10:240:11 | &c | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:10:240:11 | &c | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:11:240:11 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:240:11:240:11 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:11:240:11 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:11:240:11 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:13:240:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:13:240:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:14:240:14 | x | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | From be329c8ab4aba6956d8eeddb887401c71e191037 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 9 Apr 2026 13:23:46 +0200 Subject: [PATCH 045/208] Rust: Replace recursion through `forall` with ranked recursion --- .../internal/typeinference/TypeInference.qll | 494 ++++++++---------- .../dataflow/local/DataFlowStep.expected | 5 - .../library-tests/type-inference/closure.rs | 9 +- .../type-inference/type-inference.expected | 98 ++-- 4 files changed, 272 insertions(+), 334 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index c6a268be126..cc6e13d5921 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -1718,7 +1718,7 @@ private module AssocFunctionResolution { * inside `root`. */ pragma[nomagic] - private predicate hasIncompatibleTarget( + predicate hasIncompatibleTarget( ImplOrTraitItemNode i, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, Type root ) { @@ -1743,7 +1743,7 @@ private module AssocFunctionResolution { * is not satisfied. */ pragma[nomagic] - private predicate hasIncompatibleBlanketLikeTarget( + predicate hasIncompatibleBlanketLikeTarget( ImplItemNode impl, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow ) { SelfArgIsNotInstantiationOfBlanketLike::argIsNotInstantiationOf(MkAssocFunctionCallCand(this, @@ -1795,7 +1795,7 @@ private module AssocFunctionResolution { } pragma[nomagic] - private Type getComplexStrippedSelfType( + Type getComplexStrippedSelfType( FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath ) { result = this.getANonPseudoSelfTypeAt(selfPos, derefChain, borrow, strippedTypePath) and @@ -1806,258 +1806,25 @@ private module AssocFunctionResolution { ) } - bindingset[derefChain, borrow, strippedTypePath, strippedType] - private predicate hasNoCompatibleNonBlanketLikeTargetCheck( - FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath, - Type strippedType + /** + * Holds if the candidate receiver type represented by `derefChain` and `borrow` + * does not have a matching call target at function-call adjusted position `selfPos`. + */ + predicate hasNoCompatibleTarget( + FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow ) { - forall(ImplOrTraitItemNode i | - nonBlanketLikeCandidate(this, _, selfPos, i, _, strippedTypePath, strippedType) - | - this.hasIncompatibleTarget(i, selfPos, derefChain, borrow, strippedType) - ) - } - - bindingset[derefChain, borrow, strippedTypePath, strippedType] - private predicate hasNoCompatibleTargetCheck( - FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath, - Type strippedType - ) { - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, borrow, strippedTypePath, - strippedType) and - forall(ImplItemNode i | blanketLikeCandidate(this, _, selfPos, i, _, _, _) | - this.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) - ) - } - - bindingset[derefChain, borrow, strippedTypePath, strippedType] - private predicate hasNoCompatibleNonBlanketTargetCheck( - FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath, - Type strippedType - ) { - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, borrow, strippedTypePath, - strippedType) and - forall(ImplItemNode i | - blanketLikeCandidate(this, _, selfPos, i, _, _, _) and - not i.isBlanketImplementation() - | - this.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleTargetNoBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.supportsAutoDerefAndBorrow() and - this.hasReceiverAtPos(selfPos) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TNoBorrowKind(), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleTargetNoBorrowToIndex(selfPos, derefChain, strippedTypePath, strippedType, - n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleTargetCheck(selfPos, derefChain, TNoBorrowKind(), strippedTypePath, t) - ) + NoCompatibleTarget::hasNoCompatibleTarget(this, selfPos, derefChain, borrow) } /** - * Holds if the candidate receiver type represented by `derefChain` does not - * have a matching call target at function-call adjusted position `selfPos`. + * Holds if the candidate receiver type represented by `derefChain` and `borrow` + * does not have a matching non-blanket call target at function-call adjusted + * position `selfPos`. */ - pragma[nomagic] - predicate hasNoCompatibleTargetNoBorrow(FunctionPosition selfPos, DerefChain derefChain) { - exists(Type strippedType | - this.hasNoCompatibleTargetNoBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleNonBlanketTargetNoBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n + predicate hasNoCompatibleNonBlanketTarget( + FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow ) { - ( - this.supportsAutoDerefAndBorrow() and - this.hasReceiverAtPos(selfPos) - or - // needed for the `hasNoCompatibleNonBlanketTarget` check in - // `ArgSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` - exists(ImplItemNode i | - derefChain.isEmpty() and - blanketLikeCandidate(this, _, selfPos, i, _, _, _) and - i.isBlanketImplementation() - ) - ) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TNoBorrowKind(), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketTargetCheck(selfPos, derefChain, TNoBorrowKind(), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain` does not have - * a matching non-blanket call target at function-call adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetNoBorrow( - FunctionPosition selfPos, DerefChain derefChain - ) { - exists(Type strippedType | - this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleTargetSharedBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleTargetNoBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(false), - strippedTypePath) and - n = -1 - or - this.hasNoCompatibleTargetSharedBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, TSomeBorrowKind(false), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain`, followed - * by a shared borrow, does not have a matching call target at function-call - * adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleTargetSharedBorrow(FunctionPosition selfPos, DerefChain derefChain) { - exists(Type strippedType | - this.hasNoCompatibleTargetSharedBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleTargetMutBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleTargetSharedBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(true), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleTargetMutBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, TSomeBorrowKind(true), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain`, followed - * by a `mut` borrow, does not have a matching call target at function-call - * adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleTargetMutBorrow(FunctionPosition selfPos, DerefChain derefChain) { - exists(Type strippedType | - this.hasNoCompatibleTargetMutBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleNonBlanketTargetSharedBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleTargetNoBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(false), - strippedTypePath) and - n = -1 - or - this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketTargetCheck(selfPos, 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 call target at - * function-call adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetSharedBorrow( - FunctionPosition selfPos, DerefChain derefChain - ) { - exists(Type strippedType | - this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(selfPos, derefChain, _, - strippedType, getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleNonBlanketTargetMutBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleNonBlanketTargetSharedBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(true), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketTargetCheck(selfPos, 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 call target at - * function-call adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetMutBorrow( - FunctionPosition selfPos, DerefChain derefChain - ) { - exists(Type strippedType | - this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) + NoCompatibleTarget::hasNoCompatibleNonBlanketTarget(this, selfPos, derefChain, borrow) } /** @@ -2082,6 +1849,25 @@ private module AssocFunctionResolution { ) } + /** + * Holds if this call may have an implicit borrow of kind `borrow` at + * function-call adjusted position `selfPos` with the given `derefChain`. + */ + pragma[nomagic] + predicate hasImplicitBorrowCand( + FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + exists(BorrowKind prev | this.hasNoCompatibleTarget(selfPos, derefChain, prev) | + // first try shared borrow + prev.isNoBorrow() and + borrow.isSharedBorrow() + or + // then try mutable borrow + prev.isSharedBorrow() and + borrow.isMutableBorrow() + ) + } + /** * Gets the type of this call at function-call adjusted position `selfPos` and * type path `path`. @@ -2107,23 +1893,15 @@ private module AssocFunctionResolution { borrow.isNoBorrow() or exists(RefType rt | - // first try shared borrow - this.hasNoCompatibleTargetNoBorrow(selfPos, derefChain) and - borrow.isSharedBorrow() - or - // then try mutable borrow - this.hasNoCompatibleTargetSharedBorrow(selfPos, derefChain) and - borrow.isMutableBorrow() + this.hasImplicitBorrowCand(selfPos, derefChain, borrow) and + rt = borrow.getRefType() | - rt = borrow.getRefType() and - ( - path.isEmpty() and - result = rt - or - exists(TypePath suffix | - result = this.getSelfTypeAtNoBorrow(selfPos, derefChain, suffix) and - path = TypePath::cons(rt.getPositionalTypeParameter(0), suffix) - ) + path.isEmpty() and + result = rt + or + exists(TypePath suffix | + result = this.getSelfTypeAtNoBorrow(selfPos, derefChain, suffix) and + path = TypePath::cons(rt.getPositionalTypeParameter(0), suffix) ) ) } @@ -2322,6 +2100,177 @@ private module AssocFunctionResolution { override Trait getTrait() { result instanceof AnyFnTrait } } + /** + * Provides logic for efficiently checking that there are no compatible call + * targets for a given candidate receiver type. + * + * For calls with non-blanket target candidates, we need to check: + * + * ```text + * forall types `t` where `t` is a lookup type for the given candidate receiver type: + * forall non-blanket candidates `c` matching `t`: + * check that `c` is not a compatible target + * ``` + * + * Instead of implementing the above using `forall`, we apply the standard trick + * of using ranked recursion. + */ + private module NoCompatibleTarget { + private import codeql.rust.elements.internal.generated.Raw + private import codeql.rust.elements.internal.generated.Synth + + private class RawImplOrTrait = @impl or @trait; + + private predicate id(RawImplOrTrait x, RawImplOrTrait y) { x = y } + + private predicate idOfRaw(RawImplOrTrait x, int y) = equivalenceRelation(id/2)(x, y) + + private int idOfImplOrTraitItemNode(ImplOrTraitItemNode i) { + idOfRaw(Synth::convertAstNodeToRaw(i), result) + } + + /** + * Holds if `t` is the `n`th lookup type for the candidate receiver type + * represented by `derefChain` and `borrow` at function-call adjusted position + * `selfPos` of `afc`. + * + * There are no compatible non-blanket-like candidates for lookup types `0` to `n - 1`. + */ + pragma[nomagic] + private predicate noCompatibleNonBlanketLikeTargetCandNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n, Type t + ) { + ( + ( + ( + afc.supportsAutoDerefAndBorrow() and + afc.hasReceiverAtPos(selfPos) + or + // needed for the `hasNoCompatibleNonBlanketTarget` check in + // `ArgSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` + exists(ImplItemNode i | + derefChain.isEmpty() and + blanketLikeCandidate(afc, _, selfPos, i, _, _, _) and + i.isBlanketImplementation() + ) + ) and + borrow.isNoBorrow() + or + afc.hasImplicitBorrowCand(selfPos, derefChain, borrow) + ) and + strippedType = afc.getComplexStrippedSelfType(selfPos, derefChain, borrow, strippedTypePath) and + n = 0 + or + hasNoCompatibleNonBlanketLikeTargetForNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n - 1) + ) and + t = getNthLookupType(afc, strippedType, n) + } + + pragma[nomagic] + private ImplOrTraitItemNode getKthNonBlanketLikeCandidateForNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n, Type t, int k + ) { + noCompatibleNonBlanketLikeTargetCandNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t) and + result = + rank[k + 1](ImplOrTraitItemNode i, int id | + nonBlanketLikeCandidate(afc, _, selfPos, i, _, strippedTypePath, t) and + id = idOfImplOrTraitItemNode(i) + | + i order by id + ) + } + + pragma[nomagic] + private int getLastNonBlanketLikeCandidateForNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n + ) { + exists(Type t | + noCompatibleNonBlanketLikeTargetCandNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t) and + result = + count(ImplOrTraitItemNode i | + nonBlanketLikeCandidate(afc, _, selfPos, i, _, strippedTypePath, t) + ) - 1 + ) + } + + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketLikeTargetForNthLookupTypeToIndex( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n, int k + ) { + exists(Type t | + noCompatibleNonBlanketLikeTargetCandNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t) + | + k = -1 + or + hasNoCompatibleNonBlanketLikeTargetForNthLookupTypeToIndex(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, k - 1) and + exists(ImplOrTraitItemNode i | + i = + getKthNonBlanketLikeCandidateForNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t, k) and + afc.hasIncompatibleTarget(i, selfPos, derefChain, borrow, t) + ) + ) + } + + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketLikeTargetForNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n + ) { + exists(int last | + last = + getLastNonBlanketLikeCandidateForNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n) and + hasNoCompatibleNonBlanketLikeTargetForNthLookupTypeToIndex(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, last) + ) + } + + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketLikeTarget( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + exists(Type strippedType | + hasNoCompatibleNonBlanketLikeTargetForNthLookupType(afc, selfPos, derefChain, borrow, _, + strippedType, getLastLookupTypeIndex(afc, strippedType)) + ) + } + + pragma[nomagic] + predicate hasNoCompatibleTarget( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + hasNoCompatibleNonBlanketLikeTarget(afc, selfPos, derefChain, borrow) and + // todo: replace with ranked recursion if needed + forall(ImplItemNode i | blanketLikeCandidate(afc, _, selfPos, i, _, _, _) | + afc.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) + ) + } + + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTarget( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + hasNoCompatibleNonBlanketLikeTarget(afc, selfPos, derefChain, borrow) and + // todo: replace with ranked recursion if needed + forall(ImplItemNode i | + blanketLikeCandidate(afc, _, selfPos, i, _, _, _) and + not i.isBlanketImplementation() + | + afc.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) + ) + } + } + pragma[nomagic] private AssocFunctionDeclaration getAssocFunctionSuccessor( ImplOrTraitItemNode i, string name, int arity @@ -2358,14 +2307,7 @@ private module AssocFunctionResolution { pragma[nomagic] predicate hasNoCompatibleNonBlanketTarget() { - afc_.hasNoCompatibleNonBlanketTargetSharedBorrow(selfPos_, derefChain) and - borrow.isSharedBorrow() - or - afc_.hasNoCompatibleNonBlanketTargetMutBorrow(selfPos_, derefChain) and - borrow.isMutableBorrow() - or - afc_.hasNoCompatibleNonBlanketTargetNoBorrow(selfPos_, derefChain) and - borrow.isNoBorrow() + afc_.hasNoCompatibleNonBlanketTarget(selfPos_, derefChain, borrow) } pragma[nomagic] @@ -2474,7 +2416,7 @@ private module AssocFunctionResolution { MkCallDerefCand(AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain) { afc.supportsAutoDerefAndBorrow() and afc.hasReceiverAtPos(selfPos) and - afc.hasNoCompatibleTargetMutBorrow(selfPos, derefChain) and + afc.hasNoCompatibleTarget(selfPos, derefChain, TSomeBorrowKind(true)) and exists(afc.getSelfTypeAtNoBorrow(selfPos, derefChain, TypePath::nil())) } @@ -2547,10 +2489,6 @@ private module AssocFunctionResolution { // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html), as well as // cases where our blanket implementation filtering is not precise enough. if impl.isBlanketImplementation() then afcc.hasNoCompatibleNonBlanketTarget() else any() - | - borrow.isNoBorrow() - or - blanketPath.getHead() = borrow.getRefType().getPositionalTypeParameter(0) ) } } diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index b0c11770a8e..e220a769ece 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -927,9 +927,6 @@ readStep | main.rs:480:25:480:29 | names | file://:0:0:0:0 | element | main.rs:480:9:480:20 | TuplePat | | main.rs:482:41:482:67 | [post] \|...\| ... | main.rs:479:9:479:20 | captured default_name | main.rs:482:41:482:67 | [post] default_name | | main.rs:482:44:482:55 | [post] default_name [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | [post] default_name | -| main.rs:482:44:482:55 | [post] default_name [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | [post] default_name [implicit deref 0 in state after deref] | -| main.rs:482:44:482:55 | [post] default_name [implicit deref 0 in state after borrow] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | [post] default_name | -| main.rs:482:44:482:55 | default_name [implicit deref 0 in state before deref] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit deref 0 in state after deref] | | main.rs:482:44:482:55 | this | main.rs:479:9:479:20 | captured default_name | main.rs:482:44:482:55 | default_name | | main.rs:483:18:483:18 | [post] n [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:483:18:483:18 | [post] n | | main.rs:506:13:506:13 | [post] a [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:506:13:506:13 | [post] a | @@ -1056,8 +1053,6 @@ storeStep | main.rs:479:24:479:33 | source(...) | file://:0:0:0:0 | &ref | main.rs:479:24:479:33 | source(...) [implicit borrow] | | main.rs:482:41:482:67 | default_name | main.rs:479:9:479:20 | captured default_name | main.rs:482:41:482:67 | \|...\| ... | | main.rs:482:44:482:55 | default_name | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit borrow] | -| main.rs:482:44:482:55 | default_name | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit deref 0 in state after borrow] | -| main.rs:482:44:482:55 | default_name [implicit deref 0 in state after deref] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit borrow] | | main.rs:483:18:483:18 | n | file://:0:0:0:0 | &ref | main.rs:483:18:483:18 | n [implicit borrow] | | main.rs:506:13:506:13 | a | file://:0:0:0:0 | &ref | main.rs:506:13:506:13 | a [implicit borrow] | | main.rs:507:13:507:13 | b | file://:0:0:0:0 | &ref | main.rs:507:13:507:13 | b [implicit deref 0 in state after borrow] | diff --git a/rust/ql/test/library-tests/type-inference/closure.rs b/rust/ql/test/library-tests/type-inference/closure.rs index a63a708e245..635b169bf96 100644 --- a/rust/ql/test/library-tests/type-inference/closure.rs +++ b/rust/ql/test/library-tests/type-inference/closure.rs @@ -230,7 +230,14 @@ mod implicit_deref { let s = S(v); let _ret = s(x); // $ type=_ret:bool let s_ref = &s; - let _ret = s_ref(x); // $ type=_ret:bool + // The call below incorrectly resolves to + // `impl FnOnce for &F` from + // https://doc.rust-lang.org/std/ops/trait.FnOnce.html#impl-FnOnce%3CA%3E-for-%26F + // because `s_ref` gets an implicit borrow `&&S`, and then we incorrectly + // conclude that `&S` satisfies the blanket constraint `Fn` because of the + // `impl FnOnce for &F` implementation (we do not currently identify that + // `&S` does not satisfy `Fn`) + let _ret = s_ref(x); // $ MISSING: type=_ret:bool // The call below is not an implicit deref, instead it will target // `impl FnOnce for &F` from 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 ceae6f4dd09..5e870ae6ca5 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -873,7 +873,7 @@ inferCertainType | closure.rs:218:13:218:22 | &... | | {EXTERNAL LOCATION} | & | | closure.rs:218:14:218:22 | \|...\| false | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:218:18:218:22 | false | | {EXTERNAL LOCATION} | bool | -| closure.rs:222:19:241:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:222:19:248:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:223:13:223:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:223:17:223:20 | 0i64 | | {EXTERNAL LOCATION} | i64 | | closure.rs:226:21:226:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | @@ -886,18 +886,18 @@ inferCertainType | closure.rs:231:22:231:22 | x | | {EXTERNAL LOCATION} | i32 | | closure.rs:232:13:232:17 | s_ref | | {EXTERNAL LOCATION} | & | | closure.rs:232:21:232:22 | &s | | {EXTERNAL LOCATION} | & | -| closure.rs:233:20:233:24 | s_ref | | {EXTERNAL LOCATION} | & | -| closure.rs:233:25:233:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:233:25:233:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:233:26:233:26 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:13:239:13 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:17:239:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:240:9:240:12 | (...) | | {EXTERNAL LOCATION} | & | -| closure.rs:240:10:240:11 | &c | | {EXTERNAL LOCATION} | & | -| closure.rs:240:11:240:11 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:240:13:240:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:240:13:240:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:14:240:14 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:20:240:24 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:240:25:240:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:25:240:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:26:240:26 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:13:246:13 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:246:17:246:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:9:247:12 | (...) | | {EXTERNAL LOCATION} | & | +| closure.rs:247:10:247:11 | &c | | {EXTERNAL LOCATION} | & | +| closure.rs:247:11:247:11 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:13:247:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:13:247:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:14:247:14 | x | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | @@ -6897,7 +6897,7 @@ inferType | closure.rs:218:14:218:22 | \|...\| false | dyn(Output) | {EXTERNAL LOCATION} | bool | | closure.rs:218:15:218:15 | _ | | closure.rs:214:10:214:10 | T | | closure.rs:218:18:218:22 | false | | {EXTERNAL LOCATION} | bool | -| closure.rs:222:19:241:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:222:19:248:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:223:13:223:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:223:17:223:20 | 0i64 | | {EXTERNAL LOCATION} | i64 | | closure.rs:224:13:224:13 | v | | {EXTERNAL LOCATION} | i64 | @@ -6938,42 +6938,40 @@ inferType | closure.rs:232:21:232:22 | &s | TRef.T | {EXTERNAL LOCATION} | i32 | | closure.rs:232:22:232:22 | s | | closure.rs:212:5:212:19 | S | | closure.rs:232:22:232:22 | s | T | {EXTERNAL LOCATION} | i32 | -| closure.rs:233:13:233:16 | _ret | | {EXTERNAL LOCATION} | bool | -| closure.rs:233:20:233:24 | s_ref | | {EXTERNAL LOCATION} | & | -| closure.rs:233:20:233:24 | s_ref | TRef | closure.rs:212:5:212:19 | S | -| closure.rs:233:20:233:24 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | -| closure.rs:233:20:233:27 | s_ref(...) | | {EXTERNAL LOCATION} | bool | -| closure.rs:233:25:233:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:233:25:233:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:233:26:233:26 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:13:239:13 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:13:239:13 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:239:13:239:13 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:13:239:13 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:17:239:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:239:17:239:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:239:17:239:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:17:239:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:18:239:18 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:239:21:239:21 | x | | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:9:240:12 | (...) | | {EXTERNAL LOCATION} | & | -| closure.rs:240:9:240:12 | (...) | TRef | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:240:9:240:12 | (...) | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:240:9:240:12 | (...) | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:9:240:12 | (...) | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:9:240:15 | ...(...) | | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:10:240:11 | &c | | {EXTERNAL LOCATION} | & | -| closure.rs:240:10:240:11 | &c | TRef | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:240:10:240:11 | &c | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:240:10:240:11 | &c | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:10:240:11 | &c | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:11:240:11 | c | | {EXTERNAL LOCATION} | dyn Fn | -| closure.rs:240:11:240:11 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:240:11:240:11 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:11:240:11 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:13:240:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:240:13:240:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | -| closure.rs:240:14:240:14 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:20:240:24 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:240:20:240:24 | s_ref | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:240:20:240:24 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:25:240:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:25:240:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:26:240:26 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:13:246:13 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:246:13:246:13 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:246:13:246:13 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:13:246:13 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:17:246:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:246:17:246:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:246:17:246:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:17:246:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:18:246:18 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:21:246:21 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:9:247:12 | (...) | | {EXTERNAL LOCATION} | & | +| closure.rs:247:9:247:12 | (...) | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:9:247:12 | (...) | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:9:247:12 | (...) | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:9:247:12 | (...) | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:9:247:15 | ...(...) | | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:10:247:11 | &c | | {EXTERNAL LOCATION} | & | +| closure.rs:247:10:247:11 | &c | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:10:247:11 | &c | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:10:247:11 | &c | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:10:247:11 | &c | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:11:247:11 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:11:247:11 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:11:247:11 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:11:247:11 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:13:247:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:13:247:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:14:247:14 | x | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | From 27f7f747a414635cfc0413898549cd98a7433938 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 10 Apr 2026 13:20:36 +0200 Subject: [PATCH 046/208] Rust: Check whole blanket constraints, not just the root trait type --- .../codeql/rust/internal/PathResolution.qll | 15 ++++++----- .../typeinference/BlanketImplementation.qll | 27 ++++++++++--------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index c38e9bff91c..10d18786880 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -1202,18 +1202,21 @@ final class TypeParamItemNode extends NamedItemNode, TypeItemNode instanceof Typ } pragma[nomagic] - Path getABoundPath() { result = this.getTypeBoundAt(_, _).getTypeRepr().(PathTypeRepr).getPath() } - - pragma[nomagic] - ItemNode resolveBound(int index) { + Path getBoundPath(int index) { result = rank[index + 1](int i, int j | | - resolvePath(this.getTypeBoundAt(i, j).getTypeRepr().(PathTypeRepr).getPath()) order by i, j + this.getTypeBoundAt(i, j).getTypeRepr().(PathTypeRepr).getPath() order by i, j ) } - ItemNode resolveABound() { result = resolvePath(this.getABoundPath()) } + pragma[nomagic] + Path getABoundPath() { result = this.getBoundPath(_) } + + pragma[nomagic] + ItemNode resolveBound(int index) { result = resolvePath(this.getBoundPath(index)) } + + ItemNode resolveABound() { result = this.resolveBound(_) } pragma[nomagic] ItemNode resolveAdditionalBound(ItemNode constrainingItem) { diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll index 26e8bdea4e0..86bcdbe4fe8 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll @@ -15,10 +15,11 @@ private import TypeInference * Holds if `traitBound` is the first non-trivial trait bound of `tp`. */ pragma[nomagic] -private predicate hasFirstNonTrivialTraitBound(TypeParamItemNode tp, Trait traitBound) { +private predicate hasFirstNonTrivialTraitBound(TypeParamItemNode tp, Path traitBound) { traitBound = - min(Trait trait, int i | - trait = tp.resolveBound(i) and + min(Trait trait, Path path, int i | + path = tp.getBoundPath(i) and + trait = resolvePath(path) and // Exclude traits that are known to not narrow things down very much. not trait.getName().getText() = [ @@ -27,7 +28,7 @@ private predicate hasFirstNonTrivialTraitBound(TypeParamItemNode tp, Trait trait "Send", "Sync", "Unpin", "UnwindSafe", "RefUnwindSafe" ] | - trait order by i + path order by i ) } @@ -103,11 +104,11 @@ module SatisfiesBlanketConstraint< } private module SatisfiesBlanketConstraintInput implements - SatisfiesTypeInputSig + SatisfiesConstraintInputSig { pragma[nomagic] additional predicate relevantConstraint( - ArgumentTypeAndBlanketOffset ato, ImplItemNode impl, Trait traitBound + ArgumentTypeAndBlanketOffset ato, ImplItemNode impl, Path traitBound ) { exists(ArgumentType at, TypePath blanketPath, TypeParam blanketTypeParam | ato = MkArgumentTypeAndBlanketOffset(at, blanketPath) and @@ -117,13 +118,13 @@ module SatisfiesBlanketConstraint< } pragma[nomagic] - predicate relevantConstraint(ArgumentTypeAndBlanketOffset ato, Type constraint) { - relevantConstraint(ato, _, constraint.(TraitType).getTrait()) + predicate relevantConstraint(ArgumentTypeAndBlanketOffset ato, TypeMention constraint) { + relevantConstraint(ato, _, constraint) } } private module SatisfiesBlanketConstraint = - SatisfiesType; + SatisfiesConstraint; /** * Holds if the argument type `at` satisfies the first non-trivial blanket @@ -131,10 +132,10 @@ module SatisfiesBlanketConstraint< */ pragma[nomagic] predicate satisfiesBlanketConstraint(ArgumentType at, ImplItemNode impl) { - exists(ArgumentTypeAndBlanketOffset ato, Trait traitBound | + exists(ArgumentTypeAndBlanketOffset ato, Path traitBound | ato = MkArgumentTypeAndBlanketOffset(at, _) and SatisfiesBlanketConstraintInput::relevantConstraint(ato, impl, traitBound) and - SatisfiesBlanketConstraint::satisfiesConstraint(ato, TTrait(traitBound), _, _) + SatisfiesBlanketConstraint::satisfiesConstraint(ato, traitBound, _, _) ) or exists(TypeParam blanketTypeParam | @@ -149,10 +150,10 @@ module SatisfiesBlanketConstraint< */ pragma[nomagic] predicate dissatisfiesBlanketConstraint(ArgumentType at, ImplItemNode impl) { - exists(ArgumentTypeAndBlanketOffset ato, Trait traitBound | + exists(ArgumentTypeAndBlanketOffset ato, Path traitBound | ato = MkArgumentTypeAndBlanketOffset(at, _) and SatisfiesBlanketConstraintInput::relevantConstraint(ato, impl, traitBound) and - SatisfiesBlanketConstraint::dissatisfiesConstraint(ato, TTrait(traitBound)) + SatisfiesBlanketConstraint::dissatisfiesConstraint(ato, traitBound) ) } } From 93a594e9c0974f0298a9206277610c23d63d4ab7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 5 Mar 2026 13:13:58 +0100 Subject: [PATCH 047/208] Cfg: Support Throw expressions. --- java/ql/lib/semmle/code/java/ControlFlowGraph.qll | 2 +- .../codeql/controlflow/ControlFlowGraph.qll | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 4ec8ff8450a..cc9601ea832 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -93,7 +93,7 @@ private module Ast implements AstSig { class ReturnStmt = J::ReturnStmt; - class ThrowStmt = J::ThrowStmt; + class Throw = J::ThrowStmt; final private class FinalTryStmt = J::TryStmt; diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index ac7c5b59cfe..fc02f2469d1 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -155,11 +155,11 @@ signature module AstSig { } /** - * A `throw` statement. + * A `throw` statement or expression. * - * Throw statements complete abruptly and throw an exception. + * Throw statements/expressions complete abruptly and throw an exception. */ - class ThrowStmt extends Stmt { + class Throw extends AstNode { /** Gets the expression being thrown. */ Expr getExpr(); } @@ -426,7 +426,7 @@ module Make0 Ast> { or n instanceof ReturnStmt or - n instanceof ThrowStmt + n instanceof Throw or n instanceof BreakStmt or @@ -563,7 +563,7 @@ module Make0 Ast> { or n instanceof ReturnStmt or - n instanceof ThrowStmt + n instanceof Throw or cannotTerminateNormally(n.(BlockStmt).getLastStmt()) or @@ -992,7 +992,7 @@ module Make0 Ast> { ast instanceof ReturnStmt and c.getSuccessorType() instanceof ReturnSuccessor or - ast instanceof ThrowStmt and + ast instanceof Throw and c.getSuccessorType() instanceof ExceptionSuccessor or ast instanceof BreakStmt and From a53cffc1217cacf57c369e22eabf793ab2f8402e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 5 Mar 2026 13:21:46 +0100 Subject: [PATCH 048/208] Cfg: Support GotoStmt. --- .../lib/semmle/code/java/ControlFlowGraph.qll | 4 +++ .../codeql/controlflow/ControlFlowGraph.qll | 29 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index cc9601ea832..92d10f3d274 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -91,6 +91,10 @@ private module Ast implements AstSig { class ContinueStmt = J::ContinueStmt; + class GotoStmt extends Stmt { + GotoStmt() { none() } + } + class ReturnStmt = J::ReturnStmt; class Throw = J::ThrowStmt; diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index fc02f2469d1..77192721cf1 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -143,6 +143,13 @@ signature module AstSig { */ class ContinueStmt extends Stmt; + /** + * A `goto` statement. + * + * Goto statements complete abruptly and jump to a labeled statement. + */ + class GotoStmt extends Stmt; + /** * A `return` statement. * @@ -432,6 +439,8 @@ module Make0 Ast> { or n instanceof ContinueStmt or + n instanceof GotoStmt + or n instanceof Expr and exists(getChild(n, _)) and not Input1::preOrderExpr(n) and @@ -561,6 +570,8 @@ module Make0 Ast> { or n instanceof ContinueStmt or + n instanceof GotoStmt + or n instanceof ReturnStmt or n instanceof Throw @@ -1000,6 +1011,9 @@ module Make0 Ast> { or ast instanceof ContinueStmt and c.getSuccessorType() instanceof ContinueSuccessor + or + ast instanceof GotoStmt and + c.getSuccessorType() instanceof GotoSuccessor ) and ( not Input1::hasLabel(ast, _) and not c.hasLabel(_) @@ -1020,6 +1034,11 @@ module Make0 Ast> { ) } + private Stmt getAStmtInBlock(AstNode block) { + result = block.(BlockStmt).getStmt(_) or + result = block.(Switch).getStmt(_) + } + /** * Holds if an abrupt completion `c` from within `ast` is caught with * flow continuing at `n`. @@ -1098,6 +1117,16 @@ module Make0 Ast> { Input1::hasLabel(switch, l) ) ) + or + exists(AstNode block, Input1::Label l, Stmt lblstmt | + ast = getAStmtInBlock(block) and + lblstmt = getAStmtInBlock(block) and + not lblstmt instanceof GotoStmt and + Input1::hasLabel(pragma[only_bind_into](lblstmt), l) and + n.isBefore(lblstmt) and + c.getSuccessorType() instanceof GotoSuccessor and + c.hasLabel(l) + ) } /** From 0b6c416fd44d4d595655e9d5995e6c197d07ddd8 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 3 Mar 2026 11:12:15 +0100 Subject: [PATCH 049/208] Cfg: Support short-circuiting compound assignments. --- .../lib/semmle/code/java/ControlFlowGraph.qll | 18 ++++++++ .../codeql/controlflow/ControlFlowGraph.qll | 45 ++++++++++++++++--- 2 files changed, 56 insertions(+), 7 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 92d10f3d274..20d622e91c8 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -185,6 +185,24 @@ private module Ast implements AstSig { class LogicalNotExpr = LogNotExpr; + class Assignment = J::Assignment; + + class AssignExpr = J::AssignExpr; + + class CompoundAssignment = J::AssignOp; + + class AssignLogicalAndExpr extends CompoundAssignment { + AssignLogicalAndExpr() { none() } + } + + class AssignLogicalOrExpr extends CompoundAssignment { + AssignLogicalOrExpr() { none() } + } + + class AssignNullCoalescingExpr extends CompoundAssignment { + AssignNullCoalescingExpr() { none() } + } + final private class FinalBooleanLiteral = J::BooleanLiteral; class BooleanLiteral extends FinalBooleanLiteral { diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 77192721cf1..8df466678cd 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -309,6 +309,33 @@ signature module AstSig { /** A logical NOT expression. */ class LogicalNotExpr extends UnaryExpr; + /** + * An assignment expression, either compound or simple. + * + * Examples: + * + * ``` + * x = y + * sum += element + * ``` + */ + class Assignment extends BinaryExpr; + + /** A simple assignment expression, for example `x = y`. */ + class AssignExpr extends Assignment; + + /** A compound assignment expression, for example `x += y` or `x ??= y`. */ + class CompoundAssignment extends Assignment; + + /** A short-circuiting logical AND compound assignment expression. */ + class AssignLogicalAndExpr extends CompoundAssignment; + + /** A short-circuiting logical OR compound assignment expression. */ + class AssignLogicalOrExpr extends CompoundAssignment; + + /** A short-circuiting null-coalescing compound assignment expression. */ + class AssignNullCoalescingExpr extends CompoundAssignment; + /** A boolean literal expression. */ class BooleanLiteral extends Expr { /** Gets the boolean value of this literal. */ @@ -458,11 +485,14 @@ module Make0 Ast> { * is the value that causes the short-circuit. */ private predicate shortCircuiting(BinaryExpr expr, ConditionalSuccessor shortcircuitValue) { - expr instanceof LogicalAndExpr and shortcircuitValue.(BooleanSuccessor).getValue() = false + (expr instanceof LogicalAndExpr or expr instanceof AssignLogicalAndExpr) and + shortcircuitValue.(BooleanSuccessor).getValue() = false or - expr instanceof LogicalOrExpr and shortcircuitValue.(BooleanSuccessor).getValue() = true + (expr instanceof LogicalOrExpr or expr instanceof AssignLogicalOrExpr) and + shortcircuitValue.(BooleanSuccessor).getValue() = true or - expr instanceof NullCoalescingExpr and shortcircuitValue.(NullnessSuccessor).getValue() = true + (expr instanceof NullCoalescingExpr or expr instanceof AssignNullCoalescingExpr) and + shortcircuitValue.(NullnessSuccessor).getValue() = false } /** @@ -472,9 +502,10 @@ module Make0 Ast> { private predicate propagatesValue(AstNode child, AstNode parent) { Input1::propagatesValue(child, parent) or - // For now, the `not postOrInOrder(parent)` is superfluous, as we don't - // have any short-circuiting post-order expressions yet, but this will - // change once we add support for e.g. C#'s `??=`. + // Short-circuiting post-order expressions, i.e. short-circuiting + // compound assignments, e.g. C#'s `??=`, cannot propagate the value of + // the right-hand side to the parent, as the assignment must take place + // in-between, so propagating the value would imply splitting. shortCircuiting(parent, _) and not postOrInOrder(parent) and parent.(BinaryExpr).getRightOperand() = child @@ -1243,7 +1274,7 @@ module Make0 Ast> { n1.isAfterValue(binexpr.getLeftOperand(), shortcircuitValue) and n2.isAfterValue(binexpr, shortcircuitValue) or - // short-circuiting operations with side-effects (e.g. `x &&= y`, `x?.Prop = y`) are in post-order: + // short-circuiting operations with side-effects (e.g. `x &&= y`) are in post-order: n1.isAfter(binexpr.getRightOperand()) and n2.isIn(binexpr) or From 035b83c0e4d46842169f69ab5586037afdc7db7f Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 9 Mar 2026 13:54:46 +0100 Subject: [PATCH 050/208] C#: Introduce ControlFlowElementOrCallable. --- csharp/ql/lib/semmle/code/csharp/Callable.qll | 2 +- .../semmle/code/csharp/controlflow/ControlFlowElement.qll | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/Callable.qll b/csharp/ql/lib/semmle/code/csharp/Callable.qll index 611b578b859..1b3b32bf988 100644 --- a/csharp/ql/lib/semmle/code/csharp/Callable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Callable.qll @@ -22,7 +22,7 @@ private import TypeRef * an anonymous function (`AnonymousFunctionExpr`), or a local function * (`LocalFunction`). */ -class Callable extends Parameterizable, ExprOrStmtParent, @callable { +class Callable extends Parameterizable, ControlFlowElementOrCallable, @callable { /** Gets the return type of this callable. */ Type getReturnType() { none() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index 0d0ed681969..73a461d0609 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -8,6 +8,10 @@ private import ControlFlow::BasicBlocks private import semmle.code.csharp.Caching private import internal.ControlFlowGraphImpl as Impl +private class TControlFlowElementOrCallable = @callable or @control_flow_element; + +class ControlFlowElementOrCallable extends ExprOrStmtParent, TControlFlowElementOrCallable { } + /** * A program element that can possess control flow. That is, either a statement or * an expression. @@ -17,7 +21,7 @@ private import internal.ControlFlowGraphImpl as Impl * control flow elements and control flow nodes. This allows control flow * splitting, for example modeling the control flow through `finally` blocks. */ -class ControlFlowElement extends ExprOrStmtParent, @control_flow_element { +class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_element { /** Gets the enclosing callable of this element, if any. */ Callable getEnclosingCallable() { none() } From 6ffed8523cc7f2b401f6b14c8a050957cb93ddc2 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 11 Mar 2026 10:03:00 +0100 Subject: [PATCH 051/208] Cfg/Java: Move InstanceOfExpr CFG into shared lib. --- .../lib/semmle/code/java/ControlFlowGraph.qll | 42 ++++--------------- .../codeql/controlflow/ControlFlowGraph.qll | 39 +++++++++++++++++ 2 files changed, 47 insertions(+), 34 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 20d622e91c8..72353de39fc 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -208,6 +208,14 @@ private module Ast implements AstSig { class BooleanLiteral extends FinalBooleanLiteral { boolean getValue() { result = this.getBooleanValue() } } + + final private class FinalInstanceOfExpr = J::InstanceOfExpr; + + class PatternMatchExpr extends FinalInstanceOfExpr { + PatternMatchExpr() { this.isPattern() } + + AstNode getPattern() { result = super.getPattern() } + } } private module Exceptions { @@ -544,14 +552,8 @@ private module Input implements InputSig1, InputSig2 { private string assertThrowNodeTag() { result = "[assert-throw]" } - private string instanceofTrueNodeTag() { result = "[instanceof-true]" } - predicate additionalNode(Ast::AstNode n, string tag, NormalSuccessor t) { n instanceof AssertStmt and tag = assertThrowNodeTag() and t instanceof DirectSuccessor - or - n.(InstanceOfExpr).isPattern() and - tag = instanceofTrueNodeTag() and - t.(BooleanSuccessor).getValue() = true } /** @@ -593,34 +595,6 @@ private module Input implements InputSig1, InputSig2 { /** Holds if there is a local non-abrupt step from `n1` to `n2`. */ predicate step(PreControlFlowNode n1, PreControlFlowNode n2) { - exists(InstanceOfExpr ioe | - // common - n1.isBefore(ioe) and - n2.isBefore(ioe.getExpr()) - or - n1.isAfter(ioe.getExpr()) and - n2.isIn(ioe) - or - // std postorder: - not ioe.isPattern() and - n1.isIn(ioe) and - n2.isAfter(ioe) - or - // pattern case: - ioe.isPattern() and - n1.isIn(ioe) and - n2.isAfterValue(ioe, any(BooleanSuccessor s | s.getValue() = false)) - or - n1.isIn(ioe) and - n2.isAdditional(ioe, instanceofTrueNodeTag()) - or - n1.isAdditional(ioe, instanceofTrueNodeTag()) and - n2.isBefore(ioe.getPattern()) - or - n1.isAfter(ioe.getPattern()) and - n2.isAfterValue(ioe, any(BooleanSuccessor s | s.getValue() = true)) - ) - or exists(AssertStmt assertstmt | n1.isBefore(assertstmt) and n2.isBefore(assertstmt.getExpr()) diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 8df466678cd..7cd169fa5f7 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -341,6 +341,19 @@ signature module AstSig { /** Gets the boolean value of this literal. */ boolean getValue(); } + + /** + * A pattern matching expression. + * + * In Java this is `x instanceof Pattern`, and in C# this is `x is Pattern`. + */ + class PatternMatchExpr extends Expr { + /** Gets the expression being matched. */ + Expr getExpr(); + + /** Gets the pattern being matched against. */ + AstNode getPattern(); + } } /** @@ -575,6 +588,8 @@ module Make0 Ast> { private string loopHeaderTag() { result = "[LoopHeader]" } + private string patternMatchTrueTag() { result = "[match-true]" } + /** * Holds if an additional node tagged with `tag` should be created for * `n`. Edges targeting such nodes are labeled with `t` and therefore `t` @@ -586,6 +601,10 @@ module Make0 Ast> { n instanceof LoopStmt and tag = loopHeaderTag() and t instanceof DirectSuccessor + or + n instanceof PatternMatchExpr and + tag = patternMatchTrueTag() and + t.(BooleanSuccessor).getValue() = true } /** @@ -1309,6 +1328,26 @@ module Make0 Ast> { n2.isAfterValue(boollit, any(BooleanSuccessor t | t.getValue() = boollit.getValue())) ) or + exists(PatternMatchExpr pme | + n1.isBefore(pme) and + n2.isBefore(pme.getExpr()) + or + n1.isAfter(pme.getExpr()) and + n2.isIn(pme) + or + n1.isIn(pme) and + n2.isAfterValue(pme, any(BooleanSuccessor s | s.getValue() = false)) + or + n1.isIn(pme) and + n2.isAdditional(pme, patternMatchTrueTag()) + or + n1.isAdditional(pme, patternMatchTrueTag()) and + n2.isBefore(pme.getPattern()) + or + n1.isAfter(pme.getPattern()) and + n2.isAfterValue(pme, any(BooleanSuccessor s | s.getValue() = true)) + ) + or exists(IfStmt ifstmt | n1.isBefore(ifstmt) and n2.isBefore(ifstmt.getCondition()) From 88aaff863b58db9f255f78532b1732503213f56e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 12 Mar 2026 09:58:33 +0100 Subject: [PATCH 052/208] Cfg: Extend consistency checks. --- .../codeql/controlflow/ControlFlowGraph.qll | 57 ++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 7cd169fa5f7..a9f3c44fcc4 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -1856,6 +1856,53 @@ module Make0 Ast> { /** Provides a set of consistency queries. */ module Consistency { + /** Holds if the consistency query `query` has `results` results. */ + query predicate consistencyOverview(string query, int results) { + query = "deadEnd" and results = strictcount(ControlFlowNode node | deadEnd(node)) + or + query = "nonUniqueEnclosingCallable" and + results = + strictcount(AstNode n, int callables | nonUniqueEnclosingCallable(n, callables)) + or + query = "nonUniqueInConditionalContext" and + results = strictcount(AstNode n | nonUniqueInConditionalContext(n)) + or + query = "nonLocalStep" and + results = + strictcount(ControlFlowNode n1, SuccessorType t, ControlFlowNode n2 | + nonLocalStep(n1, t, n2) + ) + or + query = "ambiguousAdditionalNode" and + results = strictcount(AstNode n, string tag | ambiguousAdditionalNode(n, tag)) + or + query = "missingInNodeForPostOrInOrder" and + results = strictcount(AstNode ast | missingInNodeForPostOrInOrder(ast)) + or + query = "multipleSuccessors" and + results = + strictcount(ControlFlowNode node, SuccessorType t, ControlFlowNode successor | + multipleSuccessors(node, t, successor) + ) + or + query = "multipleConditionalSuccessorKinds" and + results = + strictcount(ControlFlowNode node, ConditionalSuccessor t1, ConditionalSuccessor t2, + ControlFlowNode succ1, ControlFlowNode succ2 | + multipleConditionalSuccessorKinds(node, t1, t2, succ1, succ2) + ) + or + query = "directAndConditionalSuccessor" and + results = + strictcount(ControlFlowNode node, ConditionalSuccessor t1, DirectSuccessor t2, + ControlFlowNode succ1, ControlFlowNode succ2 | + directAndConditionalSuccessors(node, t1, t2, succ1, succ2) + ) + or + query = "selfLoop" and + results = strictcount(ControlFlowNode node, SuccessorType t | selfLoop(node, t)) + } + /** * Holds if `node` is lacking a successor. * @@ -1866,6 +1913,11 @@ module Make0 Ast> { not exists(node.getASuccessor(_)) } + /** Holds if `n` does not have a unique enclosing callable. */ + query predicate nonUniqueEnclosingCallable(AstNode n, int callables) { + callables = strictcount(getEnclosingCallable(n)) and callables > 1 + } + /** * Holds if `n` is in a conditional context with multiple condition kinds. * @@ -1987,7 +2039,10 @@ module Make0 Ast> { ControlFlowNode succ1, ControlFlowNode succ2 ) { succ1 = node.getASuccessor(t1) and - succ2 = node.getASuccessor(t2) + succ2 = node.getASuccessor(t2) and + // allow for the pattern match true edge when a pattern match + // expression is not in a conditional context + not succ1.isAdditional(_, patternMatchTrueTag()) } /** From 61976e3ef0d4f2d61bd3e25918554765f0122e39 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 12 Mar 2026 11:12:16 +0100 Subject: [PATCH 053/208] C#: Rename ControlFlow::Node to ControlFlowNode. --- .../ql/lib/semmle/code/csharp/Assignable.qll | 10 +-- csharp/ql/lib/semmle/code/csharp/Caching.qll | 2 +- .../code/csharp/controlflow/BasicBlocks.qll | 12 +-- .../csharp/controlflow/ControlFlowElement.qll | 8 +- .../csharp/controlflow/ControlFlowGraph.qll | 2 + .../controlflow/ControlFlowReachability.qll | 4 +- .../semmle/code/csharp/controlflow/Guards.qll | 24 +++--- .../semmle/code/csharp/dataflow/Nullness.qll | 18 ++--- .../lib/semmle/code/csharp/dataflow/SSA.qll | 8 +- .../code/csharp/dataflow/SignAnalysis.qll | 8 +- .../dataflow/internal/DataFlowDispatch.qll | 2 +- .../dataflow/internal/DataFlowPrivate.qll | 76 +++++++++---------- .../dataflow/internal/DataFlowPublic.qll | 8 +- .../code/csharp/dataflow/internal/SsaImpl.qll | 12 +-- .../internal/rangeanalysis/RangeUtils.qll | 2 +- .../Concurrency/UnsynchronizedStaticAccess.ql | 4 +- .../Likely Bugs/NestedLoopsSameVariable.ql | 4 +- .../src/Likely Bugs/Statements/UseBraces.ql | 2 +- .../src/Likely Bugs/UncheckedCastInEquals.ql | 4 +- .../ql/src/Performance/StringBuilderInLoop.ql | 2 +- .../CWE-384/AbandonSession.ql | 4 +- .../controlflow/graph/Common.qll | 2 +- .../controlflow/graph/Condition.ql | 4 +- .../ql/test/library-tests/csharp7/IsFlow.ql | 2 +- .../csharp8/NullCoalescingControlFlow.ql | 2 +- .../library-tests/csharp8/NullableRefTypes.ql | 2 +- .../library-tests/csharp8/UsingControlFlow.ql | 2 +- .../library-tests/csharp8/ispatternflow.ql | 2 +- .../csharp8/switchexprcontrolflow.ql | 2 +- .../csharp8/switchstmtctrlflow.ql | 2 +- .../dataflow/defuse/defUseEquivalence.ql | 4 +- .../defuse/parameterUseEquivalence.ql | 4 +- .../dataflow/defuse/useUseEquivalence.ql | 6 +- .../library-tests/dataflow/ssa/SSAPhiRead.ql | 2 +- csharp/ql/test/library-tests/goto/Goto1.ql | 2 +- .../standalone/controlflow/cfg.ql | 2 +- 36 files changed, 128 insertions(+), 128 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/Assignable.qll b/csharp/ql/lib/semmle/code/csharp/Assignable.qll index 7075626aa3b..f1a7d2cebdc 100644 --- a/csharp/ql/lib/semmle/code/csharp/Assignable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Assignable.qll @@ -85,7 +85,7 @@ class AssignableRead extends AssignableAccess { } pragma[noinline] - private ControlFlow::Node getAnAdjacentReadSameVar() { + private ControlFlowNode getAnAdjacentReadSameVar() { SsaImpl::adjacentReadPairSameVar(_, this.getAControlFlowNode(), result) } @@ -115,7 +115,7 @@ class AssignableRead extends AssignableAccess { */ pragma[nomagic] AssignableRead getANextRead() { - forex(ControlFlow::Node cfn | cfn = result.getAControlFlowNode() | + forex(ControlFlowNode cfn | cfn = result.getAControlFlowNode() | cfn = this.getAnAdjacentReadSameVar() ) } @@ -419,7 +419,7 @@ class AssignableDefinition extends TAssignableDefinition { * the definitions of `x` and `y` in `M(out x, out y)` and `(x, y) = (0, 1)` * relate to the same call to `M` and assignment node, respectively. */ - deprecated ControlFlow::Node getAControlFlowNode() { + deprecated ControlFlowNode getAControlFlowNode() { result = this.getExpr().getAControlFlowNode() } @@ -494,7 +494,7 @@ class AssignableDefinition extends TAssignableDefinition { */ pragma[nomagic] AssignableRead getAFirstRead() { - forex(ControlFlow::Node cfn | cfn = result.getAControlFlowNode() | + forex(ControlFlowNode cfn | cfn = result.getAControlFlowNode() | exists(Ssa::ExplicitDefinition def | result = def.getAFirstReadAtNode(cfn) | this = def.getADefinition() ) @@ -688,7 +688,7 @@ module AssignableDefinitions { /** Gets the underlying parameter. */ Parameter getParameter() { result = p } - deprecated override ControlFlow::Node getAControlFlowNode() { + deprecated override ControlFlowNode getAControlFlowNode() { result = p.getCallable().getEntryPoint() } diff --git a/csharp/ql/lib/semmle/code/csharp/Caching.qll b/csharp/ql/lib/semmle/code/csharp/Caching.qll index bbe310fe69e..266526a64f5 100644 --- a/csharp/ql/lib/semmle/code/csharp/Caching.qll +++ b/csharp/ql/lib/semmle/code/csharp/Caching.qll @@ -18,7 +18,7 @@ module Stages { private predicate forceCachingInSameStageRev() { exists(Split s) or - exists(ControlFlow::Node n) + exists(ControlFlowNode n) or forceCachingInSameStageRev() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll index bf6a9772857..65937c82e67 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll @@ -67,16 +67,16 @@ final class BasicBlock extends BasicBlocksImpl::BasicBlock { BasicBlock getASuccessor() { result = super.getASuccessor() } /** Gets the control flow node at a specific (zero-indexed) position in this basic block. */ - ControlFlow::Node getNode(int pos) { result = super.getNode(pos) } + ControlFlowNode getNode(int pos) { result = super.getNode(pos) } /** Gets a control flow node in this basic block. */ - ControlFlow::Node getANode() { result = super.getANode() } + ControlFlowNode getANode() { result = super.getANode() } /** Gets the first control flow node in this basic block. */ - ControlFlow::Node getFirstNode() { result = super.getFirstNode() } + ControlFlowNode getFirstNode() { result = super.getFirstNode() } /** Gets the last control flow node in this basic block. */ - ControlFlow::Node getLastNode() { result = super.getLastNode() } + ControlFlowNode getLastNode() { result = super.getLastNode() } /** Gets the callable that this basic block belongs to. */ final Callable getCallable() { result = this.getFirstNode().getEnclosingCallable() } @@ -339,12 +339,14 @@ final class ConditionBlock extends BasicBlock, BasicBlocksImpl::ConditionBasicBl } } +private class ControlFlowNodeAlias = ControlFlowNode; + private class BasicBlockAlias = BasicBlock; private class EntryBasicBlockAlias = EntryBasicBlock; module Cfg implements BB::CfgSig { - class ControlFlowNode = ControlFlow::Node; + class ControlFlowNode = ControlFlowNodeAlias; class BasicBlock = BasicBlockAlias; diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index 73a461d0609..1a27a3ed878 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -16,7 +16,7 @@ class ControlFlowElementOrCallable extends ExprOrStmtParent, TControlFlowElement * A program element that can possess control flow. That is, either a statement or * an expression. * - * A control flow element can be mapped to a control flow node (`ControlFlow::Node`) + * A control flow element can be mapped to a control flow node (`ControlFlowNode`) * via `getAControlFlowNode()`. There is a one-to-many relationship between * control flow elements and control flow nodes. This allows control flow * splitting, for example modeling the control flow through `finally` blocks. @@ -37,15 +37,15 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele * Gets a control flow node for this element. That is, a node in the * control flow graph that corresponds to this element. * - * Typically, there is exactly one `ControlFlow::Node` associated with a + * Typically, there is exactly one `ControlFlowNode` associated with a * `ControlFlowElement`, but a `ControlFlowElement` may be split into - * several `ControlFlow::Node`s, for example to represent the continuation + * several `ControlFlowNode`s, for example to represent the continuation * flow in a `try/catch/finally` construction. */ Nodes::ElementNode getAControlFlowNode() { result.getAstNode() = this } /** Gets the control flow node for this element. */ - ControlFlow::Node getControlFlowNode() { result.getAstNode() = this } + ControlFlowNode getControlFlowNode() { result.getAstNode() = this } /** Gets the basic block in which this element occurs. */ BasicBlock getBasicBlock() { result = this.getAControlFlowNode().getBasicBlock() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 438174fe297..533fc213531 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -1,5 +1,7 @@ import csharp +class ControlFlowNode = ControlFlow::Node; + /** * Provides classes representing the control flow graph within callables. */ diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll index aafe14402c7..a32abfe6d68 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll @@ -9,11 +9,11 @@ private import semmle.code.csharp.controlflow.Guards as Guards private import semmle.code.csharp.ExprOrStmtParent private module ControlFlowInput implements - InputSig + InputSig { private import csharp as CS - AstNode getEnclosingAstNode(ControlFlow::Node node) { + AstNode getEnclosingAstNode(ControlFlowNode node) { node.getAstNode() = result or not exists(node.getAstNode()) and result = node.getEnclosingCallable() diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 6c1eb8c06eb..87003abf2ef 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -16,7 +16,7 @@ private import semmle.code.csharp.frameworks.system.collections.Generic private import codeql.controlflow.Guards as SharedGuards private module GuardsInput implements - SharedGuards::InputSig + SharedGuards::InputSig { private import csharp as CS @@ -605,7 +605,7 @@ class AccessOrCallExpr extends Expr { * An expression can have more than one SSA qualifier in the presence * of control flow splitting. */ - Ssa::Definition getAnSsaQualifier(ControlFlow::Node cfn) { result = getAnSsaQualifier(this, cfn) } + Ssa::Definition getAnSsaQualifier(ControlFlowNode cfn) { result = getAnSsaQualifier(this, cfn) } } private Declaration getDeclarationTarget(Expr e) { @@ -613,14 +613,14 @@ private Declaration getDeclarationTarget(Expr e) { result = e.(Call).getTarget() } -private Ssa::Definition getAnSsaQualifier(Expr e, ControlFlow::Node cfn) { +private Ssa::Definition getAnSsaQualifier(Expr e, ControlFlowNode cfn) { e = getATrackedAccess(result, cfn) or not e = getATrackedAccess(_, _) and result = getAnSsaQualifier(e.(QualifiableExpr).getQualifier(), cfn) } -private AssignableAccess getATrackedAccess(Ssa::Definition def, ControlFlow::Node cfn) { +private AssignableAccess getATrackedAccess(Ssa::Definition def, ControlFlowNode cfn) { result = def.getAReadAtNode(cfn) or result = def.(Ssa::ExplicitDefinition).getADefinition().getTargetAccess() and @@ -1115,7 +1115,7 @@ module Internal { pragma[nomagic] private predicate nodeIsGuardedBySameSubExpr0( - ControlFlow::Node guardedCfn, BasicBlock guardedBB, AccessOrCallExpr guarded, Guard g, + ControlFlowNode guardedCfn, BasicBlock guardedBB, AccessOrCallExpr guarded, Guard g, AccessOrCallExpr sub, GuardValue v ) { Stages::GuardsStage::forceCachingInSameStage() and @@ -1128,7 +1128,7 @@ module Internal { pragma[nomagic] private predicate nodeIsGuardedBySameSubExpr( - ControlFlow::Node guardedCfn, BasicBlock guardedBB, AccessOrCallExpr guarded, Guard g, + ControlFlowNode guardedCfn, BasicBlock guardedBB, AccessOrCallExpr guarded, Guard g, AccessOrCallExpr sub, GuardValue v ) { nodeIsGuardedBySameSubExpr0(guardedCfn, guardedBB, guarded, g, sub, v) and @@ -1137,8 +1137,8 @@ module Internal { pragma[nomagic] private predicate nodeIsGuardedBySameSubExprSsaDef0( - ControlFlow::Node cfn, BasicBlock guardedBB, AccessOrCallExpr guarded, Guard g, - ControlFlow::Node subCfn, BasicBlock subCfnBB, AccessOrCallExpr sub, GuardValue v, + ControlFlowNode cfn, BasicBlock guardedBB, AccessOrCallExpr guarded, Guard g, + ControlFlowNode subCfn, BasicBlock subCfnBB, AccessOrCallExpr sub, GuardValue v, Ssa::Definition def ) { nodeIsGuardedBySameSubExpr(cfn, guardedBB, guarded, g, sub, v) and @@ -1148,7 +1148,7 @@ module Internal { pragma[nomagic] private predicate nodeIsGuardedBySameSubExprSsaDef( - ControlFlow::Node guardedCfn, AccessOrCallExpr guarded, Guard g, ControlFlow::Node subCfn, + ControlFlowNode guardedCfn, AccessOrCallExpr guarded, Guard g, ControlFlowNode subCfn, AccessOrCallExpr sub, GuardValue v, Ssa::Definition def ) { exists(BasicBlock guardedBB, BasicBlock subCfnBB | @@ -1162,7 +1162,7 @@ module Internal { private predicate isGuardedByExpr0( AccessOrCallExpr guarded, Guard g, AccessOrCallExpr sub, GuardValue v ) { - forex(ControlFlow::Node cfn | cfn = guarded.getAControlFlowNode() | + forex(ControlFlowNode cfn | cfn = guarded.getAControlFlowNode() | nodeIsGuardedBySameSubExpr(cfn, _, guarded, g, sub, v) ) } @@ -1170,7 +1170,7 @@ module Internal { cached predicate isGuardedByExpr(AccessOrCallExpr guarded, Guard g, AccessOrCallExpr sub, GuardValue v) { isGuardedByExpr0(guarded, g, sub, v) and - forall(ControlFlow::Node subCfn, Ssa::Definition def | + forall(ControlFlowNode subCfn, Ssa::Definition def | nodeIsGuardedBySameSubExprSsaDef(_, guarded, g, subCfn, sub, v, def) | def = guarded.getAnSsaQualifier(_) @@ -1182,7 +1182,7 @@ module Internal { ControlFlow::Nodes::ElementNode guarded, Guard g, AccessOrCallExpr sub, GuardValue v ) { nodeIsGuardedBySameSubExpr(guarded, _, _, g, sub, v) and - forall(ControlFlow::Node subCfn, Ssa::Definition def | + forall(ControlFlowNode subCfn, Ssa::Definition def | nodeIsGuardedBySameSubExprSsaDef(guarded, _, g, subCfn, sub, v, def) | def = diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index 3d690ee1ac4..dad41f38d1b 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -126,7 +126,7 @@ private predicate nonNullDef(Ssa::ExplicitDefinition def) { /** * Holds if `node` is a dereference `d` of SSA definition `def`. */ -private predicate dereferenceAt(ControlFlow::Node node, Ssa::Definition def, Dereference d) { +private predicate dereferenceAt(ControlFlowNode node, Ssa::Definition def, Dereference d) { d = def.getAReadAtNode(node) } @@ -192,9 +192,7 @@ private predicate isNullDefaultArgument(Ssa::ImplicitParameterDefinition def, Al } /** Holds if `def` is an SSA definition that may be `null`. */ -private predicate defMaybeNull( - Ssa::Definition def, ControlFlow::Node node, string msg, Element reason -) { +private predicate defMaybeNull(Ssa::Definition def, ControlFlowNode node, string msg, Element reason) { not nonNullDef(def) and ( // A variable compared to `null` might be `null` @@ -256,19 +254,19 @@ private Ssa::Definition getAnUltimateDefinition(Ssa::Definition def) { * through an intermediate dereference that always throws a null reference * exception. */ -private predicate defReaches(Ssa::Definition def, ControlFlow::Node cfn) { +private predicate defReaches(Ssa::Definition def, ControlFlowNode cfn) { exists(def.getAFirstReadAtNode(cfn)) or - exists(ControlFlow::Node mid | defReaches(def, mid) | + exists(ControlFlowNode mid | defReaches(def, mid) | SsaImpl::adjacentReadPairSameVar(_, mid, cfn) and not mid = any(Dereference d | d.isAlwaysNull(def.getSourceVariable())).getAControlFlowNode() ) } private module NullnessConfig implements ControlFlowReachability::ConfigSig { - predicate source(ControlFlow::Node node, Ssa::Definition def) { defMaybeNull(def, node, _, _) } + predicate source(ControlFlowNode node, Ssa::Definition def) { defMaybeNull(def, node, _, _) } - predicate sink(ControlFlow::Node node, Ssa::Definition def) { + predicate sink(ControlFlowNode node, Ssa::Definition def) { exists(Dereference d | dereferenceAt(node, def, d) and not d instanceof NonNullExpr @@ -283,9 +281,7 @@ private module NullnessConfig implements ControlFlowReachability::ConfigSig { private module NullnessFlow = ControlFlowReachability::Flow; predicate maybeNullDeref(Dereference d, Ssa::SourceVariable v, string msg, Element reason) { - exists( - Ssa::Definition origin, Ssa::Definition ssa, ControlFlow::Node src, ControlFlow::Node sink - | + exists(Ssa::Definition origin, Ssa::Definition ssa, ControlFlowNode src, ControlFlowNode sink | defMaybeNull(origin, src, msg, reason) and NullnessFlow::flow(src, origin, sink, ssa) and ssa.getSourceVariable() = v and diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index e8180201b9a..d516e3aa193 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -164,7 +164,7 @@ module Ssa { */ class Definition extends SsaImpl::Definition { /** Gets the control flow node of this SSA definition. */ - final ControlFlow::Node getControlFlowNode() { + final ControlFlowNode getControlFlowNode() { exists(ControlFlow::BasicBlock bb, int i | this.definesAt(_, bb, i) | result = bb.getNode(0.maximum(i)) ) @@ -236,7 +236,7 @@ module Ssa { * - The reads of `this.Field` on lines 10 and 11 can be reached from the phi * node between lines 9 and 10. */ - final AssignableRead getAReadAtNode(ControlFlow::Node cfn) { + final AssignableRead getAReadAtNode(ControlFlowNode cfn) { result = SsaImpl::getAReadAtNode(this, cfn) } @@ -310,7 +310,7 @@ module Ssa { * Subsequent reads can be found by following the steps defined by * `AssignableRead.getANextRead()`. */ - final AssignableRead getAFirstReadAtNode(ControlFlow::Node cfn) { + final AssignableRead getAFirstReadAtNode(ControlFlowNode cfn) { SsaImpl::firstReadSameVar(this, cfn) and result.getAControlFlowNode() = cfn } @@ -373,7 +373,7 @@ module Ssa { * - The read of `this.Field` on line 11 is a last read of the phi node * between lines 9 and 10. */ - deprecated final AssignableRead getALastReadAtNode(ControlFlow::Node cfn) { + deprecated final AssignableRead getALastReadAtNode(ControlFlowNode cfn) { SsaImpl::lastReadSameVar(this, cfn) and result.getAControlFlowNode() = cfn } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll index 6f6f38bd199..f89e42744f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll @@ -11,26 +11,26 @@ private import semmle.code.csharp.dataflow.internal.rangeanalysis.SignAnalysisCo /** Holds if `e` can be positive and cannot be negative. */ predicate positiveExpr(Expr e) { - forex(ControlFlow::Node cfn | cfn = e.getAControlFlowNode() | + forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | positive(cfn) or strictlyPositive(cfn) ) } /** Holds if `e` can be negative and cannot be positive. */ predicate negativeExpr(Expr e) { - forex(ControlFlow::Node cfn | cfn = e.getAControlFlowNode() | + forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | negative(cfn) or strictlyNegative(cfn) ) } /** Holds if `e` is strictly positive. */ predicate strictlyPositiveExpr(Expr e) { - forex(ControlFlow::Node cfn | cfn = e.getAControlFlowNode() | strictlyPositive(cfn)) + forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | strictlyPositive(cfn)) } /** Holds if `e` is strictly negative. */ predicate strictlyNegativeExpr(Expr e) { - forex(ControlFlow::Node cfn | cfn = e.getAControlFlowNode() | strictlyNegative(cfn)) + forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | strictlyNegative(cfn)) } /** Holds if `e` can be positive and cannot be negative. */ 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 be183815c71..158ea697edf 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -257,7 +257,7 @@ class DataFlowCallable extends TDataFlowCallable { /** Gets a control flow node belonging to this callable. */ pragma[inline] - ControlFlow::Node getAControlFlowNode() { + ControlFlowNode getAControlFlowNode() { result = this.getAMultiBodyControlFlowNode() or not this.isMultiBodied() 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 ae530b2d451..e4296a151bc 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -41,7 +41,7 @@ predicate isArgumentNode(ArgumentNode arg, DataFlowCall c, ArgumentPosition pos) * Gets a control flow node used for data flow purposes for the primary constructor * parameter access `pa`. */ -private ControlFlow::Node getAPrimaryConstructorParameterCfn(ParameterAccess pa) { +private ControlFlowNode getAPrimaryConstructorParameterCfn(ParameterAccess pa) { pa.getTarget().getCallable() instanceof PrimaryConstructor and ( result = pa.(ParameterRead).getAControlFlowNode() @@ -72,7 +72,7 @@ abstract class NodeImpl extends Node { /** Do not call: use `getControlFlowNode()` instead. */ cached - abstract ControlFlow::Node getControlFlowNodeImpl(); + abstract ControlFlowNode getControlFlowNodeImpl(); /** Do not call: use `getLocation()` instead. */ cached @@ -172,7 +172,7 @@ private module ThisFlow { predicate thisAccessExpr(Expr e) { e instanceof ThisAccess or e instanceof BaseAccess } /** Holds if `n` is a `this` access at control flow node `cfn`. */ - private predicate thisAccess(Node n, ControlFlow::Node cfn) { + private predicate thisAccess(Node n, ControlFlowNode cfn) { thisAccessExpr(n.asExprAtNode(cfn)) or cfn = n.(InstanceParameterAccessPreNode).getUnderlyingControlFlowNode() @@ -200,7 +200,7 @@ private module ThisFlow { or exists(DataFlowCallable c, ControlFlow::BasicBlocks::EntryBlock entry | n.(InstanceParameterNode).isParameterOf(c, _) and - exists(ControlFlow::Node succ | + exists(ControlFlowNode succ | succ = c.getAControlFlowNode() and succ = entry.getFirstNode().getASuccessor() and // In case `c` has multiple bodies, we want each body to gets its own implicit @@ -282,12 +282,12 @@ module VariableCapture { result = bb.getCallable() } - private predicate thisAccess(ControlFlow::Node cfn, InstanceCallable c) { + private predicate thisAccess(ControlFlowNode cfn, InstanceCallable c) { ThisFlow::thisAccessExpr(cfn.getAstNode()) and cfn.getEnclosingCallable().getEnclosingCallable*() = c } - private predicate capturedThisAccess(ControlFlow::Node cfn, InstanceCallable c) { + private predicate capturedThisAccess(ControlFlowNode cfn, InstanceCallable c) { thisAccess(cfn, c) and cfn.getEnclosingCallable() != c } @@ -347,7 +347,7 @@ module VariableCapture { } } - class Expr extends ControlFlow::Node { + class Expr extends ControlFlowNode { predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { this = bb.getNode(i) } } @@ -360,7 +360,7 @@ module VariableCapture { this = def.getExpr().getAControlFlowNode() } - ControlFlow::Node getRhs() { LocalFlow::defAssigns(def, this, _, result) } + ControlFlowNode getRhs() { LocalFlow::defAssigns(def, this, _, result) } CapturedVariable getVariable() { result = v } } @@ -564,7 +564,7 @@ module LocalFlow { } predicate defAssigns( - AssignableDefinition def, ControlFlow::Node cfnDef, Expr value, ControlFlow::Node valueCfn + AssignableDefinition def, ControlFlowNode cfnDef, Expr value, ControlFlowNode valueCfn ) { def.getSource() = value and valueCfn = value.getControlFlowNode() and @@ -572,7 +572,7 @@ module LocalFlow { } private predicate defAssigns(ExprNode value, AssignableDefinitionNode defNode) { - exists(ControlFlow::Node cfn, AssignableDefinition def, ControlFlow::Node cfnDef | + exists(ControlFlowNode cfn, AssignableDefinition def, ControlFlowNode cfnDef | defAssigns(def, cfnDef, value.getExpr(), _) and cfn = value.getControlFlowNode() and defNode = TAssignableDefinitionNode(def, cfnDef) @@ -596,7 +596,7 @@ module LocalFlow { or ThisFlow::adjacentThisRefs(nodeFrom.(PostUpdateNode).getPreUpdateNode(), nodeTo) or - exists(AssignableDefinition def, ControlFlow::Node cfn, Ssa::ExplicitDefinition ssaDef | + exists(AssignableDefinition def, ControlFlowNode cfn, Ssa::ExplicitDefinition ssaDef | ssaDef.getADefinition() = def and ssaDef.getControlFlowNode() = cfn and nodeFrom = TAssignableDefinitionNode(def, cfn) and @@ -1026,7 +1026,7 @@ private module Cached { newtype TNode = TExprNode(ControlFlow::Nodes::ElementNode cfn) { cfn.getAstNode() instanceof Expr } or TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or - TAssignableDefinitionNode(AssignableDefinition def, ControlFlow::Node cfn) { + TAssignableDefinitionNode(AssignableDefinition def, ControlFlowNode cfn) { cfn = def.getExpr().getAControlFlowNode() } or TExplicitParameterNode(Parameter p, DataFlowCallable c) { @@ -1085,12 +1085,12 @@ private module Cached { TFlowSummaryNode(FlowSummaryImpl::Private::SummaryNode sn) { sn.getSummarizedCallable() instanceof CallableUsedInSource } or - TParamsArgumentNode(ControlFlow::Node callCfn) { + TParamsArgumentNode(ControlFlowNode callCfn) { callCfn = any(Call c | isParamsArg(c, _, _)).getAControlFlowNode() } or TFlowInsensitiveFieldNode(FieldOrPropertyUsedInSource f) { f.isFieldLike() } or TFlowInsensitiveCapturedVariableNode(LocalScopeVariable v) { v.isCaptured() } or - TInstanceParameterAccessNode(ControlFlow::Node cfn, Boolean isPostUpdate) { + TInstanceParameterAccessNode(ControlFlowNode cfn, Boolean isPostUpdate) { cfn = getAPrimaryConstructorParameterCfn(_) } or TPrimaryConstructorThisAccessNode(Parameter p, Boolean isPostUpdate, DataFlowCallable c) { @@ -1233,7 +1233,7 @@ class SsaNode extends NodeImpl, TSsaNode { override Type getTypeImpl() { result = node.getSourceVariable().getType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = node.getLocation() } @@ -1246,7 +1246,7 @@ class SsaDefinitionNode extends SsaNode { Ssa::Definition getDefinition() { result = node.getDefinition() } - override ControlFlow::Node getControlFlowNodeImpl() { + override ControlFlowNode getControlFlowNodeImpl() { result = this.getDefinition().getControlFlowNode() } } @@ -1254,7 +1254,7 @@ class SsaDefinitionNode extends SsaNode { /** A definition, viewed as a node in a data flow graph. */ class AssignableDefinitionNodeImpl extends NodeImpl, TAssignableDefinitionNode { private AssignableDefinition def; - private ControlFlow::Node cfn_; + private ControlFlowNode cfn_; AssignableDefinitionNodeImpl() { this = TAssignableDefinitionNode(def, cfn_) } @@ -1262,7 +1262,7 @@ class AssignableDefinitionNodeImpl extends NodeImpl, TAssignableDefinitionNode { AssignableDefinition getDefinition() { result = def } /** Gets the underlying definition, at control flow node `cfn`, if any. */ - AssignableDefinition getDefinitionAtNode(ControlFlow::Node cfn) { + AssignableDefinition getDefinitionAtNode(ControlFlowNode cfn) { result = def and cfn = cfn_ } @@ -1271,7 +1271,7 @@ class AssignableDefinitionNodeImpl extends NodeImpl, TAssignableDefinitionNode { override Type getTypeImpl() { result = def.getTarget().getType() } - override ControlFlow::Node getControlFlowNodeImpl() { result = cfn_ } + override ControlFlowNode getControlFlowNodeImpl() { result = cfn_ } override Location getLocationImpl() { result = def.getTargetAccess().getLocation() @@ -1374,7 +1374,7 @@ private module ParameterNodes { override Type getTypeImpl() { result = parameter.getType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = this.getParameterLocation(_) } @@ -1399,7 +1399,7 @@ private module ParameterNodes { override Type getTypeImpl() { result = callable.getDeclaringType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = location } @@ -1424,7 +1424,7 @@ private module ParameterNodes { callable = c.asCallable(_) and pos.isDelegateSelf() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override DataFlowCallable getEnclosingCallableImpl() { result.asCallable(_) = callable } @@ -1517,7 +1517,7 @@ private module ArgumentNodes { pos.isQualifier() } - override ControlFlow::Node getControlFlowNodeImpl() { result = cfn } + override ControlFlowNode getControlFlowNodeImpl() { result = cfn } override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = cfn @@ -1547,7 +1547,7 @@ private module ArgumentNodes { * `Foo(new[] { "a", "b", "c" })`. */ class ParamsArgumentNode extends ArgumentNodeImpl, NodeImpl, TParamsArgumentNode { - private ControlFlow::Node callCfn; + private ControlFlowNode callCfn; ParamsArgumentNode() { this = TParamsArgumentNode(callCfn) } @@ -1568,7 +1568,7 @@ private module ArgumentNodes { override Type getTypeImpl() { result = this.getParameter().getType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = callCfn.getLocation() } @@ -1652,7 +1652,7 @@ private module ReturnNodes { override Type getTypeImpl() { result = yrs.getEnclosingCallable().getReturnType() } - override ControlFlow::Node getControlFlowNodeImpl() { result = cfn } + override ControlFlowNode getControlFlowNodeImpl() { result = cfn } override Location getLocationImpl() { result = yrs.getLocation() } @@ -1676,7 +1676,7 @@ private module ReturnNodes { override Type getTypeImpl() { result = expr.getEnclosingCallable().getReturnType() } - override ControlFlow::Node getControlFlowNodeImpl() { result = cfn } + override ControlFlowNode getControlFlowNodeImpl() { result = cfn } override Location getLocationImpl() { result = expr.getLocation() } @@ -1728,7 +1728,7 @@ private module OutNodes { private import semmle.code.csharp.frameworks.system.Collections private import semmle.code.csharp.frameworks.system.collections.Generic - private DataFlowCall csharpCall(Expr e, ControlFlow::Node cfn) { + private DataFlowCall csharpCall(Expr e, ControlFlowNode cfn) { e = any(DispatchCall dc | result = TNonDelegateCall(cfn, dc)).getCall() or result = TExplicitDelegateLikeCall(cfn, e) } @@ -1758,7 +1758,7 @@ private module OutNodes { */ class ParamOutNode extends OutNode, AssignableDefinitionNode { private AssignableDefinitions::OutRefDefinition outRefDef; - private ControlFlow::Node cfn; + private ControlFlowNode cfn; ParamOutNode() { outRefDef = this.getDefinitionAtNode(cfn) } @@ -1803,7 +1803,7 @@ class FlowSummaryNode extends NodeImpl, TFlowSummaryNode { override Type getTypeImpl() { none() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = this.getSummarizedCallable().getLocation() } @@ -1827,7 +1827,7 @@ class FlowSummaryNode extends NodeImpl, TFlowSummaryNode { * all of which are represented by an `InstanceParameterAccessNode` node. */ abstract private class InstanceParameterAccessNode extends NodeImpl, TInstanceParameterAccessNode { - ControlFlow::Node cfn; + ControlFlowNode cfn; boolean isPostUpdate; Parameter p; @@ -1847,7 +1847,7 @@ abstract private class InstanceParameterAccessNode extends NodeImpl, TInstancePa /** * Gets the underlying control flow node. */ - ControlFlow::Node getUnderlyingControlFlowNode() { result = cfn } + ControlFlowNode getUnderlyingControlFlowNode() { result = cfn } /** * Gets the primary constructor parameter that this is a this access to. @@ -1940,7 +1940,7 @@ class CaptureNode extends NodeImpl, TCaptureNode { else result = super.getDataFlowType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = cn.getLocation() } @@ -2051,7 +2051,7 @@ class FlowInsensitiveFieldNode extends NodeImpl, TFlowInsensitiveFieldNode { override Type getTypeImpl() { result = f.getType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = f.getLocation() } @@ -2075,7 +2075,7 @@ class FlowInsensitiveCapturedVariableNode extends NodeImpl, TFlowInsensitiveCapt override Type getTypeImpl() { result = v.getType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = v.getLocation() } @@ -2118,7 +2118,7 @@ private ContentSet getResultContent() { private predicate primaryConstructorParameterStore( AssignableDefinitionNode node1, PrimaryConstructorParameterContent c, Node node2 ) { - exists(AssignableDefinition def, ControlFlow::Node cfn, Parameter p | + exists(AssignableDefinition def, ControlFlowNode cfn, Parameter p | node1 = TAssignableDefinitionNode(def, cfn) and p = def.getTarget() and node2 = TInstanceParameterAccessNode(cfn, true) and @@ -2633,7 +2633,7 @@ module PostUpdateNodes { override Type getTypeImpl() { result = cfn.getAstNode().(Expr).getType() } - override ControlFlow::Node getControlFlowNodeImpl() { none() } + override ControlFlowNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = cfn.getLocation() } @@ -2762,7 +2762,7 @@ private predicate isLocalFunctionCallReceiver( f = receiver.getTarget().getUnboundDeclaration() } -private predicate lambdaCallExpr(DataFlowCall call, Expr receiver, ControlFlow::Node receiverCfn) { +private predicate lambdaCallExpr(DataFlowCall call, Expr receiver, ControlFlowNode receiverCfn) { exists(DelegateLikeCall dc | call.(ExplicitDelegateLikeDataFlowCall).getCall() = dc and receiver = dc.getExpr() and diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index f4d24fdb510..a19364ba04f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -31,7 +31,7 @@ class Node extends TNode { * Gets the definition corresponding to this node, at control flow node `cfn`, * if any. */ - AssignableDefinition asDefinitionAtNode(ControlFlow::Node cfn) { + AssignableDefinition asDefinitionAtNode(ControlFlowNode cfn) { result = this.(AssignableDefinitionNode).getDefinitionAtNode(cfn) } @@ -44,7 +44,7 @@ class Node extends TNode { } /** Gets the control flow node corresponding to this node, if any. */ - final ControlFlow::Node getControlFlowNode() { result = this.(NodeImpl).getControlFlowNodeImpl() } + final ControlFlowNode getControlFlowNode() { result = this.(NodeImpl).getControlFlowNodeImpl() } /** Gets a textual representation of this node. */ final string toString() { result = this.(NodeImpl).toStringImpl() } @@ -71,7 +71,7 @@ class Node extends TNode { * * Note that because of control-flow splitting, one `Expr` may correspond * to multiple `ExprNode`s, just like it may correspond to multiple - * `ControlFlow::Node`s. + * `ControlFlowNode`s. */ class ExprNode extends Node, TExprNode { /** Gets the expression corresponding to this node. */ @@ -113,7 +113,7 @@ class AssignableDefinitionNode extends Node instanceof AssignableDefinitionNodeI AssignableDefinition getDefinition() { result = super.getDefinition() } /** Gets the underlying definition, at control flow node `cfn`, if any. */ - AssignableDefinition getDefinitionAtNode(ControlFlow::Node cfn) { + AssignableDefinition getDefinitionAtNode(ControlFlowNode cfn) { result = super.getDefinitionAtNode(cfn) } } 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 83593a5df36..ad390f5fe5d 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -771,7 +771,7 @@ deprecated private predicate lastRefSkipUncertainReads( } pragma[nomagic] -deprecated predicate lastReadSameVar(Definition def, ControlFlow::Node cfn) { +deprecated predicate lastReadSameVar(Definition def, ControlFlowNode cfn) { exists(ControlFlow::BasicBlock bb, int i | lastRefSkipUncertainReads(def, bb, i) and variableReadActual(bb, i, _) and @@ -894,7 +894,7 @@ private module Cached { } cached - AssignableRead getAReadAtNode(Definition def, ControlFlow::Node cfn) { + AssignableRead getAReadAtNode(Definition def, ControlFlowNode cfn) { exists(Ssa::SourceVariable v, ControlFlow::BasicBlock bb, int i | Impl::ssaDefReachesRead(v, def, bb, i) and variableReadActual(bb, i, v) and @@ -908,7 +908,7 @@ private module Cached { * without passing through any other read. */ cached - predicate firstReadSameVar(Definition def, ControlFlow::Node cfn) { + predicate firstReadSameVar(Definition def, ControlFlowNode cfn) { exists(ControlFlow::BasicBlock bb, int i | Impl::firstUse(def, bb, i, true) and cfn = bb.getNode(i) ) @@ -920,7 +920,7 @@ private module Cached { * passing through another read. */ cached - predicate adjacentReadPairSameVar(Definition def, ControlFlow::Node cfn1, ControlFlow::Node cfn2) { + predicate adjacentReadPairSameVar(Definition def, ControlFlowNode cfn1, ControlFlowNode cfn2) { exists( ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2, Ssa::SourceVariable v @@ -1023,7 +1023,7 @@ private module Cached { import Cached private string getSplitString(Definition def) { - exists(ControlFlow::BasicBlock bb, int i, ControlFlow::Node cfn | + exists(ControlFlow::BasicBlock bb, int i, ControlFlowNode cfn | def.definesAt(_, bb, i) and result = cfn.(ControlFlow::Nodes::ElementNode).getSplitsString() | @@ -1045,7 +1045,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu private import semmle.code.csharp.controlflow.BasicBlocks private import codeql.util.Boolean - class Expr extends ControlFlow::Node { + class Expr extends ControlFlowNode { predicate hasCfgNode(ControlFlow::BasicBlock bb, int i) { this = bb.getNode(i) } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll index 171f2d2f59e..b87d31985ca 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll @@ -20,7 +20,7 @@ private module Impl { /** Holds if SSA definition `def` equals `e + delta`. */ predicate ssaUpdateStep(ExplicitDefinition def, ExprNode e, int delta) { - exists(ControlFlow::Node cfn | cfn = def.getControlFlowNode() | + exists(ControlFlowNode cfn | cfn = def.getControlFlowNode() | e = cfn.(ExprNode::Assignment).getRightOperand() and delta = 0 and not cfn instanceof ExprNode::AssignOperation diff --git a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql index 150ae78ae09..106993837be 100644 --- a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql +++ b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql @@ -26,10 +26,10 @@ predicate correctlySynchronized(CollectionMember c, Expr access) { ) } -ControlFlow::Node unlockedReachable(Callable a) { +ControlFlowNode unlockedReachable(Callable a) { result = a.getEntryPoint() or - exists(ControlFlow::Node mid | mid = unlockedReachable(a) | + exists(ControlFlowNode mid | mid = unlockedReachable(a) | not mid.getAstNode() instanceof LockingCall and result = mid.getASuccessor() ) diff --git a/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql b/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql index 0831eb56199..7f93312521a 100644 --- a/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql +++ b/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql @@ -80,13 +80,13 @@ class NestedForLoopSameVariable extends ForStmt { } /** Finds elements inside the outer loop that are no longer guarded by the loop invariant. */ - private ControlFlow::Node getAnUnguardedNode() { + private ControlFlowNode getAnUnguardedNode() { hasChild(this.getOuterForStmt().getBody(), result.getAstNode()) and ( result = this.getCondition().(ControlFlowElement).getAControlFlowExitNode().getAFalseSuccessor() or - exists(ControlFlow::Node mid | mid = this.getAnUnguardedNode() | + exists(ControlFlowNode mid | mid = this.getAnUnguardedNode() | mid.getASuccessor() = result and not exists(this.getAComparisonTest(result.getAstNode())) ) diff --git a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql index f639b060ac1..8b9c4f61600 100644 --- a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql +++ b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql @@ -15,7 +15,7 @@ import csharp // Iterate the control flow until we reach a Stmt -Stmt findSuccessorStmt(ControlFlow::Node n) { +Stmt findSuccessorStmt(ControlFlowNode n) { result = n.getAstNode() or not n.getAstNode() instanceof Stmt and result = findSuccessorStmt(n.getASuccessor()) diff --git a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql index 5c11a77f30d..03ca6377722 100644 --- a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql +++ b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql @@ -19,10 +19,10 @@ private predicate equalsMethodChild(EqualsMethod equals, Element child) { equalsMethodChild(equals, child.getParent()) } -predicate nodeBeforeParameterAccess(ControlFlow::Node node) { +predicate nodeBeforeParameterAccess(ControlFlowNode node) { exists(EqualsMethod equals | equals.getBody() = node.getAstNode()) or - exists(EqualsMethod equals, Parameter param, ControlFlow::Node mid | + exists(EqualsMethod equals, Parameter param, ControlFlowNode mid | equals.getParameter(0) = param and equalsMethodChild(equals, mid.getAstNode()) and nodeBeforeParameterAccess(mid) and diff --git a/csharp/ql/src/Performance/StringBuilderInLoop.ql b/csharp/ql/src/Performance/StringBuilderInLoop.ql index f1f23ebf5e0..ed7190e69ff 100644 --- a/csharp/ql/src/Performance/StringBuilderInLoop.ql +++ b/csharp/ql/src/Performance/StringBuilderInLoop.ql @@ -13,7 +13,7 @@ import csharp import semmle.code.csharp.frameworks.system.Text -from ObjectCreation creation, LoopStmt loop, ControlFlow::Node loopEntryNode +from ObjectCreation creation, LoopStmt loop, ControlFlowNode loopEntryNode where creation.getType() instanceof SystemTextStringBuilderClass and loopEntryNode = loop.getBody().getAControlFlowEntryNode() and diff --git a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql index c350c8f3755..d36ac01109f 100644 --- a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql +++ b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql @@ -56,13 +56,13 @@ predicate sessionUse(MemberAccess ma) { } /** A control flow step that is not sanitised by a call to clear the session. */ -predicate controlStep(ControlFlow::Node s1, ControlFlow::Node s2) { +predicate controlStep(ControlFlowNode s1, ControlFlowNode s2) { s2 = s1.getASuccessor() and not sessionEndMethod(s2.getAstNode().(MethodCall).getTarget()) } from - ControlFlow::Node loginCall, Method loginMethod, ControlFlow::Node sessionUse, + ControlFlowNode loginCall, Method loginMethod, ControlFlowNode sessionUse, ControlFlow::SuccessorType fromLoginFlow where loginMethod = loginCall.getAstNode().(MethodCall).getTarget() and diff --git a/csharp/ql/test/library-tests/controlflow/graph/Common.qll b/csharp/ql/test/library-tests/controlflow/graph/Common.qll index f6f9b26f1cd..fdb9da4ca76 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Common.qll +++ b/csharp/ql/test/library-tests/controlflow/graph/Common.qll @@ -10,7 +10,7 @@ class SourceControlFlowElement extends ControlFlowElement { } } -class SourceControlFlowNode extends ControlFlow::Node { +class SourceControlFlowNode extends ControlFlowNode { SourceControlFlowNode() { not this.getLocation().getFile() instanceof StubFile and not this.getLocation().getFile().fromLibrary() diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql index 61c80181924..0ec6939dfb2 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql @@ -7,12 +7,12 @@ query predicate conditionBlock( cb.edgeDominates(controlled, any(ConditionalSuccessor s | testIsTrue = s.getValue())) } -ControlFlow::Node successor(ControlFlow::Node node, boolean kind) { +ControlFlowNode successor(ControlFlowNode node, boolean kind) { kind = true and result = node.getATrueSuccessor() or kind = false and result = node.getAFalseSuccessor() } -query predicate conditionFlow(ControlFlow::Node node, ControlFlow::Node successor, boolean kind) { +query predicate conditionFlow(ControlFlowNode node, ControlFlowNode successor, boolean kind) { successor = successor(node, kind) } diff --git a/csharp/ql/test/library-tests/csharp7/IsFlow.ql b/csharp/ql/test/library-tests/csharp7/IsFlow.ql index 02b65c0d3e2..de0e75f5313 100644 --- a/csharp/ql/test/library-tests/csharp7/IsFlow.ql +++ b/csharp/ql/test/library-tests/csharp7/IsFlow.ql @@ -1,6 +1,6 @@ import csharp -query predicate edges(ControlFlow::Node n1, ControlFlow::Node n2, string attr, string val) { +query predicate edges(ControlFlowNode n1, ControlFlowNode n2, string attr, string val) { exists(SwitchStmt switch, ControlFlow::SuccessorType t | switch.getAControlFlowNode().getASuccessor*() = n1 | diff --git a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql index 1037ad32169..408e626cb8c 100644 --- a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql +++ b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql @@ -1,6 +1,6 @@ import csharp -query predicate edges(ControlFlow::Node node1, ControlFlow::Node node2, string label, string value) { +query predicate edges(ControlFlowNode node1, ControlFlowNode node2, string label, string value) { label = "semmle.label" and exists(ControlFlow::SuccessorType t | node2 = node1.getASuccessorByType(t) and value = t.toString() diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql index f519f9a14e8..9061f164c89 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql @@ -11,7 +11,7 @@ query predicate nullableDataFlow(DataFlow::Node src, DataFlow::Node sink) { } query predicate nullableControlFlow( - ControlFlow::Node a, ControlFlow::Node b, ControlFlow::SuccessorType t + ControlFlowNode a, ControlFlowNode b, ControlFlow::SuccessorType t ) { a.getEnclosingCallable().hasName("TestSuppressNullableWarningExpr") and b = a.getASuccessorByType(t) diff --git a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql index fe2f90be4a7..ae01a2af095 100644 --- a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql +++ b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql @@ -1,6 +1,6 @@ import csharp -query predicate edges(ControlFlow::Node node1, ControlFlow::Node node2, string label, string value) { +query predicate edges(ControlFlowNode node1, ControlFlowNode node2, string label, string value) { label = "semmle.label" and exists(ControlFlow::SuccessorType t | node2 = node1.getASuccessorByType(t) and value = t.toString() diff --git a/csharp/ql/test/library-tests/csharp8/ispatternflow.ql b/csharp/ql/test/library-tests/csharp8/ispatternflow.ql index 33f0095c837..918e2b05a26 100644 --- a/csharp/ql/test/library-tests/csharp8/ispatternflow.ql +++ b/csharp/ql/test/library-tests/csharp8/ispatternflow.ql @@ -1,6 +1,6 @@ import csharp -query predicate edges(ControlFlow::Node a, ControlFlow::Node b, string label, string value) { +query predicate edges(ControlFlowNode a, ControlFlowNode b, string label, string value) { exists(ControlFlow::SuccessorType t | a.getEnclosingCallable().getName() = "IsPatterns" and b = a.getASuccessorByType(t) and diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql index 696f747b925..c0841f56dff 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql @@ -1,6 +1,6 @@ import csharp -query predicate edges(ControlFlow::Node a, ControlFlow::Node b, string label, string value) { +query predicate edges(ControlFlowNode a, ControlFlowNode b, string label, string value) { exists(ControlFlow::SuccessorType t | a.getEnclosingCallable().getName().matches("Expressions%") and b = a.getASuccessorByType(t) and diff --git a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql index 100f05e562a..73d83fba5c6 100644 --- a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql +++ b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql @@ -1,6 +1,6 @@ import csharp -query predicate edges(ControlFlow::Node a, ControlFlow::Node b, string label, string value) { +query predicate edges(ControlFlowNode a, ControlFlowNode b, string label, string value) { exists(ControlFlow::SuccessorType t | a.getEnclosingCallable().hasName("SwitchStatements") and b = a.getASuccessorByType(t) and diff --git a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql index f6aaf07485e..19037a80e6c 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql @@ -3,11 +3,11 @@ private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" def-use implementation. */ predicate defReaches( - AssignableDefinition def, BaseSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn + AssignableDefinition def, BaseSsa::SimpleLocalScopeVariable v, ControlFlowNode cfn ) { def.getTarget() = v and cfn = def.getExpr().getAControlFlowNode().getASuccessor() or - exists(ControlFlow::Node mid | defReaches(def, v, mid) | + exists(ControlFlowNode mid | defReaches(def, v, mid) | not mid = any(AssignableDefinition ad | ad.getTarget() = v and ad.isCertain()) .getExpr() diff --git a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql index 87c26e32259..abb84e3741c 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql @@ -2,11 +2,11 @@ import csharp private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" parameter-use implementation. */ -predicate parameterReaches(Parameter p, ControlFlow::Node cfn) { +predicate parameterReaches(Parameter p, ControlFlowNode cfn) { cfn = p.getCallable().getEntryPoint().getASuccessor() and p instanceof BaseSsa::SimpleLocalScopeVariable or - exists(ControlFlow::Node mid | parameterReaches(p, mid) | + exists(ControlFlowNode mid | parameterReaches(p, mid) | not mid = any(AssignableDefinition ad | ad.getTarget() = p and ad.isCertain()) .getExpr() diff --git a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql index f212e48f1c4..b071b33164e 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql @@ -3,11 +3,11 @@ private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" use-use implementation. */ predicate useReaches( - LocalScopeVariableRead read, BaseSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn + LocalScopeVariableRead read, BaseSsa::SimpleLocalScopeVariable v, ControlFlowNode cfn ) { read.getTarget() = v and cfn = read.getAControlFlowNode().getASuccessor() or - exists(ControlFlow::Node mid | useReaches(read, v, mid) | + exists(ControlFlowNode mid | useReaches(read, v, mid) | not mid = any(AssignableDefinition ad | ad.getTarget() = v and ad.isCertain()) .getExpr() @@ -33,7 +33,7 @@ private TLocalScopeVariableReadOrSsaDef getANextReadOrDef(TLocalScopeVariableRea or not exists(read.getANextRead()) and exists( - Ssa::Definition ssaDef, Ssa::PhiNode phi, ControlFlow::Node cfn, ControlFlow::BasicBlock bb, + Ssa::Definition ssaDef, Ssa::PhiNode phi, ControlFlowNode cfn, ControlFlow::BasicBlock bb, int i | ssaDef.getARead() = read diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql index baa59bc5b67..2c4d1f319d4 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql +++ b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql @@ -6,7 +6,7 @@ query predicate phiReadNode(RefTest::Ref phi, Ssa::SourceVariable v) { phi.isPhiRead() and phi.getSourceVariable() = v } -query predicate phiReadNodeFirstRead(RefTest::Ref phi, Ssa::SourceVariable v, ControlFlow::Node read) { +query predicate phiReadNodeFirstRead(RefTest::Ref phi, Ssa::SourceVariable v, ControlFlowNode read) { exists(RefTest::Ref r, ControlFlow::BasicBlock bb, int i | phi.isPhiRead() and RefTest::adjacentRefRead(phi, r) and diff --git a/csharp/ql/test/library-tests/goto/Goto1.ql b/csharp/ql/test/library-tests/goto/Goto1.ql index 1a90e6eb1fb..c7826e5bcaa 100644 --- a/csharp/ql/test/library-tests/goto/Goto1.ql +++ b/csharp/ql/test/library-tests/goto/Goto1.ql @@ -1,6 +1,6 @@ import csharp -query predicate edges(ControlFlow::Node node, ControlFlow::Node successor, string attr, string val) { +query predicate edges(ControlFlowNode node, ControlFlowNode successor, string attr, string val) { not node.getAstNode().fromLibrary() and exists(ControlFlow::SuccessorType t | successor = node.getASuccessorByType(t) | attr = "semmle.label" and diff --git a/csharp/ql/test/library-tests/standalone/controlflow/cfg.ql b/csharp/ql/test/library-tests/standalone/controlflow/cfg.ql index f596ac41629..020863c588d 100644 --- a/csharp/ql/test/library-tests/standalone/controlflow/cfg.ql +++ b/csharp/ql/test/library-tests/standalone/controlflow/cfg.ql @@ -11,6 +11,6 @@ class UnknownCall extends Call { override string toString() { result = "Call (unknown target)" } } -query predicate edges(ControlFlow::Node n1, ControlFlow::Node n2) { +query predicate edges(ControlFlowNode n1, ControlFlowNode n2) { not n1.getAstNode().fromLibrary() and n2 = n1.getASuccessor() } From b85b02abb43dc0261be0bf55c13224bfb60cd7e6 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 18 Mar 2026 13:27:37 +0100 Subject: [PATCH 054/208] Cfg: Add dominance predicates to shared ControlFlowNode. --- .../codeql/controlflow/ControlFlowGraph.qll | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index a9f3c44fcc4..03ee8988b38 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -1784,6 +1784,72 @@ module Make0 Ast> { ControlFlowNode getAnExceptionSuccessor() { result = this.getASuccessor(any(ExceptionSuccessor t)) } + + /** + * Holds if this node dominates `that` node. + * + * That is, all paths reaching `that` node from the callable entry + * node (`EntryNode`) must go through this node. + */ + bindingset[this, that] + pragma[inline_late] + predicate dominates(ControlFlowNode that) { + this.strictlyDominates(that) + or + this = that + } + + /** + * Holds if this node strictly dominates `that` node. + * + * That is, all paths reaching `that` node from the callable entry + * node (`EntryNode`) must go through this node (which must be + * different from `that` node). + */ + bindingset[this, that] + pragma[inline_late] + predicate strictlyDominates(ControlFlowNode that) { + this.getBasicBlock().strictlyDominates(that.getBasicBlock()) + or + exists(BasicBlock bb, int i, int j | + bb.getNode(i) = this and + bb.getNode(j) = that and + i < j + ) + } + + /** + * Holds if this node post-dominates `that` node. + * + * That is, all paths reaching the normal callable exit node + * (`NormalExitNode`) from `that` node must go through this node. + */ + bindingset[this, that] + pragma[inline_late] + predicate postDominates(ControlFlowNode that) { + this.strictlyPostDominates(that) + or + this = that + } + + /** + * Holds if this node strictly post-dominates `that` node. + * + * That is, all paths reaching the normal callable exit node + * (`NormalExitNode`) from `that` node must go through this node + * (which must be different from `that` node). + */ + bindingset[this, that] + pragma[inline_late] + predicate strictlyPostDominates(ControlFlowNode that) { + this.getBasicBlock().strictlyPostDominates(that.getBasicBlock()) + or + exists(BasicBlock bb, int i, int j | + bb.getNode(i) = this and + bb.getNode(j) = that and + i > j + ) + } } /** Provides additional classes for interacting with the control flow graph. */ From 03f6bdbdd2aa034a04b92e36fd4f075e3d9982c6 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 18 Mar 2026 15:59:05 +0100 Subject: [PATCH 055/208] C#: Update some references in preparation for CFG swap. --- .../csharp/controlflow/ControlFlowGraph.qll | 19 +++---- .../semmle/code/csharp/controlflow/Guards.qll | 5 +- .../semmle/code/csharp/dataflow/Nullness.qll | 2 +- .../lib/semmle/code/csharp/dataflow/SSA.qll | 6 ++- .../code/csharp/dataflow/internal/BaseSSA.qll | 2 +- .../dataflow/internal/DataFlowDispatch.qll | 4 +- .../dataflow/internal/DataFlowPrivate.qll | 50 ++++++++++--------- .../dataflow/internal/DataFlowPublic.qll | 2 +- .../code/csharp/dataflow/internal/SsaImpl.qll | 7 ++- .../rangeanalysis/SsaReadPositionSpecific.qll | 2 +- .../Concurrency/UnsynchronizedStaticAccess.ql | 2 +- .../Likely Bugs/NestedLoopsSameVariable.ql | 7 +-- .../src/Likely Bugs/Statements/UseBraces.ql | 4 +- .../src/Likely Bugs/UncheckedCastInEquals.ql | 6 +-- .../CWE-384/AbandonSession.ql | 8 +-- .../controlflow/graph/EnclosingCallable.ql | 2 +- .../library-tests/controlflow/graph/Nodes.ql | 2 +- .../ql/test/library-tests/csharp7/IsFlow.ql | 2 +- .../csharp8/NullCoalescingControlFlow.ql | 2 +- .../library-tests/csharp8/NullableRefTypes.ql | 2 +- .../library-tests/csharp8/UsingControlFlow.ql | 2 +- .../library-tests/csharp8/ispatternflow.ql | 2 +- .../csharp8/switchexprcontrolflow.ql | 2 +- .../csharp8/switchstmtctrlflow.ql | 2 +- csharp/ql/test/library-tests/goto/Goto1.ql | 2 +- 25 files changed, 74 insertions(+), 72 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 533fc213531..c4856ece834 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -30,6 +30,10 @@ module ControlFlow { /** Gets the control flow element that this node corresponds to, if any. */ final ControlFlowElement getAstNode() { result = super.getAstNode() } + Expr asExpr() { result = this.getAstNode() } + + Stmt asStmt() { result = this.getAstNode() } + /** Gets the basic block that this control flow node belongs to. */ BasicBlock getBasicBlock() { result.getANode() = this } @@ -175,13 +179,13 @@ module ControlFlow { } /** Gets a successor node of a given type, if any. */ - Node getASuccessorByType(SuccessorType t) { result = this.getASuccessor(t) } + Node getASuccessor(SuccessorType t) { result = super.getASuccessor(t) } /** Gets an immediate successor, if any. */ - Node getASuccessor() { result = this.getASuccessorByType(_) } + Node getASuccessor() { result = this.getASuccessor(_) } /** Gets an immediate predecessor node of a given flow type, if any. */ - Node getAPredecessorByType(SuccessorType t) { result.getASuccessorByType(t) = this } + Node getAPredecessorByType(SuccessorType t) { result.getASuccessor(t) = this } /** Gets an immediate predecessor, if any. */ Node getAPredecessor() { result = this.getAPredecessorByType(_) } @@ -203,7 +207,7 @@ module ControlFlow { * on line 1. */ Node getATrueSuccessor() { - result = this.getASuccessorByType(any(BooleanSuccessor t | t.getValue() = true)) + result = this.getASuccessor(any(BooleanSuccessor t | t.getValue() = true)) } /** @@ -223,7 +227,7 @@ module ControlFlow { * on line 1. */ Node getAFalseSuccessor() { - result = this.getASuccessorByType(any(BooleanSuccessor t | t.getValue() = false)) + result = this.getASuccessor(any(BooleanSuccessor t | t.getValue() = false)) } /** Gets the enclosing callable of this control flow node. */ @@ -242,9 +246,6 @@ module ControlFlow { /** A node for a callable exit point, annotated with the type of exit. */ class AnnotatedExitNode extends Node instanceof Impl::AnnotatedExitNode { - /** Holds if this node represent a normal exit. */ - final predicate isNormal() { super.isNormal() } - /** Gets the callable that this exit applies to. */ Callable getCallable() { result = this.getScope() } @@ -283,7 +284,7 @@ module ControlFlow { class ExprNode extends ElementNode { Expr e; - ExprNode() { e = unique(Expr e_ | e_ = this.getAstNode() | e_) } + ExprNode() { e = unique(Expr e_ | e_ = this.asExpr() | e_) } /** Gets the expression that this control-flow node belongs to. */ Expr getExpr() { result = e } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 87003abf2ef..df94d9eab7a 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -1186,10 +1186,7 @@ module Internal { nodeIsGuardedBySameSubExprSsaDef(guarded, _, g, subCfn, sub, v, def) | def = - guarded - .getAstNode() - .(AccessOrCallExpr) - .getAnSsaQualifier(guarded.getBasicBlock().getANode()) + guarded.asExpr().(AccessOrCallExpr).getAnSsaQualifier(guarded.getBasicBlock().getANode()) ) } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index dad41f38d1b..fa4a7fa50f8 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -222,7 +222,7 @@ private predicate defMaybeNull(Ssa::Definition def, ControlFlowNode node, string or // If the source of a variable is `null` then the variable may be `null` exists(AssignableDefinition adef | adef = def.(Ssa::ExplicitDefinition).getADefinition() | - adef.getSource() = maybeNullExpr(node.getAstNode()) and + adef.getSource() = maybeNullExpr(node.asExpr()) and reason = adef.getExpr() and msg = "because of $@ assignment" ) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index d516e3aa193..ed6d54e3a67 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -426,7 +426,9 @@ module Ssa { * This is either an expression, for example `x = 0`, a parameter, or a * callable. Phi nodes have no associated syntax element. */ - Element getElement() { result = this.getControlFlowNode().getAstNode() } + Element getElement() { + result.(ControlFlowElement).getControlFlowNode() = this.getControlFlowNode() + } /** Gets the callable to which this SSA definition belongs. */ final Callable getEnclosingCallable() { @@ -561,7 +563,7 @@ module Ssa { } /** Gets the callable that this entry definition belongs to. */ - final Callable getCallable() { result = this.getBasicBlock().getCallable() } + final Callable getCallable() { result = this.getBasicBlock().getEnclosingCallable() } override Element getElement() { result = this.getCallable() } 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 a994873274a..988eb8f88c4 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -29,7 +29,7 @@ module BaseSsa { Callable c, ControlFlow::BasicBlocks::EntryBlock bb, SsaInput::SourceVariable v ) { exists(ControlFlow::BasicBlocks::EntryBlock entry | - c = entry.getCallable() and + c = entry.getEnclosingCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit // entry definition. In case `c` doesn't have multiple bodies, the line below // is simply the same as `bb = entry`, because `entry.getFirstNode().getASuccessor()` 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 158ea697edf..728a4b6e681 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -75,10 +75,10 @@ private module Cached { newtype TDataFlowCall = TNonDelegateCall(ControlFlow::Nodes::ElementNode cfn, DispatchCall dc) { DataFlowImplCommon::forceCachingInSameStage() and - cfn.getAstNode() = dc.getCall() + cfn.asExpr() = dc.getCall() } or TExplicitDelegateLikeCall(ControlFlow::Nodes::ElementNode cfn, DelegateLikeCall dc) { - cfn.getAstNode() = dc + cfn.asExpr() = dc } or TSummaryCall(FlowSummary::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver) { FlowSummaryImpl::Private::summaryCallbackRange(c, receiver) 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 e4296a151bc..3b24fe5884e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -133,7 +133,7 @@ abstract private class LocalFunctionCreationNode extends NodeImpl, TLocalFunctio LocalFunctionCreationNode() { this = TLocalFunctionCreationNode(cfn, isPostUpdate) and - function = cfn.getAstNode().(LocalFunctionStmt).getLocalFunction() + function = cfn.asStmt().(LocalFunctionStmt).getLocalFunction() } LocalFunction getFunction() { result = function } @@ -181,7 +181,7 @@ private module ThisFlow { private predicate primaryConstructorThisAccess(Node n, BasicBlock bb, int ppos) { exists(Parameter p | n.(PrimaryConstructorThisAccessPreNode).getParameter() = p and - bb.getCallable() = p.getCallable() and + bb.getEnclosingCallable() = p.getCallable() and ppos = p.getPosition() ) } @@ -279,11 +279,11 @@ module VariableCapture { private import TaintTrackingPrivate as TaintTrackingPrivate Callable basicBlockGetEnclosingCallable(BasicBlocks::BasicBlock bb) { - result = bb.getCallable() + result = bb.getEnclosingCallable() } private predicate thisAccess(ControlFlowNode cfn, InstanceCallable c) { - ThisFlow::thisAccessExpr(cfn.getAstNode()) and + ThisFlow::thisAccessExpr(cfn.asExpr()) and cfn.getEnclosingCallable().getEnclosingCallable*() = c } @@ -369,7 +369,7 @@ module VariableCapture { CapturedVariable v; VariableRead() { - this.getAstNode().(AssignableRead).getTarget() = v.asLocalScopeVariable() + this.asExpr().(AssignableRead).getTarget() = v.asLocalScopeVariable() or thisAccess(this, v.asThis()) } @@ -380,14 +380,16 @@ module VariableCapture { class ClosureExpr extends Expr { Callable c; - ClosureExpr() { lambdaCreationExpr(this.getAstNode(), c) } + ClosureExpr() { + lambdaCreationExpr(any(ControlFlowElement e | e.getControlFlowNode() = this), c) + } predicate hasBody(Callable body) { body = c } predicate hasAliasedAccess(Expr f) { closureFlowStep+(this, f) and not closureFlowStep(f, _) or - isLocalFunctionCallReceiver(_, f.getAstNode(), c) + isLocalFunctionCallReceiver(_, f.asExpr(), c) } } @@ -1024,7 +1026,7 @@ private module Cached { cached newtype TNode = - TExprNode(ControlFlow::Nodes::ElementNode cfn) { cfn.getAstNode() instanceof Expr } or + TExprNode(ControlFlow::Nodes::ElementNode cfn) { exists(cfn.asExpr()) } or TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or TAssignableDefinitionNode(AssignableDefinition def, ControlFlowNode cfn) { cfn = def.getExpr().getAControlFlowNode() @@ -1039,17 +1041,17 @@ private module Cached { } or TDelegateSelfReferenceNode(Callable c) { lambdaCreationExpr(_, c) } or TLocalFunctionCreationNode(ControlFlow::Nodes::ElementNode cfn, Boolean isPostUpdate) { - cfn.getAstNode() instanceof LocalFunctionStmt + cfn.asStmt() instanceof LocalFunctionStmt } or TYieldReturnNode(ControlFlow::Nodes::ElementNode cfn) { - any(Callable c).canYieldReturn(cfn.getAstNode()) + any(Callable c).canYieldReturn(cfn.asExpr()) } or TAsyncReturnNode(ControlFlow::Nodes::ElementNode cfn) { - any(Callable c | c.(Modifiable).isAsync()).canReturn(cfn.getAstNode()) + any(Callable c | c.(Modifiable).isAsync()).canReturn(cfn.asExpr()) } or - TMallocNode(ControlFlow::Nodes::ElementNode cfn) { cfn.getAstNode() instanceof ObjectCreation } or + TMallocNode(ControlFlow::Nodes::ElementNode cfn) { cfn.asExpr() instanceof ObjectCreation } or TObjectInitializerNode(ControlFlow::Nodes::ElementNode cfn) { - cfn.getAstNode().(ObjectCreation).hasInitializer() + cfn.asExpr().(ObjectCreation).hasInitializer() } or TExprPostUpdateNode(ControlFlow::Nodes::ExprNode cfn) { ( @@ -1522,10 +1524,10 @@ private module ArgumentNodes { override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = cfn or - result = getEnclosingStaticFieldOrProperty(cfn.getAstNode()) + result = getEnclosingStaticFieldOrProperty(cfn.asExpr()) } - override Type getTypeImpl() { result = cfn.getAstNode().(Expr).getType() } + override Type getTypeImpl() { result = cfn.asExpr().getType() } override Location getLocationImpl() { result = cfn.getLocation() } @@ -1563,7 +1565,7 @@ private module ArgumentNodes { override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = callCfn or - result = getEnclosingStaticFieldOrProperty(callCfn.getAstNode()) + result = getEnclosingStaticFieldOrProperty(callCfn.asExpr()) } override Type getTypeImpl() { result = this.getParameter().getType() } @@ -1666,7 +1668,7 @@ private module ReturnNodes { private ControlFlow::Nodes::ElementNode cfn; private Expr expr; - AsyncReturnNode() { this = TAsyncReturnNode(cfn) and expr = cfn.getAstNode() } + AsyncReturnNode() { this = TAsyncReturnNode(cfn) and expr = cfn.asExpr() } Expr getExpr() { result = expr } @@ -2427,10 +2429,10 @@ DataFlowType getNodeType(Node n) { not lambdaCreation(n, _, _) and not isLocalFunctionCallReceiver(_, n.asExpr(), _) or - [ - n.asExpr().(ControlFlowElement), - n.(LocalFunctionCreationPreNode).getUnderlyingControlFlowNode().getAstNode() - ] = result.getADelegateCreation() + n.asExpr() = result.getADelegateCreation() + or + n.(LocalFunctionCreationPreNode).getUnderlyingControlFlowNode() = + result.getADelegateCreation().getControlFlowNode() } private class DataFlowNullType extends Gvn::GvnType { @@ -2628,10 +2630,10 @@ module PostUpdateNodes { override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = cfn or - result = getEnclosingStaticFieldOrProperty(cfn.getAstNode()) + result = getEnclosingStaticFieldOrProperty(cfn.asExpr()) } - override Type getTypeImpl() { result = cfn.getAstNode().(Expr).getType() } + override Type getTypeImpl() { result = cfn.asExpr().getType() } override ControlFlowNode getControlFlowNodeImpl() { none() } @@ -2783,7 +2785,7 @@ predicate lambdaCall(DataFlowCall call, LambdaCallKind kind, Node receiver) { ( lambdaCallExpr(call, receiver.asExpr(), _) and // local function calls can be resolved directly without a flow analysis - not call.getControlFlowNode().getAstNode() instanceof LocalFunctionCall + not call.getControlFlowNode().asExpr() instanceof LocalFunctionCall or receiver.(FlowSummaryNode).getSummaryNode() = call.(SummaryCall).getReceiver() ) and diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index a19364ba04f..69997397cdf 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -83,7 +83,7 @@ class ExprNode extends Node, TExprNode { */ Expr getExprAtNode(ControlFlow::Nodes::ElementNode cfn) { this = TExprNode(cfn) and - result = cfn.getAstNode() + result = cfn.asExpr() } } 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 ad390f5fe5d..9018b5f8e7e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -57,7 +57,7 @@ module Consistency = Impl::Consistency; * Holds if the `i`th node of basic block `bb` reads source variable `v`. */ private predicate variableReadActual(ControlFlow::BasicBlock bb, int i, Ssa::SourceVariable v) { - v.getAnAccess().(AssignableRead) = bb.getNode(i).getAstNode() + v.getAnAccess().(AssignableRead) = bb.getNode(i).asExpr() } private module SourceVariableImpl { @@ -187,8 +187,7 @@ private module SourceVariableImpl { * ``` */ predicate outRefExitRead(ControlFlow::BasicBlock bb, int i, LocalScopeSourceVariable v) { - exists(ControlFlow::Nodes::AnnotatedExitNode exit | - exit.isNormal() and + exists(ControlFlow::Nodes::NormalExitNode exit | exists(LocalScopeVariable lsv | lsv = v.getAssignable() and bb.getNode(i) = exit and @@ -820,7 +819,7 @@ private module Cached { cached predicate implicitEntryDefinition(ControlFlow::BasicBlock bb, Ssa::SourceVariable v) { exists(ControlFlow::BasicBlocks::EntryBlock entry, Callable c | - c = entry.getCallable() and + c = entry.getEnclosingCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit // entry definition. In case `c` doesn't have multiple bodies, the line below // is simply the same as `bb = entry`, because `entry.getFirstNode().getASuccessor()` diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll index cbf4a1d5739..48f90bd1981 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll @@ -25,7 +25,7 @@ private int getId(PhiInputEdgeBlock bb) { exists(CfgImpl::AstNode n | result = n.getId() | n = bb.getFirstNode().getAstNode() or - n = bb.(ControlFlow::BasicBlocks::EntryBlock).getCallable() + n = bb.(ControlFlow::BasicBlocks::EntryBlock).getEnclosingCallable() ) } diff --git a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql index 106993837be..ca41f94cf56 100644 --- a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql +++ b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql @@ -30,7 +30,7 @@ ControlFlowNode unlockedReachable(Callable a) { result = a.getEntryPoint() or exists(ControlFlowNode mid | mid = unlockedReachable(a) | - not mid.getAstNode() instanceof LockingCall and + not mid.asExpr() instanceof LockingCall and result = mid.getASuccessor() ) } diff --git a/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql b/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql index 7f93312521a..18e5241ef25 100644 --- a/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql +++ b/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql @@ -81,20 +81,21 @@ class NestedForLoopSameVariable extends ForStmt { /** Finds elements inside the outer loop that are no longer guarded by the loop invariant. */ private ControlFlowNode getAnUnguardedNode() { - hasChild(this.getOuterForStmt().getBody(), result.getAstNode()) and + hasChild(this.getOuterForStmt().getBody(), + any(ControlFlowElement e | e.getControlFlowNode() = result)) and ( result = this.getCondition().(ControlFlowElement).getAControlFlowExitNode().getAFalseSuccessor() or exists(ControlFlowNode mid | mid = this.getAnUnguardedNode() | mid.getASuccessor() = result and - not exists(this.getAComparisonTest(result.getAstNode())) + not exists(this.getAComparisonTest(result.asExpr())) ) ) } private VariableAccess getAnUnguardedAccess() { - result = this.getAnUnguardedNode().getAstNode() and + result = this.getAnUnguardedNode().asExpr() and result.getTarget() = iteration } } diff --git a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql index 8b9c4f61600..bef3fabd296 100644 --- a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql +++ b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql @@ -16,9 +16,9 @@ import csharp // Iterate the control flow until we reach a Stmt Stmt findSuccessorStmt(ControlFlowNode n) { - result = n.getAstNode() + result = n.asStmt() or - not n.getAstNode() instanceof Stmt and result = findSuccessorStmt(n.getASuccessor()) + not exists(n.asStmt()) and result = findSuccessorStmt(n.getASuccessor()) } // Return a successor statement to s diff --git a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql index 03ca6377722..94eb9d909d3 100644 --- a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql +++ b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql @@ -20,13 +20,13 @@ private predicate equalsMethodChild(EqualsMethod equals, Element child) { } predicate nodeBeforeParameterAccess(ControlFlowNode node) { - exists(EqualsMethod equals | equals.getBody() = node.getAstNode()) + exists(EqualsMethod equals | equals.getBody().getControlFlowNode() = node) or exists(EqualsMethod equals, Parameter param, ControlFlowNode mid | equals.getParameter(0) = param and - equalsMethodChild(equals, mid.getAstNode()) and + equalsMethodChild(equals, any(ControlFlowElement e | e.getControlFlowNode() = mid)) and nodeBeforeParameterAccess(mid) and - not param.getAnAccess() = mid.getAstNode() and + not param.getAnAccess().getControlFlowNode() = mid and mid.getASuccessor() = node ) } diff --git a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql index d36ac01109f..2654b48c233 100644 --- a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql +++ b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql @@ -58,16 +58,16 @@ predicate sessionUse(MemberAccess ma) { /** A control flow step that is not sanitised by a call to clear the session. */ predicate controlStep(ControlFlowNode s1, ControlFlowNode s2) { s2 = s1.getASuccessor() and - not sessionEndMethod(s2.getAstNode().(MethodCall).getTarget()) + not sessionEndMethod(s2.asExpr().(MethodCall).getTarget()) } from ControlFlowNode loginCall, Method loginMethod, ControlFlowNode sessionUse, ControlFlow::SuccessorType fromLoginFlow where - loginMethod = loginCall.getAstNode().(MethodCall).getTarget() and + loginMethod = loginCall.asExpr().(MethodCall).getTarget() and loginMethod(loginMethod, fromLoginFlow) and - sessionUse(sessionUse.getAstNode()) and - controlStep+(loginCall.getASuccessorByType(fromLoginFlow), sessionUse) + sessionUse(sessionUse.asExpr()) and + controlStep+(loginCall.getASuccessor(fromLoginFlow), sessionUse) select sessionUse, "This session has not been invalidated following the call to $@.", loginCall, loginMethod.getName() diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.ql b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.ql index 7309151bb7e..54d0c07d553 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.ql @@ -3,4 +3,4 @@ import Common query predicate nodeEnclosing(SourceControlFlowNode n, Callable c) { c = n.getEnclosingCallable() } -query predicate blockEnclosing(SourceBasicBlock bb, Callable c) { c = bb.getCallable() } +query predicate blockEnclosing(SourceBasicBlock bb, Callable c) { c = bb.getEnclosingCallable() } diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql index 1140f78de66..fe8c714271c 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql @@ -6,5 +6,5 @@ import semmle.code.csharp.controlflow.internal.Splitting as Splitting import Nodes query predicate entryPoint(Callable c, SourceControlFlowElement cfn) { - c.getEntryPoint().getASuccessor().getAstNode() = cfn + c.getEntryPoint().getASuccessor() = cfn.getControlFlowNode() } diff --git a/csharp/ql/test/library-tests/csharp7/IsFlow.ql b/csharp/ql/test/library-tests/csharp7/IsFlow.ql index de0e75f5313..ccd51760504 100644 --- a/csharp/ql/test/library-tests/csharp7/IsFlow.ql +++ b/csharp/ql/test/library-tests/csharp7/IsFlow.ql @@ -4,7 +4,7 @@ query predicate edges(ControlFlowNode n1, ControlFlowNode n2, string attr, strin exists(SwitchStmt switch, ControlFlow::SuccessorType t | switch.getAControlFlowNode().getASuccessor*() = n1 | - n2 = n1.getASuccessorByType(t) and + n2 = n1.getASuccessor(t) and attr = "semmle.label" and val = t.toString() ) diff --git a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql index 408e626cb8c..c54509c762a 100644 --- a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql +++ b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql @@ -3,7 +3,7 @@ import csharp query predicate edges(ControlFlowNode node1, ControlFlowNode node2, string label, string value) { label = "semmle.label" and exists(ControlFlow::SuccessorType t | - node2 = node1.getASuccessorByType(t) and value = t.toString() + node2 = node1.getASuccessor(t) and value = t.toString() ) and node1.getEnclosingCallable().hasName("NullCoalescing") } diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql index 9061f164c89..0d057d678ee 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.ql @@ -14,7 +14,7 @@ query predicate nullableControlFlow( ControlFlowNode a, ControlFlowNode b, ControlFlow::SuccessorType t ) { a.getEnclosingCallable().hasName("TestSuppressNullableWarningExpr") and - b = a.getASuccessorByType(t) + b = a.getASuccessor(t) } query predicate nonNullExpressions(NonNullExpr e) { diff --git a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql index ae01a2af095..a9b2201a479 100644 --- a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql +++ b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql @@ -3,7 +3,7 @@ import csharp query predicate edges(ControlFlowNode node1, ControlFlowNode node2, string label, string value) { label = "semmle.label" and exists(ControlFlow::SuccessorType t | - node2 = node1.getASuccessorByType(t) and value = t.toString() + node2 = node1.getASuccessor(t) and value = t.toString() ) and node1.getEnclosingCallable().hasName("TestUsingDeclarations") } diff --git a/csharp/ql/test/library-tests/csharp8/ispatternflow.ql b/csharp/ql/test/library-tests/csharp8/ispatternflow.ql index 918e2b05a26..61b0562d5fa 100644 --- a/csharp/ql/test/library-tests/csharp8/ispatternflow.ql +++ b/csharp/ql/test/library-tests/csharp8/ispatternflow.ql @@ -3,7 +3,7 @@ import csharp query predicate edges(ControlFlowNode a, ControlFlowNode b, string label, string value) { exists(ControlFlow::SuccessorType t | a.getEnclosingCallable().getName() = "IsPatterns" and - b = a.getASuccessorByType(t) and + b = a.getASuccessor(t) and label = "semmle.label" and value = t.toString() ) diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql index c0841f56dff..2eba0e54581 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.ql @@ -3,7 +3,7 @@ import csharp query predicate edges(ControlFlowNode a, ControlFlowNode b, string label, string value) { exists(ControlFlow::SuccessorType t | a.getEnclosingCallable().getName().matches("Expressions%") and - b = a.getASuccessorByType(t) and + b = a.getASuccessor(t) and label = "semmle.label" and value = t.toString() ) diff --git a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql index 73d83fba5c6..3030332cc0a 100644 --- a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql +++ b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.ql @@ -3,7 +3,7 @@ import csharp query predicate edges(ControlFlowNode a, ControlFlowNode b, string label, string value) { exists(ControlFlow::SuccessorType t | a.getEnclosingCallable().hasName("SwitchStatements") and - b = a.getASuccessorByType(t) and + b = a.getASuccessor(t) and label = "semmle.label" and value = t.toString() ) diff --git a/csharp/ql/test/library-tests/goto/Goto1.ql b/csharp/ql/test/library-tests/goto/Goto1.ql index c7826e5bcaa..11639e28bcb 100644 --- a/csharp/ql/test/library-tests/goto/Goto1.ql +++ b/csharp/ql/test/library-tests/goto/Goto1.ql @@ -2,7 +2,7 @@ import csharp query predicate edges(ControlFlowNode node, ControlFlowNode successor, string attr, string val) { not node.getAstNode().fromLibrary() and - exists(ControlFlow::SuccessorType t | successor = node.getASuccessorByType(t) | + exists(ControlFlow::SuccessorType t | successor = node.getASuccessor(t) | attr = "semmle.label" and val = t.toString() ) From b878ae3f21e37c4348490237217aef73831b1b11 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 18 Mar 2026 16:08:15 +0100 Subject: [PATCH 056/208] C#: Update some references to ControlFlow::Nodes. --- csharp/ql/lib/semmle/code/csharp/Callable.qll | 4 +- .../csharp/controlflow/ControlFlowGraph.qll | 50 ++++++++----------- .../semmle/code/csharp/controlflow/Guards.qll | 2 +- .../dataflow/internal/DataFlowDispatch.qll | 4 +- .../code/csharp/dataflow/internal/SsaImpl.qll | 4 +- 5 files changed, 28 insertions(+), 36 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/Callable.qll b/csharp/ql/lib/semmle/code/csharp/Callable.qll index 1b3b32bf988..7859c7ea1d0 100644 --- a/csharp/ql/lib/semmle/code/csharp/Callable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Callable.qll @@ -157,10 +157,10 @@ class Callable extends Parameterizable, ControlFlowElementOrCallable, @callable final predicate hasExpressionBody() { exists(this.getExpressionBody()) } /** Gets the entry point in the control graph for this callable. */ - ControlFlow::Nodes::EntryNode getEntryPoint() { result.getCallable() = this } + ControlFlow::EntryNode getEntryPoint() { result.getEnclosingCallable() = this } /** Gets the exit point in the control graph for this callable. */ - ControlFlow::Nodes::ExitNode getExitPoint() { result.getCallable() = this } + ControlFlow::ExitNode getExitPoint() { result.getEnclosingCallable() = this } /** * Gets the enclosing callable of this callable, if any. diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index c4856ece834..ffe6c492fde 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -234,37 +234,29 @@ module ControlFlow { final Callable getEnclosingCallable() { result = Impl::getNodeCfgScope(this) } } + /** A node for a callable entry point. */ + class EntryNode extends Node instanceof Impl::EntryNode { + /** Gets the callable that this entry applies to. */ + Callable getEnclosingCallable() { result = this.getScope() } + } + + /** A node for a callable exit point, annotated with the type of exit. */ + class AnnotatedExitNode extends Node instanceof Impl::AnnotatedExitNode { + /** Gets the callable that this exit applies to. */ + Callable getEnclosingCallable() { result = this.getScope() } + } + + /** A control flow node indicating normal termination of a callable. */ + class NormalExitNode extends AnnotatedExitNode instanceof Impl::NormalExitNode { } + + /** A node for a callable exit point. */ + class ExitNode extends Node instanceof Impl::ExitNode { + /** Gets the callable that this exit applies to. */ + Callable getEnclosingCallable() { result = this.getScope() } + } + /** Provides different types of control flow nodes. */ module Nodes { - /** A node for a callable entry point. */ - class EntryNode extends Node instanceof Impl::EntryNode { - /** Gets the callable that this entry applies to. */ - Callable getCallable() { result = this.getScope() } - - override BasicBlocks::EntryBlock getBasicBlock() { result = Node.super.getBasicBlock() } - } - - /** A node for a callable exit point, annotated with the type of exit. */ - class AnnotatedExitNode extends Node instanceof Impl::AnnotatedExitNode { - /** Gets the callable that this exit applies to. */ - Callable getCallable() { result = this.getScope() } - - override BasicBlocks::AnnotatedExitBlock getBasicBlock() { - result = Node.super.getBasicBlock() - } - } - - /** A control flow node indicating normal termination of a callable. */ - class NormalExitNode extends AnnotatedExitNode instanceof Impl::NormalExitNode { } - - /** A node for a callable exit point. */ - class ExitNode extends Node instanceof Impl::ExitNode { - /** Gets the callable that this exit applies to. */ - Callable getCallable() { result = this.getScope() } - - override BasicBlocks::ExitBlock getBasicBlock() { result = Node.super.getBasicBlock() } - } - /** * A node for a control flow element, that is, an expression or a statement. * diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index df94d9eab7a..867827ea432 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -20,7 +20,7 @@ private module GuardsInput implements { private import csharp as CS - class NormalExitNode = ControlFlow::Nodes::NormalExitNode; + class NormalExitNode = ControlFlow::NormalExitNode; class AstNode = ControlFlowElement; 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 728a4b6e681..2e8b3094788 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -28,8 +28,8 @@ 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() + exists(ControlFlow::EntryNode en | + en.getEnclosingCallable() = m and first.getControlFlowNode() = en.getASuccessor() ) } 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 9018b5f8e7e..fc79aa40152 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -187,11 +187,11 @@ private module SourceVariableImpl { * ``` */ predicate outRefExitRead(ControlFlow::BasicBlock bb, int i, LocalScopeSourceVariable v) { - exists(ControlFlow::Nodes::NormalExitNode exit | + exists(ControlFlow::NormalExitNode exit | exists(LocalScopeVariable lsv | lsv = v.getAssignable() and bb.getNode(i) = exit and - exit.getCallable() = lsv.getCallable() + exit.getEnclosingCallable() = lsv.getCallable() | lsv.(Parameter).isOutOrRef() or From 13a4141cc66e9681ff0d8be2f72b37fdb21d19c5 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 18 Mar 2026 16:25:02 +0100 Subject: [PATCH 057/208] C#: Rename remaining references to ControlFlow::Nodes. --- .../DataFlowConsistency.ql | 2 +- .../csharp/controlflow/ControlFlowElement.qll | 6 +- .../csharp/controlflow/ControlFlowGraph.qll | 75 ++++++++++--------- .../semmle/code/csharp/controlflow/Guards.qll | 10 +-- .../lib/semmle/code/csharp/dataflow/SSA.qll | 2 +- .../code/csharp/dataflow/SignAnalysis.qll | 8 +- .../dataflow/internal/DataFlowDispatch.qll | 24 +++--- .../dataflow/internal/DataFlowPrivate.qll | 42 +++++------ .../dataflow/internal/DataFlowPublic.qll | 4 +- .../code/csharp/dataflow/internal/SsaImpl.qll | 2 +- .../internal/rangeanalysis/BoundSpecific.qll | 2 +- .../internal/rangeanalysis/ConstantUtils.qll | 2 +- .../rangeanalysis/ModulusAnalysisSpecific.qll | 2 +- .../internal/rangeanalysis/RangeUtils.qll | 4 +- .../rangeanalysis/SignAnalysisSpecific.qll | 4 +- .../rangeanalysis/SsaReadPositionSpecific.qll | 4 +- .../internal/rangeanalysis/SsaUtils.qll | 2 +- .../library-tests/controlflow/graph/Nodes.ql | 1 - .../library-tests/csharp11/signAnalysis.ql | 2 +- .../modulusanalysis/ModulusAnalysis.ql | 2 +- .../dataflow/signanalysis/MissingSign.ql | 2 +- .../dataflow/signanalysis/SignAnalysis.ql | 4 +- 22 files changed, 104 insertions(+), 102 deletions(-) diff --git a/csharp/ql/consistency-queries/DataFlowConsistency.ql b/csharp/ql/consistency-queries/DataFlowConsistency.ql index 03e0f3f1b74..bfce13dad18 100644 --- a/csharp/ql/consistency-queries/DataFlowConsistency.ql +++ b/csharp/ql/consistency-queries/DataFlowConsistency.ql @@ -70,7 +70,7 @@ private module Input implements InputSig { init.getInitializer().getNumberOfChildren() > 1 ) or - exists(ControlFlow::Nodes::ElementNode cfn, ControlFlow::Nodes::Split split | + exists(ControlFlowNodes::ElementNode cfn, ControlFlowNodes::Split split | exists(arg.asExprAtNode(cfn)) | split = cfn.getASplit() and diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index 1a27a3ed878..87be3c3c183 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -42,7 +42,7 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele * several `ControlFlowNode`s, for example to represent the continuation * flow in a `try/catch/finally` construction. */ - Nodes::ElementNode getAControlFlowNode() { result.getAstNode() = this } + ControlFlowNodes::ElementNode getAControlFlowNode() { result.getAstNode() = this } /** Gets the control flow node for this element. */ ControlFlowNode getControlFlowNode() { result.getAstNode() = this } @@ -53,14 +53,14 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele /** * Gets a first control flow node executed within this element. */ - Nodes::ElementNode getAControlFlowEntryNode() { + ControlFlowNodes::ElementNode getAControlFlowEntryNode() { result = Impl::getAControlFlowEntryNode(this).(ControlFlowElement).getAControlFlowNode() } /** * Gets a potential last control flow node executed within this element. */ - Nodes::ElementNode getAControlFlowExitNode() { + ControlFlowNodes::ElementNode getAControlFlowExitNode() { result = Impl::getAControlFlowExitNode(this).(ControlFlowElement).getAControlFlowNode() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index ffe6c492fde..b322d612e39 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -255,42 +255,6 @@ module ControlFlow { Callable getEnclosingCallable() { result = this.getScope() } } - /** Provides different types of control flow nodes. */ - module Nodes { - /** - * A node for a control flow element, that is, an expression or a statement. - * - * Each control flow element maps to zero or more `ElementNode`s: zero when - * the element is in unreachable (dead) code, and multiple when there are - * different splits for the element. - */ - class ElementNode extends Node instanceof Impl::AstCfgNode { - /** Gets a comma-separated list of strings for each split in this node, if any. */ - final string getSplitsString() { result = super.getSplitsString() } - - /** Gets a split for this control flow node, if any. */ - final Split getASplit() { result = super.getASplit() } - } - - /** A control-flow node for an expression. */ - class ExprNode extends ElementNode { - Expr e; - - ExprNode() { e = unique(Expr e_ | e_ = this.asExpr() | e_) } - - /** Gets the expression that this control-flow node belongs to. */ - Expr getExpr() { result = e } - - /** Gets the value of this expression node, if any. */ - string getValue() { result = e.getValue() } - - /** Gets the type of this expression node. */ - Type getType() { result = e.getType() } - } - - class Split = Splitting::Split; - } - class BasicBlock = BBs::BasicBlock; /** Provides different types of basic blocks. */ @@ -308,3 +272,42 @@ module ControlFlow { class ConditionBlock = BBs::ConditionBlock; } } + +/** Provides different types of control flow nodes. */ +module ControlFlowNodes { + private import internal.ControlFlowGraphImpl as Impl + private import internal.Splitting as Splitting + + /** + * A node for a control flow element, that is, an expression or a statement. + * + * Each control flow element maps to zero or more `ElementNode`s: zero when + * the element is in unreachable (dead) code, and multiple when there are + * different splits for the element. + */ + class ElementNode extends ControlFlowNode instanceof Impl::AstCfgNode { + /** Gets a comma-separated list of strings for each split in this node, if any. */ + final string getSplitsString() { result = super.getSplitsString() } + + /** Gets a split for this control flow node, if any. */ + final Split getASplit() { result = super.getASplit() } + } + + /** A control-flow node for an expression. */ + class ExprNode extends ElementNode { + Expr e; + + ExprNode() { e = unique(Expr e_ | e_ = this.asExpr() | e_) } + + /** Gets the expression that this control-flow node belongs to. */ + Expr getExpr() { result = e } + + /** Gets the value of this expression node, if any. */ + string getValue() { result = e.getValue() } + + /** Gets the type of this expression node. */ + Type getType() { result = e.getType() } + } + + class Split = Splitting::Split; +} diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 867827ea432..8d2b37dd78b 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -322,7 +322,7 @@ class Guard extends Guards::Guard { * In case `cfn` or `sub` access an SSA variable in their left-most qualifier, then * so must the other (accessing the same SSA variable). */ - predicate controlsNode(ControlFlow::Nodes::ElementNode cfn, AccessOrCallExpr sub, GuardValue v) { + predicate controlsNode(ControlFlowNodes::ElementNode cfn, AccessOrCallExpr sub, GuardValue v) { isGuardedByNode(cfn, this, sub, v) } @@ -332,7 +332,7 @@ class Guard extends Guards::Guard { * Note: This predicate is inlined. */ pragma[inline] - predicate controlsNode(ControlFlow::Nodes::ElementNode cfn, GuardValue v) { + predicate controlsNode(ControlFlowNodes::ElementNode cfn, GuardValue v) { guardControls(this, cfn.getBasicBlock(), v) } @@ -729,7 +729,7 @@ class GuardedExpr extends AccessOrCallExpr { * In the example above, the node for `x.ToString()` is null-guarded in the * split `b == true`, but not in the split `b == false`. */ -class GuardedControlFlowNode extends ControlFlow::Nodes::ElementNode { +class GuardedControlFlowNode extends ControlFlowNodes::ElementNode { private Guard g; private AccessOrCallExpr sub0; private GuardValue v0; @@ -785,7 +785,7 @@ class GuardedDataFlowNode extends DataFlow::ExprNode { private GuardValue v0; GuardedDataFlowNode() { - exists(ControlFlow::Nodes::ElementNode cfn | exists(this.getExprAtNode(cfn)) | + exists(ControlFlowNodes::ElementNode cfn | exists(this.getExprAtNode(cfn)) | g.controlsNode(cfn, sub0, v0) ) } @@ -1179,7 +1179,7 @@ module Internal { cached predicate isGuardedByNode( - ControlFlow::Nodes::ElementNode guarded, Guard g, AccessOrCallExpr sub, GuardValue v + ControlFlowNodes::ElementNode guarded, Guard g, AccessOrCallExpr sub, GuardValue v ) { nodeIsGuardedBySameSubExpr(guarded, _, _, g, sub, v) and forall(ControlFlowNode subCfn, Ssa::Definition def | diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index ed6d54e3a67..a67e96ee6d1 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -486,7 +486,7 @@ module Ssa { * `M2` via the call on line 6. */ deprecated final predicate isCapturedVariableDefinitionFlowIn( - ImplicitEntryDefinition def, ControlFlow::Nodes::ElementNode c, boolean additionalCalls + ImplicitEntryDefinition def, ControlFlowNodes::ElementNode c, boolean additionalCalls ) { none() } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll index f89e42744f6..e7d3590e0fd 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll @@ -34,13 +34,13 @@ predicate strictlyNegativeExpr(Expr e) { } /** Holds if `e` can be positive and cannot be negative. */ -predicate positive(ControlFlow::Nodes::ExprNode e) { Common::positive(e) } +predicate positive(ControlFlowNodes::ExprNode e) { Common::positive(e) } /** Holds if `e` can be negative and cannot be positive. */ -predicate negative(ControlFlow::Nodes::ExprNode e) { Common::negative(e) } +predicate negative(ControlFlowNodes::ExprNode e) { Common::negative(e) } /** Holds if `e` is strictly positive. */ -predicate strictlyPositive(ControlFlow::Nodes::ExprNode e) { Common::strictlyPositive(e) } +predicate strictlyPositive(ControlFlowNodes::ExprNode e) { Common::strictlyPositive(e) } /** Holds if `e` is strictly negative. */ -predicate strictlyNegative(ControlFlow::Nodes::ExprNode e) { Common::strictlyNegative(e) } +predicate strictlyNegative(ControlFlowNodes::ExprNode e) { Common::strictlyNegative(e) } 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 2e8b3094788..e2327189577 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -73,11 +73,11 @@ private module Cached { cached newtype TDataFlowCall = - TNonDelegateCall(ControlFlow::Nodes::ElementNode cfn, DispatchCall dc) { + TNonDelegateCall(ControlFlowNodes::ElementNode cfn, DispatchCall dc) { DataFlowImplCommon::forceCachingInSameStage() and cfn.asExpr() = dc.getCall() } or - TExplicitDelegateLikeCall(ControlFlow::Nodes::ElementNode cfn, DelegateLikeCall dc) { + TExplicitDelegateLikeCall(ControlFlowNodes::ElementNode cfn, DelegateLikeCall dc) { cfn.asExpr() = dc } or TSummaryCall(FlowSummary::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver) { @@ -210,7 +210,7 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[nomagic] - private ControlFlow::Nodes::ElementNode getAMultiBodyEntryNode(ControlFlow::BasicBlock bb, int i) { + private ControlFlowNodes::ElementNode getAMultiBodyEntryNode(ControlFlow::BasicBlock bb, int i) { this.isMultiBodied() and exists(ControlFlowElement body, Location l | body = this.asCallable(l).getBody() or @@ -223,14 +223,14 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[nomagic] - private ControlFlow::Nodes::ElementNode getAMultiBodyControlFlowNodePred() { + private ControlFlowNodes::ElementNode getAMultiBodyControlFlowNodePred() { result = this.getAMultiBodyEntryNode(_, _).getAPredecessor() or result = this.getAMultiBodyControlFlowNodePred().getAPredecessor() } pragma[nomagic] - private ControlFlow::Nodes::ElementNode getAMultiBodyControlFlowNodeSuccSameBasicBlock() { + private ControlFlowNodes::ElementNode getAMultiBodyControlFlowNodeSuccSameBasicBlock() { exists(ControlFlow::BasicBlock bb, int i, int j | exists(this.getAMultiBodyEntryNode(bb, i)) and result = bb.getNode(j) and @@ -246,7 +246,7 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[inline] - private ControlFlow::Nodes::ElementNode getAMultiBodyControlFlowNode() { + private ControlFlowNodes::ElementNode getAMultiBodyControlFlowNode() { result = [ this.getAMultiBodyEntryNode(_, _), this.getAMultiBodyControlFlowNodePred(), @@ -307,7 +307,7 @@ abstract class DataFlowCall extends TDataFlowCall { abstract DataFlowCallable getARuntimeTarget(); /** Gets the control flow node where this call happens, if any. */ - abstract ControlFlow::Nodes::ElementNode getControlFlowNode(); + abstract ControlFlowNodes::ElementNode getControlFlowNode(); /** Gets the data flow node corresponding to this call, if any. */ abstract DataFlow::Node getNode(); @@ -363,7 +363,7 @@ private predicate folderDist(Folder f1, Folder f2, int i) = /** A non-delegate C# call relevant for data flow. */ class NonDelegateDataFlowCall extends DataFlowCall, TNonDelegateCall { - private ControlFlow::Nodes::ElementNode cfn; + private ControlFlowNodes::ElementNode cfn; private DispatchCall dc; NonDelegateDataFlowCall() { this = TNonDelegateCall(cfn, dc) } @@ -436,7 +436,7 @@ class NonDelegateDataFlowCall extends DataFlowCall, TNonDelegateCall { not dc.isReflection() } - override ControlFlow::Nodes::ElementNode getControlFlowNode() { result = cfn } + override ControlFlowNodes::ElementNode getControlFlowNode() { result = cfn } override DataFlow::ExprNode getNode() { result.getControlFlowNode() = cfn } @@ -452,7 +452,7 @@ abstract class DelegateDataFlowCall extends DataFlowCall { } /** An explicit delegate or function pointer call relevant for data flow. */ class ExplicitDelegateLikeDataFlowCall extends DelegateDataFlowCall, TExplicitDelegateLikeCall { - private ControlFlow::Nodes::ElementNode cfn; + private ControlFlowNodes::ElementNode cfn; private DelegateLikeCall dc; ExplicitDelegateLikeDataFlowCall() { this = TExplicitDelegateLikeCall(cfn, dc) } @@ -464,7 +464,7 @@ class ExplicitDelegateLikeDataFlowCall extends DelegateDataFlowCall, TExplicitDe none() // handled by the shared library } - override ControlFlow::Nodes::ElementNode getControlFlowNode() { result = cfn } + override ControlFlowNodes::ElementNode getControlFlowNode() { result = cfn } override DataFlow::ExprNode getNode() { result.getControlFlowNode() = cfn } @@ -495,7 +495,7 @@ class SummaryCall extends DelegateDataFlowCall, TSummaryCall { none() // handled by the shared library } - override ControlFlow::Nodes::ElementNode getControlFlowNode() { none() } + override ControlFlowNodes::ElementNode getControlFlowNode() { none() } override DataFlow::Node getNode() { none() } 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 3b24fe5884e..546b546e2b8 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -106,7 +106,7 @@ private class ExprNodeImpl extends ExprNode, NodeImpl { result = this.getExpr().getType() } - override ControlFlow::Nodes::ElementNode getControlFlowNodeImpl() { + override ControlFlowNodes::ElementNode getControlFlowNodeImpl() { forceCachingInSameStage() and this = TExprNode(result) } @@ -127,7 +127,7 @@ private class ExprNodeImpl extends ExprNode, NodeImpl { * as if they were lambdas. */ abstract private class LocalFunctionCreationNode extends NodeImpl, TLocalFunctionCreationNode { - ControlFlow::Nodes::ElementNode cfn; + ControlFlowNodes::ElementNode cfn; LocalFunction function; boolean isPostUpdate; @@ -151,9 +151,9 @@ abstract private class LocalFunctionCreationNode extends NodeImpl, TLocalFunctio override DataFlowType getDataFlowType() { result.asDelegate() = function } - override ControlFlow::Nodes::ElementNode getControlFlowNodeImpl() { none() } + override ControlFlowNodes::ElementNode getControlFlowNodeImpl() { none() } - ControlFlow::Nodes::ElementNode getUnderlyingControlFlowNode() { result = cfn } + ControlFlowNodes::ElementNode getUnderlyingControlFlowNode() { result = cfn } override Location getLocationImpl() { result = cfn.getLocation() } } @@ -263,7 +263,7 @@ module VariableCapture { private import codeql.dataflow.VariableCapture as Shared private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks - private predicate closureFlowStep(ControlFlow::Nodes::ExprNode e1, ControlFlow::Nodes::ExprNode e2) { + private predicate closureFlowStep(ControlFlowNodes::ExprNode e1, ControlFlowNodes::ExprNode e2) { e1.getExpr() = LocalFlow::getALastEvalNode(e2.getExpr()) or exists(Ssa::Definition def, AssignableDefinition adef | @@ -1026,7 +1026,7 @@ private module Cached { cached newtype TNode = - TExprNode(ControlFlow::Nodes::ElementNode cfn) { exists(cfn.asExpr()) } or + TExprNode(ControlFlowNodes::ElementNode cfn) { exists(cfn.asExpr()) } or TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or TAssignableDefinitionNode(AssignableDefinition def, ControlFlowNode cfn) { cfn = def.getExpr().getAControlFlowNode() @@ -1040,20 +1040,20 @@ private module Cached { l = c.getARelevantLocation() } or TDelegateSelfReferenceNode(Callable c) { lambdaCreationExpr(_, c) } or - TLocalFunctionCreationNode(ControlFlow::Nodes::ElementNode cfn, Boolean isPostUpdate) { + TLocalFunctionCreationNode(ControlFlowNodes::ElementNode cfn, Boolean isPostUpdate) { cfn.asStmt() instanceof LocalFunctionStmt } or - TYieldReturnNode(ControlFlow::Nodes::ElementNode cfn) { + TYieldReturnNode(ControlFlowNodes::ElementNode cfn) { any(Callable c).canYieldReturn(cfn.asExpr()) } or - TAsyncReturnNode(ControlFlow::Nodes::ElementNode cfn) { + TAsyncReturnNode(ControlFlowNodes::ElementNode cfn) { any(Callable c | c.(Modifiable).isAsync()).canReturn(cfn.asExpr()) } or - TMallocNode(ControlFlow::Nodes::ElementNode cfn) { cfn.asExpr() instanceof ObjectCreation } or - TObjectInitializerNode(ControlFlow::Nodes::ElementNode cfn) { + TMallocNode(ControlFlowNodes::ElementNode cfn) { cfn.asExpr() instanceof ObjectCreation } or + TObjectInitializerNode(ControlFlowNodes::ElementNode cfn) { cfn.asExpr().(ObjectCreation).hasInitializer() } or - TExprPostUpdateNode(ControlFlow::Nodes::ExprNode cfn) { + TExprPostUpdateNode(ControlFlowNodes::ExprNode cfn) { ( cfn.getExpr() instanceof Argument or @@ -1510,7 +1510,7 @@ private module ArgumentNodes { * the constructor has run. */ class MallocNode extends ArgumentNodeImpl, NodeImpl, TMallocNode { - private ControlFlow::Nodes::ElementNode cfn; + private ControlFlowNodes::ElementNode cfn; MallocNode() { this = TMallocNode(cfn) } @@ -1641,7 +1641,7 @@ private module ReturnNodes { * to `yield return e [e]`. */ class YieldReturnNode extends ReturnNode, NodeImpl, TYieldReturnNode { - private ControlFlow::Nodes::ElementNode cfn; + private ControlFlowNodes::ElementNode cfn; private YieldReturnStmt yrs; YieldReturnNode() { this = TYieldReturnNode(cfn) and yrs.getExpr().getAControlFlowNode() = cfn } @@ -1665,7 +1665,7 @@ private module ReturnNodes { * A synthesized `return` node for returned expressions inside `async` methods. */ class AsyncReturnNode extends ReturnNode, NodeImpl, TAsyncReturnNode { - private ControlFlow::Nodes::ElementNode cfn; + private ControlFlowNodes::ElementNode cfn; private Expr expr; AsyncReturnNode() { this = TAsyncReturnNode(cfn) and expr = cfn.asExpr() } @@ -1842,7 +1842,7 @@ abstract private class InstanceParameterAccessNode extends NodeImpl, TInstancePa override Type getTypeImpl() { result = cfn.getEnclosingCallable().getDeclaringType() } - override ControlFlow::Nodes::ElementNode getControlFlowNodeImpl() { none() } + override ControlFlowNodes::ElementNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { result = cfn.getLocation() } @@ -1891,7 +1891,7 @@ abstract private class PrimaryConstructorThisAccessNode extends NodeImpl, override Type getTypeImpl() { result = p.getCallable().getDeclaringType() } - override ControlFlow::Nodes::ElementNode getControlFlowNodeImpl() { none() } + override ControlFlowNodes::ElementNode getControlFlowNodeImpl() { none() } override Location getLocationImpl() { NearestLocation::nearestLocation(p, @@ -2562,7 +2562,7 @@ module PostUpdateNodes { ObjectCreationNode() { this = TExprNode(oc.getAControlFlowNode()) } override Node getPreUpdateSourceNode() { - exists(ControlFlow::Nodes::ElementNode cfn | this = TExprNode(cfn) | + exists(ControlFlowNodes::ElementNode cfn | this = TExprNode(cfn) | result = TObjectInitializerNode(cfn) or not oc.hasInitializer() and @@ -2582,7 +2582,7 @@ module PostUpdateNodes { TObjectInitializerNode { private ObjectCreation oc; - private ControlFlow::Nodes::ElementNode cfn; + private ControlFlowNodes::ElementNode cfn; ObjectInitializerNode() { this = TObjectInitializerNode(cfn) and @@ -2613,7 +2613,7 @@ module PostUpdateNodes { override Type getTypeImpl() { result = oc.getType() } - override ControlFlow::Nodes::ElementNode getControlFlowNodeImpl() { result = cfn } + override ControlFlowNodes::ElementNode getControlFlowNodeImpl() { result = cfn } override Location getLocationImpl() { result = cfn.getLocation() } @@ -2621,7 +2621,7 @@ module PostUpdateNodes { } class ExprPostUpdateNode extends SourcePostUpdateNode, NodeImpl, TExprPostUpdateNode { - private ControlFlow::Nodes::ElementNode cfn; + private ControlFlowNodes::ElementNode cfn; ExprPostUpdateNode() { this = TExprPostUpdateNode(cfn) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index 69997397cdf..5c49809ed40 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -17,7 +17,7 @@ class Node extends TNode { * Gets the expression corresponding to this node, at control flow node `cfn`, * if any. */ - Expr asExprAtNode(ControlFlow::Nodes::ElementNode cfn) { + Expr asExprAtNode(ControlFlowNodes::ElementNode cfn) { result = this.(ExprNode).getExprAtNode(cfn) } @@ -81,7 +81,7 @@ class ExprNode extends Node, TExprNode { * Gets the expression corresponding to this node, at control flow node `cfn`, * if any. */ - Expr getExprAtNode(ControlFlow::Nodes::ElementNode cfn) { + Expr getExprAtNode(ControlFlowNodes::ElementNode cfn) { this = TExprNode(cfn) and result = cfn.asExpr() } 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 fc79aa40152..e350aabb534 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -1024,7 +1024,7 @@ import Cached private string getSplitString(Definition def) { exists(ControlFlow::BasicBlock bb, int i, ControlFlowNode cfn | def.definesAt(_, bb, i) and - result = cfn.(ControlFlow::Nodes::ElementNode).getSplitsString() + result = cfn.(ControlFlowNodes::ElementNode).getSplitsString() | cfn = bb.getNode(i) or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/BoundSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/BoundSpecific.qll index 3885c11afd1..03742268430 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/BoundSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/BoundSpecific.qll @@ -10,7 +10,7 @@ private import semmle.code.csharp.dataflow.internal.rangeanalysis.SsaUtils as SU class SsaVariable = SU::SsaVariable; -class Expr = CS::ControlFlow::Nodes::ExprNode; +class Expr = CS::ControlFlowNodes::ExprNode; class Location = CS::Location; diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll index e3f5deb9898..602f9f0022d 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll @@ -7,7 +7,7 @@ private import Ssa private import SsaUtils private import RangeUtils -private class ExprNode = ControlFlow::Nodes::ExprNode; +private class ExprNode = ControlFlowNodes::ExprNode; /** * Holds if `pa` is an access to the `Length` property of an array. diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll index ca0aa83f29f..f3942bb8f40 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll @@ -12,7 +12,7 @@ module Private { class SsaPhiNode = CS::Ssa::PhiNode; - class Expr = CS::ControlFlow::Nodes::ExprNode; + class Expr = CS::ControlFlowNodes::ExprNode; class Guard = RU::Guard; diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll index b87d31985ca..fb5cbdbaebb 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll @@ -9,7 +9,7 @@ private module Impl { private import SsaReadPositionCommon private import semmle.code.csharp.controlflow.Guards as G - private class ExprNode = ControlFlow::Nodes::ExprNode; + private class ExprNode = ControlFlowNodes::ExprNode; /** Holds if `parent` having child `child` implies `parentNode` having child `childNode`. */ predicate hasChild(Expr parent, Expr child, ExprNode parentNode, ExprNode childNode) { @@ -160,7 +160,7 @@ import Impl module ExprNode { private import csharp as CS - private class ExprNode = CS::ControlFlow::Nodes::ExprNode; + private class ExprNode = CS::ControlFlowNodes::ExprNode; private import Sign diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll index f64eceda134..38d1b250618 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll @@ -33,7 +33,7 @@ module Private { class Type = CS::Type; - class Expr = CS::ControlFlow::Nodes::ExprNode; + class Expr = CS::ControlFlowNodes::ExprNode; class VariableUpdate = CS::Ssa::ExplicitDefinition; @@ -63,7 +63,7 @@ private module Impl { private import SsaReadPositionCommon private import semmle.code.csharp.commons.ComparisonTest - private class ExprNode = ControlFlow::Nodes::ExprNode; + private class ExprNode = ControlFlowNodes::ExprNode; /** Gets the character value of expression `e`. */ string getCharValue(ExprNode e) { result = e.getValue() and e.getType() instanceof CharType } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll index 48f90bd1981..d7defb8e28c 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll @@ -30,9 +30,9 @@ private int getId(PhiInputEdgeBlock bb) { } private string getSplitString(PhiInputEdgeBlock bb) { - result = bb.getFirstNode().(ControlFlow::Nodes::ElementNode).getSplitsString() + result = bb.getFirstNode().(ControlFlowNodes::ElementNode).getSplitsString() or - not exists(bb.getFirstNode().(ControlFlow::Nodes::ElementNode).getSplitsString()) and + not exists(bb.getFirstNode().(ControlFlowNodes::ElementNode).getSplitsString()) and result = "" } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll index cf4b44239e9..55267fad17c 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll @@ -7,7 +7,7 @@ private import Ssa private import RangeUtils private import ConstantUtils -private class ExprNode = ControlFlow::Nodes::ExprNode; +private class ExprNode = ControlFlowNodes::ExprNode; /** An SSA variable. */ class SsaVariable extends Definition { diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql index fe8c714271c..6bea23905ea 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql @@ -3,7 +3,6 @@ import ControlFlow import Common import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as Impl import semmle.code.csharp.controlflow.internal.Splitting as Splitting -import Nodes query predicate entryPoint(Callable c, SourceControlFlowElement cfn) { c.getEntryPoint().getASuccessor() = cfn.getControlFlowNode() diff --git a/csharp/ql/test/library-tests/csharp11/signAnalysis.ql b/csharp/ql/test/library-tests/csharp11/signAnalysis.ql index 2aeb57e29fb..97471fec351 100644 --- a/csharp/ql/test/library-tests/csharp11/signAnalysis.ql +++ b/csharp/ql/test/library-tests/csharp11/signAnalysis.ql @@ -1,7 +1,7 @@ import csharp import semmle.code.csharp.dataflow.internal.rangeanalysis.SignAnalysisCommon as Common -from ControlFlow::Nodes::ExprNode e, Expr expr +from ControlFlowNodes::ExprNode e, Expr expr where e.getExpr() = expr and expr.getFile().getStem() = "SignAnalysis" and diff --git a/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.ql b/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.ql index 02ffbc535ce..7a2dff9c92e 100644 --- a/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.ql +++ b/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.ql @@ -3,7 +3,7 @@ import semmle.code.csharp.dataflow.internal.rangeanalysis.RangeUtils import semmle.code.csharp.dataflow.ModulusAnalysis import semmle.code.csharp.dataflow.Bound -from ControlFlow::Nodes::ExprNode e, Bound b, int delta, int mod +from ControlFlowNodes::ExprNode e, Bound b, int delta, int mod where not e.getExpr().fromLibrary() and exprModulus(e, b, delta, mod) diff --git a/csharp/ql/test/library-tests/dataflow/signanalysis/MissingSign.ql b/csharp/ql/test/library-tests/dataflow/signanalysis/MissingSign.ql index 70f9af36494..b78bc4c784a 100644 --- a/csharp/ql/test/library-tests/dataflow/signanalysis/MissingSign.ql +++ b/csharp/ql/test/library-tests/dataflow/signanalysis/MissingSign.ql @@ -1,7 +1,7 @@ import csharp import semmle.code.csharp.dataflow.internal.rangeanalysis.SignAnalysisCommon -from ControlFlow::Nodes::ExprNode e +from ControlFlowNodes::ExprNode e where not exists(exprSign(e)) and not e.getExpr() instanceof TypeAccess and diff --git a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.ql b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.ql index 650d0f6bed4..4bdfd5082a8 100644 --- a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.ql +++ b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.ql @@ -1,7 +1,7 @@ import csharp import semmle.code.csharp.dataflow.SignAnalysis -string getASignString(ControlFlow::Nodes::ExprNode e) { +string getASignString(ControlFlowNodes::ExprNode e) { positive(e) and not strictlyPositive(e) and result = "positive" @@ -17,6 +17,6 @@ string getASignString(ControlFlow::Nodes::ExprNode e) { result = "strictlyNegative" } -from ControlFlow::Nodes::ExprNode e +from ControlFlowNodes::ExprNode e where not e.getExpr().fromLibrary() select e, strictconcat(string s | s = getASignString(e) | s, " ") From 9cf9a36d0da67c451109850a58c81d1d67834a76 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 18 Mar 2026 17:01:01 +0100 Subject: [PATCH 058/208] C#: Rename ControlFlow::BasicBlock to BasicBlock. --- .../ql/lib/semmle/code/csharp/Assignable.qll | 16 ++-- .../csharp/controlflow/ControlFlowGraph.qll | 2 + .../controlflow/ControlFlowReachability.qll | 4 +- .../semmle/code/csharp/controlflow/Guards.qll | 2 +- .../lib/semmle/code/csharp/dataflow/SSA.qll | 14 ++-- .../code/csharp/dataflow/internal/BaseSSA.qll | 16 ++-- .../dataflow/internal/DataFlowDispatch.qll | 6 +- .../dataflow/internal/DataFlowPrivate.qll | 4 +- .../code/csharp/dataflow/internal/SsaImpl.qll | 75 ++++++++----------- .../rangeanalysis/ModulusAnalysisSpecific.qll | 2 +- .../internal/rangeanalysis/RangeUtils.qll | 2 +- .../rangeanalysis/SsaReadPositionSpecific.qll | 14 ++-- .../Control-Flow/ConstantCondition.ql | 2 +- .../controlflow/graph/Common.qll | 2 +- .../dataflow/defuse/useUseEquivalence.ql | 5 +- .../dataflow/ssa-large/countssa.ql | 3 +- .../library-tests/dataflow/ssa/SSAPhiRead.ql | 2 +- 17 files changed, 72 insertions(+), 99 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/Assignable.qll b/csharp/ql/lib/semmle/code/csharp/Assignable.qll index f1a7d2cebdc..874e657cf08 100644 --- a/csharp/ql/lib/semmle/code/csharp/Assignable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Assignable.qll @@ -419,9 +419,7 @@ class AssignableDefinition extends TAssignableDefinition { * the definitions of `x` and `y` in `M(out x, out y)` and `(x, y) = (0, 1)` * relate to the same call to `M` and assignment node, respectively. */ - deprecated ControlFlowNode getAControlFlowNode() { - result = this.getExpr().getAControlFlowNode() - } + deprecated ControlFlowNode getAControlFlowNode() { result = this.getExpr().getAControlFlowNode() } /** * Gets the underlying expression that updates the targeted assignable when @@ -572,9 +570,7 @@ module AssignableDefinitions { } /** Holds if a node in basic block `bb` assigns to `ref` parameter `p` via definition `def`. */ - private predicate basicBlockRefParamDef( - ControlFlow::BasicBlock bb, Parameter p, AssignableDefinition def - ) { + private predicate basicBlockRefParamDef(BasicBlock bb, Parameter p, AssignableDefinition def) { def = any(RefArg arg).getAnAnalyzableRefDef(p) and bb.getANode() = def.getExpr().getAControlFlowNode() } @@ -585,7 +581,7 @@ module AssignableDefinitions { * any assignments to `p`. */ pragma[nomagic] - private predicate parameterReachesWithoutDef(Parameter p, ControlFlow::BasicBlock bb) { + private predicate parameterReachesWithoutDef(Parameter p, BasicBlock bb) { forall(AssignableDefinition def | basicBlockRefParamDef(bb, p, def) | isUncertainRefCall(def.getTargetAccess()) ) and @@ -593,9 +589,7 @@ module AssignableDefinitions { any(RefArg arg).isAnalyzable(p) and p.getCallable().getEntryPoint() = bb.getFirstNode() or - exists(ControlFlow::BasicBlock mid | parameterReachesWithoutDef(p, mid) | - bb = mid.getASuccessor() - ) + exists(BasicBlock mid | parameterReachesWithoutDef(p, mid) | bb = mid.getASuccessor()) ) } @@ -607,7 +601,7 @@ module AssignableDefinitions { cached predicate isUncertainRefCall(RefArg arg) { arg.isPotentialAssignment() and - exists(ControlFlow::BasicBlock bb, Parameter p | arg.isAnalyzable(p) | + exists(BasicBlock bb, Parameter p | arg.isAnalyzable(p) | parameterReachesWithoutDef(p, bb) and bb.getLastNode() = p.getCallable().getExitPoint() ) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index b322d612e39..0c357f75559 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -2,6 +2,8 @@ import csharp class ControlFlowNode = ControlFlow::Node; +class BasicBlock = ControlFlow::BasicBlock; + /** * Provides classes representing the control flow graph within callables. */ diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll index a32abfe6d68..ecacbf2cc4d 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll @@ -8,9 +8,7 @@ private import semmle.code.csharp.controlflow.BasicBlocks private import semmle.code.csharp.controlflow.Guards as Guards private import semmle.code.csharp.ExprOrStmtParent -private module ControlFlowInput implements - InputSig -{ +private module ControlFlowInput implements InputSig { private import csharp as CS AstNode getEnclosingAstNode(ControlFlowNode node) { diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 8d2b37dd78b..7add823f938 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -16,7 +16,7 @@ private import semmle.code.csharp.frameworks.system.collections.Generic private import codeql.controlflow.Guards as SharedGuards private module GuardsInput implements - SharedGuards::InputSig + SharedGuards::InputSig { private import csharp as CS diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index a67e96ee6d1..5067a383a59 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -165,7 +165,7 @@ module Ssa { class Definition extends SsaImpl::Definition { /** Gets the control flow node of this SSA definition. */ final ControlFlowNode getControlFlowNode() { - exists(ControlFlow::BasicBlock bb, int i | this.definesAt(_, bb, i) | + exists(BasicBlock bb, int i | this.definesAt(_, bb, i) | result = bb.getNode(0.maximum(i)) ) } @@ -176,7 +176,7 @@ module Ssa { * point it is still live, without crossing another SSA definition of the * same source variable. */ - final predicate isLiveAtEndOfBlock(ControlFlow::BasicBlock bb) { + final predicate isLiveAtEndOfBlock(BasicBlock bb) { SsaImpl::isLiveAtEndOfBlock(this, bb) } @@ -538,7 +538,7 @@ module Ssa { */ class ImplicitDefinition extends Definition, SsaImpl::WriteDefinition { ImplicitDefinition() { - exists(ControlFlow::BasicBlock bb, SourceVariable v, int i | this.definesAt(v, bb, i) | + exists(BasicBlock bb, SourceVariable v, int i | this.definesAt(v, bb, i) | SsaImpl::implicitEntryDefinition(bb, v) and i = -1 or @@ -556,7 +556,7 @@ module Ssa { */ class ImplicitEntryDefinition extends ImplicitDefinition { ImplicitEntryDefinition() { - exists(ControlFlow::BasicBlock bb, SourceVariable v | + exists(BasicBlock bb, SourceVariable v | this.definesAt(v, bb, -1) and SsaImpl::implicitEntryDefinition(bb, v) ) @@ -636,7 +636,7 @@ module Ssa { private Call c; ImplicitCallDefinition() { - exists(ControlFlow::BasicBlock bb, SourceVariable v, int i | + exists(BasicBlock bb, SourceVariable v, int i | this.definesAt(v, bb, i) and SsaImpl::updatesNamedFieldOrProp(bb, i, c, v, _) ) @@ -674,7 +674,7 @@ module Ssa { ImplicitQualifierDefinition() { exists( - ControlFlow::BasicBlock bb, int i, SourceVariables::QualifiedFieldOrPropSourceVariable v + BasicBlock bb, int i, SourceVariables::QualifiedFieldOrPropSourceVariable v | this.definesAt(v, bb, i) | @@ -725,7 +725,7 @@ module Ssa { final Definition getAnInput() { this.hasInputFromBlock(result, _) } /** Holds if `inp` is an input to this phi node along the edge originating in `bb`. */ - predicate hasInputFromBlock(Definition inp, ControlFlow::BasicBlock bb) { + predicate hasInputFromBlock(Definition inp, BasicBlock bb) { inp = SsaImpl::phiHasInputFromBlock(this, bb) } 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 988eb8f88c4..1bec6813808 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -13,7 +13,7 @@ module BaseSsa { * targeting local scope variable `v`. */ private predicate definitionAt( - AssignableDefinition def, ControlFlow::BasicBlock bb, int i, SsaInput::SourceVariable v + AssignableDefinition def, BasicBlock bb, int i, SsaInput::SourceVariable v ) { bb.getNode(i) = def.getExpr().getAControlFlowNode() and v = def.getTarget() and @@ -82,10 +82,10 @@ module BaseSsa { } } - private module SsaInput implements SsaImplCommon::InputSig { + private module SsaInput implements SsaImplCommon::InputSig { class SourceVariable = SimpleLocalScopeVariable; - predicate variableWrite(ControlFlow::BasicBlock bb, int i, SourceVariable v, boolean certain) { + predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) { exists(AssignableDefinition def | definitionAt(def, bb, i, v) and if def.isCertain() then certain = true else certain = false @@ -96,7 +96,7 @@ module BaseSsa { certain = true } - predicate variableRead(ControlFlow::BasicBlock bb, int i, SourceVariable v, boolean certain) { + predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain) { exists(AssignableRead read | read.getAControlFlowNode() = bb.getNode(i) and read.getTarget() = v and @@ -109,21 +109,21 @@ module BaseSsa { class Definition extends SsaImpl::Definition { final AssignableRead getARead() { - exists(ControlFlow::BasicBlock bb, int i | + exists(BasicBlock bb, int i | SsaImpl::ssaDefReachesRead(_, this, bb, i) and result.getAControlFlowNode() = bb.getNode(i) ) } final AssignableDefinition getDefinition() { - exists(ControlFlow::BasicBlock bb, int i, SsaInput::SourceVariable v | + exists(BasicBlock bb, int i, SsaInput::SourceVariable v | this.definesAt(v, bb, i) and definitionAt(result, bb, i, v) ) } final predicate isImplicitEntryDefinition(SsaInput::SourceVariable v) { - exists(ControlFlow::BasicBlock bb | + exists(BasicBlock bb | this.definesAt(v, bb, -1) and implicitEntryDef(_, bb, v) ) @@ -142,7 +142,7 @@ module BaseSsa { override Location getLocation() { result = this.getDefinition().getLocation() or - exists(Callable c, ControlFlow::BasicBlock bb, SsaInput::SourceVariable v | + exists(Callable c, BasicBlock bb, SsaInput::SourceVariable v | this.definesAt(v, bb, -1) and implicitEntryDef(c, bb, v) and result = c.getLocation() diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll index e2327189577..367d5974a26 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -210,7 +210,7 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[nomagic] - private ControlFlowNodes::ElementNode getAMultiBodyEntryNode(ControlFlow::BasicBlock bb, int i) { + private ControlFlowNodes::ElementNode getAMultiBodyEntryNode(BasicBlock bb, int i) { this.isMultiBodied() and exists(ControlFlowElement body, Location l | body = this.asCallable(l).getBody() or @@ -231,7 +231,7 @@ class DataFlowCallable extends TDataFlowCallable { pragma[nomagic] private ControlFlowNodes::ElementNode getAMultiBodyControlFlowNodeSuccSameBasicBlock() { - exists(ControlFlow::BasicBlock bb, int i, int j | + exists(BasicBlock bb, int i, int j | exists(this.getAMultiBodyEntryNode(bb, i)) and result = bb.getNode(j) and j > i @@ -239,7 +239,7 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[nomagic] - private ControlFlow::BasicBlock getAMultiBodyBasicBlockSucc() { + private BasicBlock getAMultiBodyBasicBlockSucc() { result = this.getAMultiBodyEntryNode(_, _).getBasicBlock().getASuccessor() or result = this.getAMultiBodyBasicBlockSucc().getASuccessor() 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 546b546e2b8..6611ced6cc8 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -166,8 +166,6 @@ private class LocalFunctionCreationPreNode extends LocalFunctionCreationNode { /** Calculation of the relative order in which `this` references are read. */ private module ThisFlow { - private class BasicBlock = ControlFlow::BasicBlock; - /** Holds if `e` is a `this` access. */ predicate thisAccessExpr(Expr e) { e instanceof ThisAccess or e instanceof BaseAccess } @@ -2363,7 +2361,7 @@ predicate expectsContent(Node n, ContentSet c) { n.asExpr() instanceof SpreadElementExpr and c.isElement() } -class NodeRegion instanceof ControlFlow::BasicBlock { +class NodeRegion instanceof BasicBlock { string toString() { result = "NodeRegion" } predicate contains(Node n) { this = n.getControlFlowNode().getBasicBlock() } 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 e350aabb534..0ca5bec31fe 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -9,7 +9,7 @@ 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 { +private module SsaInput implements SsaImplCommon::InputSig { class SourceVariable = Ssa::SourceVariable; /** @@ -18,7 +18,7 @@ private module SsaInput implements SsaImplCommon::InputSig { +module ConstCondInput implements ConstCond::InputSig { class SsaDefinition = Ssa::Definition; class GuardValue = Guards::GuardValue; diff --git a/csharp/ql/test/library-tests/controlflow/graph/Common.qll b/csharp/ql/test/library-tests/controlflow/graph/Common.qll index fdb9da4ca76..0df87ac4670 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Common.qll +++ b/csharp/ql/test/library-tests/controlflow/graph/Common.qll @@ -17,7 +17,7 @@ class SourceControlFlowNode extends ControlFlowNode { } } -class SourceBasicBlock extends ControlFlow::BasicBlock { +class SourceBasicBlock extends BasicBlock { SourceBasicBlock() { not this.getLocation().getFile() instanceof StubFile and not this.getLocation().getFile().fromLibrary() diff --git a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql index b071b33164e..ced1bccdbb2 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql @@ -32,10 +32,7 @@ private TLocalScopeVariableReadOrSsaDef getANextReadOrDef(TLocalScopeVariableRea result = TLocalScopeVariableRead(read.getANextRead()) or not exists(read.getANextRead()) and - exists( - Ssa::Definition ssaDef, Ssa::PhiNode phi, ControlFlowNode cfn, ControlFlow::BasicBlock bb, - int i - | + exists(Ssa::Definition ssaDef, Ssa::PhiNode phi, ControlFlowNode cfn, BasicBlock bb, int i | ssaDef.getARead() = read | phi.getAnInput() = ssaDef and diff --git a/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.ql b/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.ql index bb10b7c9ffa..94218ca6c7e 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.ql +++ b/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.ql @@ -3,6 +3,5 @@ import csharp from int uses, int live where uses = strictcount(Ssa::ExplicitDefinition ssa, AssignableRead read | read = ssa.getARead()) and - live = - strictcount(Ssa::ExplicitDefinition ssa, ControlFlow::BasicBlock bb | ssa.isLiveAtEndOfBlock(bb)) + live = strictcount(Ssa::ExplicitDefinition ssa, BasicBlock bb | ssa.isLiveAtEndOfBlock(bb)) select uses, live diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql index 2c4d1f319d4..28cdb3a5af2 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql +++ b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql @@ -7,7 +7,7 @@ query predicate phiReadNode(RefTest::Ref phi, Ssa::SourceVariable v) { } query predicate phiReadNodeFirstRead(RefTest::Ref phi, Ssa::SourceVariable v, ControlFlowNode read) { - exists(RefTest::Ref r, ControlFlow::BasicBlock bb, int i | + exists(RefTest::Ref r, BasicBlock bb, int i | phi.isPhiRead() and RefTest::adjacentRefRead(phi, r) and r.accessAt(bb, i, v) and From ff978d1a8cf75df365c2bf79160ef83a3a75fd96 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 9 Mar 2026 14:04:21 +0100 Subject: [PATCH 059/208] C#: Replace CFG. --- .../src/ModifiedFnvFunctionDetection.ql | 4 +- .../ql/consistency-queries/CfgConsistency.ql | 5 +- .../DataFlowConsistency.ql | 25 - .../VariableCaptureConsistency.ql | 7 - csharp/ql/lib/printCfg.ql | 21 +- csharp/ql/lib/semmle/code/csharp/Caching.qll | 17 - .../code/csharp/controlflow/BasicBlocks.qll | 358 -- .../csharp/controlflow/ControlFlowElement.qll | 43 +- .../csharp/controlflow/ControlFlowGraph.qll | 764 ++- .../controlflow/ControlFlowReachability.qll | 1 - .../semmle/code/csharp/controlflow/Guards.qll | 23 +- .../controlflow/internal/Completion.qll | 786 +-- .../internal/ControlFlowGraphImpl.qll | 1831 ------- .../controlflow/internal/NonReturning.qll | 76 +- .../csharp/controlflow/internal/Splitting.qll | 124 - .../lib/semmle/code/csharp/dataflow/SSA.qll | 43 +- .../code/csharp/dataflow/internal/BaseSSA.qll | 9 +- .../dataflow/internal/DataFlowDispatch.qll | 12 +- .../dataflow/internal/DataFlowPrivate.qll | 50 +- .../code/csharp/dataflow/internal/SsaImpl.qll | 25 +- .../rangeanalysis/ModulusAnalysisSpecific.qll | 1 - .../internal/rangeanalysis/RangeUtils.qll | 4 +- .../rangeanalysis/SsaReadPositionSpecific.qll | 25 +- .../dataflow/ConditionalBypassQuery.qll | 1 - .../Control-Flow/ConstantCondition.ql | 1 - .../Likely Bugs/NestedLoopsSameVariable.ql | 6 +- .../ql/src/Performance/StringBuilderInLoop.ql | 2 +- .../controlflow/graph/Condition.ql | 8 +- .../controlflow/graph/EntryElement.ql | 11 +- .../controlflow/graph/ExitElement.expected | 4540 ----------------- .../controlflow/graph/ExitElement.ql | 8 - .../controlflow/graph/NodeGraph.ql | 2 +- .../library-tests/controlflow/graph/Nodes.ql | 2 - .../csharp8/NullCoalescingControlFlow.ql | 4 +- .../library-tests/csharp8/UsingControlFlow.ql | 4 +- csharp/ql/test/library-tests/obinit/ObInit.ql | 18 +- .../codeql/controlflow/ControlFlowGraph.qll | 12 +- 37 files changed, 639 insertions(+), 8234 deletions(-) delete mode 100644 csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll delete mode 100644 csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll delete mode 100644 csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll delete mode 100644 csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected delete mode 100644 csharp/ql/test/library-tests/controlflow/graph/ExitElement.ql diff --git a/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql b/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql index ca153bfb97d..ed350932bd8 100644 --- a/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql +++ b/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql @@ -13,11 +13,13 @@ import csharp import Solorigate import experimental.code.csharp.Cryptography.NonCryptographicHashes +ControlFlowNode loopExitNode(LoopStmt loop) { result.isAfter(loop) } + from Variable v, Literal l, LoopStmt loop, Expr additional_xor where maybeUsedInFnvFunction(v, _, _, loop) and exists(BitwiseXorOperation xor2 | xor2.getAnOperand() = l and additional_xor = xor2 | - loop.getAControlFlowExitNode().getASuccessor*() = xor2.getAControlFlowNode() and + loopExitNode(loop).getASuccessor*() = xor2.getAControlFlowNode() and xor2.getAnOperand() = v.getAnAccess() ) select l, "This literal is used in an $@ after an FNV-like hash calculation with variable $@.", diff --git a/csharp/ql/consistency-queries/CfgConsistency.ql b/csharp/ql/consistency-queries/CfgConsistency.ql index 4b0d15f8a81..883014fdcf0 100644 --- a/csharp/ql/consistency-queries/CfgConsistency.ql +++ b/csharp/ql/consistency-queries/CfgConsistency.ql @@ -1,5 +1,2 @@ import csharp -import semmle.code.csharp.controlflow.internal.Completion -import ControlFlow -import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl::Consistency -import semmle.code.csharp.controlflow.internal.Splitting +import ControlFlow::Consistency diff --git a/csharp/ql/consistency-queries/DataFlowConsistency.ql b/csharp/ql/consistency-queries/DataFlowConsistency.ql index bfce13dad18..983206aada2 100644 --- a/csharp/ql/consistency-queries/DataFlowConsistency.ql +++ b/csharp/ql/consistency-queries/DataFlowConsistency.ql @@ -1,5 +1,4 @@ import csharp -private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as ControlFlowGraphImpl private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency @@ -7,20 +6,6 @@ private import codeql.dataflow.internal.DataFlowImplConsistency private module Input implements InputSig { private import CsharpDataFlow - private predicate isStaticAssignable(Assignable a) { a.(Modifiable).isStatic() } - - predicate uniqueEnclosingCallableExclude(Node node) { - // TODO: Remove once static initializers are folded into the - // static constructors - isStaticAssignable(ControlFlowGraphImpl::getNodeCfgScope(node.getControlFlowNode())) - } - - predicate uniqueCallEnclosingCallableExclude(DataFlowCall call) { - // TODO: Remove once static initializers are folded into the - // static constructors - isStaticAssignable(ControlFlowGraphImpl::getNodeCfgScope(call.getControlFlowNode())) - } - predicate uniqueNodeLocationExclude(Node n) { // Methods with multiple implementations n instanceof ParameterNode @@ -70,16 +55,6 @@ private module Input implements InputSig { init.getInitializer().getNumberOfChildren() > 1 ) or - exists(ControlFlowNodes::ElementNode cfn, ControlFlowNodes::Split split | - exists(arg.asExprAtNode(cfn)) - | - split = cfn.getASplit() and - not split = call.getControlFlowNode().getASplit() - or - split = call.getControlFlowNode().getASplit() and - not split = cfn.getASplit() - ) - or call.(NonDelegateDataFlowCall).getDispatchCall().isReflection() ) } diff --git a/csharp/ql/consistency-queries/VariableCaptureConsistency.ql b/csharp/ql/consistency-queries/VariableCaptureConsistency.ql index 927741f07bf..869be5aea9f 100644 --- a/csharp/ql/consistency-queries/VariableCaptureConsistency.ql +++ b/csharp/ql/consistency-queries/VariableCaptureConsistency.ql @@ -1,13 +1,6 @@ import csharp import semmle.code.csharp.dataflow.internal.DataFlowPrivate::VariableCapture::Flow::ConsistencyChecks private import semmle.code.csharp.dataflow.internal.DataFlowPrivate::VariableCapture::Flow::ConsistencyChecks as ConsistencyChecks -private import semmle.code.csharp.controlflow.BasicBlocks -private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl - -query predicate uniqueEnclosingCallable(BasicBlock bb, string msg) { - ConsistencyChecks::uniqueEnclosingCallable(bb, msg) and - getNodeCfgScope(bb.getFirstNode()) instanceof Callable -} query predicate consistencyOverview(string msg, int n) { none() } diff --git a/csharp/ql/lib/printCfg.ql b/csharp/ql/lib/printCfg.ql index aa92b119204..c418446b216 100644 --- a/csharp/ql/lib/printCfg.ql +++ b/csharp/ql/lib/printCfg.ql @@ -7,7 +7,7 @@ * @tags ide-contextual-queries/print-cfg */ -private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl +import csharp external string selectedSourceFile(); @@ -21,7 +21,7 @@ external int selectedSourceColumn(); private predicate selectedSourceColumnAlias = selectedSourceColumn/0; -module ViewCfgQueryInput implements ViewCfgQueryInputSig { +module ViewCfgQueryInput implements ControlFlow::ViewCfgQueryInputSig { predicate selectedSourceFile = selectedSourceFileAlias/0; predicate selectedSourceLine = selectedSourceLineAlias/0; @@ -29,7 +29,7 @@ module ViewCfgQueryInput implements ViewCfgQueryInputSig { predicate selectedSourceColumn = selectedSourceColumnAlias/0; predicate cfgScopeSpan( - CfgScope scope, File file, int startLine, int startColumn, int endLine, int endColumn + Callable scope, File file, int startLine, int startColumn, int endLine, int endColumn ) { file = scope.getFile() and scope.getLocation().getStartLine() = startLine and @@ -40,11 +40,20 @@ module ViewCfgQueryInput implements ViewCfgQueryInputSig { | loc = scope.(Callable).getBody().getLocation() or - loc = scope.(Field).getInitializer().getLocation() + loc = any(AssignExpr init | scope.(ObjectInitMethod).initializes(init)).getLocation() or - loc = scope.(Property).getInitializer().getLocation() + exists(AssignableMember a, Constructor ctor | + scope = ctor and + ctor.isStatic() and + a.isStatic() and + a.getDeclaringType() = ctor.getDeclaringType() + | + loc = a.(Field).getInitializer().getLocation() + or + loc = a.(Property).getInitializer().getLocation() + ) ) } } -import ViewCfgQuery +import ControlFlow::ViewCfgQuery diff --git a/csharp/ql/lib/semmle/code/csharp/Caching.qll b/csharp/ql/lib/semmle/code/csharp/Caching.qll index 266526a64f5..134332ee75d 100644 --- a/csharp/ql/lib/semmle/code/csharp/Caching.qll +++ b/csharp/ql/lib/semmle/code/csharp/Caching.qll @@ -7,23 +7,6 @@ private import csharp * in the same stage across different files. */ module Stages { - cached - module ControlFlowStage { - private import semmle.code.csharp.controlflow.internal.Splitting - - cached - predicate forceCachingInSameStage() { any() } - - cached - private predicate forceCachingInSameStageRev() { - exists(Split s) - or - exists(ControlFlowNode n) - or - forceCachingInSameStageRev() - } - } - cached module GuardsStage { private import semmle.code.csharp.controlflow.Guards diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll deleted file mode 100644 index 65937c82e67..00000000000 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll +++ /dev/null @@ -1,358 +0,0 @@ -/** - * Provides classes representing basic blocks. - */ - -import csharp -private import ControlFlow -private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as CfgImpl -private import CfgImpl::BasicBlocks as BasicBlocksImpl -private import codeql.controlflow.BasicBlock as BB - -/** - * A basic block, that is, a maximal straight-line sequence of control flow nodes - * without branches or joins. - */ -final class BasicBlock extends BasicBlocksImpl::BasicBlock { - /** Gets an immediate successor of this basic block of a given type, if any. */ - BasicBlock getASuccessor(ControlFlow::SuccessorType t) { result = super.getASuccessor(t) } - - /** DEPRECATED: Use `getASuccessor` instead. */ - deprecated BasicBlock getASuccessorByType(ControlFlow::SuccessorType t) { - result = this.getASuccessor(t) - } - - /** Gets an immediate predecessor of this basic block of a given type, if any. */ - BasicBlock getAPredecessorByType(ControlFlow::SuccessorType t) { - result = this.getAPredecessor(t) - } - - /** - * Gets an immediate `true` successor, if any. - * - * An immediate `true` successor is a successor that is reached when - * the condition that ends this basic block evaluates to `true`. - * - * Example: - * - * ```csharp - * if (x < 0) - * x = -x; - * ``` - * - * The basic block on line 2 is an immediate `true` successor of the - * basic block on line 1. - */ - BasicBlock getATrueSuccessor() { result.getFirstNode() = this.getLastNode().getATrueSuccessor() } - - /** - * Gets an immediate `false` successor, if any. - * - * An immediate `false` successor is a successor that is reached when - * the condition that ends this basic block evaluates to `false`. - * - * Example: - * - * ```csharp - * if (!(x >= 0)) - * x = -x; - * ``` - * - * The basic block on line 2 is an immediate `false` successor of the - * basic block on line 1. - */ - BasicBlock getAFalseSuccessor() { - result.getFirstNode() = this.getLastNode().getAFalseSuccessor() - } - - BasicBlock getASuccessor() { result = super.getASuccessor() } - - /** Gets the control flow node at a specific (zero-indexed) position in this basic block. */ - ControlFlowNode getNode(int pos) { result = super.getNode(pos) } - - /** Gets a control flow node in this basic block. */ - ControlFlowNode getANode() { result = super.getANode() } - - /** Gets the first control flow node in this basic block. */ - ControlFlowNode getFirstNode() { result = super.getFirstNode() } - - /** Gets the last control flow node in this basic block. */ - ControlFlowNode getLastNode() { result = super.getLastNode() } - - /** Gets the callable that this basic block belongs to. */ - final Callable getCallable() { result = this.getFirstNode().getEnclosingCallable() } - - /** - * Holds if this basic block immediately dominates basic block `bb`. - * - * That is, this basic block is the unique basic block satisfying: - * 1. This basic block strictly dominates `bb` - * 2. There exists no other basic block that is strictly dominated by this - * basic block and which strictly dominates `bb`. - * - * All basic blocks, except entry basic blocks, have a unique immediate - * dominator. - * - * Example: - * - * ```csharp - * int M(string s) { - * if (s == null) - * throw new ArgumentNullException(nameof(s)); - * return s.Length; - * } - * ``` - * - * The basic block starting on line 2 strictly dominates the - * basic block on line 4 (all paths from the entry point of `M` - * to `return s.Length;` must go through the null check). - */ - predicate immediatelyDominates(BasicBlock bb) { super.immediatelyDominates(bb) } - - /** - * Holds if this basic block strictly dominates basic block `bb`. - * - * That is, all paths reaching basic block `bb` from some entry point - * basic block must go through this basic block (which must be different - * from `bb`). - * - * Example: - * - * ```csharp - * int M(string s) { - * if (s == null) - * throw new ArgumentNullException(nameof(s)); - * return s.Length; - * } - * ``` - * - * The basic block starting on line 2 strictly dominates the - * basic block on line 4 (all paths from the entry point of `M` - * to `return s.Length;` must go through the null check). - */ - predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) } - - /** - * Holds if this basic block dominates basic block `bb`. - * - * That is, all paths reaching basic block `bb` from some entry point - * basic block must go through this basic block. - * - * Example: - * - * ```csharp - * int M(string s) { - * if (s == null) - * throw new ArgumentNullException(nameof(s)); - * return s.Length; - * } - * ``` - * - * The basic block starting on line 2 dominates the basic - * block on line 4 (all paths from the entry point of `M` to - * `return s.Length;` must go through the null check). - * - * This predicate is *reflexive*, so for example `if (s == null)` dominates - * itself. - */ - predicate dominates(BasicBlock bb) { - bb = this or - this.strictlyDominates(bb) - } - - /** - * Holds if `df` is in the dominance frontier of this basic block. - * That is, this basic block dominates a predecessor of `df`, but - * does not dominate `df` itself. - * - * Example: - * - * ```csharp - * if (x < 0) { - * x = -x; - * if (x > 10) - * x--; - * } - * Console.Write(x); - * ``` - * - * The basic block on line 6 is in the dominance frontier - * of the basic block starting on line 2 because that block - * dominates the basic block on line 4, which is a predecessor of - * `Console.Write(x);`. Also, the basic block starting on line 2 - * does not dominate the basic block on line 6. - */ - predicate inDominanceFrontier(BasicBlock df) { super.inDominanceFrontier(df) } - - /** - * Gets the basic block that immediately dominates this basic block, if any. - * - * That is, the result is the unique basic block satisfying: - * 1. The result strictly dominates this basic block. - * 2. There exists no other basic block that is strictly dominated by the - * result and which strictly dominates this basic block. - * - * All basic blocks, except entry basic blocks, have a unique immediate - * dominator. - * - * Example: - * - * ```csharp - * int M(string s) { - * if (s == null) - * throw new ArgumentNullException(nameof(s)); - * return s.Length; - * } - * ``` - * - * The basic block starting on line 2 is an immediate dominator of - * the basic block online 4 (all paths from the entry point of `M` - * to `return s.Length;` must go through the null check. - */ - BasicBlock getImmediateDominator() { result = super.getImmediateDominator() } - - /** - * Holds if the edge with successor type `s` out of this basic block is a - * dominating edge for `dominated`. - * - * That is, all paths reaching `dominated` from the entry point basic - * block must go through the `s` edge out of this basic block. - * - * Edge dominance is similar to node dominance except it concerns edges - * instead of nodes: A basic block is dominated by a _basic block_ `bb` if it - * can only be reached through `bb` and dominated by an _edge_ `e` if it can - * only be reached through `e`. - * - * Note that where all basic blocks (except the entry basic block) are - * strictly dominated by at least one basic block, a basic block may not be - * dominated by any edge. If an edge dominates a basic block `bb`, then - * both endpoints of the edge dominates `bb`. The converse is not the case, - * as there may be multiple paths between the endpoints with none of them - * dominating. - */ - predicate edgeDominates(BasicBlock dominated, ControlFlow::SuccessorType s) { - super.edgeDominates(dominated, s) - } - - /** - * Holds if this basic block strictly post-dominates basic block `bb`. - * - * That is, all paths reaching a normal exit point basic block from basic - * block `bb` must go through this basic block (which must be different - * from `bb`). - * - * Example: - * - * ```csharp - * int M(string s) { - * try { - * return s.Length; - * } - * finally { - * Console.WriteLine("M"); - * } - * } - * ``` - * - * The basic block on line 6 strictly post-dominates the basic block on - * line 3 (all paths to the exit point of `M` from `return s.Length;` - * must go through the `WriteLine` call). - */ - predicate strictlyPostDominates(BasicBlock bb) { super.strictlyPostDominates(bb) } - - /** - * Holds if this basic block post-dominates basic block `bb`. - * - * That is, all paths reaching a normal exit point basic block from basic - * block `bb` must go through this basic block. - * - * Example: - * - * ```csharp - * int M(string s) { - * try { - * return s.Length; - * } - * finally { - * Console.WriteLine("M"); - * } - * } - * ``` - * - * The basic block on line 6 post-dominates the basic block on line 3 - * (all paths to the exit point of `M` from `return s.Length;` must go - * through the `WriteLine` call). - * - * This predicate is *reflexive*, so for example `Console.WriteLine("M");` - * post-dominates itself. - */ - predicate postDominates(BasicBlock bb) { super.postDominates(bb) } - - /** - * Holds if this basic block is in a loop in the control flow graph. This - * includes loops created by `goto` statements. This predicate may not hold - * even if this basic block is syntactically inside a `while` loop if the - * necessary back edges are unreachable. - */ - predicate inLoop() { this.getASuccessor+() = this } -} - -/** - * An entry basic block, that is, a basic block whose first node is - * an entry node. - */ -final class EntryBasicBlock extends BasicBlock, BasicBlocksImpl::EntryBasicBlock { } - -/** - * An annotated exit basic block, that is, a basic block that contains an - * annotated exit node. - */ -final class AnnotatedExitBasicBlock extends BasicBlock, BasicBlocksImpl::AnnotatedExitBasicBlock { } - -/** - * An exit basic block, that is, a basic block whose last node is - * an exit node. - */ -final class ExitBasicBlock extends BasicBlock, BasicBlocksImpl::ExitBasicBlock { } - -/** A basic block with more than one predecessor. */ -final class JoinBlock extends BasicBlock, BasicBlocksImpl::JoinBasicBlock { - JoinBlockPredecessor getJoinBlockPredecessor(int i) { result = super.getJoinBlockPredecessor(i) } -} - -/** A basic block that is an immediate predecessor of a join block. */ -final class JoinBlockPredecessor extends BasicBlock, BasicBlocksImpl::JoinPredecessorBasicBlock { } - -/** - * A basic block that terminates in a condition, splitting the subsequent - * control flow. - */ -final class ConditionBlock extends BasicBlock, BasicBlocksImpl::ConditionBasicBlock { - /** DEPRECATED: Use `edgeDominates` instead. */ - deprecated predicate immediatelyControls(BasicBlock succ, ConditionalSuccessor s) { - this.getASuccessor(s) = succ and - BasicBlocksImpl::dominatingEdge(this, succ) - } - - /** DEPRECATED: Use `edgeDominates` instead. */ - deprecated predicate controls(BasicBlock controlled, ConditionalSuccessor s) { - super.edgeDominates(controlled, s) - } -} - -private class ControlFlowNodeAlias = ControlFlowNode; - -private class BasicBlockAlias = BasicBlock; - -private class EntryBasicBlockAlias = EntryBasicBlock; - -module Cfg implements BB::CfgSig { - class ControlFlowNode = ControlFlowNodeAlias; - - class BasicBlock = BasicBlockAlias; - - class EntryBasicBlock = EntryBasicBlockAlias; - - predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { - BasicBlocksImpl::dominatingEdge(bb1, bb2) - } -} diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index 87be3c3c183..a0a578e2388 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -4,9 +4,7 @@ import csharp private import semmle.code.csharp.ExprOrStmtParent private import semmle.code.csharp.commons.Compilation private import ControlFlow -private import ControlFlow::BasicBlocks private import semmle.code.csharp.Caching -private import internal.ControlFlowGraphImpl as Impl private class TControlFlowElementOrCallable = @callable or @control_flow_element; @@ -36,34 +34,15 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele /** * Gets a control flow node for this element. That is, a node in the * control flow graph that corresponds to this element. - * - * Typically, there is exactly one `ControlFlowNode` associated with a - * `ControlFlowElement`, but a `ControlFlowElement` may be split into - * several `ControlFlowNode`s, for example to represent the continuation - * flow in a `try/catch/finally` construction. */ - ControlFlowNodes::ElementNode getAControlFlowNode() { result.getAstNode() = this } + ControlFlowNodes::ElementNode getAControlFlowNode() { result = this.getControlFlowNode() } /** Gets the control flow node for this element. */ - ControlFlowNode getControlFlowNode() { result.getAstNode() = this } + ControlFlowNode getControlFlowNode() { result.injects(this) } /** Gets the basic block in which this element occurs. */ BasicBlock getBasicBlock() { result = this.getAControlFlowNode().getBasicBlock() } - /** - * Gets a first control flow node executed within this element. - */ - ControlFlowNodes::ElementNode getAControlFlowEntryNode() { - result = Impl::getAControlFlowEntryNode(this).(ControlFlowElement).getAControlFlowNode() - } - - /** - * Gets a potential last control flow node executed within this element. - */ - ControlFlowNodes::ElementNode getAControlFlowExitNode() { - result = Impl::getAControlFlowExitNode(this).(ControlFlowElement).getAControlFlowNode() - } - /** * Holds if this element is live, that is this element can be reached * from the entry point of its enclosing callable. @@ -90,22 +69,4 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele this.getAControlFlowNode().getBasicBlock().getASuccessor+().getANode() = result.getAControlFlowNode() } - - /** - * DEPRECATED: Use `Guard` class instead. - * - * Holds if basic block `controlled` is controlled by this control flow element - * with conditional value `s`. That is, `controlled` can only be reached from - * the callable entry point by going via the `s` edge out of *some* basic block - * ending with this element. - * - * `cb` records all of the possible condition blocks for this control flow element - * that a path from the callable entry point to `controlled` may go through. - */ - deprecated predicate controlsBlock( - BasicBlock controlled, ConditionalSuccessor s, ConditionBlock cb - ) { - cb.getLastNode() = this.getAControlFlowNode() and - cb.edgeDominates(controlled, s) - } } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 0c357f75559..4d061ed5952 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -1,305 +1,547 @@ -import csharp - -class ControlFlowNode = ControlFlow::Node; - -class BasicBlock = ControlFlow::BasicBlock; - /** * Provides classes representing the control flow graph within callables. */ -module ControlFlow { - private import semmle.code.csharp.controlflow.BasicBlocks as BBs - import semmle.code.csharp.controlflow.internal.SuccessorType - private import internal.ControlFlowGraphImpl as Impl - private import internal.Splitting as Splitting + +import csharp +private import codeql.controlflow.ControlFlowGraph +private import codeql.controlflow.SuccessorType +private import semmle.code.csharp.commons.Compilation +private import semmle.code.csharp.controlflow.internal.NonReturning as NonReturning +private import semmle.code.csharp.controlflow.internal.Completion as Completion + +private module Cfg0 = Make0; + +private module Cfg1 = Make1; + +private module Cfg2 = Make2; + +private import Cfg0 +private import Cfg1 +private import Cfg2 +import Public + +/** Provides an implementation of the AST signature for C#. */ +private module Ast implements AstSig { + private import csharp as CS + + class AstNode = ControlFlowElementOrCallable; + + private predicate skipControlFlow(AstNode e) { + e instanceof TypeAccess and + not e instanceof TypeAccessPatternExpr + or + not e.getFile().fromSource() + } + + private AstNode getExprChild0(Expr e, int i) { + not e instanceof NameOfExpr and + not e instanceof AnonymousFunctionExpr and + not skipControlFlow(result) and + result = e.getChild(i) + } + + private AstNode getStmtChild0(Stmt s, int i) { + not s instanceof FixedStmt and + not s instanceof UsingBlockStmt and + result = s.getChild(i) + or + s = + any(FixedStmt fs | + result = fs.getVariableDeclExpr(i) + or + result = fs.getBody() and + i = max(int j | exists(fs.getVariableDeclExpr(j))) + 1 + ) + or + s = + any(UsingBlockStmt us | + result = us.getExpr() and + i = 0 + or + result = us.getVariableDeclExpr(i) + or + result = us.getBody() and + i = max([1, count(us.getVariableDeclExpr(_))]) + ) + } + + AstNode getChild(AstNode n, int index) { + result = getStmtChild0(n, index) + or + result = getExprChild0(n, index) + } + + private AstNode getParent(AstNode n) { n = getChild(result, _) } + + Callable getEnclosingCallable(AstNode node) { + result = node.(ControlFlowElement).getEnclosingCallable() or + result.(ObjectInitMethod).initializes(getParent*(node)) or + Initializers::staticMemberInitializer(result, getParent*(node)) + } + + class Callable = CS::Callable; + + AstNode callableGetBody(Callable c) { + not skipControlFlow(result) and + ( + result = c.getBody() or + result = c.(Constructor).getObjectInitializerCall() or + result = c.(Constructor).getInitializer() or + c.(ObjectInitMethod).initializes(result) or + Initializers::staticMemberInitializer(c, result) + ) + } + + class Stmt = CS::Stmt; + + class Expr = CS::Expr; + + class BlockStmt = CS::BlockStmt; + + class ExprStmt = CS::ExprStmt; + + class IfStmt = CS::IfStmt; + + class LoopStmt = CS::LoopStmt; + + class WhileStmt = CS::WhileStmt; + + class DoStmt = CS::DoStmt; + + final private class FinalForStmt = CS::ForStmt; + + class ForStmt extends FinalForStmt { + Expr getInit(int index) { result = this.getInitializer(index) } + } + + final private class FinalForeachStmt = CS::ForeachStmt; + + class ForeachStmt extends FinalForeachStmt { + Expr getVariable() { + result = this.getVariableDeclExpr() or result = this.getVariableDeclTuple() + } + + Expr getCollection() { result = this.getIterableExpr() } + } + + class BreakStmt = CS::BreakStmt; + + class ContinueStmt = CS::ContinueStmt; + + class GotoStmt = CS::GotoStmt; + + class ReturnStmt = CS::ReturnStmt; + + class Throw = CS::ThrowElement; + + final private class FinalTryStmt = CS::TryStmt; + + class TryStmt extends FinalTryStmt { + Stmt getBody() { result = this.getBlock() } + + CatchClause getCatch(int index) { result = this.getCatchClause(index) } + + Stmt getFinally() { result = super.getFinally() } + } + + final private class FinalCatchClause = CS::CatchClause; + + class CatchClause extends FinalCatchClause { + AstNode getVariable() { result = this.(CS::SpecificCatchClause).getVariableDeclExpr() } + + Expr getCondition() { result = this.getFilterClause() } + + Stmt getBody() { result = this.getBlock() } + } + + final private class FinalSwitch = CS::Switch; + + class Switch extends FinalSwitch { + Case getCase(int index) { result = super.getCase(index) } + + Stmt getStmt(int index) { result = this.(CS::SwitchStmt).getStmt(index) } + } + + final private class FinalCase = CS::Case; + + class Case extends FinalCase { + AstNode getAPattern() { result = this.getPattern() } + + Expr getGuard() { result = this.getCondition() } + + AstNode getBody() { result = super.getBody() } + } + + class DefaultCase extends Case instanceof CS::DefaultCase { } + + class ConditionalExpr = CS::ConditionalExpr; + + class BinaryExpr = CS::BinaryOperation; + + class LogicalAndExpr = CS::LogicalAndExpr; + + class LogicalOrExpr = CS::LogicalOrExpr; + + class NullCoalescingExpr = CS::NullCoalescingExpr; + + class UnaryExpr = CS::UnaryOperation; + + class LogicalNotExpr = CS::LogicalNotExpr; + + class Assignment = CS::Assignment; + + class AssignExpr = CS::AssignExpr; + + class CompoundAssignment = CS::AssignOperation; + + class AssignLogicalAndExpr extends CompoundAssignment { + AssignLogicalAndExpr() { none() } + } + + class AssignLogicalOrExpr extends CompoundAssignment { + AssignLogicalOrExpr() { none() } + } + + class AssignNullCoalescingExpr = CS::AssignCoalesceExpr; + + final private class FinalBoolLiteral = CS::BoolLiteral; + + class BooleanLiteral extends FinalBoolLiteral { + boolean getValue() { result = this.getBoolValue() } + } + + final private class FinalIsExpr = CS::IsExpr; + + class PatternMatchExpr extends FinalIsExpr { + AstNode getPattern() { result = super.getPattern() } + } +} + +/** + * A compilation. + * + * Unlike the standard `Compilation` class, this class also supports buildless + * extraction. + */ +private newtype CompilationExt = + TCompilation(Compilation c) { not extractionIsStandalone() } or + TBuildless() { extractionIsStandalone() } + +/** Gets the compilation that source file `f` belongs to. */ +private CompilationExt getCompilation(File f) { + exists(Compilation c | + f = c.getAFileCompiled() and + result = TCompilation(c) + ) + or + result = TBuildless() +} + +private module Initializers { + private import semmle.code.csharp.ExprOrStmtParent as ExprOrStmtParent /** - * A control flow node. + * The `expr_parent_top_level_adjusted()` relation restricted to exclude relations + * between properties and their getters' expression bodies in properties such as + * `int P => 0`. * - * Either a callable entry node (`EntryNode`), a callable exit node (`ExitNode`), - * or a control flow node for a control flow element, that is, an expression or a - * statement (`ElementNode`). - * - * A control flow node is a node in the control flow graph (CFG). There is a - * many-to-one relationship between `ElementNode`s and `ControlFlowElement`s. - * This allows control flow splitting, for example modeling the control flow - * through `finally` blocks. - * - * Only nodes that can be reached from the callable entry point are included in - * the CFG. + * This is in order to only associate the expression body with one CFG scope, namely + * the getter (and not the declaration itself). */ - class Node extends Impl::Node { - /** Gets the control flow element that this node corresponds to, if any. */ - final ControlFlowElement getAstNode() { result = super.getAstNode() } + private predicate expr_parent_top_level_adjusted2( + Expr child, int i, @top_level_exprorstmt_parent parent + ) { + ExprOrStmtParent::expr_parent_top_level_adjusted(child, i, parent) and + not exists(Getter g | + g.getDeclaration() = parent and + i = 0 + ) + } - Expr asExpr() { result = this.getAstNode() } + /** + * Holds if `init` is a static member initializer and `staticCtor` is the + * static constructor in the same declaring type. Hence, `staticCtor` can be + * considered to execute `init` prior to the execution of its body. + */ + predicate staticMemberInitializer(Constructor staticCtor, Expr init) { + exists(Assignable a | + a.(Modifiable).isStatic() and + expr_parent_top_level_adjusted2(init, _, a) and + a.getDeclaringType() = staticCtor.getDeclaringType() and + staticCtor.isStatic() + ) + } - Stmt asStmt() { result = this.getAstNode() } - - /** Gets the basic block that this control flow node belongs to. */ - BasicBlock getBasicBlock() { result.getANode() = this } - - /** - * Holds if this node dominates `that` node. - * - * That is, all paths reaching `that` node from some callable entry - * node (`EntryNode`) must go through this node. - * - * Example: - * - * ```csharp - * int M(string s) - * { - * if (s == null) - * throw new ArgumentNullException(nameof(s)); - * return s.Length; - * } - * ``` - * - * The node on line 3 dominates the node on line 5 (all paths from the - * entry point of `M` to `return s.Length;` must go through the null check). - * - * This predicate is *reflexive*, so for example `if (s == null)` dominates - * itself. - */ - // potentially very large predicate, so must be inlined - pragma[inline] - predicate dominates(Node that) { - this.strictlyDominates(that) - or - this = that - } - - /** - * Holds if this node strictly dominates `that` node. - * - * That is, all paths reaching `that` node from some callable entry - * node (`EntryNode`) must go through this node (which must - * be different from `that` node). - * - * Example: - * - * ```csharp - * int M(string s) - * { - * if (s == null) - * throw new ArgumentNullException(nameof(s)); - * return s.Length; - * } - * ``` - * - * The node on line 3 strictly dominates the node on line 5 - * (all paths from the entry point of `M` to `return s.Length;` must go - * through the null check). - */ - // potentially very large predicate, so must be inlined - pragma[inline] - predicate strictlyDominates(Node that) { - this.getBasicBlock().strictlyDominates(that.getBasicBlock()) - or - exists(BasicBlock bb, int i, int j | - bb.getNode(i) = this and - bb.getNode(j) = that and - i < j + /** + * Gets the `i`th static member initializer expression for static constructor `staticCtor`. + */ + Expr initializedStaticMemberOrder(Constructor staticCtor, int i) { + result = + rank[i + 1](Expr init, Location l | + staticMemberInitializer(staticCtor, init) and + l = init.getLocation() + | + init order by l.getStartLine(), l.getStartColumn(), l.getFile().getAbsolutePath() ) - } + } - /** - * Holds if this node post-dominates `that` node. - * - * That is, all paths reaching a normal callable exit node (an `AnnotatedExitNode` - * with a normal exit type) from `that` node must go through this node. - * - * Example: - * - * ```csharp - * int M(string s) - * { - * try - * { - * return s.Length; - * } - * finally - * { - * Console.WriteLine("M"); - * } - * } - * ``` - * - * The node on line 9 post-dominates the node on line 5 (all paths to the - * exit point of `M` from `return s.Length;` must go through the `WriteLine` - * call). - * - * This predicate is *reflexive*, so for example `Console.WriteLine("M");` - * post-dominates itself. - */ - // potentially very large predicate, so must be inlined - pragma[inline] - predicate postDominates(Node that) { - this.strictlyPostDominates(that) - or - this = that - } - - /** - * Holds if this node strictly post-dominates `that` node. - * - * That is, all paths reaching a normal callable exit node (an `AnnotatedExitNode` - * with a normal exit type) from `that` node must go through this node - * (which must be different from `that` node). - * - * Example: - * - * ```csharp - * int M(string s) - * { - * try - * { - * return s.Length; - * } - * finally - * { - * Console.WriteLine("M"); - * } - * } - * ``` - * - * The node on line 9 strictly post-dominates the node on line 5 (all - * paths to the exit point of `M` from `return s.Length;` must go through - * the `WriteLine` call). - */ - // potentially very large predicate, so must be inlined - pragma[inline] - predicate strictlyPostDominates(Node that) { - this.getBasicBlock().strictlyPostDominates(that.getBasicBlock()) - or - exists(BasicBlock bb, int i, int j | - bb.getNode(i) = this and - bb.getNode(j) = that and - i > j + /** + * Gets the `i`th member initializer expression for object initializer method `obinit` + * in compilation `comp`. + */ + AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { + obinit.initializes(result) and + result = + rank[i + 1](AssignExpr ae0, Location l | + obinit.initializes(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)) + ) + } +} + +private module Input implements InputSig1, InputSig2 { + predicate cfgCachedStageRef() { CfgCachedStage::ref() } + + predicate catchAll(Ast::CatchClause catch) { catch instanceof GeneralCatchClause } + + predicate matchAll(Ast::Case c) { c instanceof DefaultCase or c.(SwitchCaseExpr).matchesAll() } + + private newtype TLabel = + TLblGoto(string label) { any(GotoLabelStmt goto).getLabel() = label } or + TLblSwitchCase(string value) { any(GotoCaseStmt goto).getLabel() = value } or + TLblSwitchDefault() + + class Label extends TLabel { + string toString() { + this = TLblGoto(result) + or + this = TLblSwitchCase(result) + or + this = TLblSwitchDefault() and result = "default" } - - /** Gets a successor node of a given type, if any. */ - Node getASuccessor(SuccessorType t) { result = super.getASuccessor(t) } - - /** Gets an immediate successor, if any. */ - Node getASuccessor() { result = this.getASuccessor(_) } - - /** Gets an immediate predecessor node of a given flow type, if any. */ - Node getAPredecessorByType(SuccessorType t) { result.getASuccessor(t) = this } - - /** Gets an immediate predecessor, if any. */ - Node getAPredecessor() { result = this.getAPredecessorByType(_) } - - /** - * Gets an immediate `true` successor, if any. - * - * An immediate `true` successor is a successor that is reached when - * this condition evaluates to `true`. - * - * Example: - * - * ```csharp - * if (x < 0) - * x = -x; - * ``` - * - * The node on line 2 is an immediate `true` successor of the node - * on line 1. - */ - Node getATrueSuccessor() { - result = this.getASuccessor(any(BooleanSuccessor t | t.getValue() = true)) - } - - /** - * Gets an immediate `false` successor, if any. - * - * An immediate `false` successor is a successor that is reached when - * this condition evaluates to `false`. - * - * Example: - * - * ```csharp - * if (!(x >= 0)) - * x = -x; - * ``` - * - * The node on line 2 is an immediate `false` successor of the node - * on line 1. - */ - Node getAFalseSuccessor() { - result = this.getASuccessor(any(BooleanSuccessor t | t.getValue() = false)) - } - - /** Gets the enclosing callable of this control flow node. */ - final Callable getEnclosingCallable() { result = Impl::getNodeCfgScope(this) } } - /** A node for a callable entry point. */ - class EntryNode extends Node instanceof Impl::EntryNode { - /** Gets the callable that this entry applies to. */ - Callable getEnclosingCallable() { result = this.getScope() } + predicate hasLabel(Ast::AstNode n, Label l) { + l = TLblGoto(n.(GotoLabelStmt).getLabel()) + or + l = TLblSwitchCase(n.(GotoCaseStmt).getLabel()) + or + l = TLblSwitchDefault() and n instanceof GotoDefaultStmt + or + l = TLblGoto(n.(LabelStmt).getLabel()) } - /** A node for a callable exit point, annotated with the type of exit. */ - class AnnotatedExitNode extends Node instanceof Impl::AnnotatedExitNode { - /** Gets the callable that this exit applies to. */ - Callable getEnclosingCallable() { result = this.getScope() } + private Expr getQualifier(QualifiableExpr qe) { + result = qe.getQualifier() or + result = qe.(ExtensionMethodCall).getArgument(0) } - /** A control flow node indicating normal termination of a callable. */ - class NormalExitNode extends AnnotatedExitNode instanceof Impl::NormalExitNode { } - - /** A node for a callable exit point. */ - class ExitNode extends Node instanceof Impl::ExitNode { - /** Gets the callable that this exit applies to. */ - Callable getEnclosingCallable() { result = this.getScope() } + predicate inConditionalContext(Ast::AstNode n, ConditionKind kind) { + kind.isNullness() and + exists(QualifiableExpr qe | qe.isConditional() | n = getQualifier(qe)) } - class BasicBlock = BBs::BasicBlock; + predicate postOrInOrder(Ast::AstNode n) { n instanceof YieldStmt or n instanceof Call } - /** Provides different types of basic blocks. */ - module BasicBlocks { - class EntryBlock = BBs::EntryBasicBlock; + predicate beginAbruptCompletion( + Ast::AstNode ast, PreControlFlowNode n, AbruptCompletion c, boolean always + ) { + // `yield break` behaves like a return statement + ast instanceof YieldBreakStmt and + n.isIn(ast) and + c.asSimpleAbruptCompletion() instanceof ReturnSuccessor and + always = true + or + Completion::mayThrowException(ast) and + n.isIn(ast) and + c.asSimpleAbruptCompletion() instanceof ExceptionSuccessor and + always = false + or + ast instanceof NonReturning::NonReturningCall and + n.isIn(ast) and + c.asSimpleAbruptCompletion() instanceof ExceptionSuccessor and + always = true + } - class AnnotatedExitBlock = BBs::AnnotatedExitBasicBlock; + predicate endAbruptCompletion(Ast::AstNode ast, PreControlFlowNode n, AbruptCompletion c) { + exists(SwitchStmt switch, Label l, Ast::Case case | + ast.(Stmt).getParent() = switch and + c.getSuccessorType() instanceof GotoSuccessor and + c.hasLabel(l) and + n.isAfterValue(case, any(MatchingSuccessor t | t.getValue() = true)) + | + exists(string value, ConstCase cc | + l = TLblSwitchCase(value) and + switch.getAConstCase() = cc and + cc.getLabel() = value and + cc = case + ) + or + l = TLblSwitchDefault() and switch.getDefaultCase() = case + ) + } - class ExitBlock = BBs::ExitBasicBlock; + pragma[noinline] + private MethodCall getObjectInitializerCall(Constructor ctor, CompilationExt comp) { + result = ctor.getObjectInitializerCall() and + comp = getCompilation(result.getFile()) + } - class JoinBlock = BBs::JoinBlock; + pragma[noinline] + private ConstructorInitializer getInitializer(Constructor ctor, CompilationExt comp) { + result = ctor.getInitializer() and + comp = getCompilation(result.getFile()) + } - class JoinBlockPredecessor = BBs::JoinBlockPredecessor; + pragma[noinline] + private Ast::AstNode getBody(Constructor ctor, CompilationExt comp) { + result = ctor.getBody() and + comp = getCompilation(result.getFile()) + } - class ConditionBlock = BBs::ConditionBlock; + predicate step(PreControlFlowNode n1, PreControlFlowNode n2) { + exists(Constructor ctor | + n1.(EntryNodeImpl).getEnclosingCallable() = ctor and + if Initializers::staticMemberInitializer(ctor, _) + then n2.isBefore(Initializers::initializedStaticMemberOrder(ctor, 0)) + else + if exists(ctor.getObjectInitializerCall()) + then n2.isBefore(ctor.getObjectInitializerCall()) + else + if exists(ctor.getInitializer()) + then n2.isBefore(ctor.getInitializer()) + else n2.isBefore(ctor.getBody()) + or + exists(int i | n1.isAfter(Initializers::initializedStaticMemberOrder(ctor, i)) | + n2.isBefore(Initializers::initializedStaticMemberOrder(ctor, i + 1)) + or + not exists(Initializers::initializedStaticMemberOrder(ctor, i + 1)) and + n2.isBefore(ctor.getBody()) + ) + or + exists(CompilationExt comp | + n1.isAfter(getObjectInitializerCall(ctor, comp)) and + if exists(getInitializer(ctor, comp)) + then n2.isBefore(getInitializer(ctor, comp)) + else + // 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. + if exists(getBody(ctor, comp)) + then n2.isBefore(getBody(ctor, comp)) + else n2.(NormalExitNodeImpl).getEnclosingCallable() = ctor + or + n1.isAfter(getInitializer(ctor, comp)) and + if exists(getBody(ctor, comp)) + then n2.isBefore(getBody(ctor, comp)) + else n2.(NormalExitNodeImpl).getEnclosingCallable() = ctor + ) + or + n1.isAfter(ctor.getBody()) and + n2.(NormalExitNodeImpl).getEnclosingCallable() = ctor + ) + or + exists(ObjectInitMethod obinit | + n1.(EntryNodeImpl).getEnclosingCallable() = obinit and + n2.isBefore(Initializers::initializedInstanceMemberOrder(obinit, _, 0)) + or + exists(CompilationExt comp, int i | + // Flow from one member initializer to the next + n1.isAfter(Initializers::initializedInstanceMemberOrder(obinit, comp, i)) and + n2.isBefore(Initializers::initializedInstanceMemberOrder(obinit, comp, i + 1)) + ) + or + n1.isAfter(Initializers::lastInitializer(obinit, _)) and + n2.(NormalExitNodeImpl).getEnclosingCallable() = obinit + ) + or + exists(QualifiableExpr qe | qe.isConditional() | + n1.isBefore(qe) and n2.isBefore(getQualifier(qe)) + or + exists(NullnessSuccessor t | n1.isAfterValue(getQualifier(qe), t) | + if t.isNull() + then ( + // if `q` is null in `q?.f = x` then the assignment is skipped. This + // holds for both regular, compound, and null-coalescing assignments. + // On the other hand, the CFG definition for the assignment can treat + // the LHS the same regardless of whether it's a conditionally + // qualified access or not, as it just connects to the "before" and + // "after" nodes of the LHS, and the "after" node is skipped in this + // case. + exists(AssignableDefinition def | + def.getTargetAccess() = qe and + n2.isAfterValue(def.getExpr(), t) + ) + or + not qe instanceof AssignableWrite and + n2.isAfterValue(qe, t) + ) else ( + n2.isBefore(Ast::getChild(qe, 0)) + or + n2.isIn(qe) and not exists(Ast::getChild(qe, 0)) + ) + ) + or + exists(int i | i >= 0 and n1.isAfter(Ast::getChild(qe, i)) | + n2.isBefore(Ast::getChild(qe, i + 1)) + or + not exists(Ast::getChild(qe, i + 1)) and n2.isIn(qe) + ) + or + n1.isIn(qe) and n2.isAfter(qe) and not beginAbruptCompletion(qe, n1, _, true) + ) + or + exists(ObjectCreation oc | + n1.isBefore(oc) and n2.isBefore(oc.getArgument(0)) + or + n1.isBefore(oc) and n2.isIn(oc) and not exists(oc.getAnArgument()) + or + exists(int i | n1.isAfter(oc.getArgument(i)) | + n2.isBefore(oc.getArgument(i + 1)) + or + not exists(oc.getArgument(i + 1)) and n2.isIn(oc) + ) + or + n1.isIn(oc) and n2.isBefore(oc.getInitializer()) + or + n1.isIn(oc) and n2.isAfter(oc) and not exists(oc.getInitializer()) + or + n1.isAfter(oc.getInitializer()) and n2.isAfter(oc) + ) } } /** Provides different types of control flow nodes. */ module ControlFlowNodes { - private import internal.ControlFlowGraphImpl as Impl - private import internal.Splitting as Splitting - /** * A node for a control flow element, that is, an expression or a statement. * - * Each control flow element maps to zero or more `ElementNode`s: zero when - * the element is in unreachable (dead) code, and multiple when there are - * different splits for the element. + * Each control flow element maps to zero or one `ElementNode`s: zero when + * the element is in unreachable (dead) code, and otherwise one. */ - class ElementNode extends ControlFlowNode instanceof Impl::AstCfgNode { - /** Gets a comma-separated list of strings for each split in this node, if any. */ - final string getSplitsString() { result = super.getSplitsString() } - - /** Gets a split for this control flow node, if any. */ - final Split getASplit() { result = super.getASplit() } + class ElementNode extends ControlFlowNode { + ElementNode() { exists(this.asExpr()) or exists(this.asStmt()) } } /** A control-flow node for an expression. */ class ExprNode extends ElementNode { Expr e; - ExprNode() { e = unique(Expr e_ | e_ = this.asExpr() | e_) } + ExprNode() { e = this.asExpr() } /** Gets the expression that this control-flow node belongs to. */ Expr getExpr() { result = e } @@ -310,6 +552,4 @@ module ControlFlowNodes { /** Gets the type of this expression node. */ Type getType() { result = e.getType() } } - - class Split = Splitting::Split; } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll index ecacbf2cc4d..33d96a61fc7 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll @@ -4,7 +4,6 @@ import csharp private import codeql.controlflow.ControlFlowReachability -private import semmle.code.csharp.controlflow.BasicBlocks private import semmle.code.csharp.controlflow.Guards as Guards private import semmle.code.csharp.ExprOrStmtParent diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 7add823f938..da17da616a0 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -7,7 +7,6 @@ private import ControlFlow private import semmle.code.csharp.commons.Assertions private import semmle.code.csharp.commons.ComparisonTest private import semmle.code.csharp.commons.StructuralComparison as SC -private import semmle.code.csharp.controlflow.BasicBlocks private import semmle.code.csharp.controlflow.internal.Completion private import semmle.code.csharp.frameworks.System private import semmle.code.csharp.frameworks.system.Linq @@ -15,9 +14,7 @@ private import semmle.code.csharp.frameworks.system.Collections private import semmle.code.csharp.frameworks.system.collections.Generic private import codeql.controlflow.Guards as SharedGuards -private module GuardsInput implements - SharedGuards::InputSig -{ +private module GuardsInput implements SharedGuards::InputSig { private import csharp as CS class NormalExitNode = ControlFlow::NormalExitNode; @@ -96,21 +93,14 @@ private module GuardsInput implements ConstantExpr asConstantCase() { super.getPattern() = result } - private predicate hasEdge(BasicBlock bb1, BasicBlock bb2, MatchingCompletion c) { - exists(PatternExpr pe | - super.getPattern() = pe and - c.isValidFor(pe) and - bb1.getLastNode() = pe.getAControlFlowNode() and - bb1.getASuccessor(c.getAMatchingSuccessorType()) = bb2 - ) - } - predicate matchEdge(BasicBlock bb1, BasicBlock bb2) { - exists(MatchingCompletion c | this.hasEdge(bb1, bb2, c) and c.isMatch()) + bb1.getASuccessor(any(MatchingSuccessor s | s.getValue() = true)) = bb2 and + bb1.getLastNode() = AstNode.super.getControlFlowNode() } predicate nonMatchEdge(BasicBlock bb1, BasicBlock bb2) { - exists(MatchingCompletion c | this.hasEdge(bb1, bb2, c) and c.isNonMatch()) + bb1.getASuccessor(any(MatchingSuccessor s | s.getValue() = false)) = bb2 and + bb1.getLastNode() = AstNode.super.getControlFlowNode() } } @@ -450,7 +440,8 @@ class DereferenceableExpr extends Expr { predicate guardSuggestsMaybeNull(Guards::Guard guard) { not nonNullValueImplied(this) and ( - exists(NullnessCompletion c | c.isValidFor(this) and c.isNull() and guard = this) + exists(guard.getControlFlowNode().getASuccessor(any(NullnessSuccessor n | n.isNull()))) and + guard = this or LogicInput::additionalNullCheck(guard, _, this, true) or diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll index e734e79402b..85a514d5236 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll @@ -23,283 +23,9 @@ import csharp private import semmle.code.csharp.commons.Assertions private import semmle.code.csharp.commons.Constants private import semmle.code.csharp.frameworks.System -private import ControlFlowGraphImpl private import NonReturning private import SuccessorType -private newtype TCompletion = - TSimpleCompletion() or - TBooleanCompletion(boolean b) { b = true or b = false } or - TNullnessCompletion(boolean isNull) { isNull = true or isNull = false } or - TMatchingCompletion(boolean isMatch) { isMatch = true or isMatch = false } or - TEmptinessCompletion(boolean isEmpty) { isEmpty = true or isEmpty = false } or - TReturnCompletion() or - TBreakCompletion() or - TContinueCompletion() or - TGotoCompletion(string label) { label = any(GotoStmt gs).getLabel() } or - TThrowCompletion(ExceptionClass ec) or - TExitCompletion() or - TNestedCompletion(Completion inner, Completion outer, int nestLevel) { - inner = TBreakCompletion() and - outer instanceof NonNestedNormalCompletion and - nestLevel = 0 - or - inner instanceof NormalCompletion and - nestedFinallyCompletion(outer, nestLevel) - } - -pragma[nomagic] -private int getAFinallyNestLevel() { result = any(Statements::TryStmtTree t).nestLevel() } - -pragma[nomagic] -private predicate nestedFinallyCompletion(Completion outer, int nestLevel) { - ( - outer = TReturnCompletion() - or - outer = TBreakCompletion() - or - outer = TContinueCompletion() - or - outer = TGotoCompletion(_) - or - outer = TThrowCompletion(_) - or - outer = TExitCompletion() - ) and - nestLevel = getAFinallyNestLevel() -} - -pragma[noinline] -private predicate completionIsValidForStmt(Stmt s, Completion c) { - s instanceof BreakStmt and - c = TBreakCompletion() - or - s instanceof ContinueStmt and - c = TContinueCompletion() - or - s instanceof GotoStmt and - c = TGotoCompletion(s.(GotoStmt).getLabel()) - or - s instanceof ReturnStmt and - c = TReturnCompletion() - or - s instanceof YieldBreakStmt and - // `yield break` behaves like a return statement - c = TReturnCompletion() - or - mustHaveEmptinessCompletion(s) and - c = TEmptinessCompletion(_) -} - -/** - * A completion of a statement or an expression. - */ -abstract class Completion extends TCompletion { - /** - * Holds if this completion is valid for control flow element `cfe`. - * - * If `cfe` is part of a `try` statement and `cfe` may throw an exception, this - * completion can be a throw completion. - * - * If `cfe` is used in a Boolean context, this completion is a Boolean completion, - * otherwise it is a normal non-Boolean completion. - */ - predicate isValidFor(ControlFlowElement cfe) { - this = cfe.(NonReturningCall).getACompletion() - or - this = TThrowCompletion(cfe.(TriedControlFlowElement).getAThrownException()) - or - cfe instanceof ThrowElement and - this = TThrowCompletion(cfe.(ThrowElement).getThrownExceptionType()) - or - this = assertionCompletion(cfe, _) - or - completionIsValidForStmt(cfe, this) - or - mustHaveBooleanCompletion(cfe) and - ( - exists(boolean value | isBooleanConstant(cfe, value) | this = TBooleanCompletion(value)) - or - not isBooleanConstant(cfe, _) and - this = TBooleanCompletion(_) - or - // Corner case: In `if (x ?? y) { ... }`, `x` must have both a `true` - // completion, a `false` completion, and a `null` completion (but not a - // non-`null` completion) - mustHaveNullnessCompletion(cfe) and - this = TNullnessCompletion(true) - ) - or - mustHaveNullnessCompletion(cfe) and - not mustHaveBooleanCompletion(cfe) and - ( - exists(boolean value | isNullnessConstant(cfe, value) | this = TNullnessCompletion(value)) - or - not isNullnessConstant(cfe, _) and - this = TNullnessCompletion(_) - ) - or - mustHaveMatchingCompletion(cfe) and - ( - exists(boolean value | isMatchingConstant(cfe, value) | this = TMatchingCompletion(value)) - or - not isMatchingConstant(cfe, _) and - this = TMatchingCompletion(_) - ) - or - not cfe instanceof NonReturningCall and - not cfe instanceof ThrowElement and - not cfe instanceof BreakStmt and - not cfe instanceof ContinueStmt and - not cfe instanceof GotoStmt and - not cfe instanceof ReturnStmt and - not cfe instanceof YieldBreakStmt and - not mustHaveBooleanCompletion(cfe) and - not mustHaveNullnessCompletion(cfe) and - not mustHaveMatchingCompletion(cfe) and - not mustHaveEmptinessCompletion(cfe) and - this = TSimpleCompletion() - } - - /** - * Holds if this completion will continue a loop when it is the completion - * of a loop body. - */ - predicate continuesLoop() { - this instanceof NormalCompletion or - this instanceof ContinueCompletion - } - - /** - * Gets the inner completion. This is either the inner completion, - * when the completion is nested, or the completion itself. - */ - Completion getInnerCompletion() { result = this } - - /** - * Gets the outer completion. This is either the outer completion, - * when the completion is nested, or the completion itself. - */ - Completion getOuterCompletion() { result = this } - - /** Gets a successor type that matches this completion. */ - abstract SuccessorType getAMatchingSuccessorType(); - - /** Gets a textual representation of this completion. */ - abstract string toString(); -} - -/** Holds if expression `e` has the Boolean constant value `value`. */ -private predicate isBooleanConstant(Expr e, boolean value) { - mustHaveBooleanCompletion(e) and - ( - e.getValue() = "true" and - value = true - or - e.getValue() = "false" and - value = false - or - isConstantComparison(e, value) - or - exists(Method m, Call c, Expr expr | - m = any(SystemStringClass s).getIsNullOrEmptyMethod() and - c.getTarget() = m and - e = c and - expr = c.getArgument(0) and - expr.hasValue() and - if expr.getValue().length() > 0 and not expr instanceof NullLiteral - then value = false - else value = true - ) - ) -} - -/** - * Holds if expression `e` is constantly `null` (`value = true`) or constantly - * non-`null` (`value = false`). - */ -private predicate isNullnessConstant(Expr e, boolean value) { - mustHaveNullnessCompletion(e) and - exists(Expr stripped | stripped = e.stripCasts() | - stripped.getType() = - any(ValueType t | - not t instanceof NullableType and - // Extractor bug: the type of `x?.Length` is reported as `int`, but it should - // be `int?` - not getQualifier*(stripped).(QualifiableExpr).isConditional() - ) and - value = false - or - stripped instanceof NullLiteral and - value = true - or - stripped.hasValue() and - not stripped instanceof NullLiteral and - value = false - ) -} - -private Expr getQualifier(QualifiableExpr e) { - // `e.getQualifier()` does not work for calls to extension methods - result = e.getChildExpr(-1) -} - -pragma[noinline] -private predicate typePatternMustHaveMatchingCompletion( - TypePatternExpr tpe, Type t, Type strippedType -) { - exists(Expr e, Expr stripped | mustHaveMatchingCompletion(e, tpe) | - stripped = e.stripCasts() and - t = tpe.getCheckedType() and - strippedType = stripped.getType() and - not t.containsTypeParameters() and - not strippedType.containsTypeParameters() - ) -} - -pragma[noinline] -private Type typePatternCommonSubTypeLeft(Type t) { - typePatternMustHaveMatchingCompletion(_, t, _) and - result.isImplicitlyConvertibleTo(t) and - not result instanceof DynamicType -} - -pragma[noinline] -private Type typePatternCommonSubTypeRight(Type strippedType) { - typePatternMustHaveMatchingCompletion(_, _, strippedType) and - result.isImplicitlyConvertibleTo(strippedType) and - not result instanceof DynamicType -} - -pragma[noinline] -private predicate typePatternCommonSubType(Type t, Type strippedType) { - typePatternCommonSubTypeLeft(t) = typePatternCommonSubTypeRight(strippedType) -} - -/** - * Holds if pattern expression `pe` constantly matches (`value = true`) or - * constantly non-matches (`value = false`). - */ -private predicate isMatchingConstant(PatternExpr pe, boolean value) { - exists(Expr e, string exprValue, string patternValue | - mustHaveMatchingCompletion(e, pe) and - exprValue = e.stripCasts().getValue() and - patternValue = pe.getValue() and - if exprValue = patternValue then value = true else value = false - ) - or - pe instanceof DiscardPatternExpr and - value = true - or - exists(Type t, Type strippedType | - not t instanceof UnknownType and - not strippedType instanceof UnknownType and - typePatternMustHaveMatchingCompletion(pe, t, strippedType) and - not typePatternCommonSubType(t, strippedType) and - value = false - ) -} - private class Overflowable extends UnaryOperation { Overflowable() { not this instanceof UnaryBitwiseOperation and @@ -307,6 +33,13 @@ private class Overflowable extends UnaryOperation { } } +/** Holds if `cfe` is a control flow element that may throw an exception. */ +predicate mayThrowException(ControlFlowElement cfe) { + exists(cfe.(TriedControlFlowElement).getAThrownException()) + or + cfe instanceof Assertion +} + /** A control flow element that is inside a `try` block. */ private class TriedControlFlowElement extends ControlFlowElement { TriedControlFlowElement() { @@ -389,508 +122,3 @@ pragma[nomagic] private predicate invalidCastCandidate(CastExpr ce) { ce.getExpr().getType() = getACastExprBaseType(ce) } - -/** Gets a valid completion when argument `i` fails in assertion `a`. */ -Completion assertionCompletion(Assertion a, int i) { - exists(AssertMethod am | am = a.getAssertMethod() | - if am.getAssertionFailure(i).isExit() - then result = TExitCompletion() - else - exists(Class c | - am.getAssertionFailure(i).isException(c) and - result = TThrowCompletion(c) - ) - ) -} - -/** - * Holds if a normal completion of `e` must be a Boolean completion. - */ -private predicate mustHaveBooleanCompletion(Expr e) { - inBooleanContext(e) and - not e instanceof NonReturningCall -} - -/** - * Holds if `e` is used in a Boolean context. That is, whether the value - * that `e` evaluates to determines a true/false branch successor. - */ -private predicate inBooleanContext(Expr e) { - e = any(IfStmt is).getCondition() - or - e = any(LoopStmt ls).getCondition() - or - e = any(Case c).getCondition() - or - e = any(SpecificCatchClause scc).getFilterClause() - or - e = any(LogicalNotExpr lne | inBooleanContext(lne)).getAnOperand() - or - exists(LogicalAndExpr lae | - lae.getLeftOperand() = e - or - inBooleanContext(lae) and - lae.getRightOperand() = e - ) - or - exists(LogicalOrExpr lae | - lae.getLeftOperand() = e - or - inBooleanContext(lae) and - lae.getRightOperand() = e - ) - or - exists(ConditionalExpr ce | - ce.getCondition() = e - or - inBooleanContext(ce) and - e in [ce.getThen(), ce.getElse()] - ) - or - e = any(NullCoalescingOperation nce | inBooleanContext(nce)).getAnOperand() - or - e = any(SwitchExpr se | inBooleanContext(se)).getACase() - or - e = any(SwitchCaseExpr sce | inBooleanContext(sce)).getBody() -} - -/** - * Holds if a normal completion of `e` must be a nullness completion. - */ -private predicate mustHaveNullnessCompletion(Expr e) { - inNullnessContext(e) and - not e instanceof NonReturningCall -} - -/** - * Holds if `e` is used in a nullness context. That is, whether the value - * that `e` evaluates to determines a `null`/non-`null` branch successor. - */ -private predicate inNullnessContext(Expr e) { - e = any(NullCoalescingOperation nce).getLeftOperand() - or - exists(QualifiableExpr qe | qe.isConditional() | e = qe.getChildExpr(-1)) - or - exists(ConditionalExpr ce | inNullnessContext(ce) | (e = ce.getThen() or e = ce.getElse())) - or - exists(NullCoalescingOperation nce | inNullnessContext(nce) | e = nce.getRightOperand()) - or - e = any(SwitchExpr se | inNullnessContext(se)).getACase() - or - e = any(SwitchCaseExpr sce | inNullnessContext(sce)).getBody() -} - -/** - * Holds if `pe` is the pattern inside case `c`, belonging to `switch` `s`, that - * has the matching completion. - */ -predicate switchMatching(Switch s, Case c, PatternExpr pe) { - s.getACase() = c and - pe = c.getPattern() -} - -/** - * Holds if a normal completion of `cfe` must be a matching completion. Thats is, - * whether `cfe` determines a match in a `switch/if` statement or `catch` clause. - */ -private predicate mustHaveMatchingCompletion(ControlFlowElement cfe) { - switchMatching(_, _, cfe) - or - cfe instanceof SpecificCatchClause - or - cfe = any(IsExpr ie | inBooleanContext(ie)).getPattern() - or - cfe = any(RecursivePatternExpr rpe).getAChildExpr() - or - cfe = any(PositionalPatternExpr ppe).getPattern(_) - or - cfe = any(PropertyPatternExpr ppe).getPattern(_) - or - cfe = any(UnaryPatternExpr upe | mustHaveMatchingCompletion(upe)).getPattern() - or - cfe = any(BinaryPatternExpr bpe).getAnOperand() -} - -/** - * Holds if `pe` must have a matching completion, and `e` is the expression - * that is being matched. - */ -private predicate mustHaveMatchingCompletion(Expr e, PatternExpr pe) { - exists(Switch s | - switchMatching(s, _, pe) and - e = s.getExpr() - ) - or - e = any(IsExpr ie | pe = ie.getPattern()).getExpr() and - mustHaveMatchingCompletion(pe) - or - exists(PatternExpr mid | mustHaveMatchingCompletion(e, mid) | - pe = mid.(UnaryPatternExpr).getPattern() - or - pe = mid.(RecursivePatternExpr).getAChildExpr() - or - pe = mid.(BinaryPatternExpr).getAnOperand() - ) -} - -/** - * Holds if `cfe` is the element inside foreach statement `fs` that has the emptiness - * completion. - */ -predicate foreachEmptiness(ForeachStmt fs, ControlFlowElement cfe) { - cfe = fs // use `foreach` statement itself to represent the emptiness test -} - -/** - * Holds if a normal completion of `cfe` must be an emptiness completion. Thats is, - * whether `cfe` determines whether to execute the body of a `foreach` statement. - */ -private predicate mustHaveEmptinessCompletion(ControlFlowElement cfe) { foreachEmptiness(_, cfe) } - -/** - * A completion that represents normal evaluation of a statement or an - * expression. - */ -abstract class NormalCompletion extends Completion { } - -abstract private class NonNestedNormalCompletion extends NormalCompletion { } - -/** A simple (normal) completion. */ -class SimpleCompletion extends NonNestedNormalCompletion, TSimpleCompletion { - override DirectSuccessor getAMatchingSuccessorType() { any() } - - override string toString() { result = "normal" } -} - -/** - * A completion that represents evaluation of an expression, whose value determines - * the successor. Either a Boolean completion (`BooleanCompletion`), a nullness - * completion (`NullnessCompletion`), a matching completion (`MatchingCompletion`), - * or an emptiness completion (`EmptinessCompletion`). - */ -abstract class ConditionalCompletion extends NonNestedNormalCompletion { - /** Gets the Boolean value of this completion. */ - abstract boolean getValue(); - - /** Gets the dual completion. */ - abstract ConditionalCompletion getDual(); -} - -/** - * A completion that represents evaluation of an expression - * with a Boolean value. - */ -class BooleanCompletion extends ConditionalCompletion { - private boolean value; - - BooleanCompletion() { this = TBooleanCompletion(value) } - - override boolean getValue() { result = value } - - override BooleanCompletion getDual() { result = TBooleanCompletion(value.booleanNot()) } - - override BooleanSuccessor getAMatchingSuccessorType() { result.getValue() = value } - - override string toString() { result = value.toString() } -} - -/** A Boolean `true` completion. */ -class TrueCompletion extends BooleanCompletion { - TrueCompletion() { this.getValue() = true } -} - -/** A Boolean `false` completion. */ -class FalseCompletion extends BooleanCompletion { - FalseCompletion() { this.getValue() = false } -} - -/** - * A completion that represents evaluation of an expression that is either - * `null` or non-`null`. - */ -class NullnessCompletion extends ConditionalCompletion, TNullnessCompletion { - private boolean value; - - NullnessCompletion() { this = TNullnessCompletion(value) } - - /** Holds if the last sub expression of this expression evaluates to `null`. */ - predicate isNull() { value = true } - - /** Holds if the last sub expression of this expression evaluates to a non-`null` value. */ - predicate isNonNull() { value = false } - - override boolean getValue() { result = value } - - override NullnessCompletion getDual() { result = TNullnessCompletion(value.booleanNot()) } - - override NullnessSuccessor getAMatchingSuccessorType() { result.getValue() = value } - - override string toString() { if this.isNull() then result = "null" else result = "non-null" } -} - -/** - * A completion that represents matching, for example a `case` statement in a - * `switch` statement. - */ -class MatchingCompletion extends ConditionalCompletion, TMatchingCompletion { - private boolean value; - - MatchingCompletion() { this = TMatchingCompletion(value) } - - /** Holds if there is a match. */ - predicate isMatch() { value = true } - - /** Holds if there is not a match. */ - predicate isNonMatch() { value = false } - - override boolean getValue() { result = value } - - override MatchingCompletion getDual() { result = TMatchingCompletion(value.booleanNot()) } - - override MatchingSuccessor getAMatchingSuccessorType() { result.getValue() = value } - - override string toString() { if this.isMatch() then result = "match" else result = "no-match" } -} - -/** - * A completion that represents evaluation of an emptiness test, for example - * a test in a `foreach` statement. - */ -class EmptinessCompletion extends ConditionalCompletion, TEmptinessCompletion { - private boolean value; - - EmptinessCompletion() { this = TEmptinessCompletion(value) } - - /** Holds if the emptiness test evaluates to `true`. */ - predicate isEmpty() { value = true } - - override boolean getValue() { result = value } - - override EmptinessCompletion getDual() { result = TEmptinessCompletion(value.booleanNot()) } - - override EmptinessSuccessor getAMatchingSuccessorType() { result.getValue() = value } - - override string toString() { if this.isEmpty() then result = "empty" else result = "non-empty" } -} - -/** - * A nested completion. For example, in - * - * ```csharp - * void M(bool b1, bool b2) - * { - * try - * { - * if (b1) - * throw new Exception(); - * } - * finally - * { - * if (b2) - * System.Console.WriteLine("M called"); - * } - * } - * ``` - * - * `b2` has an outer throw completion (inherited from `throw new Exception`) - * and an inner `false` completion. `b2` also has a (normal) `true` completion. - */ -class NestedCompletion extends Completion, TNestedCompletion { - Completion inner; - Completion outer; - int nestLevel; - - NestedCompletion() { this = TNestedCompletion(inner, outer, nestLevel) } - - /** Gets a completion that is compatible with the inner completion. */ - Completion getAnInnerCompatibleCompletion() { - result.getOuterCompletion() = this.getInnerCompletion() - } - - /** Gets the level of this nested completion. */ - int getNestLevel() { result = nestLevel } - - override Completion getInnerCompletion() { result = inner } - - override Completion getOuterCompletion() { result = outer } - - override SuccessorType getAMatchingSuccessorType() { none() } - - override string toString() { result = outer + " [" + inner + "] (" + nestLevel + ")" } -} - -/** - * A nested completion for a loop that exists with a `break`. - * - * This completion is added for technical reasons only: when a loop - * body can complete with a break completion, the loop itself completes - * normally. However, if we choose `TSimpleCompletion` as the completion - * of the loop, we lose the information that the last element actually - * completed with a break, meaning that the control flow edge out of the - * breaking node cannot be marked with a `break` label. - * - * Example: - * - * ```csharp - * while (...) { - * ... - * break; - * } - * return; - * ``` - * - * The `break` on line 3 completes with a `TBreakCompletion`, therefore - * the `while` loop can complete with a `NestedBreakCompletion`, so we - * get an edge `break --break--> return`. (If we instead used a - * `TSimpleCompletion`, we would get a less precise edge - * `break --normal--> return`.) - */ -class NestedBreakCompletion extends NormalCompletion, NestedCompletion { - NestedBreakCompletion() { - inner = TBreakCompletion() and - outer instanceof NonNestedNormalCompletion - } - - override BreakCompletion getInnerCompletion() { result = inner } - - override NonNestedNormalCompletion getOuterCompletion() { result = outer } - - override Completion getAnInnerCompatibleCompletion() { - result = inner and - outer = TSimpleCompletion() - or - result = TNestedCompletion(outer, inner, _) - } - - override SuccessorType getAMatchingSuccessorType() { - outer instanceof SimpleCompletion and - result instanceof BreakSuccessor - or - result = outer.(ConditionalCompletion).getAMatchingSuccessorType() - } -} - -/** - * A completion that represents evaluation of a statement or an - * expression resulting in a return from a callable. - */ -class ReturnCompletion extends Completion { - ReturnCompletion() { - this = TReturnCompletion() or - this = TNestedCompletion(_, TReturnCompletion(), _) - } - - override ReturnSuccessor getAMatchingSuccessorType() { any() } - - override string toString() { - // `NestedCompletion` defines `toString()` for the other case - this = TReturnCompletion() and result = "return" - } -} - -/** - * A completion that represents evaluation of a statement or an - * expression resulting in a break (in a loop or in a `switch` - * statement). - */ -class BreakCompletion extends Completion { - BreakCompletion() { - this = TBreakCompletion() or - this = TNestedCompletion(_, TBreakCompletion(), _) - } - - override BreakSuccessor getAMatchingSuccessorType() { any() } - - override string toString() { - // `NestedCompletion` defines `toString()` for the other case - this = TBreakCompletion() and result = "break" - } -} - -/** - * A completion that represents evaluation of a statement or an - * expression resulting in a loop continuation (a `continue` - * statement). - */ -class ContinueCompletion extends Completion { - ContinueCompletion() { - this = TContinueCompletion() or - this = TNestedCompletion(_, TContinueCompletion(), _) - } - - override ContinueSuccessor getAMatchingSuccessorType() { any() } - - override string toString() { - // `NestedCompletion` defines `toString()` for the other case - this = TContinueCompletion() and result = "continue" - } -} - -/** - * A completion that represents evaluation of a statement or an - * expression resulting in a `goto` jump. - */ -class GotoCompletion extends Completion { - private string label; - - GotoCompletion() { - this = TGotoCompletion(label) or - this = TNestedCompletion(_, TGotoCompletion(label), _) - } - - /** Gets the label of the `goto` completion. */ - string getLabel() { result = label } - - override GotoSuccessor getAMatchingSuccessorType() { any() } - - override string toString() { - // `NestedCompletion` defines `toString()` for the other case - this = TGotoCompletion(label) and result = "goto(" + label + ")" - } -} - -/** - * A completion that represents evaluation of a statement or an - * expression resulting in a thrown exception. - */ -class ThrowCompletion extends Completion { - private ExceptionClass ec; - - ThrowCompletion() { - this = TThrowCompletion(ec) or - this = TNestedCompletion(_, TThrowCompletion(ec), _) - } - - /** Gets the type of the exception being thrown. */ - ExceptionClass getExceptionClass() { result = ec } - - override ExceptionSuccessor getAMatchingSuccessorType() { any() } - - override string toString() { - // `NestedCompletion` defines `toString()` for the other case - this = TThrowCompletion(ec) and result = "throw(" + ec + ")" - } -} - -/** - * A completion that represents evaluation of a statement or an - * expression resulting in a program exit, for example - * `System.Environment.Exit(0)`. - * - * An exit completion is different from a `return` completion; the former - * exits the whole application, and exists inside `try` statements skip - * `finally` blocks. - */ -class ExitCompletion extends Completion { - ExitCompletion() { - this = TExitCompletion() or - this = TNestedCompletion(_, TExitCompletion(), _) - } - - override ExitSuccessor getAMatchingSuccessorType() { any() } - - override string toString() { - // `NestedCompletion` defines `toString()` for the other case - this = TExitCompletion() and result = "exit" - } -} diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll deleted file mode 100644 index dc2c7477a35..00000000000 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ /dev/null @@ -1,1831 +0,0 @@ -/** - * Provides an implementation for constructing control-flow graphs (CFGs) from - * abstract syntax trees (ASTs), using the shared library from `codeql.controlflow.Cfg`. - */ - -import csharp -private import codeql.controlflow.Cfg as CfgShared -private import Completion -private import semmle.code.csharp.ExprOrStmtParent -private import semmle.code.csharp.commons.Compilation - -private module Initializers { - /** - * Gets the `i`th member initializer expression for object initializer method `obinit` - * in compilation `comp`. - */ - AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { - obinit.initializes(result) and - result = - rank[i + 1](AssignExpr ae0, Location l | - obinit.initializes(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() { - this.getFile().fromSource() and - ( - this = - any(Callable c | - c.(Constructor).hasInitializer() - or - c.(ObjectInitMethod).initializes(_) - or - c.hasBody() - ) - or - // For now, static initializer values have their own scope. Eventually, they - // should be treated like instance initializers. - this.(Assignable).(Modifiable).isStatic() and - expr_parent_top_level_adjusted2(_, _, this) - ) - } -} - -private class TAstNode = @callable or @control_flow_element; - -pragma[nomagic] -private predicate astNode(Element e) { - e = any(@top_level_exprorstmt_parent p | not p instanceof Attribute) - or - exists(Element parent | - astNode(parent) and - e = parent.getAChild() - ) -} - -/** An AST node. */ -class AstNode extends Element, TAstNode { - AstNode() { astNode(this) } - - int getId() { idOf(this, result) } -} - -private predicate id(AstNode x, AstNode y) { x = y } - -private predicate idOf(AstNode x, int y) = equivalenceRelation(id/2)(x, y) - -private module CfgInput implements CfgShared::InputSig { - private import ControlFlowGraphImpl as Impl - private import Completion as Comp - private import SuccessorType as ST - private import semmle.code.csharp.Caching - - class AstNode = Impl::AstNode; - - class Completion = Comp::Completion; - - predicate completionIsNormal(Completion c) { c instanceof Comp::NormalCompletion } - - predicate completionIsSimple(Completion c) { c instanceof Comp::SimpleCompletion } - - predicate completionIsValidFor(Completion c, AstNode e) { c.isValidFor(e) } - - class CfgScope = Impl::CfgScope; - - CfgScope getCfgScope(AstNode n) { - Stages::ControlFlowStage::forceCachingInSameStage() and - result = n.(ControlFlowElement).getEnclosingCallable() - } - - predicate scopeFirst(CfgScope scope, AstNode first) { Impl::scopeFirst(scope, first) } - - predicate scopeLast(CfgScope scope, AstNode last, Completion c) { - Impl::scopeLast(scope, last, c) - } - - private class SuccessorType = ST::SuccessorType; - - SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() } - - int idOfAstNode(AstNode node) { result = node.getId() } - - int idOfCfgScope(CfgScope node) { result = idOfAstNode(node) } -} - -private module CfgSplittingInput implements CfgShared::SplittingInputSig { - private import Splitting as S - - class SplitKindBase = S::TSplitKind; - - class Split = S::Split; -} - -private module ConditionalCompletionSplittingInput implements - CfgShared::ConditionalCompletionSplittingInputSig -{ - import Splitting::ConditionalCompletionSplitting::ConditionalCompletionSplittingInput -} - -import CfgShared::MakeWithSplitting - -/** - * A compilation. - * - * Unlike the standard `Compilation` class, this class also supports buildless - * extraction. - */ -newtype CompilationExt = - TCompilation(Compilation c) { not extractionIsStandalone() } or - TBuildless() { extractionIsStandalone() } - -/** Gets the compilation that source file `f` belongs to. */ -CompilationExt getCompilation(File f) { - exists(Compilation c | - f = c.getAFileCompiled() and - result = TCompilation(c) - ) - or - result = TBuildless() -} - -/** - * The `expr_parent_top_level_adjusted()` relation restricted to exclude relations - * between properties and their getters' expression bodies in properties such as - * `int P => 0`. - * - * This is in order to only associate the expression body with one CFG scope, namely - * the getter (and not the declaration itself). - */ -private predicate expr_parent_top_level_adjusted2( - Expr child, int i, @top_level_exprorstmt_parent parent -) { - expr_parent_top_level_adjusted(child, i, parent) and - not exists(Getter g | - g.getDeclaration() = parent and - i = 0 - ) -} - -/** Holds if `first` is first executed when entering `scope`. */ -predicate scopeFirst(CfgScope scope, AstNode first) { - scope = - any(Callable c | - if exists(c.(Constructor).getObjectInitializerCall()) - then first(c.(Constructor).getObjectInitializerCall(), first) - else - 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 -} - -/** Holds if `scope` is exited when `last` finishes with completion `c`. */ -predicate scopeLast(CfgScope scope, AstNode last, Completion c) { - scope = - any(Callable callable | - last(callable.getBody(), last, c) and - not c instanceof GotoCompletion - or - 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() } - - final override predicate first(AstNode first) { none() } - - final override predicate last(AstNode last, Completion c) { none() } - - /** Gets the body of this constructor belonging to compilation `comp`. */ - pragma[noinline] - AstNode getBody(CompilationExt comp) { - result = super.getBody() and - 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 | - last(this.getObjectInitializerCall(comp), pred, c) and - c instanceof NormalCompletion - | - first(this.getInitializer(comp), succ) - 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. - not exists(this.getInitializer(comp)) and - first(this.getBody(comp), succ) - ) - } -} - -cached -private module SwithStmtInternal { - // Reorders default to be last if needed - cached - CaseStmt getCase(SwitchStmt ss, int i) { - exists(int index, int rankIndex | - caseIndex(ss, result, index) and - rankIndex = i + 1 and - index = rank[rankIndex](int j, CaseStmt cs | caseIndex(ss, cs, j) | j) - ) - } - - /** Implicitly reorder case statements to put the default case last if needed. */ - private predicate caseIndex(SwitchStmt ss, CaseStmt case, int index) { - exists(int i | case = ss.getChildStmt(i) | - if case instanceof DefaultCase - then index = max(int j | exists(ss.getChildStmt(j))) + 1 - else index = i - ) - } - - /** - * Gets the `i`th statement in the body of this `switch` statement. - * - * Example: - * - * ```csharp - * switch (x) { - * case "abc": // i = 0 - * return 0; - * case int i when i > 0: // i = 1 - * return 1; - * case string s: // i = 2 - * Console.WriteLine(s); - * return 2; // i = 3 - * default: // i = 4 - * return 3; // i = 5 - * } - * ``` - * - * Note that each non-`default` case is a labeled statement, so the statement - * that follows is a child of the labeled statement, and not the `switch` block. - */ - cached - Stmt getStmt(SwitchStmt ss, int i) { - exists(int index, int rankIndex | - result = ss.getChildStmt(index) and - rankIndex = i + 1 and - index = - rank[rankIndex](int j, Stmt s | - // `getChild` includes both labeled statements and the targeted - // statements of labeled statement as separate children, but we - // only want the labeled statement - s = getLabeledStmt(ss, j) - | - j - ) - ) - } - - private Stmt getLabeledStmt(SwitchStmt ss, int i) { - result = ss.getChildStmt(i) and - not result = caseStmtGetBody(_) - } -} - -private ControlFlowElement caseGetBody(Case c) { - result = c.getBody() or result = caseStmtGetBody(c) -} - -private ControlFlowElement caseStmtGetBody(CaseStmt c) { - exists(int i, Stmt next | - c = c.getParent().getChild(i) and - next = c.getParent().getChild(i + 1) - | - result = next and - not result instanceof CaseStmt - or - result = caseStmtGetBody(next) - ) -} - -// Reorders default to be last if needed -private Case switchGetCase(Switch s, int i) { - result = s.(SwitchExpr).getCase(i) or result = SwithStmtInternal::getCase(s, i) -} - -abstract private class SwitchTree extends ControlFlowTree instanceof Switch { - override predicate propagatesAbnormal(AstNode child) { child = super.getExpr() } - - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of switch expression to first element of first case - last(super.getExpr(), pred, c) and - c instanceof NormalCompletion and - first(switchGetCase(this, 0), succ) - or - // Flow from last element of case pattern to next case - exists(Case case, int i | case = switchGetCase(this, i) | - last(case.getPattern(), pred, c) and - c.(MatchingCompletion).isNonMatch() and - first(switchGetCase(this, i + 1), succ) - ) - or - // Flow from last element of condition to next case - exists(Case case, int i | case = switchGetCase(this, i) | - last(case.getCondition(), pred, c) and - c instanceof FalseCompletion and - first(switchGetCase(this, i + 1), succ) - ) - } -} - -abstract private class CaseTree extends ControlFlowTree instanceof Case { - final override predicate propagatesAbnormal(AstNode child) { - child in [super.getPattern().(ControlFlowElement), super.getCondition(), caseGetBody(this)] - } - - override predicate succ(AstNode pred, AstNode succ, Completion c) { - last(super.getPattern(), pred, c) and - c.(MatchingCompletion).isMatch() and - ( - if exists(super.getCondition()) - then - // Flow from the last element of pattern to the condition - first(super.getCondition(), succ) - else - // Flow from last element of pattern to first element of body - first(caseGetBody(this), succ) - ) - or - // Flow from last element of condition to first element of body - last(super.getCondition(), pred, c) and - c instanceof TrueCompletion and - first(caseGetBody(this), succ) - } -} - -module Expressions { - /** An expression that should not be included in the control flow graph. */ - abstract private class NoNodeExpr extends Expr { } - - private class SimpleNoNodeExpr extends NoNodeExpr { - SimpleNoNodeExpr() { - this instanceof TypeAccess and - not this instanceof TypeAccessPatternExpr - } - } - - /** A write access that is not also a read access. */ - private class WriteAccess extends AssignableWrite { - WriteAccess() { - // `x++` is both a read and write access - not this instanceof AssignableRead - } - } - - private class WriteAccessNoNodeExpr extends WriteAccess, NoNodeExpr { - WriteAccessNoNodeExpr() { - // For example a write to a static field, `Foo.Bar = 0`. - forall(Expr e | e = this.getAChildExpr() | e instanceof NoNodeExpr) - } - } - - private AstNode getExprChild0(Expr e, int i) { - not e instanceof NameOfExpr and - not e instanceof QualifiableExpr and - not e instanceof AnonymousFunctionExpr and - result = e.getChild(i) - or - e = any(ExtensionMethodCall emc | result = emc.getArgument(i)) - or - e = - any(QualifiableExpr qe | - not qe instanceof ExtensionMethodCall and - result = qe.getChild(i) - ) - } - - private AstNode getExprChild(Expr e, int i) { - result = - rank[i + 1](AstNode cfe, int j | - cfe = getExprChild0(e, j) and - not cfe instanceof NoNodeExpr - | - cfe order by j - ) - } - - private AstNode getLastExprChild(Expr e) { - exists(int last | - result = getExprChild(e, last) and - not exists(getExprChild(e, last + 1)) - ) - } - - private class StandardExpr extends StandardPostOrderTree instanceof Expr { - StandardExpr() { - // The following expressions need special treatment - not this instanceof LogicalNotExpr and - not this instanceof LogicalAndExpr and - not this instanceof LogicalOrExpr and - not this instanceof NullCoalescingOperation and - not this instanceof ConditionalExpr and - not this instanceof ConditionallyQualifiedExpr and - not this instanceof ThrowExpr and - not this instanceof ObjectCreation and - not this instanceof ArrayCreation and - not this instanceof QualifiedWriteAccess and - not this instanceof QualifiedAccessorWrite and - not this instanceof NoNodeExpr and - not this instanceof SwitchExpr and - not this instanceof SwitchCaseExpr and - not this instanceof ConstructorInitializer and - not this instanceof NotPatternExpr and - not this instanceof OrPatternExpr and - not this instanceof AndPatternExpr and - not this instanceof RecursivePatternExpr and - not this instanceof PositionalPatternExpr and - not this instanceof PropertyPatternExpr - } - - final override AstNode getChildNode(int i) { result = getExprChild(this, i) } - } - - /** - * A qualified write access. - * - * The successor declaration in `QualifiedAccessorWrite` ensures that the access itself - * is evaluated after the qualifier and the indexer arguments (if any) - * and the right hand side of the assignment. - * - * When a qualified write access is used as an `out/ref` argument, the access itself is evaluated immediately. - */ - private class QualifiedWriteAccess extends ControlFlowTree instanceof WriteAccess, QualifiableExpr - { - QualifiedWriteAccess() { - ( - this.hasQualifier() - or - // Member initializers like - // ```csharp - // new Dictionary() { [0] = "Zero", [1] = "One", [2] = "Two" } - // ``` - // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` - // have no qualifier. - this = any(MemberInitializer mi).getLeftOperand() - ) and - not exists(AssignableDefinitions::OutRefDefinition def | def.getTargetAccess() = this) - } - - final override predicate propagatesAbnormal(AstNode child) { child = getExprChild(this, _) } - - final override predicate first(AstNode first) { first(getExprChild(this, 0), first) } - - final override predicate last(AstNode last, Completion c) { - // Skip the access in a qualified write access - last(getLastExprChild(this), last, c) - or - // Qualifier exits with a null completion - super.isConditional() and - last(super.getQualifier(), last, c) and - c.(NullnessCompletion).isNull() - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - exists(int i | - last(getExprChild(this, i), pred, c) and - c instanceof NormalCompletion and - (if i = 0 then not c.(NullnessCompletion).isNull() else any()) and - first(getExprChild(this, i + 1), succ) - ) - } - } - - /** - * An expression that writes via a qualifiable expression, for example `x.Prop = 0`, - * where `Prop` is a property. - * - * Accessor writes need special attention, because we need to model the fact - * that the accessor is called *after* the assigned value has been evaluated. - * In the example above, this means we want a CFG that looks like - * - * ```csharp - * x -> 0 -> set_Prop -> x.Prop = 0 - * ``` - * - * For consistency, control flow is implemented the same way for other qualified writes. - * For example, `x.Field = 0`, where `Field` is a field, we want a CFG that looks like - * - * ```csharp - * x -> 0 -> x.Field -> x.Field = 0 - * ``` - */ - private class QualifiedAccessorWrite extends PostOrderTree instanceof Expr { - AssignableDefinition def; - - QualifiedAccessorWrite() { - def.getExpr() = this and - def.getTargetAccess().(WriteAccess) instanceof QualifiableExpr and - not def instanceof AssignableDefinitions::OutRefDefinition - } - - /** - * Gets the `i`th accessor being called in this write. More than one call - * can happen in tuple assignments. - */ - QualifiableExpr getAccess(int i) { - result = - rank[i + 1](AssignableDefinitions::TupleAssignmentDefinition tdef | - tdef.getExpr() = this and - tdef.getTargetAccess() instanceof QualifiableExpr - | - tdef order by tdef.getEvaluationOrder() - ).getTargetAccess() - or - i = 0 and - result = def.getTargetAccess() and - not def instanceof AssignableDefinitions::TupleAssignmentDefinition - } - - final override predicate propagatesAbnormal(AstNode child) { - child = getExprChild(this, _) - or - child = this.getAccess(_) - } - - final override predicate last(AstNode last, Completion c) { - PostOrderTree.super.last(last, c) - or - last(getExprChild(this, 0), last, c) and c.(NullnessCompletion).isNull() - } - - final override predicate first(AstNode first) { first(getExprChild(this, 0), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Standard left-to-right evaluation - exists(int i | - last(getExprChild(this, i), pred, c) and - c instanceof NormalCompletion and - (if i = 0 then not c.(NullnessCompletion).isNull() else any()) and - first(getExprChild(this, i + 1), succ) - ) - or - // Flow from last element of last child to first accessor call - last(getLastExprChild(this), pred, c) and - succ = this.getAccess(0) and - c instanceof NormalCompletion - or - // Flow from one call to the next - exists(int i | pred = this.getAccess(i) | - succ = this.getAccess(i + 1) and - c.isValidFor(pred) and - c instanceof NormalCompletion - ) - or - // Post-order: flow from last call to element itself - exists(int last | last = max(int i | exists(this.getAccess(i))) | - pred = this.getAccess(last) and - succ = this and - c.isValidFor(pred) and - c instanceof NormalCompletion - ) - } - } - - private class LogicalNotExprTree extends PostOrderTree instanceof LogicalNotExpr { - private Expr operand; - - LogicalNotExprTree() { operand = this.getOperand() } - - final override predicate propagatesAbnormal(AstNode child) { child = operand } - - final override predicate first(AstNode first) { first(operand, first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - succ = this and - last(operand, pred, c) and - c instanceof NormalCompletion - } - } - - private class LogicalAndExprTree extends PostOrderTree instanceof LogicalAndExpr { - final override predicate propagatesAbnormal(AstNode child) { - child in [super.getLeftOperand(), super.getRightOperand()] - } - - final override predicate first(AstNode first) { first(super.getLeftOperand(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of left operand to first element of right operand - last(super.getLeftOperand(), pred, c) and - c instanceof TrueCompletion and - first(super.getRightOperand(), succ) - or - // Post-order: flow from last element of left operand to element itself - last(super.getLeftOperand(), pred, c) and - c instanceof FalseCompletion and - succ = this - or - // Post-order: flow from last element of right operand to element itself - last(super.getRightOperand(), pred, c) and - c instanceof NormalCompletion and - succ = this - } - } - - private class LogicalOrExprTree extends PostOrderTree instanceof LogicalOrExpr { - final override predicate propagatesAbnormal(AstNode child) { - child in [super.getLeftOperand(), super.getRightOperand()] - } - - final override predicate first(AstNode first) { first(super.getLeftOperand(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of left operand to first element of right operand - last(super.getLeftOperand(), pred, c) and - c instanceof FalseCompletion and - first(super.getRightOperand(), succ) - or - // Post-order: flow from last element of left operand to element itself - last(super.getLeftOperand(), pred, c) and - c instanceof TrueCompletion and - succ = this - or - // Post-order: flow from last element of right operand to element itself - last(super.getRightOperand(), pred, c) and - c instanceof NormalCompletion and - succ = this - } - } - - private class NullCoalescingOperationTree extends PostOrderTree instanceof NullCoalescingOperation - { - final override predicate propagatesAbnormal(AstNode child) { - child in [super.getLeftOperand(), super.getRightOperand()] - } - - final override predicate first(AstNode first) { first(super.getLeftOperand(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of left operand to first element of right operand - last(super.getLeftOperand(), pred, c) and - c.(NullnessCompletion).isNull() and - first(super.getRightOperand(), succ) - or - // Post-order: flow from last element of left operand to element itself - last(super.getLeftOperand(), pred, c) and - succ = this and - c instanceof NormalCompletion and - not c.(NullnessCompletion).isNull() - or - // Post-order: flow from last element of right operand to element itself - last(super.getRightOperand(), pred, c) and - c instanceof NormalCompletion and - succ = this - } - } - - private class ConditionalExprTree extends PostOrderTree instanceof ConditionalExpr { - final override predicate propagatesAbnormal(AstNode child) { - child in [super.getCondition(), super.getThen(), super.getElse()] - } - - final override predicate first(AstNode first) { first(super.getCondition(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of condition to first element of then branch - last(super.getCondition(), pred, c) and - c instanceof TrueCompletion and - first(super.getThen(), succ) - or - // Flow from last element of condition to first element of else branch - last(super.getCondition(), pred, c) and - c instanceof FalseCompletion and - first(super.getElse(), succ) - or - // Post-order: flow from last element of a branch to element itself - last([super.getThen(), super.getElse()], pred, c) and - c instanceof NormalCompletion and - succ = this - } - } - - /** A conditionally qualified expression. */ - private class ConditionallyQualifiedExpr extends PostOrderTree instanceof QualifiableExpr { - private Expr qualifier; - - ConditionallyQualifiedExpr() { - this.isConditional() and qualifier = getExprChild(this, 0) and not this instanceof WriteAccess - } - - final override predicate propagatesAbnormal(AstNode child) { child = qualifier } - - final override predicate first(AstNode first) { first(qualifier, first) } - - pragma[nomagic] - private predicate lastQualifier(AstNode last, Completion c) { last(qualifier, last, c) } - - final override predicate last(AstNode last, Completion c) { - PostOrderTree.super.last(last, c) - or - // Qualifier exits with a `null` completion - this.lastQualifier(last, c) and - c.(NullnessCompletion).isNull() - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - exists(int i | - last(getExprChild(this, i), pred, c) and - c instanceof NormalCompletion and - if i = 0 then c.(NullnessCompletion).isNonNull() else any() - | - // Post-order: flow from last element of last child to element itself - i = max(int j | exists(getExprChild(this, j))) and - succ = this - or - // Standard left-to-right evaluation - first(getExprChild(this, i + 1), succ) - ) - } - } - - private class ThrowExprTree extends PostOrderTree instanceof ThrowExpr { - final override predicate propagatesAbnormal(AstNode child) { child = super.getExpr() } - - final override predicate first(AstNode first) { first(super.getExpr(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - last(super.getExpr(), pred, c) and - c instanceof NormalCompletion and - succ = this - } - } - - private class ObjectCreationTree extends ControlFlowTree instanceof ObjectCreation { - private Expr getObjectCreationArgument(int i) { - i >= 0 and - if super.hasInitializer() - then result = getExprChild(this, i + 1) - else result = getExprChild(this, i) - } - - final override predicate propagatesAbnormal(AstNode child) { - child = this.getObjectCreationArgument(_) - } - - final override predicate first(AstNode first) { - first(this.getObjectCreationArgument(0), first) - or - not exists(this.getObjectCreationArgument(0)) and - first = this - } - - final override predicate last(AstNode last, Completion c) { - // Post-order: element itself (when no initializer) - last = this and - not super.hasInitializer() and - c.isValidFor(this) - or - // Last element of initializer - last(super.getInitializer(), last, c) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of argument `i` to first element of argument `i+1` - exists(int i | last(this.getObjectCreationArgument(i), pred, c) | - first(this.getObjectCreationArgument(i + 1), succ) and - c instanceof NormalCompletion - ) - or - // Flow from last element of last argument to self - exists(int last | last = max(int i | exists(this.getObjectCreationArgument(i))) | - last(this.getObjectCreationArgument(last), pred, c) and - succ = this and - c instanceof NormalCompletion - ) - or - // Flow from self to first element of initializer - pred = this and - first(super.getInitializer(), succ) and - c instanceof SimpleCompletion - } - } - - private class ArrayCreationTree extends ControlFlowTree instanceof ArrayCreation { - final override predicate propagatesAbnormal(AstNode child) { - child = super.getALengthArgument() - } - - final override predicate first(AstNode first) { - // First element of first length argument - first(super.getLengthArgument(0), first) - or - // No length argument: element itself - not exists(super.getLengthArgument(0)) and - first = this - } - - final override predicate last(AstNode last, Completion c) { - // Post-order: element itself (when no initializer) - last = this and - not super.hasInitializer() and - c.isValidFor(this) - or - // Last element of initializer - last(super.getInitializer(), last, c) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from self to first element of initializer - pred = this and - first(super.getInitializer(), succ) and - c instanceof SimpleCompletion - or - exists(int i | - last(super.getLengthArgument(i), pred, c) and - c instanceof SimpleCompletion - | - // Flow from last length argument to self - i = max(int j | exists(super.getLengthArgument(j))) and - succ = this - or - // Flow from one length argument to the next - first(super.getLengthArgument(i + 1), succ) - ) - } - } - - private class SwitchExprTree extends PostOrderTree, SwitchTree instanceof SwitchExpr { - final override predicate propagatesAbnormal(AstNode child) { - SwitchTree.super.propagatesAbnormal(child) - or - child = super.getACase() - } - - final override predicate first(AstNode first) { first(super.getExpr(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - SwitchTree.super.succ(pred, succ, c) - or - last(super.getACase(), pred, c) and - succ = this and - c instanceof NormalCompletion - } - } - - private class SwitchCaseExprTree extends PostOrderTree, CaseTree instanceof SwitchCaseExpr { - final override predicate first(AstNode first) { first(super.getPattern(), first) } - - pragma[noinline] - private predicate lastNoMatch(AstNode last, ConditionalCompletion cc) { - last([super.getPattern(), super.getCondition()], last, cc) and - (cc.(MatchingCompletion).isNonMatch() or cc instanceof FalseCompletion) - } - - final override predicate last(AstNode last, Completion c) { - PostOrderTree.super.last(last, c) - or - // Last case exists with a non-match - exists(SwitchExpr se, int i, ConditionalCompletion cc | - this = se.getCase(i) and - not super.matchesAll() and - not exists(se.getCase(i + 1)) and - this.lastNoMatch(last, cc) and - c = - any(NestedCompletion nc | - nc.getNestLevel() = 0 and - nc.getInnerCompletion() = cc and - nc.getOuterCompletion() - .(ThrowCompletion) - .getExceptionClass() - .hasFullyQualifiedName("System", "InvalidOperationException") - ) - ) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - CaseTree.super.succ(pred, succ, c) - or - last(super.getBody(), pred, c) and - succ = this and - c instanceof NormalCompletion - } - } - - private class ConstructorInitializerTree extends PostOrderTree instanceof ConstructorInitializer { - private ControlFlowTree getChildNode(int i) { result = getExprChild(this, i) } - - final override predicate propagatesAbnormal(AstNode child) { child = this.getChildNode(_) } - - final override predicate first(AstNode first) { - first(this.getChildNode(0), first) - or - not exists(this.getChildNode(0)) and - first = this - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Post-order: flow from last element of last child to element itself - exists(int lst | - lst = max(int i | exists(this.getChildNode(i))) and - last(this.getChildNode(lst), pred, c) and - succ = this and - c instanceof NormalCompletion - ) - or - // Standard left-to-right evaluation - exists(int i | - last(this.getChildNode(i), pred, c) and - c instanceof NormalCompletion and - first(this.getChildNode(i + 1), succ) - ) - or - exists(ConstructorTree con, CompilationExt comp | - last(this, pred, c) and - con = super.getConstructor() and - comp = getCompilation(this.getFile()) and - c instanceof NormalCompletion and - first(con.getBody(comp), succ) - ) - } - } - - private class NotPatternExprTree extends PostOrderTree instanceof NotPatternExpr { - final override predicate propagatesAbnormal(AstNode child) { child = super.getPattern() } - - final override predicate first(AstNode first) { first(super.getPattern(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - succ = this and - last(super.getPattern(), pred, c) and - c instanceof NormalCompletion - } - } - - private class AndPatternExprTree extends PostOrderTree instanceof AndPatternExpr { - final override predicate propagatesAbnormal(AstNode child) { child = super.getAnOperand() } - - final override predicate first(AstNode first) { first(super.getLeftOperand(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of left operand to first element of right operand - last(super.getLeftOperand(), pred, c) and - c.(MatchingCompletion).getValue() = true and - first(super.getRightOperand(), succ) - or - // Post-order: flow from last element of left operand to element itself - last(super.getLeftOperand(), pred, c) and - c.(MatchingCompletion).getValue() = false and - succ = this - or - // Post-order: flow from last element of right operand to element itself - last(super.getRightOperand(), pred, c) and - c instanceof MatchingCompletion and - succ = this - } - } - - private class OrPatternExprTree extends PostOrderTree instanceof OrPatternExpr { - final override predicate propagatesAbnormal(AstNode child) { child = super.getAnOperand() } - - final override predicate first(AstNode first) { first(super.getLeftOperand(), first) } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of left operand to first element of right operand - last(super.getLeftOperand(), pred, c) and - c.(MatchingCompletion).getValue() = false and - first(super.getRightOperand(), succ) - or - // Post-order: flow from last element of left operand to element itself - last(super.getLeftOperand(), pred, c) and - c.(MatchingCompletion).getValue() = true and - succ = this - or - // Post-order: flow from last element of right operand to element itself - last(super.getRightOperand(), pred, c) and - c instanceof MatchingCompletion and - succ = this - } - } -} - -private class RecursivePatternExprTree extends PostOrderTree instanceof RecursivePatternExpr { - private Expr getTypeExpr() { - result = super.getVariableDeclExpr() - or - not exists(super.getVariableDeclExpr()) and - result = super.getTypeAccess() - } - - private PatternExpr getChildPattern() { - result = super.getPositionalPatterns() - or - result = super.getPropertyPatterns() - } - - final override predicate propagatesAbnormal(AstNode child) { child = this.getChildPattern() } - - final override predicate first(AstNode first) { - first(this.getTypeExpr(), first) - or - not exists(this.getTypeExpr()) and - first(this.getChildPattern(), first) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from type test to child pattern - last(this.getTypeExpr(), pred, c) and - first(this.getChildPattern(), succ) and - c.(MatchingCompletion).getValue() = true - or - // Flow from type test to self - last(this.getTypeExpr(), pred, c) and - succ = this and - c.(MatchingCompletion).getValue() = false - or - // Flow from child pattern to self - last(this.getChildPattern(), pred, c) and - succ = this and - c instanceof MatchingCompletion - } -} - -private class PositionalPatternExprTree extends PreOrderTree instanceof PositionalPatternExpr { - final override predicate propagatesAbnormal(AstNode child) { child = super.getPattern(_) } - - final override predicate last(AstNode last, Completion c) { - last = this and - c.(MatchingCompletion).getValue() = false - or - last(super.getPattern(_), last, c) and - c.(MatchingCompletion).getValue() = false - or - exists(int lst | - last(super.getPattern(lst), last, c) and - not exists(super.getPattern(lst + 1)) - ) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from self to first pattern - pred = this and - c.(MatchingCompletion).getValue() = true and - first(super.getPattern(0), succ) - or - // Flow from one pattern to the next - exists(int i | - last(super.getPattern(i), pred, c) and - c.(MatchingCompletion).getValue() = true and - first(super.getPattern(i + 1), succ) - ) - } -} - -private class PropertyPatternExprExprTree extends PostOrderTree instanceof PropertyPatternExpr { - final override predicate propagatesAbnormal(AstNode child) { child = super.getPattern(_) } - - final override predicate first(AstNode first) { - first(super.getPattern(0), first) - or - not exists(super.getPattern(0)) and - first = this - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from one pattern to the next - exists(int i | - last(super.getPattern(i), pred, c) and - c.(MatchingCompletion).getValue() = true and - first(super.getPattern(i + 1), succ) - ) - or - // Post-order: flow from last element of failing pattern to element itself - last(super.getPattern(_), pred, c) and - c.(MatchingCompletion).getValue() = false and - succ = this - or - // Post-order: flow from last element of last pattern to element itself - exists(int last | - last(super.getPattern(last), pred, c) and - not exists(super.getPattern(last + 1)) and - c instanceof MatchingCompletion and - succ = this - ) - } -} - -module Statements { - private class StandardStmt extends StandardPreOrderTree instanceof Stmt { - StandardStmt() { - // The following statements need special treatment - not this instanceof IfStmt and - not this instanceof SwitchStmt and - not this instanceof CaseStmt and - not this instanceof LoopStmt and - not this instanceof TryStmt and - not this instanceof SpecificCatchClause and - not this instanceof JumpStmt and - not this instanceof LabeledStmt - } - - private ControlFlowTree getChildNode0(int i) { - not this instanceof GeneralCatchClause and - not this instanceof FixedStmt and - not this instanceof UsingBlockStmt and - result = this.getChild(i) - or - this = any(GeneralCatchClause gcc | i = 0 and result = gcc.getBlock()) - or - this = - any(FixedStmt fs | - result = fs.getVariableDeclExpr(i) - or - result = fs.getBody() and - i = max(int j | exists(fs.getVariableDeclExpr(j))) + 1 - ) - or - this = - any(UsingBlockStmt us | - result = us.getExpr() and - i = 0 - or - result = us.getVariableDeclExpr(i) - or - result = us.getBody() and - i = max([1, count(us.getVariableDeclExpr(_))]) - ) - } - - final override AstNode getChildNode(int i) { - result = rank[i + 1](AstNode cfe, int j | cfe = this.getChildNode0(j) | cfe order by j) - } - } - - private class IfStmtTree extends PreOrderTree instanceof IfStmt { - final override predicate propagatesAbnormal(AstNode child) { child = super.getCondition() } - - final override predicate last(AstNode last, Completion c) { - // Condition exits with a false completion and there is no `else` branch - last(super.getCondition(), last, c) and - c instanceof FalseCompletion and - not exists(super.getElse()) - or - // Then branch exits with any completion - last(super.getThen(), last, c) - or - // Else branch exits with any completion - last(super.getElse(), last, c) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Pre-order: flow from statement itself to first element of condition - pred = this and - first(super.getCondition(), succ) and - c instanceof SimpleCompletion - or - last(super.getCondition(), pred, c) and - ( - // Flow from last element of condition to first element of then branch - c instanceof TrueCompletion and first(super.getThen(), succ) - or - // Flow from last element of condition to first element of else branch - c instanceof FalseCompletion and first(super.getElse(), succ) - ) - } - } - - private class SwitchStmtTree extends PreOrderTree, SwitchTree instanceof SwitchStmt { - final override predicate last(AstNode last, Completion c) { - // Switch expression exits normally and there are no cases - not exists(super.getACase()) and - last(super.getExpr(), last, c) and - c instanceof NormalCompletion - or - // A statement exits with a `break` completion - last(SwithStmtInternal::getStmt(this, _), last, - c.(NestedBreakCompletion).getAnInnerCompatibleCompletion()) - or - // A statement exits abnormally - last(SwithStmtInternal::getStmt(this, _), last, c) and - not c instanceof BreakCompletion and - not c instanceof NormalCompletion and - not any(LabeledStmtTree t | - t.hasLabelInCallable(c.(GotoCompletion).getLabel(), super.getEnclosingCallable()) - ) instanceof CaseStmt - or - // Last case exits with a non-match - exists(CaseStmt cs, int last_ | - last_ = max(int i | exists(SwithStmtInternal::getCase(this, i))) and - cs = SwithStmtInternal::getCase(this, last_) - | - last(cs.getPattern(), last, c) and - not c.(MatchingCompletion).isMatch() - or - last(cs.getCondition(), last, c) and - c instanceof FalseCompletion - ) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - SwitchTree.super.succ(pred, succ, c) - or - // Pre-order: flow from statement itself to first switch expression - pred = this and - first(super.getExpr(), succ) and - c instanceof SimpleCompletion - or - // Flow from last element of non-`case` statement `i` to first element of statement `i+1` - exists(int i | last(SwithStmtInternal::getStmt(this, i), pred, c) | - not SwithStmtInternal::getStmt(this, i) instanceof CaseStmt and - c instanceof NormalCompletion and - first(SwithStmtInternal::getStmt(this, i + 1), succ) - ) - or - // Flow from last element of `case` statement `i` to first element of statement `i+1` - exists(int i, Stmt body | - body = caseStmtGetBody(SwithStmtInternal::getStmt(this, i)) and - // in case of fall-through cases, make sure to not jump from their shared body back - // to one of the fall-through cases - not body = caseStmtGetBody(SwithStmtInternal::getStmt(this, i + 1)) and - last(body, pred, c) - | - c instanceof NormalCompletion and - first(SwithStmtInternal::getStmt(this, i + 1), succ) - ) - } - } - - private class CaseStmtTree extends PreOrderTree, CaseTree instanceof CaseStmt { - final override predicate last(AstNode last, Completion c) { - // Condition exists with a `false` completion - last(super.getCondition(), last, c) and - c instanceof FalseCompletion - or - // Case pattern exits with a non-match - last(super.getPattern(), last, c) and - not c.(MatchingCompletion).isMatch() - or - // Case body exits with any completion - last(caseStmtGetBody(this), last, c) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - CaseTree.super.succ(pred, succ, c) - or - pred = this and - first(super.getPattern(), succ) and - c instanceof SimpleCompletion - } - } - - abstract private class LoopStmtTree extends PreOrderTree instanceof LoopStmt { - final override predicate propagatesAbnormal(AstNode child) { child = super.getCondition() } - - final override predicate last(AstNode last, Completion c) { - // Condition exits with a false completion - last(super.getCondition(), last, c) and - c instanceof FalseCompletion - or - // Body exits with a break completion - last(super.getBody(), last, c.(NestedBreakCompletion).getAnInnerCompatibleCompletion()) - or - // Body exits with a completion that does not continue the loop - last(super.getBody(), last, c) and - not c instanceof BreakCompletion and - not c.continuesLoop() - } - - override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of condition to first element of loop body - last(super.getCondition(), pred, c) and - c instanceof TrueCompletion and - first(super.getBody(), succ) - or - // Flow from last element of loop body back to first element of condition - not this instanceof ForStmt and - last(super.getBody(), pred, c) and - c.continuesLoop() and - first(super.getCondition(), succ) - } - } - - private class WhileStmtTree extends LoopStmtTree instanceof WhileStmt { - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - LoopStmtTree.super.succ(pred, succ, c) - or - pred = this and - first(super.getCondition(), succ) and - c instanceof SimpleCompletion - } - } - - private class DoStmtTree extends LoopStmtTree instanceof DoStmt { - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - LoopStmtTree.super.succ(pred, succ, c) - or - pred = this and - first(super.getBody(), succ) and - c instanceof SimpleCompletion - } - } - - private class ForStmtTree extends LoopStmtTree instanceof ForStmt { - /** Gets the condition if it exists, otherwise the body. */ - private AstNode getConditionOrBody() { - result = super.getCondition() - or - not exists(super.getCondition()) and - result = super.getBody() - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - LoopStmtTree.super.succ(pred, succ, c) - or - // Pre-order: flow from statement itself to first element of first initializer/ - // condition/loop body - exists(AstNode next | - pred = this and - first(next, succ) and - c instanceof SimpleCompletion - | - next = super.getInitializer(0) - or - not exists(super.getInitializer(0)) and - next = this.getConditionOrBody() - ) - or - // Flow from last element of initializer `i` to first element of initializer `i+1` - exists(int i | last(super.getInitializer(i), pred, c) | - c instanceof NormalCompletion and - first(super.getInitializer(i + 1), succ) - ) - or - // Flow from last element of last initializer to first element of condition/loop body - exists(int last | last = max(int i | exists(super.getInitializer(i))) | - last(super.getInitializer(last), pred, c) and - c instanceof NormalCompletion and - first(this.getConditionOrBody(), succ) - ) - or - // Flow from last element of condition into first element of loop body - last(super.getCondition(), pred, c) and - c instanceof TrueCompletion and - first(super.getBody(), succ) - or - // Flow from last element of loop body to first element of update/condition/self - exists(AstNode next | - last(super.getBody(), pred, c) and - c.continuesLoop() and - first(next, succ) and - if exists(super.getUpdate(0)) - then next = super.getUpdate(0) - else next = this.getConditionOrBody() - ) - or - // Flow from last element of update to first element of next update/condition/loop body - exists(AstNode next, int i | - last(super.getUpdate(i), pred, c) and - c instanceof NormalCompletion and - first(next, succ) and - if exists(super.getUpdate(i + 1)) - then next = super.getUpdate(i + 1) - else next = this.getConditionOrBody() - ) - } - } - - private class ForeachStmtTree extends ControlFlowTree instanceof ForeachStmt { - final override predicate propagatesAbnormal(AstNode child) { child = super.getIterableExpr() } - - final override predicate first(AstNode first) { - // Unlike most other statements, `foreach` statements are not modeled in - // pre-order, because we use the `foreach` node itself to represent the - // emptiness test that determines whether to execute the loop body - first(super.getIterableExpr(), first) - } - - final override predicate last(AstNode last, Completion c) { - // Emptiness test exits with no more elements - last = this and - c.(EmptinessCompletion).isEmpty() - or - // Body exits with a break completion - last(super.getBody(), last, c.(NestedBreakCompletion).getAnInnerCompatibleCompletion()) - or - // Body exits abnormally - last(super.getBody(), last, c) and - not c instanceof NormalCompletion and - not c instanceof ContinueCompletion and - not c instanceof BreakCompletion - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from last element of iterator expression to emptiness test - last(super.getIterableExpr(), pred, c) and - c instanceof NormalCompletion and - succ = this - or - // Flow from emptiness test to first element of variable declaration/loop body - pred = this and - c = any(EmptinessCompletion ec | not ec.isEmpty()) and - ( - first(super.getVariableDeclExpr(), succ) - or - first(super.getVariableDeclTuple(), succ) - or - not exists(super.getVariableDeclExpr()) and - not exists(super.getVariableDeclTuple()) and - first(super.getBody(), succ) - ) - or - // Flow from last element of variable declaration to first element of loop body - ( - last(super.getVariableDeclExpr(), pred, c) or - last(super.getVariableDeclTuple(), pred, c) - ) and - c instanceof SimpleCompletion and - first(super.getBody(), succ) - or - // Flow from last element of loop body back to emptiness test - last(super.getBody(), pred, c) and - c.continuesLoop() and - succ = this - } - } - - pragma[nomagic] - private AstNode lastLastCatchClause(CatchClause cc, Completion c) { - cc.isLast() and - last(cc, result, c) - } - - pragma[nomagic] - private AstNode lastCatchClauseBlock(CatchClause cc, Completion c) { - last(cc.getBlock(), result, c) - } - - /** Gets a child of `cfe` that is in CFG scope `scope`. */ - pragma[noinline] - private ControlFlowElement getAChildInScope(AstNode cfe, Callable scope) { - result = cfe.getAChild() and - scope = result.getEnclosingCallable() - } - - class TryStmtTree extends PreOrderTree instanceof TryStmt { - final override predicate propagatesAbnormal(AstNode child) { child = super.getFinally() } - - /** - * Gets a descendant that belongs to the finally block of this try statement. - */ - AstNode getAFinallyDescendant() { - result = super.getFinally() - or - exists(ControlFlowElement mid | - mid = this.getAFinallyDescendant() and - result = getAChildInScope(mid, mid.getEnclosingCallable()) and - not exists(TryStmt nestedTry | - result = nestedTry.getFinally() and - nestedTry != this - ) - ) - } - - /** - * Holds if `innerTry` has a finally block and is immediately nested inside the - * finally block of this try statement. - */ - private predicate nestedFinally(TryStmt innerTry) { - exists(AstNode innerFinally | - innerFinally = getAChildInScope(this.getAFinallyDescendant(), super.getEnclosingCallable()) and - innerFinally = innerTry.getFinally() - ) - } - - /** - * Gets the finally-nesting level of this try statement. That is, the number of - * finally blocks that this try statement is nested under. - */ - int nestLevel() { result = count(TryStmtTree outer | outer.nestedFinally+(this)) } - - /** Holds if `last` is a last element of the block of this try statement. */ - pragma[nomagic] - predicate lastBlock(AstNode last, Completion c) { last(super.getBlock(), last, c) } - - /** - * Gets a last element from a `try` or `catch` block of this try statement - * that may finish with completion `c`, such that control may be transferred - * to the finally block (if it exists), but only if `finalizable = true`. - */ - pragma[nomagic] - AstNode getAFinallyPredecessor(Completion c, boolean finalizable) { - // Exit completions skip the finally block - (if c instanceof ExitCompletion then finalizable = false else finalizable = true) and - ( - this.lastBlock(result, c) and - ( - // Any non-throw completion from the `try` block will always continue directly - // to the finally block - not c instanceof ThrowCompletion - or - // Any completion from the `try` block will continue to the finally block - // when there are no catch clauses - not exists(super.getACatchClause()) - ) - or - // Last element from any of the `catch` clause blocks continues to the finally block - result = lastCatchClauseBlock(super.getACatchClause(), c) - or - // Last element of last `catch` clause continues to the finally block - result = lastLastCatchClause(super.getACatchClause(), c) - ) - } - - pragma[nomagic] - private predicate lastFinally0(AstNode last, Completion c) { last(super.getFinally(), last, c) } - - pragma[nomagic] - private predicate lastFinally( - AstNode last, NormalCompletion finally, Completion outer, int nestLevel - ) { - this.lastFinally0(last, finally) and - exists( - this.getAFinallyPredecessor(any(Completion c0 | outer = c0.getOuterCompletion()), true) - ) and - nestLevel = this.nestLevel() - } - - final override predicate last(AstNode last, Completion c) { - exists(boolean finalizable | last = this.getAFinallyPredecessor(c, finalizable) | - // If there is no finally block, last elements are from the body, from - // the blocks of one of the `catch` clauses, or from the last `catch` clause - not super.hasFinally() - or - finalizable = false - ) - or - this.lastFinally(last, c, any(NormalCompletion nc), _) - or - // If the finally block completes normally, it inherits any non-normal - // completion that was current before the finally block was entered - exists(int nestLevel | - c = - any(NestedCompletion nc | - this.lastFinally(last, nc.getAnInnerCompatibleCompletion(), nc.getOuterCompletion(), - nestLevel) and - // unbind - nc.getNestLevel() >= nestLevel and - nc.getNestLevel() <= nestLevel - ) - ) - } - - /** - * Gets an exception type that is thrown by `cfe` in the block of this `try` - * statement. Throw completion `c` matches the exception type. - */ - ExceptionClass getAThrownException(AstNode cfe, ThrowCompletion c) { - this.lastBlock(cfe, c) and - result = c.getExceptionClass() - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Pre-order: flow from statement itself to first element of body - pred = this and - first(super.getBlock(), succ) and - c instanceof SimpleCompletion - or - // Flow from last element of body to first `catch` clause - exists(this.getAThrownException(pred, c)) and - first(super.getCatchClause(0), succ) - or - exists(CatchClause cc, int i | cc = super.getCatchClause(i) | - // Flow from one `catch` clause to the next - pred = cc and - last(super.getCatchClause(i), cc, c) and - first(super.getCatchClause(i + 1), succ) and - c = any(MatchingCompletion mc | not mc.isMatch()) - or - // Flow from last element of `catch` clause filter to next `catch` clause - last(super.getCatchClause(i), pred, c) and - last(cc.getFilterClause(), pred, _) and - first(super.getCatchClause(i + 1), succ) and - c instanceof FalseCompletion - ) - or - // Flow into finally block - pred = this.getAFinallyPredecessor(c, true) and - first(super.getFinally(), succ) - } - } - - private class SpecificCatchClauseTree extends PreOrderTree instanceof SpecificCatchClause { - final override predicate propagatesAbnormal(AstNode child) { child = super.getFilterClause() } - - pragma[nomagic] - private predicate lastFilterClause(AstNode last, Completion c) { - last(super.getFilterClause(), last, c) - } - - /** - * Holds if the `try` block that this catch clause belongs to may throw an - * exception of type `c`, where no `catch` clause is guaranteed to catch it. - * This catch clause is the last catch clause in the try statement that - * it belongs to. - */ - pragma[nomagic] - private predicate throwMayBeUncaught(ThrowCompletion c) { - exists(TryStmt ts | - ts = super.getTryStmt() and - ts.(TryStmtTree).lastBlock(_, c) and - not ts.getACatchClause() instanceof GeneralCatchClause and - forall(SpecificCatchClause scc | scc = ts.getACatchClause() | - scc.hasFilterClause() - or - not c.getExceptionClass().getABaseType*() = scc.getCaughtExceptionType() - ) and - super.isLast() - ) - } - - final override predicate last(AstNode last, Completion c) { - // Last element of `catch` block - last(super.getBlock(), last, c) - or - not super.isLast() and - ( - // Incompatible exception type: clause itself - last = this and - c.(MatchingCompletion).isNonMatch() - or - // Incompatible filter - this.lastFilterClause(last, c) and - c instanceof FalseCompletion - ) - or - // Last `catch` clause inherits throw completions from the `try` block, - // when the clause does not match - super.isLast() and - c = - any(NestedCompletion nc | - nc.getNestLevel() = 0 and - this.throwMayBeUncaught(nc.getOuterCompletion()) and - ( - // Incompatible exception type: clause itself - last = this and - nc.getInnerCompletion() = - any(MatchingCompletion mc | - mc.isNonMatch() and - mc.isValidFor(this) - ) - or - // Incompatible filter - this.lastFilterClause(last, nc.getInnerCompletion().(FalseCompletion)) - ) - ) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - // Flow from catch clause to variable declaration/filter clause/block - pred = this and - c.(MatchingCompletion).isMatch() and - exists(AstNode next | first(next, succ) | - if exists(super.getVariableDeclExpr()) - then next = super.getVariableDeclExpr() - else - if exists(super.getFilterClause()) - then next = super.getFilterClause() - else next = super.getBlock() - ) - or - // Flow from variable declaration to filter clause/block - last(super.getVariableDeclExpr(), pred, c) and - c instanceof SimpleCompletion and - exists(AstNode next | first(next, succ) | - if exists(super.getFilterClause()) - then next = super.getFilterClause() - else next = super.getBlock() - ) - or - // Flow from filter to block - last(super.getFilterClause(), pred, c) and - c instanceof TrueCompletion and - first(super.getBlock(), succ) - } - } - - private class JumpStmtTree extends PostOrderTree instanceof JumpStmt { - final override predicate propagatesAbnormal(AstNode child) { child = this.getChild(0) } - - final override predicate first(AstNode first) { - first(this.getChild(0), first) - or - not exists(this.getChild(0)) and first = this - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - last(this.getChild(0), pred, c) and - succ = this and - c instanceof NormalCompletion - } - } - - pragma[nomagic] - private predicate goto(ControlFlowElement cfe, GotoCompletion gc, string label, Callable enclosing) { - last(_, cfe, gc) and - // Special case: when a `goto` happens inside a try statement with a - // finally block, flow does not go directly to the target, but instead - // to the finally block (and from there possibly to the target) - not cfe = - any(Statements::TryStmtTree t | t.(TryStmt).hasFinally()).getAFinallyPredecessor(_, true) and - label = gc.getLabel() and - enclosing = cfe.getEnclosingCallable() - } - - private class LabeledStmtTree extends PreOrderTree instanceof LabeledStmt { - final override predicate propagatesAbnormal(AstNode child) { none() } - - final override predicate last(AstNode last, Completion c) { - if this instanceof DefaultCase - then last(super.getStmt(), last, c) - else ( - not this instanceof CaseStmt and - last = this and - c.isValidFor(this) - ) - } - - pragma[noinline] - predicate hasLabelInCallable(string label, Callable c) { - super.getEnclosingCallable() = c and - label = super.getLabel() - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - this instanceof DefaultCase and - pred = this and - first(super.getStmt(), succ) and - c instanceof SimpleCompletion - or - // Flow from element with matching `goto` completion to this statement - exists(string label, Callable enclosing | - goto(pred, c, label, enclosing) and - this.hasLabelInCallable(label, enclosing) and - succ = this - ) - } - } -} - -/** A control flow element that is split into multiple control flow nodes. */ -class SplitAstNode extends AstNode, ControlFlowElement { - SplitAstNode() { strictcount(this.getAControlFlowNode()) > 1 } -} diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/NonReturning.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/NonReturning.qll index 10f92d882b7..45f802619be 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/NonReturning.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/NonReturning.qll @@ -9,13 +9,9 @@ import csharp private import semmle.code.csharp.ExprOrStmtParent private import semmle.code.csharp.commons.Assertions private import semmle.code.csharp.frameworks.System -private import Completion /** A call that definitely does not return (conservative analysis). */ -abstract class NonReturningCall extends Call { - /** Gets a valid completion for this non-returning call. */ - abstract Completion getACompletion(); -} +abstract class NonReturningCall extends Call { } private class ExitingCall extends NonReturningCall { ExitingCall() { @@ -23,36 +19,21 @@ private class ExitingCall extends NonReturningCall { or this = any(FailingAssertion fa | fa.getAssertionFailure().isExit()) } - - override ExitCompletion getACompletion() { not result instanceof NestedCompletion } } private class ThrowingCall extends NonReturningCall { - private ThrowCompletion c; - ThrowingCall() { - not c instanceof NestedCompletion and - ( - c = this.getTarget().(ThrowingCallable).getACallCompletion() - or - this.(FailingAssertion).getAssertionFailure().isException(c.getExceptionClass()) - or - this = - any(MethodCall mc | - mc.getTarget() - .hasFullyQualifiedName("System.Runtime.ExceptionServices", "ExceptionDispatchInfo", - "Throw") and - ( - mc.hasNoArguments() and - c.getExceptionClass() instanceof SystemExceptionClass - or - c.getExceptionClass() = mc.getArgument(0).getType() - ) - ) - ) + this.getTarget() instanceof ThrowingCallable + or + this.(FailingAssertion).getAssertionFailure().isException(_) + or + this = + any(MethodCall mc | + mc.getTarget() + .hasFullyQualifiedName("System.Runtime.ExceptionServices", "ExceptionDispatchInfo", + "Throw") + ) } - - override ThrowCompletion getACompletion() { result = c } } /** Holds if accessor `a` has an auto-implementation. */ @@ -107,44 +88,35 @@ private Stmt getAnExitingStmt() { private class ThrowingCallable extends NonReturningCallable { ThrowingCallable() { - forex(ControlFlowElement body | body = this.getBody() | body = getAThrowingElement(_)) + forex(ControlFlowElement body | body = this.getBody() | body = getAThrowingElement()) } - - /** Gets a valid completion for a call to this throwing callable. */ - ThrowCompletion getACallCompletion() { this.getBody() = getAThrowingElement(result) } } -private predicate directlyThrows(ThrowElement te, ThrowCompletion c) { - c.getExceptionClass() = te.getThrownExceptionType() and - not c instanceof NestedCompletion and +private predicate directlyThrows(ThrowElement te) { // For stub implementations, there may exist proper implementations that are not seen // during compilation, so we conservatively rule those out not isStub(te) } -private ControlFlowElement getAThrowingElement(ThrowCompletion c) { - c = result.(ThrowingCall).getACompletion() +private ControlFlowElement getAThrowingElement() { + result instanceof ThrowingCall or - directlyThrows(result, c) + directlyThrows(result) or - result = getAThrowingStmt(c) + result = getAThrowingStmt() } -private Stmt getAThrowingStmt(ThrowCompletion c) { - directlyThrows(result, c) +private Stmt getAThrowingStmt() { + directlyThrows(result) or - result.(ExprStmt).getExpr() = getAThrowingElement(c) + result.(ExprStmt).getExpr() = getAThrowingElement() or - result.(BlockStmt).getFirstStmt() = getAThrowingStmt(c) + result.(BlockStmt).getFirstStmt() = getAThrowingStmt() or - exists(IfStmt ifStmt, ThrowCompletion c1, ThrowCompletion c2 | + exists(IfStmt ifStmt | result = ifStmt and - ifStmt.getThen() = getAThrowingStmt(c1) and - ifStmt.getElse() = getAThrowingStmt(c2) - | - c = c1 - or - c = c2 + ifStmt.getThen() = getAThrowingStmt() and + ifStmt.getElse() = getAThrowingStmt() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll deleted file mode 100644 index 173179216f3..00000000000 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll +++ /dev/null @@ -1,124 +0,0 @@ -/** - * INTERNAL: Do not use. - * - * Provides classes and predicates relevant for splitting the control flow graph. - */ - -import csharp -private import Completion as Comp -private import Comp -private import ControlFlowGraphImpl -private import semmle.code.csharp.controlflow.ControlFlowGraph::ControlFlow as Cfg - -cached -private module Cached { - private import semmle.code.csharp.Caching - - cached - newtype TSplitKind = TConditionalCompletionSplitKind() - - cached - newtype TSplit = TConditionalCompletionSplit(ConditionalCompletion c) -} - -import Cached - -/** - * A split for a control flow element. For example, a tag that determines how to - * continue execution after leaving a `finally` block. - */ -class Split extends TSplit { - /** Gets a textual representation of this split. */ - string toString() { none() } -} - -module ConditionalCompletionSplitting { - /** - * A split for conditional completions. For example, in - * - * ```csharp - * void M(int i) - * { - * if (x && !y) - * System.Console.WriteLine("true") - * } - * ``` - * - * we record whether `x`, `y`, and `!y` evaluate to `true` or `false`, and restrict - * the edges out of `!y` and `x && !y` accordingly. - */ - class ConditionalCompletionSplit extends Split, TConditionalCompletionSplit { - ConditionalCompletion completion; - - ConditionalCompletionSplit() { this = TConditionalCompletionSplit(completion) } - - ConditionalCompletion getCompletion() { result = completion } - - override string toString() { result = completion.toString() } - } - - private class ConditionalCompletionSplitKind_ extends SplitKind, TConditionalCompletionSplitKind { - override int getListOrder() { result = 0 } - - override predicate isEnabled(AstNode cfe) { this.appliesTo(cfe) } - - override string toString() { result = "ConditionalCompletion" } - } - - module ConditionalCompletionSplittingInput { - private import Completion as Comp - - class ConditionalCompletion = Comp::ConditionalCompletion; - - class ConditionalCompletionSplitKind extends ConditionalCompletionSplitKind_, TSplitKind { } - - class ConditionalCompletionSplit = ConditionalCompletionSplitting::ConditionalCompletionSplit; - - bindingset[parent, parentCompletion] - predicate condPropagateExpr( - AstNode parent, ConditionalCompletion parentCompletion, AstNode child, - ConditionalCompletion childCompletion - ) { - child = parent.(LogicalNotExpr).getOperand() and - childCompletion.getDual() = parentCompletion - or - childCompletion = parentCompletion and - ( - child = parent.(LogicalAndExpr).getAnOperand() - or - child = parent.(LogicalOrExpr).getAnOperand() - or - parent = any(ConditionalExpr ce | child = [ce.getThen(), ce.getElse()]) - or - child = parent.(SwitchExpr).getACase() - or - child = parent.(SwitchCaseExpr).getBody() - or - parent = - any(NullCoalescingOperation nce | - if childCompletion instanceof NullnessCompletion - then child = nce.getRightOperand() - else child = nce.getAnOperand() - ) - ) - or - child = parent.(NotPatternExpr).getPattern() and - childCompletion.getDual() = parentCompletion - or - child = parent.(IsExpr).getPattern() and - parentCompletion.(BooleanCompletion).getValue() = - childCompletion.(MatchingCompletion).getValue() - or - childCompletion = parentCompletion and - ( - child = parent.(AndPatternExpr).getAnOperand() - or - child = parent.(OrPatternExpr).getAnOperand() - or - child = parent.(RecursivePatternExpr).getAChildExpr() - or - child = parent.(PropertyPatternExpr).getPattern(_) - ) - } - } -} diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index 5067a383a59..11124cc2094 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -165,9 +165,7 @@ module Ssa { class Definition extends SsaImpl::Definition { /** Gets the control flow node of this SSA definition. */ final ControlFlowNode getControlFlowNode() { - exists(BasicBlock bb, int i | this.definesAt(_, bb, i) | - result = bb.getNode(0.maximum(i)) - ) + exists(BasicBlock bb, int i | this.definesAt(_, bb, i) | result = bb.getNode(0.maximum(i))) } /** @@ -176,9 +174,7 @@ module Ssa { * point it is still live, without crossing another SSA definition of the * same source variable. */ - final predicate isLiveAtEndOfBlock(BasicBlock bb) { - SsaImpl::isLiveAtEndOfBlock(this, bb) - } + final predicate isLiveAtEndOfBlock(BasicBlock bb) { SsaImpl::isLiveAtEndOfBlock(this, bb) } /** * Gets a read of the source variable underlying this SSA definition that @@ -522,9 +518,7 @@ module Ssa { override Element getElement() { result = ad.getElement() } - override string toString() { - result = SsaImpl::getToStringPrefix(this) + "SSA def(" + this.getSourceVariable() + ")" - } + override string toString() { result = "SSA def(" + this.getSourceVariable() + ")" } override Location getLocation() { result = ad.getLocation() } } @@ -569,12 +563,8 @@ module Ssa { override string toString() { if this.getSourceVariable().getAssignable() instanceof LocalScopeVariable - then - result = - SsaImpl::getToStringPrefix(this) + "SSA capture def(" + this.getSourceVariable() + ")" - else - result = - SsaImpl::getToStringPrefix(this) + "SSA entry def(" + this.getSourceVariable() + ")" + then result = "SSA capture def(" + this.getSourceVariable() + ")" + else result = "SSA entry def(" + this.getSourceVariable() + ")" } override Location getLocation() { result = this.getCallable().getLocation() } @@ -584,7 +574,7 @@ module Ssa { class C = ImplicitParameterDefinition; predicate relevantLocations(ImplicitParameterDefinition def, Location l1, Location l2) { - not def.getBasicBlock() instanceof ControlFlow::BasicBlocks::EntryBlock and + not def.getBasicBlock() instanceof EntryBasicBlock and l1 = def.getParameter().getALocation() and l2 = def.getBasicBlock().getLocation() } @@ -615,9 +605,7 @@ module Ssa { override Element getElement() { result = this.getParameter() } - override string toString() { - result = SsaImpl::getToStringPrefix(this) + "SSA param(" + this.getParameter() + ")" - } + override string toString() { result = "SSA param(" + this.getParameter() + ")" } override Location getLocation() { not NearestLocation::nearestLocation(this, _, _) and @@ -658,9 +646,7 @@ module Ssa { ) } - override string toString() { - result = SsaImpl::getToStringPrefix(this) + "SSA call def(" + this.getSourceVariable() + ")" - } + override string toString() { result = "SSA call def(" + this.getSourceVariable() + ")" } override Location getLocation() { result = this.getCall().getLocation() } } @@ -673,9 +659,7 @@ module Ssa { private Definition q; ImplicitQualifierDefinition() { - exists( - BasicBlock bb, int i, SourceVariables::QualifiedFieldOrPropSourceVariable v - | + exists(BasicBlock bb, int i, SourceVariables::QualifiedFieldOrPropSourceVariable v | this.definesAt(v, bb, i) | SsaImpl::variableWriteQualifier(bb, i, v, _) and @@ -686,10 +670,7 @@ module Ssa { /** Gets the SSA definition for the qualifier. */ final Definition getQualifierDefinition() { result = q } - override string toString() { - result = - SsaImpl::getToStringPrefix(this) + "SSA qualifier def(" + this.getSourceVariable() + ")" - } + override string toString() { result = "SSA qualifier def(" + this.getSourceVariable() + ")" } override Location getLocation() { result = this.getQualifierDefinition().getLocation() } } @@ -729,9 +710,7 @@ module Ssa { inp = SsaImpl::phiHasInputFromBlock(this, bb) } - override string toString() { - result = SsaImpl::getToStringPrefix(this) + "SSA phi(" + this.getSourceVariable() + ")" - } + override string toString() { result = "SSA phi(" + this.getSourceVariable() + ")" } /* * The location of a phi node is the same as the location of the first node 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 1bec6813808..3af93ee2945 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -5,7 +5,6 @@ import csharp */ module BaseSsa { private import AssignableDefinitions - private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks private import codeql.ssa.Ssa as SsaImplCommon /** @@ -25,10 +24,8 @@ module BaseSsa { ) } - private predicate implicitEntryDef( - Callable c, ControlFlow::BasicBlocks::EntryBlock bb, SsaInput::SourceVariable v - ) { - exists(ControlFlow::BasicBlocks::EntryBlock entry | + private predicate implicitEntryDef(Callable c, EntryBasicBlock bb, SsaInput::SourceVariable v) { + exists(EntryBasicBlock entry | c = entry.getEnclosingCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit // entry definition. In case `c` doesn't have multiple bodies, the line below @@ -105,7 +102,7 @@ module BaseSsa { } } - private module SsaImpl = SsaImplCommon::Make; + private module SsaImpl = SsaImplCommon::Make; class Definition extends SsaImpl::Definition { final AssignableRead getARead() { 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 367d5974a26..ed45135c4d8 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -29,7 +29,7 @@ private predicate hasMultipleSourceLocations(Callable c) { strictcount(getASourc private predicate objectInitEntry(ObjectInitMethod m, ControlFlowElement first) { exists(ControlFlow::EntryNode en | - en.getEnclosingCallable() = m and first.getControlFlowNode() = en.getASuccessor() + en.getEnclosingCallable() = m and first = en.getASuccessor().getAstNode() ) } @@ -210,27 +210,27 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[nomagic] - private ControlFlowNodes::ElementNode getAMultiBodyEntryNode(BasicBlock bb, int i) { + private ControlFlowNode getAMultiBodyEntryNode(BasicBlock bb, int i) { this.isMultiBodied() and exists(ControlFlowElement body, Location l | body = this.asCallable(l).getBody() or objectInitEntry(this.asCallable(l), body) | NearestLocation::nearestLocation(body, l, _) and - result = body.getAControlFlowEntryNode() + result.isBefore(body) ) and bb.getNode(i) = result } pragma[nomagic] - private ControlFlowNodes::ElementNode getAMultiBodyControlFlowNodePred() { + private ControlFlowNode getAMultiBodyControlFlowNodePred() { result = this.getAMultiBodyEntryNode(_, _).getAPredecessor() or result = this.getAMultiBodyControlFlowNodePred().getAPredecessor() } pragma[nomagic] - private ControlFlowNodes::ElementNode getAMultiBodyControlFlowNodeSuccSameBasicBlock() { + private ControlFlowNode getAMultiBodyControlFlowNodeSuccSameBasicBlock() { exists(BasicBlock bb, int i, int j | exists(this.getAMultiBodyEntryNode(bb, i)) and result = bb.getNode(j) and @@ -246,7 +246,7 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[inline] - private ControlFlowNodes::ElementNode getAMultiBodyControlFlowNode() { + private ControlFlowNode getAMultiBodyControlFlowNode() { result = [ this.getAMultiBodyEntryNode(_, _), this.getAMultiBodyControlFlowNodePred(), 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 6611ced6cc8..043ba2fc228 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -83,22 +83,9 @@ abstract class NodeImpl extends Node { abstract string toStringImpl(); } -// TODO: Remove once static initializers are folded into the -// static constructors -private DataFlowCallable getEnclosingStaticFieldOrProperty(Expr e) { - result.asFieldOrProperty() = - any(FieldOrProperty f | - f.isStatic() and - e = f.getAChild+() and - not exists(e.getEnclosingCallable()) - ) -} - private class ExprNodeImpl extends ExprNode, NodeImpl { override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = this.getControlFlowNodeImpl() - or - result = getEnclosingStaticFieldOrProperty(this.asExpr()) } override Type getTypeImpl() { @@ -196,7 +183,7 @@ private module ThisFlow { i = ppos - numberOfPrimaryConstructorParameters(bb) ) or - exists(DataFlowCallable c, ControlFlow::BasicBlocks::EntryBlock entry | + exists(DataFlowCallable c, EntryBasicBlock entry | n.(InstanceParameterNode).isParameterOf(c, _) and exists(ControlFlowNode succ | succ = c.getAControlFlowNode() and @@ -259,7 +246,6 @@ private module ThisFlow { /** Provides logic related to captured variables. */ module VariableCapture { private import codeql.dataflow.VariableCapture as Shared - private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks private predicate closureFlowStep(ControlFlowNodes::ExprNode e1, ControlFlowNodes::ExprNode e2) { e1.getExpr() = LocalFlow::getALastEvalNode(e2.getExpr()) @@ -271,14 +257,12 @@ module VariableCapture { ) } - private module CaptureInput implements Shared::InputSig { + private module CaptureInput implements Shared::InputSig { private import csharp as CS private import semmle.code.csharp.controlflow.ControlFlowGraph as Cfg private import TaintTrackingPrivate as TaintTrackingPrivate - Callable basicBlockGetEnclosingCallable(BasicBlocks::BasicBlock bb) { - result = bb.getEnclosingCallable() - } + Callable basicBlockGetEnclosingCallable(BasicBlock bb) { result = bb.getEnclosingCallable() } private predicate thisAccess(ControlFlowNode cfn, InstanceCallable c) { ThisFlow::thisAccessExpr(cfn.asExpr()) and @@ -346,7 +330,7 @@ module VariableCapture { } class Expr extends ControlFlowNode { - predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { this = bb.getNode(i) } + predicate hasCfgNode(BasicBlock bb, int i) { this = bb.getNode(i) } } class VariableWrite extends Expr { @@ -400,7 +384,7 @@ module VariableCapture { class ClosureExpr = CaptureInput::ClosureExpr; - module Flow = Shared::Flow; + module Flow = Shared::Flow; private Flow::ClosureNode asClosureNode(Node n) { result = n.(CaptureNode).getSynthesizedCaptureNode() @@ -1519,11 +1503,7 @@ private module ArgumentNodes { override ControlFlowNode getControlFlowNodeImpl() { result = cfn } - override DataFlowCallable getEnclosingCallableImpl() { - result.getAControlFlowNode() = cfn - or - result = getEnclosingStaticFieldOrProperty(cfn.asExpr()) - } + override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = cfn } override Type getTypeImpl() { result = cfn.asExpr().getType() } @@ -1560,11 +1540,7 @@ private module ArgumentNodes { pos.getPosition() = this.getParameter().getPosition() } - override DataFlowCallable getEnclosingCallableImpl() { - result.getAControlFlowNode() = callCfn - or - result = getEnclosingStaticFieldOrProperty(callCfn.asExpr()) - } + override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = callCfn } override Type getTypeImpl() { result = this.getParameter().getType() } @@ -2603,11 +2579,7 @@ module PostUpdateNodes { ) } - override DataFlowCallable getEnclosingCallableImpl() { - result.getAControlFlowNode() = cfn - or - result = getEnclosingStaticFieldOrProperty(oc) - } + override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = cfn } override Type getTypeImpl() { result = oc.getType() } @@ -2625,11 +2597,7 @@ module PostUpdateNodes { override ExprNode getPreUpdateSourceNode() { result = TExprNode(cfn) } - override DataFlowCallable getEnclosingCallableImpl() { - result.getAControlFlowNode() = cfn - or - result = getEnclosingStaticFieldOrProperty(cfn.asExpr()) - } + override DataFlowCallable getEnclosingCallableImpl() { result.getAControlFlowNode() = cfn } override Type getTypeImpl() { result = cfn.asExpr().getType() } 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 0ca5bec31fe..3924bd7fb5a 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -5,7 +5,6 @@ import csharp private import codeql.ssa.Ssa as SsaImplCommon private import AssignableDefinitions -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 @@ -41,7 +40,7 @@ private module SsaInput implements SsaImplCommon::InputSig } } -import SsaImplCommon::Make as Impl +import SsaImplCommon::Make as Impl class Definition = Impl::Definition; @@ -808,7 +807,7 @@ private module Cached { cached predicate implicitEntryDefinition(BasicBlock bb, Ssa::SourceVariable v) { - exists(ControlFlow::BasicBlocks::EntryBlock entry, Callable c | + exists(EntryBasicBlock entry, Callable c | c = entry.getEnclosingCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit // entry definition. In case `c` doesn't have multiple bodies, the line below @@ -1006,27 +1005,7 @@ private module Cached { import Cached -private string getSplitString(Definition def) { - exists(BasicBlock bb, int i, ControlFlowNode cfn | - def.definesAt(_, bb, i) and - result = cfn.(ControlFlowNodes::ElementNode).getSplitsString() - | - cfn = bb.getNode(i) - or - not exists(bb.getNode(i)) and - cfn = bb.getFirstNode() - ) -} - -string getToStringPrefix(Definition def) { - result = "[" + getSplitString(def) + "] " - or - not exists(getSplitString(def)) and - result = "" -} - private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInputSig { - private import semmle.code.csharp.controlflow.BasicBlocks private import codeql.util.Boolean class Expr extends ControlFlowNode { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll index 5b199aebc54..fbc09e7ec52 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll @@ -4,7 +4,6 @@ module Private { private import semmle.code.csharp.dataflow.internal.rangeanalysis.RangeUtils as RU private import SsaUtils as SU private import SsaReadPositionCommon - private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as CfgImpl class BasicBlock = CS::BasicBlock; diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll index 212e622c562..e53e3a44276 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll @@ -83,9 +83,7 @@ private module Impl { /** * Holds if basic block `bb` is guarded by this guard having value `v`. */ - predicate controlsBasicBlock(BasicBlock bb, G::GuardValue v) { - super.controlsBasicBlock(bb, v) - } + predicate controlsBasicBlock(BasicBlock bb, G::GuardValue v) { super.controlsBasicBlock(bb, v) } /** * Holds if this guard is an equality test between `e1` and `e2`. If the test is diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll index e112b08f8ba..c5510952804 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll @@ -4,7 +4,6 @@ private import csharp as CS private import SsaReadPositionCommon -private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as CfgImpl class SsaVariable = CS::Ssa::Definition; @@ -21,20 +20,18 @@ private class PhiInputEdgeBlock extends BasicBlock { PhiInputEdgeBlock() { this = any(SsaReadPositionPhiInputEdge edge).getOrigBlock() } } -private int getId(PhiInputEdgeBlock bb) { - exists(CfgImpl::AstNode n | result = n.getId() | - n = bb.getFirstNode().getAstNode() - or - n = bb.(CS::ControlFlow::BasicBlocks::EntryBlock).getEnclosingCallable() - ) +private predicate id(CS::ControlFlowElementOrCallable x, CS::ControlFlowElementOrCallable y) { + x = y } -private string getSplitString(PhiInputEdgeBlock bb) { - result = bb.getFirstNode().(CS::ControlFlowNodes::ElementNode).getSplitsString() - or - not exists(bb.getFirstNode().(CS::ControlFlowNodes::ElementNode).getSplitsString()) and - result = "" -} +private predicate idOfAst(CS::ControlFlowElementOrCallable x, int y) = + equivalenceRelation(id/2)(x, y) + +private predicate idOf(PhiInputEdgeBlock x, int y) { idOfAst(x.getFirstNode().getAstNode(), y) } + +private int getId1(PhiInputEdgeBlock bb) { idOf(bb, result) } + +private string getId2(PhiInputEdgeBlock bb) { bb.getFirstNode().getIdTag() = result } /** * Declarations to be exposed to users of SsaReadPositionCommon. @@ -50,7 +47,7 @@ module Public { rank[r](SsaReadPositionPhiInputEdge e | e.phiInput(phi, _) | - e order by getId(e.getOrigBlock()), getSplitString(e.getOrigBlock()) + e order by getId1(e.getOrigBlock()), getId2(e.getOrigBlock()) ) } } diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll index 53b44f873a6..a9ad31dc804 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll @@ -5,7 +5,6 @@ import csharp private import semmle.code.csharp.controlflow.Guards -private import semmle.code.csharp.controlflow.BasicBlocks private import semmle.code.csharp.security.dataflow.flowsinks.FlowSinks private import semmle.code.csharp.security.dataflow.flowsources.FlowSources private import semmle.code.csharp.frameworks.System diff --git a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql index 6a9a906d53b..8e36f4f1ad1 100644 --- a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql +++ b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql @@ -16,7 +16,6 @@ import csharp import semmle.code.csharp.commons.Assertions import semmle.code.csharp.commons.Constants -import semmle.code.csharp.controlflow.BasicBlocks import semmle.code.csharp.controlflow.Guards as Guards import codeql.controlflow.queries.ConstantCondition as ConstCond diff --git a/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql b/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql index 18e5241ef25..d616c2377c3 100644 --- a/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql +++ b/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql @@ -81,11 +81,9 @@ class NestedForLoopSameVariable extends ForStmt { /** Finds elements inside the outer loop that are no longer guarded by the loop invariant. */ private ControlFlowNode getAnUnguardedNode() { - hasChild(this.getOuterForStmt().getBody(), - any(ControlFlowElement e | e.getControlFlowNode() = result)) and + hasChild(this.getOuterForStmt().getBody(), result.getAstNode()) and ( - result = - this.getCondition().(ControlFlowElement).getAControlFlowExitNode().getAFalseSuccessor() + result.isAfterFalse(this.getCondition()) or exists(ControlFlowNode mid | mid = this.getAnUnguardedNode() | mid.getASuccessor() = result and diff --git a/csharp/ql/src/Performance/StringBuilderInLoop.ql b/csharp/ql/src/Performance/StringBuilderInLoop.ql index ed7190e69ff..f2a13923478 100644 --- a/csharp/ql/src/Performance/StringBuilderInLoop.ql +++ b/csharp/ql/src/Performance/StringBuilderInLoop.ql @@ -16,7 +16,7 @@ import semmle.code.csharp.frameworks.system.Text from ObjectCreation creation, LoopStmt loop, ControlFlowNode loopEntryNode where creation.getType() instanceof SystemTextStringBuilderClass and - loopEntryNode = loop.getBody().getAControlFlowEntryNode() and + loopEntryNode.isBefore(loop.getBody()) and loop.getBody().getAChild*() = creation and creation.getAControlFlowNode().postDominates(loopEntryNode) select creation, "Creating a 'StringBuilder' in a loop." diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql index 0ec6939dfb2..616c4d1b95f 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql @@ -1,16 +1,12 @@ import csharp import ControlFlow -query predicate conditionBlock( - BasicBlocks::ConditionBlock cb, BasicBlock controlled, boolean testIsTrue -) { +query predicate conditionBlock(BasicBlock cb, BasicBlock controlled, boolean testIsTrue) { cb.edgeDominates(controlled, any(ConditionalSuccessor s | testIsTrue = s.getValue())) } ControlFlowNode successor(ControlFlowNode node, boolean kind) { - kind = true and result = node.getATrueSuccessor() - or - kind = false and result = node.getAFalseSuccessor() + result = node.getASuccessor(any(BooleanSuccessor s | s.getValue() = kind)) } query predicate conditionFlow(ControlFlowNode node, ControlFlowNode successor, boolean kind) { diff --git a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.ql b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.ql index 08f37467efe..60bd04647fd 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.ql @@ -1,7 +1,14 @@ import csharp import Common -import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl + +predicate first(SourceControlFlowElement cfe, ControlFlowNode first) { + first.isBefore(cfe) + or + exists(ControlFlowNode mid | + first(cfe, mid) and not mid.injects(_) and first = mid.getASuccessor() + ) +} from SourceControlFlowElement cfe, ControlFlowElement first -where first(cfe, first) +where first(cfe, first.getControlFlowNode()) select cfe, first diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected deleted file mode 100644 index 602dd8c2a52..00000000000 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected +++ /dev/null @@ -1,4540 +0,0 @@ -| 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 | -| AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:36:7:38 | {...} | normal | -| AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:47:7:49 | {...} | normal | -| AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:16:9:16:23 | ... -= ... | normal | -| AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:9:12:12 | this access | normal | -| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:12 | this access | normal | -| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:9:12:31 | ... = ... | normal | -| AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:31 | ... = ... | normal | -| AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:25 | this access | normal | -| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:22:12:31 | access to field Field | normal | -| AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:9:13:12 | this access | normal | -| AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:12 | this access | normal | -| AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:13:9:13:29 | ... = ... | normal | -| AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:13:9:13:29 | ... = ... | normal | -| AccessorCalls.cs:13:21:13:24 | this access | AccessorCalls.cs:13:21:13:24 | this access | normal | -| AccessorCalls.cs:13:21:13:29 | access to property Prop | AccessorCalls.cs:13:21:13:29 | access to property Prop | normal | -| AccessorCalls.cs:14:9:14:12 | this access | AccessorCalls.cs:14:9:14:12 | this access | normal | -| AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:14:14:14:14 | 0 | normal | -| AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:14:9:14:25 | ... = ... | normal | -| AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:14:9:14:25 | ... = ... | normal | -| AccessorCalls.cs:14:14:14:14 | 0 | AccessorCalls.cs:14:14:14:14 | 0 | normal | -| AccessorCalls.cs:14:19:14:22 | this access | AccessorCalls.cs:14:19:14:22 | this access | normal | -| AccessorCalls.cs:14:19:14:25 | access to indexer | AccessorCalls.cs:14:19:14:25 | access to indexer | normal | -| AccessorCalls.cs:14:24:14:24 | 1 | AccessorCalls.cs:14:24:14:24 | 1 | normal | -| AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:15:9:15:12 | this access | normal | -| AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:15:9:15:12 | this access | normal | -| AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:15:9:15:23 | ... += ... | normal | -| AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:15:9:15:23 | ... += ... | normal | -| AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:15:23:15:23 | access to parameter e | normal | -| AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:16:9:16:12 | this access | normal | -| AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:16:9:16:12 | this access | normal | -| AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:16:9:16:23 | ... -= ... | normal | -| AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:16:9:16:23 | ... -= ... | normal | -| AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:16:23:16:23 | access to parameter e | normal | -| AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:25:9:25:25 | ... -= ... | normal | -| AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:12 | this access | normal | -| AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:9:21:14 | access to field x | normal | -| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:14 | access to field x | normal | -| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:9:21:35 | ... = ... | normal | -| AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:35 | ... = ... | normal | -| AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:27 | this access | normal | -| AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:29 | access to field x | normal | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:24:21:35 | access to field Field | normal | -| AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:12 | this access | normal | -| AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:9:22:14 | access to field x | normal | -| AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:14 | access to field x | normal | -| AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:22:9:22:33 | ... = ... | normal | -| AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:22:9:22:33 | ... = ... | normal | -| AccessorCalls.cs:22:23:22:26 | this access | AccessorCalls.cs:22:23:22:26 | this access | normal | -| AccessorCalls.cs:22:23:22:28 | access to field x | AccessorCalls.cs:22:23:22:28 | access to field x | normal | -| AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:22:23:22:33 | access to property Prop | normal | -| AccessorCalls.cs:23:9:23:12 | this access | AccessorCalls.cs:23:9:23:12 | this access | normal | -| AccessorCalls.cs:23:9:23:14 | access to field x | AccessorCalls.cs:23:9:23:14 | access to field x | normal | -| AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:23:16:23:16 | 0 | normal | -| AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:23:9:23:29 | ... = ... | normal | -| AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:23:9:23:29 | ... = ... | normal | -| AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:23:16:23:16 | 0 | normal | -| AccessorCalls.cs:23:21:23:24 | this access | AccessorCalls.cs:23:21:23:24 | this access | normal | -| AccessorCalls.cs:23:21:23:26 | access to field x | AccessorCalls.cs:23:21:23:26 | access to field x | normal | -| AccessorCalls.cs:23:21:23:29 | access to indexer | AccessorCalls.cs:23:21:23:29 | access to indexer | normal | -| AccessorCalls.cs:23:28:23:28 | 1 | AccessorCalls.cs:23:28:23:28 | 1 | normal | -| AccessorCalls.cs:24:9:24:12 | this access | AccessorCalls.cs:24:9:24:12 | this access | normal | -| AccessorCalls.cs:24:9:24:14 | access to field x | AccessorCalls.cs:24:9:24:14 | access to field x | normal | -| AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:24:9:24:14 | access to field x | normal | -| AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:24:9:24:25 | ... += ... | normal | -| AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:24:9:24:25 | ... += ... | normal | -| AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:24:25:24:25 | access to parameter e | normal | -| AccessorCalls.cs:25:9:25:12 | this access | AccessorCalls.cs:25:9:25:12 | this access | normal | -| AccessorCalls.cs:25:9:25:14 | access to field x | AccessorCalls.cs:25:9:25:14 | access to field x | normal | -| AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:25:9:25:14 | access to field x | normal | -| AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:25:9:25:25 | ... -= ... | normal | -| AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:25:9:25:25 | ... -= ... | normal | -| AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:25:25:25:25 | access to parameter e | normal | -| AccessorCalls.cs:29:5:33:5 | {...} | AccessorCalls.cs:32:9:32:17 | ...++ | normal | -| AccessorCalls.cs:30:9:30:12 | this access | AccessorCalls.cs:30:9:30:12 | this access | normal | -| AccessorCalls.cs:30:9:30:18 | access to field Field | AccessorCalls.cs:30:9:30:18 | access to field Field | normal | -| AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:30:9:30:20 | ...++ | normal | -| AccessorCalls.cs:30:9:30:21 | ...; | AccessorCalls.cs:30:9:30:20 | ...++ | normal | -| AccessorCalls.cs:31:9:31:12 | this access | AccessorCalls.cs:31:9:31:12 | this access | normal | -| AccessorCalls.cs:31:9:31:17 | access to property Prop | AccessorCalls.cs:31:9:31:17 | access to property Prop | normal | -| AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:31:9:31:19 | ...++ | normal | -| AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:31:9:31:19 | ...++ | normal | -| AccessorCalls.cs:32:9:32:12 | this access | AccessorCalls.cs:32:9:32:12 | this access | normal | -| AccessorCalls.cs:32:9:32:15 | access to indexer | AccessorCalls.cs:32:9:32:15 | access to indexer | normal | -| AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:32:9:32:17 | ...++ | normal | -| AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:32:9:32:17 | ...++ | normal | -| AccessorCalls.cs:32:14:32:14 | 0 | AccessorCalls.cs:32:14:32:14 | 0 | normal | -| AccessorCalls.cs:36:5:40:5 | {...} | AccessorCalls.cs:39:9:39:19 | ...++ | normal | -| AccessorCalls.cs:37:9:37:12 | this access | AccessorCalls.cs:37:9:37:12 | this access | normal | -| AccessorCalls.cs:37:9:37:14 | access to field x | AccessorCalls.cs:37:9:37:14 | access to field x | normal | -| AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:37:9:37:20 | access to field Field | normal | -| AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:37:9:37:22 | ...++ | normal | -| AccessorCalls.cs:37:9:37:23 | ...; | AccessorCalls.cs:37:9:37:22 | ...++ | normal | -| AccessorCalls.cs:38:9:38:12 | this access | AccessorCalls.cs:38:9:38:12 | this access | normal | -| AccessorCalls.cs:38:9:38:14 | access to field x | AccessorCalls.cs:38:9:38:14 | access to field x | normal | -| AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:38:9:38:19 | access to property Prop | normal | -| AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:38:9:38:21 | ...++ | normal | -| AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:38:9:38:21 | ...++ | normal | -| AccessorCalls.cs:39:9:39:12 | this access | AccessorCalls.cs:39:9:39:12 | this access | normal | -| AccessorCalls.cs:39:9:39:14 | access to field x | AccessorCalls.cs:39:9:39:14 | access to field x | normal | -| AccessorCalls.cs:39:9:39:17 | access to indexer | AccessorCalls.cs:39:9:39:17 | access to indexer | normal | -| AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:39:9:39:19 | ...++ | normal | -| AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:39:9:39:19 | ...++ | normal | -| AccessorCalls.cs:39:16:39:16 | 0 | AccessorCalls.cs:39:16:39:16 | 0 | normal | -| AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:46:9:46:26 | ... += ... | normal | -| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | normal | -| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:18 | access to field Field | normal | -| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:44:9:44:32 | ... += ... | normal | -| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:32 | ... += ... | normal | -| AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:26 | this access | normal | -| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:23:44:32 | access to field Field | normal | -| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:12 | this access | normal | -| AccessorCalls.cs:45:9:45:17 | access to property Prop | AccessorCalls.cs:45:9:45:17 | access to property Prop | normal | -| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:45:9:45:30 | ... += ... | normal | -| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:45:9:45:30 | ... += ... | normal | -| AccessorCalls.cs:45:22:45:25 | this access | AccessorCalls.cs:45:22:45:25 | this access | normal | -| AccessorCalls.cs:45:22:45:30 | access to property Prop | AccessorCalls.cs:45:22:45:30 | access to property Prop | normal | -| AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:9:46:12 | this access | normal | -| AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:46:9:46:15 | access to indexer | normal | -| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:46:9:46:26 | ... += ... | normal | -| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:46:9:46:26 | ... += ... | normal | -| AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:46:14:46:14 | 0 | normal | -| AccessorCalls.cs:46:20:46:23 | this access | AccessorCalls.cs:46:20:46:23 | this access | normal | -| AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:46:20:46:26 | access to indexer | normal | -| AccessorCalls.cs:46:25:46:25 | 0 | AccessorCalls.cs:46:25:46:25 | 0 | normal | -| AccessorCalls.cs:50:5:54:5 | {...} | AccessorCalls.cs:53:9:53:30 | ... += ... | normal | -| AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:12 | this access | normal | -| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:14 | access to field x | normal | -| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:20 | access to field Field | normal | -| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:51:9:51:36 | ... += ... | normal | -| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:36 | ... += ... | normal | -| AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:28 | this access | normal | -| AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:30 | access to field x | normal | -| AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:51:25:51:36 | access to field Field | normal | -| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:12 | this access | normal | -| AccessorCalls.cs:52:9:52:14 | access to field x | AccessorCalls.cs:52:9:52:14 | access to field x | normal | -| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:19 | access to property Prop | normal | -| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:52:9:52:34 | ... += ... | normal | -| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:52:9:52:34 | ... += ... | normal | -| AccessorCalls.cs:52:24:52:27 | this access | AccessorCalls.cs:52:24:52:27 | this access | normal | -| AccessorCalls.cs:52:24:52:29 | access to field x | AccessorCalls.cs:52:24:52:29 | access to field x | normal | -| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:24:52:34 | access to property Prop | normal | -| AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:12 | this access | normal | -| AccessorCalls.cs:53:9:53:14 | access to field x | AccessorCalls.cs:53:9:53:14 | access to field x | normal | -| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:17 | access to indexer | normal | -| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:53:9:53:30 | ... += ... | normal | -| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:53:9:53:30 | ... += ... | normal | -| AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:53:16:53:16 | 0 | normal | -| AccessorCalls.cs:53:22:53:25 | this access | AccessorCalls.cs:53:22:53:25 | this access | normal | -| AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:53:22:53:27 | access to field x | normal | -| AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:53:22:53:30 | access to indexer | normal | -| AccessorCalls.cs:53:29:53:29 | 0 | AccessorCalls.cs:53:29:53:29 | 0 | normal | -| AccessorCalls.cs:57:5:59:5 | {...} | AccessorCalls.cs:58:9:58:85 | ... = ... | normal | -| AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | normal | -| AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:58:9:58:85 | ... = ... | normal | -| AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:9:58:85 | ... = ... | normal | -| AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:10:58:13 | this access | normal | -| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:10:58:13 | this access | normal | -| AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:22:58:25 | this access | normal | -| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:22:58:25 | this access | normal | -| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:33:58:44 | (..., ...) | normal | -| AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:37:58:40 | this access | normal | -| AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:42:58:42 | 0 | normal | -| AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:42:58:42 | 0 | normal | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:49:58:85 | (..., ...) | normal | -| AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:53 | this access | normal | -| AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:50:58:59 | access to field Field | normal | -| AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:65 | this access | normal | -| AccessorCalls.cs:58:62:58:70 | access to property Prop | AccessorCalls.cs:58:62:58:70 | access to property Prop | normal | -| AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:58:73:58:84 | (..., ...) | normal | -| AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:58:74:58:74 | 0 | normal | -| AccessorCalls.cs:58:77:58:80 | this access | AccessorCalls.cs:58:77:58:80 | this access | normal | -| AccessorCalls.cs:58:77:58:83 | access to indexer | AccessorCalls.cs:58:77:58:83 | access to indexer | normal | -| AccessorCalls.cs:58:82:58:82 | 1 | AccessorCalls.cs:58:82:58:82 | 1 | normal | -| AccessorCalls.cs:62:5:64:5 | {...} | AccessorCalls.cs:63:9:63:97 | ... = ... | normal | -| AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:63:9:63:51 | (..., ...) | normal | -| AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:63:9:63:97 | ... = ... | normal | -| AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:9:63:97 | ... = ... | normal | -| AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:13 | this access | normal | -| AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:10:63:15 | access to field x | normal | -| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:10:63:15 | access to field x | normal | -| AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:27 | this access | normal | -| AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:24:63:29 | access to field x | normal | -| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:24:63:29 | access to field x | normal | -| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:37:63:50 | (..., ...) | normal | -| AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:41:63:44 | this access | normal | -| AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:41:63:46 | access to field x | normal | -| AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:48:63:48 | 0 | normal | -| AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:48:63:48 | 0 | normal | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:55:63:97 | (..., ...) | normal | -| AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:59 | this access | normal | -| AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:61 | access to field x | normal | -| AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:56:63:67 | access to field Field | normal | -| AccessorCalls.cs:63:70:63:73 | this access | AccessorCalls.cs:63:70:63:73 | this access | normal | -| AccessorCalls.cs:63:70:63:75 | access to field x | AccessorCalls.cs:63:70:63:75 | access to field x | normal | -| AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:63:70:63:80 | access to property Prop | normal | -| AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:63:83:63:96 | (..., ...) | normal | -| AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:63:84:63:84 | 0 | normal | -| AccessorCalls.cs:63:87:63:90 | this access | AccessorCalls.cs:63:87:63:90 | this access | normal | -| AccessorCalls.cs:63:87:63:92 | access to field x | AccessorCalls.cs:63:87:63:92 | access to field x | normal | -| AccessorCalls.cs:63:87:63:95 | access to indexer | AccessorCalls.cs:63:87:63:95 | access to indexer | normal | -| AccessorCalls.cs:63:94:63:94 | 1 | AccessorCalls.cs:63:94:63:94 | 1 | normal | -| AccessorCalls.cs:67:5:74:5 | {...} | AccessorCalls.cs:73:9:73:83 | ... = ... | normal | -| AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | normal | -| AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | normal | -| AccessorCalls.cs:68:21:68:21 | access to parameter o | AccessorCalls.cs:68:21:68:21 | access to parameter o | normal | -| AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:9:69:9 | access to local variable d | normal | -| AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:9 | access to local variable d | normal | -| AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:69:9:69:35 | ... = ... | normal | -| AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:69:9:69:35 | ... = ... | normal | -| AccessorCalls.cs:69:24:69:24 | access to local variable d | AccessorCalls.cs:69:24:69:24 | access to local variable d | normal | -| AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | normal | -| AccessorCalls.cs:70:9:70:9 | access to local variable d | AccessorCalls.cs:70:9:70:9 | access to local variable d | normal | -| AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | normal | -| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | normal | -| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | normal | -| AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:9 | access to local variable d | normal | -| AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | normal | -| AccessorCalls.cs:71:9:71:25 | ... += ... | AccessorCalls.cs:71:9:71:25 | ... += ... | normal | -| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:71:9:71:25 | ... += ... | normal | -| AccessorCalls.cs:71:25:71:25 | access to parameter e | AccessorCalls.cs:71:25:71:25 | access to parameter e | normal | -| AccessorCalls.cs:72:9:72:9 | access to local variable d | AccessorCalls.cs:72:9:72:9 | access to local variable d | normal | -| AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:72:9:72:12 | dynamic access to element | normal | -| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:72:9:72:20 | ... += ... | normal | -| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:72:9:72:20 | ... += ... | normal | -| AccessorCalls.cs:72:11:72:11 | 0 | AccessorCalls.cs:72:11:72:11 | 0 | normal | -| AccessorCalls.cs:72:17:72:17 | access to local variable d | AccessorCalls.cs:72:17:72:17 | access to local variable d | normal | -| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:17:72:20 | dynamic access to element | normal | -| AccessorCalls.cs:72:19:72:19 | 1 | AccessorCalls.cs:72:19:72:19 | 1 | normal | -| AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:73:9:73:44 | (..., ...) | normal | -| AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:73:9:73:83 | ... = ... | normal | -| AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:73:9:73:83 | ... = ... | normal | -| AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:73:10:73:10 | access to local variable d | normal | -| AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:10 | access to local variable d | normal | -| AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:24:73:27 | this access | normal | -| AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:24:73:27 | this access | normal | -| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:35:73:43 | (..., ...) | normal | -| AccessorCalls.cs:73:39:73:39 | access to local variable d | AccessorCalls.cs:73:39:73:39 | access to local variable d | normal | -| AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:41:73:41 | 0 | normal | -| AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:73:41:73:41 | 0 | normal | -| AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:73:48:73:83 | (..., ...) | normal | -| AccessorCalls.cs:73:49:73:49 | access to local variable d | AccessorCalls.cs:73:49:73:49 | access to local variable d | normal | -| AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | normal | -| AccessorCalls.cs:73:63:73:66 | this access | AccessorCalls.cs:73:63:73:66 | this access | normal | -| AccessorCalls.cs:73:63:73:71 | access to property Prop | AccessorCalls.cs:73:63:73:71 | access to property Prop | normal | -| AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:73:74:73:82 | (..., ...) | normal | -| AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:73:75:73:75 | 0 | normal | -| AccessorCalls.cs:73:78:73:78 | access to local variable d | AccessorCalls.cs:73:78:73:78 | access to local variable d | normal | -| 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 | -| ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | normal | -| ArrayCreation.cs:5:28:5:28 | 0 | ArrayCreation.cs:5:28:5:28 | 0 | normal | -| ArrayCreation.cs:5:31:5:31 | 1 | ArrayCreation.cs:5:31:5:31 | 1 | normal | -| ArrayCreation.cs:7:19:7:36 | 2 | ArrayCreation.cs:7:19:7:36 | 2 | normal | -| ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:29:7:36 | { ..., ... } | normal | -| ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:29:7:36 | { ..., ... } | normal | -| ArrayCreation.cs:7:31:7:31 | 0 | ArrayCreation.cs:7:31:7:31 | 0 | normal | -| ArrayCreation.cs:7:34:7:34 | 1 | ArrayCreation.cs:7:34:7:34 | 1 | normal | -| ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | 2 | normal | -| ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | 2 | normal | -| ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:31:9:52 | { ..., ... } | normal | -| ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:31:9:52 | { ..., ... } | normal | -| ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:33:9:40 | { ..., ... } | normal | -| ArrayCreation.cs:9:35:9:35 | 0 | ArrayCreation.cs:9:35:9:35 | 0 | normal | -| ArrayCreation.cs:9:38:9:38 | 1 | ArrayCreation.cs:9:38:9:38 | 1 | normal | -| ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:43:9:50 | { ..., ... } | normal | -| 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 | -| Assert.cs:9:9:9:33 | ... ...; | Assert.cs:9:16:9:32 | String s = ... | normal | -| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:9:16:9:32 | String s = ... | normal | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | access to parameter b | false | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | access to parameter b | true | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:20:9:32 | ... ? ... : ... | normal | -| Assert.cs:9:24:9:27 | null | Assert.cs:9:24:9:27 | null | normal | -| Assert.cs:9:31:9:32 | "" | Assert.cs:9:31:9:32 | "" | normal | -| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:9:10:31 | call to method Assert | exit | -| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:9:10:31 | call to method Assert | normal | -| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:9:10:31 | call to method Assert | exit | -| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:9:10:31 | call to method Assert | normal | -| Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:22:10:22 | access to local variable s | normal | -| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:30 | ... != ... | normal | -| Assert.cs:10:27:10:30 | null | Assert.cs:10:27:10:30 | null | normal | -| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:11:9:11:35 | call to method WriteLine | normal | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:9:11:35 | call to method WriteLine | normal | -| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:11:27:11:27 | access to local variable s | normal | -| Assert.cs:11:27:11:34 | access to property Length | Assert.cs:11:27:11:34 | access to property Length | normal | -| Assert.cs:15:5:19:5 | {...} | Assert.cs:17:9:17:24 | call to method IsNull | throw(AssertFailedException) | -| Assert.cs:15:5:19:5 | {...} | Assert.cs:18:9:18:35 | call to method WriteLine | normal | -| Assert.cs:16:9:16:33 | ... ...; | Assert.cs:16:16:16:32 | String s = ... | normal | -| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:16:16:16:32 | String s = ... | normal | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | access to parameter b | false | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | access to parameter b | true | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:20:16:32 | ... ? ... : ... | normal | -| Assert.cs:16:24:16:27 | null | Assert.cs:16:24:16:27 | null | normal | -| Assert.cs:16:31:16:32 | "" | Assert.cs:16:31:16:32 | "" | normal | -| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:9:17:24 | call to method IsNull | normal | -| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:9:17:24 | call to method IsNull | throw(AssertFailedException) | -| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:9:17:24 | call to method IsNull | normal | -| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:9:17:24 | call to method IsNull | throw(AssertFailedException) | -| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:23:17:23 | access to local variable s | normal | -| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:18:9:18:35 | call to method WriteLine | normal | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:9:18:35 | call to method WriteLine | normal | -| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:18:27:18:27 | access to local variable s | normal | -| Assert.cs:18:27:18:34 | access to property Length | Assert.cs:18:27:18:34 | access to property Length | normal | -| Assert.cs:22:5:26:5 | {...} | Assert.cs:24:9:24:27 | call to method IsNotNull | throw(AssertFailedException) | -| Assert.cs:22:5:26:5 | {...} | Assert.cs:25:9:25:35 | call to method WriteLine | normal | -| Assert.cs:23:9:23:33 | ... ...; | Assert.cs:23:16:23:32 | String s = ... | normal | -| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:23:16:23:32 | String s = ... | normal | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | access to parameter b | false | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | access to parameter b | true | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:20:23:32 | ... ? ... : ... | normal | -| Assert.cs:23:24:23:27 | null | Assert.cs:23:24:23:27 | null | normal | -| Assert.cs:23:31:23:32 | "" | Assert.cs:23:31:23:32 | "" | normal | -| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:9:24:27 | call to method IsNotNull | normal | -| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:9:24:27 | call to method IsNotNull | throw(AssertFailedException) | -| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:9:24:27 | call to method IsNotNull | normal | -| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:9:24:27 | call to method IsNotNull | throw(AssertFailedException) | -| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:26:24:26 | access to local variable s | normal | -| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:25:9:25:35 | call to method WriteLine | normal | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:9:25:35 | call to method WriteLine | normal | -| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:25:27:25:27 | access to local variable s | normal | -| Assert.cs:25:27:25:34 | access to property Length | Assert.cs:25:27:25:34 | access to property Length | normal | -| Assert.cs:29:5:33:5 | {...} | Assert.cs:31:9:31:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:29:5:33:5 | {...} | Assert.cs:32:9:32:35 | call to method WriteLine | normal | -| Assert.cs:30:9:30:33 | ... ...; | Assert.cs:30:16:30:32 | String s = ... | normal | -| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:30:16:30:32 | String s = ... | normal | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | access to parameter b | false | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | access to parameter b | true | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:20:30:32 | ... ? ... : ... | normal | -| Assert.cs:30:24:30:27 | null | Assert.cs:30:24:30:27 | null | normal | -| Assert.cs:30:31:30:32 | "" | Assert.cs:30:31:30:32 | "" | normal | -| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:9:31:32 | call to method IsTrue | normal | -| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:9:31:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:9:31:32 | call to method IsTrue | normal | -| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:9:31:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:23:31:23 | access to local variable s | normal | -| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:31 | ... == ... | normal | -| Assert.cs:31:28:31:31 | null | Assert.cs:31:28:31:31 | null | normal | -| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:32:9:32:35 | call to method WriteLine | normal | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:9:32:35 | call to method WriteLine | normal | -| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:32:27:32:27 | access to local variable s | normal | -| Assert.cs:32:27:32:34 | access to property Length | Assert.cs:32:27:32:34 | access to property Length | normal | -| Assert.cs:36:5:40:5 | {...} | Assert.cs:38:9:38:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:36:5:40:5 | {...} | Assert.cs:39:9:39:35 | call to method WriteLine | normal | -| Assert.cs:37:9:37:33 | ... ...; | Assert.cs:37:16:37:32 | String s = ... | normal | -| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:37:16:37:32 | String s = ... | normal | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | access to parameter b | false | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | access to parameter b | true | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:20:37:32 | ... ? ... : ... | normal | -| Assert.cs:37:24:37:27 | null | Assert.cs:37:24:37:27 | null | normal | -| Assert.cs:37:31:37:32 | "" | Assert.cs:37:31:37:32 | "" | normal | -| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:9:38:32 | call to method IsTrue | normal | -| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:9:38:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:9:38:32 | call to method IsTrue | normal | -| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:9:38:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:23:38:23 | access to local variable s | normal | -| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:31 | ... != ... | normal | -| Assert.cs:38:28:38:31 | null | Assert.cs:38:28:38:31 | null | normal | -| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:39:9:39:35 | call to method WriteLine | normal | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:9:39:35 | call to method WriteLine | normal | -| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:39:27:39:27 | access to local variable s | normal | -| Assert.cs:39:27:39:34 | access to property Length | Assert.cs:39:27:39:34 | access to property Length | normal | -| Assert.cs:43:5:47:5 | {...} | Assert.cs:45:9:45:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:43:5:47:5 | {...} | Assert.cs:46:9:46:35 | call to method WriteLine | normal | -| Assert.cs:44:9:44:33 | ... ...; | Assert.cs:44:16:44:32 | String s = ... | normal | -| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:44:16:44:32 | String s = ... | normal | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | access to parameter b | false | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | access to parameter b | true | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:20:44:32 | ... ? ... : ... | normal | -| Assert.cs:44:24:44:27 | null | Assert.cs:44:24:44:27 | null | normal | -| Assert.cs:44:31:44:32 | "" | Assert.cs:44:31:44:32 | "" | normal | -| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:9:45:33 | call to method IsFalse | normal | -| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:9:45:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:9:45:33 | call to method IsFalse | normal | -| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:9:45:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:24:45:24 | access to local variable s | normal | -| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:32 | ... != ... | normal | -| Assert.cs:45:29:45:32 | null | Assert.cs:45:29:45:32 | null | normal | -| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:46:9:46:35 | call to method WriteLine | normal | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:9:46:35 | call to method WriteLine | normal | -| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:46:27:46:27 | access to local variable s | normal | -| Assert.cs:46:27:46:34 | access to property Length | Assert.cs:46:27:46:34 | access to property Length | normal | -| Assert.cs:50:5:54:5 | {...} | Assert.cs:52:9:52:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:50:5:54:5 | {...} | Assert.cs:53:9:53:35 | call to method WriteLine | normal | -| Assert.cs:51:9:51:33 | ... ...; | Assert.cs:51:16:51:32 | String s = ... | normal | -| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:51:16:51:32 | String s = ... | normal | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | access to parameter b | false | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | access to parameter b | true | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:20:51:32 | ... ? ... : ... | normal | -| Assert.cs:51:24:51:27 | null | Assert.cs:51:24:51:27 | null | normal | -| Assert.cs:51:31:51:32 | "" | Assert.cs:51:31:51:32 | "" | normal | -| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:9:52:33 | call to method IsFalse | normal | -| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:9:52:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:9:52:33 | call to method IsFalse | normal | -| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:9:52:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | normal | -| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:32 | ... == ... | normal | -| Assert.cs:52:29:52:32 | null | Assert.cs:52:29:52:32 | null | normal | -| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:53:9:53:35 | call to method WriteLine | normal | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:9:53:35 | call to method WriteLine | normal | -| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:53:27:53:27 | access to local variable s | normal | -| Assert.cs:53:27:53:34 | access to property Length | Assert.cs:53:27:53:34 | access to property Length | normal | -| Assert.cs:57:5:61:5 | {...} | Assert.cs:59:9:59:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:57:5:61:5 | {...} | Assert.cs:60:9:60:35 | call to method WriteLine | normal | -| Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:16:58:32 | String s = ... | normal | -| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:16:58:32 | String s = ... | normal | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | false | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | true | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:32 | ... ? ... : ... | normal | -| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | normal | -| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | normal | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:9:59:37 | call to method IsTrue | normal | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:9:59:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:9:59:37 | call to method IsTrue | normal | -| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:9:59:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | normal | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | ... != ... | false | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | ... != ... | true | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:36 | ... && ... | normal | -| Assert.cs:59:28:59:31 | null | Assert.cs:59:28:59:31 | null | normal | -| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | normal | -| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:9:60:35 | call to method WriteLine | normal | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:9:60:35 | call to method WriteLine | normal | -| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:27 | access to local variable s | normal | -| Assert.cs:60:27:60:34 | access to property Length | Assert.cs:60:27:60:34 | access to property Length | normal | -| Assert.cs:64:5:68:5 | {...} | Assert.cs:66:9:66:38 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:64:5:68:5 | {...} | Assert.cs:67:9:67:35 | call to method WriteLine | normal | -| Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:16:65:32 | String s = ... | normal | -| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:16:65:32 | String s = ... | normal | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | false | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | true | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:32 | ... ? ... : ... | normal | -| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | normal | -| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | normal | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:9:66:38 | call to method IsFalse | normal | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:9:66:38 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:9:66:38 | call to method IsFalse | normal | -| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:9:66:38 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | normal | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | ... == ... | false | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | ... == ... | true | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:37 | ... \|\| ... | normal | -| Assert.cs:66:29:66:32 | null | Assert.cs:66:29:66:32 | null | normal | -| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | normal | -| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:9:67:35 | call to method WriteLine | normal | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:9:67:35 | call to method WriteLine | normal | -| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:27 | access to local variable s | normal | -| Assert.cs:67:27:67:34 | access to property Length | Assert.cs:67:27:67:34 | access to property Length | normal | -| Assert.cs:71:5:75:5 | {...} | Assert.cs:73:9:73:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:71:5:75:5 | {...} | Assert.cs:74:9:74:35 | call to method WriteLine | normal | -| Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:16:72:32 | String s = ... | normal | -| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:16:72:32 | String s = ... | normal | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | false | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | true | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:32 | ... ? ... : ... | normal | -| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | normal | -| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | normal | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:9:73:37 | call to method IsTrue | normal | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:9:73:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:9:73:37 | call to method IsTrue | normal | -| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:9:73:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:23:73:23 | access to local variable s | normal | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | ... == ... | false | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | ... == ... | true | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:36 | ... && ... | normal | -| Assert.cs:73:28:73:31 | null | Assert.cs:73:28:73:31 | null | normal | -| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | normal | -| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:9:74:35 | call to method WriteLine | normal | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:9:74:35 | call to method WriteLine | normal | -| Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:27 | access to local variable s | normal | -| Assert.cs:74:27:74:34 | access to property Length | Assert.cs:74:27:74:34 | access to property Length | normal | -| Assert.cs:78:5:82:5 | {...} | Assert.cs:80:9:80:38 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:78:5:82:5 | {...} | Assert.cs:81:9:81:35 | call to method WriteLine | normal | -| Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:16:79:32 | String s = ... | normal | -| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:16:79:32 | String s = ... | normal | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | false | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | true | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:32 | ... ? ... : ... | normal | -| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | normal | -| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | normal | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:9:80:38 | call to method IsFalse | normal | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:9:80:38 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:9:80:38 | call to method IsFalse | normal | -| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:9:80:38 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | normal | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | ... != ... | false | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | ... != ... | true | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:37 | ... \|\| ... | normal | -| Assert.cs:80:29:80:32 | null | Assert.cs:80:29:80:32 | null | normal | -| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | normal | -| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:9:81:35 | call to method WriteLine | normal | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:9:81:35 | call to method WriteLine | normal | -| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:27 | access to local variable s | normal | -| Assert.cs:81:27:81:34 | access to property Length | Assert.cs:81:27:81:34 | access to property Length | normal | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:87:9:87:31 | call to method Assert | exit | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:91:9:91:24 | call to method IsNull | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:95:9:95:27 | call to method IsNotNull | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:99:9:99:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:103:9:103:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:107:9:107:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:111:9:111:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:115:9:115:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:119:9:119:39 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:123:9:123:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:127:9:127:39 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:128:9:128:35 | call to method WriteLine | normal | -| Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:16:86:32 | String s = ... | normal | -| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:16:86:32 | String s = ... | normal | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | access to parameter b | false | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | access to parameter b | true | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | normal | -| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | normal | -| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | normal | -| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:87:9:87:31 | call to method Assert | exit | -| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:87:9:87:31 | call to method Assert | normal | -| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:9:87:31 | call to method Assert | exit | -| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:9:87:31 | call to method Assert | normal | -| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:22:87:22 | access to local variable s | normal | -| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:22:87:30 | ... != ... | normal | -| Assert.cs:87:27:87:30 | null | Assert.cs:87:27:87:30 | null | normal | -| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:88:9:88:35 | call to method WriteLine | normal | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:9:88:35 | call to method WriteLine | normal | -| Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:27:88:27 | access to local variable s | normal | -| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:27:88:34 | access to property Length | normal | -| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:9:90:25 | ... = ... | normal | -| Assert.cs:90:9:90:26 | ...; | Assert.cs:90:9:90:25 | ... = ... | normal | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | access to parameter b | false | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | access to parameter b | true | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | normal | -| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | normal | -| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | normal | -| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:91:9:91:24 | call to method IsNull | normal | -| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:91:9:91:24 | call to method IsNull | throw(AssertFailedException) | -| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:9:91:24 | call to method IsNull | normal | -| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:9:91:24 | call to method IsNull | throw(AssertFailedException) | -| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:23:91:23 | access to local variable s | normal | -| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:92:9:92:35 | call to method WriteLine | normal | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:9:92:35 | call to method WriteLine | normal | -| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:27 | access to local variable s | normal | -| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:27:92:34 | access to property Length | normal | -| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:9:94:25 | ... = ... | normal | -| Assert.cs:94:9:94:26 | ...; | Assert.cs:94:9:94:25 | ... = ... | normal | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | access to parameter b | false | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | access to parameter b | true | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | normal | -| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | normal | -| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | normal | -| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:95:9:95:27 | call to method IsNotNull | normal | -| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:95:9:95:27 | call to method IsNotNull | throw(AssertFailedException) | -| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:9:95:27 | call to method IsNotNull | normal | -| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:9:95:27 | call to method IsNotNull | throw(AssertFailedException) | -| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:26:95:26 | access to local variable s | normal | -| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:96:9:96:35 | call to method WriteLine | normal | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:9:96:35 | call to method WriteLine | normal | -| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:27 | access to local variable s | normal | -| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:27:96:34 | access to property Length | normal | -| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:9:98:25 | ... = ... | normal | -| Assert.cs:98:9:98:26 | ...; | Assert.cs:98:9:98:25 | ... = ... | normal | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | access to parameter b | false | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | access to parameter b | true | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | normal | -| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | normal | -| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | normal | -| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:99:9:99:32 | call to method IsTrue | normal | -| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:99:9:99:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:9:99:32 | call to method IsTrue | normal | -| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:9:99:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:23:99:23 | access to local variable s | normal | -| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:23:99:31 | ... == ... | normal | -| Assert.cs:99:28:99:31 | null | Assert.cs:99:28:99:31 | null | normal | -| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:100:9:100:35 | call to method WriteLine | normal | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:9:100:35 | call to method WriteLine | normal | -| Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:27:100:27 | access to local variable s | normal | -| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:27:100:34 | access to property Length | normal | -| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:9:102:25 | ... = ... | normal | -| Assert.cs:102:9:102:26 | ...; | Assert.cs:102:9:102:25 | ... = ... | normal | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | access to parameter b | false | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | access to parameter b | true | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | normal | -| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | normal | -| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | normal | -| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:103:9:103:32 | call to method IsTrue | normal | -| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:103:9:103:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:9:103:32 | call to method IsTrue | normal | -| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:9:103:32 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:23:103:23 | access to local variable s | normal | -| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:23:103:31 | ... != ... | normal | -| Assert.cs:103:28:103:31 | null | Assert.cs:103:28:103:31 | null | normal | -| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:104:9:104:35 | call to method WriteLine | normal | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:9:104:35 | call to method WriteLine | normal | -| Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:27:104:27 | access to local variable s | normal | -| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:27:104:34 | access to property Length | normal | -| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:9:106:25 | ... = ... | normal | -| Assert.cs:106:9:106:26 | ...; | Assert.cs:106:9:106:25 | ... = ... | normal | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | access to parameter b | false | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | access to parameter b | true | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | normal | -| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | normal | -| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | normal | -| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:107:9:107:33 | call to method IsFalse | normal | -| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:107:9:107:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:9:107:33 | call to method IsFalse | normal | -| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:9:107:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:24:107:24 | access to local variable s | normal | -| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:24:107:32 | ... != ... | normal | -| Assert.cs:107:29:107:32 | null | Assert.cs:107:29:107:32 | null | normal | -| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:108:9:108:35 | call to method WriteLine | normal | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:9:108:35 | call to method WriteLine | normal | -| Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:27:108:27 | access to local variable s | normal | -| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:27:108:34 | access to property Length | normal | -| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:9:110:25 | ... = ... | normal | -| Assert.cs:110:9:110:26 | ...; | Assert.cs:110:9:110:25 | ... = ... | normal | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | access to parameter b | false | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | access to parameter b | true | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | normal | -| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | normal | -| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | normal | -| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:111:9:111:33 | call to method IsFalse | normal | -| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:111:9:111:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:9:111:33 | call to method IsFalse | normal | -| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:9:111:33 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:24:111:24 | access to local variable s | normal | -| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:24:111:32 | ... == ... | normal | -| Assert.cs:111:29:111:32 | null | Assert.cs:111:29:111:32 | null | normal | -| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:112:9:112:35 | call to method WriteLine | normal | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:9:112:35 | call to method WriteLine | normal | -| Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:27:112:27 | access to local variable s | normal | -| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:27:112:34 | access to property Length | normal | -| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:9:114:25 | ... = ... | normal | -| Assert.cs:114:9:114:26 | ...; | Assert.cs:114:9:114:25 | ... = ... | normal | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | access to parameter b | false | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | access to parameter b | true | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | normal | -| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | normal | -| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | normal | -| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:9:115:37 | call to method IsTrue | normal | -| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:9:115:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:9:115:37 | call to method IsTrue | normal | -| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:9:115:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:23:115:23 | access to local variable s | normal | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | ... != ... | false | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | ... != ... | true | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | normal | -| Assert.cs:115:28:115:31 | null | Assert.cs:115:28:115:31 | null | normal | -| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | normal | -| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:9:116:35 | call to method WriteLine | normal | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:9:116:35 | call to method WriteLine | normal | -| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:27 | access to local variable s | normal | -| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:27:116:34 | access to property Length | normal | -| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:9:118:25 | ... = ... | normal | -| Assert.cs:118:9:118:26 | ...; | Assert.cs:118:9:118:25 | ... = ... | normal | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | access to parameter b | false | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | access to parameter b | true | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | normal | -| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | normal | -| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | normal | -| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:9:119:39 | call to method IsFalse | normal | -| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:9:119:39 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:9:119:39 | call to method IsFalse | normal | -| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:9:119:39 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:24:119:24 | access to local variable s | normal | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | ... == ... | false | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | ... == ... | true | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | normal | -| Assert.cs:119:29:119:32 | null | Assert.cs:119:29:119:32 | null | normal | -| Assert.cs:119:37:119:38 | !... | Assert.cs:119:37:119:38 | !... | normal | -| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | normal | -| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:9:120:35 | call to method WriteLine | normal | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:9:120:35 | call to method WriteLine | normal | -| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:27 | access to local variable s | normal | -| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:27:120:34 | access to property Length | normal | -| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:9:122:25 | ... = ... | normal | -| Assert.cs:122:9:122:26 | ...; | Assert.cs:122:9:122:25 | ... = ... | normal | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | access to parameter b | false | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | access to parameter b | true | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | normal | -| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | normal | -| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | normal | -| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:9:123:37 | call to method IsTrue | normal | -| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:9:123:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:9:123:37 | call to method IsTrue | normal | -| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:9:123:37 | call to method IsTrue | throw(AssertFailedException) | -| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:23:123:23 | access to local variable s | normal | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | ... == ... | false | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | ... == ... | true | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | normal | -| Assert.cs:123:28:123:31 | null | Assert.cs:123:28:123:31 | null | normal | -| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | normal | -| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:9:124:35 | call to method WriteLine | normal | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:9:124:35 | call to method WriteLine | normal | -| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:27 | access to local variable s | normal | -| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:27:124:34 | access to property Length | normal | -| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:9:126:25 | ... = ... | normal | -| Assert.cs:126:9:126:26 | ...; | Assert.cs:126:9:126:25 | ... = ... | normal | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | access to parameter b | false | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | access to parameter b | true | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | normal | -| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | normal | -| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | normal | -| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:9:127:39 | call to method IsFalse | normal | -| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:9:127:39 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:9:127:39 | call to method IsFalse | normal | -| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:9:127:39 | call to method IsFalse | throw(AssertFailedException) | -| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:24:127:24 | access to local variable s | normal | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | ... != ... | false | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | ... != ... | true | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | normal | -| Assert.cs:127:29:127:32 | null | Assert.cs:127:29:127:32 | null | normal | -| Assert.cs:127:37:127:38 | !... | Assert.cs:127:37:127:38 | !... | normal | -| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | normal | -| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:9:128:35 | call to method WriteLine | normal | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:9:128:35 | call to method WriteLine | normal | -| Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:27 | access to local variable s | normal | -| Assert.cs:128:27:128:34 | access to property Length | Assert.cs:128:27:128:34 | access to property Length | normal | -| Assert.cs:135:5:136:5 | {...} | Assert.cs:135:5:136:5 | {...} | normal | -| Assert.cs:139:5:142:5 | {...} | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | throw(Exception) | -| Assert.cs:139:5:142:5 | {...} | Assert.cs:141:9:141:15 | return ...; | return | -| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | normal | -| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | throw(Exception) | -| Assert.cs:140:9:140:35 | this access | Assert.cs:140:9:140:35 | this access | normal | -| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | normal | -| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | throw(Exception) | -| Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:25:140:26 | access to parameter b1 | normal | -| Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:29:140:30 | access to parameter b2 | normal | -| 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 | -| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:5:13:5:17 | Int32 x = ... | normal | -| Assignments.cs:5:17:5:17 | 0 | Assignments.cs:5:17:5:17 | 0 | normal | -| Assignments.cs:6:9:6:9 | access to local variable x | Assignments.cs:6:9:6:9 | access to local variable x | normal | -| Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:6:9:6:14 | ... += ... | normal | -| Assignments.cs:6:9:6:15 | ...; | Assignments.cs:6:9:6:14 | ... += ... | normal | -| Assignments.cs:6:14:6:14 | 1 | Assignments.cs:6:14:6:14 | 1 | normal | -| Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:8:17:8:21 | dynamic d = ... | normal | -| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:8:17:8:21 | dynamic d = ... | normal | -| Assignments.cs:8:21:8:21 | 0 | Assignments.cs:8:21:8:21 | 0 | normal | -| Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:8:21:8:21 | (...) ... | normal | -| Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:9:9:9 | access to local variable d | normal | -| Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:9:9:9:14 | ... -= ... | normal | -| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:9:9:9:14 | ... -= ... | normal | -| Assignments.cs:9:14:9:14 | 2 | Assignments.cs:9:14:9:14 | 2 | normal | -| Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:11:13:11:33 | Assignments a = ... | normal | -| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:11:13:11:33 | Assignments a = ... | normal | -| Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:17:11:33 | object creation of type Assignments | normal | -| Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:9:12:9 | access to local variable a | normal | -| Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:12:9:12:17 | ... += ... | normal | -| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:12:9:12:17 | ... += ... | normal | -| Assignments.cs:12:14:12:17 | this access | Assignments.cs:12:14:12:17 | this access | normal | -| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:9:14:13 | this access | normal | -| Assignments.cs:14:9:14:13 | this access | Assignments.cs:14:9:14:13 | this access | normal | -| Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:14:9:14:35 | ... += ... | normal | -| Assignments.cs:14:9:14:36 | ...; | Assignments.cs:14:9:14:35 | ... += ... | normal | -| Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:18:14:35 | (...) => ... | normal | -| Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:33:14:35 | {...} | normal | -| Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:9:19:17 | return ...; | return | -| Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:9:19:17 | return ...; | return | -| Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | normal | -| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:14 | ... = ... | normal | -| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:9:29:14 | ... = ... | normal | -| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:14 | ... = ... | normal | -| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:13:29:14 | 42 | normal | -| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:35:9:35:19 | ... = ... | normal | -| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:9:34:14 | ... = ... | normal | -| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:14 | ... = ... | normal | -| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:13:34:14 | 42 | normal | -| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:9:35:19 | ... = ... | normal | -| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:19 | ... = ... | normal | -| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:13:35:19 | "Hello" | normal | -| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | -| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | normal | -| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:13:40:14 | Int32 x1 | normal | -| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | -| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | this access | normal | -| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | call to method SetParamSingle | normal | -| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | this access | normal | -| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | call to method SetParamSingle | normal | -| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | access to field IntField | normal | -| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | this access | normal | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | call to method SetParamMulti | normal | -| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | this access | normal | -| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | call to method SetParamMulti | normal | -| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:34:43:37 | null | normal | -| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | access to field StringField | normal | -| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | this access | normal | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | -| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:58 | this access | normal | -| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | -| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | access to field IntField | normal | -| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | this access | normal | -| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:37:44:40 | null | normal | -| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | access to field StringField | normal | -| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | this access | normal | -| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | normal | -| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to method | normal | -| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | this access | normal | -| 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 | -| BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:15:17:15:28 | ... == ... | false | -| BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:16:17:16:17 | ; | normal | -| BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:10:21:10:26 | break; | normal [break] (0) | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:10:21:10:26 | break; | normal [break] (0) | -| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:7:26:7:28 | String arg | normal | -| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:33:7:36 | access to parameter args | normal | -| BreakInTry.cs:8:13:11:13 | {...} | BreakInTry.cs:9:21:9:31 | ... == ... | false | -| BreakInTry.cs:8:13:11:13 | {...} | BreakInTry.cs:10:21:10:26 | break; | break | -| BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:9:21:9:31 | ... == ... | false | -| BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:10:21:10:26 | break; | break | -| BreakInTry.cs:9:21:9:23 | access to local variable arg | BreakInTry.cs:9:21:9:23 | access to local variable arg | normal | -| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | ... == ... | false | -| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | ... == ... | true | -| BreakInTry.cs:9:28:9:31 | null | BreakInTry.cs:9:28:9:31 | null | normal | -| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:10:21:10:26 | break; | break | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:15:17:15:28 | ... == ... | false | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:16:17:16:17 | ; | normal | -| BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:15:17:15:28 | ... == ... | false | -| BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:16:17:16:17 | ; | normal | -| BreakInTry.cs:15:17:15:20 | access to parameter args | BreakInTry.cs:15:17:15:20 | access to parameter args | normal | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | ... == ... | false | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | ... == ... | true | -| BreakInTry.cs:15:25:15:28 | null | BreakInTry.cs:15:25:15:28 | null | normal | -| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:16:17:16:17 | ; | normal | -| BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:35:7:35:7 | ; | normal | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:31:21:31:32 | ... == ... | false [break] (0) | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | ; | normal [break] (0) | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:22:22:24 | String arg | normal | -| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:29:22:32 | access to parameter args | normal | -| BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:31:21:31:32 | ... == ... | break [false] (0) | -| BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:31:21:31:32 | ... == ... | false | -| BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:32:21:32:21 | ; | break [normal] (0) | -| BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:32:21:32:21 | ; | normal | -| BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:31:21:31:32 | ... == ... | break [false] (0) | -| BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:31:21:31:32 | ... == ... | false | -| BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:32:21:32:21 | ; | break [normal] (0) | -| BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:32:21:32:21 | ; | normal | -| BreakInTry.cs:25:13:28:13 | {...} | BreakInTry.cs:26:21:26:31 | ... == ... | false | -| BreakInTry.cs:25:13:28:13 | {...} | BreakInTry.cs:27:21:27:26 | break; | break | -| BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:26:21:26:31 | ... == ... | false | -| BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:27:21:27:26 | break; | break | -| BreakInTry.cs:26:21:26:23 | access to local variable arg | BreakInTry.cs:26:21:26:23 | access to local variable arg | normal | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | ... == ... | false | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | ... == ... | true | -| BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:26:28:26:31 | null | normal | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | break; | break | -| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | ... == ... | false | -| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:32:21:32:21 | ; | normal | -| BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:31:21:31:32 | ... == ... | false | -| BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:32:21:32:21 | ; | normal | -| BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:21:31:24 | access to parameter args | normal | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | ... == ... | false | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | ... == ... | true | -| BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:31:29:31:32 | null | normal | -| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:32:21:32:21 | ; | normal | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:35:7:35:7 | ; | normal | -| BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | return [empty] (0) | -| BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:50:21:50:26 | break; | return [normal] (0) | -| BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:53:7:53:7 | ; | normal | -| BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | return [empty] (0) | -| BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:50:21:50:26 | break; | normal [break] (0) | -| BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:50:21:50:26 | break; | return [normal] (0) | -| BreakInTry.cs:41:9:44:9 | {...} | BreakInTry.cs:42:17:42:28 | ... == ... | false | -| BreakInTry.cs:41:9:44:9 | {...} | BreakInTry.cs:43:17:43:23 | return ...; | return | -| BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:42:17:42:28 | ... == ... | false | -| BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:43:17:43:23 | return ...; | return | -| BreakInTry.cs:42:17:42:20 | access to parameter args | BreakInTry.cs:42:17:42:20 | access to parameter args | normal | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | ... == ... | false | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | ... == ... | true | -| BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:25:42:28 | null | normal | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | return | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:50:21:50:26 | break; | normal [break] (0) | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | break; | normal [break] (0) | -| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:26:47:28 | String arg | normal | -| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:33:47:36 | access to parameter args | normal | -| BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:49:21:49:31 | ... == ... | false | -| BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:50:21:50:26 | break; | break | -| BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:49:21:49:31 | ... == ... | false | -| BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:50:21:50:26 | break; | break | -| BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:21:49:23 | access to local variable arg | normal | -| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | ... == ... | false | -| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | ... == ... | true | -| BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:49:28:49:31 | null | normal | -| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | break; | break | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:53:7:53:7 | ; | normal | -| BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | return [empty] (0) | -| BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:68:21:68:26 | break; | normal [break] (0) | -| BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:68:21:68:26 | break; | return [normal] (0) | -| BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | return [empty] (0) | -| BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:68:21:68:26 | break; | normal [break] (0) | -| BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:68:21:68:26 | break; | return [normal] (0) | -| BreakInTry.cs:59:9:62:9 | {...} | BreakInTry.cs:60:17:60:28 | ... == ... | false | -| BreakInTry.cs:59:9:62:9 | {...} | BreakInTry.cs:61:17:61:23 | return ...; | return | -| BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:60:17:60:28 | ... == ... | false | -| BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:61:17:61:23 | return ...; | return | -| BreakInTry.cs:60:17:60:20 | access to parameter args | BreakInTry.cs:60:17:60:20 | access to parameter args | normal | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | ... == ... | false | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | ... == ... | true | -| BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:25:60:28 | null | normal | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | return | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:68:21:68:26 | break; | normal [break] (0) | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | empty | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | break; | normal [break] (0) | -| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:26:65:28 | String arg | normal | -| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:33:65:36 | access to parameter args | normal | -| BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:67:21:67:31 | ... == ... | false | -| BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:68:21:68:26 | break; | break | -| BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:67:21:67:31 | ... == ... | false | -| BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:68:21:68:26 | break; | break | -| BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:21:67:23 | access to local variable arg | normal | -| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | ... == ... | false | -| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | ... == ... | true | -| 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 | -| CompileTimeOperators.cs:7:16:7:27 | default(...) | CompileTimeOperators.cs:7:16:7:27 | default(...) | normal | -| CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:12:9:12:27 | return ...; | return | -| CompileTimeOperators.cs:12:9:12:27 | return ...; | CompileTimeOperators.cs:12:9:12:27 | return ...; | return | -| CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | normal | -| CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:17:9:17:27 | return ...; | return | -| CompileTimeOperators.cs:17:9:17:27 | return ...; | CompileTimeOperators.cs:17:9:17:27 | return ...; | return | -| CompileTimeOperators.cs:17:16:17:26 | typeof(...) | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | normal | -| CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:22:9:22:25 | return ...; | return | -| CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:22:9:22:25 | return ...; | return | -| 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) | -| CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | normal | -| CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | goto(End) [normal] (0) | -| CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | normal | -| CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | throw(Exception) [normal] (0) | -| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | goto(End) | -| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | normal | -| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | throw(Exception) | -| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:32:13:32:21 | goto ...; | goto(End) | -| CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | normal | -| CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | throw(Exception) | -| CompileTimeOperators.cs:33:13:33:38 | ...; | CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | normal | -| CompileTimeOperators.cs:33:13:33:38 | ...; | CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | throw(Exception) | -| CompileTimeOperators.cs:33:31:33:36 | "Dead" | CompileTimeOperators.cs:33:31:33:36 | "Dead" | normal | -| CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | normal | -| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | normal | -| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | normal | -| CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:31:37:39 | "Finally" | normal | -| CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | normal | -| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | normal | -| CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:27:39:32 | "Dead" | normal | -| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:9:40:11 | End: | normal | -| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | normal | -| 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 | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:26 | access to parameter i | null | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:38 | call to method ToString | non-null | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:38 | call to method ToString | null | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:26 | access to parameter i | null | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:38 | call to method ToString | null | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | normal | -| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:26 | access to parameter s | non-null | -| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:26 | access to parameter s | null | -| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:26 | access to parameter s | null | -| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:34 | access to property Length | normal | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:38:7:55 | access to property Length | normal | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | null | -| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | non-null | -| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | null | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | non-null | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | null | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | non-null | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | null | -| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:25 | access to parameter s | non-null | -| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:25 | access to parameter s | null | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:25 | access to parameter s | null | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | access to property Length | non-null | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | access to property Length | null | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | normal | -| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:38:9:38 | 0 | normal | -| ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:14:13:14:21 | return ...; | return | -| ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:16:13:16:21 | return ...; | return | -| ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:14:13:14:21 | return ...; | return | -| ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:16:13:16:21 | return ...; | return | -| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:13 | access to parameter s | non-null | -| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:13 | access to parameter s | null | -| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:13:13:13 | access to parameter s | null | -| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:13:13:21 | access to property Length | normal | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | ... > ... | false | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | ... > ... | true | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:25:13:25 | 0 | normal | -| ConditionalAccess.cs:13:25:13:25 | (...) ... | ConditionalAccess.cs:13:25:13:25 | (...) ... | normal | -| ConditionalAccess.cs:14:13:14:21 | return ...; | ConditionalAccess.cs:14:13:14:21 | return ...; | return | -| ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:14:20:14:20 | 0 | normal | -| ConditionalAccess.cs:16:13:16:21 | return ...; | ConditionalAccess.cs:16:13:16:21 | return ...; | return | -| ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:16:20:16:20 | 1 | normal | -| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | non-null | -| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | null | -| ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | null | -| ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | normal | -| ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | normal | -| ConditionalAccess.cs:22:5:26:5 | {...} | ConditionalAccess.cs:25:9:25:32 | ... = ... | normal | -| ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | normal | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | normal | -| ConditionalAccess.cs:23:17:23:38 | access to property Length | ConditionalAccess.cs:23:17:23:38 | access to property Length | normal | -| ConditionalAccess.cs:23:17:23:38 | access to property Length | ConditionalAccess.cs:23:18:23:29 | (...) ... | null | -| ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:18:23:29 | (...) ... | null | -| ConditionalAccess.cs:23:26:23:29 | null | ConditionalAccess.cs:23:26:23:29 | null | normal | -| ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:24:13:24:37 | String s = ... | normal | -| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:24:13:24:37 | String s = ... | normal | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:17:24:37 | call to method ToString | normal | -| ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:18:24:24 | (...) ... | non-null | -| ConditionalAccess.cs:24:24:24:24 | access to parameter i | ConditionalAccess.cs:24:24:24:24 | access to parameter i | normal | -| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:25:9:25:32 | ... = ... | normal | -| ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:25:9:25:32 | ... = ... | normal | -| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:13:25:14 | "" | non-null | -| ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | normal | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:31:25:31 | access to local variable s | normal | -| ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:28:30:32 | ... = ... | normal | -| ConditionalAccess.cs:30:32:30:32 | 0 | ConditionalAccess.cs:30:32:30:32 | 0 | normal | -| ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:35:9:35:12 | access to property Prop | null | -| ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:35:9:35:24 | call to method Out | normal | -| ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:34:9:34:13 | ... = ... | normal | -| ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:34:9:34:13 | ... = ... | normal | -| ConditionalAccess.cs:34:13:34:13 | 0 | ConditionalAccess.cs:34:13:34:13 | 0 | normal | -| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | access to property Prop | non-null | -| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | access to property Prop | null | -| ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | this access | normal | -| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:12 | access to property Prop | null | -| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | normal | -| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | access to property Prop | null | -| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:24 | call to method Out | normal | -| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:15:42:26 | return ...; | return | -| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:15:42:26 | return ...; | return | -| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:22:42:25 | null | normal | -| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:13:43:15 | {...} | normal | -| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:54:12:54:29 | ... += ... | normal | -| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | -| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | -| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | -| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:12:48:25 | ... = ... | normal | -| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | -| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:12:48:25 | ... = ... | normal | -| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | normal | -| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | -| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:12:49:32 | ... = ... | normal | -| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | -| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:12:49:32 | ... = ... | normal | -| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | normal | -| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | -| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | -| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:13:50:13 | 0 | normal | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:12:50:23 | ... = ... | normal | -| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | -| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:12:50:23 | ... = ... | normal | -| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | normal | -| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:18:50:23 | "Set0" | normal | -| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | -| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | -| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | -| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:18:51:31 | ... = ... | normal | -| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | -| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | -| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:18:51:31 | ... = ... | normal | -| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | normal | -| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | -| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | -| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | -| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:18:52:38 | ... = ... | normal | -| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | -| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | -| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:18:52:38 | ... = ... | normal | -| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | normal | -| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | -| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | -| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | normal | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:12:53:25 | ... -= ... | normal | -| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:12:53:25 | ... -= ... | normal | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | normal | -| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | -| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | -| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | -| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | normal | -| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:12:54:29 | ... += ... | normal | -| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:12:54:29 | ... += ... | normal | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | normal | -| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | normal | -| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:78 | ... + ... | normal | -| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:70:60:83 | ... + ... | normal | -| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:75:60:78 | ", " | normal | -| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | normal | -| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | normal | -| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to method | normal | -| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | this access | normal | -| 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 | -| Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | false | -| Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:6:13:6:15 | ...++ | normal | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | access to parameter inc | false | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | access to parameter inc | true | -| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:13 | access to parameter x | normal | -| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:15 | ...++ | normal | -| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | ...++ | normal | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | !... | false | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:8:13:8:15 | ...-- | normal | -| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:13:7:16 | !... | false | -| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:13:7:16 | !... | true | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | access to parameter inc | false | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | access to parameter inc | true | -| Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:13 | access to parameter x | normal | -| Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:15 | ...-- | normal | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:15 | ...-- | normal | -| Conditions.cs:12:5:20:5 | {...} | Conditions.cs:19:9:19:17 | return ...; | return | -| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:13:13:17 | Int32 x = ... | normal | -| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:13:13:17 | Int32 x = ... | normal | -| Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:17:13:17 | 0 | normal | -| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | false | -| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:15:13:15:15 | ...++ | normal | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | access to parameter b | false | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | access to parameter b | true | -| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:13 | access to local variable x | normal | -| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:15:13:15:15 | ...++ | normal | -| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:15 | ...++ | normal | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:17 | ... > ... | false | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | !... | false | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:18:17:18:19 | ...-- | normal | -| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:13:16:13 | access to local variable x | normal | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | ... > ... | false | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | ... > ... | true | -| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:17:16:17 | 0 | normal | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | !... | false | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:18:17:18:19 | ...-- | normal | -| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:17:17:18 | !... | false | -| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:17:17:18 | !... | true | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | access to parameter b | false | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | access to parameter b | true | -| Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:17 | access to local variable x | normal | -| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:19 | ...-- | normal | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:19 | ...-- | normal | -| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:19:9:19:17 | return ...; | return | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x | normal | -| Conditions.cs:23:5:31:5 | {...} | Conditions.cs:30:9:30:17 | return ...; | return | -| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:13:24:17 | Int32 x = ... | normal | -| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:13:24:17 | Int32 x = ... | normal | -| Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:17:24:17 | 0 | normal | -| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | false | -| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | false | -| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:27:17:27:19 | ...++ | normal | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | access to parameter b1 | false | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | access to parameter b1 | true | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | false | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:19 | ...++ | normal | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | access to parameter b2 | false | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | access to parameter b2 | true | -| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:17 | access to local variable x | normal | -| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:27:17:27:19 | ...++ | normal | -| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:19 | ...++ | normal | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | false | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:29:13:29:15 | ...++ | normal | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | access to parameter b2 | false | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | access to parameter b2 | true | -| Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:13 | access to local variable x | normal | -| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:15 | ...++ | normal | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:15 | ...++ | normal | -| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:30:9:30:17 | return ...; | return | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x | normal | -| Conditions.cs:34:5:44:5 | {...} | Conditions.cs:43:9:43:17 | return ...; | return | -| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:13:35:17 | Int32 x = ... | normal | -| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:13:35:17 | Int32 x = ... | normal | -| Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:17:35:17 | 0 | normal | -| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:13:36:22 | Boolean b2 = ... | normal | -| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:13:36:22 | Boolean b2 = ... | normal | -| Conditions.cs:36:18:36:22 | false | Conditions.cs:36:18:36:22 | false | normal | -| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | false | -| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:38:13:38:19 | ... = ... | normal | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | access to parameter b1 | false | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | access to parameter b1 | true | -| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:13:38:19 | ... = ... | normal | -| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:19 | ... = ... | normal | -| Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:18:38:19 | access to parameter b1 | normal | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | false | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:15 | ...++ | normal | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | access to local variable b2 | false | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | access to local variable b2 | true | -| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:13 | access to local variable x | normal | -| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:40:13:40:15 | ...++ | normal | -| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:15 | ...++ | normal | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | false | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:42:13:42:15 | ...++ | normal | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | access to local variable b2 | false | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | access to local variable b2 | true | -| Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:13 | access to local variable x | normal | -| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:15 | ...++ | normal | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:15 | ...++ | normal | -| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:43:9:43:17 | return ...; | return | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x | normal | -| Conditions.cs:47:5:55:5 | {...} | Conditions.cs:54:9:54:17 | return ...; | return | -| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:13:48:17 | Int32 y = ... | normal | -| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:13:48:17 | Int32 y = ... | normal | -| Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:17:48:17 | 0 | normal | -| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:22 | ... > ... | false | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x | normal | -| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:18 | ...-- | normal | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | ... > ... | false | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | ... > ... | true | -| Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:22:49:22 | 0 | normal | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:17:51:17 | access to parameter b | false | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:19 | ...++ | normal | -| Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | false | -| Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:52:17:52:19 | ...++ | normal | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | access to parameter b | false | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | access to parameter b | true | -| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:17 | access to local variable y | normal | -| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:52:17:52:19 | ...++ | normal | -| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:19 | ...++ | normal | -| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:54:9:54:17 | return ...; | return | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y | normal | -| Conditions.cs:58:5:68:5 | {...} | Conditions.cs:67:9:67:17 | return ...; | return | -| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:13:59:17 | Int32 y = ... | normal | -| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:13:59:17 | Int32 y = ... | normal | -| Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:17:59:17 | 0 | normal | -| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:22 | ... > ... | false | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x | normal | -| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:18 | ...-- | normal | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | ... > ... | false | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | ... > ... | true | -| Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:22:60:22 | 0 | normal | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:17:62:17 | access to parameter b | false | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:19 | ...++ | normal | -| Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | false | -| Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:63:17:63:19 | ...++ | normal | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | access to parameter b | false | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | access to parameter b | true | -| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:17 | access to local variable y | normal | -| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:63:17:63:19 | ...++ | normal | -| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:19 | ...++ | normal | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | false | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:66:13:66:15 | ...++ | normal | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | access to parameter b | false | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | access to parameter b | true | -| Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:13 | access to local variable y | normal | -| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:15 | ...++ | normal | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:15 | ...++ | normal | -| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:67:9:67:17 | return ...; | return | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y | normal | -| Conditions.cs:71:5:84:5 | {...} | Conditions.cs:83:9:83:17 | return ...; | return | -| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:13:72:29 | Boolean b = ... | normal | -| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:13:72:29 | Boolean b = ... | normal | -| Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:18 | access to parameter ss | normal | -| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:25 | access to property Length | normal | -| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:17:72:29 | ... > ... | normal | -| Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:29:72:29 | 0 | normal | -| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:13:73:17 | Int32 x = ... | normal | -| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:13:73:17 | Int32 x = ... | normal | -| Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:17:73:17 | 0 | normal | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | empty | -| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:74:22:74:22 | String _ | normal | -| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | access to parameter ss | normal | -| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:78:17:78:21 | ... > ... | false | -| Conditions.cs:75:9:80:9 | {...} | Conditions.cs:79:17:79:25 | ... = ... | normal | -| Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b | false | -| Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:77:17:77:19 | ...++ | normal | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | access to local variable b | false | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | access to local variable b | true | -| Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:17 | access to local variable x | normal | -| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:77:17:77:19 | ...++ | normal | -| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:19 | ...++ | normal | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:21 | ... > ... | false | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:79:17:79:25 | ... = ... | normal | -| Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:17:78:17 | access to local variable x | normal | -| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | ... > ... | false | -| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | ... > ... | true | -| Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:21:78:21 | 0 | normal | -| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:17:79:25 | ... = ... | normal | -| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:25 | ... = ... | normal | -| Conditions.cs:79:21:79:25 | false | Conditions.cs:79:21:79:25 | false | normal | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:13:81:13 | access to local variable b | false | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:82:13:82:15 | ...++ | normal | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | access to local variable b | false | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | access to local variable b | true | -| Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:13 | access to local variable x | normal | -| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:82:13:82:15 | ...++ | normal | -| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:15 | ...++ | normal | -| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:83:9:83:17 | return ...; | return | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x | normal | -| Conditions.cs:87:5:100:5 | {...} | Conditions.cs:99:9:99:17 | return ...; | return | -| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:13:88:29 | Boolean b = ... | normal | -| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:13:88:29 | Boolean b = ... | normal | -| Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:18 | access to parameter ss | normal | -| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:25 | access to property Length | normal | -| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:17:88:29 | ... > ... | normal | -| Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:29:88:29 | 0 | normal | -| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:13:89:17 | Int32 x = ... | normal | -| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:13:89:17 | Int32 x = ... | normal | -| Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:17:89:17 | 0 | normal | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | empty | -| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:90:22:90:22 | String _ | normal | -| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | access to parameter ss | normal | -| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:96:17:96:17 | access to local variable b | false | -| Conditions.cs:91:9:98:9 | {...} | Conditions.cs:97:17:97:19 | ...++ | normal | -| Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b | false | -| Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:93:17:93:19 | ...++ | normal | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | access to local variable b | false | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | access to local variable b | true | -| Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:17 | access to local variable x | normal | -| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:93:17:93:19 | ...++ | normal | -| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:19 | ...++ | normal | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:21 | ... > ... | false | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:95:17:95:25 | ... = ... | normal | -| Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:17:94:17 | access to local variable x | normal | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | ... > ... | false | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | ... > ... | true | -| Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:21:94:21 | 0 | normal | -| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:17:95:25 | ... = ... | normal | -| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:25 | ... = ... | normal | -| Conditions.cs:95:21:95:25 | false | Conditions.cs:95:21:95:25 | false | normal | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | false | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:97:17:97:19 | ...++ | normal | -| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | access to local variable b | false | -| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | access to local variable b | true | -| Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:17 | access to local variable x | normal | -| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:97:17:97:19 | ...++ | normal | -| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:19 | ...++ | normal | -| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:99:9:99:17 | return ...; | return | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x | normal | -| Conditions.cs:103:5:111:5 | {...} | Conditions.cs:110:9:110:17 | return ...; | return | -| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:13:104:28 | String x = ... | normal | -| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:13:104:28 | String x = ... | normal | -| Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:17 | access to parameter b | normal | -| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:28 | call to method ToString | normal | -| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | false | -| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:106:13:106:19 | ... += ... | normal | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | access to parameter b | false | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | access to parameter b | true | -| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:13 | access to local variable x | normal | -| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:13:106:19 | ... += ... | normal | -| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:19 | ... += ... | normal | -| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:18:106:19 | "" | normal | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:24 | ... > ... | false | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | !... | false | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:109:17:109:23 | ... += ... | normal | -| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:13 | access to local variable x | normal | -| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:13:107:20 | access to property Length | normal | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | ... > ... | false | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | ... > ... | true | -| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:24:107:24 | 0 | normal | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | !... | false | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:109:17:109:23 | ... += ... | normal | -| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:17:108:18 | !... | false | -| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:17:108:18 | !... | true | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | access to parameter b | false | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | access to parameter b | true | -| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x | normal | -| Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:109:17:109:23 | ... += ... | normal | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:23 | ... += ... | normal | -| Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:22:109:23 | "" | normal | -| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:110:9:110:17 | return ...; | return | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x | normal | -| Conditions.cs:114:5:124:5 | {...} | Conditions.cs:116:25:116:39 | ... < ... | false | -| Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:115:16:115:23 | String s = ... | normal | -| Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:115:16:115:23 | String s = ... | normal | -| Conditions.cs:115:20:115:23 | null | Conditions.cs:115:20:115:23 | null | normal | -| Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:116:25:116:39 | ... < ... | false | -| Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:18:116:22 | Int32 i = ... | normal | -| Conditions.cs:116:22:116:22 | 0 | Conditions.cs:116:22:116:22 | 0 | normal | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:25 | access to local variable i | normal | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | ... < ... | false | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | ... < ... | true | -| Conditions.cs:116:29:116:32 | access to parameter args | Conditions.cs:116:29:116:32 | access to parameter args | normal | -| Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:116:29:116:39 | access to property Length | normal | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | normal | -| Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:116:42:116:44 | ...++ | normal | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:121:17:121:20 | access to local variable last | false | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:122:17:122:24 | ... = ... | normal | -| Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:118:17:118:43 | Boolean last = ... | normal | -| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:118:17:118:43 | Boolean last = ... | normal | -| Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:24:118:24 | access to local variable i | normal | -| Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:24:118:43 | ... == ... | normal | -| Conditions.cs:118:29:118:32 | access to parameter args | Conditions.cs:118:29:118:32 | access to parameter args | normal | -| Conditions.cs:118:29:118:39 | access to property Length | Conditions.cs:118:29:118:39 | access to property Length | normal | -| Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:29:118:43 | ... - ... | normal | -| Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:43:118:43 | 1 | normal | -| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:17:119:21 | !... | false | -| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:120:17:120:22 | ... = ... | normal | -| Conditions.cs:119:17:119:21 | !... | Conditions.cs:119:17:119:21 | !... | false | -| Conditions.cs:119:17:119:21 | !... | Conditions.cs:119:17:119:21 | !... | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | access to local variable last | false | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | access to local variable last | true | -| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:120:17:120:22 | ... = ... | normal | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:22 | ... = ... | normal | -| Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:21:120:22 | "" | normal | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | false | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:122:17:122:24 | ... = ... | normal | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | access to local variable last | false | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | access to local variable last | true | -| Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:122:17:122:24 | ... = ... | normal | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:24 | ... = ... | normal | -| Conditions.cs:122:21:122:24 | null | Conditions.cs:122:21:122:24 | null | normal | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | true | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:133:17:133:22 | access to field Field1 | false | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:135:21:135:26 | access to field Field2 | false | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:137:21:137:37 | call to method ToString | normal | -| Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:133:17:133:22 | access to field Field1 | false | -| Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:135:21:135:26 | access to field Field2 | false | -| Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:137:21:137:37 | call to method ToString | normal | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | access to field Field1 | false | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | access to field Field1 | true | -| Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:17:133:22 | this access | normal | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:135:21:135:26 | access to field Field2 | false | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:137:21:137:37 | call to method ToString | normal | -| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:135:21:135:26 | access to field Field2 | false | -| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:137:21:137:37 | call to method ToString | normal | -| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | access to field Field2 | false | -| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | access to field Field2 | true | -| Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:21:135:26 | this access | normal | -| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:137:21:137:37 | call to method ToString | normal | -| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:26 | access to field Field1 | normal | -| Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:26 | this access | normal | -| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:137:21:137:37 | call to method ToString | normal | -| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:37 | call to method ToString | normal | -| Conditions.cs:144:5:150:5 | {...} | Conditions.cs:147:13:147:48 | call to method WriteLine | normal | -| Conditions.cs:144:5:150:5 | {...} | Conditions.cs:149:13:149:48 | call to method WriteLine | normal | -| Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:13:145:29 | String s = ... | normal | -| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:13:145:29 | String s = ... | normal | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | access to parameter b | false | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | access to parameter b | true | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | normal | -| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | normal | -| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | normal | -| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:147:13:147:48 | call to method WriteLine | normal | -| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:149:13:149:48 | call to method WriteLine | normal | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | access to parameter b | false | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | access to parameter b | true | -| Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:147:13:147:48 | call to method WriteLine | normal | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:48 | call to method WriteLine | normal | -| Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:38:147:47 | $"..." | normal | -| Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:40:147:43 | "a = " | normal | -| Conditions.cs:147:44:147:46 | {...} | Conditions.cs:147:44:147:46 | {...} | normal | -| Conditions.cs:147:45:147:45 | access to local variable s | Conditions.cs:147:45:147:45 | access to local variable s | normal | -| Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:149:13:149:48 | call to method WriteLine | normal | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:48 | call to method WriteLine | normal | -| Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:38:149:47 | $"..." | normal | -| Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:40:149:43 | "b = " | normal | -| 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 | -| ExitMethods.cs:10:9:10:25 | ...; | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | normal | -| ExitMethods.cs:10:20:10:23 | true | ExitMethods.cs:10:20:10:23 | true | normal | -| ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:11:9:11:15 | return ...; | return | -| ExitMethods.cs:15:5:18:5 | {...} | ExitMethods.cs:17:9:17:15 | return ...; | return | -| ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | normal | -| ExitMethods.cs:16:9:16:26 | ...; | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | normal | -| ExitMethods.cs:16:20:16:24 | false | ExitMethods.cs:16:20:16:24 | false | normal | -| ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:17:9:17:15 | return ...; | return | -| ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | throw(ArgumentException) | -| ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | throw(Exception) | -| ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:23:9:23:15 | return ...; | return | -| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | throw(ArgumentException) | -| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | throw(Exception) | -| ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | throw(ArgumentException) | -| ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | throw(Exception) | -| ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:21:22:24 | true | normal | -| ExitMethods.cs:23:9:23:15 | return ...; | ExitMethods.cs:23:9:23:15 | return ...; | return | -| ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:28:9:28:14 | call to method Exit | exit | -| ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:29:9:29:15 | return ...; | return | -| ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:28:9:28:14 | call to method Exit | exit | -| ExitMethods.cs:28:9:28:14 | this access | ExitMethods.cs:28:9:28:14 | this access | normal | -| ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:28:9:28:14 | call to method Exit | exit | -| ExitMethods.cs:29:9:29:15 | return ...; | ExitMethods.cs:29:9:29:15 | return ...; | return | -| ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | exit | -| ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:35:9:35:15 | return ...; | return | -| ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | exit | -| ExitMethods.cs:34:9:34:25 | this access | ExitMethods.cs:34:9:34:25 | this access | normal | -| ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | exit | -| ExitMethods.cs:35:9:35:15 | return ...; | ExitMethods.cs:35:9:35:15 | return ...; | return | -| ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | return | -| ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | return | -| ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:46:13:46:19 | return ...; | return | -| ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:50:13:50:19 | return ...; | return | -| ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | throw(ArgumentException) | -| ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | throw(Exception) | -| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | throw(ArgumentException) | -| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | throw(Exception) | -| ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | throw(ArgumentException) | -| ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | throw(Exception) | -| ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:25:42:29 | false | normal | -| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:44:9:47:9 | catch (...) {...} | no-match | -| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:46:13:46:19 | return ...; | return | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | return | -| ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:46:13:46:19 | return ...; | return | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:50:13:50:19 | return ...; | return | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | return | -| ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:50:13:50:19 | return ...; | return | -| ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | throw(Exception) | -| ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:57:9:57:15 | return ...; | return | -| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | throw(Exception) | -| ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | throw(Exception) | -| ExitMethods.cs:57:9:57:15 | return ...; | ExitMethods.cs:57:9:57:15 | return ...; | return | -| ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | throw(Exception) | -| ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:63:9:63:15 | return ...; | return | -| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | throw(Exception) | -| ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | throw(Exception) | -| ExitMethods.cs:63:9:63:15 | return ...; | ExitMethods.cs:63:9:63:15 | return ...; | return | -| ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:68:13:68:13 | access to parameter b | false | -| ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:69:13:69:34 | throw ...; | throw(Exception) | -| ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:68:13:68:13 | access to parameter b | false | -| ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:69:13:69:34 | throw ...; | throw(Exception) | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | access to parameter b | false | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | access to parameter b | true | -| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:69:13:69:34 | throw ...; | throw(Exception) | -| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:19:69:33 | object creation of type Exception | normal | -| ExitMethods.cs:73:5:78:5 | {...} | ExitMethods.cs:75:13:75:34 | throw ...; | throw(Exception) | -| ExitMethods.cs:73:5:78:5 | {...} | ExitMethods.cs:77:13:77:45 | throw ...; | throw(ArgumentException) | -| ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:75:13:75:34 | throw ...; | throw(Exception) | -| ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:77:13:77:45 | throw ...; | throw(ArgumentException) | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | access to parameter b | false | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | access to parameter b | true | -| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:75:13:75:34 | throw ...; | throw(Exception) | -| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:19:75:33 | object creation of type Exception | normal | -| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:77:13:77:45 | throw ...; | throw(ArgumentException) | -| ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | normal | -| ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:41:77:43 | "b" | normal | -| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:82:9:82:30 | throw ...; | throw(Exception) | -| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:82:9:82:30 | throw ...; | throw(Exception) | -| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:15:82:29 | object creation of type Exception | normal | -| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:35:85:55 | throw ... | throw(Exception) | -| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:41:85:55 | object creation of type Exception | normal | -| ExitMethods.cs:88:5:90:5 | {...} | ExitMethods.cs:89:9:89:27 | call to method Exit | exit | -| ExitMethods.cs:89:9:89:27 | call to method Exit | ExitMethods.cs:89:9:89:27 | call to method Exit | exit | -| ExitMethods.cs:89:9:89:28 | ...; | ExitMethods.cs:89:9:89:27 | call to method Exit | exit | -| ExitMethods.cs:89:26:89:26 | 0 | ExitMethods.cs:89:26:89:26 | 0 | normal | -| ExitMethods.cs:93:5:103:5 | {...} | ExitMethods.cs:96:13:96:18 | call to method Exit | exit | -| ExitMethods.cs:94:9:102:9 | try {...} ... | ExitMethods.cs:96:13:96:18 | call to method Exit | exit | -| ExitMethods.cs:95:9:97:9 | {...} | ExitMethods.cs:96:13:96:18 | call to method Exit | exit | -| ExitMethods.cs:96:13:96:18 | call to method Exit | ExitMethods.cs:96:13:96:18 | call to method Exit | exit | -| ExitMethods.cs:96:13:96:18 | this access | ExitMethods.cs:96:13:96:18 | this access | normal | -| ExitMethods.cs:96:13:96:19 | ...; | ExitMethods.cs:96:13:96:18 | call to method Exit | exit | -| ExitMethods.cs:99:9:102:9 | {...} | ExitMethods.cs:101:13:101:40 | call to method WriteLine | normal | -| ExitMethods.cs:101:13:101:40 | call to method WriteLine | ExitMethods.cs:101:13:101:40 | call to method WriteLine | normal | -| ExitMethods.cs:101:13:101:41 | ...; | ExitMethods.cs:101:13:101:40 | call to method WriteLine | normal | -| ExitMethods.cs:101:38:101:39 | "" | ExitMethods.cs:101:38:101:39 | "" | normal | -| ExitMethods.cs:106:5:108:5 | {...} | ExitMethods.cs:107:9:107:47 | call to method Exit | exit | -| ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:107:9:107:47 | call to method Exit | exit | -| ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:107:9:107:47 | call to method Exit | exit | -| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:112:9:112:77 | return ...; | return | -| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:112:41:112:76 | throw ... | throw(ArgumentException) | -| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:112:9:112:77 | return ...; | return | -| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:112:41:112:76 | throw ... | throw(ArgumentException) | -| ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:112:16:112:20 | access to parameter input | normal | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | ... != ... | false | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | ... != ... | true | -| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | normal | -| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:41:112:76 | throw ... | throw(ArgumentException) | -| ExitMethods.cs:112:25:112:25 | 0 | ExitMethods.cs:112:25:112:25 | 0 | normal | -| ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:112:25:112:25 | (...) ... | normal | -| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:29:112:29 | 1 | normal | -| ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:29:112:29 | (...) ... | normal | -| ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:29:112:37 | ... / ... | normal | -| ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:112:33:112:37 | access to parameter input | normal | -| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:112:41:112:76 | throw ... | throw(ArgumentException) | -| ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | normal | -| ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:69:112:75 | "input" | normal | -| ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:117:9:117:39 | return ...; | return | -| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:117:9:117:39 | return ...; | return | -| ExitMethods.cs:117:16:117:16 | access to parameter s | ExitMethods.cs:117:16:117:16 | access to parameter s | normal | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | call to method Contains | false | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | call to method Contains | true | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | normal | -| ExitMethods.cs:117:27:117:29 | - | ExitMethods.cs:117:27:117:29 | - | normal | -| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:34:117:34 | 0 | normal | -| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:38:117:38 | 1 | normal | -| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:122:9:122:28 | call to method IsTrue | throw(AssertFailedException) | -| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:123:13:123:17 | Int32 x = ... | normal | -| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:122:9:122:28 | call to method IsTrue | throw(AssertFailedException) | -| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:9:122:28 | call to method IsTrue | throw(AssertFailedException) | -| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:23:122:27 | false | normal | -| ExitMethods.cs:123:9:123:18 | ... ...; | ExitMethods.cs:123:13:123:17 | Int32 x = ... | normal | -| ExitMethods.cs:123:13:123:17 | Int32 x = ... | ExitMethods.cs:123:13:123:17 | Int32 x = ... | normal | -| ExitMethods.cs:123:17:123:17 | 0 | ExitMethods.cs:123:17:123:17 | 0 | normal | -| ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | throw(AssertFailedException) | -| ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:129:13:129:17 | Int32 x = ... | normal | -| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | throw(AssertFailedException) | -| ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:26 | this access | normal | -| ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | throw(AssertFailedException) | -| ExitMethods.cs:129:9:129:18 | ... ...; | ExitMethods.cs:129:13:129:17 | Int32 x = ... | normal | -| ExitMethods.cs:129:13:129:17 | Int32 x = ... | ExitMethods.cs:129:13:129:17 | Int32 x = ... | normal | -| ExitMethods.cs:129:17:129:17 | 0 | ExitMethods.cs:129:17:129:17 | 0 | normal | -| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:33:132:49 | call to method IsFalse | normal | -| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:33:132:49 | call to method IsFalse | throw(AssertFailedException) | -| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:48:132:48 | access to parameter b | normal | -| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | throw(AssertFailedException) | -| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:137:13:137:17 | Int32 x = ... | normal | -| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | throw(AssertFailedException) | -| ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:9:136:25 | this access | normal | -| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | throw(AssertFailedException) | -| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:21:136:24 | true | normal | -| ExitMethods.cs:137:9:137:18 | ... ...; | ExitMethods.cs:137:13:137:17 | Int32 x = ... | normal | -| ExitMethods.cs:137:13:137:17 | Int32 x = ... | ExitMethods.cs:137:13:137:17 | Int32 x = ... | normal | -| ExitMethods.cs:137:17:137:17 | 0 | ExitMethods.cs:137:17:137:17 | 0 | normal | -| ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:143:13:143:42 | call to method Throw | throw(ArgumentException) | -| ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:145:13:145:52 | call to method Throw | throw(Exception) | -| ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:146:9:146:33 | call to method WriteLine | normal | -| ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:143:13:143:42 | call to method Throw | throw(ArgumentException) | -| ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:145:13:145:52 | call to method Throw | throw(Exception) | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | access to parameter b | false | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | access to parameter b | true | -| ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:143:13:143:42 | call to method Throw | throw(ArgumentException) | -| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:13:143:42 | call to method Throw | throw(ArgumentException) | -| ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:143:41:143:41 | access to parameter e | normal | -| ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:13:145:44 | call to method Capture | normal | -| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:145:13:145:52 | call to method Throw | throw(Exception) | -| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:13:145:52 | call to method Throw | throw(Exception) | -| ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:43:145:43 | access to parameter e | normal | -| ExitMethods.cs:146:9:146:33 | call to method WriteLine | ExitMethods.cs:146:9:146:33 | call to method WriteLine | normal | -| ExitMethods.cs:146:9:146:34 | ...; | ExitMethods.cs:146:9:146:33 | call to method WriteLine | normal | -| ExitMethods.cs:146:27:146:32 | "dead" | ExitMethods.cs:146:27:146:32 | "dead" | normal | -| Extensions.cs:6:5:8:5 | {...} | Extensions.cs:7:9:7:30 | return ...; | return | -| Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:7:9:7:30 | return ...; | return | -| Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:7:16:7:29 | call to method Parse | normal | -| Extensions.cs:7:28:7:28 | access to parameter s | Extensions.cs:7:28:7:28 | access to parameter s | normal | -| Extensions.cs:11:5:13:5 | {...} | Extensions.cs:12:9:12:20 | return ...; | return | -| Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:12:9:12:20 | return ...; | return | -| Extensions.cs:12:16:12:16 | access to parameter f | Extensions.cs:12:16:12:16 | access to parameter f | normal | -| Extensions.cs:12:16:12:19 | delegate call | Extensions.cs:12:16:12:19 | delegate call | normal | -| Extensions.cs:12:18:12:18 | access to parameter s | Extensions.cs:12:18:12:18 | access to parameter s | normal | -| Extensions.cs:15:40:15:51 | call to method ToInt32 | Extensions.cs:15:40:15:51 | call to method ToInt32 | normal | -| Extensions.cs:15:48:15:50 | "0" | Extensions.cs:15:48:15:50 | "0" | normal | -| Extensions.cs:21:5:26:5 | {...} | Extensions.cs:25:9:25:33 | call to method ToBool | normal | -| Extensions.cs:22:9:22:9 | access to parameter s | Extensions.cs:22:9:22:9 | access to parameter s | normal | -| Extensions.cs:22:9:22:19 | call to method ToInt32 | Extensions.cs:22:9:22:19 | call to method ToInt32 | normal | -| Extensions.cs:22:9:22:20 | ...; | Extensions.cs:22:9:22:19 | call to method ToInt32 | normal | -| Extensions.cs:23:9:23:30 | call to method ToInt32 | Extensions.cs:23:9:23:30 | call to method ToInt32 | normal | -| Extensions.cs:23:9:23:31 | ...; | Extensions.cs:23:9:23:30 | call to method ToInt32 | normal | -| Extensions.cs:23:28:23:29 | "" | Extensions.cs:23:28:23:29 | "" | normal | -| Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:24:9:24:45 | call to method ToBool | normal | -| Extensions.cs:24:9:24:46 | ...; | Extensions.cs:24:9:24:45 | call to method ToBool | normal | -| Extensions.cs:24:27:24:32 | "true" | Extensions.cs:24:27:24:32 | "true" | normal | -| Extensions.cs:24:35:24:44 | access to method Parse | Extensions.cs:24:35:24:44 | access to method Parse | normal | -| Extensions.cs:24:35:24:44 | delegate creation of type Func | Extensions.cs:24:35:24:44 | delegate creation of type Func | normal | -| Extensions.cs:25:9:25:14 | "true" | Extensions.cs:25:9:25:14 | "true" | normal | -| Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:25:9:25:33 | call to method ToBool | normal | -| Extensions.cs:25:9:25:34 | ...; | Extensions.cs:25:9:25:33 | call to method ToBool | normal | -| 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) | -| Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:15:13:15:40 | call to method WriteLine | normal | -| Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:15:13:15:40 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:37 | call to method WriteLine | normal | -| Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:11:13:11:37 | call to method WriteLine | normal | -| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:11:13:11:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:13:11:37 | call to method WriteLine | normal | -| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:13:11:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:31:11:36 | "Try1" | normal | -| Finally.cs:14:9:16:9 | {...} | Finally.cs:15:13:15:40 | call to method WriteLine | normal | -| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:15:13:15:40 | call to method WriteLine | normal | -| Finally.cs:15:13:15:41 | ...; | Finally.cs:15:13:15:40 | call to method WriteLine | normal | -| Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:31:15:39 | "Finally" | normal | -| Finally.cs:20:5:52:5 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | normal | -| Finally.cs:20:5:52:5 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | return [normal] (0) | -| Finally.cs:20:5:52:5 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:20:5:52:5 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | throw(IOException) [normal] (0) | -| Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:50:13:50:40 | call to method WriteLine | normal | -| Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:50:13:50:40 | call to method WriteLine | return [normal] (0) | -| Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:50:13:50:40 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:50:13:50:40 | call to method WriteLine | throw(IOException) [normal] (0) | -| Finally.cs:22:9:25:9 | {...} | Finally.cs:23:13:23:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:22:9:25:9 | {...} | Finally.cs:24:13:24:19 | return ...; | return | -| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:23:13:23:37 | call to method WriteLine | normal | -| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:23:13:23:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:23:13:23:38 | ...; | Finally.cs:23:13:23:37 | call to method WriteLine | normal | -| Finally.cs:23:13:23:38 | ...; | Finally.cs:23:13:23:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:31:23:36 | "Try2" | normal | -| Finally.cs:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | return ...; | return | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | catch (...) {...} | no-match | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:28:13:28:18 | throw ...; | throw(IOException) | -| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:38:26:39 | IOException ex | normal | -| Finally.cs:26:48:26:51 | true | Finally.cs:26:48:26:51 | true | true | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | throw(IOException) | -| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:28:13:28:18 | throw ...; | throw(IOException) | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | no-match | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:38:17:38:44 | throw ...; | throw(Exception) | -| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:30:41:30:42 | ArgumentException ex | normal | -| Finally.cs:31:9:40:9 | {...} | Finally.cs:38:17:38:44 | throw ...; | throw(Exception) | -| Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:38:17:38:44 | throw ...; | throw(Exception) | -| Finally.cs:33:13:35:13 | {...} | Finally.cs:34:27:34:32 | throw ...; | throw(ArgumentException) | -| Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:34:27:34:32 | throw ...; | throw(ArgumentException) | -| Finally.cs:34:21:34:24 | true | Finally.cs:34:21:34:24 | true | true | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:27:34:32 | throw ...; | throw(ArgumentException) | -| Finally.cs:37:13:39:13 | {...} | Finally.cs:38:17:38:44 | throw ...; | throw(Exception) | -| Finally.cs:38:17:38:44 | throw ...; | Finally.cs:38:17:38:44 | throw ...; | throw(Exception) | -| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:23:38:43 | object creation of type Exception | normal | -| Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:38:37:38:42 | "Boo!" | normal | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | no-match | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | normal | -| Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} | normal | -| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:46:13:46:19 | return ...; | return | -| Finally.cs:45:9:47:9 | {...} | Finally.cs:46:13:46:19 | return ...; | return | -| Finally.cs:46:13:46:19 | return ...; | Finally.cs:46:13:46:19 | return ...; | return | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | normal | -| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:50:13:50:40 | call to method WriteLine | normal | -| Finally.cs:50:13:50:41 | ...; | Finally.cs:50:13:50:40 | call to method WriteLine | normal | -| Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:31:50:39 | "Finally" | normal | -| Finally.cs:55:5:72:5 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | normal | -| Finally.cs:55:5:72:5 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | return [normal] (0) | -| Finally.cs:55:5:72:5 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:55:5:72:5 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | throw(IOException) [normal] (0) | -| Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:70:13:70:40 | call to method WriteLine | normal | -| Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:70:13:70:40 | call to method WriteLine | return [normal] (0) | -| Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:70:13:70:40 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:70:13:70:40 | call to method WriteLine | throw(IOException) [normal] (0) | -| Finally.cs:57:9:60:9 | {...} | Finally.cs:58:13:58:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:57:9:60:9 | {...} | Finally.cs:59:13:59:19 | return ...; | return | -| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:58:13:58:37 | call to method WriteLine | normal | -| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:58:13:58:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:58:13:58:38 | ...; | Finally.cs:58:13:58:37 | call to method WriteLine | normal | -| Finally.cs:58:13:58:38 | ...; | Finally.cs:58:13:58:37 | call to method WriteLine | throw(Exception) | -| Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:31:58:36 | "Try3" | normal | -| Finally.cs:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | return ...; | return | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | catch (...) {...} | no-match | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:63:13:63:18 | throw ...; | throw(IOException) | -| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:38:61:39 | IOException ex | normal | -| Finally.cs:61:48:61:51 | true | Finally.cs:61:48:61:51 | true | true | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | throw(IOException) | -| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:63:13:63:18 | throw ...; | throw(IOException) | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | throw(Exception) [no-match] (0) | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:35:65:51 | ... != ... | throw(Exception) [false] (0) | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | normal | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:26:65:26 | Exception e | normal | -| Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:35:65:35 | access to local variable e | normal | -| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:35:65:43 | access to property Message | normal | -| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | ... != ... | false | -| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | ... != ... | true | -| Finally.cs:65:48:65:51 | null | Finally.cs:65:48:65:51 | null | normal | -| Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | normal | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | normal | -| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:70:13:70:40 | call to method WriteLine | normal | -| Finally.cs:70:13:70:41 | ...; | Finally.cs:70:13:70:40 | call to method WriteLine | normal | -| Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:31:70:39 | "Finally" | normal | -| Finally.cs:75:5:101:5 | {...} | Finally.cs:77:16:77:20 | ... > ... | false | -| Finally.cs:75:5:101:5 | {...} | Finally.cs:97:21:97:23 | ...-- | normal [break] (0) | -| Finally.cs:75:5:101:5 | {...} | Finally.cs:97:21:97:23 | ...-- | return [normal] (0) | -| Finally.cs:75:5:101:5 | {...} | Finally.cs:97:21:97:23 | ...-- | throw(Exception) [normal] (1) | -| Finally.cs:76:9:76:19 | ... ...; | Finally.cs:76:13:76:18 | Int32 i = ... | normal | -| Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:76:13:76:18 | Int32 i = ... | normal | -| Finally.cs:76:17:76:18 | 10 | Finally.cs:76:17:76:18 | 10 | normal | -| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:77:16:77:20 | ... > ... | false | -| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:97:21:97:23 | ...-- | normal [break] (0) | -| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:97:21:97:23 | ...-- | return [normal] (0) | -| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:97:21:97:23 | ...-- | throw(Exception) [normal] (1) | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:16 | access to local variable i | normal | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | ... > ... | false | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | ... > ... | true | -| Finally.cs:77:20:77:20 | 0 | Finally.cs:77:20:77:20 | 0 | normal | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:97:21:97:23 | ...-- | break [normal] (0) | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:97:21:97:23 | ...-- | continue [normal] (0) | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:97:21:97:23 | ...-- | normal | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:97:21:97:23 | ...-- | return [normal] (0) | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:97:21:97:23 | ...-- | throw(Exception) [normal] (1) | -| Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:97:21:97:23 | ...-- | break [normal] (0) | -| Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:97:21:97:23 | ...-- | continue [normal] (0) | -| Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:97:21:97:23 | ...-- | normal | -| Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:97:21:97:23 | ...-- | return [normal] (0) | -| Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:97:21:97:23 | ...-- | throw(Exception) [normal] (1) | -| Finally.cs:80:13:87:13 | {...} | Finally.cs:82:21:82:27 | return ...; | return | -| Finally.cs:80:13:87:13 | {...} | Finally.cs:84:21:84:29 | continue; | continue | -| Finally.cs:80:13:87:13 | {...} | Finally.cs:85:21:85:26 | ... == ... | false | -| Finally.cs:80:13:87:13 | {...} | Finally.cs:86:21:86:26 | break; | break | -| Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:81:21:81:26 | ... == ... | false | -| Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:82:21:82:27 | return ...; | return | -| Finally.cs:81:21:81:21 | access to local variable i | Finally.cs:81:21:81:21 | access to local variable i | normal | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | ... == ... | false | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | ... == ... | true | -| Finally.cs:81:26:81:26 | 0 | Finally.cs:81:26:81:26 | 0 | normal | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; | return | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:26 | ... == ... | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:84:21:84:29 | continue; | continue | -| Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:83:21:83:21 | access to local variable i | normal | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | ... == ... | false | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | ... == ... | true | -| Finally.cs:83:26:83:26 | 1 | Finally.cs:83:26:83:26 | 1 | normal | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; | continue | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:26 | ... == ... | false | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:86:21:86:26 | break; | break | -| Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:21:85:21 | access to local variable i | normal | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | ... == ... | false | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | ... == ... | true | -| Finally.cs:85:26:85:26 | 2 | Finally.cs:85:26:85:26 | 2 | normal | -| Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; | break | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:97:21:97:23 | ...-- | normal | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:97:21:97:23 | ...-- | throw(Exception) [normal] (1) | -| Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:97:21:97:23 | ...-- | normal | -| Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:97:21:97:23 | ...-- | throw(Exception) [normal] (1) | -| Finally.cs:91:17:94:17 | {...} | Finally.cs:92:25:92:30 | ... == ... | false | -| Finally.cs:91:17:94:17 | {...} | Finally.cs:93:25:93:46 | throw ...; | throw(Exception) | -| Finally.cs:91:17:94:17 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | throw(Exception) | -| Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:92:25:92:30 | ... == ... | false | -| Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:93:25:93:46 | throw ...; | throw(Exception) | -| Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception | throw(Exception) | -| Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:25:92:25 | access to local variable i | normal | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | ... == ... | false | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | ... == ... | true | -| Finally.cs:92:30:92:30 | 3 | Finally.cs:92:30:92:30 | 3 | normal | -| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:25:93:46 | throw ...; | throw(Exception) | -| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:31:93:45 | object creation of type Exception | throw(Exception) | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | normal | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | throw(Exception) | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:23 | ...-- | normal | -| Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:21 | access to local variable i | normal | -| Finally.cs:97:21:97:23 | ...-- | Finally.cs:97:21:97:23 | ...-- | normal | -| Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:23 | ...-- | normal | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:116:17:116:32 | ... > ... | false | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:116:17:116:32 | ... > ... | return [false] (0) | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:116:17:116:32 | ... > ... | throw(Exception) [false] (0) | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:116:17:116:32 | ... > ... | throw(NullReferenceException) [false] (0) | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:116:17:116:32 | ... > ... | throw(OutOfMemoryException) [false] (0) | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:117:17:117:36 | call to method WriteLine | normal | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:117:17:117:36 | call to method WriteLine | return [normal] (0) | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:117:17:117:36 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:117:17:117:36 | call to method WriteLine | throw(NullReferenceException) [normal] (0) | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:117:17:117:36 | call to method WriteLine | throw(OutOfMemoryException) [normal] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:116:17:116:32 | ... > ... | false | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:116:17:116:32 | ... > ... | return [false] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:116:17:116:32 | ... > ... | throw(Exception) [false] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:116:17:116:32 | ... > ... | throw(NullReferenceException) [false] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:116:17:116:32 | ... > ... | throw(OutOfMemoryException) [false] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:117:17:117:36 | call to method WriteLine | normal | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:117:17:117:36 | call to method WriteLine | return [normal] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:117:17:117:36 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:117:17:117:36 | call to method WriteLine | throw(NullReferenceException) [normal] (0) | -| Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:117:17:117:36 | call to method WriteLine | throw(OutOfMemoryException) [normal] (0) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:107:17:107:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:107:17:107:28 | access to property Length | throw(Exception) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:107:17:107:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:108:17:108:23 | return ...; | return | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:109:17:109:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:109:17:109:28 | access to property Length | throw(Exception) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:109:17:109:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:109:17:109:33 | ... == ... | false | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:110:17:110:49 | throw ...; | throw(OutOfMemoryException) | -| Finally.cs:106:9:111:9 | {...} | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | throw(Exception) | -| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:28 | access to property Length | throw(Exception) | -| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:33 | ... == ... | false | -| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:108:17:108:23 | return ...; | return | -| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:21 | access to field Field | normal | -| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | this access | normal | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | normal | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | throw(Exception) | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:28 | access to property Length | throw(Exception) | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | ... == ... | false | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | ... == ... | true | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:33:107:33 | 0 | normal | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; | return | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:28 | access to property Length | throw(Exception) | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:33 | ... == ... | false | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:17:110:49 | throw ...; | throw(OutOfMemoryException) | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | throw(Exception) | -| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:21 | access to field Field | normal | -| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:109:17:109:21 | this access | Finally.cs:109:17:109:21 | this access | normal | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | normal | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | throw(Exception) | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:21 | access to field Field | throw(NullReferenceException) | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:28 | access to property Length | throw(Exception) | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:28 | access to property Length | throw(NullReferenceException) | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | ... == ... | false | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | ... == ... | true | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:33:109:33 | 1 | normal | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | throw(OutOfMemoryException) | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | throw(Exception) | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | normal | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | throw(Exception) | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:116:17:116:32 | ... > ... | false | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:117:17:117:36 | call to method WriteLine | normal | -| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:17:114:36 | !... | false | -| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:115:17:115:40 | call to method WriteLine | normal | -| Finally.cs:114:17:114:36 | !... | Finally.cs:114:17:114:36 | !... | false | -| Finally.cs:114:17:114:36 | !... | Finally.cs:114:17:114:36 | !... | true | -| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:23 | access to field Field | normal | -| Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | this access | normal | -| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:30 | access to property Length | normal | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | ... == ... | false | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | ... == ... | true | -| Finally.cs:114:35:114:35 | 0 | Finally.cs:114:35:114:35 | 0 | normal | -| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:115:17:115:40 | call to method WriteLine | normal | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:40 | call to method WriteLine | normal | -| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:35:115:39 | access to field Field | normal | -| Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | this access | normal | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:32 | ... > ... | false | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:117:17:117:36 | call to method WriteLine | normal | -| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:21 | access to field Field | normal | -| Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | this access | normal | -| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:17:116:28 | access to property Length | normal | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | ... > ... | false | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | ... > ... | true | -| Finally.cs:116:32:116:32 | 0 | Finally.cs:116:32:116:32 | 0 | normal | -| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:117:17:117:36 | call to method WriteLine | normal | -| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:36 | call to method WriteLine | normal | -| Finally.cs:117:35:117:35 | 1 | Finally.cs:117:35:117:35 | 1 | normal | -| Finally.cs:122:5:131:5 | {...} | Finally.cs:125:17:125:40 | Double temp = ... | normal | -| Finally.cs:122:5:131:5 | {...} | Finally.cs:129:13:129:13 | ; | normal | -| Finally.cs:123:9:130:9 | try {...} ... | Finally.cs:125:17:125:40 | Double temp = ... | normal | -| Finally.cs:123:9:130:9 | try {...} ... | Finally.cs:129:13:129:13 | ; | normal | -| Finally.cs:124:9:126:9 | {...} | Finally.cs:125:17:125:40 | Double temp = ... | normal | -| Finally.cs:125:13:125:41 | ... ...; | Finally.cs:125:17:125:40 | Double temp = ... | normal | -| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:125:17:125:40 | Double temp = ... | normal | -| Finally.cs:125:24:125:24 | 0 | Finally.cs:125:24:125:24 | 0 | normal | -| Finally.cs:125:24:125:24 | (...) ... | Finally.cs:125:24:125:24 | (...) ... | normal | -| Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:24:125:40 | ... / ... | normal | -| Finally.cs:125:28:125:40 | access to constant E | Finally.cs:125:28:125:40 | access to constant E | normal | -| Finally.cs:127:9:130:9 | catch {...} | Finally.cs:129:13:129:13 | ; | normal | -| Finally.cs:128:9:130:9 | {...} | Finally.cs:129:13:129:13 | ; | normal | -| Finally.cs:129:13:129:13 | ; | Finally.cs:129:13:129:13 | ; | normal | -| Finally.cs:134:5:145:5 | {...} | Finally.cs:141:13:141:44 | throw ...; | throw(ArgumentException) | -| Finally.cs:134:5:145:5 | {...} | Finally.cs:142:13:142:37 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:134:5:145:5 | {...} | Finally.cs:144:9:144:33 | call to method WriteLine | normal | -| Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:141:13:141:44 | throw ...; | throw(ArgumentException) | -| Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:142:13:142:37 | call to method WriteLine | normal | -| Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:142:13:142:37 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:36 | call to method WriteLine | normal | -| Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:36 | call to method WriteLine | throw(Exception) | -| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:137:13:137:36 | call to method WriteLine | normal | -| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:137:13:137:36 | call to method WriteLine | throw(Exception) | -| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:13:137:36 | call to method WriteLine | normal | -| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:13:137:36 | call to method WriteLine | throw(Exception) | -| Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:31:137:35 | "Try" | normal | -| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:13:141:44 | throw ...; | throw(ArgumentException) | -| Finally.cs:140:9:143:9 | {...} | Finally.cs:142:13:142:37 | call to method WriteLine | normal | -| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:141:13:141:44 | throw ...; | throw(ArgumentException) | -| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:19:141:43 | object creation of type ArgumentException | normal | -| Finally.cs:141:41:141:42 | "" | Finally.cs:141:41:141:42 | "" | normal | -| Finally.cs:142:13:142:37 | call to method WriteLine | Finally.cs:142:13:142:37 | call to method WriteLine | normal | -| Finally.cs:142:13:142:38 | ...; | Finally.cs:142:13:142:37 | call to method WriteLine | normal | -| Finally.cs:142:31:142:36 | "Dead" | Finally.cs:142:31:142:36 | "Dead" | normal | -| Finally.cs:144:9:144:33 | call to method WriteLine | Finally.cs:144:9:144:33 | call to method WriteLine | normal | -| Finally.cs:144:9:144:34 | ...; | Finally.cs:144:9:144:33 | call to method WriteLine | normal | -| Finally.cs:144:27:144:32 | "Dead" | Finally.cs:144:27:144:32 | "Dead" | normal | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:158:21:158:36 | ... == ... | false | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:158:21:158:36 | ... == ... | throw(ArgumentNullException) [false] (0) | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:158:21:158:36 | ... == ... | throw(Exception) [false] (0) | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | throw(ArgumentNullException) [normal] (0) | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:167:17:167:37 | call to method WriteLine | normal | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:167:17:167:37 | call to method WriteLine | throw(ArgumentNullException) [normal] (0) | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:167:17:167:37 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:158:21:158:36 | ... == ... | false | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:158:21:158:36 | ... == ... | throw(ArgumentNullException) [false] (0) | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:158:21:158:36 | ... == ... | throw(Exception) [false] (0) | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:163:17:163:42 | call to method WriteLine | throw(ArgumentNullException) [normal] (0) | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:163:17:163:42 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:167:17:167:37 | call to method WriteLine | normal | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:167:17:167:37 | call to method WriteLine | throw(ArgumentNullException) [normal] (0) | -| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:167:17:167:37 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:150:9:153:9 | {...} | Finally.cs:151:17:151:28 | ... == ... | false | -| Finally.cs:150:9:153:9 | {...} | Finally.cs:152:17:152:50 | throw ...; | throw(ArgumentNullException) | -| Finally.cs:150:9:153:9 | {...} | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | throw(Exception) | -| Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:151:17:151:28 | ... == ... | false | -| Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:152:17:152:50 | throw ...; | throw(ArgumentNullException) | -| Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | throw(Exception) | -| Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:151:17:151:20 | access to parameter args | normal | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | ... == ... | false | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | ... == ... | true | -| Finally.cs:151:25:151:28 | null | Finally.cs:151:25:151:28 | null | normal | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | throw(ArgumentNullException) | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | throw(Exception) | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | normal | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | throw(Exception) | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:36 | ... == ... | false | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:167:17:167:37 | call to method WriteLine | normal | -| Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:158:21:158:36 | ... == ... | false | -| Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:167:17:167:37 | call to method WriteLine | normal | -| Finally.cs:157:13:160:13 | {...} | Finally.cs:158:21:158:31 | access to property Length | throw(Exception) | -| Finally.cs:157:13:160:13 | {...} | Finally.cs:158:21:158:31 | access to property Length | throw(NullReferenceException) | -| Finally.cs:157:13:160:13 | {...} | Finally.cs:158:21:158:36 | ... == ... | false | -| Finally.cs:157:13:160:13 | {...} | Finally.cs:159:21:159:45 | throw ...; | throw(Exception) | -| Finally.cs:157:13:160:13 | {...} | Finally.cs:159:27:159:44 | object creation of type Exception | throw(Exception) | -| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:31 | access to property Length | throw(Exception) | -| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:31 | access to property Length | throw(NullReferenceException) | -| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:36 | ... == ... | false | -| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:159:21:159:45 | throw ...; | throw(Exception) | -| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:159:27:159:44 | object creation of type Exception | throw(Exception) | -| Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:24 | access to parameter args | normal | -| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:31 | access to property Length | normal | -| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:31 | access to property Length | throw(Exception) | -| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:31 | access to property Length | throw(NullReferenceException) | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:31 | access to property Length | throw(Exception) | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:31 | access to property Length | throw(NullReferenceException) | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | ... == ... | false | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | ... == ... | true | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:36:158:36 | 1 | normal | -| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | throw(Exception) | -| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:27:159:44 | object creation of type Exception | throw(Exception) | -| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:27:159:44 | object creation of type Exception | normal | -| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:27:159:44 | object creation of type Exception | throw(Exception) | -| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:41:159:43 | "1" | normal | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | catch (...) {...} | no-match | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:39:161:54 | ... == ... | false | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:30:161:30 | Exception e | normal | -| Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:39:161:39 | access to local variable e | normal | -| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:39:161:47 | access to property Message | normal | -| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | ... == ... | false | -| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | ... == ... | true | -| Finally.cs:161:52:161:54 | "1" | Finally.cs:161:52:161:54 | "1" | normal | -| Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:163:17:163:43 | ...; | Finally.cs:163:17:163:42 | call to method WriteLine | normal | -| Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:35:163:38 | access to parameter args | normal | -| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:35:163:41 | access to array element | normal | -| Finally.cs:163:40:163:40 | 0 | Finally.cs:163:40:163:40 | 0 | normal | -| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:167:17:167:37 | call to method WriteLine | normal | -| Finally.cs:166:13:168:13 | {...} | Finally.cs:167:17:167:37 | call to method WriteLine | normal | -| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:167:17:167:37 | call to method WriteLine | normal | -| 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) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | throw(ExceptionA) [false] (0) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | throw(Exception) [no-match] (0) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | throw(ExceptionB) [no-match] (0) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | throw(Exception) [false] (0) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | throw(ExceptionB) [false] (0) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:190:21:190:22 | access to parameter b1 | throw(Exception) [false] (0) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:190:21:190:22 | access to parameter b1 | throw(ExceptionA) [false] (0) | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:186:21:186:22 | access to parameter b2 | false | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:186:21:186:22 | access to parameter b2 | throw(Exception) [false] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:186:21:186:22 | access to parameter b2 | throw(ExceptionA) [false] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:188:13:191:13 | catch (...) {...} | throw(Exception) [no-match] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:188:13:191:13 | catch (...) {...} | throw(ExceptionB) [no-match] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:188:38:188:39 | access to parameter b2 | throw(Exception) [false] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:188:38:188:39 | access to parameter b2 | throw(ExceptionB) [false] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:190:21:190:22 | access to parameter b1 | throw(Exception) [false] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:190:21:190:22 | access to parameter b1 | throw(ExceptionA) [false] (0) | -| Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:179:9:181:9 | {...} | Finally.cs:180:17:180:18 | access to parameter b1 | false | -| Finally.cs:179:9:181:9 | {...} | Finally.cs:180:21:180:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:179:9:181:9 | {...} | Finally.cs:180:27:180:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:17:180:18 | access to parameter b1 | false | -| Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:21:180:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:27:180:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | access to parameter b1 | false | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | access to parameter b1 | true | -| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:180:21:180:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:180:27:180:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | normal | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | false | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | throw(Exception) [no-match] (0) | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | throw(ExceptionB) [no-match] (0) | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | throw(Exception) [false] (0) | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | throw(ExceptionB) [false] (0) | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:186:21:186:22 | access to parameter b2 | false | -| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:188:13:191:13 | catch (...) {...} | throw(Exception) [no-match] (0) | -| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:188:13:191:13 | catch (...) {...} | throw(ExceptionB) [no-match] (0) | -| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:188:38:188:39 | access to parameter b2 | throw(Exception) [false] (0) | -| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:188:38:188:39 | access to parameter b2 | throw(ExceptionB) [false] (0) | -| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:185:13:187:13 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | false | -| Finally.cs:185:13:187:13 | {...} | Finally.cs:186:25:186:47 | throw ...; | throw(ExceptionB) | -| Finally.cs:185:13:187:13 | {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:186:21:186:22 | access to parameter b2 | false | -| Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:186:25:186:47 | throw ...; | throw(ExceptionB) | -| Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:186:31:186:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | access to parameter b2 | false | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | access to parameter b2 | true | -| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:25:186:47 | throw ...; | throw(ExceptionB) | -| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:31:186:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | normal | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | throw(Exception) [no-match] (0) | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | throw(ExceptionB) [no-match] (0) | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | throw(Exception) [false] (0) | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | throw(ExceptionB) [false] (0) | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | false | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | true | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | access to parameter b1 | false | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | access to parameter b1 | true | -| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:190:25:190:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | object creation of type ExceptionC | normal | -| Finally.cs:196:5:214:5 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | throw(Exception) [false] (1) | -| Finally.cs:196:5:214:5 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | throw(ExceptionB) [false] (1) | -| Finally.cs:196:5:214:5 | {...} | Finally.cs:209:25:209:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:196:5:214:5 | {...} | Finally.cs:211:13:211:28 | ... = ... | throw(Exception) [normal] (0) | -| Finally.cs:196:5:214:5 | {...} | Finally.cs:211:13:211:28 | ... = ... | throw(ExceptionA) [normal] (0) | -| Finally.cs:196:5:214:5 | {...} | Finally.cs:213:9:213:24 | ... = ... | normal | -| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:209:21:209:22 | access to parameter b3 | throw(Exception) [false] (1) | -| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:209:21:209:22 | access to parameter b3 | throw(ExceptionB) [false] (1) | -| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:209:25:209:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:211:13:211:28 | ... = ... | normal | -| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:211:13:211:28 | ... = ... | throw(Exception) [normal] (0) | -| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:211:13:211:28 | ... = ... | throw(ExceptionA) [normal] (0) | -| Finally.cs:198:9:200:9 | {...} | Finally.cs:199:17:199:18 | access to parameter b1 | false | -| Finally.cs:198:9:200:9 | {...} | Finally.cs:199:21:199:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:198:9:200:9 | {...} | Finally.cs:199:27:199:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:17:199:18 | access to parameter b1 | false | -| Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:21:199:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:27:199:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | access to parameter b1 | false | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | access to parameter b1 | true | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:27:199:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | normal | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | throw(Exception) [false] (1) | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | throw(ExceptionB) [false] (1) | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:25:209:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:211:13:211:28 | ... = ... | normal | -| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:209:21:209:22 | access to parameter b3 | false | -| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:209:21:209:22 | access to parameter b3 | throw(Exception) [false] (1) | -| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:209:21:209:22 | access to parameter b3 | throw(ExceptionB) [false] (1) | -| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:209:25:209:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:204:13:206:13 | {...} | Finally.cs:205:21:205:22 | access to parameter b2 | false | -| Finally.cs:204:13:206:13 | {...} | Finally.cs:205:25:205:47 | throw ...; | throw(ExceptionB) | -| Finally.cs:204:13:206:13 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:21:205:22 | access to parameter b2 | false | -| Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:25:205:47 | throw ...; | throw(ExceptionB) | -| Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:31:205:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | access to parameter b2 | false | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | access to parameter b2 | true | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | throw(ExceptionB) | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:31:205:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | normal | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | throw(Exception) | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | false | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:25:209:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:21:209:22 | access to parameter b3 | false | -| Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:25:209:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | access to parameter b3 | false | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | access to parameter b3 | true | -| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:209:25:209:47 | throw ...; | throw(ExceptionC) | -| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | normal | -| Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:16 | this access | normal | -| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:16 | this access | normal | -| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:13:211:28 | ... = ... | normal | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | ... = ... | normal | -| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:26:211:28 | "0" | normal | -| Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:12 | this access | normal | -| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:12 | this access | normal | -| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:9:213:24 | ... = ... | normal | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:24 | ... = ... | normal | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:22:213:24 | "1" | normal | -| Finally.cs:217:5:231:5 | {...} | Finally.cs:230:9:230:33 | call to method WriteLine | normal | -| Finally.cs:218:9:229:9 | try {...} ... | Finally.cs:228:13:228:40 | call to method WriteLine | normal | -| Finally.cs:219:9:221:9 | {...} | Finally.cs:220:13:220:36 | call to method WriteLine | normal | -| Finally.cs:219:9:221:9 | {...} | Finally.cs:220:13:220:36 | call to method WriteLine | throw(Exception) | -| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:220:13:220:36 | call to method WriteLine | normal | -| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:220:13:220:36 | call to method WriteLine | throw(Exception) | -| Finally.cs:220:13:220:37 | ...; | Finally.cs:220:13:220:36 | call to method WriteLine | normal | -| Finally.cs:220:13:220:37 | ...; | Finally.cs:220:13:220:36 | call to method WriteLine | throw(Exception) | -| Finally.cs:220:31:220:35 | "Try" | Finally.cs:220:31:220:35 | "Try" | normal | -| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:224:13:224:38 | call to method WriteLine | normal | -| Finally.cs:223:9:225:9 | {...} | Finally.cs:224:13:224:38 | call to method WriteLine | normal | -| Finally.cs:224:13:224:38 | call to method WriteLine | Finally.cs:224:13:224:38 | call to method WriteLine | normal | -| Finally.cs:224:13:224:39 | ...; | Finally.cs:224:13:224:38 | call to method WriteLine | normal | -| Finally.cs:224:31:224:37 | "Catch" | Finally.cs:224:31:224:37 | "Catch" | normal | -| Finally.cs:227:9:229:9 | {...} | Finally.cs:228:13:228:40 | call to method WriteLine | normal | -| Finally.cs:228:13:228:40 | call to method WriteLine | Finally.cs:228:13:228:40 | call to method WriteLine | normal | -| Finally.cs:228:13:228:41 | ...; | Finally.cs:228:13:228:40 | call to method WriteLine | normal | -| Finally.cs:228:31:228:39 | "Finally" | Finally.cs:228:31:228:39 | "Finally" | normal | -| Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:230:9:230:33 | call to method WriteLine | normal | -| Finally.cs:230:9:230:34 | ...; | Finally.cs:230:9:230:33 | call to method WriteLine | normal | -| Finally.cs:230:27:230:32 | "Done" | Finally.cs:230:27:230:32 | "Done" | normal | -| Finally.cs:234:5:261:5 | {...} | Finally.cs:258:13:258:46 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:234:5:261:5 | {...} | Finally.cs:258:13:258:46 | call to method WriteLine | throw(ExceptionA) [normal] (0) | -| Finally.cs:234:5:261:5 | {...} | Finally.cs:260:9:260:33 | call to method WriteLine | normal | -| Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:258:13:258:46 | call to method WriteLine | normal | -| Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:258:13:258:46 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:258:13:258:46 | call to method WriteLine | throw(ExceptionA) [normal] (0) | -| Finally.cs:236:9:255:9 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:236:9:255:9 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | throw(Exception) [normal] (1) | -| Finally.cs:236:9:255:9 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | throw(ExceptionA) [normal] (0) | -| Finally.cs:236:9:255:9 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | throw(ExceptionA) [normal] (1) | -| Finally.cs:236:9:255:9 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine | normal | -| Finally.cs:236:9:255:9 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine | throw(Exception) | -| Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | normal | -| Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | throw(Exception) [normal] (0) | -| Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | throw(Exception) [normal] (1) | -| Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | throw(ExceptionA) [normal] (0) | -| Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | throw(ExceptionA) [normal] (1) | -| Finally.cs:238:13:241:13 | {...} | Finally.cs:239:21:239:22 | access to parameter b1 | false | -| Finally.cs:238:13:241:13 | {...} | Finally.cs:240:21:240:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:238:13:241:13 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:239:21:239:22 | access to parameter b1 | false | -| Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:240:21:240:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:240:27:240:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | access to parameter b1 | false | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | access to parameter b1 | true | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | throw(ExceptionA) | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:27:240:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | normal | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | normal | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | throw(Exception) [normal] (1) | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | throw(ExceptionA) [normal] (1) | -| Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | normal | -| Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | throw(Exception) [normal] (1) | -| Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:251:21:251:54 | call to method WriteLine | throw(ExceptionA) [normal] (1) | -| Finally.cs:245:17:248:17 | {...} | Finally.cs:246:25:246:26 | access to parameter b2 | false | -| Finally.cs:245:17:248:17 | {...} | Finally.cs:247:25:247:47 | throw ...; | throw(ExceptionA) | -| Finally.cs:245:17:248:17 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:246:25:246:26 | access to parameter b2 | false | -| Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:247:25:247:47 | throw ...; | throw(ExceptionA) | -| Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:247:31:247:46 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | access to parameter b2 | false | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | access to parameter b2 | true | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | throw(ExceptionA) | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:31:247:46 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | normal | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | throw(Exception) | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | normal | -| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:251:21:251:54 | call to method WriteLine | normal | -| Finally.cs:251:21:251:55 | ...; | Finally.cs:251:21:251:54 | call to method WriteLine | normal | -| Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:39:251:53 | "Inner finally" | normal | -| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:254:13:254:44 | call to method WriteLine | normal | -| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:254:13:254:44 | call to method WriteLine | throw(Exception) | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:44 | call to method WriteLine | normal | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:44 | call to method WriteLine | throw(Exception) | -| Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:31:254:43 | "Mid finally" | normal | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:46 | call to method WriteLine | normal | -| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:258:13:258:46 | call to method WriteLine | normal | -| Finally.cs:258:13:258:47 | ...; | Finally.cs:258:13:258:46 | call to method WriteLine | normal | -| Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:31:258:45 | "Outer finally" | normal | -| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:260:9:260:33 | call to method WriteLine | normal | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:9:260:33 | call to method WriteLine | normal | -| Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:27:260:32 | "Done" | normal | -| Finally.cs:264:5:274:5 | {...} | Finally.cs:272:13:272:18 | ... += ... | normal | -| Finally.cs:264:5:274:5 | {...} | Finally.cs:272:13:272:18 | ... += ... | throw(Exception) [normal] (0) | -| Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:272:13:272:18 | ... += ... | normal | -| Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:272:13:272:18 | ... += ... | throw(Exception) [normal] (0) | -| Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:34 | call to method WriteLine | normal | -| Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:34 | call to method WriteLine | throw(Exception) | -| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:267:13:267:34 | call to method WriteLine | normal | -| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:267:13:267:34 | call to method WriteLine | throw(Exception) | -| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:13:267:34 | call to method WriteLine | normal | -| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:13:267:34 | call to method WriteLine | throw(Exception) | -| Finally.cs:267:31:267:33 | "1" | Finally.cs:267:31:267:33 | "1" | normal | -| Finally.cs:270:9:273:9 | {...} | Finally.cs:272:13:272:18 | ... += ... | normal | -| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:271:13:271:34 | call to method WriteLine | normal | -| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:13:271:34 | call to method WriteLine | normal | -| Finally.cs:271:31:271:33 | "3" | Finally.cs:271:31:271:33 | "3" | normal | -| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:13:272:13 | access to parameter i | normal | -| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:272:13:272:18 | ... += ... | normal | -| 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 | -| Foreach.cs:8:22:8:24 | String arg | Foreach.cs:8:22:8:24 | String arg | normal | -| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:29:8:32 | access to parameter args | normal | -| Foreach.cs:9:13:9:13 | ; | Foreach.cs:9:13:9:13 | ; | normal | -| Foreach.cs:13:5:16:5 | {...} | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | empty | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | empty | -| Foreach.cs:14:22:14:22 | String _ | Foreach.cs:14:22:14:22 | String _ | normal | -| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:27:14:30 | access to parameter args | normal | -| Foreach.cs:15:13:15:13 | ; | Foreach.cs:15:13:15:13 | ; | normal | -| Foreach.cs:19:5:22:5 | {...} | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:22:20:22 | String x | normal | -| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:27 | access to parameter e | non-null | -| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:27 | access to parameter e | null | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:27 | access to parameter e | null | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | call to method ToArray | non-null | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | call to method ToArray | null | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:68 | ... ?? ... | normal | -| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty | normal | -| Foreach.cs:21:11:21:11 | ; | Foreach.cs:21:11:21:11 | ; | normal | -| Foreach.cs:25:5:28:5 | {...} | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:26:18:26:31 | (..., ...) | normal | -| Foreach.cs:26:23:26:23 | String x | Foreach.cs:26:23:26:23 | String x | normal | -| Foreach.cs:26:30:26:30 | Int32 y | Foreach.cs:26:30:26:30 | Int32 y | normal | -| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:36:26:39 | access to parameter args | normal | -| Foreach.cs:27:11:27:11 | ; | Foreach.cs:27:11:27:11 | ; | normal | -| Foreach.cs:31:5:34:5 | {...} | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:32:18:32:27 | (..., ...) | normal | -| Foreach.cs:32:23:32:23 | String x | Foreach.cs:32:23:32:23 | String x | normal | -| Foreach.cs:32:26:32:26 | Int32 y | Foreach.cs:32:26:32:26 | Int32 y | normal | -| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:32:32:35 | access to parameter args | normal | -| Foreach.cs:33:11:33:11 | ; | Foreach.cs:33:11:33:11 | ; | normal | -| Foreach.cs:37:5:40:5 | {...} | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | empty | -| Foreach.cs:38:18:38:34 | (..., ...) | Foreach.cs:38:18:38:34 | (..., ...) | normal | -| Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:26:38:26 | String x | normal | -| Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:33:38:33 | Int32 y | normal | -| Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:39:38:42 | access to parameter args | normal | -| Foreach.cs:39:11:39:11 | ; | Foreach.cs:39:11:39:11 | ; | normal | -| Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | {...} | normal | -| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:9 | this access | normal | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:9:5:9 | this access | normal | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:9:5:17 | ... = ... | normal | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:13:5:13 | access to field H | normal | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:13:5:17 | ... + ... | normal | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:17:5:17 | 1 | normal | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:9:6:9 | this access | normal | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:9:6:9 | this access | normal | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:25:6:31 | ... = ... | normal | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:27:6:27 | access to field H | normal | -| 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 | -| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:14:13:14:53 | Initializers i = ... | normal | -| Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:38:14:53 | { ..., ... } | normal | -| Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:34:14:35 | "" | normal | -| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:38:14:53 | { ..., ... } | normal | -| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:40:14:44 | ... = ... | normal | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:44:14:44 | 0 | normal | -| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:47:14:51 | ... = ... | normal | -| Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:51:14:51 | 1 | normal | -| Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | normal | -| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | normal | -| Initializers.cs:15:18:15:63 | 2 | Initializers.cs:15:18:15:63 | 2 | normal | -| Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:37:15:63 | { ..., ... } | normal | -| Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:37:15:63 | { ..., ... } | normal | -| Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:39:15:39 | access to local variable i | normal | -| Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:42:15:61 | object creation of type Initializers | normal | -| Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:59:15:60 | "" | normal | -| 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 | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:23:22:27 | ... = ... | normal | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:27:22:27 | 0 | normal | -| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:23 | this access | normal | -| Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:23:23:23 | this access | normal | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:23:23:27 | ... = ... | normal | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:27:23:27 | 1 | normal | -| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:13 | this access | normal | -| 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 | -| Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:26 | this access | normal | -| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:26:31:30 | ... = ... | normal | -| Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:30 | ... = ... | normal | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:30:31:30 | 3 | normal | -| Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | normal | -| Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:31:33:35 | ... = ... | normal | -| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:31 | this access | normal | -| Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:31:33:31 | this access | normal | -| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:31:33:35 | ... = ... | normal | -| 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 | -| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:29:35:37 | ... = ... | normal | -| Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:37 | ... = ... | normal | -| Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:33:35:33 | access to parameter i | normal | -| 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 | -| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:54:13:54:95 | Dictionary dict = ... | normal | -| Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:50:54:95 | { ..., ... } | normal | -| Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:50:54:95 | { ..., ... } | normal | -| Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:53:54:53 | 0 | normal | -| Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:54:52:54:63 | ... = ... | normal | -| Initializers.cs:54:53:54:53 | 0 | Initializers.cs:54:53:54:53 | 0 | normal | -| Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:54:58:54:63 | "Zero" | normal | -| Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:54:67:54:67 | 1 | normal | -| Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:54:66:54:76 | ... = ... | normal | -| Initializers.cs:54:67:54:67 | 1 | Initializers.cs:54:67:54:67 | 1 | normal | -| Initializers.cs:54:72:54:76 | "One" | Initializers.cs:54:72:54:76 | "One" | normal | -| Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:54:80:54:84 | ... + ... | normal | -| Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:54:79:54:93 | ... = ... | normal | -| Initializers.cs:54:80:54:80 | access to parameter i | Initializers.cs:54:80:54:80 | access to parameter i | normal | -| Initializers.cs:54:80:54:84 | ... + ... | Initializers.cs:54:80:54:84 | ... + ... | normal | -| Initializers.cs:54:84:54:84 | 2 | Initializers.cs:54:84:54:84 | 2 | normal | -| Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:89:54:93 | "Two" | normal | -| Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:57:13:65:9 | Compound compound = ... | normal | -| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:57:13:65:9 | Compound compound = ... | normal | -| Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:58:9:65:9 | { ..., ... } | normal | -| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:58:9:65:9 | { ..., ... } | normal | -| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:13:59:76 | ... = ... | normal | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:31:59:76 | { ..., ... } | normal | -| Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:34:59:34 | 0 | normal | -| Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:33:59:44 | ... = ... | normal | -| Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:34:59:34 | 0 | normal | -| Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:59:39:59:44 | "Zero" | normal | -| Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:59:48:59:48 | 1 | normal | -| Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:59:47:59:57 | ... = ... | normal | -| Initializers.cs:59:48:59:48 | 1 | Initializers.cs:59:48:59:48 | 1 | normal | -| Initializers.cs:59:53:59:57 | "One" | Initializers.cs:59:53:59:57 | "One" | normal | -| Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:59:61:59:65 | ... + ... | normal | -| Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:59:60:59:74 | ... = ... | normal | -| Initializers.cs:59:61:59:61 | access to parameter i | Initializers.cs:59:61:59:61 | access to parameter i | normal | -| Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:59:61:59:65 | ... + ... | normal | -| Initializers.cs:59:65:59:65 | 2 | Initializers.cs:59:65:59:65 | 2 | normal | -| Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:70:59:74 | "Two" | normal | -| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:60:13:60:80 | ... = ... | normal | -| Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:34:60:80 | { ..., ... } | normal | -| Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:37:60:37 | 3 | normal | -| Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:36:60:48 | ... = ... | normal | -| Initializers.cs:60:37:60:37 | 3 | Initializers.cs:60:37:60:37 | 3 | normal | -| Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:60:42:60:48 | "Three" | normal | -| Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:60:52:60:52 | 2 | normal | -| Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:60:51:60:61 | ... = ... | normal | -| Initializers.cs:60:52:60:52 | 2 | Initializers.cs:60:52:60:52 | 2 | normal | -| Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:60:57:60:61 | "Two" | normal | -| Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:60:65:60:69 | ... + ... | normal | -| Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:60:64:60:78 | ... = ... | normal | -| Initializers.cs:60:65:60:65 | access to parameter i | Initializers.cs:60:65:60:65 | access to parameter i | normal | -| Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:65:60:69 | ... + ... | normal | -| Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:69:60:69 | 1 | normal | -| Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:74:60:78 | "One" | normal | -| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:13:61:58 | ... = ... | normal | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:26:61:58 | { ..., ... } | normal | -| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:29:61:29 | 0 | normal | -| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:28:61:39 | ... = ... | normal | -| Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:29:61:29 | 0 | normal | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:34:61:39 | "Zero" | normal | -| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:43:61:47 | ... + ... | normal | -| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:42:61:56 | ... = ... | normal | -| Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:43:61:43 | access to parameter i | normal | -| Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:43:61:47 | ... + ... | normal | -| Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:47:61:47 | 1 | normal | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:52:61:56 | "One" | normal | -| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:13:62:60 | ... = ... | normal | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:27:62:60 | { ..., ... } | normal | -| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:33:62:33 | 1 | normal | -| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:29:62:40 | ... = ... | normal | -| Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:30:62:30 | 0 | normal | -| Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:33:62:33 | 1 | normal | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:38:62:40 | "i" | normal | -| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:47:62:51 | ... + ... | normal | -| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:43:62:58 | ... = ... | normal | -| Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:44:62:44 | 1 | normal | -| Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:47:62:47 | access to parameter i | normal | -| Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:47:62:51 | ... + ... | normal | -| Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:51:62:51 | 0 | normal | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:56:62:58 | "1" | normal | -| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:13:63:60 | ... = ... | normal | -| Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:29:63:60 | { ..., ... } | normal | -| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:32:63:32 | 1 | normal | -| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:31:63:41 | ... = ... | normal | -| Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:32:63:32 | 1 | normal | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:37:63:41 | "One" | normal | -| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:45:63:49 | ... + ... | normal | -| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:44:63:58 | ... = ... | normal | -| Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:45:63:45 | access to parameter i | normal | -| Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:45:63:49 | ... + ... | normal | -| Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:49:63:49 | 2 | normal | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:54:63:58 | "Two" | normal | -| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:13:64:63 | ... = ... | normal | -| Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:30:64:63 | { ..., ... } | normal | -| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:36:64:36 | 1 | normal | -| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:32:64:43 | ... = ... | normal | -| Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:33:64:33 | 0 | normal | -| Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:36:64:36 | 1 | normal | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:41:64:43 | "i" | normal | -| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:50:64:54 | ... + ... | normal | -| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:46:64:61 | ... = ... | normal | -| Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:47:64:47 | 1 | normal | -| Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:50:64:50 | access to parameter i | normal | -| Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:50:64:54 | ... + ... | normal | -| 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 | -| LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:9:13:9:28 | ... == ... | false | -| LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:10:13:10:19 | return ...; | return | -| LoopUnrolling.cs:9:13:9:16 | access to parameter args | LoopUnrolling.cs:9:13:9:16 | access to parameter args | normal | -| LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:9:13:9:23 | access to property Length | normal | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | ... == ... | false | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | ... == ... | true | -| LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:28:9:28 | 0 | normal | -| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | return | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:22:11:24 | String arg | normal | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | normal | -| LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | normal | -| LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | normal | -| LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | normal | -| LoopUnrolling.cs:16:5:20:5 | {...} | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:17:18:17:47 | 3 | LoopUnrolling.cs:17:18:17:47 | 3 | normal | -| LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | normal | -| LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | normal | -| LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:33:17:35 | "a" | normal | -| LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:38:17:40 | "b" | normal | -| LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:43:17:45 | "c" | normal | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:22:18:22 | String x | normal | -| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | normal | -| LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:31:19:31 | access to local variable x | normal | -| LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:22:24:24 | Char arg | normal | -| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:29:24:32 | access to parameter args | normal | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | normal | -| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:34:25:37 | access to parameter args | normal | -| LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | normal | -| LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | normal | -| LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | normal | -| LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | normal | -| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | normal | -| LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | normal | -| LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:29:31:29 | 0 | normal | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:22:32:22 | String x | normal | -| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | normal | -| LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:31:33:31 | access to local variable x | normal | -| LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:38:18:38:47 | 3 | LoopUnrolling.cs:38:18:38:47 | 3 | normal | -| LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | normal | -| LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | normal | -| LoopUnrolling.cs:38:33:38:35 | "a" | LoopUnrolling.cs:38:33:38:35 | "a" | normal | -| LoopUnrolling.cs:38:38:38:40 | "b" | LoopUnrolling.cs:38:38:38:40 | "b" | normal | -| LoopUnrolling.cs:38:43:38:45 | "c" | LoopUnrolling.cs:38:43:38:45 | "c" | normal | -| LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | normal | -| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | normal | -| LoopUnrolling.cs:39:18:39:47 | 3 | LoopUnrolling.cs:39:18:39:47 | 3 | normal | -| LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | normal | -| LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | normal | -| LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:33:39:35 | "0" | normal | -| LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:38:39:40 | "1" | normal | -| LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:43:39:45 | "2" | normal | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:22:40:22 | String x | normal | -| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | normal | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:26:41:26 | String y | normal | -| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | normal | -| LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | normal | -| LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | normal | -| LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:35:42:35 | access to local variable x | normal | -| LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:35:42:39 | ... + ... | normal | -| LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:39:42:39 | access to local variable y | normal | -| LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:51:13:51:23 | goto ...; | goto(Label) | -| LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:47:18:47:47 | 3 | LoopUnrolling.cs:47:18:47:47 | 3 | normal | -| LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | normal | -| LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | normal | -| LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:33:47:35 | "a" | normal | -| LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:38:47:40 | "b" | normal | -| LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:43:47:45 | "c" | normal | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:51:13:51:23 | goto ...; | goto(Label) | -| LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:48:22:48:22 | String x | normal | -| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | normal | -| LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:51:13:51:23 | goto ...; | goto(Label) | -| LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:9:50:13 | Label: | normal | -| LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | normal | -| LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | normal | -| LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:34:50:34 | access to local variable x | normal | -| LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:51:13:51:23 | goto ...; | goto(Label) | -| LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | normal | -| LoopUnrolling.cs:57:18:57:47 | 3 | LoopUnrolling.cs:57:18:57:47 | 3 | normal | -| LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | normal | -| LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | normal | -| LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:33:57:35 | "a" | normal | -| LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:38:57:40 | "b" | normal | -| LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:43:57:45 | "c" | normal | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | String x | normal | -| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | normal | -| LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:62:17:62:17 | access to parameter b | false | -| LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | normal | -| LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:60:17:60:17 | access to parameter b | false | -| LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | normal | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | access to parameter b | false | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | access to parameter b | true | -| LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | normal | -| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | normal | -| LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:35:61:35 | access to local variable x | normal | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | false | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | normal | -| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | access to parameter b | false | -| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | access to parameter b | true | -| LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | normal | -| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | normal | -| LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:35:63:35 | access to local variable x | normal | -| LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:70:13:70:19 | return ...; | return | -| LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:69:13:69:23 | !... | false | -| LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:70:13:70:19 | return ...; | return | -| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:69:13:69:23 | !... | false | -| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:69:13:69:23 | !... | true | -| LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:69:14:69:17 | access to parameter args | normal | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | call to method Any | false | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | call to method Any | true | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | return | -| LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:12 | access to parameter args | normal | -| LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:71:9:71:20 | call to method Clear | normal | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:20 | call to method Clear | normal | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:22:72:24 | String arg | normal | -| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:29:72:32 | access to parameter args | normal | -| LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | normal | -| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | normal | -| LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | normal | -| LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | normal | -| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | normal | -| LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | normal | -| LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:29:78:29 | 2 | normal | -| LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:32:78:32 | 0 | normal | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:22:79:22 | String x | normal | -| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | normal | -| LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:31:81:31 | access to local variable x | normal | -| LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | normal | -| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | normal | -| LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | normal | -| LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:29:87:29 | 0 | normal | -| LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:32:87:32 | 2 | normal | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:22:88:22 | String x | normal | -| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | normal | -| LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:31:90:31 | access to local variable x | normal | -| LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | normal | -| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | normal | -| LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | normal | -| LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:29:96:29 | 2 | normal | -| LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:32:96:32 | 2 | normal | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | normal | -| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | normal | -| LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | normal | -| LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | normal | -| 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 | -| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:27:7:37 | throw ...; | throw(NullReferenceException) | -| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:27:7:37 | throw ...; | throw(NullReferenceException) | -| MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:33:7:36 | null | normal | -| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:47:7:57 | throw ...; | throw(NullReferenceException) | -| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:47:7:57 | throw ...; | throw(NullReferenceException) | -| MultiImplementationA.cs:7:53:7:56 | null | MultiImplementationA.cs:7:53:7:56 | null | normal | -| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:23:8:32 | throw ... | throw(NullReferenceException) | -| MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:29:8:32 | null | normal | -| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:16 | this access | normal | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | this access | normal | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:16:13:20 | ... = ... | normal | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:20:13:20 | 0 | normal | -| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | access to parameter i | normal | -| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:42:15:50 | return ...; | return | -| MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:42:15:50 | return ...; | return | -| MultiImplementationA.cs:15:49:15:49 | access to parameter s | MultiImplementationA.cs:15:49:15:49 | access to parameter s | normal | -| MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:58:15:60 | {...} | normal | -| MultiImplementationA.cs:16:28:16:28 | 0 | MultiImplementationA.cs:16:28:16:28 | 0 | normal | -| MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:18:9:18:22 | M2(...) | normal | -| 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 | -| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:24:20:28 | ... = ... | normal | -| MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:28 | ... = ... | normal | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:28:20:28 | access to parameter i | normal | -| MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | normal | -| MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:24:21:24 | 0 | normal | -| MultiImplementationA.cs:21:27:21:29 | {...} | MultiImplementationA.cs:21:27:21:29 | {...} | normal | -| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:11:22:13 | {...} | normal | -| MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:50:23:53 | null | normal | -| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:16:24:16 | this access | normal | -| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:16:24:16 | this access | normal | -| 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) | -| MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:22:36:25 | null | normal | -| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:16:37:26 | throw ...; | throw(NullReferenceException) | -| 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 | -| MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationB.cs:4:27:4:35 | return ...; | return | -| MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:34:4:34 | 1 | normal | -| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationB.cs:4:43:4:45 | {...} | normal | -| MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationB.cs:5:23:5:23 | 2 | normal | -| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:16 | this access | normal | -| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | this access | normal | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:16:11:20 | ... = ... | normal | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:20:11:20 | 1 | normal | -| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationB.cs:12:31:12:40 | throw ... | throw(NullReferenceException) | -| MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:37:12:40 | null | normal | -| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:42:13:52 | throw ...; | throw(NullReferenceException) | -| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationB.cs:13:42:13:52 | throw ...; | throw(NullReferenceException) | -| MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:48:13:51 | null | normal | -| MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | normal | -| MultiImplementationB.cs:14:28:14:28 | 1 | MultiImplementationB.cs:14:28:14:28 | 1 | normal | -| MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | normal | -| MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationB.cs:16:9:16:31 | M2(...) | normal | -| 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 | -| MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | normal | -| MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:24:19:24 | 1 | normal | -| MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationB.cs:19:27:19:29 | {...} | normal | -| MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:13:20:23 | throw ...; | throw(NullReferenceException) | -| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationB.cs:20:13:20:23 | throw ...; | throw(NullReferenceException) | -| MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationB.cs:20:19:20:22 | null | normal | -| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationB.cs:21:50:21:59 | throw ... | throw(NullReferenceException) | -| MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:56:21:59 | null | normal | -| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:16:22:16 | this access | normal | -| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:16:22:16 | this access | normal | -| 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 | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:28 | ... ?? ... | normal | -| NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:28:3:28 | 0 | normal | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | normal | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | access to parameter b | false | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | access to parameter b | null | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | access to parameter b | true | -| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:25:5:34 | ... ?? ... | false | -| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:25:5:34 | ... ?? ... | true | -| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | false | false | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:39:5:39 | 0 | normal | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:43:5:43 | 1 | normal | -| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | non-null | -| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | null | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:53 | ... ?? ... | normal | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | non-null | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | null | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:53 | ... ?? ... | normal | -| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:52:7:53 | "" | normal | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:36:9:58 | ... ?? ... | normal | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | access to parameter b | false | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | access to parameter b | true | -| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | non-null | -| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | null | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | access to parameter s | non-null | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | access to parameter s | null | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | access to parameter s | non-null | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | access to parameter s | null | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | "" | non-null | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | normal | -| NullCoalescing.cs:9:57:9:58 | "" | NullCoalescing.cs:9:57:9:58 | "" | normal | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | normal | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | false | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | null | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | true | -| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:44:11:59 | ... ?? ... | false | -| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:44:11:59 | ... ?? ... | true | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | false | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | true | -| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:51:11:58 | ... && ... | false | -| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:51:11:58 | ... && ... | true | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | false | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | true | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:64:11:64 | 0 | normal | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:68:11:68 | 1 | normal | -| NullCoalescing.cs:14:5:18:5 | {...} | NullCoalescing.cs:17:9:17:24 | ... = ... | normal | -| NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | normal | -| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | normal | -| NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:17:15:26 | (...) ... | null | -| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:17:15:31 | ... ?? ... | normal | -| NullCoalescing.cs:15:23:15:26 | null | NullCoalescing.cs:15:23:15:26 | null | normal | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:31:15:31 | 0 | normal | -| NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:16:13:16:25 | String s = ... | normal | -| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:16:13:16:25 | String s = ... | normal | -| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:18 | "" | non-null | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | normal | -| NullCoalescing.cs:16:23:16:25 | "a" | NullCoalescing.cs:16:23:16:25 | "a" | normal | -| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:17:9:17:24 | ... = ... | normal | -| NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:17:9:17:24 | ... = ... | normal | -| NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:19 | (...) ... | non-null | -| NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | normal | -| 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 | -| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:16:7:23 | Object o = ... | normal | -| Patterns.cs:7:20:7:23 | null | Patterns.cs:7:20:7:23 | null | normal | -| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:10:13:10:42 | call to method WriteLine | normal | -| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:14:13:14:45 | call to method WriteLine | normal | -| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | ... is ... | false | -| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:17:9:18:9 | {...} | normal | -| Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:13:8:13 | access to local variable o | normal | -| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | ... is ... | false | -| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | ... is ... | true | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:18:8:23 | Int32 i1 | match | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:18:8:23 | Int32 i1 | no-match | -| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:10:13:10:42 | call to method WriteLine | normal | -| Patterns.cs:10:13:10:42 | call to method WriteLine | Patterns.cs:10:13:10:42 | call to method WriteLine | normal | -| Patterns.cs:10:13:10:43 | ...; | Patterns.cs:10:13:10:42 | call to method WriteLine | normal | -| Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:10:31:10:41 | $"..." | normal | -| Patterns.cs:10:33:10:36 | "int " | Patterns.cs:10:33:10:36 | "int " | normal | -| Patterns.cs:10:37:10:40 | {...} | Patterns.cs:10:37:10:40 | {...} | normal | -| Patterns.cs:10:38:10:39 | access to local variable i1 | Patterns.cs:10:38:10:39 | access to local variable i1 | normal | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:14:13:14:45 | call to method WriteLine | normal | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | ... is ... | false | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:17:9:18:9 | {...} | normal | -| Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:18:12:18 | access to local variable o | normal | -| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | ... is ... | false | -| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | ... is ... | true | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:23:12:31 | String s1 | match | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:23:12:31 | String s1 | no-match | -| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:14:13:14:45 | call to method WriteLine | normal | -| Patterns.cs:14:13:14:45 | call to method WriteLine | Patterns.cs:14:13:14:45 | call to method WriteLine | normal | -| Patterns.cs:14:13:14:46 | ...; | Patterns.cs:14:13:14:45 | call to method WriteLine | normal | -| Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:14:31:14:44 | $"..." | normal | -| Patterns.cs:14:33:14:39 | "string " | Patterns.cs:14:33:14:39 | "string " | normal | -| Patterns.cs:14:40:14:43 | {...} | Patterns.cs:14:40:14:43 | {...} | normal | -| Patterns.cs:14:41:14:42 | access to local variable s1 | Patterns.cs:14:41:14:42 | access to local variable s1 | normal | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | ... is ... | false | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:17:9:18:9 | {...} | normal | -| Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:18:16:18 | access to local variable o | normal | -| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | ... is ... | false | -| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | ... is ... | true | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:23:16:28 | Object v1 | match | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:23:16:28 | Object v1 | no-match | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:17:9:18:9 | {...} | normal | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:23:17:23:22 | break; | normal [break] (0) | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:26:17:26:22 | break; | normal [break] (0) | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:29:17:29:22 | break; | normal [break] (0) | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:32:17:32:22 | break; | normal [break] (0) | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:34:17:34:22 | break; | normal [break] (0) | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:37:17:37:22 | break; | normal [break] (0) | -| Patterns.cs:20:17:20:17 | access to local variable o | Patterns.cs:20:17:20:17 | access to local variable o | normal | -| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:18:22:22 | "xyz" | no-match | -| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:23:17:23:22 | break; | break | -| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:22:18:22:22 | "xyz" | match | -| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:22:18:22:22 | "xyz" | no-match | -| Patterns.cs:23:17:23:22 | break; | Patterns.cs:23:17:23:22 | break; | break | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:18:24:23 | Int32 i2 | no-match | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:30:24:35 | ... > ... | false | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:25:17:25:51 | call to method WriteLine | normal | -| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:18:24:23 | Int32 i2 | match | -| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:18:24:23 | Int32 i2 | no-match | -| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:30:24:31 | access to local variable i2 | normal | -| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | ... > ... | false | -| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | ... > ... | true | -| Patterns.cs:24:35:24:35 | 0 | Patterns.cs:24:35:24:35 | 0 | normal | -| Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:25:17:25:51 | call to method WriteLine | normal | -| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:25:17:25:51 | call to method WriteLine | normal | -| Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:25:35:25:50 | $"..." | normal | -| Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:25:37:25:45 | "positive " | normal | -| Patterns.cs:25:46:25:49 | {...} | Patterns.cs:25:46:25:49 | {...} | normal | -| Patterns.cs:25:47:25:48 | access to local variable i2 | Patterns.cs:25:47:25:48 | access to local variable i2 | normal | -| Patterns.cs:26:17:26:22 | break; | Patterns.cs:26:17:26:22 | break; | break | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | Int32 i3 | no-match | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:28:17:28:46 | call to method WriteLine | normal | -| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:27:18:27:23 | Int32 i3 | match | -| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:27:18:27:23 | Int32 i3 | no-match | -| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:28:17:28:46 | call to method WriteLine | normal | -| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:28:17:28:46 | call to method WriteLine | normal | -| Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:28:35:28:45 | $"..." | normal | -| Patterns.cs:28:37:28:40 | "int " | Patterns.cs:28:37:28:40 | "int " | normal | -| Patterns.cs:28:41:28:44 | {...} | Patterns.cs:28:41:28:44 | {...} | normal | -| Patterns.cs:28:42:28:43 | access to local variable i3 | Patterns.cs:28:42:28:43 | access to local variable i3 | normal | -| Patterns.cs:29:17:29:22 | break; | Patterns.cs:29:17:29:22 | break; | break | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:18:30:26 | String s2 | no-match | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:31:17:31:49 | call to method WriteLine | normal | -| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:30:18:30:26 | String s2 | match | -| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:30:18:30:26 | String s2 | no-match | -| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:31:17:31:49 | call to method WriteLine | normal | -| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:31:17:31:49 | call to method WriteLine | normal | -| Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:31:35:31:48 | $"..." | normal | -| Patterns.cs:31:37:31:43 | "string " | Patterns.cs:31:37:31:43 | "string " | normal | -| Patterns.cs:31:44:31:47 | {...} | Patterns.cs:31:44:31:47 | {...} | normal | -| Patterns.cs:31:45:31:46 | access to local variable s2 | Patterns.cs:31:45:31:46 | access to local variable s2 | normal | -| Patterns.cs:32:17:32:22 | break; | Patterns.cs:32:17:32:22 | break; | break | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:18:33:23 | Object v2 | no-match | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:34:17:34:22 | break; | break | -| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:33:18:33:23 | Object v2 | match | -| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:33:18:33:23 | Object v2 | no-match | -| Patterns.cs:34:17:34:22 | break; | Patterns.cs:34:17:34:22 | break; | break | -| Patterns.cs:35:13:35:20 | default: | Patterns.cs:36:17:36:51 | call to method WriteLine | normal | -| Patterns.cs:36:17:36:51 | call to method WriteLine | Patterns.cs:36:17:36:51 | call to method WriteLine | normal | -| Patterns.cs:36:17:36:52 | ...; | Patterns.cs:36:17:36:51 | call to method WriteLine | normal | -| Patterns.cs:36:35:36:50 | "Something else" | Patterns.cs:36:35:36:50 | "Something else" | normal | -| Patterns.cs:37:17:37:22 | break; | Patterns.cs:37:17:37:22 | break; | break | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:40:17:40:17 | access to local variable o | normal | -| Patterns.cs:40:17:40:17 | access to local variable o | Patterns.cs:40:17:40:17 | access to local variable o | normal | -| Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:9:48:9 | access to parameter c | normal | -| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | ... is ... | normal | -| Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:14:48:20 | not ... | normal | -| Patterns.cs:48:18:48:20 | a | Patterns.cs:48:18:48:20 | a | normal | -| Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:9:51:9 | access to parameter c | normal | -| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | ... is ... | false | -| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | ... is ... | true | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:39 | ... ? ... : ... | normal | -| Patterns.cs:51:14:51:21 | not ... | Patterns.cs:51:14:51:21 | not ... | match | -| Patterns.cs:51:14:51:21 | not ... | Patterns.cs:51:14:51:21 | not ... | no-match | -| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:18:51:21 | null | match | -| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:18:51:21 | null | no-match | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:25 | access to parameter c | normal | -| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | ... is ... | normal | -| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:30:51:30 | 1 | normal | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:34 | access to parameter c | normal | -| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | ... is ... | normal | -| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:39:51:39 | 2 | normal | -| Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:9:54:9 | access to parameter c | normal | -| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | ... is ... | normal | -| Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:14:54:37 | not ... | normal | -| Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:54:18:54:25 | access to type Patterns | match | -| Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:54:18:54:25 | access to type Patterns | no-match | -| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:18:54:37 | Patterns u | match | -| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:18:54:37 | Patterns u | no-match | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:18:54:37 | { ... } | normal | -| Patterns.cs:54:27:54:35 | { ... } | Patterns.cs:54:27:54:35 | { ... } | match | -| Patterns.cs:54:27:54:35 | { ... } | Patterns.cs:54:27:54:35 | { ... } | no-match | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:33:54:33 | 1 | match | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:33:54:33 | 1 | no-match | -| Patterns.cs:57:5:63:5 | {...} | Patterns.cs:58:9:62:10 | return ...; | return | -| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:58:9:62:10 | return ...; | return | -| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:58:16:58:16 | access to parameter i | normal | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:62:9 | ... switch { ... } | normal | -| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:13:60:17 | not ... | match | -| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:13:60:17 | not ... | no-match | -| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | ... => ... | normal | -| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:17:60:17 | 1 | match | -| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:17:60:17 | 1 | no-match | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:22:60:28 | "not 1" | normal | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:13:61:13 | _ | match | -| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:13:61:24 | ... => ... | normal | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:18:61:24 | "other" | normal | -| Patterns.cs:66:5:72:5 | {...} | Patterns.cs:67:9:71:10 | return ...; | return | -| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:67:9:71:10 | return ...; | return | -| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:67:16:67:16 | 2 | normal | -| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:16:71:9 | ... switch { ... } | normal | -| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:13:69:17 | not ... | match | -| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:13:69:17 | not ... | no-match | -| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | ... => ... | normal | -| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:17:69:17 | 2 | match | -| Patterns.cs:69:22:69:33 | "impossible" | Patterns.cs:69:22:69:33 | "impossible" | normal | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:13 | 2 | match | -| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | ... => ... | normal | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:18:70:27 | "possible" | normal | -| Patterns.cs:75:5:83:5 | {...} | Patterns.cs:76:9:82:10 | return ...; | return | -| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:76:9:82:10 | return ...; | return | -| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:76:16:76:16 | access to parameter i | normal | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:82:9 | ... switch { ... } | normal | -| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:13:78:15 | > ... | match | -| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:13:78:15 | > ... | no-match | -| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | ... => ... | normal | -| Patterns.cs:78:15:78:15 | 1 | Patterns.cs:78:15:78:15 | 1 | normal | -| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:20:78:24 | "> 1" | normal | -| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:13:79:15 | < ... | match | -| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:13:79:15 | < ... | no-match | -| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | ... => ... | normal | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:15:79:15 | 0 | normal | -| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:20:79:24 | "< 0" | normal | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | 1 | match | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | 1 | no-match | -| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | ... => ... | normal | -| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:18:80:20 | "1" | normal | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:13:81:13 | _ | match | -| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:13:81:20 | ... => ... | normal | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:18:81:20 | "0" | normal | -| Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:39:85:39 | access to parameter i | normal | -| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | ... is ... | false | -| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | ... is ... | true | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:69 | ... ? ... : ... | normal | -| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:44:85:44 | 1 | match | -| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:44:85:44 | 1 | no-match | -| Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:44:85:53 | ... or ... | match | -| Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:44:85:53 | ... or ... | no-match | -| Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:49:85:53 | not ... | match | -| Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:49:85:53 | not ... | no-match | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:53:85:53 | 2 | match | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:53:85:53 | 2 | no-match | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:57:85:63 | "not 2" | normal | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:67:85:69 | "2" | normal | -| Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:39:87:39 | access to parameter i | normal | -| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | ... is ... | false | -| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | ... is ... | true | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:70 | ... ? ... : ... | normal | -| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:44:87:44 | 1 | match | -| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:44:87:44 | 1 | no-match | -| Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:44:87:54 | ... and ... | match | -| Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:44:87:54 | ... and ... | no-match | -| Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:50:87:54 | not ... | match | -| Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:50:87:54 | not ... | no-match | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:54:87:54 | 2 | match | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:54:87:54 | 2 | no-match | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:58:87:60 | "1" | normal | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:64:87:70 | "not 1" | normal | -| Patterns.cs:94:5:99:5 | {...} | Patterns.cs:95:13:95:40 | ... is ... | false | -| Patterns.cs:94:5:99:5 | {...} | Patterns.cs:97:13:97:38 | call to method WriteLine | normal | -| Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:95:13:95:40 | ... is ... | false | -| Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:97:13:97:38 | call to method WriteLine | normal | -| Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:13:95:16 | this access | normal | -| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | ... is ... | false | -| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | ... is ... | true | -| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | { ... } | match | -| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | { ... } | match | -| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | { ... } | no-match | -| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | { ... } | no-match | -| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:29:95:31 | access to constant A | match | -| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:29:95:31 | access to constant A | no-match | -| Patterns.cs:95:29:95:38 | ... or ... | Patterns.cs:95:29:95:38 | ... or ... | match | -| Patterns.cs:95:29:95:38 | ... or ... | Patterns.cs:95:29:95:38 | ... or ... | no-match | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:36:95:38 | access to constant B | match | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:36:95:38 | access to constant B | no-match | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:97:13:97:38 | call to method WriteLine | normal | -| Patterns.cs:97:13:97:38 | call to method WriteLine | Patterns.cs:97:13:97:38 | call to method WriteLine | normal | -| 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 | -| PostDominance.cs:7:9:7:29 | ...; | PostDominance.cs:7:9:7:28 | call to method WriteLine | normal | -| PostDominance.cs:7:27:7:27 | access to parameter s | PostDominance.cs:7:27:7:27 | access to parameter s | normal | -| PostDominance.cs:11:5:15:5 | {...} | PostDominance.cs:13:13:13:19 | return ...; | return | -| PostDominance.cs:11:5:15:5 | {...} | PostDominance.cs:14:9:14:28 | call to method WriteLine | normal | -| PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:12:13:12:21 | ... is ... | false | -| PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:13:13:13:19 | return ...; | return | -| PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:13:12:13 | access to parameter s | normal | -| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | ... is ... | false | -| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | ... is ... | true | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:18:12:21 | null | match | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:18:12:21 | null | no-match | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:13:13:13:19 | return ...; | return | -| PostDominance.cs:14:9:14:28 | call to method WriteLine | PostDominance.cs:14:9:14:28 | call to method WriteLine | normal | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:9:14:28 | call to method WriteLine | normal | -| PostDominance.cs:14:27:14:27 | access to parameter s | PostDominance.cs:14:27:14:27 | access to parameter s | normal | -| PostDominance.cs:18:5:22:5 | {...} | PostDominance.cs:20:13:20:55 | throw ...; | throw(ArgumentNullException) | -| PostDominance.cs:18:5:22:5 | {...} | PostDominance.cs:21:9:21:28 | call to method WriteLine | normal | -| PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:19:13:19:21 | ... is ... | false | -| PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:20:13:20:55 | throw ...; | throw(ArgumentNullException) | -| PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:13:19:13 | access to parameter s | normal | -| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | ... is ... | false | -| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | ... is ... | true | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:18:19:21 | null | match | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:18:19:21 | null | no-match | -| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:20:13:20:55 | throw ...; | throw(ArgumentNullException) | -| PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | normal | -| PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:45:20:53 | nameof(...) | normal | -| PostDominance.cs:20:52:20:52 | access to parameter s | PostDominance.cs:20:52:20:52 | access to parameter s | normal | -| PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:21:9:21:28 | call to method WriteLine | normal | -| 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 | -| Qualifiers.cs:11:5:31:5 | {...} | Qualifiers.cs:30:9:30:46 | ... = ... | normal | -| Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | normal | -| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | normal | -| Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:12:17:12:21 | access to field Field | normal | -| Qualifiers.cs:12:17:12:21 | this access | Qualifiers.cs:12:17:12:21 | this access | normal | -| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:13:9:13:20 | ... = ... | normal | -| Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:13:9:13:20 | ... = ... | normal | -| Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:13:13:13:20 | access to property Property | normal | -| Qualifiers.cs:13:13:13:20 | this access | Qualifiers.cs:13:13:13:20 | this access | normal | -| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:14:9:14:20 | ... = ... | normal | -| Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:14:9:14:20 | ... = ... | normal | -| Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:14:13:14:20 | call to method Method | normal | -| Qualifiers.cs:14:13:14:20 | this access | Qualifiers.cs:14:13:14:20 | this access | normal | -| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:16:9:16:22 | ... = ... | normal | -| Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:16:9:16:22 | ... = ... | normal | -| Qualifiers.cs:16:13:16:16 | this access | Qualifiers.cs:16:13:16:16 | this access | normal | -| Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:16:13:16:22 | access to field Field | normal | -| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:17:9:17:25 | ... = ... | normal | -| Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:17:9:17:25 | ... = ... | normal | -| Qualifiers.cs:17:13:17:16 | this access | Qualifiers.cs:17:13:17:16 | this access | normal | -| Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:17:13:17:25 | access to property Property | normal | -| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:18:9:18:25 | ... = ... | normal | -| Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:18:9:18:25 | ... = ... | normal | -| Qualifiers.cs:18:13:18:16 | this access | Qualifiers.cs:18:13:18:16 | this access | normal | -| Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:18:13:18:25 | call to method Method | normal | -| Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:20:9:20:23 | ... = ... | normal | -| Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:20:9:20:23 | ... = ... | normal | -| Qualifiers.cs:20:13:20:23 | access to field StaticField | Qualifiers.cs:20:13:20:23 | access to field StaticField | normal | -| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:21:9:21:26 | ... = ... | normal | -| Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:21:9:21:26 | ... = ... | normal | -| Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | normal | -| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:22:9:22:26 | ... = ... | normal | -| Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:22:9:22:26 | ... = ... | normal | -| Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | normal | -| Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:24:9:24:34 | ... = ... | normal | -| Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:24:9:24:34 | ... = ... | normal | -| Qualifiers.cs:24:13:24:34 | access to field StaticField | Qualifiers.cs:24:13:24:34 | access to field StaticField | normal | -| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:25:9:25:37 | ... = ... | normal | -| Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:25:9:25:37 | ... = ... | normal | -| Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | normal | -| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:26:9:26:37 | ... = ... | normal | -| Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:26:9:26:37 | ... = ... | normal | -| Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | normal | -| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:28:9:28:40 | ... = ... | normal | -| Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:28:9:28:40 | ... = ... | normal | -| Qualifiers.cs:28:13:28:34 | access to field StaticField | Qualifiers.cs:28:13:28:34 | access to field StaticField | normal | -| Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:28:13:28:40 | access to field Field | normal | -| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:29:9:29:46 | ... = ... | normal | -| Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:29:9:29:46 | ... = ... | normal | -| Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | normal | -| Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:13:29:46 | access to property Property | normal | -| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:30:9:30:46 | ... = ... | normal | -| Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:30:9:30:46 | ... = ... | normal | -| 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 | -| Switch.cs:7:17:7:17 | access to parameter o | Switch.cs:7:17:7:17 | access to parameter o | normal | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:15:17:15:23 | return ...; | return | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:17:17:17:38 | throw ...; | throw(Exception) | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:22:21:22:27 | return ...; | return | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:26:17:26:23 | return ...; | return | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:27:32:27:38 | call to method Throw | throw(Exception) | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:29:17:29:23 | return ...; | return | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:31:17:31:27 | goto ...; | goto(Label) | -| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:15:17:15:23 | return ...; | return | -| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:17:17:17:38 | throw ...; | throw(Exception) | -| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:22:21:22:27 | return ...; | return | -| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:26:17:26:23 | return ...; | return | -| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:27:32:27:38 | call to method Throw | throw(Exception) | -| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:29:17:29:23 | return ...; | return | -| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:31:17:31:27 | goto ...; | goto(Label) | -| Switch.cs:12:17:12:17 | access to parameter o | Switch.cs:12:17:12:17 | access to parameter o | normal | -| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:18:14:20 | "a" | no-match | -| Switch.cs:14:13:14:21 | case ...: | Switch.cs:15:17:15:23 | return ...; | return | -| Switch.cs:14:18:14:20 | "a" | Switch.cs:14:18:14:20 | "a" | match | -| Switch.cs:14:18:14:20 | "a" | Switch.cs:14:18:14:20 | "a" | no-match | -| Switch.cs:15:17:15:23 | return ...; | Switch.cs:15:17:15:23 | return ...; | return | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:18:16:18 | 0 | no-match | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:17:17:17:38 | throw ...; | throw(Exception) | -| Switch.cs:16:18:16:18 | 0 | Switch.cs:16:18:16:18 | 0 | match | -| Switch.cs:16:18:16:18 | 0 | Switch.cs:16:18:16:18 | 0 | no-match | -| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:17:17:17:38 | throw ...; | throw(Exception) | -| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:23:17:37 | object creation of type Exception | normal | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:18:18:21 | null | no-match | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:19:17:19:29 | goto default; | goto(default) | -| Switch.cs:18:18:18:21 | null | Switch.cs:18:18:18:21 | null | match | -| Switch.cs:18:18:18:21 | null | Switch.cs:18:18:18:21 | null | no-match | -| Switch.cs:19:17:19:29 | goto default; | Switch.cs:19:17:19:29 | goto default; | goto(default) | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:18:20:22 | Int32 i | no-match | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:21:21:21:29 | ... == ... | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:22:21:22:27 | return ...; | return | -| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:20:18:20:22 | Int32 i | match | -| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:20:18:20:22 | Int32 i | no-match | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:21:21:29 | ... == ... | false | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:22:21:22:27 | return ...; | return | -| Switch.cs:21:21:21:21 | access to parameter o | Switch.cs:21:21:21:21 | access to parameter o | normal | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | ... == ... | false | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | ... == ... | true | -| Switch.cs:21:26:21:29 | null | Switch.cs:21:26:21:29 | null | normal | -| Switch.cs:22:21:22:27 | return ...; | Switch.cs:22:21:22:27 | return ...; | return | -| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:23:17:23:28 | goto case ...; | goto(0) | -| Switch.cs:23:27:23:27 | 0 | Switch.cs:23:27:23:27 | 0 | normal | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:18:24:25 | String s | no-match | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:32:24:55 | ... && ... | false | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:25:17:25:36 | call to method WriteLine | normal | -| Switch.cs:24:18:24:25 | String s | Switch.cs:24:18:24:25 | String s | match | -| Switch.cs:24:18:24:25 | String s | Switch.cs:24:18:24:25 | String s | no-match | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:32 | access to local variable s | normal | -| Switch.cs:24:32:24:39 | access to property Length | Switch.cs:24:32:24:39 | access to property Length | normal | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | ... > ... | false | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | ... > ... | true | -| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:24:32:24:55 | ... && ... | false | -| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:24:32:24:55 | ... && ... | true | -| Switch.cs:24:43:24:43 | 0 | Switch.cs:24:43:24:43 | 0 | normal | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:48:24:48 | access to local variable s | normal | -| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | ... != ... | false | -| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | ... != ... | true | -| Switch.cs:24:53:24:55 | "a" | Switch.cs:24:53:24:55 | "a" | normal | -| Switch.cs:25:17:25:36 | call to method WriteLine | Switch.cs:25:17:25:36 | call to method WriteLine | normal | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:25:17:25:36 | call to method WriteLine | normal | -| Switch.cs:25:35:25:35 | access to local variable s | Switch.cs:25:35:25:35 | access to local variable s | normal | -| Switch.cs:26:17:26:23 | return ...; | Switch.cs:26:17:26:23 | return ...; | return | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | no-match | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | throw(Exception) | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:28:13:28:17 | Label: | normal | -| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:18:27:25 | Double d | match | -| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:18:27:25 | Double d | no-match | -| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:27:32:27:38 | call to method Throw | throw(Exception) | -| Switch.cs:28:13:28:17 | Label: | Switch.cs:28:13:28:17 | Label: | normal | -| Switch.cs:29:17:29:23 | return ...; | Switch.cs:29:17:29:23 | return ...; | return | -| Switch.cs:30:13:30:20 | default: | Switch.cs:31:17:31:27 | goto ...; | goto(Label) | -| Switch.cs:31:17:31:27 | goto ...; | Switch.cs:31:17:31:27 | goto ...; | goto(Label) | -| Switch.cs:36:5:42:5 | {...} | Switch.cs:37:17:37:23 | call to method Throw | throw(Exception) | -| Switch.cs:36:5:42:5 | {...} | Switch.cs:40:17:40:23 | return ...; | return | -| Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:17:37:23 | call to method Throw | throw(Exception) | -| Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:40:17:40:23 | return ...; | return | -| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:37:17:37:23 | call to method Throw | throw(Exception) | -| Switch.cs:39:13:39:20 | default: | Switch.cs:40:17:40:23 | return ...; | return | -| Switch.cs:40:17:40:23 | return ...; | Switch.cs:40:17:40:23 | return ...; | return | -| Switch.cs:45:5:53:5 | {...} | Switch.cs:49:17:49:22 | break; | normal [break] (0) | -| Switch.cs:45:5:53:5 | {...} | Switch.cs:50:18:50:21 | access to type Boolean | no-match | -| Switch.cs:45:5:53:5 | {...} | Switch.cs:50:30:50:38 | ... != ... | false | -| Switch.cs:45:5:53:5 | {...} | Switch.cs:51:17:51:22 | break; | normal [break] (0) | -| Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:49:17:49:22 | break; | normal [break] (0) | -| Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:50:18:50:21 | access to type Boolean | no-match | -| Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:50:30:50:38 | ... != ... | false | -| Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:51:17:51:22 | break; | normal [break] (0) | -| Switch.cs:46:17:46:17 | access to parameter o | Switch.cs:46:17:46:17 | access to parameter o | normal | -| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:18:48:20 | access to type Int32 | no-match | -| Switch.cs:48:13:48:23 | case ...: | Switch.cs:49:17:49:22 | break; | break | -| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:48:18:48:20 | access to type Int32 | match | -| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:48:18:48:20 | access to type Int32 | no-match | -| Switch.cs:49:17:49:22 | break; | Switch.cs:49:17:49:22 | break; | break | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:18:50:21 | access to type Boolean | no-match | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:30:50:38 | ... != ... | false | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:51:17:51:22 | break; | break | -| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:18:50:21 | access to type Boolean | match | -| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:18:50:21 | access to type Boolean | no-match | -| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:30:50:30 | access to parameter o | normal | -| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | ... != ... | false | -| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | ... != ... | true | -| Switch.cs:50:35:50:38 | null | Switch.cs:50:35:50:38 | null | normal | -| Switch.cs:51:17:51:22 | break; | Switch.cs:51:17:51:22 | break; | break | -| Switch.cs:56:5:64:5 | {...} | Switch.cs:60:17:60:22 | break; | normal [break] (0) | -| Switch.cs:56:5:64:5 | {...} | Switch.cs:62:17:62:22 | break; | normal [break] (0) | -| Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:60:17:60:22 | break; | normal [break] (0) | -| Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:62:17:62:22 | break; | normal [break] (0) | -| Switch.cs:57:17:57:17 | 1 | Switch.cs:57:17:57:17 | 1 | normal | -| Switch.cs:57:17:57:21 | ... + ... | Switch.cs:57:17:57:21 | ... + ... | normal | -| Switch.cs:57:21:57:21 | 2 | Switch.cs:57:21:57:21 | 2 | normal | -| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:18:59:18 | 2 | no-match | -| Switch.cs:59:13:59:19 | case ...: | Switch.cs:60:17:60:22 | break; | break | -| Switch.cs:59:18:59:18 | 2 | Switch.cs:59:18:59:18 | 2 | no-match | -| Switch.cs:60:17:60:22 | break; | Switch.cs:60:17:60:22 | break; | break | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:62:17:62:22 | break; | break | -| Switch.cs:61:18:61:18 | 3 | Switch.cs:61:18:61:18 | 3 | match | -| Switch.cs:62:17:62:22 | break; | Switch.cs:62:17:62:22 | break; | break | -| Switch.cs:67:5:75:5 | {...} | Switch.cs:71:17:71:22 | break; | normal [break] (0) | -| Switch.cs:67:5:75:5 | {...} | Switch.cs:72:18:72:19 | "" | no-match | -| Switch.cs:67:5:75:5 | {...} | Switch.cs:73:17:73:22 | break; | normal [break] (0) | -| Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:71:17:71:22 | break; | normal [break] (0) | -| Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:72:18:72:19 | "" | no-match | -| Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:73:17:73:22 | break; | normal [break] (0) | -| Switch.cs:68:17:68:25 | (...) ... | Switch.cs:68:17:68:25 | (...) ... | normal | -| Switch.cs:68:25:68:25 | access to parameter s | Switch.cs:68:25:68:25 | access to parameter s | normal | -| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:18:70:20 | access to type Int32 | no-match | -| Switch.cs:70:13:70:23 | case ...: | Switch.cs:71:17:71:22 | break; | break | -| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:70:18:70:20 | access to type Int32 | no-match | -| Switch.cs:71:17:71:22 | break; | Switch.cs:71:17:71:22 | break; | break | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:18:72:19 | "" | no-match | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:73:17:73:22 | break; | break | -| Switch.cs:72:18:72:19 | "" | Switch.cs:72:18:72:19 | "" | match | -| Switch.cs:72:18:72:19 | "" | Switch.cs:72:18:72:19 | "" | no-match | -| Switch.cs:73:17:73:22 | break; | Switch.cs:73:17:73:22 | break; | break | -| Switch.cs:78:5:89:5 | {...} | Switch.cs:82:17:82:28 | return ...; | return | -| Switch.cs:78:5:89:5 | {...} | Switch.cs:86:17:86:28 | return ...; | return | -| Switch.cs:78:5:89:5 | {...} | Switch.cs:88:9:88:21 | return ...; | return | -| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:82:17:82:28 | return ...; | return | -| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:83:18:83:18 | 2 | no-match | -| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:85:21:85:26 | break; | normal [break] (0) | -| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:86:17:86:28 | return ...; | return | -| Switch.cs:79:17:79:17 | access to parameter i | Switch.cs:79:17:79:17 | access to parameter i | normal | -| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:18:81:18 | 1 | no-match | -| Switch.cs:81:13:81:19 | case ...: | Switch.cs:82:17:82:28 | return ...; | return | -| Switch.cs:81:18:81:18 | 1 | Switch.cs:81:18:81:18 | 1 | match | -| Switch.cs:81:18:81:18 | 1 | Switch.cs:81:18:81:18 | 1 | no-match | -| Switch.cs:82:17:82:28 | return ...; | Switch.cs:82:17:82:28 | return ...; | return | -| Switch.cs:82:24:82:27 | true | Switch.cs:82:24:82:27 | true | normal | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:18:83:18 | 2 | no-match | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:84:21:84:25 | ... > ... | false | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:85:21:85:26 | break; | break | -| Switch.cs:83:18:83:18 | 2 | Switch.cs:83:18:83:18 | 2 | match | -| Switch.cs:83:18:83:18 | 2 | Switch.cs:83:18:83:18 | 2 | no-match | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:21:84:25 | ... > ... | false | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:85:21:85:26 | break; | break | -| Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:84:21:84:21 | access to parameter j | normal | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | ... > ... | false | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | ... > ... | true | -| Switch.cs:84:25:84:25 | 2 | Switch.cs:84:25:84:25 | 2 | normal | -| Switch.cs:85:21:85:26 | break; | Switch.cs:85:21:85:26 | break; | break | -| Switch.cs:86:17:86:28 | return ...; | Switch.cs:86:17:86:28 | return ...; | return | -| Switch.cs:86:24:86:27 | true | Switch.cs:86:24:86:27 | true | normal | -| Switch.cs:88:9:88:21 | return ...; | Switch.cs:88:9:88:21 | return ...; | return | -| Switch.cs:88:16:88:20 | false | Switch.cs:88:16:88:20 | false | normal | -| Switch.cs:92:5:99:5 | {...} | Switch.cs:96:17:96:28 | return ...; | return | -| Switch.cs:92:5:99:5 | {...} | Switch.cs:98:9:98:21 | return ...; | return | -| Switch.cs:93:9:97:9 | switch (...) {...} | Switch.cs:95:18:95:20 | access to type Int32 | no-match | -| Switch.cs:93:9:97:9 | switch (...) {...} | Switch.cs:96:17:96:28 | return ...; | return | -| Switch.cs:93:17:93:17 | access to parameter o | Switch.cs:93:17:93:17 | access to parameter o | normal | -| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:18:95:20 | access to type Int32 | no-match | -| Switch.cs:95:13:95:23 | case ...: | Switch.cs:96:17:96:28 | return ...; | return | -| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:95:18:95:20 | access to type Int32 | match | -| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:95:18:95:20 | access to type Int32 | no-match | -| Switch.cs:96:17:96:28 | return ...; | Switch.cs:96:17:96:28 | return ...; | return | -| Switch.cs:96:24:96:27 | true | Switch.cs:96:24:96:27 | true | normal | -| Switch.cs:98:9:98:21 | return ...; | Switch.cs:98:9:98:21 | return ...; | return | -| Switch.cs:98:16:98:20 | false | Switch.cs:98:16:98:20 | false | normal | -| Switch.cs:102:5:109:5 | {...} | Switch.cs:105:21:105:29 | return ...; | return | -| Switch.cs:102:5:109:5 | {...} | Switch.cs:106:21:106:29 | return ...; | return | -| Switch.cs:102:5:109:5 | {...} | Switch.cs:108:9:108:18 | return ...; | return | -| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:105:21:105:29 | return ...; | return | -| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:106:18:106:18 | 1 | no-match | -| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:106:21:106:29 | return ...; | return | -| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:17 | access to parameter s | non-null | -| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:17 | access to parameter s | null | -| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:17 | access to parameter s | null | -| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:25 | access to property Length | normal | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:18:105:18 | 0 | no-match | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:21:105:29 | return ...; | return | -| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:18:105:18 | 0 | match | -| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:18:105:18 | 0 | no-match | -| Switch.cs:105:21:105:29 | return ...; | Switch.cs:105:21:105:29 | return ...; | return | -| Switch.cs:105:28:105:28 | 0 | Switch.cs:105:28:105:28 | 0 | normal | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:18:106:18 | 1 | no-match | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:21:106:29 | return ...; | return | -| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:18:106:18 | 1 | match | -| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:18:106:18 | 1 | no-match | -| Switch.cs:106:21:106:29 | return ...; | Switch.cs:106:21:106:29 | return ...; | return | -| Switch.cs:106:28:106:28 | 1 | Switch.cs:106:28:106:28 | 1 | normal | -| Switch.cs:108:9:108:18 | return ...; | Switch.cs:108:9:108:18 | return ...; | return | -| Switch.cs:108:16:108:17 | -... | Switch.cs:108:16:108:17 | -... | normal | -| Switch.cs:108:17:108:17 | 1 | Switch.cs:108:17:108:17 | 1 | normal | -| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:28:111:48 | throw ... | throw(Exception) | -| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:34:111:48 | object creation of type Exception | normal | -| Switch.cs:114:5:121:5 | {...} | Switch.cs:117:37:117:45 | return ...; | return | -| Switch.cs:114:5:121:5 | {...} | Switch.cs:118:36:118:44 | return ...; | return | -| Switch.cs:114:5:121:5 | {...} | Switch.cs:120:9:120:18 | return ...; | return | -| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:117:37:117:45 | return ...; | return | -| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:118:18:118:18 | 2 | no-match | -| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:118:25:118:33 | ... == ... | false | -| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:118:36:118:44 | return ...; | return | -| Switch.cs:115:17:115:17 | access to parameter s | Switch.cs:115:17:115:17 | access to parameter s | normal | -| Switch.cs:115:17:115:24 | access to property Length | Switch.cs:115:17:115:24 | access to property Length | normal | -| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:18:117:18 | 3 | no-match | -| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:25:117:34 | ... == ... | false | -| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:37:117:45 | return ...; | return | -| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:18:117:18 | 3 | match | -| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:18:117:18 | 3 | no-match | -| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:25:117:25 | access to parameter s | normal | -| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | ... == ... | false | -| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | ... == ... | true | -| Switch.cs:117:30:117:34 | "foo" | Switch.cs:117:30:117:34 | "foo" | normal | -| Switch.cs:117:37:117:45 | return ...; | Switch.cs:117:37:117:45 | return ...; | return | -| Switch.cs:117:44:117:44 | 1 | Switch.cs:117:44:117:44 | 1 | normal | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | 2 | no-match | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:33 | ... == ... | false | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:36:118:44 | return ...; | return | -| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:18:118:18 | 2 | match | -| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:18:118:18 | 2 | no-match | -| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:25:118:25 | access to parameter s | normal | -| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | ... == ... | false | -| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | ... == ... | true | -| Switch.cs:118:30:118:33 | "fu" | Switch.cs:118:30:118:33 | "fu" | normal | -| Switch.cs:118:36:118:44 | return ...; | Switch.cs:118:36:118:44 | return ...; | return | -| Switch.cs:118:43:118:43 | 2 | Switch.cs:118:43:118:43 | 2 | normal | -| Switch.cs:120:9:120:18 | return ...; | Switch.cs:120:9:120:18 | return ...; | return | -| Switch.cs:120:16:120:17 | -... | Switch.cs:120:16:120:17 | -... | normal | -| Switch.cs:120:17:120:17 | 1 | Switch.cs:120:17:120:17 | 1 | normal | -| Switch.cs:124:5:127:5 | {...} | Switch.cs:125:13:125:48 | ... switch { ... } | false | -| Switch.cs:124:5:127:5 | {...} | Switch.cs:126:13:126:19 | return ...; | return | -| Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:125:13:125:48 | ... switch { ... } | false | -| Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:126:13:126:19 | return ...; | return | -| Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:13:125:13 | access to parameter o | normal | -| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:13:125:48 | ... switch { ... } | false | -| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:13:125:48 | ... switch { ... } | true | -| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:24:125:29 | Boolean b | match | -| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:24:125:29 | Boolean b | no-match | -| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | ... => ... | false | -| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | ... => ... | true | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:34:125:34 | access to local variable b | false | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:34:125:34 | access to local variable b | true | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:37 | _ | match | -| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:46 | ... => ... | false | -| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:46 | ... => ... | true | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:42:125:46 | false | false | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:126:13:126:19 | return ...; | return | -| Switch.cs:130:5:132:5 | {...} | Switch.cs:131:9:131:67 | return ...; | return | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:9:131:67 | return ...; | return | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:16:131:66 | call to method ToString | normal | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:17:131:53 | ... switch { ... } | null | -| Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:131:17:131:17 | access to parameter o | normal | -| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:17:131:53 | ... switch { ... } | non-null | -| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:17:131:53 | ... switch { ... } | null | -| Switch.cs:131:28:131:35 | String s | Switch.cs:131:28:131:35 | String s | match | -| Switch.cs:131:28:131:35 | String s | Switch.cs:131:28:131:35 | String s | no-match | -| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | ... => ... | non-null | -| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | ... => ... | null | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:40:131:40 | access to local variable s | non-null | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:40:131:40 | access to local variable s | null | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:43 | _ | match | -| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:51 | ... => ... | non-null | -| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:51 | ... => ... | null | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:48:131:51 | null | null | -| Switch.cs:135:5:142:5 | {...} | Switch.cs:138:22:138:31 | return ...; | return | -| Switch.cs:135:5:142:5 | {...} | Switch.cs:139:21:139:29 | return ...; | return | -| Switch.cs:135:5:142:5 | {...} | Switch.cs:140:21:140:29 | return ...; | return | -| Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:138:22:138:31 | return ...; | return | -| Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:139:21:139:29 | return ...; | return | -| Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:140:21:140:29 | return ...; | return | -| Switch.cs:136:17:136:17 | access to parameter i | Switch.cs:136:17:136:17 | access to parameter i | normal | -| Switch.cs:138:13:138:20 | default: | Switch.cs:138:22:138:31 | return ...; | return | -| Switch.cs:138:22:138:31 | return ...; | Switch.cs:138:22:138:31 | return ...; | return | -| Switch.cs:138:29:138:30 | -... | Switch.cs:138:29:138:30 | -... | normal | -| Switch.cs:138:30:138:30 | 1 | Switch.cs:138:30:138:30 | 1 | normal | -| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:18:139:18 | 1 | no-match | -| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:21:139:29 | return ...; | return | -| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:18:139:18 | 1 | match | -| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:18:139:18 | 1 | no-match | -| Switch.cs:139:21:139:29 | return ...; | Switch.cs:139:21:139:29 | return ...; | return | -| Switch.cs:139:28:139:28 | 1 | Switch.cs:139:28:139:28 | 1 | normal | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:18:140:18 | 2 | no-match | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:21:140:29 | return ...; | return | -| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:18:140:18 | 2 | match | -| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:18:140:18 | 2 | no-match | -| Switch.cs:140:21:140:29 | return ...; | Switch.cs:140:21:140:29 | return ...; | return | -| Switch.cs:140:28:140:28 | 2 | Switch.cs:140:28:140:28 | 2 | normal | -| Switch.cs:145:5:152:5 | {...} | Switch.cs:148:21:148:29 | return ...; | return | -| Switch.cs:145:5:152:5 | {...} | Switch.cs:149:22:149:31 | return ...; | return | -| Switch.cs:145:5:152:5 | {...} | Switch.cs:150:21:150:29 | return ...; | return | -| Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:148:21:148:29 | return ...; | return | -| Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:149:22:149:31 | return ...; | return | -| Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:150:21:150:29 | return ...; | return | -| Switch.cs:146:17:146:17 | access to parameter i | Switch.cs:146:17:146:17 | access to parameter i | normal | -| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:18:148:18 | 1 | no-match | -| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:21:148:29 | return ...; | return | -| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:18:148:18 | 1 | match | -| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:18:148:18 | 1 | no-match | -| Switch.cs:148:21:148:29 | return ...; | Switch.cs:148:21:148:29 | return ...; | return | -| Switch.cs:148:28:148:28 | 1 | Switch.cs:148:28:148:28 | 1 | normal | -| Switch.cs:149:13:149:20 | default: | Switch.cs:149:22:149:31 | return ...; | return | -| Switch.cs:149:22:149:31 | return ...; | Switch.cs:149:22:149:31 | return ...; | return | -| Switch.cs:149:29:149:30 | -... | Switch.cs:149:29:149:30 | -... | normal | -| Switch.cs:149:30:149:30 | 1 | Switch.cs:149:30:149:30 | 1 | normal | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:18:150:18 | 2 | no-match | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:21:150:29 | return ...; | return | -| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:18:150:18 | 2 | match | -| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:18:150:18 | 2 | no-match | -| Switch.cs:150:21:150:29 | return ...; | Switch.cs:150:21:150:29 | return ...; | return | -| Switch.cs:150:28:150:28 | 2 | Switch.cs:150:28:150:28 | 2 | normal | -| Switch.cs:155:5:161:5 | {...} | Switch.cs:156:41:156:45 | false | throw(InvalidOperationException) [no-match] (0) | -| Switch.cs:155:5:161:5 | {...} | Switch.cs:158:13:158:48 | call to method WriteLine | normal | -| Switch.cs:155:5:161:5 | {...} | Switch.cs:160:13:160:48 | call to method WriteLine | normal | -| Switch.cs:156:9:156:55 | ... ...; | Switch.cs:156:13:156:54 | String s = ... | normal | -| Switch.cs:156:9:156:55 | ... ...; | Switch.cs:156:41:156:45 | false | throw(InvalidOperationException) [no-match] (0) | -| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:13:156:54 | String s = ... | normal | -| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:41:156:45 | false | throw(InvalidOperationException) [no-match] (0) | -| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:17:156:17 | access to parameter b | normal | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:54 | ... switch { ... } | normal | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:41:156:45 | false | throw(InvalidOperationException) [no-match] (0) | -| Switch.cs:156:28:156:31 | true | Switch.cs:156:28:156:31 | true | match | -| Switch.cs:156:28:156:31 | true | Switch.cs:156:28:156:31 | true | no-match | -| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | ... => ... | normal | -| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:36:156:38 | "a" | normal | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | false | match | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | false | no-match | -| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:45 | false | throw(InvalidOperationException) [no-match] (0) | -| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | ... => ... | normal | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:50:156:52 | "b" | normal | -| Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:158:13:158:48 | call to method WriteLine | normal | -| Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:160:13:160:48 | call to method WriteLine | normal | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | access to parameter b | false | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | access to parameter b | true | -| Switch.cs:158:13:158:48 | call to method WriteLine | Switch.cs:158:13:158:48 | call to method WriteLine | normal | -| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:13:158:48 | call to method WriteLine | normal | -| Switch.cs:158:38:158:47 | $"..." | Switch.cs:158:38:158:47 | $"..." | normal | -| Switch.cs:158:40:158:43 | "a = " | Switch.cs:158:40:158:43 | "a = " | normal | -| Switch.cs:158:44:158:46 | {...} | Switch.cs:158:44:158:46 | {...} | normal | -| Switch.cs:158:45:158:45 | access to local variable s | Switch.cs:158:45:158:45 | access to local variable s | normal | -| Switch.cs:160:13:160:48 | call to method WriteLine | Switch.cs:160:13:160:48 | call to method WriteLine | normal | -| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:13:160:48 | call to method WriteLine | normal | -| Switch.cs:160:38:160:47 | $"..." | Switch.cs:160:38:160:47 | $"..." | normal | -| Switch.cs:160:40:160:43 | "b = " | Switch.cs:160:40:160:43 | "b = " | normal | -| Switch.cs:160:44:160:46 | {...} | Switch.cs:160:44:160:46 | {...} | normal | -| Switch.cs:160:45:160:45 | access to local variable s | Switch.cs:160:45:160:45 | access to local variable s | normal | -| Switch.cs:164:5:178:5 | {...} | Switch.cs:170:17:170:22 | break; | normal [break] (0) | -| Switch.cs:164:5:178:5 | {...} | Switch.cs:173:17:173:22 | break; | normal [break] (0) | -| Switch.cs:164:5:178:5 | {...} | Switch.cs:176:17:176:22 | break; | normal [break] (0) | -| Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:170:17:170:22 | break; | normal [break] (0) | -| Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:173:17:173:22 | break; | normal [break] (0) | -| Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:176:17:176:22 | break; | normal [break] (0) | -| Switch.cs:165:17:165:17 | access to parameter i | Switch.cs:165:17:165:17 | access to parameter i | normal | -| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:18:167:18 | 1 | no-match | -| Switch.cs:167:13:167:19 | case ...: | Switch.cs:169:17:169:50 | call to method WriteLine | normal | -| Switch.cs:167:18:167:18 | 1 | Switch.cs:167:18:167:18 | 1 | match | -| Switch.cs:167:18:167:18 | 1 | Switch.cs:167:18:167:18 | 1 | no-match | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:18:168:18 | 2 | no-match | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:169:17:169:50 | call to method WriteLine | normal | -| Switch.cs:168:18:168:18 | 2 | Switch.cs:168:18:168:18 | 2 | match | -| Switch.cs:168:18:168:18 | 2 | Switch.cs:168:18:168:18 | 2 | no-match | -| Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:169:17:169:50 | call to method WriteLine | normal | -| Switch.cs:169:17:169:51 | ...; | Switch.cs:169:17:169:50 | call to method WriteLine | normal | -| Switch.cs:169:42:169:49 | "1 or 2" | Switch.cs:169:42:169:49 | "1 or 2" | normal | -| Switch.cs:170:17:170:22 | break; | Switch.cs:170:17:170:22 | break; | break | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:18:171:18 | 3 | no-match | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:172:17:172:45 | call to method WriteLine | normal | -| Switch.cs:171:18:171:18 | 3 | Switch.cs:171:18:171:18 | 3 | match | -| Switch.cs:171:18:171:18 | 3 | Switch.cs:171:18:171:18 | 3 | no-match | -| Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:172:17:172:45 | call to method WriteLine | normal | -| Switch.cs:172:17:172:46 | ...; | Switch.cs:172:17:172:45 | call to method WriteLine | normal | -| Switch.cs:172:42:172:44 | "3" | Switch.cs:172:42:172:44 | "3" | normal | -| Switch.cs:173:17:173:22 | break; | Switch.cs:173:17:173:22 | break; | break | -| Switch.cs:174:13:174:20 | default: | Switch.cs:175:17:175:47 | call to method WriteLine | normal | -| Switch.cs:175:17:175:47 | call to method WriteLine | Switch.cs:175:17:175:47 | call to method WriteLine | normal | -| Switch.cs:175:17:175:48 | ...; | Switch.cs:175:17:175:47 | call to method WriteLine | normal | -| 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 | -| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:5:13:5:25 | String s = ... | normal | -| TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:5:17:5:25 | (...) ... | normal | -| TypeAccesses.cs:5:25:5:25 | access to parameter o | TypeAccesses.cs:5:25:5:25 | access to parameter o | normal | -| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:6:9:6:23 | ... = ... | normal | -| TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:6:9:6:23 | ... = ... | normal | -| TypeAccesses.cs:6:13:6:13 | access to parameter o | TypeAccesses.cs:6:13:6:13 | access to parameter o | normal | -| TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:6:13:6:23 | ... as ... | normal | -| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:13:7:22 | ... is ... | false | -| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:25:7:25 | ; | normal | -| TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:13:7:13 | access to parameter o | normal | -| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | ... is ... | false | -| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | ... is ... | true | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:18:7:22 | Int32 j | match | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:18:7:22 | Int32 j | no-match | -| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:25:7:25 | ; | normal | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:13:8:27 | Type t = ... | normal | -| 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 | -| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:22:7:36 | Char* c1 = ... | normal | -| VarDecls.cs:7:27:7:33 | access to parameter strings | VarDecls.cs:7:27:7:33 | access to parameter strings | normal | -| VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:27:7:36 | (...) ... | normal | -| VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:7:27:7:36 | access to array element | normal | -| VarDecls.cs:7:35:7:35 | 0 | VarDecls.cs:7:35:7:35 | 0 | normal | -| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:7:39:7:53 | Char* c2 = ... | normal | -| VarDecls.cs:7:44:7:50 | access to parameter strings | VarDecls.cs:7:44:7:50 | access to parameter strings | normal | -| VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:44:7:53 | (...) ... | normal | -| VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:7:44:7:53 | access to array element | normal | -| VarDecls.cs:7:52:7:52 | 1 | VarDecls.cs:7:52:7:52 | 1 | normal | -| VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:9:13:9:29 | return ...; | return | -| VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:9:13:9:29 | return ...; | return | -| VarDecls.cs:9:20:9:28 | (...) ... | VarDecls.cs:9:20:9:28 | (...) ... | normal | -| VarDecls.cs:9:27:9:28 | access to local variable c1 | VarDecls.cs:9:27:9:28 | access to local variable c1 | normal | -| VarDecls.cs:14:5:17:5 | {...} | VarDecls.cs:16:9:16:23 | return ...; | return | -| VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:15:24:15:29 | String s2 = ... | normal | -| VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:16:15:21 | String s1 = ... | normal | -| VarDecls.cs:15:21:15:21 | access to parameter s | VarDecls.cs:15:21:15:21 | access to parameter s | normal | -| VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:15:24:15:29 | String s2 = ... | normal | -| VarDecls.cs:15:29:15:29 | access to parameter s | VarDecls.cs:15:29:15:29 | access to parameter s | normal | -| VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:16:9:16:23 | return ...; | return | -| VarDecls.cs:16:16:16:17 | access to local variable s1 | VarDecls.cs:16:16:16:17 | access to local variable s1 | normal | -| VarDecls.cs:16:16:16:22 | ... + ... | VarDecls.cs:16:16:16:22 | ... + ... | normal | -| VarDecls.cs:16:21:16:22 | access to local variable s2 | VarDecls.cs:16:21:16:22 | access to local variable s2 | normal | -| VarDecls.cs:20:5:26:5 | {...} | VarDecls.cs:25:13:25:29 | return ...; | return | -| VarDecls.cs:21:9:22:13 | using (...) {...} | VarDecls.cs:22:13:22:13 | ; | normal | -| VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:21:16:21:22 | object creation of type C | normal | -| VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:22:13:22:13 | ; | normal | -| VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:25:13:25:29 | return ...; | return | -| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:18:24:28 | C x = ... | normal | -| VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:22:24:28 | object creation of type C | normal | -| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:24:31:24:41 | C y = ... | normal | -| VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:35:24:41 | object creation of type C | normal | -| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:25:13:25:29 | return ...; | return | -| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | access to parameter b | false | -| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | access to parameter b | true | -| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:20:25:28 | ... ? ... : ... | normal | -| 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 | -| cflow.cs:7:9:7:28 | ... ...; | cflow.cs:7:13:7:27 | Int32 a = ... | normal | -| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:7:13:7:27 | Int32 a = ... | normal | -| cflow.cs:7:17:7:20 | access to parameter args | cflow.cs:7:17:7:20 | access to parameter args | normal | -| cflow.cs:7:17:7:27 | access to property Length | cflow.cs:7:17:7:27 | access to property Length | normal | -| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:9:9:9:39 | ... = ... | normal | -| cflow.cs:9:9:9:40 | ...; | cflow.cs:9:9:9:39 | ... = ... | normal | -| cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:13:9:29 | object creation of type ControlFlow | normal | -| cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:9:13:9:39 | call to method Switch | normal | -| cflow.cs:9:38:9:38 | access to local variable a | cflow.cs:9:38:9:38 | access to local variable a | normal | -| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:11:13:11:17 | ... > ... | false | -| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:12:13:12:48 | call to method WriteLine | normal | -| cflow.cs:11:13:11:13 | access to local variable a | cflow.cs:11:13:11:13 | access to local variable a | normal | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | ... > ... | false | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | ... > ... | true | -| cflow.cs:11:17:11:17 | 3 | cflow.cs:11:17:11:17 | 3 | normal | -| cflow.cs:12:13:12:48 | call to method WriteLine | cflow.cs:12:13:12:48 | call to method WriteLine | normal | -| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:13:12:48 | call to method WriteLine | normal | -| cflow.cs:12:31:12:47 | "more than a few" | cflow.cs:12:31:12:47 | "more than a few" | normal | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:16:14:20 | ... > ... | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:16:14:16 | access to local variable a | normal | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | ... > ... | false | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | ... > ... | true | -| cflow.cs:14:20:14:20 | 0 | cflow.cs:14:20:14:20 | 0 | normal | -| cflow.cs:15:9:17:9 | {...} | cflow.cs:16:13:16:40 | call to method WriteLine | normal | -| cflow.cs:16:13:16:40 | call to method WriteLine | cflow.cs:16:13:16:40 | call to method WriteLine | normal | -| cflow.cs:16:13:16:41 | ...; | cflow.cs:16:13:16:40 | call to method WriteLine | normal | -| cflow.cs:16:31:16:31 | access to local variable a | cflow.cs:16:31:16:31 | access to local variable a | normal | -| cflow.cs:16:31:16:33 | ...-- | cflow.cs:16:31:16:33 | ...-- | normal | -| cflow.cs:16:31:16:39 | ... * ... | cflow.cs:16:31:16:39 | ... * ... | normal | -| cflow.cs:16:37:16:39 | 100 | cflow.cs:16:37:16:39 | 100 | normal | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:22:18:22:23 | ... < ... | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:21:13:21:35 | call to method WriteLine | normal | -| cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:21:13:21:35 | call to method WriteLine | normal | -| cflow.cs:21:13:21:36 | ...; | cflow.cs:21:13:21:35 | call to method WriteLine | normal | -| cflow.cs:21:31:21:34 | -... | cflow.cs:21:31:21:34 | -... | normal | -| cflow.cs:21:32:21:32 | access to local variable a | cflow.cs:21:32:21:32 | access to local variable a | normal | -| cflow.cs:21:32:21:34 | ...++ | cflow.cs:21:32:21:34 | ...++ | normal | -| cflow.cs:22:18:22:18 | access to local variable a | cflow.cs:22:18:22:18 | access to local variable a | normal | -| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | ... < ... | false | -| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | ... < ... | true | -| cflow.cs:22:22:22:23 | 10 | cflow.cs:22:22:22:23 | 10 | normal | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:25:24:31 | ... <= ... | false | -| cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:18:24:22 | Int32 i = ... | normal | -| cflow.cs:24:22:24:22 | 1 | cflow.cs:24:22:24:22 | 1 | normal | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:25:24:25 | access to local variable i | normal | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | ... <= ... | false | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | ... <= ... | true | -| cflow.cs:24:30:24:31 | 20 | cflow.cs:24:30:24:31 | 20 | normal | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:24:34:24:34 | access to local variable i | normal | -| cflow.cs:24:34:24:36 | ...++ | cflow.cs:24:34:24:36 | ...++ | normal | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:27:17:27:45 | call to method WriteLine | normal | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:29:17:29:41 | call to method WriteLine | normal | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:31:17:31:41 | call to method WriteLine | normal | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:33:17:33:36 | call to method WriteLine | normal | -| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:27:17:27:45 | call to method WriteLine | normal | -| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:29:17:29:41 | call to method WriteLine | normal | -| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:31:17:31:41 | call to method WriteLine | normal | -| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:33:17:33:36 | call to method WriteLine | normal | -| cflow.cs:26:17:26:17 | access to local variable i | cflow.cs:26:17:26:17 | access to local variable i | normal | -| cflow.cs:26:17:26:21 | ... % ... | cflow.cs:26:17:26:21 | ... % ... | normal | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | ... == ... | false | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | ... == ... | true | -| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:26:17:26:40 | ... && ... | false | -| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:26:17:26:40 | ... && ... | true | -| cflow.cs:26:21:26:21 | 3 | cflow.cs:26:21:26:21 | 3 | normal | -| cflow.cs:26:26:26:26 | 0 | cflow.cs:26:26:26:26 | 0 | normal | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | normal | -| cflow.cs:26:31:26:35 | ... % ... | cflow.cs:26:31:26:35 | ... % ... | normal | -| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | ... == ... | false | -| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | ... == ... | true | -| cflow.cs:26:35:26:35 | 5 | cflow.cs:26:35:26:35 | 5 | normal | -| cflow.cs:26:40:26:40 | 0 | cflow.cs:26:40:26:40 | 0 | normal | -| cflow.cs:27:17:27:45 | call to method WriteLine | cflow.cs:27:17:27:45 | call to method WriteLine | normal | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:17:27:45 | call to method WriteLine | normal | -| cflow.cs:27:35:27:44 | "FizzBuzz" | cflow.cs:27:35:27:44 | "FizzBuzz" | normal | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:29:17:29:41 | call to method WriteLine | normal | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:31:17:31:41 | call to method WriteLine | normal | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:33:17:33:36 | call to method WriteLine | normal | -| cflow.cs:28:22:28:22 | access to local variable i | cflow.cs:28:22:28:22 | access to local variable i | normal | -| cflow.cs:28:22:28:26 | ... % ... | cflow.cs:28:22:28:26 | ... % ... | normal | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | ... == ... | false | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | ... == ... | true | -| cflow.cs:28:26:28:26 | 3 | cflow.cs:28:26:28:26 | 3 | normal | -| cflow.cs:28:31:28:31 | 0 | cflow.cs:28:31:28:31 | 0 | normal | -| cflow.cs:29:17:29:41 | call to method WriteLine | cflow.cs:29:17:29:41 | call to method WriteLine | normal | -| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:17:29:41 | call to method WriteLine | normal | -| cflow.cs:29:35:29:40 | "Fizz" | cflow.cs:29:35:29:40 | "Fizz" | normal | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:31:17:31:41 | call to method WriteLine | normal | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:33:17:33:36 | call to method WriteLine | normal | -| cflow.cs:30:22:30:22 | access to local variable i | cflow.cs:30:22:30:22 | access to local variable i | normal | -| cflow.cs:30:22:30:26 | ... % ... | cflow.cs:30:22:30:26 | ... % ... | normal | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | ... == ... | false | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | ... == ... | true | -| cflow.cs:30:26:30:26 | 5 | cflow.cs:30:26:30:26 | 5 | normal | -| cflow.cs:30:31:30:31 | 0 | cflow.cs:30:31:30:31 | 0 | normal | -| cflow.cs:31:17:31:41 | call to method WriteLine | cflow.cs:31:17:31:41 | call to method WriteLine | normal | -| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:17:31:41 | call to method WriteLine | normal | -| cflow.cs:31:35:31:40 | "Buzz" | cflow.cs:31:35:31:40 | "Buzz" | normal | -| cflow.cs:33:17:33:36 | call to method WriteLine | cflow.cs:33:17:33:36 | call to method WriteLine | normal | -| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:17:33:36 | call to method WriteLine | normal | -| cflow.cs:33:35:33:35 | access to local variable i | cflow.cs:33:35:33:35 | access to local variable i | normal | -| cflow.cs:38:5:68:5 | {...} | cflow.cs:64:21:64:55 | throw ...; | throw(NullReferenceException) | -| cflow.cs:38:5:68:5 | {...} | cflow.cs:67:9:67:17 | return ...; | return | -| cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:47:18:47:18 | 3 | no-match | -| cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:49:17:49:22 | break; | normal [break] (0) | -| cflow.cs:39:17:39:17 | access to parameter a | cflow.cs:39:17:39:17 | access to parameter a | normal | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:18:41:18 | 1 | no-match | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:42:17:42:38 | call to method WriteLine | normal | -| cflow.cs:41:18:41:18 | 1 | cflow.cs:41:18:41:18 | 1 | match | -| cflow.cs:41:18:41:18 | 1 | cflow.cs:41:18:41:18 | 1 | no-match | -| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:42:17:42:38 | call to method WriteLine | normal | -| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:17:42:38 | call to method WriteLine | normal | -| cflow.cs:42:35:42:37 | "1" | cflow.cs:42:35:42:37 | "1" | normal | -| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:43:17:43:28 | goto case ...; | goto(2) | -| cflow.cs:43:27:43:27 | 2 | cflow.cs:43:27:43:27 | 2 | normal | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | no-match | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:45:17:45:38 | call to method WriteLine | normal | -| cflow.cs:44:18:44:18 | 2 | cflow.cs:44:18:44:18 | 2 | match | -| cflow.cs:44:18:44:18 | 2 | cflow.cs:44:18:44:18 | 2 | no-match | -| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:45:17:45:38 | call to method WriteLine | normal | -| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:17:45:38 | call to method WriteLine | normal | -| cflow.cs:45:35:45:37 | "2" | cflow.cs:45:35:45:37 | "2" | normal | -| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:46:17:46:28 | goto case ...; | goto(1) | -| cflow.cs:46:27:46:27 | 1 | cflow.cs:46:27:46:27 | 1 | normal | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | no-match | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:48:17:48:38 | call to method WriteLine | normal | -| cflow.cs:47:18:47:18 | 3 | cflow.cs:47:18:47:18 | 3 | match | -| cflow.cs:47:18:47:18 | 3 | cflow.cs:47:18:47:18 | 3 | no-match | -| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:48:17:48:38 | call to method WriteLine | normal | -| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:17:48:38 | call to method WriteLine | normal | -| cflow.cs:48:35:48:37 | "3" | cflow.cs:48:35:48:37 | "3" | normal | -| cflow.cs:49:17:49:22 | break; | cflow.cs:49:17:49:22 | break; | break | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:55:17:55:22 | break; | normal [break] (0) | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:58:17:58:22 | break; | normal [break] (0) | -| cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:51:17:51:17 | access to parameter a | normal | -| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:18:53:19 | 42 | no-match | -| cflow.cs:53:13:53:20 | case ...: | cflow.cs:54:17:54:47 | call to method WriteLine | normal | -| cflow.cs:53:18:53:19 | 42 | cflow.cs:53:18:53:19 | 42 | match | -| cflow.cs:53:18:53:19 | 42 | cflow.cs:53:18:53:19 | 42 | no-match | -| cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:54:17:54:47 | call to method WriteLine | normal | -| cflow.cs:54:17:54:48 | ...; | cflow.cs:54:17:54:47 | call to method WriteLine | normal | -| cflow.cs:54:35:54:46 | "The answer" | cflow.cs:54:35:54:46 | "The answer" | normal | -| cflow.cs:55:17:55:22 | break; | cflow.cs:55:17:55:22 | break; | break | -| cflow.cs:56:13:56:20 | default: | cflow.cs:57:17:57:51 | call to method WriteLine | normal | -| cflow.cs:57:17:57:51 | call to method WriteLine | cflow.cs:57:17:57:51 | call to method WriteLine | normal | -| cflow.cs:57:17:57:52 | ...; | cflow.cs:57:17:57:51 | call to method WriteLine | normal | -| cflow.cs:57:35:57:50 | "Not the answer" | cflow.cs:57:35:57:50 | "Not the answer" | normal | -| cflow.cs:58:17:58:22 | break; | cflow.cs:58:17:58:22 | break; | break | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:62:18:62:18 | 0 | no-match | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:64:21:64:55 | throw ...; | throw(NullReferenceException) | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:65:17:65:22 | break; | normal [break] (0) | -| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:60:17:60:32 | call to method Parse | normal | -| cflow.cs:60:27:60:31 | access to field Field | cflow.cs:60:27:60:31 | access to field Field | normal | -| cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | this access | normal | -| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:18:62:18 | 0 | no-match | -| cflow.cs:62:13:62:19 | case ...: | cflow.cs:63:21:63:34 | !... | false | -| cflow.cs:62:13:62:19 | case ...: | cflow.cs:64:21:64:55 | throw ...; | throw(NullReferenceException) | -| cflow.cs:62:18:62:18 | 0 | cflow.cs:62:18:62:18 | 0 | match | -| cflow.cs:62:18:62:18 | 0 | cflow.cs:62:18:62:18 | 0 | no-match | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | !... | false | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:64:21:64:55 | throw ...; | throw(NullReferenceException) | -| cflow.cs:63:21:63:34 | !... | cflow.cs:63:21:63:34 | !... | false | -| cflow.cs:63:21:63:34 | !... | cflow.cs:63:21:63:34 | !... | true | -| cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:23:63:27 | access to field Field | normal | -| cflow.cs:63:23:63:27 | this access | cflow.cs:63:23:63:27 | this access | normal | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | ... == ... | false | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | ... == ... | true | -| cflow.cs:63:32:63:33 | "" | cflow.cs:63:32:63:33 | "" | normal | -| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:64:21:64:55 | throw ...; | throw(NullReferenceException) | -| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | normal | -| cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | break; | break | -| cflow.cs:67:9:67:17 | return ...; | cflow.cs:67:9:67:17 | return ...; | return | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:16:67:16 | access to parameter a | normal | -| cflow.cs:71:5:82:5 | {...} | cflow.cs:73:13:73:19 | return ...; | return | -| cflow.cs:71:5:82:5 | {...} | cflow.cs:76:13:76:32 | call to method WriteLine | normal | -| cflow.cs:71:5:82:5 | {...} | cflow.cs:80:13:80:47 | call to method WriteLine | normal | -| cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:72:13:72:21 | ... == ... | false | -| cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:73:13:73:19 | return ...; | return | -| cflow.cs:72:13:72:13 | access to parameter s | cflow.cs:72:13:72:13 | access to parameter s | normal | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | ... == ... | false | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | ... == ... | true | -| cflow.cs:72:18:72:21 | null | cflow.cs:72:18:72:21 | null | normal | -| cflow.cs:73:13:73:19 | return ...; | cflow.cs:73:13:73:19 | return ...; | return | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:76:13:76:32 | call to method WriteLine | normal | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:80:13:80:47 | call to method WriteLine | normal | -| cflow.cs:74:13:74:13 | access to parameter s | cflow.cs:74:13:74:13 | access to parameter s | normal | -| cflow.cs:74:13:74:20 | access to property Length | cflow.cs:74:13:74:20 | access to property Length | normal | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | ... > ... | false | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | ... > ... | true | -| cflow.cs:74:24:74:24 | 0 | cflow.cs:74:24:74:24 | 0 | normal | -| cflow.cs:75:9:77:9 | {...} | cflow.cs:76:13:76:32 | call to method WriteLine | normal | -| cflow.cs:76:13:76:32 | call to method WriteLine | cflow.cs:76:13:76:32 | call to method WriteLine | normal | -| cflow.cs:76:13:76:33 | ...; | cflow.cs:76:13:76:32 | call to method WriteLine | normal | -| cflow.cs:76:31:76:31 | access to parameter s | cflow.cs:76:31:76:31 | access to parameter s | normal | -| cflow.cs:79:9:81:9 | {...} | cflow.cs:80:13:80:47 | call to method WriteLine | normal | -| cflow.cs:80:13:80:47 | call to method WriteLine | cflow.cs:80:13:80:47 | call to method WriteLine | normal | -| cflow.cs:80:13:80:48 | ...; | cflow.cs:80:13:80:47 | call to method WriteLine | normal | -| cflow.cs:80:31:80:46 | "" | cflow.cs:80:31:80:46 | "" | normal | -| cflow.cs:85:5:88:5 | {...} | cflow.cs:86:13:86:37 | ... && ... | false | -| cflow.cs:85:5:88:5 | {...} | cflow.cs:87:13:87:32 | call to method WriteLine | normal | -| cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:86:13:86:37 | ... && ... | false | -| cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:87:13:87:32 | call to method WriteLine | normal | -| cflow.cs:86:13:86:13 | access to parameter s | cflow.cs:86:13:86:13 | access to parameter s | normal | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | ... != ... | false | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | ... != ... | true | -| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:86:13:86:37 | ... && ... | false | -| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:86:13:86:37 | ... && ... | true | -| cflow.cs:86:18:86:21 | null | cflow.cs:86:18:86:21 | null | normal | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:26 | access to parameter s | normal | -| cflow.cs:86:26:86:33 | access to property Length | cflow.cs:86:26:86:33 | access to property Length | normal | -| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | ... > ... | false | -| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | ... > ... | true | -| cflow.cs:86:37:86:37 | 0 | cflow.cs:86:37:86:37 | 0 | normal | -| cflow.cs:87:13:87:32 | call to method WriteLine | cflow.cs:87:13:87:32 | call to method WriteLine | normal | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:13:87:32 | call to method WriteLine | normal | -| cflow.cs:87:31:87:31 | access to parameter s | cflow.cs:87:31:87:31 | access to parameter s | normal | -| cflow.cs:91:5:104:5 | {...} | cflow.cs:93:13:93:49 | throw ...; | throw(ArgumentNullException) | -| cflow.cs:91:5:104:5 | {...} | cflow.cs:102:13:102:29 | ... != ... | false | -| cflow.cs:91:5:104:5 | {...} | cflow.cs:103:13:103:35 | call to method WriteLine | normal | -| cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:92:13:92:27 | call to method Equals | false | -| cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:93:13:93:49 | throw ...; | throw(ArgumentNullException) | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | call to method Equals | false | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | call to method Equals | true | -| cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:92:20:92:20 | access to parameter s | normal | -| cflow.cs:92:23:92:26 | null | cflow.cs:92:23:92:26 | null | normal | -| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:93:13:93:49 | throw ...; | throw(ArgumentNullException) | -| cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | normal | -| cflow.cs:93:45:93:47 | "s" | cflow.cs:93:45:93:47 | "s" | normal | -| cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:94:9:94:28 | call to method WriteLine | normal | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:94:9:94:28 | call to method WriteLine | normal | -| cflow.cs:94:27:94:27 | access to parameter s | cflow.cs:94:27:94:27 | access to parameter s | normal | -| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:96:13:96:25 | ... != ... | false | -| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:97:13:97:54 | call to method WriteLine | normal | -| cflow.cs:96:13:96:17 | access to field Field | cflow.cs:96:13:96:17 | access to field Field | normal | -| cflow.cs:96:13:96:17 | this access | cflow.cs:96:13:96:17 | this access | normal | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | ... != ... | false | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | ... != ... | true | -| cflow.cs:96:22:96:25 | null | cflow.cs:96:22:96:25 | null | normal | -| cflow.cs:97:13:97:54 | call to method WriteLine | cflow.cs:97:13:97:54 | call to method WriteLine | normal | -| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:13:97:54 | call to method WriteLine | normal | -| cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:97:31:97:47 | object creation of type ControlFlow | normal | -| cflow.cs:97:31:97:53 | access to field Field | cflow.cs:97:31:97:53 | access to field Field | normal | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:13:99:25 | ... != ... | false | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:100:13:100:41 | call to method WriteLine | normal | -| cflow.cs:99:13:99:17 | access to field Field | cflow.cs:99:13:99:17 | access to field Field | normal | -| cflow.cs:99:13:99:17 | this access | cflow.cs:99:13:99:17 | this access | normal | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | ... != ... | false | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | ... != ... | true | -| cflow.cs:99:22:99:25 | null | cflow.cs:99:22:99:25 | null | normal | -| cflow.cs:100:13:100:41 | call to method WriteLine | cflow.cs:100:13:100:41 | call to method WriteLine | normal | -| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:13:100:41 | call to method WriteLine | normal | -| cflow.cs:100:31:100:34 | this access | cflow.cs:100:31:100:34 | this access | normal | -| cflow.cs:100:31:100:40 | access to field Field | cflow.cs:100:31:100:40 | access to field Field | normal | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:13:102:29 | ... != ... | false | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:103:13:103:35 | call to method WriteLine | normal | -| cflow.cs:102:13:102:16 | this access | cflow.cs:102:13:102:16 | this access | normal | -| cflow.cs:102:13:102:21 | access to property Prop | cflow.cs:102:13:102:21 | access to property Prop | normal | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | ... != ... | false | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | ... != ... | true | -| cflow.cs:102:26:102:29 | null | cflow.cs:102:26:102:29 | null | normal | -| cflow.cs:103:13:103:35 | call to method WriteLine | cflow.cs:103:13:103:35 | call to method WriteLine | normal | -| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:13:103:35 | call to method WriteLine | normal | -| cflow.cs:103:31:103:34 | access to property Prop | cflow.cs:103:31:103:34 | access to property Prop | normal | -| cflow.cs:103:31:103:34 | this access | cflow.cs:103:31:103:34 | this access | normal | -| cflow.cs:107:5:117:5 | {...} | cflow.cs:116:9:116:28 | call to method WriteLine | normal | -| cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:108:13:108:21 | ... != ... | false | -| cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:114:13:114:32 | call to method WriteLine | normal | -| cflow.cs:108:13:108:13 | access to parameter s | cflow.cs:108:13:108:13 | access to parameter s | normal | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | ... != ... | false | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | ... != ... | true | -| cflow.cs:108:18:108:21 | null | cflow.cs:108:18:108:21 | null | normal | -| cflow.cs:109:9:115:9 | {...} | cflow.cs:114:13:114:32 | call to method WriteLine | normal | -| cflow.cs:110:20:110:23 | true | cflow.cs:110:20:110:23 | true | true | -| cflow.cs:111:13:113:13 | {...} | cflow.cs:112:17:112:36 | call to method WriteLine | normal | -| cflow.cs:112:17:112:36 | call to method WriteLine | cflow.cs:112:17:112:36 | call to method WriteLine | normal | -| cflow.cs:112:17:112:37 | ...; | cflow.cs:112:17:112:36 | call to method WriteLine | normal | -| cflow.cs:112:35:112:35 | access to parameter s | cflow.cs:112:35:112:35 | access to parameter s | normal | -| cflow.cs:114:13:114:32 | call to method WriteLine | cflow.cs:114:13:114:32 | call to method WriteLine | normal | -| cflow.cs:114:13:114:33 | ...; | cflow.cs:114:13:114:32 | call to method WriteLine | normal | -| cflow.cs:114:31:114:31 | access to parameter s | cflow.cs:114:31:114:31 | access to parameter s | normal | -| cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:116:9:116:28 | call to method WriteLine | normal | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:116:9:116:28 | call to method WriteLine | normal | -| cflow.cs:116:27:116:27 | access to parameter s | cflow.cs:116:27:116:27 | access to parameter s | normal | -| cflow.cs:120:5:124:5 | {...} | cflow.cs:123:9:123:17 | return ...; | return | -| cflow.cs:121:9:121:18 | ... ...; | cflow.cs:121:13:121:17 | String x = ... | normal | -| cflow.cs:121:13:121:17 | String x = ... | cflow.cs:121:13:121:17 | String x = ... | normal | -| cflow.cs:121:17:121:17 | access to parameter s | cflow.cs:121:17:121:17 | access to parameter s | normal | -| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:122:9:122:19 | ... = ... | normal | -| cflow.cs:122:9:122:20 | ...; | cflow.cs:122:9:122:19 | ... = ... | normal | -| cflow.cs:122:13:122:13 | access to local variable x | cflow.cs:122:13:122:13 | access to local variable x | normal | -| cflow.cs:122:13:122:19 | ... + ... | cflow.cs:122:13:122:19 | ... + ... | normal | -| cflow.cs:122:17:122:19 | " " | cflow.cs:122:17:122:19 | " " | normal | -| cflow.cs:123:9:123:17 | return ...; | cflow.cs:123:9:123:17 | return ...; | return | -| cflow.cs:123:16:123:16 | access to local variable x | cflow.cs:123:16:123:16 | access to local variable x | normal | -| cflow.cs:127:23:127:60 | {...} | cflow.cs:127:25:127:58 | return ...; | return | -| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:25:127:58 | return ...; | return | -| cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:32:127:36 | access to field Field | normal | -| cflow.cs:127:32:127:36 | this access | cflow.cs:127:32:127:36 | this access | normal | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | ... == ... | false | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | ... == ... | true | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:32:127:57 | ... ? ... : ... | normal | -| cflow.cs:127:41:127:44 | null | cflow.cs:127:41:127:44 | null | normal | -| cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | normal | -| cflow.cs:127:53:127:57 | access to field Field | cflow.cs:127:53:127:57 | access to field Field | normal | -| cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | this access | normal | -| cflow.cs:127:66:127:83 | {...} | cflow.cs:127:68:127:80 | ... = ... | normal | -| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:72 | this access | normal | -| cflow.cs:127:68:127:72 | this access | cflow.cs:127:68:127:72 | this access | normal | -| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:68:127:80 | ... = ... | normal | -| 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 | -| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:9:131:17 | ... = ... | normal | -| cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:17 | ... = ... | normal | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:17:131:17 | access to parameter s | normal | -| cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:26:134:29 | call to constructor ControlFlow | normal | -| cflow.cs:134:31:134:31 | (...) ... | cflow.cs:134:31:134:31 | (...) ... | normal | -| cflow.cs:134:31:134:31 | access to parameter i | cflow.cs:134:31:134:31 | access to parameter i | normal | -| cflow.cs:134:31:134:36 | ... + ... | cflow.cs:134:31:134:36 | ... + ... | normal | -| cflow.cs:134:35:134:36 | "" | cflow.cs:134:35:134:36 | "" | normal | -| cflow.cs:134:39:134:41 | {...} | cflow.cs:134:39:134:41 | {...} | normal | -| cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:28:136:31 | call to constructor ControlFlow | normal | -| cflow.cs:136:33:136:33 | 0 | cflow.cs:136:33:136:33 | 0 | normal | -| cflow.cs:136:33:136:37 | ... + ... | cflow.cs:136:33:136:37 | ... + ... | normal | -| cflow.cs:136:37:136:37 | 1 | cflow.cs:136:37:136:37 | 1 | normal | -| cflow.cs:136:40:136:42 | {...} | cflow.cs:136:40:136:42 | {...} | normal | -| cflow.cs:139:5:142:5 | {...} | cflow.cs:141:9:141:17 | return ...; | return | -| cflow.cs:140:9:140:28 | call to method WriteLine | cflow.cs:140:9:140:28 | call to method WriteLine | normal | -| cflow.cs:140:9:140:29 | ...; | cflow.cs:140:9:140:28 | call to method WriteLine | normal | -| cflow.cs:140:27:140:27 | access to parameter x | cflow.cs:140:27:140:27 | access to parameter x | normal | -| cflow.cs:141:9:141:17 | return ...; | cflow.cs:141:9:141:17 | return ...; | return | -| cflow.cs:141:16:141:16 | access to parameter y | cflow.cs:141:16:141:16 | access to parameter y | normal | -| cflow.cs:144:37:144:54 | {...} | cflow.cs:144:39:144:52 | return ...; | return | -| cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:39:144:52 | return ...; | return | -| cflow.cs:144:46:144:46 | (...) ... | cflow.cs:144:46:144:46 | (...) ... | normal | -| cflow.cs:144:46:144:46 | access to parameter i | cflow.cs:144:46:144:46 | access to parameter i | normal | -| cflow.cs:144:46:144:51 | ... + ... | cflow.cs:144:46:144:51 | ... + ... | normal | -| cflow.cs:144:50:144:51 | "" | cflow.cs:144:50:144:51 | "" | normal | -| cflow.cs:144:60:144:62 | {...} | cflow.cs:144:60:144:62 | {...} | normal | -| cflow.cs:147:5:177:5 | {...} | cflow.cs:173:32:173:41 | ... < ... | false | -| cflow.cs:148:9:148:18 | ... ...; | cflow.cs:148:13:148:17 | Int32 x = ... | normal | -| cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:148:13:148:17 | Int32 x = ... | normal | -| cflow.cs:148:17:148:17 | 0 | cflow.cs:148:17:148:17 | 0 | normal | -| cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:149:16:149:21 | ... < ... | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:16:149:16 | access to local variable x | normal | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | ... < ... | false | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | ... < ... | true | -| cflow.cs:149:20:149:21 | 10 | cflow.cs:149:20:149:21 | 10 | normal | -| cflow.cs:149:24:149:26 | ++... | cflow.cs:149:24:149:26 | ++... | normal | -| cflow.cs:149:26:149:26 | access to local variable x | cflow.cs:149:26:149:26 | access to local variable x | normal | -| cflow.cs:150:13:150:32 | call to method WriteLine | cflow.cs:150:13:150:32 | call to method WriteLine | normal | -| cflow.cs:150:13:150:33 | ...; | cflow.cs:150:13:150:32 | call to method WriteLine | normal | -| cflow.cs:150:31:150:31 | access to local variable x | cflow.cs:150:31:150:31 | access to local variable x | normal | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:156:17:156:22 | break; | normal [break] (0) | -| cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:152:18:152:18 | access to local variable x | normal | -| cflow.cs:152:18:152:20 | ...++ | cflow.cs:152:18:152:20 | ...++ | normal | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | ... > ... | false | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:156:17:156:22 | break; | break | -| cflow.cs:154:13:154:32 | call to method WriteLine | cflow.cs:154:13:154:32 | call to method WriteLine | normal | -| cflow.cs:154:13:154:33 | ...; | cflow.cs:154:13:154:32 | call to method WriteLine | normal | -| cflow.cs:154:31:154:31 | access to local variable x | cflow.cs:154:31:154:31 | access to local variable x | normal | -| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:155:17:155:22 | ... > ... | false | -| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:156:17:156:22 | break; | break | -| cflow.cs:155:17:155:17 | access to local variable x | cflow.cs:155:17:155:17 | access to local variable x | normal | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | ... > ... | false | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | ... > ... | true | -| cflow.cs:155:21:155:22 | 20 | cflow.cs:155:21:155:22 | 20 | normal | -| cflow.cs:156:17:156:22 | break; | cflow.cs:156:17:156:22 | break; | break | -| cflow.cs:159:9:165:9 | for (...;...;...) ... | cflow.cs:164:17:164:22 | break; | normal [break] (0) | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | ... > ... | false | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:164:17:164:22 | break; | break | -| cflow.cs:161:13:161:32 | call to method WriteLine | cflow.cs:161:13:161:32 | call to method WriteLine | normal | -| cflow.cs:161:13:161:33 | ...; | cflow.cs:161:13:161:32 | call to method WriteLine | normal | -| cflow.cs:161:31:161:31 | access to local variable x | cflow.cs:161:31:161:31 | access to local variable x | normal | -| cflow.cs:162:13:162:13 | access to local variable x | cflow.cs:162:13:162:13 | access to local variable x | normal | -| cflow.cs:162:13:162:15 | ...++ | cflow.cs:162:13:162:15 | ...++ | normal | -| cflow.cs:162:13:162:16 | ...; | cflow.cs:162:13:162:15 | ...++ | normal | -| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:163:17:163:22 | ... > ... | false | -| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:164:17:164:22 | break; | break | -| cflow.cs:163:17:163:17 | access to local variable x | cflow.cs:163:17:163:17 | access to local variable x | normal | -| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | ... > ... | false | -| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | ... > ... | true | -| cflow.cs:163:21:163:22 | 30 | cflow.cs:163:21:163:22 | 30 | normal | -| cflow.cs:164:17:164:22 | break; | cflow.cs:164:17:164:22 | break; | break | -| cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:167:16:167:21 | ... < ... | false | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:16:167:16 | access to local variable x | normal | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | ... < ... | false | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | ... < ... | true | -| cflow.cs:167:20:167:21 | 40 | cflow.cs:167:20:167:21 | 40 | normal | -| cflow.cs:168:9:171:9 | {...} | cflow.cs:170:13:170:15 | ...++ | normal | -| cflow.cs:169:13:169:32 | call to method WriteLine | cflow.cs:169:13:169:32 | call to method WriteLine | normal | -| cflow.cs:169:13:169:33 | ...; | cflow.cs:169:13:169:32 | call to method WriteLine | normal | -| cflow.cs:169:31:169:31 | access to local variable x | cflow.cs:169:31:169:31 | access to local variable x | normal | -| cflow.cs:170:13:170:13 | access to local variable x | cflow.cs:170:13:170:13 | access to local variable x | normal | -| cflow.cs:170:13:170:15 | ...++ | cflow.cs:170:13:170:15 | ...++ | normal | -| cflow.cs:170:13:170:16 | ...; | cflow.cs:170:13:170:15 | ...++ | normal | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:32:173:41 | ... < ... | false | -| cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:18:173:22 | Int32 i = ... | normal | -| cflow.cs:173:22:173:22 | 0 | cflow.cs:173:22:173:22 | 0 | normal | -| cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:25:173:29 | Int32 j = ... | normal | -| cflow.cs:173:29:173:29 | 0 | cflow.cs:173:29:173:29 | 0 | normal | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:32:173:32 | access to local variable i | normal | -| cflow.cs:173:32:173:36 | ... + ... | cflow.cs:173:32:173:36 | ... + ... | normal | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | ... < ... | false | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | ... < ... | true | -| cflow.cs:173:36:173:36 | access to local variable j | cflow.cs:173:36:173:36 | access to local variable j | normal | -| cflow.cs:173:40:173:41 | 10 | cflow.cs:173:40:173:41 | 10 | normal | -| cflow.cs:173:44:173:44 | access to local variable i | cflow.cs:173:44:173:44 | access to local variable i | normal | -| cflow.cs:173:44:173:46 | ...++ | cflow.cs:173:44:173:46 | ...++ | normal | -| cflow.cs:173:49:173:49 | access to local variable j | cflow.cs:173:49:173:49 | access to local variable j | normal | -| cflow.cs:173:49:173:51 | ...++ | cflow.cs:173:49:173:51 | ...++ | normal | -| cflow.cs:174:9:176:9 | {...} | cflow.cs:175:13:175:36 | call to method WriteLine | normal | -| cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:175:13:175:36 | call to method WriteLine | normal | -| cflow.cs:175:13:175:37 | ...; | cflow.cs:175:13:175:36 | call to method WriteLine | normal | -| cflow.cs:175:31:175:31 | access to local variable i | cflow.cs:175:31:175:31 | access to local variable i | normal | -| cflow.cs:175:31:175:35 | ... + ... | cflow.cs:175:31:175:35 | ... + ... | normal | -| cflow.cs:175:35:175:35 | access to local variable j | cflow.cs:175:35:175:35 | access to local variable j | normal | -| cflow.cs:180:5:183:5 | {...} | cflow.cs:182:24:182:61 | Func z = ... | normal | -| cflow.cs:181:9:181:38 | ... ...; | cflow.cs:181:24:181:37 | Func y = ... | normal | -| cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:181:24:181:37 | Func y = ... | normal | -| cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:181:28:181:37 | (...) => ... | normal | -| cflow.cs:181:33:181:33 | access to parameter x | cflow.cs:181:33:181:33 | access to parameter x | normal | -| cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:33:181:37 | ... + ... | normal | -| cflow.cs:181:37:181:37 | 1 | cflow.cs:181:37:181:37 | 1 | normal | -| cflow.cs:182:9:182:62 | ... ...; | cflow.cs:182:24:182:61 | Func z = ... | normal | -| cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:182:24:182:61 | Func z = ... | normal | -| cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:182:28:182:61 | delegate(...) { ... } | normal | -| cflow.cs:182:45:182:61 | {...} | cflow.cs:182:47:182:59 | return ...; | return | -| cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:47:182:59 | return ...; | return | -| cflow.cs:182:54:182:54 | access to parameter x | cflow.cs:182:54:182:54 | access to parameter x | normal | -| cflow.cs:182:54:182:58 | ... + ... | cflow.cs:182:54:182:58 | ... + ... | normal | -| cflow.cs:182:58:182:58 | 1 | cflow.cs:182:58:182:58 | 1 | normal | -| cflow.cs:186:5:191:5 | {...} | cflow.cs:188:13:188:54 | call to method WriteLine | normal | -| cflow.cs:186:5:191:5 | {...} | cflow.cs:190:13:190:51 | call to method WriteLine | normal | -| cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:188:13:188:54 | call to method WriteLine | normal | -| cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:190:13:190:51 | call to method WriteLine | normal | -| cflow.cs:187:13:187:13 | 1 | cflow.cs:187:13:187:13 | 1 | normal | -| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:18 | ... == ... | false | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | false | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | false | -| cflow.cs:187:18:187:18 | 2 | cflow.cs:187:18:187:18 | 2 | normal | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:23:187:23 | 2 | normal | -| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:28 | ... == ... | false | -| cflow.cs:187:28:187:28 | 3 | cflow.cs:187:28:187:28 | 3 | normal | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:34 | 1 | normal | -| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:39 | ... == ... | false | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:49 | ... && ... | false | -| cflow.cs:187:39:187:39 | 3 | cflow.cs:187:39:187:39 | 3 | normal | -| cflow.cs:187:44:187:44 | 3 | cflow.cs:187:44:187:44 | 3 | normal | -| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:49 | ... == ... | false | -| cflow.cs:187:49:187:49 | 1 | cflow.cs:187:49:187:49 | 1 | normal | -| cflow.cs:188:13:188:54 | call to method WriteLine | cflow.cs:188:13:188:54 | call to method WriteLine | normal | -| cflow.cs:188:13:188:55 | ...; | cflow.cs:188:13:188:54 | call to method WriteLine | normal | -| cflow.cs:188:31:188:53 | "This shouldn't happen" | cflow.cs:188:31:188:53 | "This shouldn't happen" | normal | -| cflow.cs:190:13:190:51 | call to method WriteLine | cflow.cs:190:13:190:51 | call to method WriteLine | normal | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:190:13:190:51 | call to method WriteLine | normal | -| cflow.cs:190:31:190:50 | "This should happen" | cflow.cs:190:31:190:50 | "This should happen" | normal | -| cflow.cs:194:5:206:5 | {...} | cflow.cs:200:13:200:62 | ... \|\| ... | false | -| cflow.cs:194:5:206:5 | {...} | cflow.cs:203:17:203:38 | throw ...; | throw(Exception) | -| cflow.cs:195:9:195:57 | ... ...; | cflow.cs:195:13:195:56 | Boolean b = ... | normal | -| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:195:13:195:56 | Boolean b = ... | normal | -| cflow.cs:195:17:195:21 | access to field Field | cflow.cs:195:17:195:21 | access to field Field | normal | -| cflow.cs:195:17:195:21 | this access | cflow.cs:195:17:195:21 | this access | normal | -| cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:17:195:28 | access to property Length | normal | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | ... > ... | false | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | ... > ... | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:56 | ... && ... | normal | -| cflow.cs:195:32:195:32 | 0 | cflow.cs:195:32:195:32 | 0 | normal | -| cflow.cs:195:37:195:56 | !... | cflow.cs:195:37:195:56 | !... | normal | -| cflow.cs:195:39:195:43 | access to field Field | cflow.cs:195:39:195:43 | access to field Field | normal | -| cflow.cs:195:39:195:43 | this access | cflow.cs:195:39:195:43 | this access | normal | -| cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:39:195:50 | access to property Length | normal | -| cflow.cs:195:39:195:55 | ... == ... | cflow.cs:195:39:195:55 | ... == ... | normal | -| cflow.cs:195:55:195:55 | 1 | cflow.cs:195:55:195:55 | 1 | normal | -| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:197:13:197:47 | !... | false | -| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:198:13:198:48 | ... = ... | normal | -| cflow.cs:197:13:197:47 | !... | cflow.cs:197:13:197:47 | !... | false | -| cflow.cs:197:13:197:47 | !... | cflow.cs:197:13:197:47 | !... | true | -| cflow.cs:197:15:197:19 | access to field Field | cflow.cs:197:15:197:19 | access to field Field | normal | -| cflow.cs:197:15:197:19 | this access | cflow.cs:197:15:197:19 | this access | normal | -| cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:15:197:26 | access to property Length | normal | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | ... == ... | false | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | ... == ... | true | -| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:197:15:197:46 | ... ? ... : ... | false | -| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:197:15:197:46 | ... ? ... : ... | true | -| cflow.cs:197:31:197:31 | 0 | cflow.cs:197:31:197:31 | 0 | normal | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | false | false | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | true | true | -| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:198:13:198:48 | ... = ... | normal | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:13:198:48 | ... = ... | normal | -| cflow.cs:198:17:198:21 | access to field Field | cflow.cs:198:17:198:21 | access to field Field | normal | -| cflow.cs:198:17:198:21 | this access | cflow.cs:198:17:198:21 | this access | normal | -| cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:17:198:28 | access to property Length | normal | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | ... == ... | false | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | ... == ... | true | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:17:198:48 | ... ? ... : ... | normal | -| cflow.cs:198:33:198:33 | 0 | cflow.cs:198:33:198:33 | 0 | normal | -| cflow.cs:198:37:198:41 | false | cflow.cs:198:37:198:41 | false | normal | -| cflow.cs:198:45:198:48 | true | cflow.cs:198:45:198:48 | true | normal | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:62 | ... \|\| ... | false | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:203:17:203:38 | throw ...; | throw(Exception) | -| cflow.cs:200:13:200:32 | !... | cflow.cs:200:13:200:32 | !... | false | -| cflow.cs:200:13:200:32 | !... | cflow.cs:200:13:200:32 | !... | true | -| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:200:13:200:62 | ... \|\| ... | false | -| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:200:13:200:62 | ... \|\| ... | true | -| cflow.cs:200:15:200:19 | access to field Field | cflow.cs:200:15:200:19 | access to field Field | normal | -| cflow.cs:200:15:200:19 | this access | cflow.cs:200:15:200:19 | this access | normal | -| cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:15:200:26 | access to property Length | normal | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | ... == ... | false | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | ... == ... | true | -| cflow.cs:200:31:200:31 | 0 | cflow.cs:200:31:200:31 | 0 | normal | -| cflow.cs:200:37:200:62 | !... | cflow.cs:200:37:200:62 | !... | false | -| cflow.cs:200:37:200:62 | !... | cflow.cs:200:37:200:62 | !... | true | -| cflow.cs:200:38:200:62 | !... | cflow.cs:200:38:200:62 | !... | false | -| cflow.cs:200:38:200:62 | !... | cflow.cs:200:38:200:62 | !... | true | -| cflow.cs:200:40:200:44 | access to field Field | cflow.cs:200:40:200:44 | access to field Field | normal | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:44 | this access | normal | -| cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:40:200:51 | access to property Length | normal | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | ... == ... | false | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | ... == ... | true | -| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:200:40:200:61 | ... && ... | false | -| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:200:40:200:61 | ... && ... | true | -| cflow.cs:200:56:200:56 | 1 | cflow.cs:200:56:200:56 | 1 | normal | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | access to local variable b | false | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | access to local variable b | true | -| cflow.cs:201:9:205:9 | {...} | cflow.cs:203:17:203:38 | throw ...; | throw(Exception) | -| cflow.cs:202:13:204:13 | {...} | cflow.cs:203:17:203:38 | throw ...; | throw(Exception) | -| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:203:17:203:38 | throw ...; | throw(Exception) | -| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:23:203:37 | object creation of type Exception | normal | -| cflow.cs:209:5:222:5 | {...} | cflow.cs:219:17:219:22 | break; | normal [break] (0) | -| cflow.cs:209:5:222:5 | {...} | cflow.cs:221:18:221:34 | ... < ... | false | -| cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:219:17:219:22 | break; | normal [break] (0) | -| cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:221:18:221:34 | ... < ... | false | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:215:17:215:25 | continue; | continue | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:217:17:217:32 | ... < ... | false | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:219:17:219:22 | break; | break | -| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | access to field Field | normal | -| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | normal | -| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:212:13:212:24 | ... += ... | normal | -| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:24 | ... += ... | normal | -| cflow.cs:212:22:212:24 | "a" | cflow.cs:212:22:212:24 | "a" | normal | -| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:213:17:213:32 | ... > ... | false | -| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:215:17:215:25 | continue; | continue | -| cflow.cs:213:17:213:21 | access to field Field | cflow.cs:213:17:213:21 | access to field Field | normal | -| cflow.cs:213:17:213:21 | this access | cflow.cs:213:17:213:21 | this access | normal | -| cflow.cs:213:17:213:28 | access to property Length | cflow.cs:213:17:213:28 | access to property Length | normal | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | ... > ... | false | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | ... > ... | true | -| cflow.cs:213:32:213:32 | 0 | cflow.cs:213:32:213:32 | 0 | normal | -| cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | continue; | continue | -| cflow.cs:215:17:215:25 | continue; | cflow.cs:215:17:215:25 | continue; | continue | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:32 | ... < ... | false | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:219:17:219:22 | break; | break | -| cflow.cs:217:17:217:21 | access to field Field | cflow.cs:217:17:217:21 | access to field Field | normal | -| cflow.cs:217:17:217:21 | this access | cflow.cs:217:17:217:21 | this access | normal | -| cflow.cs:217:17:217:28 | access to property Length | cflow.cs:217:17:217:28 | access to property Length | normal | -| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | ... < ... | false | -| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | ... < ... | true | -| cflow.cs:217:32:217:32 | 0 | cflow.cs:217:32:217:32 | 0 | normal | -| cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | break; | break | -| cflow.cs:219:17:219:22 | break; | cflow.cs:219:17:219:22 | break; | break | -| cflow.cs:221:18:221:22 | access to field Field | cflow.cs:221:18:221:22 | access to field Field | normal | -| cflow.cs:221:18:221:22 | this access | cflow.cs:221:18:221:22 | this access | normal | -| cflow.cs:221:18:221:29 | access to property Length | cflow.cs:221:18:221:29 | access to property Length | normal | -| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | ... < ... | false | -| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | ... < ... | true | -| cflow.cs:221:33:221:34 | 10 | cflow.cs:221:33:221:34 | 10 | normal | -| cflow.cs:225:5:238:5 | {...} | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | empty | -| cflow.cs:225:5:238:5 | {...} | cflow.cs:235:17:235:22 | break; | normal [break] (0) | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | empty | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:235:17:235:22 | break; | normal [break] (0) | -| cflow.cs:226:22:226:22 | String x | cflow.cs:226:22:226:22 | String x | normal | -| cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:27:226:64 | call to method Repeat | normal | -| cflow.cs:226:57:226:59 | "a" | cflow.cs:226:57:226:59 | "a" | normal | -| cflow.cs:226:62:226:63 | 10 | cflow.cs:226:62:226:63 | 10 | normal | -| cflow.cs:227:9:237:9 | {...} | cflow.cs:231:17:231:25 | continue; | continue | -| cflow.cs:227:9:237:9 | {...} | cflow.cs:233:17:233:32 | ... < ... | false | -| cflow.cs:227:9:237:9 | {...} | cflow.cs:235:17:235:22 | break; | break | -| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | access to field Field | normal | -| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | normal | -| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:228:13:228:22 | ... += ... | normal | -| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:22 | ... += ... | normal | -| cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:22:228:22 | access to local variable x | normal | -| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:229:17:229:32 | ... > ... | false | -| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:231:17:231:25 | continue; | continue | -| cflow.cs:229:17:229:21 | access to field Field | cflow.cs:229:17:229:21 | access to field Field | normal | -| cflow.cs:229:17:229:21 | this access | cflow.cs:229:17:229:21 | this access | normal | -| cflow.cs:229:17:229:28 | access to property Length | cflow.cs:229:17:229:28 | access to property Length | normal | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | ... > ... | false | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | ... > ... | true | -| cflow.cs:229:32:229:32 | 0 | cflow.cs:229:32:229:32 | 0 | normal | -| cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | continue; | continue | -| cflow.cs:231:17:231:25 | continue; | cflow.cs:231:17:231:25 | continue; | continue | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:32 | ... < ... | false | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:235:17:235:22 | break; | break | -| cflow.cs:233:17:233:21 | access to field Field | cflow.cs:233:17:233:21 | access to field Field | normal | -| cflow.cs:233:17:233:21 | this access | cflow.cs:233:17:233:21 | this access | normal | -| cflow.cs:233:17:233:28 | access to property Length | cflow.cs:233:17:233:28 | access to property Length | normal | -| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | ... < ... | false | -| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | ... < ... | true | -| cflow.cs:233:32:233:32 | 0 | cflow.cs:233:32:233:32 | 0 | normal | -| cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | break; | break | -| cflow.cs:235:17:235:22 | break; | cflow.cs:235:17:235:22 | break; | break | -| cflow.cs:241:5:259:5 | {...} | cflow.cs:244:31:244:41 | goto ...; | goto(Label) | -| cflow.cs:241:5:259:5 | {...} | cflow.cs:252:17:252:22 | break; | normal [break] (0) | -| cflow.cs:241:5:259:5 | {...} | cflow.cs:254:17:254:27 | goto ...; | goto(Label) | -| cflow.cs:241:5:259:5 | {...} | cflow.cs:257:17:257:22 | break; | normal [break] (0) | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:5:242:9 | Label: | normal | -| cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:16:242:36 | !... | false | -| cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:39:242:41 | {...} | normal | -| cflow.cs:242:16:242:36 | !... | cflow.cs:242:16:242:36 | !... | false | -| cflow.cs:242:16:242:36 | !... | cflow.cs:242:16:242:36 | !... | true | -| cflow.cs:242:17:242:36 | !... | cflow.cs:242:17:242:36 | !... | false | -| cflow.cs:242:17:242:36 | !... | cflow.cs:242:17:242:36 | !... | true | -| cflow.cs:242:19:242:23 | access to field Field | cflow.cs:242:19:242:23 | access to field Field | normal | -| cflow.cs:242:19:242:23 | this access | cflow.cs:242:19:242:23 | this access | normal | -| cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:19:242:30 | access to property Length | normal | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | ... == ... | false | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | ... == ... | true | -| cflow.cs:242:35:242:35 | 0 | cflow.cs:242:35:242:35 | 0 | normal | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:39:242:41 | {...} | normal | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:13:244:28 | ... > ... | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:31:244:41 | goto ...; | goto(Label) | -| cflow.cs:244:13:244:17 | access to field Field | cflow.cs:244:13:244:17 | access to field Field | normal | -| cflow.cs:244:13:244:17 | this access | cflow.cs:244:13:244:17 | this access | normal | -| cflow.cs:244:13:244:24 | access to property Length | cflow.cs:244:13:244:24 | access to property Length | normal | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | ... > ... | false | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | ... > ... | true | -| cflow.cs:244:28:244:28 | 0 | cflow.cs:244:28:244:28 | 0 | normal | -| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:244:31:244:41 | goto ...; | goto(Label) | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:252:17:252:22 | break; | normal [break] (0) | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:254:17:254:27 | goto ...; | goto(Label) | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:257:17:257:22 | break; | normal [break] (0) | -| cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:21 | access to field Field | normal | -| cflow.cs:246:17:246:21 | this access | cflow.cs:246:17:246:21 | this access | normal | -| cflow.cs:246:17:246:28 | access to property Length | cflow.cs:246:17:246:28 | access to property Length | normal | -| cflow.cs:246:17:246:32 | ... + ... | cflow.cs:246:17:246:32 | ... + ... | normal | -| cflow.cs:246:32:246:32 | 3 | cflow.cs:246:32:246:32 | 3 | normal | -| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:18:248:18 | 0 | no-match | -| cflow.cs:248:13:248:19 | case ...: | cflow.cs:249:17:249:29 | goto default; | goto(default) | -| cflow.cs:248:18:248:18 | 0 | cflow.cs:248:18:248:18 | 0 | match | -| cflow.cs:248:18:248:18 | 0 | cflow.cs:248:18:248:18 | 0 | no-match | -| cflow.cs:249:17:249:29 | goto default; | cflow.cs:249:17:249:29 | goto default; | goto(default) | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:18:250:18 | 1 | no-match | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:251:17:251:36 | call to method WriteLine | normal | -| cflow.cs:250:18:250:18 | 1 | cflow.cs:250:18:250:18 | 1 | match | -| cflow.cs:250:18:250:18 | 1 | cflow.cs:250:18:250:18 | 1 | no-match | -| cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:251:17:251:36 | call to method WriteLine | normal | -| cflow.cs:251:17:251:37 | ...; | cflow.cs:251:17:251:36 | call to method WriteLine | normal | -| cflow.cs:251:35:251:35 | 1 | cflow.cs:251:35:251:35 | 1 | normal | -| cflow.cs:252:17:252:22 | break; | cflow.cs:252:17:252:22 | break; | break | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:18:253:18 | 2 | no-match | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:254:17:254:27 | goto ...; | goto(Label) | -| cflow.cs:253:18:253:18 | 2 | cflow.cs:253:18:253:18 | 2 | match | -| cflow.cs:253:18:253:18 | 2 | cflow.cs:253:18:253:18 | 2 | no-match | -| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:254:17:254:27 | goto ...; | goto(Label) | -| cflow.cs:255:13:255:20 | default: | cflow.cs:256:17:256:36 | call to method WriteLine | normal | -| cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:256:17:256:36 | call to method WriteLine | normal | -| cflow.cs:256:17:256:37 | ...; | cflow.cs:256:17:256:36 | call to method WriteLine | normal | -| cflow.cs:256:35:256:35 | 0 | cflow.cs:256:35:256:35 | 0 | normal | -| cflow.cs:257:17:257:22 | break; | cflow.cs:257:17:257:22 | break; | break | -| cflow.cs:262:5:277:5 | {...} | cflow.cs:275:13:275:41 | call to method WriteLine | normal | -| cflow.cs:262:5:277:5 | {...} | cflow.cs:275:13:275:41 | call to method WriteLine | return [normal] (0) | -| cflow.cs:262:5:277:5 | {...} | cflow.cs:275:13:275:41 | call to method WriteLine | throw(Exception) [normal] (0) | -| cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:263:9:263:23 | yield return ...; | normal | -| cflow.cs:263:22:263:22 | 0 | cflow.cs:263:22:263:22 | 0 | normal | -| cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:264:25:264:30 | ... < ... | false | -| cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:18:264:22 | Int32 i = ... | normal | -| cflow.cs:264:22:264:22 | 1 | cflow.cs:264:22:264:22 | 1 | normal | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:25 | access to local variable i | normal | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | ... < ... | false | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | ... < ... | true | -| cflow.cs:264:29:264:30 | 10 | cflow.cs:264:29:264:30 | 10 | normal | -| cflow.cs:264:33:264:33 | access to local variable i | cflow.cs:264:33:264:33 | access to local variable i | normal | -| cflow.cs:264:33:264:35 | ...++ | cflow.cs:264:33:264:35 | ...++ | normal | -| cflow.cs:265:9:267:9 | {...} | cflow.cs:266:13:266:27 | yield return ...; | normal | -| cflow.cs:266:13:266:27 | yield return ...; | cflow.cs:266:13:266:27 | yield return ...; | normal | -| cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:266:26:266:26 | access to local variable i | normal | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:275:13:275:41 | call to method WriteLine | normal | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:275:13:275:41 | call to method WriteLine | return [normal] (0) | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:275:13:275:41 | call to method WriteLine | throw(Exception) [normal] (0) | -| cflow.cs:269:9:272:9 | {...} | cflow.cs:270:13:270:24 | yield break; | return | -| cflow.cs:269:9:272:9 | {...} | cflow.cs:271:13:271:42 | call to method WriteLine | normal | -| cflow.cs:269:9:272:9 | {...} | cflow.cs:271:13:271:42 | call to method WriteLine | throw(Exception) | -| cflow.cs:270:13:270:24 | yield break; | cflow.cs:270:13:270:24 | yield break; | return | -| cflow.cs:271:13:271:42 | call to method WriteLine | cflow.cs:271:13:271:42 | call to method WriteLine | normal | -| cflow.cs:271:13:271:42 | call to method WriteLine | cflow.cs:271:13:271:42 | call to method WriteLine | throw(Exception) | -| cflow.cs:271:13:271:43 | ...; | cflow.cs:271:13:271:42 | call to method WriteLine | normal | -| cflow.cs:271:13:271:43 | ...; | cflow.cs:271:13:271:42 | call to method WriteLine | throw(Exception) | -| cflow.cs:271:31:271:41 | "dead code" | cflow.cs:271:31:271:41 | "dead code" | normal | -| cflow.cs:274:9:276:9 | {...} | cflow.cs:275:13:275:41 | call to method WriteLine | normal | -| 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 | -| cflow.cs:284:39:284:41 | {...} | cflow.cs:284:39:284:41 | {...} | normal | -| cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | normal | -| cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:34:286:34 | access to parameter i | normal | -| 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 | -| cflow.cs:300:9:300:73 | ...; | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | normal | -| cflow.cs:300:38:300:38 | 0 | cflow.cs:300:38:300:38 | 0 | normal | -| cflow.cs:300:44:300:51 | !... | cflow.cs:300:44:300:51 | !... | false | -| cflow.cs:300:44:300:51 | !... | cflow.cs:300:44:300:51 | !... | true | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:64 | ... && ... | normal | -| cflow.cs:300:46:300:46 | access to parameter i | cflow.cs:300:46:300:46 | access to parameter i | normal | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | ... > ... | false | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | ... > ... | true | -| cflow.cs:300:50:300:50 | 0 | cflow.cs:300:50:300:50 | 0 | normal | -| cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:56:300:56 | access to parameter s | normal | -| cflow.cs:300:56:300:64 | ... != ... | cflow.cs:300:56:300:64 | ... != ... | normal | -| 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 | -| cflow.cs:308:9:308:21 | ... ...; | cflow.cs:308:16:308:20 | Object x = ... | normal | -| cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:308:16:308:20 | Object x = ... | normal | -| cflow.cs:308:20:308:20 | access to parameter o | cflow.cs:308:20:308:20 | access to parameter o | normal | -| cflow.cs:309:9:309:17 | return ...; | cflow.cs:309:9:309:17 | return ...; | return | -| cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:309:16:309:16 | access to local variable x | normal | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.ql b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.ql deleted file mode 100644 index d51cbcb82c4..00000000000 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.ql +++ /dev/null @@ -1,8 +0,0 @@ -import csharp -import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl -private import semmle.code.csharp.controlflow.internal.Completion -import Common - -from SourceControlFlowElement cfe, ControlFlowElement last, Completion c -where last(cfe, last, c) -select cfe, last, c diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.ql b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.ql index 6915c2a546c..b8026566563 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.ql @@ -1,3 +1,3 @@ import csharp import Common -import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl::TestOutput +import ControlFlow::TestOutput diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql index 6bea23905ea..ce2a5b9d60d 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql @@ -1,8 +1,6 @@ import csharp import ControlFlow import Common -import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as Impl -import semmle.code.csharp.controlflow.internal.Splitting as Splitting query predicate entryPoint(Callable c, SourceControlFlowElement cfn) { c.getEntryPoint().getASuccessor() = cfn.getControlFlowNode() diff --git a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql index c54509c762a..65d471b49eb 100644 --- a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql +++ b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.ql @@ -2,8 +2,6 @@ import csharp query predicate edges(ControlFlowNode node1, ControlFlowNode node2, string label, string value) { label = "semmle.label" and - exists(ControlFlow::SuccessorType t | - node2 = node1.getASuccessor(t) and value = t.toString() - ) and + exists(ControlFlow::SuccessorType t | node2 = node1.getASuccessor(t) and value = t.toString()) and node1.getEnclosingCallable().hasName("NullCoalescing") } diff --git a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql index a9b2201a479..927d21e8ec7 100644 --- a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql +++ b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.ql @@ -2,8 +2,6 @@ import csharp query predicate edges(ControlFlowNode node1, ControlFlowNode node2, string label, string value) { label = "semmle.label" and - exists(ControlFlow::SuccessorType t | - node2 = node1.getASuccessor(t) and value = t.toString() - ) and + exists(ControlFlow::SuccessorType t | node2 = node1.getASuccessor(t) and value = t.toString()) and node1.getEnclosingCallable().hasName("TestUsingDeclarations") } diff --git a/csharp/ql/test/library-tests/obinit/ObInit.ql b/csharp/ql/test/library-tests/obinit/ObInit.ql index cfd21d14b5e..a6c58b33dad 100644 --- a/csharp/ql/test/library-tests/obinit/ObInit.ql +++ b/csharp/ql/test/library-tests/obinit/ObInit.ql @@ -1,8 +1,4 @@ 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 } @@ -10,19 +6,21 @@ query predicate call(Call c, ObjectInitMethod m, Callable src) { c.getTarget() = m and c.getEnclosingCallable() = src } -predicate scope(Callable callable, AstNode n, int i) { +predicate scope(Callable callable, ControlFlowNode n, int i) { (callable instanceof ObjectInitMethod or callable instanceof Constructor) and - scopeFirst(callable, n) and + n.(ControlFlow::EntryNode).getEnclosingCallable() = callable and i = 0 or - exists(AstNode prev | + exists(ControlFlowNode prev | scope(callable, prev, i - 1) and - succ(prev, n, _) and + n = prev.getASuccessor() and i < 30 ) } -query predicate cfg(Callable callable, AstNode pred, AstNode succ, Completion c, int i) { +query predicate cfg( + Callable callable, ControlFlowNode pred, ControlFlowNode succ, ControlFlow::SuccessorType c, int i +) { scope(callable, pred, i) and - succ(pred, succ, c) + pred.getASuccessor(c) = succ } diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 03ee8988b38..d52f423c080 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -894,7 +894,7 @@ module Make0 Ast> { override string toString() { result = tag + " " + n } } - final private class EntryNodeImpl extends NodeImpl, TEntryNode { + final class EntryNodeImpl extends NodeImpl, TEntryNode { private Callable c; EntryNodeImpl() { this = TEntryNode(c) } @@ -933,7 +933,7 @@ module Make0 Ast> { } /** A control flow node indicating normal termination of a callable. */ - final private class NormalExitNodeImpl extends AnnotatedExitNodeImpl { + final class NormalExitNodeImpl extends AnnotatedExitNodeImpl { NormalExitNodeImpl() { this = TAnnotatedExitNode(_, true) } } @@ -1254,14 +1254,21 @@ module Make0 Ast> { ) } + private predicate hasSpecificCallableSteps(Callable c) { + exists(EntryNodeImpl entry | entry.getEnclosingCallable() = c and Input2::step(entry, _)) + } + /** Holds if there is a local non-abrupt step from `n1` to `n2`. */ private predicate explicitStep(PreControlFlowNode n1, PreControlFlowNode n2) { Input2::step(n1, n2) or exists(Callable c | + // Allow language-specific overrides for the default entry and exit edges. + not hasSpecificCallableSteps(c) and n1.(EntryNodeImpl).getEnclosingCallable() = c and n2.isBefore(callableGetBody(c)) or + not hasSpecificCallableSteps(c) and n1.isAfter(callableGetBody(c)) and n2.(NormalExitNodeImpl).getEnclosingCallable() = c or @@ -1869,6 +1876,7 @@ module Make0 Ast> { /** A control flow node indicating the termination of a callable. */ final class ExitNode extends ControlFlowNode, ExitNodeImpl { } + import SuccessorType import Additional } From b1790335c09febc0d6bb1d7383b688511ad38ad0 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 20 Mar 2026 13:20:11 +0100 Subject: [PATCH 060/208] C#: Fix test. --- .../dataflow/defuse/useUseEquivalence.ql | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql index ced1bccdbb2..4c189ca0274 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql @@ -32,17 +32,11 @@ private TLocalScopeVariableReadOrSsaDef getANextReadOrDef(TLocalScopeVariableRea result = TLocalScopeVariableRead(read.getANextRead()) or not exists(read.getANextRead()) and - exists(Ssa::Definition ssaDef, Ssa::PhiNode phi, ControlFlowNode cfn, BasicBlock bb, int i | - ssaDef.getARead() = read - | + exists(Ssa::Definition ssaDef, Ssa::PhiNode phi, BasicBlock bb | + ssaDef.getARead() = read and phi.getAnInput() = ssaDef and - phi.definesAt(_, bb, i) and - cfn = read.getAReachableElement().getAControlFlowNode() and - ( - cfn = bb.getNode(i) - or - cfn = bb.getFirstNode() and i < 0 - ) and + phi.definesAt(_, bb, _) and + read.getBasicBlock().getASuccessor+() = bb and result = TSsaDefinition(phi) ) ) From 700d56f3abdf505118b1e37b9993ae98e83455d6 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 20 Mar 2026 15:34:35 +0100 Subject: [PATCH 061/208] C#: Fix UncheckedCastInEquals. --- csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql index 94eb9d909d3..f86b97ef302 100644 --- a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql +++ b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql @@ -13,18 +13,12 @@ import csharp import semmle.code.csharp.frameworks.System -private predicate equalsMethodChild(EqualsMethod equals, Element child) { - child = equals - or - equalsMethodChild(equals, child.getParent()) -} - predicate nodeBeforeParameterAccess(ControlFlowNode node) { exists(EqualsMethod equals | equals.getBody().getControlFlowNode() = node) or exists(EqualsMethod equals, Parameter param, ControlFlowNode mid | equals.getParameter(0) = param and - equalsMethodChild(equals, any(ControlFlowElement e | e.getControlFlowNode() = mid)) and + equals = mid.getEnclosingCallable() and nodeBeforeParameterAccess(mid) and not param.getAnAccess().getControlFlowNode() = mid and mid.getASuccessor() = node From ac88b73b65e8abbb6bfcf525d5e6f802cadefb1a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 24 Mar 2026 13:24:18 +0100 Subject: [PATCH 062/208] C#: Bugfix in enclosing callable. --- csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll b/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll index 8102b4a0288..1aa558194e3 100644 --- a/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll +++ b/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll @@ -129,13 +129,6 @@ private module Cached { result = parent.getAChildStmt() } - pragma[inline] - private ControlFlowElement enclosingStart(ControlFlowElement cfe) { - result = cfe - or - getAChild(result).(AnonymousFunctionExpr) = cfe - } - private predicate parent(ControlFlowElement child, ExprOrStmtParent parent) { child = getAChild(parent) and not child = getBody(_) @@ -145,7 +138,7 @@ private module Cached { cached predicate enclosingBody(ControlFlowElement cfe, ControlFlowElement body) { body = getBody(_) and - parent*(enclosingStart(cfe), body) + parent*(cfe, body) } /** Holds if the enclosing callable of `cfe` is `c`. */ @@ -153,7 +146,7 @@ private module Cached { predicate enclosingCallable(ControlFlowElement cfe, Callable c) { enclosingBody(cfe, getBody(c)) or - parent*(enclosingStart(cfe), c.(Constructor).getInitializer()) + parent*(cfe, c.(Constructor).getInitializer()) or parent*(cfe, c.(Constructor).getObjectInitializerCall()) or From 093eb57ad0ba3b56a4fa354efbc28558408aeb18 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 26 Mar 2026 13:20:14 +0100 Subject: [PATCH 063/208] C#: Fix CFG position of property setter calls. --- .../code/csharp/dataflow/internal/SsaImpl.qll | 15 +++--- .../semmle/code/csharp/dispatch/Dispatch.qll | 37 +++++++++++++-- .../ql/lib/semmle/code/csharp/exprs/Call.qll | 46 +++++++++++++------ 3 files changed, 74 insertions(+), 24 deletions(-) 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 3924bd7fb5a..d4842ba89cc 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -270,15 +270,17 @@ private module CallGraph { * * the constructor call `new Lazy(M2)` includes `M2` as a target. */ - Callable getARuntimeTarget(Call c, boolean libraryDelegateCall) { + Callable getARuntimeTarget(Call c, ControlFlowNode n, boolean libraryDelegateCall) { // Non-delegate call: use dispatch library exists(DispatchCall dc | dc.getCall() = c | + n = dc.getControlFlowNode() and result = dc.getADynamicTarget().getUnboundDeclaration() and libraryDelegateCall = false ) or // Delegate call: use simple analysis - result = SimpleDelegateAnalysis::getARuntimeDelegateTarget(c, libraryDelegateCall) + result = SimpleDelegateAnalysis::getARuntimeDelegateTarget(c, libraryDelegateCall) and + n = c.getControlFlowNode() } private module SimpleDelegateAnalysis { @@ -465,7 +467,7 @@ private module CallGraph { /** Holds if `(c1,c2)` is an edge in the call graph. */ predicate callEdge(Callable c1, Callable c2) { - exists(Call c | c.getEnclosingCallable() = c1 and c2 = getARuntimeTarget(c, _)) + exists(Call c | c.getEnclosingCallable() = c1 and c2 = getARuntimeTarget(c, _, _)) } } @@ -599,7 +601,7 @@ private module FieldOrPropsImpl { private predicate intraInstanceCallEdge(Callable c1, InstanceCallable c2) { exists(Call c | c.getEnclosingCallable() = c1 and - c2 = getARuntimeTarget(c, _) and + c2 = getARuntimeTarget(c, _, _) and c.(QualifiableExpr).targetIsLocalInstance() ) } @@ -615,8 +617,7 @@ private module FieldOrPropsImpl { pragma[noinline] predicate callAt(BasicBlock bb, int i, Call call) { - bb.getNode(i) = call.getAControlFlowNode() and - getARuntimeTarget(call, _).hasBody() + getARuntimeTarget(call, bb.getNode(i), _).hasBody() } /** @@ -635,7 +636,7 @@ private module FieldOrPropsImpl { Call call, FieldOrPropSourceVariable fps, FieldOrProp fp, Callable c, boolean fresh ) { updateCandidate(_, _, fps, call) and - c = getARuntimeTarget(call, _) and + c = getARuntimeTarget(call, _, _) and fp = fps.getAssignable() and if c instanceof Constructor then fresh = true else fresh = false } diff --git a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll index 770fab65f54..10ea1c8eb52 100644 --- a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll @@ -20,6 +20,9 @@ class DispatchCall extends Internal::TDispatchCall { /** Gets the underlying expression of this call. */ Expr getCall() { result = Internal::getCall(this) } + /** Gets the control flow node of this call. */ + ControlFlowNode getControlFlowNode() { result = Internal::getControlFlowNode(this) } + /** Gets the `i`th argument of this call. */ Expr getArgument(int i) { result = Internal::getArgument(this, i) } @@ -90,7 +93,12 @@ private module Internal { not mc.isLateBound() and not isExtensionAccessorCall(mc) } or - TDispatchAccessorCall(AccessorCall ac) or + TDispatchAccessorCall(AccessorCall ac, boolean isRead) { + // For compound assignments an AccessorCall can be both a read and a write + ac instanceof AssignableRead and isRead = true + or + ac instanceof AssignableWrite and isRead = false + } or TDispatchOperatorCall(OperatorCall oc) { not oc.isLateBound() } or TDispatchReflectionCall(MethodCall mc, string name, Expr object, Expr qualifier, int args) { isReflectionCall(mc, name, object, qualifier, args) @@ -117,6 +125,11 @@ private module Internal { cached Expr getCall(DispatchCall dc) { result = dc.(DispatchCallImpl).getCall() } + cached + ControlFlowNode getControlFlowNode(DispatchCall dc) { + result = dc.(DispatchCallImpl).getControlFlowNode() + } + cached Expr getArgument(DispatchCall dc, int i) { result = dc.(DispatchCallImpl).getArgument(i) } @@ -224,6 +237,9 @@ private module Internal { /** Gets the underlying expression of this call. */ abstract Expr getCall(); + /** Gets the control flow node of this call. */ + ControlFlowNode getControlFlowNode() { result = this.getCall().getControlFlowNode() } + /** Gets the `i`th argument of this call. */ abstract Expr getArgument(int i); @@ -877,13 +893,28 @@ private module Internal { * into account. */ private class DispatchAccessorCall extends DispatchOverridableCall, TDispatchAccessorCall { - override AccessorCall getCall() { this = TDispatchAccessorCall(result) } + private predicate isRead() { this = TDispatchAccessorCall(_, true) } + + override ControlFlowNode getControlFlowNode() { + if this.isRead() + then result = this.getCall().getControlFlowNode() + else + exists(AssignableDefinition def | + def.getTargetAccess() = this.getCall() and result = def.getExpr().getControlFlowNode() + ) + } + + override AccessorCall getCall() { this = TDispatchAccessorCall(result, _) } override Expr getArgument(int i) { result = this.getCall().getArgument(i) } override Expr getQualifier() { result = this.getCall().(MemberAccess).getQualifier() } - override Accessor getAStaticTarget() { result = this.getCall().getTarget() } + override Accessor getAStaticTarget() { + if this.isRead() + then result = this.getCall().getReadTarget() + else result = this.getCall().getWriteTarget() + } override RuntimeAccessor getADynamicTarget() { result = DispatchOverridableCall.super.getADynamicTarget() and diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll index 272a8e0caae..63bd0c18a75 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll @@ -633,7 +633,25 @@ class FunctionPointerCall extends DelegateLikeCall, @function_pointer_invocation * (`EventCall`). */ class AccessorCall extends Call, QualifiableExpr, @call_access_expr { - override Accessor getTarget() { none() } + override Accessor getTarget() { result = this.getReadTarget() or result = this.getWriteTarget() } + + /** + * Gets the static (compile-time) target of this call, assuming that this is + * an `AssignableRead`. + * + * Note that left-hand sides of compound assignments are both + * `AssignableRead`s and `AssignableWrite`s. + */ + Accessor getReadTarget() { none() } + + /** + * Gets the static (compile-time) target of this call, assuming that this is + * an `AssignableWrite`. + * + * Note that left-hand sides of compound assignments are both + * `AssignableRead`s and `AssignableWrite`s. + */ + Accessor getWriteTarget() { none() } override Expr getArgument(int i) { none() } @@ -655,12 +673,12 @@ class AccessorCall extends Call, QualifiableExpr, @call_access_expr { * ``` */ class PropertyCall extends AccessorCall, PropertyAccessExpr { - override Accessor getTarget() { - exists(PropertyAccess pa, Property p | pa = this and p = this.getProperty() | - pa instanceof AssignableRead and result = p.getGetter() - or - pa instanceof AssignableWrite and result = p.getSetter() - ) + override Accessor getReadTarget() { + this instanceof AssignableRead and result = this.getProperty().getGetter() + } + + override Accessor getWriteTarget() { + this instanceof AssignableWrite and result = this.getProperty().getSetter() } override Expr getArgument(int i) { @@ -690,12 +708,12 @@ class PropertyCall extends AccessorCall, PropertyAccessExpr { * ``` */ class IndexerCall extends AccessorCall, IndexerAccessExpr { - override Accessor getTarget() { - exists(IndexerAccess ia, Indexer i | ia = this and i = this.getIndexer() | - ia instanceof AssignableRead and result = i.getGetter() - or - ia instanceof AssignableWrite and result = i.getSetter() - ) + override Accessor getReadTarget() { + this instanceof AssignableRead and result = this.getIndexer().getGetter() + } + + override Accessor getWriteTarget() { + this instanceof AssignableWrite and result = this.getIndexer().getSetter() } override Expr getArgument(int i) { @@ -770,7 +788,7 @@ class ExtensionPropertyCall extends PropertyCall { * ``` */ class EventCall extends AccessorCall, EventAccessExpr { - override EventAccessor getTarget() { + override EventAccessor getWriteTarget() { exists(Event e, AddOrRemoveEventExpr aoree | e = this.getEvent() and aoree.getLeftOperand() = this From 43fe411585ddb083ce2db0999dbdc970efd82c18 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 26 Mar 2026 15:06:20 +0100 Subject: [PATCH 064/208] C#: Accept SSA location changes. --- .../dataflow/ssa/SSAPhi.expected | 119 +++++++-------- .../dataflow/ssa/SSAPhiRead.expected | 68 +++++---- .../dataflow/ssa/SsaDef.expected | 59 ++++---- .../dataflow/ssa/SsaRead.expected | 72 ++++----- .../dataflow/ssa/SsaUltimateDef.expected | 142 +++++++++--------- 5 files changed, 235 insertions(+), 225 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected index e69a5cbe088..1acf66efd96 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected @@ -1,59 +1,60 @@ -| DefUse.cs:3:26:3:26 | w | DefUse.cs:23:9:23:15 | SSA phi(w) | DefUse.cs:3:26:3:26 | SSA param(w) | -| DefUse.cs:3:26:3:26 | w | DefUse.cs:23:9:23:15 | SSA phi(w) | DefUse.cs:19:13:19:18 | SSA def(w) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:23:9:23:15 | SSA phi(y) | DefUse.cs:13:13:13:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:23:9:23:15 | SSA phi(y) | DefUse.cs:18:13:18:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:42:9:42:15 | SSA phi(y) | DefUse.cs:28:13:28:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:42:9:42:15 | SSA phi(y) | DefUse.cs:39:13:39:18 | SSA def(y) | -| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA phi(x1) | DefUse.cs:79:13:79:18 | SSA def(x1) | -| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA phi(x1) | DefUse.cs:80:30:80:31 | SSA def(x1) | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:97:13:97:18 | SSA def(x5) | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:101:13:101:23 | SSA def(x5) | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:8:9:8:22 | SSA def(this.Field) | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:11:13:11:30 | SSA def(this.Field) | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:13:13:13:23 | SSA call def(this.Field) | -| Example.cs:18:16:18:16 | p | Example.cs:25:9:25:15 | SSA phi(p) | Example.cs:18:16:18:16 | SSA param(p) | -| Example.cs:18:16:18:16 | p | Example.cs:25:9:25:15 | SSA phi(p) | Example.cs:23:13:23:17 | SSA def(p) | -| Fields.cs:18:19:18:20 | this.xs | Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:19:9:19:13 | SSA call def(this.xs) | -| Fields.cs:18:19:18:20 | this.xs | Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:22:13:22:17 | SSA call def(this.xs) | -| Fields.cs:30:13:30:13 | f | Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:30:13:30:28 | SSA def(f) | -| Fields.cs:30:13:30:13 | f | Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:49:13:49:28 | SSA def(f) | -| Fields.cs:31:19:31:22 | f.xs | Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:45:9:45:25 | SSA def(f.xs) | -| Fields.cs:31:19:31:22 | f.xs | Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | -| OutRef.cs:39:35:39:35 | j | OutRef.cs:39:10:39:17 | SSA phi(j) | OutRef.cs:39:35:39:35 | SSA param(j) | -| OutRef.cs:39:35:39:35 | j | OutRef.cs:39:10:39:17 | SSA phi(j) | OutRef.cs:42:13:42:17 | SSA def(j) | -| Properties.cs:18:19:18:20 | this.xs | Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:19:9:19:13 | SSA call def(this.xs) | -| Properties.cs:18:19:18:20 | this.xs | Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:22:13:22:17 | SSA call def(this.xs) | -| Properties.cs:30:13:30:13 | f | Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:30:13:30:32 | SSA def(f) | -| Properties.cs:30:13:30:13 | f | Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:49:13:49:32 | SSA def(f) | -| Properties.cs:31:19:31:22 | f.xs | Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:45:9:45:25 | SSA def(f.xs) | -| Properties.cs:31:19:31:22 | f.xs | Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | -| Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:61:23:61:23 | SSA param(i) | -| Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:63:16:63:18 | SSA def(i) | -| Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:33:9:33:19 | SSA phi(param1) | Test.cs:25:16:25:16 | SSA phi(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:33:9:33:19 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:33:9:33:19 | SSA phi(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:41:13:41:23 | SSA def(param1) | -| Test.cs:7:9:7:13 | this.field | Test.cs:24:9:24:15 | SSA phi(this.field) | Test.cs:7:9:7:17 | SSA def(this.field) | -| Test.cs:7:9:7:13 | this.field | Test.cs:24:9:24:15 | SSA phi(this.field) | Test.cs:21:13:21:22 | SSA def(this.field) | -| Test.cs:8:13:8:13 | x | Test.cs:24:9:24:15 | SSA phi(x) | Test.cs:8:13:8:17 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:24:9:24:15 | SSA phi(x) | Test.cs:14:17:14:19 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:24:9:24:15 | SSA phi(x) | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:36:13:36:18 | SSA def(x) | -| Test.cs:9:13:9:13 | y | Test.cs:24:9:24:15 | SSA phi(y) | Test.cs:14:13:14:19 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:24:9:24:15 | SSA phi(y) | Test.cs:20:13:20:18 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:24:9:24:15 | SSA phi(y) | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:31:13:31:18 | SSA def(y) | -| Test.cs:10:13:10:13 | z | Test.cs:24:9:24:15 | SSA phi(z) | Test.cs:15:13:15:17 | SSA def(z) | -| Test.cs:10:13:10:13 | z | Test.cs:24:9:24:15 | SSA phi(z) | Test.cs:22:13:22:17 | SSA def(z) | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:18:34:22 | SSA def(i) | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:33:34:35 | SSA def(i) | -| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:50:13:50:20 | SSA def(out) | -| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:54:13:54:20 | SSA def(out) | -| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:78:13:78:17 | SSA def(x) | -| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:108:13:108:17 | SSA def(x) | +| DefUse.cs:3:26:3:26 | w | DefUse.cs:11:9:21:9 | SSA phi(w) | DefUse.cs:3:26:3:26 | SSA param(w) | +| DefUse.cs:3:26:3:26 | w | DefUse.cs:11:9:21:9 | SSA phi(w) | DefUse.cs:19:13:19:18 | SSA def(w) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:11:9:21:9 | SSA phi(y) | DefUse.cs:13:13:13:18 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:11:9:21:9 | SSA phi(y) | DefUse.cs:18:13:18:18 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:37:9:40:9 | SSA phi(y) | DefUse.cs:28:13:28:18 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:37:9:40:9 | SSA phi(y) | DefUse.cs:39:13:39:18 | SSA def(y) | +| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:9:80:51 | SSA phi(x1) | DefUse.cs:79:13:79:18 | SSA def(x1) | +| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:9:80:51 | SSA phi(x1) | DefUse.cs:80:30:80:31 | SSA def(x1) | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:97:13:97:18 | SSA def(x5) | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:101:13:101:23 | SSA def(x5) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | Example.cs:11:13:11:30 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | Example.cs:12:14:13:24 | SSA phi(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:12:14:13:24 | SSA phi(this.Field) | Example.cs:8:9:8:22 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:12:14:13:24 | SSA phi(this.Field) | Example.cs:13:13:13:23 | SSA call def(this.Field) | +| Example.cs:18:16:18:16 | p | Example.cs:20:9:24:9 | SSA phi(p) | Example.cs:18:16:18:16 | SSA param(p) | +| Example.cs:18:16:18:16 | p | Example.cs:20:9:24:9 | SSA phi(p) | Example.cs:23:13:23:17 | SSA def(p) | +| Fields.cs:18:19:18:20 | this.xs | Fields.cs:21:9:22:18 | SSA phi(this.xs) | Fields.cs:19:9:19:13 | SSA call def(this.xs) | +| Fields.cs:18:19:18:20 | this.xs | Fields.cs:21:9:22:18 | SSA phi(this.xs) | Fields.cs:22:13:22:17 | SSA call def(this.xs) | +| Fields.cs:30:13:30:13 | f | Fields.cs:48:9:49:29 | SSA phi(f) | Fields.cs:30:13:30:28 | SSA def(f) | +| Fields.cs:30:13:30:13 | f | Fields.cs:48:9:49:29 | SSA phi(f) | Fields.cs:49:13:49:28 | SSA def(f) | +| Fields.cs:31:19:31:22 | f.xs | Fields.cs:48:9:49:29 | SSA phi(f.xs) | Fields.cs:45:9:45:25 | SSA def(f.xs) | +| Fields.cs:31:19:31:22 | f.xs | Fields.cs:48:9:49:29 | SSA phi(f.xs) | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | +| OutRef.cs:39:35:39:35 | j | OutRef.cs:41:9:42:18 | SSA phi(j) | OutRef.cs:39:35:39:35 | SSA param(j) | +| OutRef.cs:39:35:39:35 | j | OutRef.cs:41:9:42:18 | SSA phi(j) | OutRef.cs:42:13:42:17 | SSA def(j) | +| Properties.cs:18:19:18:20 | this.xs | Properties.cs:21:9:22:18 | SSA phi(this.xs) | Properties.cs:19:9:19:13 | SSA call def(this.xs) | +| Properties.cs:18:19:18:20 | this.xs | Properties.cs:21:9:22:18 | SSA phi(this.xs) | Properties.cs:22:13:22:17 | SSA call def(this.xs) | +| Properties.cs:30:13:30:13 | f | Properties.cs:48:9:49:33 | SSA phi(f) | Properties.cs:30:13:30:32 | SSA def(f) | +| Properties.cs:30:13:30:13 | f | Properties.cs:48:9:49:33 | SSA phi(f) | Properties.cs:49:13:49:32 | SSA def(f) | +| Properties.cs:31:19:31:22 | f.xs | Properties.cs:48:9:49:33 | SSA phi(f.xs) | Properties.cs:45:9:45:25 | SSA def(f.xs) | +| Properties.cs:31:19:31:22 | f.xs | Properties.cs:48:9:49:33 | SSA phi(f.xs) | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | +| Properties.cs:61:23:61:23 | i | Properties.cs:63:9:66:9 | SSA phi(i) | Properties.cs:61:23:61:23 | SSA param(i) | +| Properties.cs:61:23:61:23 | i | Properties.cs:63:9:66:9 | SSA phi(i) | Properties.cs:63:16:63:18 | SSA def(i) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:25:9:32:9 | SSA phi(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:39:22:39:22 | SSA phi(param1) | Test.cs:25:9:32:9 | SSA phi(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:39:22:39:22 | SSA phi(param1) | Test.cs:41:13:41:23 | SSA def(param1) | +| Test.cs:7:9:7:13 | this.field | Test.cs:11:9:23:9 | SSA phi(this.field) | Test.cs:7:9:7:17 | SSA def(this.field) | +| Test.cs:7:9:7:13 | this.field | Test.cs:11:9:23:9 | SSA phi(this.field) | Test.cs:21:13:21:22 | SSA def(this.field) | +| Test.cs:8:13:8:13 | x | Test.cs:11:9:23:9 | SSA phi(x) | Test.cs:8:13:8:17 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:11:9:23:9 | SSA phi(x) | Test.cs:14:17:14:19 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | Test.cs:11:9:23:9 | SSA phi(x) | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | Test.cs:36:13:36:18 | SSA def(x) | +| Test.cs:9:13:9:13 | y | Test.cs:11:9:23:9 | SSA phi(y) | Test.cs:14:13:14:19 | SSA def(y) | +| Test.cs:9:13:9:13 | y | Test.cs:11:9:23:9 | SSA phi(y) | Test.cs:20:13:20:18 | SSA def(y) | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:11:9:23:9 | SSA phi(y) | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:31:13:31:18 | SSA def(y) | +| Test.cs:10:13:10:13 | z | Test.cs:11:9:23:9 | SSA phi(z) | Test.cs:15:13:15:17 | SSA def(z) | +| Test.cs:10:13:10:13 | z | Test.cs:11:9:23:9 | SSA phi(z) | Test.cs:22:13:22:17 | SSA def(z) | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | Test.cs:34:18:34:22 | SSA def(i) | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | Test.cs:34:33:34:35 | SSA def(i) | +| Test.cs:46:29:46:32 | out | Test.cs:48:9:55:9 | SSA phi(out) | Test.cs:50:13:50:20 | SSA def(out) | +| Test.cs:46:29:46:32 | out | Test.cs:48:9:55:9 | SSA phi(out) | Test.cs:54:13:54:20 | SSA def(out) | +| Test.cs:78:13:78:13 | x | Test.cs:102:9:110:9 | SSA phi(x) | Test.cs:78:13:78:17 | SSA def(x) | +| Test.cs:78:13:78:13 | x | Test.cs:102:9:110:9 | SSA phi(x) | Test.cs:108:13:108:17 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.expected b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.expected index 6fdda8812ab..ec1f230cf88 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.expected @@ -1,35 +1,41 @@ phiReadNode -| DefUse.cs:80:30:80:31 | SSA phi read(this.Field2) | DefUse.cs:63:9:63:14 | this.Field2 | -| Fields.cs:63:16:63:28 | SSA phi read(this.LoopField) | Fields.cs:65:24:65:32 | this.LoopField | -| Patterns.cs:20:9:38:9 | SSA phi read(o) | Patterns.cs:7:16:7:16 | o | -| Properties.cs:63:16:63:16 | SSA phi read(this.LoopProp) | Properties.cs:65:24:65:31 | this.LoopProp | -| Test.cs:25:16:25:16 | SSA phi read(x) | Test.cs:8:13:8:13 | x | +| DefUse.cs:80:9:80:51 | SSA phi read(this.Field2) | DefUse.cs:63:9:63:14 | this.Field2 | +| Fields.cs:63:9:66:9 | SSA phi read(this.LoopField) | Fields.cs:65:24:65:32 | this.LoopField | +| Patterns.cs:8:9:18:9 | SSA phi read(o) | Patterns.cs:7:16:7:16 | o | +| Patterns.cs:12:14:18:9 | SSA phi read(o) | Patterns.cs:7:16:7:16 | o | +| Properties.cs:63:9:66:9 | SSA phi read(this.LoopProp) | Properties.cs:65:24:65:31 | this.LoopProp | +| Test.cs:25:9:32:9 | SSA phi read(x) | Test.cs:8:13:8:13 | x | +| Test.cs:80:9:87:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | +| Test.cs:84:14:87:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | | Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | -| Test.cs:99:9:99:15 | SSA phi read(x) | Test.cs:78:13:78:13 | x | +| Test.cs:94:14:97:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | phiReadNodeFirstRead -| DefUse.cs:80:30:80:31 | SSA phi read(this.Field2) | DefUse.cs:63:9:63:14 | this.Field2 | DefUse.cs:80:37:80:42 | access to field Field2 | -| Fields.cs:63:16:63:28 | SSA phi read(this.LoopField) | Fields.cs:65:24:65:32 | this.LoopField | Fields.cs:65:24:65:32 | access to field LoopField | -| Patterns.cs:20:9:38:9 | SSA phi read(o) | Patterns.cs:7:16:7:16 | o | Patterns.cs:20:17:20:17 | access to local variable o | -| Properties.cs:63:16:63:16 | SSA phi read(this.LoopProp) | Properties.cs:65:24:65:31 | this.LoopProp | Properties.cs:65:24:65:31 | access to property LoopProp | -| Test.cs:25:16:25:16 | SSA phi read(x) | Test.cs:8:13:8:13 | x | Test.cs:25:16:25:16 | access to local variable x | -| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | Test.cs:92:17:92:17 | access to local variable x | -| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | Test.cs:96:17:96:17 | access to local variable x | -| Test.cs:99:9:99:15 | SSA phi read(x) | Test.cs:78:13:78:13 | x | Test.cs:99:13:99:13 | access to local variable x | +| DefUse.cs:80:9:80:51 | SSA phi read(this.Field2) | DefUse.cs:63:9:63:14 | this.Field2 | DefUse.cs:80:37:80:42 | access to field Field2 | +| Fields.cs:63:9:66:9 | SSA phi read(this.LoopField) | Fields.cs:65:24:65:32 | this.LoopField | Fields.cs:65:24:65:32 | access to field LoopField | +| Patterns.cs:8:9:18:9 | SSA phi read(o) | Patterns.cs:7:16:7:16 | o | Patterns.cs:20:17:20:17 | access to local variable o | +| Properties.cs:63:9:66:9 | SSA phi read(this.LoopProp) | Properties.cs:65:24:65:31 | this.LoopProp | Properties.cs:65:24:65:31 | access to property LoopProp | +| Test.cs:25:9:32:9 | SSA phi read(x) | Test.cs:8:13:8:13 | x | Test.cs:25:16:25:16 | access to local variable x | +| Test.cs:80:9:87:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | Test.cs:92:17:92:17 | access to local variable x | +| Test.cs:80:9:87:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | Test.cs:96:17:96:17 | access to local variable x | +| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:78:13:78:13 | x | Test.cs:99:13:99:13 | access to local variable x | phiReadInput -| DefUse.cs:80:30:80:31 | SSA phi read(this.Field2) | DefUse.cs:64:13:64:18 | SSA read(this.Field2) | -| DefUse.cs:80:30:80:31 | SSA phi read(this.Field2) | DefUse.cs:80:37:80:42 | SSA read(this.Field2) | -| Fields.cs:63:16:63:28 | SSA phi read(this.LoopField) | Fields.cs:61:17:61:17 | SSA entry def(this.LoopField) | -| Fields.cs:63:16:63:28 | SSA phi read(this.LoopField) | Fields.cs:65:24:65:32 | SSA read(this.LoopField) | -| Patterns.cs:20:9:38:9 | SSA phi read(o) | Patterns.cs:8:13:8:13 | SSA read(o) | -| Patterns.cs:20:9:38:9 | SSA phi read(o) | Patterns.cs:12:18:12:18 | SSA read(o) | -| Patterns.cs:20:9:38:9 | SSA phi read(o) | Patterns.cs:16:18:16:18 | SSA read(o) | -| Properties.cs:63:16:63:16 | SSA phi read(this.LoopProp) | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | -| Properties.cs:63:16:63:16 | SSA phi read(this.LoopProp) | Properties.cs:65:24:65:31 | SSA read(this.LoopProp) | -| Test.cs:25:16:25:16 | SSA phi read(x) | Test.cs:24:9:24:15 | SSA phi(x) | -| Test.cs:25:16:25:16 | SSA phi read(x) | Test.cs:25:16:25:16 | SSA read(x) | -| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:78:13:78:17 | SSA def(x) | -| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:82:17:82:17 | SSA read(x) | -| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:86:17:86:17 | SSA read(x) | -| Test.cs:99:9:99:15 | SSA phi read(x) | Test.cs:90:9:97:9 | SSA phi read(x) | -| Test.cs:99:9:99:15 | SSA phi read(x) | Test.cs:92:17:92:17 | SSA read(x) | -| Test.cs:99:9:99:15 | SSA phi read(x) | Test.cs:96:17:96:17 | SSA read(x) | +| DefUse.cs:80:9:80:51 | SSA phi read(this.Field2) | DefUse.cs:64:13:64:18 | SSA read(this.Field2) | +| DefUse.cs:80:9:80:51 | SSA phi read(this.Field2) | DefUse.cs:80:37:80:42 | SSA read(this.Field2) | +| Fields.cs:63:9:66:9 | SSA phi read(this.LoopField) | Fields.cs:61:17:61:17 | SSA entry def(this.LoopField) | +| Fields.cs:63:9:66:9 | SSA phi read(this.LoopField) | Fields.cs:65:24:65:32 | SSA read(this.LoopField) | +| Patterns.cs:8:9:18:9 | SSA phi read(o) | Patterns.cs:8:13:8:13 | SSA read(o) | +| Patterns.cs:8:9:18:9 | SSA phi read(o) | Patterns.cs:12:14:18:9 | SSA phi read(o) | +| Patterns.cs:12:14:18:9 | SSA phi read(o) | Patterns.cs:12:18:12:18 | SSA read(o) | +| Patterns.cs:12:14:18:9 | SSA phi read(o) | Patterns.cs:16:18:16:18 | SSA read(o) | +| Properties.cs:63:9:66:9 | SSA phi read(this.LoopProp) | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | +| Properties.cs:63:9:66:9 | SSA phi read(this.LoopProp) | Properties.cs:65:24:65:31 | SSA read(this.LoopProp) | +| Test.cs:25:9:32:9 | SSA phi read(x) | Test.cs:11:9:23:9 | SSA phi(x) | +| Test.cs:25:9:32:9 | SSA phi read(x) | Test.cs:25:16:25:16 | SSA read(x) | +| Test.cs:80:9:87:9 | SSA phi read(x) | Test.cs:82:17:82:17 | SSA read(x) | +| Test.cs:80:9:87:9 | SSA phi read(x) | Test.cs:84:14:87:9 | SSA phi read(x) | +| Test.cs:84:14:87:9 | SSA phi read(x) | Test.cs:78:13:78:17 | SSA def(x) | +| Test.cs:84:14:87:9 | SSA phi read(x) | Test.cs:86:17:86:17 | SSA read(x) | +| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:92:17:92:17 | SSA read(x) | +| Test.cs:90:9:97:9 | SSA phi read(x) | Test.cs:94:14:97:9 | SSA phi read(x) | +| Test.cs:94:14:97:9 | SSA phi read(x) | Test.cs:80:9:87:9 | SSA phi read(x) | +| Test.cs:94:14:97:9 | SSA phi read(x) | Test.cs:96:17:96:17 | SSA read(x) | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected index 3f117d6412e..9fe8df76f18 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected @@ -46,17 +46,17 @@ | Consistency.cs:56:17:56:17 | k | Consistency.cs:57:9:57:13 | SSA def(k) | | Consistency.cs:56:17:56:17 | k | Consistency.cs:58:9:58:13 | SSA def(k) | | DefUse.cs:3:26:3:26 | w | DefUse.cs:3:26:3:26 | SSA param(w) | +| DefUse.cs:3:26:3:26 | w | DefUse.cs:11:9:21:9 | SSA phi(w) | | DefUse.cs:3:26:3:26 | w | DefUse.cs:19:13:19:18 | SSA def(w) | -| DefUse.cs:3:26:3:26 | w | DefUse.cs:23:9:23:15 | SSA phi(w) | | DefUse.cs:3:26:3:26 | w | DefUse.cs:29:13:29:18 | SSA def(w) | | DefUse.cs:5:13:5:13 | x | DefUse.cs:5:13:5:17 | SSA def(x) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:6:14:6:19 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:11:9:21:9 | SSA phi(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:13:13:13:18 | SSA def(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:18:13:18:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:23:9:23:15 | SSA phi(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:28:13:28:18 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:37:9:40:9 | SSA phi(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:39:13:39:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:42:9:42:15 | SSA phi(y) | | DefUse.cs:44:13:44:13 | z | DefUse.cs:44:13:44:17 | SSA def(z) | | DefUse.cs:44:13:44:13 | z | DefUse.cs:47:23:47:23 | SSA def(z) | | DefUse.cs:44:13:44:13 | z | DefUse.cs:50:23:50:23 | SSA def(z) | @@ -66,15 +66,15 @@ | DefUse.cs:66:9:66:14 | this.Field3 | DefUse.cs:66:9:66:18 | SSA def(this.Field3) | | DefUse.cs:67:19:67:20 | tc | DefUse.cs:67:19:67:27 | SSA def(tc) | | DefUse.cs:79:13:79:14 | x1 | DefUse.cs:79:13:79:18 | SSA def(x1) | +| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:9:80:51 | SSA phi(x1) | | DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA def(x1) | -| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA phi(x1) | | DefUse.cs:83:13:83:14 | x2 | DefUse.cs:83:13:83:18 | SSA def(x2) | | DefUse.cs:83:13:83:14 | x2 | DefUse.cs:85:15:85:16 | SSA def(x2) | | DefUse.cs:89:13:89:14 | x3 | DefUse.cs:89:13:89:18 | SSA def(x3) | | DefUse.cs:89:13:89:14 | x3 | DefUse.cs:92:15:92:16 | SSA def(x3) | | DefUse.cs:90:13:90:14 | x4 | DefUse.cs:93:15:93:16 | SSA def(x4) | | DefUse.cs:97:13:97:14 | x5 | DefUse.cs:97:13:97:18 | SSA def(x5) | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | | DefUse.cs:97:13:97:14 | x5 | DefUse.cs:101:13:101:23 | SSA def(x5) | | DefUse.cs:97:13:97:14 | x5 | DefUse.cs:104:9:104:15 | SSA def(x5) | | DefUse.cs:114:42:114:42 | i | DefUse.cs:114:47:114:52 | SSA def(i) | @@ -95,28 +95,29 @@ | DefUse.cs:188:13:188:18 | this.Field5 | DefUse.cs:188:13:188:22 | SSA def(this.Field5) | | Example.cs:6:23:6:23 | i | Example.cs:6:23:6:23 | SSA param(i) | | Example.cs:8:9:8:18 | this.Field | Example.cs:8:9:8:22 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | | Example.cs:8:9:8:18 | this.Field | Example.cs:11:13:11:30 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:12:14:13:24 | SSA phi(this.Field) | | Example.cs:8:9:8:18 | this.Field | Example.cs:13:13:13:23 | SSA call def(this.Field) | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | | Example.cs:18:16:18:16 | p | Example.cs:18:16:18:16 | SSA param(p) | +| Example.cs:18:16:18:16 | p | Example.cs:20:9:24:9 | SSA phi(p) | | Example.cs:18:16:18:16 | p | Example.cs:23:13:23:17 | SSA def(p) | -| Example.cs:18:16:18:16 | p | Example.cs:25:9:25:15 | SSA phi(p) | | Example.cs:18:24:18:24 | b | Example.cs:18:24:18:24 | SSA param(b) | | Fields.cs:18:15:18:15 | x | Fields.cs:20:9:20:14 | SSA def(x) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:19:9:19:13 | SSA call def(this.xs) | +| Fields.cs:18:19:18:20 | this.xs | Fields.cs:21:9:22:18 | SSA phi(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:22:13:22:17 | SSA call def(this.xs) | -| Fields.cs:18:19:18:20 | this.xs | Fields.cs:23:9:23:20 | SSA phi(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:24:9:24:23 | SSA def(this.xs) | | Fields.cs:30:13:30:13 | f | Fields.cs:30:13:30:28 | SSA def(f) | +| Fields.cs:30:13:30:13 | f | Fields.cs:48:9:49:29 | SSA phi(f) | | Fields.cs:30:13:30:13 | f | Fields.cs:49:13:49:28 | SSA def(f) | -| Fields.cs:30:13:30:13 | f | Fields.cs:50:9:50:17 | SSA phi(f) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:30:13:30:28 | SSA qualifier def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:34:9:34:16 | SSA call def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:38:9:38:13 | SSA call def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:45:9:45:25 | SSA def(f.xs) | +| Fields.cs:31:19:31:22 | f.xs | Fields.cs:48:9:49:29 | SSA phi(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | -| Fields.cs:31:19:31:22 | f.xs | Fields.cs:50:9:50:17 | SSA phi(f.xs) | | Fields.cs:32:15:32:15 | z | Fields.cs:47:9:47:14 | SSA def(z) | | Fields.cs:32:19:32:20 | this.xs | Fields.cs:28:17:28:17 | SSA entry def(this.xs) | | Fields.cs:32:19:32:20 | this.xs | Fields.cs:34:9:34:16 | SSA call def(this.xs) | @@ -126,8 +127,8 @@ | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:30:17:30:28 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:34:9:34:16 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:51:9:51:20 | SSA call def(Fields.stat) | | Fields.cs:65:24:65:32 | this.LoopField | Fields.cs:61:17:61:17 | SSA entry def(this.LoopField) | | Fields.cs:71:17:71:35 | this.SingleAccessedField | Fields.cs:61:17:61:17 | SSA entry def(this.SingleAccessedField) | @@ -179,8 +180,8 @@ | OutRef.cs:34:27:34:27 | i | OutRef.cs:36:9:36:13 | SSA def(i) | | OutRef.cs:34:38:34:38 | j | OutRef.cs:34:38:34:38 | SSA param(j) | | OutRef.cs:39:24:39:24 | b | OutRef.cs:39:24:39:24 | SSA param(b) | -| OutRef.cs:39:35:39:35 | j | OutRef.cs:39:10:39:17 | SSA phi(j) | | OutRef.cs:39:35:39:35 | j | OutRef.cs:39:35:39:35 | SSA param(j) | +| OutRef.cs:39:35:39:35 | j | OutRef.cs:41:9:42:18 | SSA phi(j) | | OutRef.cs:39:35:39:35 | j | OutRef.cs:42:13:42:17 | SSA def(j) | | Patterns.cs:7:16:7:16 | o | Patterns.cs:7:16:7:23 | SSA def(o) | | Patterns.cs:8:22:8:23 | i1 | Patterns.cs:8:18:8:23 | SSA def(i1) | @@ -191,18 +192,18 @@ | Properties.cs:18:15:18:15 | x | Properties.cs:20:9:20:14 | SSA def(x) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:19:9:19:13 | SSA call def(this.xs) | +| Properties.cs:18:19:18:20 | this.xs | Properties.cs:21:9:22:18 | SSA phi(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:22:13:22:17 | SSA call def(this.xs) | -| Properties.cs:18:19:18:20 | this.xs | Properties.cs:23:9:23:20 | SSA phi(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:24:9:24:23 | SSA def(this.xs) | | Properties.cs:30:13:30:13 | f | Properties.cs:30:13:30:32 | SSA def(f) | +| Properties.cs:30:13:30:13 | f | Properties.cs:48:9:49:33 | SSA phi(f) | | Properties.cs:30:13:30:13 | f | Properties.cs:49:13:49:32 | SSA def(f) | -| Properties.cs:30:13:30:13 | f | Properties.cs:50:9:50:17 | SSA phi(f) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:30:13:30:32 | SSA qualifier def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:34:9:34:16 | SSA call def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:38:9:38:13 | SSA call def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:45:9:45:25 | SSA def(f.xs) | +| Properties.cs:31:19:31:22 | f.xs | Properties.cs:48:9:49:33 | SSA phi(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | -| Properties.cs:31:19:31:22 | f.xs | Properties.cs:50:9:50:17 | SSA phi(f.xs) | | Properties.cs:32:15:32:15 | z | Properties.cs:47:9:47:14 | SSA def(z) | | Properties.cs:32:19:32:20 | this.xs | Properties.cs:28:17:28:17 | SSA entry def(this.xs) | | Properties.cs:32:19:32:20 | this.xs | Properties.cs:34:9:34:16 | SSA call def(this.xs) | @@ -212,11 +213,11 @@ | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:30:17:30:32 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:34:9:34:16 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | | Properties.cs:61:23:61:23 | i | Properties.cs:61:23:61:23 | SSA param(i) | -| Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | +| Properties.cs:61:23:61:23 | i | Properties.cs:63:9:66:9 | SSA phi(i) | | Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:18 | SSA def(i) | | Properties.cs:65:24:65:31 | this.LoopProp | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | | Properties.cs:67:21:67:38 | this.SingleAccessedProp | Properties.cs:61:17:61:17 | SSA entry def(this.SingleAccessedProp) | @@ -242,38 +243,38 @@ | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:108:10:108:10 | SSA qualifier def(this.Props.Props.xs) | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | SSA param(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:27:17:27:24 | SSA def(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:33:9:33:19 | SSA phi(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:39:22:39:22 | SSA phi(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:41:13:41:23 | SSA def(param1) | | Test.cs:5:67:5:72 | param2 | Test.cs:5:67:5:72 | SSA param(param2) | | Test.cs:7:9:7:13 | this.field | Test.cs:7:9:7:17 | SSA def(this.field) | +| Test.cs:7:9:7:13 | this.field | Test.cs:11:9:23:9 | SSA phi(this.field) | | Test.cs:7:9:7:13 | this.field | Test.cs:21:13:21:22 | SSA def(this.field) | -| Test.cs:7:9:7:13 | this.field | Test.cs:24:9:24:15 | SSA phi(this.field) | | Test.cs:8:13:8:13 | x | Test.cs:8:13:8:17 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:11:9:23:9 | SSA phi(x) | | Test.cs:8:13:8:13 | x | Test.cs:13:13:13:15 | SSA def(x) | | Test.cs:8:13:8:13 | x | Test.cs:14:17:14:19 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:24:9:24:15 | SSA phi(x) | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | | Test.cs:8:13:8:13 | x | Test.cs:36:13:36:18 | SSA def(x) | +| Test.cs:9:13:9:13 | y | Test.cs:11:9:23:9 | SSA phi(y) | | Test.cs:9:13:9:13 | y | Test.cs:14:13:14:19 | SSA def(y) | | Test.cs:9:13:9:13 | y | Test.cs:19:13:19:17 | SSA def(y) | | Test.cs:9:13:9:13 | y | Test.cs:20:13:20:18 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:24:9:24:15 | SSA phi(y) | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | | Test.cs:9:13:9:13 | y | Test.cs:31:13:31:18 | SSA def(y) | +| Test.cs:10:13:10:13 | z | Test.cs:11:9:23:9 | SSA phi(z) | | Test.cs:10:13:10:13 | z | Test.cs:15:13:15:17 | SSA def(z) | | Test.cs:10:13:10:13 | z | Test.cs:22:13:22:17 | SSA def(z) | -| Test.cs:10:13:10:13 | z | Test.cs:24:9:24:15 | SSA phi(z) | | Test.cs:34:18:34:18 | i | Test.cs:34:18:34:22 | SSA def(i) | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | | Test.cs:34:18:34:18 | i | Test.cs:34:33:34:35 | SSA def(i) | | Test.cs:39:22:39:22 | w | Test.cs:39:22:39:22 | SSA def(w) | | Test.cs:46:16:46:18 | in | Test.cs:46:16:46:18 | SSA param(in) | +| Test.cs:46:29:46:32 | out | Test.cs:48:9:55:9 | SSA phi(out) | | Test.cs:46:29:46:32 | out | Test.cs:50:13:50:20 | SSA def(out) | | Test.cs:46:29:46:32 | out | Test.cs:54:13:54:20 | SSA def(out) | -| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | | Test.cs:56:13:56:17 | this.field | Test.cs:46:10:46:10 | SSA entry def(this.field) | | Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | | Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | @@ -285,8 +286,8 @@ | Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | SSA param(b5) | | Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | SSA param(b6) | | Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | +| Test.cs:78:13:78:13 | x | Test.cs:102:9:110:9 | SSA phi(x) | | Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | -| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | | Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | | Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | | Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected index 46aba07eb37..625ce3c79a3 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected @@ -48,8 +48,8 @@ | Consistency.cs:51:20:51:20 | a | Consistency.cs:51:20:51:20 | SSA param(a) | Consistency.cs:55:36:55:36 | access to parameter a | | Consistency.cs:51:20:51:20 | a | Consistency.cs:51:20:51:20 | SSA param(a) | Consistency.cs:56:36:56:36 | access to parameter a | | DefUse.cs:3:26:3:26 | w | DefUse.cs:3:26:3:26 | SSA param(w) | DefUse.cs:9:13:9:13 | access to parameter w | +| DefUse.cs:3:26:3:26 | w | DefUse.cs:11:9:21:9 | SSA phi(w) | DefUse.cs:24:13:24:13 | access to parameter w | | DefUse.cs:3:26:3:26 | w | DefUse.cs:19:13:19:18 | SSA def(w) | DefUse.cs:20:17:20:17 | access to parameter w | -| DefUse.cs:3:26:3:26 | w | DefUse.cs:23:9:23:15 | SSA phi(w) | DefUse.cs:24:13:24:13 | access to parameter w | | DefUse.cs:3:26:3:26 | w | DefUse.cs:29:13:29:18 | SSA def(w) | DefUse.cs:35:13:35:13 | access to parameter w | | DefUse.cs:3:26:3:26 | w | DefUse.cs:29:13:29:18 | SSA def(w) | DefUse.cs:53:17:53:17 | access to parameter w | | DefUse.cs:5:13:5:13 | x | DefUse.cs:5:13:5:17 | SSA def(x) | DefUse.cs:11:13:11:13 | access to local variable x | @@ -58,10 +58,10 @@ | DefUse.cs:5:13:5:13 | x | DefUse.cs:5:13:5:17 | SSA def(x) | DefUse.cs:44:17:44:17 | access to local variable x | | DefUse.cs:5:13:5:13 | x | DefUse.cs:5:13:5:17 | SSA def(x) | DefUse.cs:56:16:56:16 | access to local variable x | | DefUse.cs:6:14:6:14 | y | DefUse.cs:6:14:6:19 | SSA def(y) | DefUse.cs:8:13:8:13 | access to local variable y | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:11:9:21:9 | SSA phi(y) | DefUse.cs:23:13:23:13 | access to local variable y | | DefUse.cs:6:14:6:14 | y | DefUse.cs:13:13:13:18 | SSA def(y) | DefUse.cs:14:17:14:17 | access to local variable y | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:23:9:23:15 | SSA phi(y) | DefUse.cs:23:13:23:13 | access to local variable y | | DefUse.cs:6:14:6:14 | y | DefUse.cs:28:13:28:18 | SSA def(y) | DefUse.cs:34:13:34:13 | access to local variable y | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:42:9:42:15 | SSA phi(y) | DefUse.cs:42:13:42:13 | access to local variable y | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:37:9:40:9 | SSA phi(y) | DefUse.cs:42:13:42:13 | access to local variable y | | DefUse.cs:44:13:44:13 | z | DefUse.cs:44:13:44:17 | SSA def(z) | DefUse.cs:45:13:45:13 | access to local variable z | | DefUse.cs:44:13:44:13 | z | DefUse.cs:47:23:47:23 | SSA def(z) | DefUse.cs:48:13:48:13 | access to local variable z | | DefUse.cs:44:13:44:13 | z | DefUse.cs:47:23:47:23 | SSA def(z) | DefUse.cs:50:23:50:23 | access to local variable z | @@ -72,17 +72,17 @@ | DefUse.cs:63:9:63:14 | this.Field2 | DefUse.cs:63:9:63:18 | SSA def(this.Field2) | DefUse.cs:80:37:80:42 | access to field Field2 | | DefUse.cs:66:9:66:14 | this.Field3 | DefUse.cs:66:9:66:18 | SSA def(this.Field3) | DefUse.cs:69:13:69:18 | access to field Field3 | | DefUse.cs:67:19:67:20 | tc | DefUse.cs:67:19:67:27 | SSA def(tc) | DefUse.cs:68:9:68:10 | access to local variable tc | +| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:9:80:51 | SSA phi(x1) | DefUse.cs:80:30:80:31 | access to local variable x1 | | DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA def(x1) | DefUse.cs:81:13:81:14 | access to local variable x1 | -| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA phi(x1) | DefUse.cs:80:30:80:31 | access to local variable x1 | | DefUse.cs:83:13:83:14 | x2 | DefUse.cs:83:13:83:18 | SSA def(x2) | DefUse.cs:85:15:85:16 | access to local variable x2 | | DefUse.cs:83:13:83:14 | x2 | DefUse.cs:85:15:85:16 | SSA def(x2) | DefUse.cs:87:13:87:14 | access to local variable x2 | | DefUse.cs:89:13:89:14 | x3 | DefUse.cs:89:13:89:18 | SSA def(x3) | DefUse.cs:92:15:92:16 | access to local variable x3 | | DefUse.cs:89:13:89:14 | x3 | DefUse.cs:92:15:92:16 | SSA def(x3) | DefUse.cs:94:13:94:14 | access to local variable x3 | | DefUse.cs:90:13:90:14 | x4 | DefUse.cs:93:15:93:16 | SSA def(x4) | DefUse.cs:95:13:95:14 | access to local variable x4 | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:98:16:98:17 | access to local variable x5 | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:100:17:100:18 | access to local variable x5 | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:101:18:101:19 | access to local variable x5 | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:104:9:104:10 | access to local variable x5 | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:98:16:98:17 | access to local variable x5 | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:100:17:100:18 | access to local variable x5 | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:101:18:101:19 | access to local variable x5 | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:104:9:104:10 | access to local variable x5 | | DefUse.cs:97:13:97:14 | x5 | DefUse.cs:104:9:104:15 | SSA def(x5) | DefUse.cs:105:13:105:14 | access to local variable x5 | | DefUse.cs:118:45:118:45 | i | DefUse.cs:118:45:118:45 | SSA param(i) | DefUse.cs:118:65:118:65 | access to parameter i | | DefUse.cs:128:19:128:19 | i | DefUse.cs:128:19:128:19 | SSA param(i) | DefUse.cs:129:19:129:19 | access to parameter i | @@ -104,15 +104,15 @@ | Example.cs:6:23:6:23 | i | Example.cs:6:23:6:23 | SSA param(i) | Example.cs:11:26:11:26 | access to parameter i | | Example.cs:6:23:6:23 | i | Example.cs:6:23:6:23 | SSA param(i) | Example.cs:12:18:12:18 | access to parameter i | | Example.cs:8:9:8:18 | this.Field | Example.cs:8:9:8:22 | SSA def(this.Field) | Example.cs:9:13:9:22 | access to field Field | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:14:13:14:22 | access to field Field | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:15:13:15:22 | access to field Field | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | Example.cs:14:13:14:22 | access to field Field | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | Example.cs:15:13:15:22 | access to field Field | | Example.cs:18:16:18:16 | p | Example.cs:18:16:18:16 | SSA param(p) | Example.cs:22:17:22:17 | access to parameter p | -| Example.cs:18:16:18:16 | p | Example.cs:25:9:25:15 | SSA phi(p) | Example.cs:25:13:25:13 | access to parameter p | +| Example.cs:18:16:18:16 | p | Example.cs:20:9:24:9 | SSA phi(p) | Example.cs:25:13:25:13 | access to parameter p | | Example.cs:18:24:18:24 | b | Example.cs:18:24:18:24 | SSA param(b) | Example.cs:20:13:20:13 | access to parameter b | | Fields.cs:18:15:18:15 | x | Fields.cs:20:9:20:14 | SSA def(x) | Fields.cs:21:13:21:13 | access to local variable x | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | Fields.cs:18:19:18:20 | access to field xs | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:19:9:19:13 | SSA call def(this.xs) | Fields.cs:20:13:20:14 | access to field xs | -| Fields.cs:18:19:18:20 | this.xs | Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:23:13:23:19 | access to field xs | +| Fields.cs:18:19:18:20 | this.xs | Fields.cs:21:9:22:18 | SSA phi(this.xs) | Fields.cs:23:13:23:19 | access to field xs | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:24:9:24:23 | SSA def(this.xs) | Fields.cs:25:13:25:14 | access to field xs | | Fields.cs:30:13:30:13 | f | Fields.cs:30:13:30:28 | SSA def(f) | Fields.cs:31:19:31:19 | access to local variable f | | Fields.cs:30:13:30:13 | f | Fields.cs:30:13:30:28 | SSA def(f) | Fields.cs:35:13:35:13 | access to local variable f | @@ -121,15 +121,15 @@ | Fields.cs:30:13:30:13 | f | Fields.cs:30:13:30:28 | SSA def(f) | Fields.cs:43:13:43:13 | access to local variable f | | Fields.cs:30:13:30:13 | f | Fields.cs:30:13:30:28 | SSA def(f) | Fields.cs:45:9:45:9 | access to local variable f | | Fields.cs:30:13:30:13 | f | Fields.cs:30:13:30:28 | SSA def(f) | Fields.cs:46:13:46:13 | access to local variable f | -| Fields.cs:30:13:30:13 | f | Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:50:13:50:13 | access to local variable f | -| Fields.cs:30:13:30:13 | f | Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:52:13:52:13 | access to local variable f | +| Fields.cs:30:13:30:13 | f | Fields.cs:48:9:49:29 | SSA phi(f) | Fields.cs:50:13:50:13 | access to local variable f | +| Fields.cs:30:13:30:13 | f | Fields.cs:48:9:49:29 | SSA phi(f) | Fields.cs:52:13:52:13 | access to local variable f | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:30:13:30:28 | SSA qualifier def(f.xs) | Fields.cs:31:19:31:22 | access to field xs | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:34:9:34:16 | SSA call def(f.xs) | Fields.cs:35:13:35:16 | access to field xs | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:38:9:38:13 | SSA call def(f.xs) | Fields.cs:39:13:39:16 | access to field xs | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:38:9:38:13 | SSA call def(f.xs) | Fields.cs:43:13:43:16 | access to field xs | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:45:9:45:25 | SSA def(f.xs) | Fields.cs:46:13:46:16 | access to field xs | -| Fields.cs:31:19:31:22 | f.xs | Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:50:13:50:16 | access to field xs | -| Fields.cs:31:19:31:22 | f.xs | Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:52:13:52:16 | access to field xs | +| Fields.cs:31:19:31:22 | f.xs | Fields.cs:48:9:49:29 | SSA phi(f.xs) | Fields.cs:50:13:50:16 | access to field xs | +| Fields.cs:31:19:31:22 | f.xs | Fields.cs:48:9:49:29 | SSA phi(f.xs) | Fields.cs:52:13:52:16 | access to field xs | | Fields.cs:32:15:32:15 | z | Fields.cs:47:9:47:14 | SSA def(z) | Fields.cs:48:13:48:13 | access to local variable z | | Fields.cs:32:19:32:20 | this.xs | Fields.cs:28:17:28:17 | SSA entry def(this.xs) | Fields.cs:32:19:32:20 | access to field xs | | Fields.cs:32:19:32:20 | this.xs | Fields.cs:34:9:34:16 | SSA call def(this.xs) | Fields.cs:36:13:36:14 | access to field xs | @@ -227,7 +227,7 @@ | Properties.cs:18:15:18:15 | x | Properties.cs:20:9:20:14 | SSA def(x) | Properties.cs:21:13:21:13 | access to local variable x | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | Properties.cs:18:19:18:20 | access to property xs | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:19:9:19:13 | SSA call def(this.xs) | Properties.cs:20:13:20:14 | access to property xs | -| Properties.cs:18:19:18:20 | this.xs | Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:23:13:23:19 | access to property xs | +| Properties.cs:18:19:18:20 | this.xs | Properties.cs:21:9:22:18 | SSA phi(this.xs) | Properties.cs:23:13:23:19 | access to property xs | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:24:9:24:23 | SSA def(this.xs) | Properties.cs:25:13:25:14 | access to property xs | | Properties.cs:30:13:30:13 | f | Properties.cs:30:13:30:32 | SSA def(f) | Properties.cs:31:19:31:19 | access to local variable f | | Properties.cs:30:13:30:13 | f | Properties.cs:30:13:30:32 | SSA def(f) | Properties.cs:35:13:35:13 | access to local variable f | @@ -236,15 +236,15 @@ | Properties.cs:30:13:30:13 | f | Properties.cs:30:13:30:32 | SSA def(f) | Properties.cs:43:13:43:13 | access to local variable f | | Properties.cs:30:13:30:13 | f | Properties.cs:30:13:30:32 | SSA def(f) | Properties.cs:45:9:45:9 | access to local variable f | | Properties.cs:30:13:30:13 | f | Properties.cs:30:13:30:32 | SSA def(f) | Properties.cs:46:13:46:13 | access to local variable f | -| Properties.cs:30:13:30:13 | f | Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:50:13:50:13 | access to local variable f | -| Properties.cs:30:13:30:13 | f | Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:52:13:52:13 | access to local variable f | +| Properties.cs:30:13:30:13 | f | Properties.cs:48:9:49:33 | SSA phi(f) | Properties.cs:50:13:50:13 | access to local variable f | +| Properties.cs:30:13:30:13 | f | Properties.cs:48:9:49:33 | SSA phi(f) | Properties.cs:52:13:52:13 | access to local variable f | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:30:13:30:32 | SSA qualifier def(f.xs) | Properties.cs:31:19:31:22 | access to property xs | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:34:9:34:16 | SSA call def(f.xs) | Properties.cs:35:13:35:16 | access to property xs | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:38:9:38:13 | SSA call def(f.xs) | Properties.cs:39:13:39:16 | access to property xs | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:38:9:38:13 | SSA call def(f.xs) | Properties.cs:43:13:43:16 | access to property xs | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:45:9:45:25 | SSA def(f.xs) | Properties.cs:46:13:46:16 | access to property xs | -| Properties.cs:31:19:31:22 | f.xs | Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:50:13:50:16 | access to property xs | -| Properties.cs:31:19:31:22 | f.xs | Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:52:13:52:16 | access to property xs | +| Properties.cs:31:19:31:22 | f.xs | Properties.cs:48:9:49:33 | SSA phi(f.xs) | Properties.cs:50:13:50:16 | access to property xs | +| Properties.cs:31:19:31:22 | f.xs | Properties.cs:48:9:49:33 | SSA phi(f.xs) | Properties.cs:52:13:52:16 | access to property xs | | Properties.cs:32:15:32:15 | z | Properties.cs:47:9:47:14 | SSA def(z) | Properties.cs:48:13:48:13 | access to local variable z | | Properties.cs:32:19:32:20 | this.xs | Properties.cs:28:17:28:17 | SSA entry def(this.xs) | Properties.cs:32:19:32:20 | access to property xs | | Properties.cs:32:19:32:20 | this.xs | Properties.cs:34:9:34:16 | SSA call def(this.xs) | Properties.cs:36:13:36:14 | access to property xs | @@ -256,7 +256,7 @@ | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:34:9:34:16 | SSA call def(Properties.stat) | Properties.cs:37:13:37:16 | access to property stat | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | Properties.cs:41:13:41:16 | access to property stat | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:54:13:54:16 | access to property stat | -| Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:63:16:63:16 | access to parameter i | +| Properties.cs:61:23:61:23 | i | Properties.cs:63:9:66:9 | SSA phi(i) | Properties.cs:63:16:63:16 | access to parameter i | | Properties.cs:65:24:65:31 | this.LoopProp | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | Properties.cs:65:24:65:31 | access to property LoopProp | | Properties.cs:67:21:67:38 | this.SingleAccessedProp | Properties.cs:61:17:61:17 | SSA entry def(this.SingleAccessedProp) | Properties.cs:67:21:67:38 | access to property SingleAccessedProp | | Properties.cs:72:20:72:37 | this.SingleAccessedProp | Properties.cs:70:17:70:17 | SSA entry def(this.SingleAccessedProp) | Properties.cs:72:20:72:37 | access to property SingleAccessedProp | @@ -288,23 +288,23 @@ | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:115:21:115:39 | access to property xs | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:116:17:116:35 | access to property xs | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | SSA param(param1) | Test.cs:11:13:11:18 | access to parameter param1 | -| Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:27:17:27:22 | access to parameter param1 | -| Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:41:13:41:18 | access to parameter param1 | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:27:17:27:22 | access to parameter param1 | +| Test.cs:5:15:5:20 | param1 | Test.cs:39:22:39:22 | SSA phi(param1) | Test.cs:41:13:41:18 | access to parameter param1 | | Test.cs:5:67:5:72 | param2 | Test.cs:5:67:5:72 | SSA param(param2) | Test.cs:39:27:39:32 | access to parameter param2 | -| Test.cs:7:9:7:13 | this.field | Test.cs:24:9:24:15 | SSA phi(this.field) | Test.cs:33:13:33:17 | access to field field | +| Test.cs:7:9:7:13 | this.field | Test.cs:11:9:23:9 | SSA phi(this.field) | Test.cs:33:13:33:17 | access to field field | | Test.cs:8:13:8:13 | x | Test.cs:8:13:8:17 | SSA def(x) | Test.cs:13:13:13:13 | access to local variable x | +| Test.cs:8:13:8:13 | x | Test.cs:11:9:23:9 | SSA phi(x) | Test.cs:25:16:25:16 | access to local variable x | | Test.cs:8:13:8:13 | x | Test.cs:13:13:13:15 | SSA def(x) | Test.cs:14:19:14:19 | access to local variable x | -| Test.cs:8:13:8:13 | x | Test.cs:24:9:24:15 | SSA phi(x) | Test.cs:25:16:25:16 | access to local variable x | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:36:13:36:13 | access to local variable x | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:43:16:43:16 | access to local variable x | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | Test.cs:36:13:36:13 | access to local variable x | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | Test.cs:43:16:43:16 | access to local variable x | | Test.cs:9:13:9:13 | y | Test.cs:19:13:19:17 | SSA def(y) | Test.cs:20:13:20:13 | access to local variable y | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:25:20:25:20 | access to local variable y | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:31:13:31:13 | access to local variable y | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:43:20:43:20 | access to local variable y | -| Test.cs:10:13:10:13 | z | Test.cs:24:9:24:15 | SSA phi(z) | Test.cs:24:13:24:13 | access to local variable z | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:25:34:25 | access to local variable i | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:33:34:33 | access to local variable i | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:36:18:36:18 | access to local variable i | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:25:20:25:20 | access to local variable y | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:31:13:31:13 | access to local variable y | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:43:20:43:20 | access to local variable y | +| Test.cs:10:13:10:13 | z | Test.cs:11:9:23:9 | SSA phi(z) | Test.cs:24:13:24:13 | access to local variable z | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | Test.cs:34:25:34:25 | access to local variable i | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | Test.cs:34:33:34:33 | access to local variable i | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | Test.cs:36:18:36:18 | access to local variable i | | Test.cs:39:22:39:22 | w | Test.cs:39:22:39:22 | SSA def(w) | Test.cs:41:23:41:23 | access to local variable w | | Test.cs:46:16:46:18 | in | Test.cs:46:16:46:18 | SSA param(in) | Test.cs:48:13:48:15 | access to parameter in | | Test.cs:56:13:56:17 | this.field | Test.cs:46:10:46:10 | SSA entry def(this.field) | Test.cs:56:13:56:17 | access to field field | @@ -323,8 +323,8 @@ | Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:96:17:96:17 | access to local variable x | | Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:99:13:99:13 | access to local variable x | | Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:104:17:104:17 | access to local variable x | +| Test.cs:78:13:78:13 | x | Test.cs:102:9:110:9 | SSA phi(x) | Test.cs:115:17:115:17 | access to local variable x | | Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:109:17:109:17 | access to local variable x | -| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:115:17:115:17 | access to local variable x | | Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:11:13:11:13 | access to local variable x | | Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:15:13:15:13 | access to local variable x | | Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:24:13:24:13 | access to local variable x | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected index d6dfac1475a..75ad81d4ef1 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected @@ -46,20 +46,20 @@ | Consistency.cs:56:17:56:17 | k | Consistency.cs:57:9:57:13 | SSA def(k) | Consistency.cs:57:9:57:13 | SSA def(k) | | Consistency.cs:56:17:56:17 | k | Consistency.cs:58:9:58:13 | SSA def(k) | Consistency.cs:58:9:58:13 | SSA def(k) | | DefUse.cs:3:26:3:26 | w | DefUse.cs:3:26:3:26 | SSA param(w) | DefUse.cs:3:26:3:26 | SSA param(w) | +| DefUse.cs:3:26:3:26 | w | DefUse.cs:11:9:21:9 | SSA phi(w) | DefUse.cs:3:26:3:26 | SSA param(w) | +| DefUse.cs:3:26:3:26 | w | DefUse.cs:11:9:21:9 | SSA phi(w) | DefUse.cs:19:13:19:18 | SSA def(w) | | DefUse.cs:3:26:3:26 | w | DefUse.cs:19:13:19:18 | SSA def(w) | DefUse.cs:19:13:19:18 | SSA def(w) | -| DefUse.cs:3:26:3:26 | w | DefUse.cs:23:9:23:15 | SSA phi(w) | DefUse.cs:3:26:3:26 | SSA param(w) | -| DefUse.cs:3:26:3:26 | w | DefUse.cs:23:9:23:15 | SSA phi(w) | DefUse.cs:19:13:19:18 | SSA def(w) | | DefUse.cs:3:26:3:26 | w | DefUse.cs:29:13:29:18 | SSA def(w) | DefUse.cs:29:13:29:18 | SSA def(w) | | DefUse.cs:5:13:5:13 | x | DefUse.cs:5:13:5:17 | SSA def(x) | DefUse.cs:5:13:5:17 | SSA def(x) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:6:14:6:19 | SSA def(y) | DefUse.cs:6:14:6:19 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:11:9:21:9 | SSA phi(y) | DefUse.cs:13:13:13:18 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:11:9:21:9 | SSA phi(y) | DefUse.cs:18:13:18:18 | SSA def(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:13:13:13:18 | SSA def(y) | DefUse.cs:13:13:13:18 | SSA def(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:18:13:18:18 | SSA def(y) | DefUse.cs:18:13:18:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:23:9:23:15 | SSA phi(y) | DefUse.cs:13:13:13:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:23:9:23:15 | SSA phi(y) | DefUse.cs:18:13:18:18 | SSA def(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:28:13:28:18 | SSA def(y) | DefUse.cs:28:13:28:18 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:37:9:40:9 | SSA phi(y) | DefUse.cs:28:13:28:18 | SSA def(y) | +| DefUse.cs:6:14:6:14 | y | DefUse.cs:37:9:40:9 | SSA phi(y) | DefUse.cs:39:13:39:18 | SSA def(y) | | DefUse.cs:6:14:6:14 | y | DefUse.cs:39:13:39:18 | SSA def(y) | DefUse.cs:39:13:39:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:42:9:42:15 | SSA phi(y) | DefUse.cs:28:13:28:18 | SSA def(y) | -| DefUse.cs:6:14:6:14 | y | DefUse.cs:42:9:42:15 | SSA phi(y) | DefUse.cs:39:13:39:18 | SSA def(y) | | DefUse.cs:44:13:44:13 | z | DefUse.cs:44:13:44:17 | SSA def(z) | DefUse.cs:44:13:44:17 | SSA def(z) | | DefUse.cs:44:13:44:13 | z | DefUse.cs:47:23:47:23 | SSA def(z) | DefUse.cs:47:23:47:23 | SSA def(z) | | DefUse.cs:44:13:44:13 | z | DefUse.cs:50:23:50:23 | SSA def(z) | DefUse.cs:50:23:50:23 | SSA def(z) | @@ -69,17 +69,17 @@ | DefUse.cs:66:9:66:14 | this.Field3 | DefUse.cs:66:9:66:18 | SSA def(this.Field3) | DefUse.cs:66:9:66:18 | SSA def(this.Field3) | | DefUse.cs:67:19:67:20 | tc | DefUse.cs:67:19:67:27 | SSA def(tc) | DefUse.cs:67:19:67:27 | SSA def(tc) | | DefUse.cs:79:13:79:14 | x1 | DefUse.cs:79:13:79:18 | SSA def(x1) | DefUse.cs:79:13:79:18 | SSA def(x1) | +| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:9:80:51 | SSA phi(x1) | DefUse.cs:79:13:79:18 | SSA def(x1) | +| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:9:80:51 | SSA phi(x1) | DefUse.cs:80:30:80:31 | SSA def(x1) | | DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA def(x1) | DefUse.cs:80:30:80:31 | SSA def(x1) | -| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA phi(x1) | DefUse.cs:79:13:79:18 | SSA def(x1) | -| DefUse.cs:79:13:79:14 | x1 | DefUse.cs:80:30:80:31 | SSA phi(x1) | DefUse.cs:80:30:80:31 | SSA def(x1) | | DefUse.cs:83:13:83:14 | x2 | DefUse.cs:83:13:83:18 | SSA def(x2) | DefUse.cs:83:13:83:18 | SSA def(x2) | | DefUse.cs:83:13:83:14 | x2 | DefUse.cs:85:15:85:16 | SSA def(x2) | DefUse.cs:85:15:85:16 | SSA def(x2) | | DefUse.cs:89:13:89:14 | x3 | DefUse.cs:89:13:89:18 | SSA def(x3) | DefUse.cs:89:13:89:18 | SSA def(x3) | | DefUse.cs:89:13:89:14 | x3 | DefUse.cs:92:15:92:16 | SSA def(x3) | DefUse.cs:92:15:92:16 | SSA def(x3) | | DefUse.cs:90:13:90:14 | x4 | DefUse.cs:93:15:93:16 | SSA def(x4) | DefUse.cs:93:15:93:16 | SSA def(x4) | | DefUse.cs:97:13:97:14 | x5 | DefUse.cs:97:13:97:18 | SSA def(x5) | DefUse.cs:97:13:97:18 | SSA def(x5) | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:97:13:97:18 | SSA def(x5) | -| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:101:13:101:23 | SSA def(x5) | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:97:13:97:18 | SSA def(x5) | +| DefUse.cs:97:13:97:14 | x5 | DefUse.cs:98:9:102:9 | SSA phi(x5) | DefUse.cs:101:13:101:23 | SSA def(x5) | | DefUse.cs:97:13:97:14 | x5 | DefUse.cs:101:13:101:23 | SSA def(x5) | DefUse.cs:101:13:101:23 | SSA def(x5) | | DefUse.cs:97:13:97:14 | x5 | DefUse.cs:104:9:104:15 | SSA def(x5) | DefUse.cs:104:9:104:15 | SSA def(x5) | | DefUse.cs:114:42:114:42 | i | DefUse.cs:114:47:114:52 | SSA def(i) | DefUse.cs:114:47:114:52 | SSA def(i) | @@ -101,32 +101,34 @@ | DefUse.cs:188:13:188:18 | this.Field5 | DefUse.cs:188:13:188:22 | SSA def(this.Field5) | DefUse.cs:188:13:188:22 | SSA def(this.Field5) | | Example.cs:6:23:6:23 | i | Example.cs:6:23:6:23 | SSA param(i) | Example.cs:6:23:6:23 | SSA param(i) | | Example.cs:8:9:8:18 | this.Field | Example.cs:8:9:8:22 | SSA def(this.Field) | Example.cs:8:9:8:22 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | Example.cs:8:9:8:22 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | Example.cs:11:13:11:30 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:10:9:13:24 | SSA phi(this.Field) | Example.cs:13:13:13:23 | SSA call def(this.Field) | | Example.cs:8:9:8:18 | this.Field | Example.cs:11:13:11:30 | SSA def(this.Field) | Example.cs:11:13:11:30 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:12:14:13:24 | SSA phi(this.Field) | Example.cs:8:9:8:22 | SSA def(this.Field) | +| Example.cs:8:9:8:18 | this.Field | Example.cs:12:14:13:24 | SSA phi(this.Field) | Example.cs:13:13:13:23 | SSA call def(this.Field) | | Example.cs:8:9:8:18 | this.Field | Example.cs:13:13:13:23 | SSA call def(this.Field) | Example.cs:8:9:8:22 | SSA def(this.Field) | | Example.cs:8:9:8:18 | this.Field | Example.cs:13:13:13:23 | SSA call def(this.Field) | Example.cs:13:13:13:23 | SSA call def(this.Field) | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:8:9:8:22 | SSA def(this.Field) | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:11:13:11:30 | SSA def(this.Field) | -| Example.cs:8:9:8:18 | this.Field | Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:13:13:13:23 | SSA call def(this.Field) | | Example.cs:18:16:18:16 | p | Example.cs:18:16:18:16 | SSA param(p) | Example.cs:18:16:18:16 | SSA param(p) | +| Example.cs:18:16:18:16 | p | Example.cs:20:9:24:9 | SSA phi(p) | Example.cs:18:16:18:16 | SSA param(p) | +| Example.cs:18:16:18:16 | p | Example.cs:20:9:24:9 | SSA phi(p) | Example.cs:23:13:23:17 | SSA def(p) | | Example.cs:18:16:18:16 | p | Example.cs:23:13:23:17 | SSA def(p) | Example.cs:23:13:23:17 | SSA def(p) | -| Example.cs:18:16:18:16 | p | Example.cs:25:9:25:15 | SSA phi(p) | Example.cs:18:16:18:16 | SSA param(p) | -| Example.cs:18:16:18:16 | p | Example.cs:25:9:25:15 | SSA phi(p) | Example.cs:23:13:23:17 | SSA def(p) | | Example.cs:18:24:18:24 | b | Example.cs:18:24:18:24 | SSA param(b) | Example.cs:18:24:18:24 | SSA param(b) | | Fields.cs:18:15:18:15 | x | Fields.cs:20:9:20:14 | SSA def(x) | Fields.cs:20:9:20:14 | SSA def(x) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:19:9:19:13 | SSA call def(this.xs) | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:19:9:19:13 | SSA call def(this.xs) | Fields.cs:19:9:19:13 | SSA call def(this.xs) | +| Fields.cs:18:19:18:20 | this.xs | Fields.cs:21:9:22:18 | SSA phi(this.xs) | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | +| Fields.cs:18:19:18:20 | this.xs | Fields.cs:21:9:22:18 | SSA phi(this.xs) | Fields.cs:19:9:19:13 | SSA call def(this.xs) | +| Fields.cs:18:19:18:20 | this.xs | Fields.cs:21:9:22:18 | SSA phi(this.xs) | Fields.cs:22:13:22:17 | SSA call def(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:22:13:22:17 | SSA call def(this.xs) | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:22:13:22:17 | SSA call def(this.xs) | Fields.cs:19:9:19:13 | SSA call def(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:22:13:22:17 | SSA call def(this.xs) | Fields.cs:22:13:22:17 | SSA call def(this.xs) | -| Fields.cs:18:19:18:20 | this.xs | Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | -| Fields.cs:18:19:18:20 | this.xs | Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:19:9:19:13 | SSA call def(this.xs) | -| Fields.cs:18:19:18:20 | this.xs | Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:22:13:22:17 | SSA call def(this.xs) | | Fields.cs:18:19:18:20 | this.xs | Fields.cs:24:9:24:23 | SSA def(this.xs) | Fields.cs:24:9:24:23 | SSA def(this.xs) | | Fields.cs:30:13:30:13 | f | Fields.cs:30:13:30:28 | SSA def(f) | Fields.cs:30:13:30:28 | SSA def(f) | +| Fields.cs:30:13:30:13 | f | Fields.cs:48:9:49:29 | SSA phi(f) | Fields.cs:30:13:30:28 | SSA def(f) | +| Fields.cs:30:13:30:13 | f | Fields.cs:48:9:49:29 | SSA phi(f) | Fields.cs:49:13:49:28 | SSA def(f) | | Fields.cs:30:13:30:13 | f | Fields.cs:49:13:49:28 | SSA def(f) | Fields.cs:49:13:49:28 | SSA def(f) | -| Fields.cs:30:13:30:13 | f | Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:30:13:30:28 | SSA def(f) | -| Fields.cs:30:13:30:13 | f | Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:49:13:49:28 | SSA def(f) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:30:13:30:28 | SSA qualifier def(f.xs) | Fields.cs:30:13:30:28 | SSA qualifier def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:34:9:34:16 | SSA call def(f.xs) | Fields.cs:30:13:30:28 | SSA qualifier def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:34:9:34:16 | SSA call def(f.xs) | Fields.cs:34:9:34:16 | SSA call def(f.xs) | @@ -134,9 +136,9 @@ | Fields.cs:31:19:31:22 | f.xs | Fields.cs:38:9:38:13 | SSA call def(f.xs) | Fields.cs:34:9:34:16 | SSA call def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:38:9:38:13 | SSA call def(f.xs) | Fields.cs:38:9:38:13 | SSA call def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:45:9:45:25 | SSA def(f.xs) | Fields.cs:45:9:45:25 | SSA def(f.xs) | +| Fields.cs:31:19:31:22 | f.xs | Fields.cs:48:9:49:29 | SSA phi(f.xs) | Fields.cs:45:9:45:25 | SSA def(f.xs) | +| Fields.cs:31:19:31:22 | f.xs | Fields.cs:48:9:49:29 | SSA phi(f.xs) | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | | Fields.cs:31:19:31:22 | f.xs | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | -| Fields.cs:31:19:31:22 | f.xs | Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:45:9:45:25 | SSA def(f.xs) | -| Fields.cs:31:19:31:22 | f.xs | Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | | Fields.cs:32:15:32:15 | z | Fields.cs:47:9:47:14 | SSA def(z) | Fields.cs:47:9:47:14 | SSA def(z) | | Fields.cs:32:19:32:20 | this.xs | Fields.cs:28:17:28:17 | SSA entry def(this.xs) | Fields.cs:28:17:28:17 | SSA entry def(this.xs) | | Fields.cs:32:19:32:20 | this.xs | Fields.cs:34:9:34:16 | SSA call def(this.xs) | Fields.cs:28:17:28:17 | SSA entry def(this.xs) | @@ -155,16 +157,16 @@ | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | Fields.cs:30:17:30:28 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | Fields.cs:34:9:34:16 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | Fields.cs:28:17:28:17 | SSA entry def(Fields.stat) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | Fields.cs:30:17:30:28 | SSA call def(Fields.stat) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | Fields.cs:34:9:34:16 | SSA call def(Fields.stat) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | +| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:48:9:49:29 | SSA phi(Fields.stat) | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | Fields.cs:28:17:28:17 | SSA entry def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | Fields.cs:30:17:30:28 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | Fields.cs:34:9:34:16 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:28:17:28:17 | SSA entry def(Fields.stat) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:30:17:30:28 | SSA call def(Fields.stat) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:34:9:34:16 | SSA call def(Fields.stat) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:38:9:38:13 | SSA call def(Fields.stat) | -| Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:51:9:51:20 | SSA call def(Fields.stat) | Fields.cs:28:17:28:17 | SSA entry def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:51:9:51:20 | SSA call def(Fields.stat) | Fields.cs:30:17:30:28 | SSA call def(Fields.stat) | | Fields.cs:33:19:33:22 | Fields.stat | Fields.cs:51:9:51:20 | SSA call def(Fields.stat) | Fields.cs:34:9:34:16 | SSA call def(Fields.stat) | @@ -227,9 +229,9 @@ | OutRef.cs:34:27:34:27 | i | OutRef.cs:36:9:36:13 | SSA def(i) | OutRef.cs:36:9:36:13 | SSA def(i) | | OutRef.cs:34:38:34:38 | j | OutRef.cs:34:38:34:38 | SSA param(j) | OutRef.cs:34:38:34:38 | SSA param(j) | | OutRef.cs:39:24:39:24 | b | OutRef.cs:39:24:39:24 | SSA param(b) | OutRef.cs:39:24:39:24 | SSA param(b) | -| OutRef.cs:39:35:39:35 | j | OutRef.cs:39:10:39:17 | SSA phi(j) | OutRef.cs:39:35:39:35 | SSA param(j) | -| OutRef.cs:39:35:39:35 | j | OutRef.cs:39:10:39:17 | SSA phi(j) | OutRef.cs:42:13:42:17 | SSA def(j) | | OutRef.cs:39:35:39:35 | j | OutRef.cs:39:35:39:35 | SSA param(j) | OutRef.cs:39:35:39:35 | SSA param(j) | +| OutRef.cs:39:35:39:35 | j | OutRef.cs:41:9:42:18 | SSA phi(j) | OutRef.cs:39:35:39:35 | SSA param(j) | +| OutRef.cs:39:35:39:35 | j | OutRef.cs:41:9:42:18 | SSA phi(j) | OutRef.cs:42:13:42:17 | SSA def(j) | | OutRef.cs:39:35:39:35 | j | OutRef.cs:42:13:42:17 | SSA def(j) | OutRef.cs:42:13:42:17 | SSA def(j) | | Patterns.cs:7:16:7:16 | o | Patterns.cs:7:16:7:23 | SSA def(o) | Patterns.cs:7:16:7:23 | SSA def(o) | | Patterns.cs:8:22:8:23 | i1 | Patterns.cs:8:18:8:23 | SSA def(i1) | Patterns.cs:8:18:8:23 | SSA def(i1) | @@ -241,17 +243,17 @@ | Properties.cs:18:19:18:20 | this.xs | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:19:9:19:13 | SSA call def(this.xs) | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:19:9:19:13 | SSA call def(this.xs) | Properties.cs:19:9:19:13 | SSA call def(this.xs) | +| Properties.cs:18:19:18:20 | this.xs | Properties.cs:21:9:22:18 | SSA phi(this.xs) | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | +| Properties.cs:18:19:18:20 | this.xs | Properties.cs:21:9:22:18 | SSA phi(this.xs) | Properties.cs:19:9:19:13 | SSA call def(this.xs) | +| Properties.cs:18:19:18:20 | this.xs | Properties.cs:21:9:22:18 | SSA phi(this.xs) | Properties.cs:22:13:22:17 | SSA call def(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:22:13:22:17 | SSA call def(this.xs) | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:22:13:22:17 | SSA call def(this.xs) | Properties.cs:19:9:19:13 | SSA call def(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:22:13:22:17 | SSA call def(this.xs) | Properties.cs:22:13:22:17 | SSA call def(this.xs) | -| Properties.cs:18:19:18:20 | this.xs | Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:16:17:16:17 | SSA entry def(this.xs) | -| Properties.cs:18:19:18:20 | this.xs | Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:19:9:19:13 | SSA call def(this.xs) | -| Properties.cs:18:19:18:20 | this.xs | Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:22:13:22:17 | SSA call def(this.xs) | | Properties.cs:18:19:18:20 | this.xs | Properties.cs:24:9:24:23 | SSA def(this.xs) | Properties.cs:24:9:24:23 | SSA def(this.xs) | | Properties.cs:30:13:30:13 | f | Properties.cs:30:13:30:32 | SSA def(f) | Properties.cs:30:13:30:32 | SSA def(f) | +| Properties.cs:30:13:30:13 | f | Properties.cs:48:9:49:33 | SSA phi(f) | Properties.cs:30:13:30:32 | SSA def(f) | +| Properties.cs:30:13:30:13 | f | Properties.cs:48:9:49:33 | SSA phi(f) | Properties.cs:49:13:49:32 | SSA def(f) | | Properties.cs:30:13:30:13 | f | Properties.cs:49:13:49:32 | SSA def(f) | Properties.cs:49:13:49:32 | SSA def(f) | -| Properties.cs:30:13:30:13 | f | Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:30:13:30:32 | SSA def(f) | -| Properties.cs:30:13:30:13 | f | Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:49:13:49:32 | SSA def(f) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:30:13:30:32 | SSA qualifier def(f.xs) | Properties.cs:30:13:30:32 | SSA qualifier def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:34:9:34:16 | SSA call def(f.xs) | Properties.cs:30:13:30:32 | SSA qualifier def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:34:9:34:16 | SSA call def(f.xs) | Properties.cs:34:9:34:16 | SSA call def(f.xs) | @@ -259,9 +261,9 @@ | Properties.cs:31:19:31:22 | f.xs | Properties.cs:38:9:38:13 | SSA call def(f.xs) | Properties.cs:34:9:34:16 | SSA call def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:38:9:38:13 | SSA call def(f.xs) | Properties.cs:38:9:38:13 | SSA call def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:45:9:45:25 | SSA def(f.xs) | Properties.cs:45:9:45:25 | SSA def(f.xs) | +| Properties.cs:31:19:31:22 | f.xs | Properties.cs:48:9:49:33 | SSA phi(f.xs) | Properties.cs:45:9:45:25 | SSA def(f.xs) | +| Properties.cs:31:19:31:22 | f.xs | Properties.cs:48:9:49:33 | SSA phi(f.xs) | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | | Properties.cs:31:19:31:22 | f.xs | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | -| Properties.cs:31:19:31:22 | f.xs | Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:45:9:45:25 | SSA def(f.xs) | -| Properties.cs:31:19:31:22 | f.xs | Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | | Properties.cs:32:15:32:15 | z | Properties.cs:47:9:47:14 | SSA def(z) | Properties.cs:47:9:47:14 | SSA def(z) | | Properties.cs:32:19:32:20 | this.xs | Properties.cs:28:17:28:17 | SSA entry def(this.xs) | Properties.cs:28:17:28:17 | SSA entry def(this.xs) | | Properties.cs:32:19:32:20 | this.xs | Properties.cs:34:9:34:16 | SSA call def(this.xs) | Properties.cs:28:17:28:17 | SSA entry def(this.xs) | @@ -280,16 +282,16 @@ | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | Properties.cs:30:17:30:32 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | Properties.cs:34:9:34:16 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | Properties.cs:28:17:28:17 | SSA entry def(Properties.stat) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | Properties.cs:30:17:30:32 | SSA call def(Properties.stat) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | Properties.cs:34:9:34:16 | SSA call def(Properties.stat) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | +| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:48:9:49:33 | SSA phi(Properties.stat) | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | Properties.cs:28:17:28:17 | SSA entry def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | Properties.cs:30:17:30:32 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | Properties.cs:34:9:34:16 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:28:17:28:17 | SSA entry def(Properties.stat) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:30:17:30:32 | SSA call def(Properties.stat) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:34:9:34:16 | SSA call def(Properties.stat) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:38:9:38:13 | SSA call def(Properties.stat) | -| Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:28:17:28:17 | SSA entry def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:30:17:30:32 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:34:9:34:16 | SSA call def(Properties.stat) | @@ -297,8 +299,8 @@ | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | | Properties.cs:61:23:61:23 | i | Properties.cs:61:23:61:23 | SSA param(i) | Properties.cs:61:23:61:23 | SSA param(i) | -| Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:61:23:61:23 | SSA param(i) | -| Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:63:16:63:18 | SSA def(i) | +| Properties.cs:61:23:61:23 | i | Properties.cs:63:9:66:9 | SSA phi(i) | Properties.cs:61:23:61:23 | SSA param(i) | +| Properties.cs:61:23:61:23 | i | Properties.cs:63:9:66:9 | SSA phi(i) | Properties.cs:63:16:63:18 | SSA def(i) | | Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:18 | SSA def(i) | Properties.cs:63:16:63:18 | SSA def(i) | | Properties.cs:65:24:65:31 | this.LoopProp | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | | Properties.cs:67:21:67:38 | this.SingleAccessedProp | Properties.cs:61:17:61:17 | SSA entry def(this.SingleAccessedProp) | Properties.cs:61:17:61:17 | SSA entry def(this.SingleAccessedProp) | @@ -329,52 +331,52 @@ | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:108:10:108:10 | SSA qualifier def(this.Props.Props.xs) | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | SSA param(param1) | Test.cs:5:15:5:20 | SSA param(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:25:9:32:9 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:27:17:27:24 | SSA def(param1) | Test.cs:27:17:27:24 | SSA def(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:33:9:33:19 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:33:9:33:19 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | -| Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:41:13:41:23 | SSA def(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:39:22:39:22 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:39:22:39:22 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | +| Test.cs:5:15:5:20 | param1 | Test.cs:39:22:39:22 | SSA phi(param1) | Test.cs:41:13:41:23 | SSA def(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:41:13:41:23 | SSA def(param1) | Test.cs:41:13:41:23 | SSA def(param1) | | Test.cs:5:67:5:72 | param2 | Test.cs:5:67:5:72 | SSA param(param2) | Test.cs:5:67:5:72 | SSA param(param2) | | Test.cs:7:9:7:13 | this.field | Test.cs:7:9:7:17 | SSA def(this.field) | Test.cs:7:9:7:17 | SSA def(this.field) | +| Test.cs:7:9:7:13 | this.field | Test.cs:11:9:23:9 | SSA phi(this.field) | Test.cs:7:9:7:17 | SSA def(this.field) | +| Test.cs:7:9:7:13 | this.field | Test.cs:11:9:23:9 | SSA phi(this.field) | Test.cs:21:13:21:22 | SSA def(this.field) | | Test.cs:7:9:7:13 | this.field | Test.cs:21:13:21:22 | SSA def(this.field) | Test.cs:21:13:21:22 | SSA def(this.field) | -| Test.cs:7:9:7:13 | this.field | Test.cs:24:9:24:15 | SSA phi(this.field) | Test.cs:7:9:7:17 | SSA def(this.field) | -| Test.cs:7:9:7:13 | this.field | Test.cs:24:9:24:15 | SSA phi(this.field) | Test.cs:21:13:21:22 | SSA def(this.field) | | Test.cs:8:13:8:13 | x | Test.cs:8:13:8:17 | SSA def(x) | Test.cs:8:13:8:17 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:11:9:23:9 | SSA phi(x) | Test.cs:8:13:8:17 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:11:9:23:9 | SSA phi(x) | Test.cs:14:17:14:19 | SSA def(x) | | Test.cs:8:13:8:13 | x | Test.cs:13:13:13:15 | SSA def(x) | Test.cs:13:13:13:15 | SSA def(x) | | Test.cs:8:13:8:13 | x | Test.cs:14:17:14:19 | SSA def(x) | Test.cs:14:17:14:19 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:24:9:24:15 | SSA phi(x) | Test.cs:8:13:8:17 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:24:9:24:15 | SSA phi(x) | Test.cs:14:17:14:19 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:8:13:8:17 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:14:17:14:19 | SSA def(x) | -| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:36:13:36:18 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | Test.cs:8:13:8:17 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | Test.cs:14:17:14:19 | SSA def(x) | +| Test.cs:8:13:8:13 | x | Test.cs:34:25:34:30 | SSA phi(x) | Test.cs:36:13:36:18 | SSA def(x) | | Test.cs:8:13:8:13 | x | Test.cs:36:13:36:18 | SSA def(x) | Test.cs:36:13:36:18 | SSA def(x) | +| Test.cs:9:13:9:13 | y | Test.cs:11:9:23:9 | SSA phi(y) | Test.cs:14:13:14:19 | SSA def(y) | +| Test.cs:9:13:9:13 | y | Test.cs:11:9:23:9 | SSA phi(y) | Test.cs:20:13:20:18 | SSA def(y) | | Test.cs:9:13:9:13 | y | Test.cs:14:13:14:19 | SSA def(y) | Test.cs:14:13:14:19 | SSA def(y) | | Test.cs:9:13:9:13 | y | Test.cs:19:13:19:17 | SSA def(y) | Test.cs:19:13:19:17 | SSA def(y) | | Test.cs:9:13:9:13 | y | Test.cs:20:13:20:18 | SSA def(y) | Test.cs:20:13:20:18 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:24:9:24:15 | SSA phi(y) | Test.cs:14:13:14:19 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:24:9:24:15 | SSA phi(y) | Test.cs:20:13:20:18 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:14:13:14:19 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:20:13:20:18 | SSA def(y) | -| Test.cs:9:13:9:13 | y | Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:31:13:31:18 | SSA def(y) | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:14:13:14:19 | SSA def(y) | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:20:13:20:18 | SSA def(y) | +| Test.cs:9:13:9:13 | y | Test.cs:25:9:32:9 | SSA phi(y) | Test.cs:31:13:31:18 | SSA def(y) | | Test.cs:9:13:9:13 | y | Test.cs:31:13:31:18 | SSA def(y) | Test.cs:31:13:31:18 | SSA def(y) | +| Test.cs:10:13:10:13 | z | Test.cs:11:9:23:9 | SSA phi(z) | Test.cs:15:13:15:17 | SSA def(z) | +| Test.cs:10:13:10:13 | z | Test.cs:11:9:23:9 | SSA phi(z) | Test.cs:22:13:22:17 | SSA def(z) | | Test.cs:10:13:10:13 | z | Test.cs:15:13:15:17 | SSA def(z) | Test.cs:15:13:15:17 | SSA def(z) | | Test.cs:10:13:10:13 | z | Test.cs:22:13:22:17 | SSA def(z) | Test.cs:22:13:22:17 | SSA def(z) | -| Test.cs:10:13:10:13 | z | Test.cs:24:9:24:15 | SSA phi(z) | Test.cs:15:13:15:17 | SSA def(z) | -| Test.cs:10:13:10:13 | z | Test.cs:24:9:24:15 | SSA phi(z) | Test.cs:22:13:22:17 | SSA def(z) | | Test.cs:34:18:34:18 | i | Test.cs:34:18:34:22 | SSA def(i) | Test.cs:34:18:34:22 | SSA def(i) | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:18:34:22 | SSA def(i) | -| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:33:34:35 | SSA def(i) | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | Test.cs:34:18:34:22 | SSA def(i) | +| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:30 | SSA phi(i) | Test.cs:34:33:34:35 | SSA def(i) | | Test.cs:34:18:34:18 | i | Test.cs:34:33:34:35 | SSA def(i) | Test.cs:34:33:34:35 | SSA def(i) | | Test.cs:39:22:39:22 | w | Test.cs:39:22:39:22 | SSA def(w) | Test.cs:39:22:39:22 | SSA def(w) | | Test.cs:46:16:46:18 | in | Test.cs:46:16:46:18 | SSA param(in) | Test.cs:46:16:46:18 | SSA param(in) | +| Test.cs:46:29:46:32 | out | Test.cs:48:9:55:9 | SSA phi(out) | Test.cs:50:13:50:20 | SSA def(out) | +| Test.cs:46:29:46:32 | out | Test.cs:48:9:55:9 | SSA phi(out) | Test.cs:54:13:54:20 | SSA def(out) | | Test.cs:46:29:46:32 | out | Test.cs:50:13:50:20 | SSA def(out) | Test.cs:50:13:50:20 | SSA def(out) | | Test.cs:46:29:46:32 | out | Test.cs:54:13:54:20 | SSA def(out) | Test.cs:54:13:54:20 | SSA def(out) | -| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:50:13:50:20 | SSA def(out) | -| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:54:13:54:20 | SSA def(out) | | Test.cs:56:13:56:17 | this.field | Test.cs:46:10:46:10 | SSA entry def(this.field) | Test.cs:46:10:46:10 | SSA entry def(this.field) | | Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | SSA def(this.field) | | Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | SSA param(x) | @@ -386,9 +388,9 @@ | Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | SSA param(b5) | Test.cs:76:60:76:61 | SSA param(b5) | | Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:76:69:76:70 | SSA param(b6) | | Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:78:13:78:17 | SSA def(x) | +| Test.cs:78:13:78:13 | x | Test.cs:102:9:110:9 | SSA phi(x) | Test.cs:78:13:78:17 | SSA def(x) | +| Test.cs:78:13:78:13 | x | Test.cs:102:9:110:9 | SSA phi(x) | Test.cs:108:13:108:17 | SSA def(x) | | Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:108:13:108:17 | SSA def(x) | -| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:78:13:78:17 | SSA def(x) | -| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:108:13:108:17 | SSA def(x) | | Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | SSA def(x) | | Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:14:9:14:32 | SSA def(x) | | Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:23:9:23:37 | SSA def(x) | From 1a6670a6bba566e12179213e4a599087e176a60c Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 26 Mar 2026 15:07:16 +0100 Subject: [PATCH 065/208] C#: Phi nodes are not expected to have associated Elements. --- .../dataflow/ssa/SsaDefElement.expected | 29 +------------------ 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected index 923d62a96ec..874b9aecfb5 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected @@ -51,12 +51,9 @@ | DefUse.cs:13:13:13:18 | SSA def(y) | DefUse.cs:13:13:13:18 | ... = ... | | DefUse.cs:18:13:18:18 | SSA def(y) | DefUse.cs:18:13:18:18 | ... = ... | | DefUse.cs:19:13:19:18 | SSA def(w) | DefUse.cs:19:13:19:18 | ... = ... | -| DefUse.cs:23:9:23:15 | SSA phi(w) | DefUse.cs:23:9:23:15 | ...; | -| DefUse.cs:23:9:23:15 | SSA phi(y) | DefUse.cs:23:9:23:15 | ...; | | DefUse.cs:28:13:28:18 | SSA def(y) | DefUse.cs:28:13:28:18 | ... = ... | | DefUse.cs:29:13:29:18 | SSA def(w) | DefUse.cs:29:13:29:18 | ... = ... | | DefUse.cs:39:13:39:18 | SSA def(y) | DefUse.cs:39:13:39:18 | ... = ... | -| DefUse.cs:42:9:42:15 | SSA phi(y) | DefUse.cs:42:9:42:15 | ...; | | DefUse.cs:44:13:44:17 | SSA def(z) | DefUse.cs:44:13:44:17 | Int32 z = ... | | DefUse.cs:47:23:47:23 | SSA def(z) | DefUse.cs:47:9:47:24 | call to method outMethod | | DefUse.cs:50:23:50:23 | SSA def(z) | DefUse.cs:50:9:50:24 | call to method refMethod | @@ -67,14 +64,12 @@ | DefUse.cs:67:19:67:27 | SSA def(tc) | DefUse.cs:67:19:67:27 | TestClass tc = ... | | DefUse.cs:79:13:79:18 | SSA def(x1) | DefUse.cs:79:13:79:18 | Int32 x1 = ... | | DefUse.cs:80:30:80:31 | SSA def(x1) | DefUse.cs:80:16:80:32 | call to method refMethod | -| DefUse.cs:80:30:80:31 | SSA phi(x1) | DefUse.cs:80:30:80:31 | access to local variable x1 | | DefUse.cs:83:13:83:18 | SSA def(x2) | DefUse.cs:83:13:83:18 | Int32 x2 = ... | | DefUse.cs:85:15:85:16 | SSA def(x2) | DefUse.cs:84:9:86:17 | call to method refOutMethod | | DefUse.cs:89:13:89:18 | SSA def(x3) | DefUse.cs:89:13:89:18 | Int32 x3 = ... | | DefUse.cs:92:15:92:16 | SSA def(x3) | DefUse.cs:91:9:93:17 | call to method refOutMethod | | DefUse.cs:93:15:93:16 | SSA def(x4) | DefUse.cs:91:9:93:17 | call to method refOutMethod | | DefUse.cs:97:13:97:18 | SSA def(x5) | DefUse.cs:97:13:97:18 | Int32 x5 = ... | -| DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:98:16:98:17 | access to local variable x5 | | DefUse.cs:101:13:101:23 | SSA def(x5) | DefUse.cs:101:13:101:23 | ... = ... | | DefUse.cs:104:9:104:15 | SSA def(x5) | DefUse.cs:104:9:104:15 | ... += ... | | DefUse.cs:114:47:114:52 | SSA def(i) | DefUse.cs:114:47:114:52 | ... = ... | @@ -97,16 +92,13 @@ | Example.cs:8:9:8:22 | SSA def(this.Field) | Example.cs:8:9:8:22 | ... = ... | | Example.cs:11:13:11:30 | SSA def(this.Field) | Example.cs:11:13:11:30 | ... = ... | | Example.cs:13:13:13:23 | SSA call def(this.Field) | Example.cs:13:13:13:23 | call to method SetField | -| Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:14:9:14:24 | ...; | | Example.cs:18:16:18:16 | SSA param(p) | Example.cs:18:16:18:16 | p | | Example.cs:18:24:18:24 | SSA param(b) | Example.cs:18:24:18:24 | b | | Example.cs:23:13:23:17 | SSA def(p) | Example.cs:23:13:23:17 | ... = ... | -| Example.cs:25:9:25:15 | SSA phi(p) | Example.cs:25:9:25:15 | ...; | | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | Fields.cs:16:17:16:17 | F | | Fields.cs:19:9:19:13 | SSA call def(this.xs) | Fields.cs:19:9:19:13 | call to method Upd | | Fields.cs:20:9:20:14 | SSA def(x) | Fields.cs:20:9:20:14 | ... = ... | | Fields.cs:22:13:22:17 | SSA call def(this.xs) | Fields.cs:22:13:22:17 | call to method Upd | -| Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:23:9:23:20 | ...; | | Fields.cs:24:9:24:23 | SSA def(this.xs) | Fields.cs:24:9:24:23 | ... = ... | | Fields.cs:28:17:28:17 | SSA entry def(Fields.stat) | Fields.cs:28:17:28:17 | G | | Fields.cs:28:17:28:17 | SSA entry def(this.xs) | Fields.cs:28:17:28:17 | G | @@ -125,9 +117,6 @@ | Fields.cs:49:13:49:28 | SSA def(f) | Fields.cs:49:13:49:28 | ... = ... | | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | Fields.cs:49:13:49:28 | ... = ... | | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | Fields.cs:49:17:49:28 | object creation of type Fields | -| Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:50:9:50:17 | ...; | -| Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:50:9:50:17 | ...; | -| Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:50:9:50:17 | ...; | | Fields.cs:51:9:51:20 | SSA call def(Fields.stat) | Fields.cs:51:9:51:20 | object creation of type Fields | | Fields.cs:61:17:61:17 | SSA entry def(this.LoopField) | Fields.cs:61:17:61:17 | H | | Fields.cs:61:17:61:17 | SSA entry def(this.SingleAccessedField) | Fields.cs:61:17:61:17 | H | @@ -189,7 +178,6 @@ | Properties.cs:19:9:19:13 | SSA call def(this.xs) | Properties.cs:19:9:19:13 | call to method Upd | | Properties.cs:20:9:20:14 | SSA def(x) | Properties.cs:20:9:20:14 | ... = ... | | Properties.cs:22:13:22:17 | SSA call def(this.xs) | Properties.cs:22:13:22:17 | call to method Upd | -| Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:23:9:23:20 | ...; | | Properties.cs:24:9:24:23 | SSA def(this.xs) | Properties.cs:24:9:24:23 | ... = ... | | Properties.cs:28:17:28:17 | SSA entry def(Properties.stat) | Properties.cs:28:17:28:17 | G | | Properties.cs:28:17:28:17 | SSA entry def(this.xs) | Properties.cs:28:17:28:17 | G | @@ -208,14 +196,10 @@ | Properties.cs:49:13:49:32 | SSA def(f) | Properties.cs:49:13:49:32 | ... = ... | | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | Properties.cs:49:13:49:32 | ... = ... | | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | Properties.cs:49:17:49:32 | object creation of type Properties | -| Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:50:9:50:17 | ...; | -| Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:50:9:50:17 | ...; | -| Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:50:9:50:17 | ...; | | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:51:9:51:24 | object creation of type Properties | | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | Properties.cs:61:17:61:17 | H | | Properties.cs:61:17:61:17 | SSA entry def(this.SingleAccessedProp) | Properties.cs:61:17:61:17 | H | | Properties.cs:61:23:61:23 | SSA param(i) | Properties.cs:61:23:61:23 | i | -| Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:63:16:63:16 | access to parameter i | | Properties.cs:63:16:63:18 | SSA def(i) | Properties.cs:63:16:63:18 | ...-- | | Properties.cs:70:17:70:17 | SSA entry def(this.SingleAccessedProp) | Properties.cs:70:17:70:17 | I | | Properties.cs:73:13:73:32 | SSA def(f) | Properties.cs:73:13:73:32 | Properties f = ... | @@ -248,28 +232,18 @@ | Test.cs:20:13:20:18 | SSA def(y) | Test.cs:20:13:20:18 | ... += ... | | Test.cs:21:13:21:22 | SSA def(this.field) | Test.cs:21:13:21:22 | ... = ... | | Test.cs:22:13:22:17 | SSA def(z) | Test.cs:22:13:22:17 | ... = ... | -| Test.cs:24:9:24:15 | SSA phi(this.field) | Test.cs:24:9:24:15 | ...; | -| Test.cs:24:9:24:15 | SSA phi(x) | Test.cs:24:9:24:15 | ...; | -| Test.cs:24:9:24:15 | SSA phi(y) | Test.cs:24:9:24:15 | ...; | -| Test.cs:24:9:24:15 | SSA phi(z) | Test.cs:24:9:24:15 | ...; | -| Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:25:16:25:16 | access to local variable x | -| Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:25:16:25:16 | access to local variable x | | Test.cs:27:17:27:24 | SSA def(param1) | Test.cs:27:17:27:24 | ...++ | | Test.cs:31:13:31:18 | SSA def(y) | Test.cs:31:13:31:18 | ... -= ... | -| Test.cs:33:9:33:19 | SSA phi(param1) | Test.cs:33:9:33:19 | ...; | | Test.cs:34:18:34:22 | SSA def(i) | Test.cs:34:18:34:22 | Int32 i = ... | -| Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:25:34:25 | access to local variable i | -| Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:34:25:34:25 | access to local variable i | | Test.cs:34:33:34:35 | SSA def(i) | Test.cs:34:33:34:35 | ...++ | | Test.cs:36:13:36:18 | SSA def(x) | Test.cs:36:13:36:18 | ... += ... | -| Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:39:9:42:9 | foreach (... ... in ...) ... | | Test.cs:39:22:39:22 | SSA def(w) | Test.cs:39:22:39:22 | Int32 w | +| Test.cs:39:22:39:22 | SSA phi(param1) | Test.cs:39:22:39:22 | Int32 w | | Test.cs:41:13:41:23 | SSA def(param1) | Test.cs:41:13:41:23 | ... += ... | | Test.cs:46:10:46:10 | SSA entry def(this.field) | Test.cs:46:10:46:10 | g | | Test.cs:46:16:46:18 | SSA param(in) | Test.cs:46:16:46:18 | in | | Test.cs:50:13:50:20 | SSA def(out) | Test.cs:50:13:50:20 | ... = ... | | Test.cs:54:13:54:20 | SSA def(out) | Test.cs:54:13:54:20 | ... = ... | -| Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:56:9:56:19 | ...; | | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | ... = ... | | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | x | | Test.cs:68:45:68:45 | SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e | @@ -281,7 +255,6 @@ | Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:76:69:76:70 | b6 | | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:78:13:78:17 | Int32 x = ... | | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:108:13:108:17 | ... = ... | -| Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:113:9:116:9 | if (...) ... | | Tuples.cs:10:9:10:54 | SSA def(b) | Tuples.cs:10:9:10:54 | ... = ... | | Tuples.cs:10:9:10:54 | SSA def(s) | Tuples.cs:10:9:10:54 | ... = ... | | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | ... = ... | From 6010640cea875e083b897b8070448d17ed90822c Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 30 Mar 2026 14:45:36 +0200 Subject: [PATCH 066/208] C#: Accept bugfix. --- .../controlflow/guards/BooleanGuardedExpr.expected | 4 ---- .../controlflow/guards/GuardedControlFlowNode.expected | 8 -------- .../library-tests/controlflow/guards/GuardedExpr.expected | 8 -------- csharp/ql/test/library-tests/controlflow/guards/Guards.cs | 4 ++-- 4 files changed, 2 insertions(+), 22 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected index ac260924d10..649e8362370 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected @@ -27,12 +27,8 @@ | Guards.cs:36:32:36:32 | access to parameter x | Guards.cs:35:13:35:21 | ... == ... | Guards.cs:35:13:35:13 | access to parameter x | false | | Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:34 | ... == ... | Guards.cs:35:26:35:26 | access to parameter y | false | | Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | false | -| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | true | | Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | false | -| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | true | -| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | false | | Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | true | -| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | false | | Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | true | | Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:25 | ... != ... | Guards.cs:47:13:47:17 | access to field Field | true | | Guards.cs:55:27:55:27 | access to parameter g | Guards.cs:53:13:53:27 | ... == ... | Guards.cs:53:13:53:13 | access to parameter g | false | diff --git a/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected b/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected index d322431b1df..b34cae88b80 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected @@ -64,20 +64,12 @@ | Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | not null | | Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:34 | ... == ... | Guards.cs:35:26:35:26 | access to parameter y | false | | Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | not null | -| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | null | | Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | false | -| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | true | | Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | not null | -| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | null | | Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | false | -| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | true | | Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | not null | -| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | null | -| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | false | | Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | true | | Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | not null | -| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | null | -| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | false | | Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | true | | Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | not null | | Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:25 | ... != ... | Guards.cs:47:13:47:17 | access to field Field | true | diff --git a/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected index d322431b1df..b34cae88b80 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected @@ -64,20 +64,12 @@ | Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | Guards.cs:35:26:35:26 | access to parameter y | not null | | Guards.cs:36:36:36:36 | access to parameter y | Guards.cs:35:26:35:34 | ... == ... | Guards.cs:35:26:35:26 | access to parameter y | false | | Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | not null | -| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | Guards.cs:38:15:38:15 | access to parameter x | null | | Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | false | -| Guards.cs:39:31:39:31 | access to parameter x | Guards.cs:38:15:38:23 | ... == ... | Guards.cs:38:15:38:15 | access to parameter x | true | | Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | not null | -| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | Guards.cs:38:28:38:28 | access to parameter y | null | | Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | false | -| Guards.cs:39:35:39:35 | access to parameter y | Guards.cs:38:28:38:36 | ... == ... | Guards.cs:38:28:38:28 | access to parameter y | true | | Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | not null | -| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | Guards.cs:41:17:41:17 | access to parameter x | null | -| Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | false | | Guards.cs:42:32:42:32 | access to parameter x | Guards.cs:41:17:41:25 | ... != ... | Guards.cs:41:17:41:17 | access to parameter x | true | | Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | not null | -| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | Guards.cs:41:30:41:30 | access to parameter y | null | -| Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | false | | Guards.cs:42:36:42:36 | access to parameter y | Guards.cs:41:30:41:38 | ... != ... | Guards.cs:41:30:41:30 | access to parameter y | true | | Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | Guards.cs:47:13:47:17 | access to field Field | not null | | Guards.cs:48:31:48:40 | access to field Field | Guards.cs:47:13:47:25 | ... != ... | Guards.cs:47:13:47:17 | access to field Field | true | diff --git a/csharp/ql/test/library-tests/controlflow/guards/Guards.cs b/csharp/ql/test/library-tests/controlflow/guards/Guards.cs index 8c4abb815e8..045967d6134 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/Guards.cs +++ b/csharp/ql/test/library-tests/controlflow/guards/Guards.cs @@ -35,10 +35,10 @@ public class Guards if (x == null || y == null) { } else Console.WriteLine(x + y); // null guarded - if (!(x == null || y == null)) // MISHANDLED, likely due to splitting + if (!(x == null || y == null)) Console.WriteLine(x + y); // null guarded - if (!!!(x != null && y != null)) { } // MISHANDLED, likely due to splitting + if (!!!(x != null && y != null)) { } else Console.WriteLine(x + y); // null guarded if (Field != null) From a5c99f96931a040540932d991fba945f2db079f3 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 30 Mar 2026 15:31:09 +0200 Subject: [PATCH 067/208] C#: Accept harmless CFG changes. --- .../controlflow/guards/BooleanGuardedExpr.expected | 2 +- .../controlflow/guards/GuardedControlFlowNode.expected | 3 +-- .../test/library-tests/controlflow/guards/GuardedExpr.expected | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected index 649e8362370..b274d7905b2 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected @@ -79,7 +79,7 @@ | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | false | -| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:17 | access to parameter o | true | +| Guards.cs:334:13:334:15 | access to constant B | Guards.cs:334:13:334:20 | ... => ... | Guards.cs:334:13:334:15 | access to constant B | true | | Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false | | Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true | | Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true | diff --git a/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected b/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected index b34cae88b80..c038c49ba17 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected @@ -199,11 +199,10 @@ | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | false | -| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:17 | access to parameter o | true | | Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false | | Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false | | Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | false | -| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:28 | call to method ToString | true | +| Guards.cs:334:13:334:15 | access to constant B | Guards.cs:334:13:334:20 | ... => ... | Guards.cs:334:13:334:15 | access to constant B | true | | Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false | | Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | not null | | Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | not null | diff --git a/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected index b34cae88b80..c038c49ba17 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected @@ -199,11 +199,10 @@ | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | false | -| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:17 | access to parameter o | true | | Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false | | Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false | | Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | false | -| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:286:13:287:28 | ... => ... | Guards.cs:287:17:287:28 | call to method ToString | true | +| Guards.cs:334:13:334:15 | access to constant B | Guards.cs:334:13:334:20 | ... => ... | Guards.cs:334:13:334:15 | access to constant B | true | | Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false | | Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | not null | | Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | not null | From 5d589093cf0cd93d17f7000efcbd96a3eac86b13 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 30 Mar 2026 15:35:10 +0200 Subject: [PATCH 068/208] C#: Accept CFG changes. --- .../csharp7/LocalTaintFlow.expected | 29 ++++++------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected index 90ef19f62fe..61693ac518e 100644 --- a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected +++ b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected @@ -251,39 +251,32 @@ | 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 | | CSharp7.cs:233:13:233:13 | access to local variable o | CSharp7.cs:233:18:233:23 | Int32 i1 | -| CSharp7.cs:233:13:233:13 | access to local variable o | CSharp7.cs:235:13:235:42 | [input] SSA phi read(o) | +| CSharp7.cs:233:13:233:13 | access to local variable o | CSharp7.cs:234:9:236:9 | [input] SSA phi read(o) | | CSharp7.cs:233:13:233:13 | access to local variable o | CSharp7.cs:237:18:237:18 | access to local variable o | -| CSharp7.cs:233:13:233:23 | [false] ... is ... | CSharp7.cs:233:13:233:33 | [false] ... && ... | -| CSharp7.cs:233:13:233:23 | [false] ... is ... | CSharp7.cs:233:13:233:33 | [true] ... && ... | -| CSharp7.cs:233:13:233:23 | [true] ... is ... | CSharp7.cs:233:13:233:33 | [false] ... && ... | -| CSharp7.cs:233:13:233:23 | [true] ... is ... | CSharp7.cs:233:13:233:33 | [true] ... && ... | +| CSharp7.cs:233:13:233:23 | ... is ... | CSharp7.cs:233:13:233:33 | ... && ... | | CSharp7.cs:233:18:233:23 | Int32 i1 | CSharp7.cs:233:18:233:23 | SSA def(i1) | | CSharp7.cs:233:18:233:23 | SSA def(i1) | CSharp7.cs:233:28:233:29 | access to local variable i1 | | CSharp7.cs:233:28:233:29 | access to local variable i1 | CSharp7.cs:233:28:233:33 | ... > ... | | CSharp7.cs:233:28:233:29 | access to local variable i1 | CSharp7.cs:235:38:235:39 | access to local variable i1 | -| CSharp7.cs:233:28:233:33 | ... > ... | CSharp7.cs:233:13:233:33 | [false] ... && ... | -| CSharp7.cs:233:28:233:33 | ... > ... | CSharp7.cs:233:13:233:33 | [true] ... && ... | -| CSharp7.cs:235:13:235:42 | [input] SSA phi read(o) | CSharp7.cs:248:17:248:17 | access to local variable o | +| CSharp7.cs:233:28:233:33 | ... > ... | CSharp7.cs:233:13:233:33 | ... && ... | +| CSharp7.cs:234:9:236:9 | [input] SSA phi read(o) | CSharp7.cs:248:17:248:17 | access to local variable o | | CSharp7.cs:235:33:235:36 | "int " | CSharp7.cs:235:31:235:41 | $"..." | | CSharp7.cs:235:37:235:40 | {...} | CSharp7.cs:235:31:235:41 | $"..." | | CSharp7.cs:235:38:235:39 | access to local variable i1 | CSharp7.cs:235:37:235:40 | {...} | | CSharp7.cs:237:18:237:18 | access to local variable o | CSharp7.cs:237:23:237:31 | String s1 | -| CSharp7.cs:237:18:237:18 | access to local variable o | CSharp7.cs:239:13:239:45 | [input] SSA phi read(o) | +| CSharp7.cs:237:18:237:18 | access to local variable o | CSharp7.cs:238:9:240:9 | [input] SSA phi read(o) | | CSharp7.cs:237:18:237:18 | access to local variable o | CSharp7.cs:241:18:241:18 | access to local variable o | | CSharp7.cs:237:23:237:31 | SSA def(s1) | CSharp7.cs:239:41:239:42 | access to local variable s1 | | CSharp7.cs:237:23:237:31 | String s1 | CSharp7.cs:237:23:237:31 | SSA def(s1) | -| CSharp7.cs:239:13:239:45 | [input] SSA phi read(o) | CSharp7.cs:248:17:248:17 | access to local variable o | +| CSharp7.cs:238:9:240:9 | [input] SSA phi read(o) | CSharp7.cs:248:17:248:17 | access to local variable o | | CSharp7.cs:239:33:239:39 | "string " | CSharp7.cs:239:31:239:44 | $"..." | | CSharp7.cs:239:40:239:43 | {...} | CSharp7.cs:239:31:239:44 | $"..." | | CSharp7.cs:239:41:239:42 | access to local variable s1 | CSharp7.cs:239:40:239:43 | {...} | | CSharp7.cs:241:18:241:18 | access to local variable o | CSharp7.cs:242:9:243:9 | [input] SSA phi read(o) | | CSharp7.cs:241:18:241:18 | access to local variable o | CSharp7.cs:244:18:244:18 | access to local variable o | | CSharp7.cs:242:9:243:9 | [input] SSA phi read(o) | CSharp7.cs:248:17:248:17 | access to local variable o | -| CSharp7.cs:244:18:244:18 | access to local variable o | CSharp7.cs:244:18:244:28 | [input] SSA phi read(o) | | CSharp7.cs:244:18:244:18 | access to local variable o | CSharp7.cs:244:23:244:28 | Object v1 | -| CSharp7.cs:244:18:244:18 | access to local variable o | CSharp7.cs:245:9:246:9 | [input] SSA phi read(o) | -| CSharp7.cs:244:18:244:28 | [input] SSA phi read(o) | CSharp7.cs:248:17:248:17 | access to local variable o | -| CSharp7.cs:245:9:246:9 | [input] SSA phi read(o) | CSharp7.cs:248:17:248:17 | access to local variable o | +| CSharp7.cs:244:18:244:18 | access to local variable o | CSharp7.cs:248:17:248:17 | access to local variable o | | CSharp7.cs:248:17:248:17 | access to local variable o | CSharp7.cs:254:27:254:27 | access to local variable o | | CSharp7.cs:248:17:248:17 | access to local variable o | CSharp7.cs:257:18:257:23 | Int32 i2 | | CSharp7.cs:248:17:248:17 | access to local variable o | CSharp7.cs:260:18:260:23 | Int32 i3 | @@ -335,14 +328,10 @@ | CSharp7.cs:297:22:297:22 | 0 | CSharp7.cs:297:18:297:18 | access to local variable x | | CSharp7.cs:297:25:297:25 | access to local variable x | CSharp7.cs:297:25:297:30 | ... < ... | | CSharp7.cs:297:25:297:25 | access to local variable x | CSharp7.cs:297:35:297:35 | access to local variable x | -| CSharp7.cs:297:25:297:30 | ... < ... | CSharp7.cs:297:25:297:44 | [false] ... && ... | -| CSharp7.cs:297:25:297:30 | ... < ... | CSharp7.cs:297:25:297:44 | [true] ... && ... | +| CSharp7.cs:297:25:297:30 | ... < ... | CSharp7.cs:297:25:297:44 | ... && ... | | CSharp7.cs:297:35:297:35 | access to local variable x | CSharp7.cs:297:40:297:44 | Int32 y | | CSharp7.cs:297:35:297:35 | access to local variable x | CSharp7.cs:297:49:297:49 | access to local variable x | -| CSharp7.cs:297:35:297:44 | [false] ... is ... | CSharp7.cs:297:25:297:44 | [false] ... && ... | -| CSharp7.cs:297:35:297:44 | [false] ... is ... | CSharp7.cs:297:25:297:44 | [true] ... && ... | -| CSharp7.cs:297:35:297:44 | [true] ... is ... | CSharp7.cs:297:25:297:44 | [false] ... && ... | -| CSharp7.cs:297:35:297:44 | [true] ... is ... | CSharp7.cs:297:25:297:44 | [true] ... && ... | +| CSharp7.cs:297:35:297:44 | ... is ... | CSharp7.cs:297:25:297:44 | ... && ... | | CSharp7.cs:297:40:297:44 | Int32 y | CSharp7.cs:297:40:297:44 | SSA def(y) | | CSharp7.cs:297:40:297:44 | SSA def(y) | CSharp7.cs:299:31:299:31 | access to local variable y | | CSharp7.cs:297:47:297:49 | SSA def(x) | CSharp7.cs:297:25:297:25 | access to local variable x | From 49cc931f920eca03f87e32b98b0213e8ea812519 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 30 Mar 2026 15:36:55 +0200 Subject: [PATCH 069/208] C#: Compile-time constants no longer have CFG nodes. --- .../dataflow/modulusanalysis/ModulusAnalysis.expected | 4 ---- 1 file changed, 4 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected b/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected index bc1f2cad5c7..3e285f8d7bb 100644 --- a/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected +++ b/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected @@ -1,7 +1,3 @@ -| ModulusAnalysis.cs:6:15:6:21 | ... = ... | 0 | 42 | 0 | -| ModulusAnalysis.cs:6:20:6:21 | 42 | 0 | 42 | 0 | -| ModulusAnalysis.cs:7:15:7:21 | ... = ... | 0 | 43 | 0 | -| ModulusAnalysis.cs:7:20:7:21 | 43 | 0 | 43 | 0 | | ModulusAnalysis.cs:11:18:11:18 | access to parameter i | SSA param(i) | 0 | 0 | | ModulusAnalysis.cs:11:18:11:22 | ... + ... | SSA param(i) | 3 | 0 | | ModulusAnalysis.cs:11:22:11:22 | 3 | 0 | 3 | 0 | From e90243c34850c27cabc680aaf25688bf6164724b Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 31 Mar 2026 11:04:42 +0200 Subject: [PATCH 070/208] C#: Accept irrelevant changes. The additions are unintentional, but the fault lies with the shared SignAnalysis code. The removals are due to compile-time constant initializers no longer having CFG nodes. --- .../dataflow/signanalysis/SignAnalysis.expected | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected index 4dce60d9c2d..ae15c963f5e 100644 --- a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected +++ b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected @@ -88,6 +88,7 @@ | SignAnalysis.cs:108:13:108:21 | Decimal de = ... | strictlyPositive | | SignAnalysis.cs:108:18:108:21 | 4.2 | strictlyPositive | | SignAnalysis.cs:109:34:109:35 | access to local variable de | strictlyPositive | +| SignAnalysis.cs:110:13:110:13 | access to local variable c | positive | | SignAnalysis.cs:110:13:110:19 | Char c = ... | strictlyPositive | | SignAnalysis.cs:110:17:110:19 | a | strictlyPositive | | SignAnalysis.cs:111:34:111:34 | access to local variable c | strictlyPositive | @@ -161,6 +162,8 @@ | SignAnalysis.cs:306:21:306:22 | -... | strictlyNegative | | SignAnalysis.cs:306:22:306:22 | 1 | strictlyPositive | | SignAnalysis.cs:309:38:309:38 | access to local variable x | strictlyNegative | +| SignAnalysis.cs:315:13:315:15 | access to local variable min | positive | +| SignAnalysis.cs:316:13:316:15 | access to local variable max | positive | | SignAnalysis.cs:316:13:316:31 | Char max = ... | strictlyPositive | | SignAnalysis.cs:316:19:316:31 | access to constant MaxValue | strictlyPositive | | SignAnalysis.cs:317:13:317:23 | Int32 c = ... | strictlyPositive | @@ -195,6 +198,7 @@ | SignAnalysis.cs:357:13:357:13 | access to parameter i | positive | | SignAnalysis.cs:359:38:359:38 | access to parameter i | strictlyPositive | | SignAnalysis.cs:371:38:371:38 | access to local variable y | strictlyNegative | +| SignAnalysis.cs:377:16:377:17 | access to local variable dp | positive | | SignAnalysis.cs:377:16:377:22 | Single* dp = ... | positive | | SignAnalysis.cs:377:21:377:22 | &... | positive | | SignAnalysis.cs:378:18:378:19 | access to local variable dp | positive | @@ -213,14 +217,12 @@ | SignAnalysis.cs:414:13:414:13 | access to local variable i | strictlyPositive | | SignAnalysis.cs:415:31:415:31 | access to local variable i | strictlyPositive | | SignAnalysis.cs:424:31:424:31 | access to local variable x | strictlyNegative | -| SignAnalysis.cs:428:19:428:19 | access to constant A | strictlyPositive | -| SignAnalysis.cs:428:19:428:24 | ... = ... | strictlyPositive | -| SignAnalysis.cs:428:23:428:24 | 12 | strictlyPositive | | SignAnalysis.cs:434:38:434:38 | access to local variable i | strictlyNegative | | SignAnalysis.cs:440:23:440:25 | access to parameter src | positive | | SignAnalysis.cs:440:29:440:31 | access to parameter dst | positive | | SignAnalysis.cs:443:38:443:38 | access to local variable x | strictlyNegative | | SignAnalysis.cs:446:31:446:32 | 10 | strictlyPositive | +| SignAnalysis.cs:448:22:448:23 | access to local variable to | positive | | SignAnalysis.cs:448:22:448:29 | Byte* to = ... | positive | | SignAnalysis.cs:448:27:448:29 | (...) ... | positive | | SignAnalysis.cs:450:38:450:44 | (...) ... | positive | @@ -232,6 +234,7 @@ | SignAnalysis.cs:457:18:457:27 | call to method Unsigned | positive | | SignAnalysis.cs:458:13:458:13 | access to local variable l | positive | | SignAnalysis.cs:460:38:460:38 | access to local variable l | strictlyPositive | +| SignAnalysis.cs:463:14:463:14 | access to local variable x | positive | | SignAnalysis.cs:463:14:463:24 | UInt32 x = ... | positive | | SignAnalysis.cs:463:18:463:24 | (...) ... | positive | | SignAnalysis.cs:464:9:464:9 | access to local variable x | positive | From 88256eeee8a6da8fc37dcaed713ac3e41855bdf7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 31 Mar 2026 13:22:34 +0200 Subject: [PATCH 071/208] C#: GuardedExpr no longer contains expressions guarded solely by disjunctions. --- .../controlflow/guards-large/GuardedExpr.expected | 3 --- 1 file changed, 3 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/guards-large/GuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards-large/GuardedExpr.expected index b390b5be639..b3fb032a26c 100644 --- a/csharp/ql/test/library-tests/controlflow/guards-large/GuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards-large/GuardedExpr.expected @@ -1,7 +1,5 @@ | GuardsStressTest.cs:8:26:8:27 | access to field ch | -| GuardsStressTest.cs:9:4:9:5 | access to field ch | | GuardsStressTest.cs:9:17:9:18 | access to field ch | -| GuardsStressTest.cs:10:4:10:5 | access to field ch | | GuardsStressTest.cs:11:4:11:5 | access to field ch | | GuardsStressTest.cs:11:17:11:18 | access to field ch | | GuardsStressTest.cs:12:4:12:5 | access to field ch | @@ -793,5 +791,4 @@ | GuardsStressTest.cs:438:19:438:20 | access to field ch | | GuardsStressTest.cs:439:4:439:5 | access to field ch | | GuardsStressTest.cs:439:19:439:20 | access to field ch | -| GuardsStressTest.cs:439:41:439:42 | access to field ch | | GuardsStressTest.cs:440:23:440:24 | access to field ch | From 773881f333b0bfdaf40d2d1f4b67511effa9df2d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 31 Mar 2026 13:40:02 +0200 Subject: [PATCH 072/208] C#: Accept data flow inconsistency check for read+write calls. --- csharp/ql/consistency-queries/DataFlowConsistency.ql | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/csharp/ql/consistency-queries/DataFlowConsistency.ql b/csharp/ql/consistency-queries/DataFlowConsistency.ql index 983206aada2..6060304bd9c 100644 --- a/csharp/ql/consistency-queries/DataFlowConsistency.ql +++ b/csharp/ql/consistency-queries/DataFlowConsistency.ql @@ -56,6 +56,13 @@ private module Input implements InputSig { ) or call.(NonDelegateDataFlowCall).getDispatchCall().isReflection() + or + // Exclude calls that are both getter and setter calls, as they share the same argument nodes. + exists(AccessorCall ac | + call.(NonDelegateDataFlowCall).getDispatchCall().getCall() = ac and + ac instanceof AssignableRead and + ac instanceof AssignableWrite + ) ) } } From a997d9f80c92766c30e6d294f2d75f1095337ee7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 31 Mar 2026 13:42:25 +0200 Subject: [PATCH 073/208] C#: Accept fixed consistency check. --- .../controlflow/graph/CONSISTENCY/CfgConsistency.expected | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 csharp/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected diff --git a/csharp/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected b/csharp/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected deleted file mode 100644 index ff3ec45f5ce..00000000000 --- a/csharp/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected +++ /dev/null @@ -1,6 +0,0 @@ -multipleSuccessors -| BreakInTry.cs:31:21:31:32 | ... == ... | false | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| BreakInTry.cs:31:21:31:32 | ... == ... | false | BreakInTry.cs:35:7:35:7 | ; | -simpleAndNormalSuccessors -| BreakInTry.cs:32:21:32:21 | ; | break | successor | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| Finally.cs:97:21:97:23 | ...-- | break | successor | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:77:16:77:16 | access to local variable i | From a69581966b63ffaea492490a0a94e71f28e1c118 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 31 Mar 2026 14:55:24 +0200 Subject: [PATCH 074/208] C#: Accept CFG changes for "first" relation. --- .../controlflow/graph/EntryElement.expected | 732 ++++++++++-------- 1 file changed, 409 insertions(+), 323 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected index 248562dbc83..ea8c1df4363 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected @@ -163,7 +163,8 @@ | AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:10:58:13 | this access | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:22:58:25 | this access | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:22:58:25 | this access | -| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:37:58:40 | this access | +| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:34:58:34 | access to parameter i | +| AccessorCalls.cs:58:34:58:34 | access to parameter i | AccessorCalls.cs:58:34:58:34 | access to parameter i | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:37:58:40 | this access | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:37:58:40 | this access | | AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:42:58:42 | 0 | @@ -187,7 +188,8 @@ | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:27 | this access | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:24:63:27 | this access | -| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:41:63:44 | this access | +| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:38:63:38 | access to parameter i | +| AccessorCalls.cs:63:38:63:38 | access to parameter i | AccessorCalls.cs:63:38:63:38 | access to parameter i | | AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:41:63:44 | this access | | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | | AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:41:63:44 | this access | @@ -207,7 +209,8 @@ | AccessorCalls.cs:63:94:63:94 | 1 | AccessorCalls.cs:63:94:63:94 | 1 | | AccessorCalls.cs:67:5:74:5 | {...} | AccessorCalls.cs:67:5:74:5 | {...} | | AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:68:9:68:22 | ... ...; | -| AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:68:21:68:21 | access to parameter o | +| AccessorCalls.cs:68:17:68:17 | access to local variable d | AccessorCalls.cs:68:17:68:17 | access to local variable d | +| AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:68:17:68:17 | access to local variable d | | AccessorCalls.cs:68:21:68:21 | access to parameter o | AccessorCalls.cs:68:21:68:21 | access to parameter o | | AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:9:69:9 | access to local variable d | | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:9 | access to local variable d | @@ -239,7 +242,8 @@ | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:10 | access to local variable d | | AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:24:73:27 | this access | | AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:24:73:27 | this access | -| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:39:73:39 | access to local variable d | +| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:36:73:36 | access to parameter i | +| AccessorCalls.cs:73:36:73:36 | access to parameter i | AccessorCalls.cs:73:36:73:36 | access to parameter i | | AccessorCalls.cs:73:39:73:39 | access to local variable d | AccessorCalls.cs:73:39:73:39 | access to local variable d | | AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:39:73:39 | access to local variable d | | AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:73:41:73:41 | 0 | @@ -263,13 +267,13 @@ | ArrayCreation.cs:5:28:5:28 | 0 | ArrayCreation.cs:5:28:5:28 | 0 | | ArrayCreation.cs:5:31:5:31 | 1 | ArrayCreation.cs:5:31:5:31 | 1 | | ArrayCreation.cs:7:19:7:36 | 2 | ArrayCreation.cs:7:19:7:36 | 2 | -| ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:19:7:36 | 2 | +| ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:31:7:31 | 0 | | ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:31:7:31 | 0 | | ArrayCreation.cs:7:31:7:31 | 0 | ArrayCreation.cs:7:31:7:31 | 0 | | ArrayCreation.cs:7:34:7:34 | 1 | ArrayCreation.cs:7:34:7:34 | 1 | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | 2 | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | 2 | -| ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:20:9:52 | 2 | +| ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:35:9:35 | 0 | | ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:35:9:35 | 0 | | ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:35:9:35 | 0 | | ArrayCreation.cs:9:35:9:35 | 0 | ArrayCreation.cs:9:35:9:35 | 0 | @@ -283,9 +287,10 @@ | 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 | ... ...; | -| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:9:20:9:20 | access to parameter b | +| Assert.cs:9:16:9:16 | access to local variable s | Assert.cs:9:16:9:16 | access to local variable s | +| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:9:16:9:16 | access to local variable s | | Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | access to parameter b | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:20:9:20 | access to parameter b | +| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:20:9:32 | ... ? ... : ... | | Assert.cs:9:24:9:27 | null | Assert.cs:9:24:9:27 | null | | Assert.cs:9:31:9:32 | "" | Assert.cs:9:31:9:32 | "" | | Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:22:10:22 | access to local variable s | @@ -299,9 +304,10 @@ | Assert.cs:11:27:11:34 | access to property Length | Assert.cs:11:27:11:27 | access to local variable s | | Assert.cs:15:5:19:5 | {...} | Assert.cs:15:5:19:5 | {...} | | Assert.cs:16:9:16:33 | ... ...; | Assert.cs:16:9:16:33 | ... ...; | -| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:16:20:16:20 | access to parameter b | +| Assert.cs:16:16:16:16 | access to local variable s | Assert.cs:16:16:16:16 | access to local variable s | +| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:16:16:16:16 | access to local variable s | | Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | access to parameter b | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:20:16:20 | access to parameter b | +| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:20:16:32 | ... ? ... : ... | | Assert.cs:16:24:16:27 | null | Assert.cs:16:24:16:27 | null | | Assert.cs:16:31:16:32 | "" | Assert.cs:16:31:16:32 | "" | | Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:23:17:23 | access to local variable s | @@ -313,9 +319,10 @@ | Assert.cs:18:27:18:34 | access to property Length | Assert.cs:18:27:18:27 | access to local variable s | | Assert.cs:22:5:26:5 | {...} | Assert.cs:22:5:26:5 | {...} | | Assert.cs:23:9:23:33 | ... ...; | Assert.cs:23:9:23:33 | ... ...; | -| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:23:20:23:20 | access to parameter b | +| Assert.cs:23:16:23:16 | access to local variable s | Assert.cs:23:16:23:16 | access to local variable s | +| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:23:16:23:16 | access to local variable s | | Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | access to parameter b | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:20:23:20 | access to parameter b | +| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:20:23:32 | ... ? ... : ... | | Assert.cs:23:24:23:27 | null | Assert.cs:23:24:23:27 | null | | Assert.cs:23:31:23:32 | "" | Assert.cs:23:31:23:32 | "" | | Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:26:24:26 | access to local variable s | @@ -327,9 +334,10 @@ | Assert.cs:25:27:25:34 | access to property Length | Assert.cs:25:27:25:27 | access to local variable s | | Assert.cs:29:5:33:5 | {...} | Assert.cs:29:5:33:5 | {...} | | Assert.cs:30:9:30:33 | ... ...; | Assert.cs:30:9:30:33 | ... ...; | -| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:30:20:30:20 | access to parameter b | +| Assert.cs:30:16:30:16 | access to local variable s | Assert.cs:30:16:30:16 | access to local variable s | +| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:30:16:30:16 | access to local variable s | | Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | access to parameter b | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:20:30:20 | access to parameter b | +| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:20:30:32 | ... ? ... : ... | | Assert.cs:30:24:30:27 | null | Assert.cs:30:24:30:27 | null | | Assert.cs:30:31:30:32 | "" | Assert.cs:30:31:30:32 | "" | | Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:23:31:23 | access to local variable s | @@ -343,9 +351,10 @@ | Assert.cs:32:27:32:34 | access to property Length | Assert.cs:32:27:32:27 | access to local variable s | | Assert.cs:36:5:40:5 | {...} | Assert.cs:36:5:40:5 | {...} | | Assert.cs:37:9:37:33 | ... ...; | Assert.cs:37:9:37:33 | ... ...; | -| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:37:20:37:20 | access to parameter b | +| Assert.cs:37:16:37:16 | access to local variable s | Assert.cs:37:16:37:16 | access to local variable s | +| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:37:16:37:16 | access to local variable s | | Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | access to parameter b | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:20:37:20 | access to parameter b | +| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:20:37:32 | ... ? ... : ... | | Assert.cs:37:24:37:27 | null | Assert.cs:37:24:37:27 | null | | Assert.cs:37:31:37:32 | "" | Assert.cs:37:31:37:32 | "" | | Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:23:38:23 | access to local variable s | @@ -359,9 +368,10 @@ | Assert.cs:39:27:39:34 | access to property Length | Assert.cs:39:27:39:27 | access to local variable s | | Assert.cs:43:5:47:5 | {...} | Assert.cs:43:5:47:5 | {...} | | Assert.cs:44:9:44:33 | ... ...; | Assert.cs:44:9:44:33 | ... ...; | -| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:44:20:44:20 | access to parameter b | +| Assert.cs:44:16:44:16 | access to local variable s | Assert.cs:44:16:44:16 | access to local variable s | +| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:44:16:44:16 | access to local variable s | | Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | access to parameter b | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:20:44:20 | access to parameter b | +| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:20:44:32 | ... ? ... : ... | | Assert.cs:44:24:44:27 | null | Assert.cs:44:24:44:27 | null | | Assert.cs:44:31:44:32 | "" | Assert.cs:44:31:44:32 | "" | | Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:24:45:24 | access to local variable s | @@ -375,9 +385,10 @@ | Assert.cs:46:27:46:34 | access to property Length | Assert.cs:46:27:46:27 | access to local variable s | | Assert.cs:50:5:54:5 | {...} | Assert.cs:50:5:54:5 | {...} | | Assert.cs:51:9:51:33 | ... ...; | Assert.cs:51:9:51:33 | ... ...; | -| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:51:20:51:20 | access to parameter b | +| Assert.cs:51:16:51:16 | access to local variable s | Assert.cs:51:16:51:16 | access to local variable s | +| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:51:16:51:16 | access to local variable s | | Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | access to parameter b | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:20:51:20 | access to parameter b | +| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:20:51:32 | ... ? ... : ... | | Assert.cs:51:24:51:27 | null | Assert.cs:51:24:51:27 | null | | Assert.cs:51:31:51:32 | "" | Assert.cs:51:31:51:32 | "" | | Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:24:52:24 | access to local variable s | @@ -391,16 +402,17 @@ | Assert.cs:53:27:53:34 | access to property Length | Assert.cs:53:27:53:27 | access to local variable s | | Assert.cs:57:5:61:5 | {...} | Assert.cs:57:5:61:5 | {...} | | Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:9:58:33 | ... ...; | -| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:20:58:20 | access to parameter b | +| Assert.cs:58:16:58:16 | access to local variable s | Assert.cs:58:16:58:16 | access to local variable s | +| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:16:58:16 | access to local variable s | | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:32 | ... ? ... : ... | | Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | | Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:23:59:23 | access to local variable s | +| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:23:59:36 | ... && ... | | Assert.cs:59:9:59:38 | ...; | Assert.cs:59:9:59:38 | ...; | | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | | Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:23 | access to local variable s | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:23 | access to local variable s | +| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:36 | ... && ... | | Assert.cs:59:28:59:31 | null | Assert.cs:59:28:59:31 | null | | Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | | Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:27:60:27 | access to local variable s | @@ -409,16 +421,17 @@ | Assert.cs:60:27:60:34 | access to property Length | Assert.cs:60:27:60:27 | access to local variable s | | Assert.cs:64:5:68:5 | {...} | Assert.cs:64:5:68:5 | {...} | | Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:9:65:33 | ... ...; | -| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:20:65:20 | access to parameter b | +| Assert.cs:65:16:65:16 | access to local variable s | Assert.cs:65:16:65:16 | access to local variable s | +| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:16:65:16 | access to local variable s | | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:32 | ... ? ... : ... | | Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | | Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:24:66:24 | access to local variable s | +| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:24:66:37 | ... \|\| ... | | Assert.cs:66:9:66:39 | ...; | Assert.cs:66:9:66:39 | ...; | | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | | Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:24 | access to local variable s | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:24 | access to local variable s | +| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:37 | ... \|\| ... | | Assert.cs:66:29:66:32 | null | Assert.cs:66:29:66:32 | null | | Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:27:67:27 | access to local variable s | @@ -427,16 +440,17 @@ | Assert.cs:67:27:67:34 | access to property Length | Assert.cs:67:27:67:27 | access to local variable s | | Assert.cs:71:5:75:5 | {...} | Assert.cs:71:5:75:5 | {...} | | Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:9:72:33 | ... ...; | -| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:20:72:20 | access to parameter b | +| Assert.cs:72:16:72:16 | access to local variable s | Assert.cs:72:16:72:16 | access to local variable s | +| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:16:72:16 | access to local variable s | | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:32 | ... ? ... : ... | | Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | | Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:23:73:23 | access to local variable s | +| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:23:73:36 | ... && ... | | Assert.cs:73:9:73:38 | ...; | Assert.cs:73:9:73:38 | ...; | | Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:23:73:23 | access to local variable s | | Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:23 | access to local variable s | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:23 | access to local variable s | +| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:36 | ... && ... | | Assert.cs:73:28:73:31 | null | Assert.cs:73:28:73:31 | null | | Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | | Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:27:74:27 | access to local variable s | @@ -445,16 +459,17 @@ | Assert.cs:74:27:74:34 | access to property Length | Assert.cs:74:27:74:27 | access to local variable s | | Assert.cs:78:5:82:5 | {...} | Assert.cs:78:5:82:5 | {...} | | Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:9:79:33 | ... ...; | -| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:20:79:20 | access to parameter b | +| Assert.cs:79:16:79:16 | access to local variable s | Assert.cs:79:16:79:16 | access to local variable s | +| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:16:79:16 | access to local variable s | | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:32 | ... ? ... : ... | | Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | | Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:24:80:24 | access to local variable s | +| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:24:80:37 | ... \|\| ... | | Assert.cs:80:9:80:39 | ...; | Assert.cs:80:9:80:39 | ...; | | Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | | Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:24 | access to local variable s | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:24 | access to local variable s | +| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:37 | ... \|\| ... | | Assert.cs:80:29:80:32 | null | Assert.cs:80:29:80:32 | null | | Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:27:81:27 | access to local variable s | @@ -463,9 +478,10 @@ | Assert.cs:81:27:81:34 | access to property Length | Assert.cs:81:27:81:27 | access to local variable s | | Assert.cs:85:5:129:5 | {...} | Assert.cs:85:5:129:5 | {...} | | Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:9:86:33 | ... ...; | -| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:20:86:20 | access to parameter b | +| Assert.cs:86:16:86:16 | access to local variable s | Assert.cs:86:16:86:16 | access to local variable s | +| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:16:86:16 | access to local variable s | | Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | access to parameter b | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:20 | access to parameter b | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | | Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | | Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | | Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:87:22:87:22 | access to local variable s | @@ -477,10 +493,11 @@ | Assert.cs:88:9:88:36 | ...; | Assert.cs:88:9:88:36 | ...; | | Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:27:88:27 | access to local variable s | | Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:27:88:27 | access to local variable s | -| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:13:90:13 | access to parameter b | +| Assert.cs:90:9:90:9 | access to local variable s | Assert.cs:90:9:90:9 | access to local variable s | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:9:90:9 | access to local variable s | | Assert.cs:90:9:90:26 | ...; | Assert.cs:90:9:90:26 | ...; | | Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | access to parameter b | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:13 | access to parameter b | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | | Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | | Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | | Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:91:23:91:23 | access to local variable s | @@ -490,10 +507,11 @@ | Assert.cs:92:9:92:36 | ...; | Assert.cs:92:9:92:36 | ...; | | Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:27 | access to local variable s | | Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:27:92:27 | access to local variable s | -| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:13:94:13 | access to parameter b | +| Assert.cs:94:9:94:9 | access to local variable s | Assert.cs:94:9:94:9 | access to local variable s | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:9:94:9 | access to local variable s | | Assert.cs:94:9:94:26 | ...; | Assert.cs:94:9:94:26 | ...; | | Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | access to parameter b | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:13 | access to parameter b | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | | Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | | Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | | Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:95:26:95:26 | access to local variable s | @@ -503,10 +521,11 @@ | Assert.cs:96:9:96:36 | ...; | Assert.cs:96:9:96:36 | ...; | | Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:27 | access to local variable s | | Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:27:96:27 | access to local variable s | -| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:13:98:13 | access to parameter b | +| Assert.cs:98:9:98:9 | access to local variable s | Assert.cs:98:9:98:9 | access to local variable s | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:9:98:9 | access to local variable s | | Assert.cs:98:9:98:26 | ...; | Assert.cs:98:9:98:26 | ...; | | Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | access to parameter b | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:13 | access to parameter b | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | | Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | | Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | | Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:99:23:99:23 | access to local variable s | @@ -518,10 +537,11 @@ | Assert.cs:100:9:100:36 | ...; | Assert.cs:100:9:100:36 | ...; | | Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:27:100:27 | access to local variable s | | Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:27:100:27 | access to local variable s | -| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:13:102:13 | access to parameter b | +| Assert.cs:102:9:102:9 | access to local variable s | Assert.cs:102:9:102:9 | access to local variable s | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:9:102:9 | access to local variable s | | Assert.cs:102:9:102:26 | ...; | Assert.cs:102:9:102:26 | ...; | | Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | access to parameter b | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:13 | access to parameter b | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | | Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | | Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | | Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:103:23:103:23 | access to local variable s | @@ -533,10 +553,11 @@ | Assert.cs:104:9:104:36 | ...; | Assert.cs:104:9:104:36 | ...; | | Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:27:104:27 | access to local variable s | | Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:27:104:27 | access to local variable s | -| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:13:106:13 | access to parameter b | +| Assert.cs:106:9:106:9 | access to local variable s | Assert.cs:106:9:106:9 | access to local variable s | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:9:106:9 | access to local variable s | | Assert.cs:106:9:106:26 | ...; | Assert.cs:106:9:106:26 | ...; | | Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | access to parameter b | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:13 | access to parameter b | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | | Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | | Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | | Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:107:24:107:24 | access to local variable s | @@ -548,10 +569,11 @@ | Assert.cs:108:9:108:36 | ...; | Assert.cs:108:9:108:36 | ...; | | Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:27:108:27 | access to local variable s | | Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:27:108:27 | access to local variable s | -| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:13:110:13 | access to parameter b | +| Assert.cs:110:9:110:9 | access to local variable s | Assert.cs:110:9:110:9 | access to local variable s | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:9:110:9 | access to local variable s | | Assert.cs:110:9:110:26 | ...; | Assert.cs:110:9:110:26 | ...; | | Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | access to parameter b | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:13 | access to parameter b | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | | Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | | Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | | Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:111:24:111:24 | access to local variable s | @@ -563,71 +585,75 @@ | Assert.cs:112:9:112:36 | ...; | Assert.cs:112:9:112:36 | ...; | | Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:27:112:27 | access to local variable s | | Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:27:112:27 | access to local variable s | -| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:13:114:13 | access to parameter b | +| Assert.cs:114:9:114:9 | access to local variable s | Assert.cs:114:9:114:9 | access to local variable s | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:9:114:9 | access to local variable s | | Assert.cs:114:9:114:26 | ...; | Assert.cs:114:9:114:26 | ...; | | Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | access to parameter b | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:13 | access to parameter b | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | | Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | | Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | -| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:23:115:23 | access to local variable s | +| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:23:115:36 | ... && ... | | Assert.cs:115:9:115:38 | ...; | Assert.cs:115:9:115:38 | ...; | | Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:23:115:23 | access to local variable s | | Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:23 | access to local variable s | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:23 | access to local variable s | +| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | | Assert.cs:115:28:115:31 | null | Assert.cs:115:28:115:31 | null | | Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | | Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:27:116:27 | access to local variable s | | Assert.cs:116:9:116:36 | ...; | Assert.cs:116:9:116:36 | ...; | | Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:27 | access to local variable s | | Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:27:116:27 | access to local variable s | -| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:13:118:13 | access to parameter b | +| Assert.cs:118:9:118:9 | access to local variable s | Assert.cs:118:9:118:9 | access to local variable s | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:9:118:9 | access to local variable s | | Assert.cs:118:9:118:26 | ...; | Assert.cs:118:9:118:26 | ...; | | Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | access to parameter b | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:13 | access to parameter b | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | | Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | | Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | -| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:24:119:24 | access to local variable s | +| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:24:119:38 | ... \|\| ... | | Assert.cs:119:9:119:40 | ...; | Assert.cs:119:9:119:40 | ...; | | Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:24:119:24 | access to local variable s | | Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:24 | access to local variable s | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:24 | access to local variable s | +| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | | Assert.cs:119:29:119:32 | null | Assert.cs:119:29:119:32 | null | -| Assert.cs:119:37:119:38 | !... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:37:119:38 | !... | Assert.cs:119:37:119:38 | !... | | Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | | Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:27:120:27 | access to local variable s | | Assert.cs:120:9:120:36 | ...; | Assert.cs:120:9:120:36 | ...; | | Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:27 | access to local variable s | | Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:27:120:27 | access to local variable s | -| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:13:122:13 | access to parameter b | +| Assert.cs:122:9:122:9 | access to local variable s | Assert.cs:122:9:122:9 | access to local variable s | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:9:122:9 | access to local variable s | | Assert.cs:122:9:122:26 | ...; | Assert.cs:122:9:122:26 | ...; | | Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | access to parameter b | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:13 | access to parameter b | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | | Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | | Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | -| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:23:123:23 | access to local variable s | +| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:23:123:36 | ... && ... | | Assert.cs:123:9:123:38 | ...; | Assert.cs:123:9:123:38 | ...; | | Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:23:123:23 | access to local variable s | | Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:23 | access to local variable s | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:23 | access to local variable s | +| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | | Assert.cs:123:28:123:31 | null | Assert.cs:123:28:123:31 | null | | Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | | Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:27:124:27 | access to local variable s | | Assert.cs:124:9:124:36 | ...; | Assert.cs:124:9:124:36 | ...; | | Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:27 | access to local variable s | | Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:27:124:27 | access to local variable s | -| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:13:126:13 | access to parameter b | +| Assert.cs:126:9:126:9 | access to local variable s | Assert.cs:126:9:126:9 | access to local variable s | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:9:126:9 | access to local variable s | | Assert.cs:126:9:126:26 | ...; | Assert.cs:126:9:126:26 | ...; | | Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | access to parameter b | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:13 | access to parameter b | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | | Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | | Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | -| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:24:127:24 | access to local variable s | +| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:24:127:38 | ... \|\| ... | | Assert.cs:127:9:127:40 | ...; | Assert.cs:127:9:127:40 | ...; | | Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:24:127:24 | access to local variable s | | Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:24 | access to local variable s | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:24 | access to local variable s | +| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | | Assert.cs:127:29:127:32 | null | Assert.cs:127:29:127:32 | null | -| Assert.cs:127:37:127:38 | !... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:127:37:127:38 | !... | Assert.cs:127:37:127:38 | !... | | Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | | Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:27:128:27 | access to local variable s | | Assert.cs:128:9:128:36 | ...; | Assert.cs:128:9:128:36 | ...; | @@ -648,14 +674,16 @@ | 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 | ... ...; | -| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:5:17:5:17 | 0 | +| Assignments.cs:5:13:5:13 | access to local variable x | Assignments.cs:5:13:5:13 | access to local variable x | +| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:5:13:5:13 | access to local variable x | | Assignments.cs:5:17:5:17 | 0 | Assignments.cs:5:17:5:17 | 0 | | Assignments.cs:6:9:6:9 | access to local variable x | Assignments.cs:6:9:6:9 | access to local variable x | | Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:6:9:6:9 | access to local variable x | | Assignments.cs:6:9:6:15 | ...; | Assignments.cs:6:9:6:15 | ...; | | Assignments.cs:6:14:6:14 | 1 | Assignments.cs:6:14:6:14 | 1 | | Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:8:9:8:22 | ... ...; | -| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:8:21:8:21 | 0 | +| Assignments.cs:8:17:8:17 | access to local variable d | Assignments.cs:8:17:8:17 | access to local variable d | +| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:8:17:8:17 | access to local variable d | | Assignments.cs:8:21:8:21 | 0 | Assignments.cs:8:21:8:21 | 0 | | Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:8:21:8:21 | 0 | | Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:9:9:9 | access to local variable d | @@ -663,7 +691,8 @@ | Assignments.cs:9:9:9:15 | ...; | Assignments.cs:9:9:9:15 | ...; | | Assignments.cs:9:14:9:14 | 2 | Assignments.cs:9:14:9:14 | 2 | | Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:11:9:11:34 | ... ...; | -| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:11:17:11:33 | object creation of type Assignments | +| Assignments.cs:11:13:11:13 | access to local variable a | Assignments.cs:11:13:11:13 | access to local variable a | +| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:11:13:11:13 | access to local variable a | | Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:17:11:33 | object creation of type Assignments | | Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:9:12:9 | access to local variable a | | Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:12:9:12:9 | access to local variable a | @@ -679,14 +708,17 @@ | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:28:5:30:5 | {...} | Assignments.cs:28:5:30:5 | {...} | -| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:9 | access to parameter x | Assignments.cs:29:9:29:9 | access to parameter x | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:9:29:9 | access to parameter x | | Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:15 | ...; | | Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:13:29:14 | 42 | | Assignments.cs:33:5:36:5 | {...} | Assignments.cs:33:5:36:5 | {...} | -| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:9 | access to parameter x | Assignments.cs:34:9:34:9 | access to parameter x | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:9:34:9 | access to parameter x | | Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:15 | ...; | | Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:13:34:14 | 42 | -| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:9:35:9 | access to parameter y | Assignments.cs:35:9:35:9 | access to parameter y | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:9:35:9 | access to parameter y | | Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:20 | ...; | | Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:13:35:19 | "Hello" | | Assignments.cs:39:5:45:5 | {...} | Assignments.cs:39:5:45:5 | {...} | @@ -695,6 +727,7 @@ | Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | | Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | this access | | Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:41:28:41:29 | access to local variable x1 | Assignments.cs:41:28:41:29 | access to local variable x1 | | Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | this access | | Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | this access | | Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:37 | ...; | @@ -703,6 +736,7 @@ | Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | this access | | Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | this access | | Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:43:31:43:31 | Int32 y | Assignments.cs:43:31:43:31 | Int32 y | | Assignments.cs:43:34:43:37 | null | Assignments.cs:43:34:43:37 | null | | Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | | Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | this access | @@ -721,7 +755,7 @@ | 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 {...} ... | | BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:6:9:12:9 | {...} | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:33:7:36 | access to parameter args | +| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | | BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:7:26:7:28 | String arg | | BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:33:7:36 | access to parameter args | | BreakInTry.cs:8:13:11:13 | {...} | BreakInTry.cs:8:13:11:13 | {...} | @@ -737,7 +771,7 @@ | BreakInTry.cs:15:25:15:28 | null | BreakInTry.cs:15:25:15:28 | null | | BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:16:17:16:17 | ; | | BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:21:5:36:5 | {...} | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | access to parameter args | +| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:22:22:24 | String arg | | BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:29:22:32 | access to parameter args | | BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:23:9:34:9 | {...} | @@ -764,7 +798,7 @@ | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:25:42:28 | null | | BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | access to parameter args | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:26:47:28 | String arg | | BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:33:47:36 | access to parameter args | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:48:13:51:13 | {...} | @@ -783,7 +817,7 @@ | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:25:60:28 | null | | BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | access to parameter args | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:26:65:28 | String arg | | BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:33:65:36 | access to parameter args | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:66:13:69:13 | {...} | @@ -808,7 +842,6 @@ | CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:21:5:23:5 | {...} | | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | | 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 | @@ -817,9 +850,6 @@ | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | | CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:31:9:34:9 | {...} | | CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:32:13:32:21 | goto ...; | -| CompileTimeOperators.cs:33:13:33:37 | call to method WriteLine | CompileTimeOperators.cs:33:31:33:36 | "Dead" | -| CompileTimeOperators.cs:33:13:33:38 | ...; | CompileTimeOperators.cs:33:13:33:38 | ...; | -| CompileTimeOperators.cs:33:31:33:36 | "Dead" | CompileTimeOperators.cs:33:31:33:36 | "Dead" | | CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:36:9:38:9 | {...} | | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | "Finally" | | CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:13:37:41 | ...; | @@ -840,13 +870,13 @@ | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:26 | access to parameter s | | ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:26 | access to parameter s | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | +| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | +| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | | ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:25 | access to parameter s | | ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:25 | access to parameter s | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:25 | access to parameter s | +| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | | ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:38:9:38 | 0 | | ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:12:5:17:5 | {...} | | ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:13:9:16:21 | if (...) ... | @@ -864,30 +894,36 @@ | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | | ConditionalAccess.cs:22:5:26:5 | {...} | ConditionalAccess.cs:22:5:26:5 | {...} | | ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:23:9:23:39 | ... ...; | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:26:23:29 | null | +| ConditionalAccess.cs:23:13:23:13 | access to local variable j | ConditionalAccess.cs:23:13:23:13 | access to local variable j | +| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:13:23:13 | access to local variable j | | ConditionalAccess.cs:23:17:23:38 | access to property Length | ConditionalAccess.cs:23:26:23:29 | null | | ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:26:23:29 | null | | ConditionalAccess.cs:23:26:23:29 | null | ConditionalAccess.cs:23:26:23:29 | null | | ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:24:9:24:38 | ... ...; | -| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:24:24:24:24 | access to parameter i | +| ConditionalAccess.cs:24:13:24:13 | access to local variable s | ConditionalAccess.cs:24:13:24:13 | access to local variable s | +| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:24:13:24:13 | access to local variable s | | ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:24:24:24 | access to parameter i | | ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:24:24:24 | access to parameter i | | ConditionalAccess.cs:24:24:24:24 | access to parameter i | ConditionalAccess.cs:24:24:24:24 | access to parameter i | -| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:25:13:25:14 | "" | +| ConditionalAccess.cs:25:9:25:9 | access to local variable s | ConditionalAccess.cs:25:9:25:9 | access to local variable s | +| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:25:9:25:9 | access to local variable s | | ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:25:9:25:33 | ...; | | ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:13:25:14 | "" | | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:14 | "" | | ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:32:30:32 | 0 | +| ConditionalAccess.cs:30:28:30:28 | access to parameter i | ConditionalAccess.cs:30:28:30:28 | access to parameter i | +| ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:28:30:28 | access to parameter i | | ConditionalAccess.cs:30:32:30:32 | 0 | ConditionalAccess.cs:30:32:30:32 | 0 | | ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:33:5:36:5 | {...} | -| ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:34:13:34:13 | 0 | +| ConditionalAccess.cs:34:9:34:9 | access to parameter i | ConditionalAccess.cs:34:9:34:9 | access to parameter i | +| ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:34:9:34:9 | access to parameter i | | ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:34:9:34:14 | ...; | | ConditionalAccess.cs:34:13:34:13 | 0 | ConditionalAccess.cs:34:13:34:13 | 0 | | ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:25 | ...; | +| ConditionalAccess.cs:35:23:35:23 | access to parameter i | ConditionalAccess.cs:35:23:35:23 | access to parameter i | | ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:13:42:28 | {...} | | ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:22:42:25 | null | | ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:22:42:25 | null | @@ -947,14 +983,15 @@ | Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:13 | access to parameter x | | Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:16 | ...; | | Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... | -| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:14:7:16 | access to parameter inc | +| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:13:7:16 | !... | | Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | access to parameter inc | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:13 | access to parameter x | | Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:13 | access to parameter x | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:16 | ...; | | Conditions.cs:12:5:20:5 | {...} | Conditions.cs:12:5:20:5 | {...} | | Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:9:13:18 | ... ...; | -| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:17:13:17 | 0 | +| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:13:13:13 | access to local variable x | +| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:13:13:13 | access to local variable x | | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:17:13:17 | 0 | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:9:15:16 | if (...) ... | | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | access to parameter b | @@ -966,7 +1003,7 @@ | Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:13 | access to local variable x | | Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:17:16:17 | 0 | | Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:18:17:18 | access to parameter b | +| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:17:17:18 | !... | | Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | access to parameter b | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:17 | access to local variable x | | Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:17 | access to local variable x | @@ -975,7 +1012,8 @@ | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x | | Conditions.cs:23:5:31:5 | {...} | Conditions.cs:23:5:31:5 | {...} | | Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:9:24:18 | ... ...; | -| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:17:24:17 | 0 | +| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:13:24:13 | access to local variable x | +| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:13:24:13 | access to local variable x | | Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:17:24:17 | 0 | | Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:9:27:20 | if (...) ... | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | access to parameter b1 | @@ -993,14 +1031,17 @@ | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x | | Conditions.cs:34:5:44:5 | {...} | Conditions.cs:34:5:44:5 | {...} | | Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:9:35:18 | ... ...; | -| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:17:35:17 | 0 | +| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:13:35:13 | access to local variable x | +| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:13:35:13 | access to local variable x | | Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:17:35:17 | 0 | | Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:9:36:23 | ... ...; | -| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:18:36:22 | false | +| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:13:36:14 | access to local variable b2 | +| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:13:36:14 | access to local variable b2 | | Conditions.cs:36:18:36:22 | false | Conditions.cs:36:18:36:22 | false | | Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:9:38:20 | if (...) ... | | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | access to parameter b1 | -| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:18:38:19 | access to parameter b1 | +| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:13:38:14 | access to local variable b2 | +| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:13:38:14 | access to local variable b2 | | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:20 | ...; | | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:18:38:19 | access to parameter b1 | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | @@ -1017,7 +1058,8 @@ | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x | | Conditions.cs:47:5:55:5 | {...} | Conditions.cs:47:5:55:5 | {...} | | Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:9:48:18 | ... ...; | -| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:17:48:17 | 0 | +| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:13:48:13 | access to local variable y | +| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:13:48:13 | access to local variable y | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:17:48:17 | 0 | | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:9:53:9 | while (...) ... | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x | @@ -1034,7 +1076,8 @@ | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y | | Conditions.cs:58:5:68:5 | {...} | Conditions.cs:58:5:68:5 | {...} | | Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:9:59:18 | ... ...; | -| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:17:59:17 | 0 | +| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:13:59:13 | access to local variable y | +| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:13:59:13 | access to local variable y | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:17:59:17 | 0 | | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:9:64:9 | while (...) ... | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x | @@ -1056,15 +1099,17 @@ | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y | | Conditions.cs:71:5:84:5 | {...} | Conditions.cs:71:5:84:5 | {...} | | Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:9:72:30 | ... ...; | -| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:17:72:18 | access to parameter ss | +| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:13:72:13 | access to local variable b | +| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:13:72:13 | access to local variable b | | Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:18 | access to parameter ss | | Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:18 | access to parameter ss | | Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:17:72:18 | access to parameter ss | | Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:29:72:29 | 0 | | Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:9:73:18 | ... ...; | -| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:17:73:17 | 0 | +| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:13:73:13 | access to local variable x | +| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:13:73:13 | access to local variable x | | Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:17:73:17 | 0 | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | access to parameter ss | +| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:74:22:74:22 | String _ | | Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | access to parameter ss | | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:75:9:80:9 | {...} | @@ -1077,7 +1122,8 @@ | Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:17:78:17 | access to local variable x | | Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:17 | access to local variable x | | Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:21:78:21 | 0 | -| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:21:79:25 | false | +| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:17:79:17 | access to local variable b | +| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:17:79:17 | access to local variable b | | Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:26 | ...; | | Conditions.cs:79:21:79:25 | false | Conditions.cs:79:21:79:25 | false | | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:9:82:16 | if (...) ... | @@ -1089,15 +1135,17 @@ | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x | | Conditions.cs:87:5:100:5 | {...} | Conditions.cs:87:5:100:5 | {...} | | Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:9:88:30 | ... ...; | -| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:17:88:18 | access to parameter ss | +| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:13:88:13 | access to local variable b | +| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:13:88:13 | access to local variable b | | Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:18 | access to parameter ss | | Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:18 | access to parameter ss | | Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:17:88:18 | access to parameter ss | | Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:29:88:29 | 0 | | Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:9:89:18 | ... ...; | -| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:17:89:17 | 0 | +| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:13:89:13 | access to local variable x | +| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:13:89:13 | access to local variable x | | Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:17:89:17 | 0 | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | access to parameter ss | +| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:90:22:90:22 | String _ | | Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | access to parameter ss | | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:91:9:98:9 | {...} | @@ -1110,7 +1158,8 @@ | Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:17:94:17 | access to local variable x | | Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:17 | access to local variable x | | Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:21:94:21 | 0 | -| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:21:95:25 | false | +| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:17:95:17 | access to local variable b | +| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:17:95:17 | access to local variable b | | Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:26 | ...; | | Conditions.cs:95:21:95:25 | false | Conditions.cs:95:21:95:25 | false | | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... | @@ -1122,7 +1171,8 @@ | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x | | Conditions.cs:103:5:111:5 | {...} | Conditions.cs:103:5:111:5 | {...} | | Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:9:104:29 | ... ...; | -| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:17:104:17 | access to parameter b | +| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:13:104:13 | access to local variable x | +| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:13:104:13 | access to local variable x | | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:17 | access to parameter b | | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:17 | access to parameter b | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:9:106:20 | if (...) ... | @@ -1137,7 +1187,7 @@ | Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:13 | access to local variable x | | Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:24:107:24 | 0 | | Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:18:108:18 | access to parameter b | +| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:17:108:18 | !... | | Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | access to parameter b | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:17 | access to local variable x | | Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:109:17:109:17 | access to local variable x | @@ -1147,10 +1197,12 @@ | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x | | Conditions.cs:114:5:124:5 | {...} | Conditions.cs:114:5:124:5 | {...} | | Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:115:9:115:24 | ... ...; | -| Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:115:20:115:23 | null | +| Conditions.cs:115:16:115:16 | access to local variable s | Conditions.cs:115:16:115:16 | access to local variable s | +| Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:115:16:115:16 | access to local variable s | | Conditions.cs:115:20:115:23 | null | Conditions.cs:115:20:115:23 | null | | Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:116:9:123:9 | for (...;...;...) ... | -| Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:22:116:22 | 0 | +| Conditions.cs:116:18:116:18 | access to local variable i | Conditions.cs:116:18:116:18 | access to local variable i | +| Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:18:116:18 | access to local variable i | | Conditions.cs:116:22:116:22 | 0 | Conditions.cs:116:22:116:22 | 0 | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:25 | access to local variable i | @@ -1160,7 +1212,8 @@ | Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:117:9:123:9 | {...} | | Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:118:13:118:44 | ... ...; | -| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:118:24:118:24 | access to local variable i | +| Conditions.cs:118:17:118:20 | access to local variable last | Conditions.cs:118:17:118:20 | access to local variable last | +| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:118:17:118:20 | access to local variable last | | Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:24:118:24 | access to local variable i | | Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:24:118:24 | access to local variable i | | Conditions.cs:118:29:118:32 | access to parameter args | Conditions.cs:118:29:118:32 | access to parameter args | @@ -1168,14 +1221,16 @@ | Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:29:118:32 | access to parameter args | | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:43:118:43 | 1 | | Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:13:120:23 | if (...) ... | -| Conditions.cs:119:17:119:21 | !... | Conditions.cs:119:18:119:21 | access to local variable last | +| Conditions.cs:119:17:119:21 | !... | Conditions.cs:119:17:119:21 | !... | | Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | access to local variable last | -| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:120:21:120:22 | "" | +| Conditions.cs:120:17:120:17 | access to local variable s | Conditions.cs:120:17:120:17 | access to local variable s | +| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:120:17:120:17 | access to local variable s | | Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:23 | ...; | | Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:21:120:22 | "" | | Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | access to local variable last | -| Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:122:21:122:24 | null | +| Conditions.cs:122:17:122:17 | access to local variable s | Conditions.cs:122:17:122:17 | access to local variable s | +| Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:122:17:122:17 | access to local variable s | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:122:21:122:24 | null | Conditions.cs:122:21:122:24 | null | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:130:5:141:5 | {...} | @@ -1196,9 +1251,10 @@ | Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:38 | ...; | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:144:5:150:5 | {...} | | Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:9:145:30 | ... ...; | -| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:17:145:17 | access to parameter b | +| Conditions.cs:145:13:145:13 | access to local variable s | Conditions.cs:145:13:145:13 | access to local variable s | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:13:145:13 | access to local variable s | | Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | access to parameter b | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:17 | access to parameter b | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | | Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | | Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | | Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:146:9:149:49 | if (...) ... | @@ -1233,17 +1289,14 @@ | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:22:21:22:24 | true | | ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:9:22:26 | ...; | | ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:21:22:24 | true | -| ExitMethods.cs:23:9:23:15 | return ...; | ExitMethods.cs:23:9:23:15 | return ...; | | ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:27:5:30:5 | {...} | | ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:28:9:28:14 | this access | | ExitMethods.cs:28:9:28:14 | this access | ExitMethods.cs:28:9:28:14 | this access | | ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:28:9:28:15 | ...; | -| ExitMethods.cs:29:9:29:15 | return ...; | ExitMethods.cs:29:9:29:15 | return ...; | | ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:33:5:36:5 | {...} | | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:34:9:34:25 | this access | | ExitMethods.cs:34:9:34:25 | this access | ExitMethods.cs:34:9:34:25 | this access | | ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:34:9:34:26 | ...; | -| ExitMethods.cs:35:9:35:15 | return ...; | ExitMethods.cs:35:9:35:15 | return ...; | | ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:39:5:52:5 | {...} | | ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:40:9:51:9 | try {...} ... | | ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:41:9:43:9 | {...} | @@ -1259,11 +1312,9 @@ | ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:55:5:58:5 | {...} | | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | | ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:23 | ...; | -| ExitMethods.cs:57:9:57:15 | return ...; | ExitMethods.cs:57:9:57:15 | return ...; | | ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:61:5:64:5 | {...} | | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | | ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:23 | ...; | -| ExitMethods.cs:63:9:63:15 | return ...; | ExitMethods.cs:63:9:63:15 | return ...; | | ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:67:5:70:5 | {...} | | ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:68:9:69:34 | if (...) ... | | ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | access to parameter b | @@ -1300,10 +1351,10 @@ | ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:107:9:107:47 | call to method Exit | | ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:107:9:107:48 | ...; | | ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:111:5:113:5 | {...} | -| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:112:16:112:20 | access to parameter input | +| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | | ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:112:16:112:20 | access to parameter input | | ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:20 | access to parameter input | -| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:16:112:20 | access to parameter input | +| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | | ExitMethods.cs:112:25:112:25 | 0 | ExitMethods.cs:112:25:112:25 | 0 | | ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:112:25:112:25 | 0 | | ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:29:112:29 | 1 | @@ -1314,10 +1365,10 @@ | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:69:112:75 | "input" | | ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:69:112:75 | "input" | | ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:116:5:118:5 | {...} | -| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:117:16:117:16 | access to parameter s | +| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | | ExitMethods.cs:117:16:117:16 | access to parameter s | ExitMethods.cs:117:16:117:16 | access to parameter s | | ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:16 | access to parameter s | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:16:117:16 | access to parameter s | +| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | | ExitMethods.cs:117:27:117:29 | - | ExitMethods.cs:117:27:117:29 | - | | ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:34:117:34 | 0 | | ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:38:117:38 | 1 | @@ -1325,16 +1376,10 @@ | ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:122:23:122:27 | false | | ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:9:122:29 | ...; | | ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:23:122:27 | false | -| ExitMethods.cs:123:9:123:18 | ... ...; | ExitMethods.cs:123:9:123:18 | ... ...; | -| ExitMethods.cs:123:13:123:17 | Int32 x = ... | ExitMethods.cs:123:17:123:17 | 0 | -| ExitMethods.cs:123:17:123:17 | 0 | ExitMethods.cs:123:17:123:17 | 0 | | ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:127:5:130:5 | {...} | | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:128:9:128:26 | this access | | ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:26 | this access | | ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:27 | ...; | -| ExitMethods.cs:129:9:129:18 | ... ...; | ExitMethods.cs:129:9:129:18 | ... ...; | -| ExitMethods.cs:129:13:129:17 | Int32 x = ... | ExitMethods.cs:129:17:129:17 | 0 | -| ExitMethods.cs:129:17:129:17 | 0 | ExitMethods.cs:129:17:129:17 | 0 | | ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | | ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:48:132:48 | access to parameter b | | ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:135:5:138:5 | {...} | @@ -1342,9 +1387,6 @@ | ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:9:136:25 | this access | | ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:26 | ...; | | ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:21:136:24 | true | -| ExitMethods.cs:137:9:137:18 | ... ...; | ExitMethods.cs:137:9:137:18 | ... ...; | -| ExitMethods.cs:137:13:137:17 | Int32 x = ... | ExitMethods.cs:137:17:137:17 | 0 | -| ExitMethods.cs:137:17:137:17 | 0 | ExitMethods.cs:137:17:137:17 | 0 | | ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:141:5:147:5 | {...} | | ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:142:9:145:53 | if (...) ... | | ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | access to parameter b | @@ -1355,9 +1397,6 @@ | ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:145:43:145:43 | access to parameter e | | ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:13:145:53 | ...; | | ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:43:145:43 | access to parameter e | -| ExitMethods.cs:146:9:146:33 | call to method WriteLine | ExitMethods.cs:146:27:146:32 | "dead" | -| ExitMethods.cs:146:9:146:34 | ...; | ExitMethods.cs:146:9:146:34 | ...; | -| ExitMethods.cs:146:27:146:32 | "dead" | ExitMethods.cs:146:27:146:32 | "dead" | | Extensions.cs:6:5:8:5 | {...} | Extensions.cs:6:5:8:5 | {...} | | Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:7:28:7:28 | access to parameter s | | Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:7:28:7:28 | access to parameter s | @@ -1458,7 +1497,8 @@ | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:31:70:39 | "Finally" | | Finally.cs:75:5:101:5 | {...} | Finally.cs:75:5:101:5 | {...} | | Finally.cs:76:9:76:19 | ... ...; | Finally.cs:76:9:76:19 | ... ...; | -| Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:76:17:76:18 | 10 | +| Finally.cs:76:13:76:13 | access to local variable i | Finally.cs:76:13:76:13 | access to local variable i | +| Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:76:13:76:13 | access to local variable i | | Finally.cs:76:17:76:18 | 10 | Finally.cs:76:17:76:18 | 10 | | Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:77:9:100:9 | while (...) ... | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:16 | access to local variable i | @@ -1515,7 +1555,7 @@ | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:13:115:41 | if (...) ... | -| Finally.cs:114:17:114:36 | !... | Finally.cs:114:19:114:23 | this access | +| Finally.cs:114:17:114:36 | !... | Finally.cs:114:17:114:36 | !... | | Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:23 | this access | | Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | this access | | Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:23 | this access | @@ -1538,14 +1578,12 @@ | Finally.cs:123:9:130:9 | try {...} ... | Finally.cs:123:9:130:9 | try {...} ... | | Finally.cs:124:9:126:9 | {...} | Finally.cs:124:9:126:9 | {...} | | Finally.cs:125:13:125:41 | ... ...; | Finally.cs:125:13:125:41 | ... ...; | -| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:125:24:125:24 | 0 | +| Finally.cs:125:17:125:20 | access to local variable temp | Finally.cs:125:17:125:20 | access to local variable temp | +| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:125:17:125:20 | access to local variable temp | | Finally.cs:125:24:125:24 | 0 | Finally.cs:125:24:125:24 | 0 | | Finally.cs:125:24:125:24 | (...) ... | Finally.cs:125:24:125:24 | 0 | | Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:24:125:24 | 0 | | Finally.cs:125:28:125:40 | access to constant E | Finally.cs:125:28:125:40 | access to constant E | -| Finally.cs:127:9:130:9 | catch {...} | Finally.cs:127:9:130:9 | catch {...} | -| Finally.cs:128:9:130:9 | {...} | Finally.cs:128:9:130:9 | {...} | -| Finally.cs:129:13:129:13 | ; | Finally.cs:129:13:129:13 | ; | | Finally.cs:134:5:145:5 | {...} | Finally.cs:134:5:145:5 | {...} | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:135:9:143:9 | try {...} ... | | Finally.cs:136:9:138:9 | {...} | Finally.cs:136:9:138:9 | {...} | @@ -1556,12 +1594,6 @@ | Finally.cs:141:13:141:44 | throw ...; | Finally.cs:141:41:141:42 | "" | | Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:41:141:42 | "" | | Finally.cs:141:41:141:42 | "" | Finally.cs:141:41:141:42 | "" | -| Finally.cs:142:13:142:37 | call to method WriteLine | Finally.cs:142:31:142:36 | "Dead" | -| Finally.cs:142:13:142:38 | ...; | Finally.cs:142:13:142:38 | ...; | -| Finally.cs:142:31:142:36 | "Dead" | Finally.cs:142:31:142:36 | "Dead" | -| Finally.cs:144:9:144:33 | call to method WriteLine | Finally.cs:144:27:144:32 | "Dead" | -| Finally.cs:144:9:144:34 | ...; | Finally.cs:144:9:144:34 | ...; | -| Finally.cs:144:27:144:32 | "Dead" | Finally.cs:144:27:144:32 | "Dead" | | Finally.cs:148:5:170:5 | {...} | Finally.cs:148:5:170:5 | {...} | | Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:149:9:169:9 | try {...} ... | | Finally.cs:150:9:153:9 | {...} | Finally.cs:150:9:153:9 | {...} | @@ -1728,39 +1760,39 @@ | 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 | +| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | | Foreach.cs:8:22:8:24 | String arg | Foreach.cs:8:22:8:24 | String arg | | Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:29:8:32 | access to parameter args | | Foreach.cs:9:13:9:13 | ; | Foreach.cs:9:13:9:13 | ; | | Foreach.cs:13:5:16:5 | {...} | Foreach.cs:13:5:16:5 | {...} | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:27:14:30 | access to parameter args | +| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | | Foreach.cs:14:22:14:22 | String _ | Foreach.cs:14:22:14:22 | String _ | | Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:27:14:30 | access to parameter args | | Foreach.cs:15:13:15:13 | ; | Foreach.cs:15:13:15:13 | ; | | Foreach.cs:19:5:22:5 | {...} | Foreach.cs:19:5:22:5 | {...} | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:27:20:27 | access to parameter e | +| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | | Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:22:20:22 | String x | | Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:27 | access to parameter e | | Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:27 | access to parameter e | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:27 | access to parameter e | +| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:68 | ... ?? ... | | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty | | Foreach.cs:21:11:21:11 | ; | Foreach.cs:21:11:21:11 | ; | | Foreach.cs:25:5:28:5 | {...} | Foreach.cs:25:5:28:5 | {...} | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:36:26:39 | access to parameter args | +| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | | Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:26:23:26:23 | String x | | Foreach.cs:26:23:26:23 | String x | Foreach.cs:26:23:26:23 | String x | | Foreach.cs:26:30:26:30 | Int32 y | Foreach.cs:26:30:26:30 | Int32 y | | Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:36:26:39 | access to parameter args | | Foreach.cs:27:11:27:11 | ; | Foreach.cs:27:11:27:11 | ; | | Foreach.cs:31:5:34:5 | {...} | Foreach.cs:31:5:34:5 | {...} | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:32:32:35 | access to parameter args | +| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | | Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:32:23:32:23 | String x | | Foreach.cs:32:23:32:23 | String x | Foreach.cs:32:23:32:23 | String x | | Foreach.cs:32:26:32:26 | Int32 y | Foreach.cs:32:26:32:26 | Int32 y | | Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:32:32:35 | access to parameter args | | Foreach.cs:33:11:33:11 | ; | Foreach.cs:33:11:33:11 | ; | | Foreach.cs:37:5:40:5 | {...} | Foreach.cs:37:5:40:5 | {...} | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:39:38:42 | access to parameter args | +| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | Foreach.cs:38:18:38:34 | (..., ...) | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:33:38:33 | Int32 y | @@ -1789,23 +1821,28 @@ | 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 | ... ...; | -| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:14:34:14:35 | "" | +| Initializers.cs:14:13:14:13 | access to local variable i | Initializers.cs:14:13:14:13 | access to local variable i | +| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:14:13:14:13 | access to local variable i | | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:34:14:35 | "" | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:34:14:35 | "" | -| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:44:14:44 | 0 | -| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:40:14:40 | access to field F | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:40 | access to field F | +| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:40:14:40 | access to field F | | Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:44:14:44 | 0 | -| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:51:14:51 | 1 | +| Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:47 | access to property G | +| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:47:14:47 | access to property G | | Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:51:14:51 | 1 | | Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:15:9:15:64 | ... ...; | -| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:15:18:15:63 | 2 | +| Initializers.cs:15:13:15:14 | access to local variable iz | Initializers.cs:15:13:15:14 | access to local variable iz | +| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:15:13:15:14 | access to local variable iz | | Initializers.cs:15:18:15:63 | 2 | Initializers.cs:15:18:15:63 | 2 | -| Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:18:15:63 | 2 | +| Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:39:15:39 | access to local variable i | | Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:39:15:39 | access to local variable i | | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:39:15:39 | access to local variable i | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:59:15:60 | "" | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:59:15:60 | "" | -| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:20:18:20 | 1 | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:16 | access to field H | +| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | access to field H | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18: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 | @@ -1860,7 +1897,8 @@ | 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 | ... ...; | -| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:54:20:54:95 | object creation of type Dictionary | +| Initializers.cs:54:13:54:16 | access to local variable dict | Initializers.cs:54:13:54:16 | access to local variable dict | +| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:54:13:54:16 | access to local variable dict | | Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:20:54:95 | object creation of type Dictionary | | Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:53:54:53 | 0 | | Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:53:54:53 | 0 | @@ -1878,10 +1916,12 @@ | Initializers.cs:54:84:54:84 | 2 | Initializers.cs:54:84:54:84 | 2 | | Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:89:54:93 | "Two" | | Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:57:9:65:10 | ... ...; | -| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:57:24:65:9 | object creation of type Compound | +| Initializers.cs:57:13:57:20 | access to local variable compound | Initializers.cs:57:13:57:20 | access to local variable compound | +| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:57:13:57:20 | access to local variable compound | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:57:24:65:9 | object creation of type Compound | -| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:59:34:59:34 | 0 | -| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:34:59:34 | 0 | +| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:27 | access to field DictionaryField | +| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:13:59:27 | access to field DictionaryField | | Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:34:59:34 | 0 | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:34:59:34 | 0 | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:34:59:34 | 0 | @@ -1897,7 +1937,8 @@ | Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:59:61:59:61 | access to parameter i | | Initializers.cs:59:65:59:65 | 2 | Initializers.cs:59:65:59:65 | 2 | | Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:70:59:74 | "Two" | -| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:60:37:60:37 | 3 | +| Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | +| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | | Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:37:60:37 | 3 | | Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:37:60:37 | 3 | | Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:37:60:37 | 3 | @@ -1913,7 +1954,8 @@ | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:65:60:65 | access to parameter i | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:69:60:69 | 1 | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:74:60:78 | "One" | -| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:29:61:29 | 0 | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:22 | access to field ArrayField | +| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:13:61:22 | access to field ArrayField | | Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:29:61:29 | 0 | | Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:29:61:29 | 0 | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:29:61:29 | 0 | @@ -1925,7 +1967,8 @@ | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:43:61:43 | access to parameter i | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:47:61:47 | 1 | | Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:52:61:56 | "One" | -| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:30:62:30 | 0 | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:23 | access to field ArrayField2 | +| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:13:62:23 | access to field ArrayField2 | | Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:30:62:30 | 0 | | Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:30:62:30 | 0 | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:30:62:30 | 0 | @@ -1939,7 +1982,8 @@ | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:47:62:47 | access to parameter i | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:51:62:51 | 0 | | Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:56:62:58 | "1" | -| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:32:63:32 | 1 | +| Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:25 | access to property ArrayProperty | +| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:13:63:25 | access to property ArrayProperty | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:32:63:32 | 1 | | Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:32:63:32 | 1 | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:32:63:32 | 1 | @@ -1951,7 +1995,8 @@ | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:45:63:45 | access to parameter i | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:49:63:49 | 2 | | Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:54:63:58 | "Two" | -| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:33:64:33 | 0 | +| Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | +| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:33:64:33 | 0 | | Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:33:64:33 | 0 | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:33:64:33 | 0 | @@ -1976,7 +2021,7 @@ | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:16 | access to parameter args | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:28:9:28 | 0 | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:22:11:24 | String arg | | LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | @@ -1984,24 +2029,25 @@ | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | | LoopUnrolling.cs:16:5:20:5 | {...} | LoopUnrolling.cs:16:5:20:5 | {...} | | LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:17:9:17:48 | ... ...; | -| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:17:18:17:47 | 3 | +| LoopUnrolling.cs:17:13:17:14 | access to local variable xs | LoopUnrolling.cs:17:13:17:14 | access to local variable xs | +| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:17:13:17:14 | access to local variable xs | | LoopUnrolling.cs:17:18:17:47 | 3 | LoopUnrolling.cs:17:18:17:47 | 3 | -| LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:18:17:47 | 3 | +| LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:33:17:35 | "a" | | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:17:33:17:35 | "a" | | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:33:17:35 | "a" | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:38:17:40 | "b" | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:43:17:45 | "c" | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:13:19:33 | ...; | | LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:23:5:27:5 | {...} | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | access to parameter args | +| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:22:24:24 | Char arg | | LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:29:24:32 | access to parameter args | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | access to parameter args | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:34:25:37 | access to parameter args | | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | @@ -2009,10 +2055,11 @@ | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | | LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:30:5:34:5 | {...} | | LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:31:9:31:31 | ... ...; | -| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:29:31:29 | 0 | +| LoopUnrolling.cs:31:13:31:14 | access to local variable xs | LoopUnrolling.cs:31:13:31:14 | access to local variable xs | +| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:13:31:14 | access to local variable xs | | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:29:31:29 | 0 | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:29:31:29 | 0 | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | | LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:22:32:22 | String x | | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:33:31:33:31 | access to local variable x | @@ -2020,25 +2067,27 @@ | LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:31:33:31 | access to local variable x | | LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:37:5:43:5 | {...} | | LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:38:9:38:48 | ... ...; | -| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:38:18:38:47 | 3 | +| LoopUnrolling.cs:38:13:38:14 | access to local variable xs | LoopUnrolling.cs:38:13:38:14 | access to local variable xs | +| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:38:13:38:14 | access to local variable xs | | LoopUnrolling.cs:38:18:38:47 | 3 | LoopUnrolling.cs:38:18:38:47 | 3 | -| LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:18:38:47 | 3 | +| LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:33:38:35 | "a" | | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:38:33:38:35 | "a" | | LoopUnrolling.cs:38:33:38:35 | "a" | LoopUnrolling.cs:38:33:38:35 | "a" | | LoopUnrolling.cs:38:38:38:40 | "b" | LoopUnrolling.cs:38:38:38:40 | "b" | | LoopUnrolling.cs:38:43:38:45 | "c" | LoopUnrolling.cs:38:43:38:45 | "c" | | LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:39:9:39:48 | ... ...; | -| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:39:18:39:47 | 3 | +| LoopUnrolling.cs:39:13:39:14 | access to local variable ys | LoopUnrolling.cs:39:13:39:14 | access to local variable ys | +| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:39:13:39:14 | access to local variable ys | | LoopUnrolling.cs:39:18:39:47 | 3 | LoopUnrolling.cs:39:18:39:47 | 3 | -| LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:18:39:47 | 3 | +| LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:33:39:35 | "0" | | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:39:33:39:35 | "0" | | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:33:39:35 | "0" | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:38:39:40 | "1" | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:43:39:45 | "2" | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:22:40:22 | String x | | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:42:35:42:35 | access to local variable x | @@ -2048,14 +2097,15 @@ | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:39:42:39 | access to local variable y | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:46:5:53:5 | {...} | | LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:9:47:48 | ... ...; | -| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:18:47:47 | 3 | +| LoopUnrolling.cs:47:13:47:14 | access to local variable xs | LoopUnrolling.cs:47:13:47:14 | access to local variable xs | +| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:13:47:14 | access to local variable xs | | LoopUnrolling.cs:47:18:47:47 | 3 | LoopUnrolling.cs:47:18:47:47 | 3 | -| LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:18:47:47 | 3 | +| LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:33:47:35 | "a" | | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:47:33:47:35 | "a" | | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:33:47:35 | "a" | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:38:47:40 | "b" | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:43:47:45 | "c" | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:48:22:48:22 | String x | | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:49:9:52:9 | {...} | @@ -2066,14 +2116,15 @@ | LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:51:13:51:23 | goto ...; | | LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:56:5:65:5 | {...} | | LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:57:9:57:48 | ... ...; | -| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:18:57:47 | 3 | +| LoopUnrolling.cs:57:13:57:14 | access to local variable xs | LoopUnrolling.cs:57:13:57:14 | access to local variable xs | +| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:13:57:14 | access to local variable xs | | LoopUnrolling.cs:57:18:57:47 | 3 | LoopUnrolling.cs:57:18:57:47 | 3 | -| LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:18:57:47 | 3 | +| LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:33:57:35 | "a" | | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:57:33:57:35 | "a" | | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:33:57:35 | "a" | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:38:57:40 | "b" | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:43:57:45 | "c" | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | String x | | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:59:9:64:9 | {...} | @@ -2089,14 +2140,14 @@ | LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:35:63:35 | access to local variable x | | LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:68:5:74:5 | {...} | | LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:69:9:70:19 | if (...) ... | -| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:69:14:69:17 | access to parameter args | +| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:69:13:69:23 | !... | | LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:69:14:69:17 | access to parameter args | | LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:17 | access to parameter args | | LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:12 | access to parameter args | | LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:71:9:71:12 | access to parameter args | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | access to parameter args | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | | LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:22:72:24 | String arg | | LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:29:72:32 | access to parameter args | | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | @@ -2104,11 +2155,12 @@ | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | | LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:77:5:83:5 | {...} | | LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:78:9:78:34 | ... ...; | -| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:29:78:29 | 2 | +| LoopUnrolling.cs:78:13:78:14 | access to local variable xs | LoopUnrolling.cs:78:13:78:14 | access to local variable xs | +| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:13:78:14 | access to local variable xs | | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:29:78:29 | 2 | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:29:78:29 | 2 | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:32:78:32 | 0 | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:22:79:22 | String x | | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | | LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:80:9:82:9 | {...} | @@ -2117,11 +2169,12 @@ | LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:31:81:31 | access to local variable x | | LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:86:5:92:5 | {...} | | LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:87:9:87:34 | ... ...; | -| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:29:87:29 | 0 | +| LoopUnrolling.cs:87:13:87:14 | access to local variable xs | LoopUnrolling.cs:87:13:87:14 | access to local variable xs | +| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:13:87:14 | access to local variable xs | | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:29:87:29 | 0 | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:29:87:29 | 0 | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:32:87:32 | 2 | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:22:88:22 | String x | | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | | LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:89:9:91:9 | {...} | @@ -2130,11 +2183,12 @@ | LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:31:90:31 | access to local variable x | | LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:95:5:101:5 | {...} | | LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:96:9:96:34 | ... ...; | -| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:96:29:96:29 | 2 | +| LoopUnrolling.cs:96:13:96:14 | access to local variable xs | LoopUnrolling.cs:96:13:96:14 | access to local variable xs | +| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:96:13:96:14 | access to local variable xs | | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:29:96:29 | 2 | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:29:96:29 | 2 | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:32:96:32 | 2 | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs: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:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | | LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:98:9:100:9 | {...} | @@ -2164,7 +2218,6 @@ | MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:49:15:49 | access to parameter s | | MultiImplementationA.cs:15:49:15:49 | access to parameter s | MultiImplementationA.cs:15:49:15:49 | access to parameter s | | MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:58:15:60 | {...} | -| MultiImplementationA.cs:16:28:16:28 | 0 | MultiImplementationA.cs:16:28:16:28 | 0 | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:17:5:19:5 | {...} | | 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 | @@ -2222,7 +2275,6 @@ | MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationB.cs:13:48:13:51 | null | | MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:48:13:51 | null | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | -| MultiImplementationB.cs:14:28:14:28 | 1 | MultiImplementationB.cs:14:28:14:28 | 1 | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationB.cs:16:9:16:31 | M2(...) | | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:27:16:30 | null | @@ -2259,51 +2311,54 @@ | 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 | +| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:28 | ... ?? ... | | NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:28:3:28 | 0 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:25:5:25 | access to parameter b | +| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | | NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | access to parameter b | -| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:25:5:25 | access to parameter b | +| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:25:5:34 | ... ?? ... | | NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | false | | NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:39:5:39 | 0 | | NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:43:5:43 | 1 | | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | +| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:53 | ... ?? ... | | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | +| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:53 | ... ?? ... | | NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:37 | access to parameter b | +| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:36:9:58 | ... ?? ... | | NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | access to parameter b | -| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:37:9:37 | access to parameter b | +| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | | NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | access to parameter s | | NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | access to parameter s | | NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:52 | "" | +| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | | NullCoalescing.cs:9:57:9:58 | "" | NullCoalescing.cs:9:57:9:58 | "" | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | +| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | -| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | +| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:44:11:59 | ... ?? ... | | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | -| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | +| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:51:11:58 | ... && ... | | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | | NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:64:11:64 | 0 | | NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:68:11:68 | 1 | | NullCoalescing.cs:14:5:18:5 | {...} | NullCoalescing.cs:14:5:18:5 | {...} | | NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:15:9:15:32 | ... ...; | -| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:15:23:15:26 | null | +| NullCoalescing.cs:15:13:15:13 | access to local variable j | NullCoalescing.cs:15:13:15:13 | access to local variable j | +| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:15:13:15:13 | access to local variable j | | NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:23:15:26 | null | -| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:23:15:26 | null | +| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:17:15:31 | ... ?? ... | | NullCoalescing.cs:15:23:15:26 | null | NullCoalescing.cs:15:23:15:26 | null | | NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:31:15:31 | 0 | | NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:16:9:16:26 | ... ...; | -| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:16:17:16:18 | "" | +| NullCoalescing.cs:16:13:16:13 | access to local variable s | NullCoalescing.cs:16:13:16:13 | access to local variable s | +| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:16:13:16:13 | access to local variable s | | NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:18 | "" | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:18 | "" | +| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | | NullCoalescing.cs:16:23:16:25 | "a" | NullCoalescing.cs:16:23:16:25 | "a" | -| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:17:19:17:19 | access to parameter i | +| NullCoalescing.cs:17:9:17:9 | access to local variable j | NullCoalescing.cs:17:9:17:9 | access to local variable j | +| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:17:9:17:9 | access to local variable j | | NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:17:9:17:25 | ...; | | 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:19:17:19 | access to parameter i | +| NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17: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 | @@ -2328,7 +2383,8 @@ | 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 | ... ...; | -| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:20:7:23 | null | +| Patterns.cs:7:16:7:16 | access to local variable o | Patterns.cs:7:16:7:16 | access to local variable o | +| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:16:7:16 | access to local variable o | | Patterns.cs:7:20:7:23 | null | Patterns.cs:7:20:7:23 | null | | Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:8:9:18:9 | if (...) ... | | Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:13:8:13 | access to local variable o | @@ -2408,7 +2464,7 @@ | Patterns.cs:48:18:48:20 | a | Patterns.cs:48:18:48:20 | a | | Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:9:51:9 | access to parameter c | | Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:9 | access to parameter c | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:9 | access to parameter c | +| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:39 | ... ? ... : ... | | Patterns.cs:51:14:51:21 | not ... | Patterns.cs:51:18:51:21 | null | | Patterns.cs:51:18:51:21 | null | Patterns.cs:51:18:51:21 | null | | Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:25 | access to parameter c | @@ -2426,48 +2482,48 @@ | Patterns.cs:54:27:54:35 | { ... } | Patterns.cs:54:33:54:33 | 1 | | Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:33:54:33 | 1 | | Patterns.cs:57:5:63:5 | {...} | Patterns.cs:57:5:63:5 | {...} | -| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:58:16:58:16 | access to parameter i | +| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:58:16:62:9 | ... switch { ... } | | Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:58:16:58:16 | access to parameter i | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:58:16 | access to parameter i | +| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:62:9 | ... switch { ... } | | Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:17:60:17 | 1 | -| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:17:60:17 | 1 | +| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | ... => ... | | Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:17:60:17 | 1 | | Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:22:60:28 | "not 1" | | Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:13:61:13 | _ | +| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:13:61:24 | ... => ... | | Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:18:61:24 | "other" | | Patterns.cs:66:5:72:5 | {...} | Patterns.cs:66:5:72:5 | {...} | -| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:67:16:67:16 | 2 | +| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:67:16:71:9 | ... switch { ... } | | Patterns.cs:67:16:67:16 | 2 | Patterns.cs:67:16:67:16 | 2 | -| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:16:67:16 | 2 | +| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:16:71:9 | ... switch { ... } | | Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:17:69:17 | 2 | -| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:17:69:17 | 2 | +| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | ... => ... | | Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:17:69:17 | 2 | | Patterns.cs:69:22:69:33 | "impossible" | Patterns.cs:69:22:69:33 | "impossible" | | Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:13 | 2 | +| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | ... => ... | | Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:18:70:27 | "possible" | | Patterns.cs:75:5:83:5 | {...} | Patterns.cs:75:5:83:5 | {...} | -| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:76:16:76:16 | access to parameter i | +| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:76:16:82:9 | ... switch { ... } | | Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:76:16:76:16 | access to parameter i | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:76:16 | access to parameter i | +| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:82:9 | ... switch { ... } | | Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:15:78:15 | 1 | -| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:15:78:15 | 1 | +| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | ... => ... | | Patterns.cs:78:15:78:15 | 1 | Patterns.cs:78:15:78:15 | 1 | | Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:20:78:24 | "> 1" | | Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:15:79:15 | 0 | -| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:15:79:15 | 0 | +| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | ... => ... | | Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:15:79:15 | 0 | | Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:20:79:24 | "< 0" | | Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | 1 | -| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:13 | 1 | +| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | ... => ... | | Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:18:80:20 | "1" | | Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:13:81:13 | _ | +| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:13:81:20 | ... => ... | | Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:18:81:20 | "0" | | Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:39:85:39 | access to parameter i | | Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:39 | access to parameter i | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:39 | access to parameter i | +| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:69 | ... ? ... : ... | | Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:44:85:44 | 1 | | Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:44:85:44 | 1 | | Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:53:85:53 | 2 | @@ -2476,7 +2532,7 @@ | Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:67:85:69 | "2" | | Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:39:87:39 | access to parameter i | | Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:39 | access to parameter i | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:39 | access to parameter i | +| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:70 | ... ? ... : ... | | Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:44:87:44 | 1 | | Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:44:87:44 | 1 | | Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:54:87:54 | 2 | @@ -2521,7 +2577,6 @@ | PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:20:45:20:53 | nameof(...) | | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:45:20:53 | nameof(...) | | PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:45:20:53 | nameof(...) | -| PostDominance.cs:20:52:20:52 | access to parameter s | PostDominance.cs:20:52:20:52 | access to parameter s | | 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:21:9:21:29 | ...; | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:27:21:27 | access to parameter s | @@ -2533,56 +2588,71 @@ | Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:41:8:44 | null | | Qualifiers.cs:11:5:31:5 | {...} | Qualifiers.cs:11:5:31:5 | {...} | | Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:12:9:12:22 | ... ...; | -| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:12:17:12:21 | this access | +| Qualifiers.cs:12:13:12:13 | access to local variable q | Qualifiers.cs:12:13:12:13 | access to local variable q | +| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:12:13:12:13 | access to local variable q | | Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:12:17:12:21 | this access | | Qualifiers.cs:12:17:12:21 | this access | Qualifiers.cs:12:17:12:21 | this access | -| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:13:13:13:20 | this access | +| Qualifiers.cs:13:9:13:9 | access to local variable q | Qualifiers.cs:13:9:13:9 | access to local variable q | +| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:13:9:13:9 | access to local variable q | | Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:13:9:13:21 | ...; | | Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:13:13:13:20 | this access | | Qualifiers.cs:13:13:13:20 | this access | Qualifiers.cs:13:13:13:20 | this access | -| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:14:13:14:20 | this access | +| Qualifiers.cs:14:9:14:9 | access to local variable q | Qualifiers.cs:14:9:14:9 | access to local variable q | +| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:14:9:14:9 | access to local variable q | | Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:14:9:14:21 | ...; | | Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:14:13:14:20 | this access | | Qualifiers.cs:14:13:14:20 | this access | Qualifiers.cs:14:13:14:20 | this access | -| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:16:13:16:16 | this access | +| Qualifiers.cs:16:9:16:9 | access to local variable q | Qualifiers.cs:16:9:16:9 | access to local variable q | +| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:16:9:16:9 | access to local variable q | | Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:16:9:16:23 | ...; | | Qualifiers.cs:16:13:16:16 | this access | Qualifiers.cs:16:13:16:16 | this access | | Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:16:13:16:16 | this access | -| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:17:13:17:16 | this access | +| Qualifiers.cs:17:9:17:9 | access to local variable q | Qualifiers.cs:17:9:17:9 | access to local variable q | +| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:17:9:17:9 | access to local variable q | | Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:17:9:17:26 | ...; | | Qualifiers.cs:17:13:17:16 | this access | Qualifiers.cs:17:13:17:16 | this access | | Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:17:13:17:16 | this access | -| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:18:13:18:16 | this access | +| Qualifiers.cs:18:9:18:9 | access to local variable q | Qualifiers.cs:18:9:18:9 | access to local variable q | +| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:18:9:18:9 | access to local variable q | | Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:18:9:18:26 | ...; | | Qualifiers.cs:18:13:18:16 | this access | Qualifiers.cs:18:13:18:16 | this access | | Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:18:13:18:16 | this access | -| Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:20:13:20:23 | access to field StaticField | +| Qualifiers.cs:20:9:20:9 | access to local variable q | Qualifiers.cs:20:9:20:9 | access to local variable q | +| Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:20:9:20:9 | access to local variable q | | Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:20:9:20:24 | ...; | | Qualifiers.cs:20:13:20:23 | access to field StaticField | Qualifiers.cs:20:13:20:23 | access to field StaticField | -| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | +| Qualifiers.cs:21:9:21:9 | access to local variable q | Qualifiers.cs:21:9:21:9 | access to local variable q | +| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:21:9:21:9 | access to local variable q | | Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:21:9:21:27 | ...; | | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | -| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | +| Qualifiers.cs:22:9:22:9 | access to local variable q | Qualifiers.cs:22:9:22:9 | access to local variable q | +| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:22:9:22:9 | access to local variable q | | Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:22:9:22:27 | ...; | | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | -| Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:24:13:24:34 | access to field StaticField | +| Qualifiers.cs:24:9:24:9 | access to local variable q | Qualifiers.cs:24:9:24:9 | access to local variable q | +| Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:24:9:24:9 | access to local variable q | | Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:24:9:24:35 | ...; | | Qualifiers.cs:24:13:24:34 | access to field StaticField | Qualifiers.cs:24:13:24:34 | access to field StaticField | -| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | +| Qualifiers.cs:25:9:25:9 | access to local variable q | Qualifiers.cs:25:9:25:9 | access to local variable q | +| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:25:9:25:9 | access to local variable q | | Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:25:9:25:38 | ...; | | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | -| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | +| Qualifiers.cs:26:9:26:9 | access to local variable q | Qualifiers.cs:26:9:26:9 | access to local variable q | +| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:26:9:26:9 | access to local variable q | | Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:26:9:26:38 | ...; | | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | -| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:28:13:28:34 | access to field StaticField | +| Qualifiers.cs:28:9:28:9 | access to local variable q | Qualifiers.cs:28:9:28:9 | access to local variable q | +| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:28:9:28:9 | access to local variable q | | Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:28:9:28:41 | ...; | | Qualifiers.cs:28:13:28:34 | access to field StaticField | Qualifiers.cs:28:13:28:34 | access to field StaticField | | Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:28:13:28:34 | access to field StaticField | -| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | +| Qualifiers.cs:29:9:29:9 | access to local variable q | Qualifiers.cs:29:9:29:9 | access to local variable q | +| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:29:9:29:9 | access to local variable q | | Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:29:9:29:47 | ...; | | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | | Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | -| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | +| Qualifiers.cs:30:9:30:9 | access to local variable q | Qualifiers.cs:30:9:30:9 | access to local variable q | +| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:30:9:30:9 | access to local variable q | | Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:30:9:30:47 | ...; | | 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 | @@ -2620,7 +2690,7 @@ | Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:32 | access to local variable s | | Switch.cs:24:32:24:39 | access to property Length | Switch.cs:24:32:24:32 | access to local variable s | | Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:24:32:24:32 | access to local variable s | +| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:24:32:24:55 | ... && ... | | Switch.cs:24:43:24:43 | 0 | Switch.cs:24:43:24:43 | 0 | | Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:48:24:48 | access to local variable s | | Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:48 | access to local variable s | @@ -2639,8 +2709,6 @@ | Switch.cs:36:5:42:5 | {...} | Switch.cs:36:5:42:5 | {...} | | Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:9:41:9 | switch (...) {...} | | Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:37:17:37:23 | call to method Throw | -| Switch.cs:39:13:39:20 | default: | Switch.cs:39:13:39:20 | default: | -| Switch.cs:40:17:40:23 | return ...; | Switch.cs:40:17:40:23 | return ...; | | Switch.cs:45:5:53:5 | {...} | Switch.cs:45:5:53:5 | {...} | | Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:46:9:52:9 | switch (...) {...} | | Switch.cs:46:17:46:17 | access to parameter o | Switch.cs:46:17:46:17 | access to parameter o | @@ -2742,24 +2810,24 @@ | Switch.cs:124:5:127:5 | {...} | Switch.cs:124:5:127:5 | {...} | | Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:125:9:126:19 | if (...) ... | | Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:13:125:13 | access to parameter o | -| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:13:125:13 | access to parameter o | +| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:13:125:48 | ... switch { ... } | | Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:24:125:29 | Boolean b | -| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:29 | Boolean b | +| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | ... => ... | | Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:34:125:34 | access to local variable b | | Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:37 | _ | -| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:37 | _ | +| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:46 | ... => ... | | Switch.cs:125:42:125:46 | false | Switch.cs:125:42:125:46 | false | | Switch.cs:126:13:126:19 | return ...; | Switch.cs:126:13:126:19 | return ...; | | Switch.cs:130:5:132:5 | {...} | Switch.cs:130:5:132:5 | {...} | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:17:131:17 | access to parameter o | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:17:131:17 | access to parameter o | +| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:17:131:53 | ... switch { ... } | +| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:17:131:53 | ... switch { ... } | | Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:131:17:131:17 | access to parameter o | -| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:17:131:17 | access to parameter o | +| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:17:131:53 | ... switch { ... } | | Switch.cs:131:28:131:35 | String s | Switch.cs:131:28:131:35 | String s | -| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:35 | String s | +| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | ... => ... | | Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:40:131:40 | access to local variable s | | Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:43 | _ | +| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:51 | ... => ... | | Switch.cs:131:48:131:51 | null | Switch.cs:131:48:131:51 | null | | Switch.cs:135:5:142:5 | {...} | Switch.cs:135:5:142:5 | {...} | | Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:136:9:141:9 | switch (...) {...} | @@ -2793,14 +2861,15 @@ | Switch.cs:150:28:150:28 | 2 | Switch.cs:150:28:150:28 | 2 | | Switch.cs:155:5:161:5 | {...} | Switch.cs:155:5:161:5 | {...} | | Switch.cs:156:9:156:55 | ... ...; | Switch.cs:156:9:156:55 | ... ...; | -| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:17:156:17 | access to parameter b | +| Switch.cs:156:13:156:13 | access to local variable s | Switch.cs:156:13:156:13 | access to local variable s | +| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:13:156:13 | access to local variable s | | Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:17:156:17 | access to parameter b | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:17 | access to parameter b | +| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:54 | ... switch { ... } | | Switch.cs:156:28:156:31 | true | Switch.cs:156:28:156:31 | true | -| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:31 | true | +| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | ... => ... | | Switch.cs:156:36:156:38 | "a" | Switch.cs:156:36:156:38 | "a" | | Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | false | -| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:45 | false | +| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | ... => ... | | Switch.cs:156:50:156:52 | "b" | Switch.cs:156:50:156:52 | "b" | | Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:157:9:160:49 | if (...) ... | | Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | access to parameter b | @@ -2844,10 +2913,12 @@ | 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 | ... ...; | -| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:5:25:5:25 | access to parameter o | +| TypeAccesses.cs:5:13:5:13 | access to local variable s | TypeAccesses.cs:5:13:5:13 | access to local variable s | +| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:5:13:5:13 | access to local variable s | | TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:5:25:5:25 | access to parameter o | | TypeAccesses.cs:5:25:5:25 | access to parameter o | TypeAccesses.cs:5:25:5:25 | access to parameter o | -| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:6:13:6:13 | access to parameter o | +| TypeAccesses.cs:6:9:6:9 | access to local variable s | TypeAccesses.cs:6:9:6:9 | access to local variable s | +| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:6:9:6:9 | access to local variable s | | TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:6:9:6:24 | ...; | | TypeAccesses.cs:6:13:6:13 | access to parameter o | TypeAccesses.cs:6:13:6:13 | access to parameter o | | TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:6:13:6:13 | access to parameter o | @@ -2857,7 +2928,8 @@ | TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:18:7:22 | Int32 j | | TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:25:7:25 | ; | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:9:8:28 | ... ...; | -| TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:17:8:27 | typeof(...) | +| TypeAccesses.cs:8:13:8:13 | access to local variable t | TypeAccesses.cs:8:13:8:13 | access to local variable t | +| TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:13:8:13 | access to local variable t | | 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 | @@ -2865,12 +2937,14 @@ | 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(...) { ... } | -| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:27:7:33 | access to parameter strings | +| VarDecls.cs:7:22:7:23 | access to local variable c1 | VarDecls.cs:7:22:7:23 | access to local variable c1 | +| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:22:7:23 | access to local variable c1 | | VarDecls.cs:7:27:7:33 | access to parameter strings | VarDecls.cs:7:27:7:33 | access to parameter strings | | VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:27:7:33 | access to parameter strings | | VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:7:27:7:33 | access to parameter strings | | VarDecls.cs:7:35:7:35 | 0 | VarDecls.cs:7:35:7:35 | 0 | -| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:7:44:7:50 | access to parameter strings | +| VarDecls.cs:7:39:7:40 | access to local variable c2 | VarDecls.cs:7:39:7:40 | access to local variable c2 | +| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:7:39:7:40 | access to local variable c2 | | VarDecls.cs:7:44:7:50 | access to parameter strings | VarDecls.cs:7:44:7:50 | access to parameter strings | | VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:44:7:50 | access to parameter strings | | VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:7:44:7:50 | access to parameter strings | @@ -2881,9 +2955,11 @@ | VarDecls.cs:9:27:9:28 | access to local variable c1 | VarDecls.cs:9:27:9:28 | access to local variable c1 | | VarDecls.cs:14:5:17:5 | {...} | VarDecls.cs:14:5:17:5 | {...} | | VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:15:9:15:30 | ... ...; | -| VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:21:15:21 | access to parameter s | +| VarDecls.cs:15:16:15:17 | access to local variable s1 | VarDecls.cs:15:16:15:17 | access to local variable s1 | +| VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:16:15:17 | access to local variable s1 | | VarDecls.cs:15:21:15:21 | access to parameter s | VarDecls.cs:15:21:15:21 | access to parameter s | -| VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:15:29:15:29 | access to parameter s | +| VarDecls.cs:15:24:15:25 | access to local variable s2 | VarDecls.cs:15:24:15:25 | access to local variable s2 | +| VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:15:24:15:25 | access to local variable s2 | | VarDecls.cs:15:29:15:29 | access to parameter s | VarDecls.cs:15:29:15:29 | access to parameter s | | VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:16:16:16:17 | access to local variable s1 | | VarDecls.cs:16:16:16:17 | access to local variable s1 | VarDecls.cs:16:16:16:17 | access to local variable s1 | @@ -2894,13 +2970,15 @@ | VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:21:16:21:22 | object creation of type C | | VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:22:13:22:13 | ; | | VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:24:9:25:29 | using (...) {...} | -| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:22:24:28 | object creation of type C | +| VarDecls.cs:24:18:24:18 | access to local variable x | VarDecls.cs:24:18:24:18 | access to local variable x | +| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:18:24:18 | access to local variable x | | VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:22:24:28 | object creation of type C | -| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:24:35:24:41 | object creation of type C | +| VarDecls.cs:24:31:24:31 | access to local variable y | VarDecls.cs:24:31:24:31 | access to local variable y | +| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:24:31:24:31 | access to local variable y | | VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:35:24:41 | object creation of type C | -| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:25:20:25:20 | access to parameter b | +| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:25:20:25:28 | ... ? ... : ... | | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | access to parameter b | -| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:20:25:20 | access to parameter b | +| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:20:25:28 | ... ? ... : ... | | 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 | @@ -2910,10 +2988,12 @@ | VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:51:28:53 | {...} | | cflow.cs:6:5:35:5 | {...} | cflow.cs:6:5:35:5 | {...} | | cflow.cs:7:9:7:28 | ... ...; | cflow.cs:7:9:7:28 | ... ...; | -| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:7:17:7:20 | access to parameter args | +| cflow.cs:7:13:7:13 | access to local variable a | cflow.cs:7:13:7:13 | access to local variable a | +| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:7:13:7:13 | access to local variable a | | cflow.cs:7:17:7:20 | access to parameter args | cflow.cs:7:17:7:20 | access to parameter args | | cflow.cs:7:17:7:27 | access to property Length | cflow.cs:7:17:7:20 | access to parameter args | -| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:9:13:9:29 | object creation of type ControlFlow | +| cflow.cs:9:9:9:9 | access to local variable a | cflow.cs:9:9:9:9 | access to local variable a | +| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:9:9:9:9 | access to local variable a | | cflow.cs:9:9:9:40 | ...; | cflow.cs:9:9:9:40 | ...; | | cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:13:9:29 | object creation of type ControlFlow | | cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:9:13:9:29 | object creation of type ControlFlow | @@ -2947,7 +3027,8 @@ | cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:18 | access to local variable a | | cflow.cs:22:22:22:23 | 10 | cflow.cs:22:22:22:23 | 10 | | cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:22:24:22 | 1 | +| cflow.cs:24:18:24:18 | access to local variable i | cflow.cs:24:18:24:18 | access to local variable i | +| cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:18:24:18 | access to local variable i | | cflow.cs:24:22:24:22 | 1 | cflow.cs:24:22:24:22 | 1 | | cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:25:24:25 | access to local variable i | | cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:25 | access to local variable i | @@ -2959,7 +3040,7 @@ | cflow.cs:26:17:26:17 | access to local variable i | cflow.cs:26:17:26:17 | access to local variable i | | cflow.cs:26:17:26:21 | ... % ... | cflow.cs:26:17:26:17 | access to local variable i | | cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:17 | access to local variable i | -| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:26:17:26:17 | access to local variable i | +| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:26:17:26:40 | ... && ... | | cflow.cs:26:21:26:21 | 3 | cflow.cs:26:21:26:21 | 3 | | cflow.cs:26:26:26:26 | 0 | cflow.cs:26:26:26:26 | 0 | | cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | @@ -3034,7 +3115,7 @@ | cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:13:62:19 | case ...: | | cflow.cs:62:18:62:18 | 0 | cflow.cs:62:18:62:18 | 0 | | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:63:21:63:34 | !... | cflow.cs:63:23:63:27 | this access | +| cflow.cs:63:21:63:34 | !... | cflow.cs:63:21:63:34 | !... | | cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:23:63:27 | this access | | cflow.cs:63:23:63:27 | this access | cflow.cs:63:23:63:27 | this access | | cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:27 | this access | @@ -3067,7 +3148,7 @@ | cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:86:9:87:33 | if (...) ... | | cflow.cs:86:13:86:13 | access to parameter s | cflow.cs:86:13:86:13 | access to parameter s | | cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:13 | access to parameter s | -| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:86:13:86:13 | access to parameter s | +| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:86:13:86:37 | ... && ... | | cflow.cs:86:18:86:21 | null | cflow.cs:86:18:86:21 | null | | cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:26 | access to parameter s | | cflow.cs:86:26:86:33 | access to property Length | cflow.cs:86:26:86:26 | access to parameter s | @@ -3126,17 +3207,16 @@ | cflow.cs:112:17:112:36 | call to method WriteLine | cflow.cs:112:35:112:35 | access to parameter s | | cflow.cs:112:17:112:37 | ...; | cflow.cs:112:17:112:37 | ...; | | cflow.cs:112:35:112:35 | access to parameter s | cflow.cs:112:35:112:35 | access to parameter s | -| cflow.cs:114:13:114:32 | call to method WriteLine | cflow.cs:114:31:114:31 | access to parameter s | -| cflow.cs:114:13:114:33 | ...; | cflow.cs:114:13:114:33 | ...; | -| cflow.cs:114:31:114:31 | access to parameter s | cflow.cs:114:31:114:31 | access to parameter s | | cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:116:27:116:27 | access to parameter s | | cflow.cs:116:9:116:29 | ...; | cflow.cs:116:9:116:29 | ...; | | cflow.cs:116:27:116:27 | access to parameter s | cflow.cs:116:27:116:27 | access to parameter s | | cflow.cs:120:5:124:5 | {...} | cflow.cs:120:5:124:5 | {...} | | cflow.cs:121:9:121:18 | ... ...; | cflow.cs:121:9:121:18 | ... ...; | -| cflow.cs:121:13:121:17 | String x = ... | cflow.cs:121:17:121:17 | access to parameter s | +| cflow.cs:121:13:121:13 | access to local variable x | cflow.cs:121:13:121:13 | access to local variable x | +| cflow.cs:121:13:121:17 | String x = ... | cflow.cs:121:13:121:13 | access to local variable x | | cflow.cs:121:17:121:17 | access to parameter s | cflow.cs:121:17:121:17 | access to parameter s | -| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:122:13:122:13 | access to local variable x | +| cflow.cs:122:9:122:9 | access to local variable x | cflow.cs:122:9:122:9 | access to local variable x | +| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:122:9:122:9 | access to local variable x | | cflow.cs:122:9:122:20 | ...; | cflow.cs:122:9:122:20 | ...; | | cflow.cs:122:13:122:13 | access to local variable x | cflow.cs:122:13:122:13 | access to local variable x | | cflow.cs:122:13:122:19 | ... + ... | cflow.cs:122:13:122:13 | access to local variable x | @@ -3144,11 +3224,11 @@ | cflow.cs:123:9:123:17 | return ...; | cflow.cs:123:16:123:16 | access to local variable x | | cflow.cs:123:16:123:16 | access to local variable x | cflow.cs:123:16:123:16 | access to local variable x | | cflow.cs:127:23:127:60 | {...} | cflow.cs:127:23:127:60 | {...} | -| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:32:127:36 | this access | +| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:32:127:57 | ... ? ... : ... | | cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:32:127:36 | this access | | cflow.cs:127:32:127:36 | this access | cflow.cs:127:32:127:36 | this access | | cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:36 | this access | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:32:127:36 | this access | +| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:32:127:57 | ... ? ... : ... | | cflow.cs:127:41:127:44 | null | cflow.cs:127:41:127:44 | null | | cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | | cflow.cs:127:53:127:57 | access to field Field | cflow.cs:127:53:127:57 | this access | @@ -3194,7 +3274,8 @@ | cflow.cs:144:60:144:62 | {...} | cflow.cs:144:60:144:62 | {...} | | cflow.cs:147:5:177:5 | {...} | cflow.cs:147:5:177:5 | {...} | | cflow.cs:148:9:148:18 | ... ...; | cflow.cs:148:9:148:18 | ... ...; | -| cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:148:17:148:17 | 0 | +| cflow.cs:148:13:148:13 | access to local variable x | cflow.cs:148:13:148:13 | access to local variable x | +| cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:148:13:148:13 | access to local variable x | | cflow.cs:148:17:148:17 | 0 | cflow.cs:148:17:148:17 | 0 | | cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:149:9:150:33 | for (...;...;...) ... | | cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:16:149:16 | access to local variable x | @@ -3242,9 +3323,11 @@ | cflow.cs:170:13:170:15 | ...++ | cflow.cs:170:13:170:13 | access to local variable x | | cflow.cs:170:13:170:16 | ...; | cflow.cs:170:13:170:16 | ...; | | cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:22:173:22 | 0 | +| cflow.cs:173:18:173:18 | access to local variable i | cflow.cs:173:18:173:18 | access to local variable i | +| cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:18:173:18 | access to local variable i | | cflow.cs:173:22:173:22 | 0 | cflow.cs:173:22:173:22 | 0 | -| cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:29:173:29 | 0 | +| cflow.cs:173:25:173:25 | access to local variable j | cflow.cs:173:25:173:25 | access to local variable j | +| cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:25:173:25 | access to local variable j | | cflow.cs:173:29:173:29 | 0 | cflow.cs:173:29:173:29 | 0 | | cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:32:173:32 | access to local variable i | | cflow.cs:173:32:173:36 | ... + ... | cflow.cs:173:32:173:32 | access to local variable i | @@ -3263,13 +3346,15 @@ | cflow.cs:175:35:175:35 | access to local variable j | cflow.cs:175:35:175:35 | access to local variable j | | cflow.cs:180:5:183:5 | {...} | cflow.cs:180:5:183:5 | {...} | | cflow.cs:181:9:181:38 | ... ...; | cflow.cs:181:9:181:38 | ... ...; | -| cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:181:24:181:24 | access to local variable y | cflow.cs:181:24:181:24 | access to local variable y | +| cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:181:24:181:24 | access to local variable y | | cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:181:28:181:37 | (...) => ... | | cflow.cs:181:33:181:33 | access to parameter x | cflow.cs:181:33:181:33 | access to parameter x | | cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:33:181:33 | access to parameter x | | cflow.cs:181:37:181:37 | 1 | cflow.cs:181:37:181:37 | 1 | | cflow.cs:182:9:182:62 | ... ...; | cflow.cs:182:9:182:62 | ... ...; | -| cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:182:24:182:24 | access to local variable z | cflow.cs:182:24:182:24 | access to local variable z | +| cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:182:24:182:24 | access to local variable z | | cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:182:28:182:61 | delegate(...) { ... } | | cflow.cs:182:45:182:61 | {...} | cflow.cs:182:45:182:61 | {...} | | cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:54:182:54 | access to parameter x | @@ -3280,15 +3365,15 @@ | cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:187:9:190:52 | if (...) ... | | cflow.cs:187:13:187:13 | 1 | cflow.cs:187:13:187:13 | 1 | | cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:13 | 1 | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:13 | 1 | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:13 | 1 | +| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | +| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | | cflow.cs:187:18:187:18 | 2 | cflow.cs:187:18:187:18 | 2 | | cflow.cs:187:23:187:23 | 2 | cflow.cs:187:23:187:23 | 2 | | cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:23 | 2 | | cflow.cs:187:28:187:28 | 3 | cflow.cs:187:28:187:28 | 3 | | cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:34 | 1 | | cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:34 | 1 | +| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:49 | ... && ... | | cflow.cs:187:39:187:39 | 3 | cflow.cs:187:39:187:39 | 3 | | cflow.cs:187:44:187:44 | 3 | cflow.cs:187:44:187:44 | 3 | | cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:44 | 3 | @@ -3301,54 +3386,56 @@ | cflow.cs:190:31:190:50 | "This should happen" | cflow.cs:190:31:190:50 | "This should happen" | | cflow.cs:194:5:206:5 | {...} | cflow.cs:194:5:206:5 | {...} | | cflow.cs:195:9:195:57 | ... ...; | cflow.cs:195:9:195:57 | ... ...; | -| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:195:17:195:21 | this access | +| cflow.cs:195:13:195:13 | access to local variable b | cflow.cs:195:13:195:13 | access to local variable b | +| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:195:13:195:13 | access to local variable b | | cflow.cs:195:17:195:21 | access to field Field | cflow.cs:195:17:195:21 | this access | | cflow.cs:195:17:195:21 | this access | cflow.cs:195:17:195:21 | this access | | cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:17:195:21 | this access | | cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:21 | this access | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:21 | this access | +| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:56 | ... && ... | | cflow.cs:195:32:195:32 | 0 | cflow.cs:195:32:195:32 | 0 | -| cflow.cs:195:37:195:56 | !... | cflow.cs:195:39:195:43 | this access | +| cflow.cs:195:37:195:56 | !... | cflow.cs:195:37:195:56 | !... | | cflow.cs:195:39:195:43 | access to field Field | cflow.cs:195:39:195:43 | this access | | cflow.cs:195:39:195:43 | this access | cflow.cs:195:39:195:43 | this access | | cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:39:195:43 | this access | | cflow.cs:195:39:195:55 | ... == ... | cflow.cs:195:39:195:43 | this access | | cflow.cs:195:55:195:55 | 1 | cflow.cs:195:55:195:55 | 1 | | cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:197:9:198:49 | if (...) ... | -| cflow.cs:197:13:197:47 | !... | cflow.cs:197:15:197:19 | this access | +| cflow.cs:197:13:197:47 | !... | cflow.cs:197:13:197:47 | !... | | cflow.cs:197:15:197:19 | access to field Field | cflow.cs:197:15:197:19 | this access | | cflow.cs:197:15:197:19 | this access | cflow.cs:197:15:197:19 | this access | | cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:15:197:19 | this access | | cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:19 | this access | -| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:197:15:197:19 | this access | +| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:197:15:197:46 | ... ? ... : ... | | cflow.cs:197:31:197:31 | 0 | cflow.cs:197:31:197:31 | 0 | | cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | false | | cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | true | -| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:198:17:198:21 | this access | +| cflow.cs:198:13:198:13 | access to local variable b | cflow.cs:198:13:198:13 | access to local variable b | +| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:198:13:198:13 | access to local variable b | | cflow.cs:198:13:198:49 | ...; | cflow.cs:198:13:198:49 | ...; | | cflow.cs:198:17:198:21 | access to field Field | cflow.cs:198:17:198:21 | this access | | cflow.cs:198:17:198:21 | this access | cflow.cs:198:17:198:21 | this access | | cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:17:198:21 | this access | | cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:21 | this access | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:17:198:21 | this access | +| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:17:198:48 | ... ? ... : ... | | cflow.cs:198:33:198:33 | 0 | cflow.cs:198:33:198:33 | 0 | | cflow.cs:198:37:198:41 | false | cflow.cs:198:37:198:41 | false | | cflow.cs:198:45:198:48 | true | cflow.cs:198:45:198:48 | true | | cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:13:200:32 | !... | cflow.cs:200:15:200:19 | this access | -| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:200:15:200:19 | this access | +| cflow.cs:200:13:200:32 | !... | cflow.cs:200:13:200:32 | !... | +| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:200:13:200:62 | ... \|\| ... | | cflow.cs:200:15:200:19 | access to field Field | cflow.cs:200:15:200:19 | this access | | cflow.cs:200:15:200:19 | this access | cflow.cs:200:15:200:19 | this access | | cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:15:200:19 | this access | | cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:19 | this access | | cflow.cs:200:31:200:31 | 0 | cflow.cs:200:31:200:31 | 0 | -| cflow.cs:200:37:200:62 | !... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:38:200:62 | !... | cflow.cs:200:40:200:44 | this access | +| cflow.cs:200:37:200:62 | !... | cflow.cs:200:37:200:62 | !... | +| cflow.cs:200:38:200:62 | !... | cflow.cs:200:38:200:62 | !... | | cflow.cs:200:40:200:44 | access to field Field | cflow.cs:200:40:200:44 | this access | | cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:44 | this access | | cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:40:200:44 | this access | | cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:200:40:200:44 | this access | +| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:200:40:200:61 | ... && ... | | cflow.cs:200:56:200:56 | 1 | cflow.cs:200:56:200:56 | 1 | | cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | access to local variable b | | cflow.cs:201:9:205:9 | {...} | cflow.cs:201:9:205:9 | {...} | @@ -3385,7 +3472,7 @@ | cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:22 | this access | | cflow.cs:221:33:221:34 | 10 | cflow.cs:221:33:221:34 | 10 | | cflow.cs:225:5:238:5 | {...} | cflow.cs:225:5:238:5 | {...} | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:57:226:59 | "a" | +| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | | cflow.cs:226:22:226:22 | String x | cflow.cs:226:22:226:22 | String x | | cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:57:226:59 | "a" | | cflow.cs:226:57:226:59 | "a" | cflow.cs:226:57:226:59 | "a" | @@ -3415,8 +3502,8 @@ | cflow.cs:241:5:259:5 | {...} | cflow.cs:241:5:259:5 | {...} | | cflow.cs:242:5:242:9 | Label: | cflow.cs:242:5:242:9 | Label: | | cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:12:242:41 | if (...) ... | -| cflow.cs:242:16:242:36 | !... | cflow.cs:242:19:242:23 | this access | -| cflow.cs:242:17:242:36 | !... | cflow.cs:242:19:242:23 | this access | +| cflow.cs:242:16:242:36 | !... | cflow.cs:242:16:242:36 | !... | +| cflow.cs:242:17:242:36 | !... | cflow.cs:242:17:242:36 | !... | | cflow.cs:242:19:242:23 | access to field Field | cflow.cs:242:19:242:23 | this access | | cflow.cs:242:19:242:23 | this access | cflow.cs:242:19:242:23 | this access | | cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:19:242:23 | this access | @@ -3457,7 +3544,8 @@ | cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:263:22:263:22 | 0 | | cflow.cs:263:22:263:22 | 0 | cflow.cs:263:22:263:22 | 0 | | cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:264:9:267:9 | for (...;...;...) ... | -| cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:22:264:22 | 1 | +| cflow.cs:264:18:264:18 | access to local variable i | cflow.cs:264:18:264:18 | access to local variable i | +| cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:18:264:18 | access to local variable i | | cflow.cs:264:22:264:22 | 1 | cflow.cs:264:22:264:22 | 1 | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:25 | access to local variable i | | cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:25 | access to local variable i | @@ -3470,9 +3558,6 @@ | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:268:9:276:9 | try {...} ... | | cflow.cs:269:9:272:9 | {...} | cflow.cs:269:9:272:9 | {...} | | cflow.cs:270:13:270:24 | yield break; | cflow.cs:270:13:270:24 | yield break; | -| cflow.cs:271:13:271:42 | call to method WriteLine | cflow.cs:271:31:271:41 | "dead code" | -| cflow.cs:271:13:271:43 | ...; | cflow.cs:271:13:271:43 | ...; | -| cflow.cs:271:31:271:41 | "dead code" | cflow.cs:271:31:271:41 | "dead code" | | cflow.cs:274:9:276:9 | {...} | cflow.cs:274:9:276:9 | {...} | | 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 | ...; | @@ -3502,8 +3587,8 @@ | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:38:300:38 | 0 | | cflow.cs:300:9:300:73 | ...; | cflow.cs:300:9:300:73 | ...; | | cflow.cs:300:38:300:38 | 0 | cflow.cs:300:38:300:38 | 0 | -| cflow.cs:300:44:300:51 | !... | cflow.cs:300:46:300:46 | access to parameter i | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:46:300:46 | access to parameter i | +| cflow.cs:300:44:300:51 | !... | cflow.cs:300:44:300:51 | !... | +| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:64 | ... && ... | | cflow.cs:300:46:300:46 | access to parameter i | cflow.cs:300:46:300:46 | access to parameter i | | cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:46 | access to parameter i | | cflow.cs:300:50:300:50 | 0 | cflow.cs:300:50:300:50 | 0 | @@ -3518,7 +3603,8 @@ | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:307:5:310:5 | {...} | cflow.cs:307:5:310:5 | {...} | | cflow.cs:308:9:308:21 | ... ...; | cflow.cs:308:9:308:21 | ... ...; | -| cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:308:20:308:20 | access to parameter o | +| cflow.cs:308:16:308:16 | access to local variable x | cflow.cs:308:16:308:16 | access to local variable x | +| cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:308:16:308:16 | access to local variable x | | cflow.cs:308:20:308:20 | access to parameter o | cflow.cs:308:20:308:20 | access to parameter o | | cflow.cs:309:9:309:17 | return ...; | cflow.cs:309:16:309:16 | access to local variable x | | cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:309:16:309:16 | access to local variable x | From a7d4b00d06ee2632fc1a357162c4e5b15539761a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 7 Apr 2026 13:59:26 +0200 Subject: [PATCH 075/208] C#: Accept changed location for phi nodes. --- .../dataflow/local/DataFlowStep.expected | 913 +++++++++--------- .../dataflow/local/TaintTrackingStep.expected | 913 +++++++++--------- 2 files changed, 878 insertions(+), 948 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 29533a67083..8dcf5e1778c 100644 --- a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -519,11 +519,11 @@ | LocalDataFlow.cs:367:32:367:33 | SSA param(b2) | LocalDataFlow.cs:374:17:374:18 | access to parameter b2 | | LocalDataFlow.cs:367:32:367:33 | b2 | LocalDataFlow.cs:367:32:367:33 | SSA param(b2) | | LocalDataFlow.cs:369:17:369:18 | "" | LocalDataFlow.cs:369:13:369:13 | access to local variable x | +| LocalDataFlow.cs:372:9:379:9 | [input] SSA phi(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | LocalDataFlow.cs:373:13:373:13 | access to local variable x | LocalDataFlow.cs:373:13:373:25 | SSA def(x) | -| LocalDataFlow.cs:373:13:373:25 | SSA def(x) | LocalDataFlow.cs:374:17:374:18 | [input] SSA phi(x) | +| LocalDataFlow.cs:373:13:373:25 | SSA def(x) | LocalDataFlow.cs:372:9:379:9 | [input] SSA phi(x) | | LocalDataFlow.cs:373:13:373:25 | SSA def(x) | LocalDataFlow.cs:376:35:376:35 | access to local variable x | | LocalDataFlow.cs:373:17:373:25 | "tainted" | LocalDataFlow.cs:373:13:373:13 | access to local variable x | -| LocalDataFlow.cs:374:17:374:18 | [input] SSA phi(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | 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 | @@ -557,56 +557,49 @@ | SSA.cs:22:16:22:23 | access to local variable ssaSink1 | SSA.cs:22:16:22:28 | SSA def(ssaSink1) | | SSA.cs:22:16:22:28 | SSA def(ssaSink1) | SSA.cs:25:15:25:22 | access to local variable ssaSink1 | | SSA.cs:22:27:22:28 | "" | SSA.cs:22:16:22:23 | access to local variable ssaSink1 | +| SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | +| SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | SSA.cs:37:24:37:31 | access to local variable ssaSink0 | | SSA.cs:23:13:23:22 | [post] access to parameter nonTainted | SSA.cs:29:13:29:22 | access to parameter nonTainted | | SSA.cs:23:13:23:22 | access to parameter nonTainted | SSA.cs:29:13:29:22 | access to parameter nonTainted | -| SSA.cs:23:13:23:33 | [input] SSA phi read(ssaSink0) | SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | +| SSA.cs:23:13:23:33 | [input] SSA phi read(ssaSink0) | SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | | SSA.cs:24:13:24:20 | access to local variable ssaSink1 | SSA.cs:24:13:24:31 | SSA def(ssaSink1) | | SSA.cs:24:13:24:31 | SSA def(ssaSink1) | SSA.cs:25:15:25:22 | access to local variable ssaSink1 | +| SSA.cs:24:24:24:31 | access to local variable ssaSink0 | SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | | SSA.cs:24:24:24:31 | access to local variable ssaSink0 | SSA.cs:24:13:24:20 | access to local variable ssaSink1 | -| SSA.cs:24:24:24:31 | access to local variable ssaSink0 | SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | -| SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | -| SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | SSA.cs:37:24:37:31 | access to local variable ssaSink0 | | SSA.cs:28:16:28:23 | access to local variable nonSink1 | SSA.cs:28:16:28:28 | SSA def(nonSink1) | | SSA.cs:28:16:28:28 | SSA def(nonSink1) | SSA.cs:31:15:31:22 | access to local variable nonSink1 | | SSA.cs:28:27:28:28 | "" | SSA.cs:28:16:28:23 | access to local variable nonSink1 | +| SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | SSA.cs:47:13:47:33 | [input] SSA phi read(nonSink0) | +| SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | SSA.cs:49:24:49:31 | access to local variable nonSink0 | | SSA.cs:29:13:29:22 | [post] access to parameter nonTainted | SSA.cs:35:13:35:22 | access to parameter nonTainted | | SSA.cs:29:13:29:22 | access to parameter nonTainted | SSA.cs:35:13:35:22 | access to parameter nonTainted | -| SSA.cs:29:13:29:33 | [input] SSA phi read(nonSink0) | SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | +| SSA.cs:29:13:29:33 | [input] SSA phi read(nonSink0) | SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | | SSA.cs:30:13:30:20 | access to local variable nonSink1 | SSA.cs:30:13:30:31 | SSA def(nonSink1) | | SSA.cs:30:13:30:31 | SSA def(nonSink1) | SSA.cs:31:15:31:22 | access to local variable nonSink1 | +| SSA.cs:30:24:30:31 | access to local variable nonSink0 | SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | | SSA.cs:30:24:30:31 | access to local variable nonSink0 | SSA.cs:30:13:30:20 | access to local variable nonSink1 | -| SSA.cs:30:24:30:31 | access to local variable nonSink0 | SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | -| SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | SSA.cs:47:13:47:33 | [input] SSA phi read(nonSink0) | -| SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | SSA.cs:49:24:49:31 | access to local variable nonSink0 | | SSA.cs:34:16:34:23 | access to local variable ssaSink2 | SSA.cs:34:16:34:28 | SSA def(ssaSink2) | | SSA.cs:34:16:34:28 | SSA def(ssaSink2) | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | | SSA.cs:34:27:34:28 | "" | SSA.cs:34:16:34:23 | access to local variable ssaSink2 | +| SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | SSA.cs:89:13:89:33 | [input] SSA phi read(ssaSink0) | +| SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | SSA.cs:91:24:91:31 | access to local variable ssaSink0 | | SSA.cs:35:13:35:22 | [post] access to parameter nonTainted | SSA.cs:35:13:35:33 | [input] SSA phi read(nonTainted) | | SSA.cs:35:13:35:22 | [post] access to parameter nonTainted | SSA.cs:38:17:38:26 | access to parameter nonTainted | | SSA.cs:35:13:35:22 | access to parameter nonTainted | SSA.cs:35:13:35:33 | [input] SSA phi read(nonTainted) | | SSA.cs:35:13:35:22 | access to parameter nonTainted | SSA.cs:38:17:38:26 | access to parameter nonTainted | | SSA.cs:35:13:35:33 | [input] SSA phi read(nonTainted) | SSA.cs:47:13:47:22 | access to parameter nonTainted | -| SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | +| SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | | SSA.cs:37:13:37:20 | access to local variable ssaSink2 | SSA.cs:37:13:37:31 | SSA def(ssaSink2) | | SSA.cs:37:13:37:31 | SSA def(ssaSink2) | SSA.cs:39:21:39:28 | access to local variable ssaSink2 | | SSA.cs:37:13:37:31 | SSA def(ssaSink2) | SSA.cs:41:21:41:28 | access to local variable ssaSink2 | +| SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | | SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:37:13:37:20 | access to local variable ssaSink2 | -| SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:39:17:39:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:41:17:41:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:38:17:38:26 | [post] access to parameter nonTainted | SSA.cs:39:17:39:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:38:17:38:26 | [post] access to parameter nonTainted | SSA.cs:41:17:41:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:38:17:38:26 | access to parameter nonTainted | SSA.cs:39:17:39:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:38:17:38:26 | access to parameter nonTainted | SSA.cs:41:17:41:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:39:17:39:29 | [input] SSA phi read(nonTainted) | SSA.cs:47:13:47:22 | access to parameter nonTainted | -| SSA.cs:39:17:39:29 | [input] SSA phi read(ssaSink0) | SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | +| SSA.cs:38:17:38:26 | [post] access to parameter nonTainted | SSA.cs:47:13:47:22 | access to parameter nonTainted | +| SSA.cs:38:17:38:26 | access to parameter nonTainted | SSA.cs:47:13:47:22 | access to parameter nonTainted | | SSA.cs:39:21:39:28 | [post] access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | | SSA.cs:39:21:39:28 | access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | -| SSA.cs:41:17:41:29 | [input] SSA phi read(nonTainted) | SSA.cs:47:13:47:22 | access to parameter nonTainted | -| SSA.cs:41:17:41:29 | [input] SSA phi read(ssaSink0) | SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | | SSA.cs:41:21:41:28 | [post] access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | | SSA.cs:41:21:41:28 | access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | -| SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | SSA.cs:89:13:89:33 | [input] SSA phi read(ssaSink0) | -| SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | SSA.cs:91:24:91:31 | access to local variable ssaSink0 | | SSA.cs:46:16:46:23 | access to local variable nonSink2 | SSA.cs:46:16:46:28 | SSA def(nonSink2) | | SSA.cs:46:16:46:28 | SSA def(nonSink2) | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:46:27:46:28 | "" | SSA.cs:46:16:46:23 | access to local variable nonSink2 | @@ -620,18 +613,11 @@ | SSA.cs:49:13:49:31 | SSA def(nonSink2) | SSA.cs:51:21:51:28 | access to local variable nonSink2 | | SSA.cs:49:13:49:31 | SSA def(nonSink2) | SSA.cs:53:21:53:28 | access to local variable nonSink2 | | SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:49:13:49:20 | access to local variable nonSink2 | -| SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:51:17:51:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:53:17:53:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:50:17:50:26 | [post] access to parameter nonTainted | SSA.cs:51:17:51:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:50:17:50:26 | [post] access to parameter nonTainted | SSA.cs:53:17:53:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:50:17:50:26 | access to parameter nonTainted | SSA.cs:51:17:51:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:50:17:50:26 | access to parameter nonTainted | SSA.cs:53:17:53:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:51:17:51:29 | [input] SSA phi read(nonSink0) | SSA.cs:63:23:63:30 | access to local variable nonSink0 | -| SSA.cs:51:17:51:29 | [input] SSA phi read(nonTainted) | SSA.cs:89:13:89:22 | access to parameter nonTainted | +| SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:63:23:63:30 | access to local variable nonSink0 | +| SSA.cs:50:17:50:26 | [post] access to parameter nonTainted | SSA.cs:89:13:89:22 | access to parameter nonTainted | +| SSA.cs:50:17:50:26 | access to parameter nonTainted | SSA.cs:89:13:89:22 | access to parameter nonTainted | | SSA.cs:51:21:51:28 | [post] access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:51:21:51:28 | access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | -| SSA.cs:53:17:53:29 | [input] SSA phi read(nonSink0) | SSA.cs:63:23:63:30 | access to local variable nonSink0 | -| SSA.cs:53:17:53:29 | [input] SSA phi read(nonTainted) | SSA.cs:89:13:89:22 | access to parameter nonTainted | | SSA.cs:53:21:53:28 | [post] access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:53:21:53:28 | access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:58:16:58:23 | access to local variable ssaSink3 | SSA.cs:58:16:58:33 | SSA def(ssaSink3) | @@ -733,18 +719,11 @@ | SSA.cs:91:13:91:31 | SSA def(ssaSink4) | SSA.cs:93:21:93:28 | access to local variable ssaSink4 | | SSA.cs:91:13:91:31 | SSA def(ssaSink4) | SSA.cs:95:21:95:28 | access to local variable ssaSink4 | | SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:91:13:91:20 | access to local variable ssaSink4 | -| SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:93:17:93:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:95:17:95:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:92:17:92:26 | [post] access to parameter nonTainted | SSA.cs:93:17:93:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:92:17:92:26 | [post] access to parameter nonTainted | SSA.cs:95:17:95:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:92:17:92:26 | access to parameter nonTainted | SSA.cs:93:17:93:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:92:17:92:26 | access to parameter nonTainted | SSA.cs:95:17:95:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:93:17:93:29 | [input] SSA phi read(nonTainted) | SSA.cs:102:13:102:22 | access to parameter nonTainted | -| SSA.cs:93:17:93:29 | [input] SSA phi read(ssaSink0) | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | +| SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | +| SSA.cs:92:17:92:26 | [post] access to parameter nonTainted | SSA.cs:102:13:102:22 | access to parameter nonTainted | +| SSA.cs:92:17:92:26 | access to parameter nonTainted | SSA.cs:102:13:102:22 | access to parameter nonTainted | | SSA.cs:93:21:93:28 | [post] access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | | SSA.cs:93:21:93:28 | access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | -| SSA.cs:95:17:95:29 | [input] SSA phi read(nonTainted) | SSA.cs:102:13:102:22 | access to parameter nonTainted | -| SSA.cs:95:17:95:29 | [input] SSA phi read(ssaSink0) | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | | SSA.cs:95:21:95:28 | [post] access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | | SSA.cs:95:21:95:28 | access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | | SSA.cs:97:23:97:30 | SSA def(ssaSink4) | SSA.cs:98:15:98:22 | access to local variable ssaSink4 | @@ -764,18 +743,11 @@ | SSA.cs:104:13:104:31 | SSA def(nonSink3) | SSA.cs:106:21:106:28 | access to local variable nonSink3 | | SSA.cs:104:13:104:31 | SSA def(nonSink3) | SSA.cs:108:21:108:28 | access to local variable nonSink3 | | SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:104:13:104:20 | access to local variable nonSink3 | -| SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:106:17:106:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:108:17:108:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:105:17:105:26 | [post] access to parameter nonTainted | SSA.cs:106:17:106:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:105:17:105:26 | [post] access to parameter nonTainted | SSA.cs:108:17:108:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:105:17:105:26 | access to parameter nonTainted | SSA.cs:106:17:106:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:105:17:105:26 | access to parameter nonTainted | SSA.cs:108:17:108:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:106:17:106:29 | [input] SSA phi read(nonSink0) | SSA.cs:130:39:130:46 | access to local variable nonSink0 | -| SSA.cs:106:17:106:29 | [input] SSA phi read(nonTainted) | SSA.cs:115:13:115:22 | access to parameter nonTainted | +| SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:130:39:130:46 | access to local variable nonSink0 | +| SSA.cs:105:17:105:26 | [post] access to parameter nonTainted | SSA.cs:115:13:115:22 | access to parameter nonTainted | +| SSA.cs:105:17:105:26 | access to parameter nonTainted | SSA.cs:115:13:115:22 | access to parameter nonTainted | | SSA.cs:106:21:106:28 | [post] access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:106:21:106:28 | access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | -| SSA.cs:108:17:108:29 | [input] SSA phi read(nonSink0) | SSA.cs:130:39:130:46 | access to local variable nonSink0 | -| SSA.cs:108:17:108:29 | [input] SSA phi read(nonTainted) | SSA.cs:115:13:115:22 | access to parameter nonTainted | | SSA.cs:108:21:108:28 | [post] access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:108:21:108:28 | access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:110:23:110:30 | SSA def(nonSink3) | SSA.cs:111:15:111:22 | access to local variable nonSink3 | @@ -811,18 +783,14 @@ | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | SSA.cs:121:21:121:40 | access to field SsaFieldSink1 | | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | SSA.cs:117:13:117:32 | access to field SsaFieldSink1 | -| SSA.cs:118:17:118:26 | [post] access to parameter nonTainted | SSA.cs:119:17:119:41 | [input] SSA phi read(nonTainted) | -| SSA.cs:118:17:118:26 | [post] access to parameter nonTainted | SSA.cs:121:17:121:41 | [input] SSA phi read(nonTainted) | -| SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:119:17:119:41 | [input] SSA phi read(nonTainted) | -| SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:121:17:121:41 | [input] SSA phi read(nonTainted) | -| SSA.cs:119:17:119:41 | [input] SSA phi read(nonTainted) | SSA.cs:128:13:128:22 | access to parameter nonTainted | +| SSA.cs:118:17:118:26 | [post] access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | +| SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | | SSA.cs:119:21:119:24 | [post] this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:119:21:119:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:119:21:119:26 | [post] access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:119:21:119:26 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:119:21:119:40 | [post] access to field SsaFieldSink1 | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | -| SSA.cs:121:17:121:41 | [input] SSA phi read(nonTainted) | SSA.cs:128:13:128:22 | access to parameter nonTainted | | SSA.cs:121:21:121:24 | [post] this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:121:21:121:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:121:21:121:26 | [post] access to field S | SSA.cs:123:23:123:28 | access to field S | @@ -890,18 +858,18 @@ | SSA.cs:146:13:146:13 | access to parameter t | SSA.cs:146:13:146:13 | (...) ... | | SSA.cs:146:13:146:13 | access to parameter t | SSA.cs:149:17:149:17 | access to parameter t | | SSA.cs:147:13:147:13 | access to parameter t | SSA.cs:147:13:147:26 | SSA def(t) | -| SSA.cs:147:13:147:26 | SSA def(t) | SSA.cs:144:17:144:26 | SSA phi(t) | +| SSA.cs:147:13:147:26 | SSA def(t) | SSA.cs:146:9:149:18 | SSA phi(t) | | SSA.cs:147:17:147:26 | default(...) | SSA.cs:147:13:147:13 | access to parameter t | | SSA.cs:149:13:149:13 | access to parameter t | SSA.cs:149:13:149:17 | SSA def(t) | -| SSA.cs:149:13:149:17 | SSA def(t) | SSA.cs:144:17:144:26 | SSA phi(t) | +| SSA.cs:149:13:149:17 | SSA def(t) | SSA.cs:146:9:149:18 | SSA phi(t) | | SSA.cs:149:17:149:17 | access to parameter t | SSA.cs:149:13:149:13 | access to parameter t | | SSA.cs:152:36:152:36 | SSA param(t) | SSA.cs:154:13:154:13 | access to parameter t | | SSA.cs:152:36:152:36 | t | SSA.cs:152:36:152:36 | SSA param(t) | | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:154:13:154:13 | (...) ... | | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:154:13:154:21 | [input] SSA phi(t) | | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:155:25:155:25 | access to parameter t | -| SSA.cs:154:13:154:21 | [input] SSA phi(t) | SSA.cs:152:17:152:28 | SSA phi(t) | -| SSA.cs:155:25:155:25 | SSA def(t) | SSA.cs:152:17:152:28 | SSA phi(t) | +| SSA.cs:154:13:154:21 | [input] SSA phi(t) | SSA.cs:154:9:155:27 | SSA phi(t) | +| SSA.cs:155:25:155:25 | SSA def(t) | SSA.cs:154:9:155:27 | SSA phi(t) | | SSA.cs:155:25:155:25 | access to parameter t | SSA.cs:155:25:155:25 | SSA def(t) | | SSA.cs:166:10:166:13 | this | SSA.cs:166:19:166:22 | this access | | SSA.cs:166:28:166:31 | null | SSA.cs:166:19:166:24 | access to field S | @@ -914,18 +882,18 @@ | SSA.cs:170:27:170:28 | "" | SSA.cs:170:16:170:23 | access to local variable ssaSink5 | | SSA.cs:171:13:171:13 | access to parameter i | SSA.cs:171:13:171:15 | SSA def(i) | | SSA.cs:171:13:171:15 | SSA def(i) | SSA.cs:174:20:174:20 | access to parameter i | +| SSA.cs:172:9:179:9 | [input] SSA phi(ssaSink5) | SSA.cs:180:15:180:22 | access to local variable ssaSink5 | | SSA.cs:173:13:173:20 | access to local variable ssaSink5 | SSA.cs:173:13:173:30 | SSA def(ssaSink5) | -| SSA.cs:173:13:173:30 | SSA def(ssaSink5) | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | +| SSA.cs:173:13:173:30 | SSA def(ssaSink5) | SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | | SSA.cs:173:24:173:30 | access to parameter tainted | SSA.cs:173:13:173:20 | access to local variable ssaSink5 | -| SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | SSA.cs:174:20:174:26 | [input] SSA phi(ssaSink5) | -| SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | +| SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | SSA.cs:172:9:179:9 | [input] SSA phi(ssaSink5) | +| SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | | SSA.cs:174:20:174:20 | access to parameter i | SSA.cs:174:20:174:22 | SSA def(i) | | SSA.cs:174:20:174:22 | SSA def(i) | SSA.cs:174:20:174:20 | access to parameter i | -| SSA.cs:174:20:174:26 | [input] SSA phi(ssaSink5) | SSA.cs:180:15:180:22 | access to local variable ssaSink5 | | SSA.cs:176:21:176:28 | [post] access to local variable ssaSink5 | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | | 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) | +| SSA.cs:177:21:177:28 | [post] access to local variable ssaSink5 | SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | +| SSA.cs:177:21:177:28 | access to local variable ssaSink5 | SSA.cs:174:13:178:13 | 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) | @@ -937,10 +905,10 @@ | Splitting.cs:5:17:5:23 | access to parameter tainted | Splitting.cs:5:13:5:13 | access to local variable x | | Splitting.cs:6:13:6:13 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | | Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | access to parameter b | +| Splitting.cs:7:9:11:9 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | | Splitting.cs:8:19:8:19 | [post] access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | | Splitting.cs:8:19:8:19 | access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | -| Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | -| Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | +| Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:7:9:11:9 | [input] SSA phi read(x) | | Splitting.cs:12:15:12:15 | [post] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | | Splitting.cs:12:15:12:15 | access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | | Splitting.cs:17:18:17:18 | SSA param(b) | Splitting.cs:20:13:20:13 | access to parameter b | @@ -1117,1108 +1085,1105 @@ | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | UseUseExplosion.cs:24:3182:24:3182 | access to local variable x | | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | UseUseExplosion.cs:24:3197:24:3197 | access to local variable x | | UseUseExplosion.cs:23:17:23:17 | 0 | UseUseExplosion.cs:23:13:23:13 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1712:25:1712 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1727:25:1727 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1742:25:1742 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1757:25:1757 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1772:25:1772 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1787:25:1787 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1802:25:1802 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1817:25:1817 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1832:25:1832 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1847:25:1847 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1862:25:1862 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1877:25:1877 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1892:25:1892 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1907:25:1907 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1922:25:1922 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1937:25:1937 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1952:25:1952 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1967:25:1967 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1982:25:1982 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1997:25:1997 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2012:25:2012 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2027:25:2027 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2042:25:2042 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2057:25:2057 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2072:25:2072 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2087:25:2087 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2102:25:2102 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2117:25:2117 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2132:25:2132 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2147:25:2147 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2162:25:2162 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2177:25:2177 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2192:25:2192 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2207:25:2207 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2222:25:2222 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2237:25:2237 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2252:25:2252 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2267:25:2267 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2282:25:2282 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2297:25:2297 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2312:25:2312 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2327:25:2327 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2342:25:2342 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2357:25:2357 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2372:25:2372 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2387:25:2387 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2402:25:2402 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2417:25:2417 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2432:25:2432 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2447:25:2447 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2462:25:2462 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2477:25:2477 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2492:25:2492 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2507:25:2507 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2522:25:2522 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2537:25:2537 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2552:25:2552 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2567:25:2567 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2582:25:2582 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2597:25:2597 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2612:25:2612 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2627:25:2627 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2642:25:2642 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2657:25:2657 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2672:25:2672 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2687:25:2687 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2702:25:2702 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2717:25:2717 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2732:25:2732 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2747:25:2747 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2762:25:2762 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2777:25:2777 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2792:25:2792 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2807:25:2807 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2822:25:2822 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2837:25:2837 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2852:25:2852 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2867:25:2867 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2882:25:2882 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2897:25:2897 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2912:25:2912 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2927:25:2927 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2942:25:2942 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2957:25:2957 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2972:25:2972 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2987:25:2987 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3002:25:3002 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3017:25:3017 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3032:25:3032 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3047:25:3047 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3062:25:3062 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3077:25:3077 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3092:25:3092 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3107:25:3107 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3122:25:3122 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3137:25:3137 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3152:25:3152 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3167:25:3167 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3182:25:3182 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3197:25:3197 | access to local variable x | | UseUseExplosion.cs:24:13:24:16 | [post] this access | UseUseExplosion.cs:24:31:24:34 | this access | | UseUseExplosion.cs:24:13:24:16 | [post] this access | UseUseExplosion.cs:24:3193:24:3198 | this access | | UseUseExplosion.cs:24:13:24:16 | access to property Prop | UseUseExplosion.cs:24:31:24:34 | access to property Prop | -| UseUseExplosion.cs:24:13:24:16 | access to property Prop | UseUseExplosion.cs:24:3193:24:3198 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:13:24:16 | access to property Prop | UseUseExplosion.cs:24:3193:24:3199 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:13:24:16 | this access | UseUseExplosion.cs:24:31:24:34 | this access | | UseUseExplosion.cs:24:13:24:16 | this access | UseUseExplosion.cs:24:3193:24:3198 | this access | | UseUseExplosion.cs:24:31:24:34 | [post] this access | UseUseExplosion.cs:24:48:24:51 | this access | | UseUseExplosion.cs:24:31:24:34 | [post] this access | UseUseExplosion.cs:24:3178:24:3183 | this access | | UseUseExplosion.cs:24:31:24:34 | access to property Prop | UseUseExplosion.cs:24:48:24:51 | access to property Prop | -| UseUseExplosion.cs:24:31:24:34 | access to property Prop | UseUseExplosion.cs:24:3178:24:3183 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:31:24:34 | access to property Prop | UseUseExplosion.cs:24:3178:24:3184 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:31:24:34 | this access | UseUseExplosion.cs:24:48:24:51 | this access | | UseUseExplosion.cs:24:31:24:34 | this access | UseUseExplosion.cs:24:3178:24:3183 | this access | | UseUseExplosion.cs:24:48:24:51 | [post] this access | UseUseExplosion.cs:24:65:24:68 | this access | | UseUseExplosion.cs:24:48:24:51 | [post] this access | UseUseExplosion.cs:24:3163:24:3168 | this access | | UseUseExplosion.cs:24:48:24:51 | access to property Prop | UseUseExplosion.cs:24:65:24:68 | access to property Prop | -| UseUseExplosion.cs:24:48:24:51 | access to property Prop | UseUseExplosion.cs:24:3163:24:3168 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:48:24:51 | access to property Prop | UseUseExplosion.cs:24:3163:24:3169 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:48:24:51 | this access | UseUseExplosion.cs:24:65:24:68 | this access | | UseUseExplosion.cs:24:48:24:51 | this access | UseUseExplosion.cs:24:3163:24:3168 | this access | | UseUseExplosion.cs:24:65:24:68 | [post] this access | UseUseExplosion.cs:24:82:24:85 | this access | | UseUseExplosion.cs:24:65:24:68 | [post] this access | UseUseExplosion.cs:24:3148:24:3153 | this access | | UseUseExplosion.cs:24:65:24:68 | access to property Prop | UseUseExplosion.cs:24:82:24:85 | access to property Prop | -| UseUseExplosion.cs:24:65:24:68 | access to property Prop | UseUseExplosion.cs:24:3148:24:3153 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:65:24:68 | access to property Prop | UseUseExplosion.cs:24:3148:24:3154 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:65:24:68 | this access | UseUseExplosion.cs:24:82:24:85 | this access | | UseUseExplosion.cs:24:65:24:68 | this access | UseUseExplosion.cs:24:3148:24:3153 | this access | | UseUseExplosion.cs:24:82:24:85 | [post] this access | UseUseExplosion.cs:24:99:24:102 | this access | | UseUseExplosion.cs:24:82:24:85 | [post] this access | UseUseExplosion.cs:24:3133:24:3138 | this access | | UseUseExplosion.cs:24:82:24:85 | access to property Prop | UseUseExplosion.cs:24:99:24:102 | access to property Prop | -| UseUseExplosion.cs:24:82:24:85 | access to property Prop | UseUseExplosion.cs:24:3133:24:3138 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:82:24:85 | access to property Prop | UseUseExplosion.cs:24:3133:24:3139 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:82:24:85 | this access | UseUseExplosion.cs:24:99:24:102 | this access | | UseUseExplosion.cs:24:82:24:85 | this access | UseUseExplosion.cs:24:3133:24:3138 | this access | | UseUseExplosion.cs:24:99:24:102 | [post] this access | UseUseExplosion.cs:24:116:24:119 | this access | | UseUseExplosion.cs:24:99:24:102 | [post] this access | UseUseExplosion.cs:24:3118:24:3123 | this access | | UseUseExplosion.cs:24:99:24:102 | access to property Prop | UseUseExplosion.cs:24:116:24:119 | access to property Prop | -| UseUseExplosion.cs:24:99:24:102 | access to property Prop | UseUseExplosion.cs:24:3118:24:3123 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:99:24:102 | access to property Prop | UseUseExplosion.cs:24:3118:24:3124 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:99:24:102 | this access | UseUseExplosion.cs:24:116:24:119 | this access | | UseUseExplosion.cs:24:99:24:102 | this access | UseUseExplosion.cs:24:3118:24:3123 | this access | | UseUseExplosion.cs:24:116:24:119 | [post] this access | UseUseExplosion.cs:24:133:24:136 | this access | | UseUseExplosion.cs:24:116:24:119 | [post] this access | UseUseExplosion.cs:24:3103:24:3108 | this access | | UseUseExplosion.cs:24:116:24:119 | access to property Prop | UseUseExplosion.cs:24:133:24:136 | access to property Prop | -| UseUseExplosion.cs:24:116:24:119 | access to property Prop | UseUseExplosion.cs:24:3103:24:3108 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:116:24:119 | access to property Prop | UseUseExplosion.cs:24:3103:24:3109 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:116:24:119 | this access | UseUseExplosion.cs:24:133:24:136 | this access | | UseUseExplosion.cs:24:116:24:119 | this access | UseUseExplosion.cs:24:3103:24:3108 | this access | | UseUseExplosion.cs:24:133:24:136 | [post] this access | UseUseExplosion.cs:24:150:24:153 | this access | | UseUseExplosion.cs:24:133:24:136 | [post] this access | UseUseExplosion.cs:24:3088:24:3093 | this access | | UseUseExplosion.cs:24:133:24:136 | access to property Prop | UseUseExplosion.cs:24:150:24:153 | access to property Prop | -| UseUseExplosion.cs:24:133:24:136 | access to property Prop | UseUseExplosion.cs:24:3088:24:3093 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:133:24:136 | access to property Prop | UseUseExplosion.cs:24:3088:24:3094 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:133:24:136 | this access | UseUseExplosion.cs:24:150:24:153 | this access | | UseUseExplosion.cs:24:133:24:136 | this access | UseUseExplosion.cs:24:3088:24:3093 | this access | | UseUseExplosion.cs:24:150:24:153 | [post] this access | UseUseExplosion.cs:24:167:24:170 | this access | | UseUseExplosion.cs:24:150:24:153 | [post] this access | UseUseExplosion.cs:24:3073:24:3078 | this access | | UseUseExplosion.cs:24:150:24:153 | access to property Prop | UseUseExplosion.cs:24:167:24:170 | access to property Prop | -| UseUseExplosion.cs:24:150:24:153 | access to property Prop | UseUseExplosion.cs:24:3073:24:3078 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:150:24:153 | access to property Prop | UseUseExplosion.cs:24:3073:24:3079 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:150:24:153 | this access | UseUseExplosion.cs:24:167:24:170 | this access | | UseUseExplosion.cs:24:150:24:153 | this access | UseUseExplosion.cs:24:3073:24:3078 | this access | | UseUseExplosion.cs:24:167:24:170 | [post] this access | UseUseExplosion.cs:24:184:24:187 | this access | | UseUseExplosion.cs:24:167:24:170 | [post] this access | UseUseExplosion.cs:24:3058:24:3063 | this access | | UseUseExplosion.cs:24:167:24:170 | access to property Prop | UseUseExplosion.cs:24:184:24:187 | access to property Prop | -| UseUseExplosion.cs:24:167:24:170 | access to property Prop | UseUseExplosion.cs:24:3058:24:3063 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:167:24:170 | access to property Prop | UseUseExplosion.cs:24:3058:24:3064 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:167:24:170 | this access | UseUseExplosion.cs:24:184:24:187 | this access | | UseUseExplosion.cs:24:167:24:170 | this access | UseUseExplosion.cs:24:3058:24:3063 | this access | | UseUseExplosion.cs:24:184:24:187 | [post] this access | UseUseExplosion.cs:24:201:24:204 | this access | | UseUseExplosion.cs:24:184:24:187 | [post] this access | UseUseExplosion.cs:24:3043:24:3048 | this access | | UseUseExplosion.cs:24:184:24:187 | access to property Prop | UseUseExplosion.cs:24:201:24:204 | access to property Prop | -| UseUseExplosion.cs:24:184:24:187 | access to property Prop | UseUseExplosion.cs:24:3043:24:3048 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:184:24:187 | access to property Prop | UseUseExplosion.cs:24:3043:24:3049 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:184:24:187 | this access | UseUseExplosion.cs:24:201:24:204 | this access | | UseUseExplosion.cs:24:184:24:187 | this access | UseUseExplosion.cs:24:3043:24:3048 | this access | | UseUseExplosion.cs:24:201:24:204 | [post] this access | UseUseExplosion.cs:24:218:24:221 | this access | | UseUseExplosion.cs:24:201:24:204 | [post] this access | UseUseExplosion.cs:24:3028:24:3033 | this access | | UseUseExplosion.cs:24:201:24:204 | access to property Prop | UseUseExplosion.cs:24:218:24:221 | access to property Prop | -| UseUseExplosion.cs:24:201:24:204 | access to property Prop | UseUseExplosion.cs:24:3028:24:3033 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:201:24:204 | access to property Prop | UseUseExplosion.cs:24:3028:24:3034 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:201:24:204 | this access | UseUseExplosion.cs:24:218:24:221 | this access | | UseUseExplosion.cs:24:201:24:204 | this access | UseUseExplosion.cs:24:3028:24:3033 | this access | | UseUseExplosion.cs:24:218:24:221 | [post] this access | UseUseExplosion.cs:24:235:24:238 | this access | | UseUseExplosion.cs:24:218:24:221 | [post] this access | UseUseExplosion.cs:24:3013:24:3018 | this access | | UseUseExplosion.cs:24:218:24:221 | access to property Prop | UseUseExplosion.cs:24:235:24:238 | access to property Prop | -| UseUseExplosion.cs:24:218:24:221 | access to property Prop | UseUseExplosion.cs:24:3013:24:3018 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:218:24:221 | access to property Prop | UseUseExplosion.cs:24:3013:24:3019 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:218:24:221 | this access | UseUseExplosion.cs:24:235:24:238 | this access | | UseUseExplosion.cs:24:218:24:221 | this access | UseUseExplosion.cs:24:3013:24:3018 | this access | | UseUseExplosion.cs:24:235:24:238 | [post] this access | UseUseExplosion.cs:24:252:24:255 | this access | | UseUseExplosion.cs:24:235:24:238 | [post] this access | UseUseExplosion.cs:24:2998:24:3003 | this access | | UseUseExplosion.cs:24:235:24:238 | access to property Prop | UseUseExplosion.cs:24:252:24:255 | access to property Prop | -| UseUseExplosion.cs:24:235:24:238 | access to property Prop | UseUseExplosion.cs:24:2998:24:3003 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:235:24:238 | access to property Prop | UseUseExplosion.cs:24:2998:24:3004 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:235:24:238 | this access | UseUseExplosion.cs:24:252:24:255 | this access | | UseUseExplosion.cs:24:235:24:238 | this access | UseUseExplosion.cs:24:2998:24:3003 | this access | | UseUseExplosion.cs:24:252:24:255 | [post] this access | UseUseExplosion.cs:24:269:24:272 | this access | | UseUseExplosion.cs:24:252:24:255 | [post] this access | UseUseExplosion.cs:24:2983:24:2988 | this access | | UseUseExplosion.cs:24:252:24:255 | access to property Prop | UseUseExplosion.cs:24:269:24:272 | access to property Prop | -| UseUseExplosion.cs:24:252:24:255 | access to property Prop | UseUseExplosion.cs:24:2983:24:2988 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:252:24:255 | access to property Prop | UseUseExplosion.cs:24:2983:24:2989 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:252:24:255 | this access | UseUseExplosion.cs:24:269:24:272 | this access | | UseUseExplosion.cs:24:252:24:255 | this access | UseUseExplosion.cs:24:2983:24:2988 | this access | | UseUseExplosion.cs:24:269:24:272 | [post] this access | UseUseExplosion.cs:24:286:24:289 | this access | | UseUseExplosion.cs:24:269:24:272 | [post] this access | UseUseExplosion.cs:24:2968:24:2973 | this access | | UseUseExplosion.cs:24:269:24:272 | access to property Prop | UseUseExplosion.cs:24:286:24:289 | access to property Prop | -| UseUseExplosion.cs:24:269:24:272 | access to property Prop | UseUseExplosion.cs:24:2968:24:2973 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:269:24:272 | access to property Prop | UseUseExplosion.cs:24:2968:24:2974 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:269:24:272 | this access | UseUseExplosion.cs:24:286:24:289 | this access | | UseUseExplosion.cs:24:269:24:272 | this access | UseUseExplosion.cs:24:2968:24:2973 | this access | | UseUseExplosion.cs:24:286:24:289 | [post] this access | UseUseExplosion.cs:24:303:24:306 | this access | | UseUseExplosion.cs:24:286:24:289 | [post] this access | UseUseExplosion.cs:24:2953:24:2958 | this access | | UseUseExplosion.cs:24:286:24:289 | access to property Prop | UseUseExplosion.cs:24:303:24:306 | access to property Prop | -| UseUseExplosion.cs:24:286:24:289 | access to property Prop | UseUseExplosion.cs:24:2953:24:2958 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:286:24:289 | access to property Prop | UseUseExplosion.cs:24:2953:24:2959 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:286:24:289 | this access | UseUseExplosion.cs:24:303:24:306 | this access | | UseUseExplosion.cs:24:286:24:289 | this access | UseUseExplosion.cs:24:2953:24:2958 | this access | | UseUseExplosion.cs:24:303:24:306 | [post] this access | UseUseExplosion.cs:24:320:24:323 | this access | | UseUseExplosion.cs:24:303:24:306 | [post] this access | UseUseExplosion.cs:24:2938:24:2943 | this access | | UseUseExplosion.cs:24:303:24:306 | access to property Prop | UseUseExplosion.cs:24:320:24:323 | access to property Prop | -| UseUseExplosion.cs:24:303:24:306 | access to property Prop | UseUseExplosion.cs:24:2938:24:2943 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:303:24:306 | access to property Prop | UseUseExplosion.cs:24:2938:24:2944 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:303:24:306 | this access | UseUseExplosion.cs:24:320:24:323 | this access | | UseUseExplosion.cs:24:303:24:306 | this access | UseUseExplosion.cs:24:2938:24:2943 | this access | | UseUseExplosion.cs:24:320:24:323 | [post] this access | UseUseExplosion.cs:24:337:24:340 | this access | | UseUseExplosion.cs:24:320:24:323 | [post] this access | UseUseExplosion.cs:24:2923:24:2928 | this access | | UseUseExplosion.cs:24:320:24:323 | access to property Prop | UseUseExplosion.cs:24:337:24:340 | access to property Prop | -| UseUseExplosion.cs:24:320:24:323 | access to property Prop | UseUseExplosion.cs:24:2923:24:2928 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:320:24:323 | access to property Prop | UseUseExplosion.cs:24:2923:24:2929 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:320:24:323 | this access | UseUseExplosion.cs:24:337:24:340 | this access | | UseUseExplosion.cs:24:320:24:323 | this access | UseUseExplosion.cs:24:2923:24:2928 | this access | | UseUseExplosion.cs:24:337:24:340 | [post] this access | UseUseExplosion.cs:24:354:24:357 | this access | | UseUseExplosion.cs:24:337:24:340 | [post] this access | UseUseExplosion.cs:24:2908:24:2913 | this access | | UseUseExplosion.cs:24:337:24:340 | access to property Prop | UseUseExplosion.cs:24:354:24:357 | access to property Prop | -| UseUseExplosion.cs:24:337:24:340 | access to property Prop | UseUseExplosion.cs:24:2908:24:2913 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:337:24:340 | access to property Prop | UseUseExplosion.cs:24:2908:24:2914 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:337:24:340 | this access | UseUseExplosion.cs:24:354:24:357 | this access | | UseUseExplosion.cs:24:337:24:340 | this access | UseUseExplosion.cs:24:2908:24:2913 | this access | | UseUseExplosion.cs:24:354:24:357 | [post] this access | UseUseExplosion.cs:24:371:24:374 | this access | | UseUseExplosion.cs:24:354:24:357 | [post] this access | UseUseExplosion.cs:24:2893:24:2898 | this access | | UseUseExplosion.cs:24:354:24:357 | access to property Prop | UseUseExplosion.cs:24:371:24:374 | access to property Prop | -| UseUseExplosion.cs:24:354:24:357 | access to property Prop | UseUseExplosion.cs:24:2893:24:2898 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:354:24:357 | access to property Prop | UseUseExplosion.cs:24:2893:24:2899 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:354:24:357 | this access | UseUseExplosion.cs:24:371:24:374 | this access | | UseUseExplosion.cs:24:354:24:357 | this access | UseUseExplosion.cs:24:2893:24:2898 | this access | | UseUseExplosion.cs:24:371:24:374 | [post] this access | UseUseExplosion.cs:24:388:24:391 | this access | | UseUseExplosion.cs:24:371:24:374 | [post] this access | UseUseExplosion.cs:24:2878:24:2883 | this access | | UseUseExplosion.cs:24:371:24:374 | access to property Prop | UseUseExplosion.cs:24:388:24:391 | access to property Prop | -| UseUseExplosion.cs:24:371:24:374 | access to property Prop | UseUseExplosion.cs:24:2878:24:2883 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:371:24:374 | access to property Prop | UseUseExplosion.cs:24:2878:24:2884 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:371:24:374 | this access | UseUseExplosion.cs:24:388:24:391 | this access | | UseUseExplosion.cs:24:371:24:374 | this access | UseUseExplosion.cs:24:2878:24:2883 | this access | | UseUseExplosion.cs:24:388:24:391 | [post] this access | UseUseExplosion.cs:24:405:24:408 | this access | | UseUseExplosion.cs:24:388:24:391 | [post] this access | UseUseExplosion.cs:24:2863:24:2868 | this access | | UseUseExplosion.cs:24:388:24:391 | access to property Prop | UseUseExplosion.cs:24:405:24:408 | access to property Prop | -| UseUseExplosion.cs:24:388:24:391 | access to property Prop | UseUseExplosion.cs:24:2863:24:2868 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:388:24:391 | access to property Prop | UseUseExplosion.cs:24:2863:24:2869 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:388:24:391 | this access | UseUseExplosion.cs:24:405:24:408 | this access | | UseUseExplosion.cs:24:388:24:391 | this access | UseUseExplosion.cs:24:2863:24:2868 | this access | | UseUseExplosion.cs:24:405:24:408 | [post] this access | UseUseExplosion.cs:24:422:24:425 | this access | | UseUseExplosion.cs:24:405:24:408 | [post] this access | UseUseExplosion.cs:24:2848:24:2853 | this access | | UseUseExplosion.cs:24:405:24:408 | access to property Prop | UseUseExplosion.cs:24:422:24:425 | access to property Prop | -| UseUseExplosion.cs:24:405:24:408 | access to property Prop | UseUseExplosion.cs:24:2848:24:2853 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:405:24:408 | access to property Prop | UseUseExplosion.cs:24:2848:24:2854 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:405:24:408 | this access | UseUseExplosion.cs:24:422:24:425 | this access | | UseUseExplosion.cs:24:405:24:408 | this access | UseUseExplosion.cs:24:2848:24:2853 | this access | | UseUseExplosion.cs:24:422:24:425 | [post] this access | UseUseExplosion.cs:24:439:24:442 | this access | | UseUseExplosion.cs:24:422:24:425 | [post] this access | UseUseExplosion.cs:24:2833:24:2838 | this access | | UseUseExplosion.cs:24:422:24:425 | access to property Prop | UseUseExplosion.cs:24:439:24:442 | access to property Prop | -| UseUseExplosion.cs:24:422:24:425 | access to property Prop | UseUseExplosion.cs:24:2833:24:2838 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:422:24:425 | access to property Prop | UseUseExplosion.cs:24:2833:24:2839 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:422:24:425 | this access | UseUseExplosion.cs:24:439:24:442 | this access | | UseUseExplosion.cs:24:422:24:425 | this access | UseUseExplosion.cs:24:2833:24:2838 | this access | | UseUseExplosion.cs:24:439:24:442 | [post] this access | UseUseExplosion.cs:24:456:24:459 | this access | | UseUseExplosion.cs:24:439:24:442 | [post] this access | UseUseExplosion.cs:24:2818:24:2823 | this access | | UseUseExplosion.cs:24:439:24:442 | access to property Prop | UseUseExplosion.cs:24:456:24:459 | access to property Prop | -| UseUseExplosion.cs:24:439:24:442 | access to property Prop | UseUseExplosion.cs:24:2818:24:2823 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:439:24:442 | access to property Prop | UseUseExplosion.cs:24:2818:24:2824 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:439:24:442 | this access | UseUseExplosion.cs:24:456:24:459 | this access | | UseUseExplosion.cs:24:439:24:442 | this access | UseUseExplosion.cs:24:2818:24:2823 | this access | | UseUseExplosion.cs:24:456:24:459 | [post] this access | UseUseExplosion.cs:24:473:24:476 | this access | | UseUseExplosion.cs:24:456:24:459 | [post] this access | UseUseExplosion.cs:24:2803:24:2808 | this access | | UseUseExplosion.cs:24:456:24:459 | access to property Prop | UseUseExplosion.cs:24:473:24:476 | access to property Prop | -| UseUseExplosion.cs:24:456:24:459 | access to property Prop | UseUseExplosion.cs:24:2803:24:2808 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:456:24:459 | access to property Prop | UseUseExplosion.cs:24:2803:24:2809 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:456:24:459 | this access | UseUseExplosion.cs:24:473:24:476 | this access | | UseUseExplosion.cs:24:456:24:459 | this access | UseUseExplosion.cs:24:2803:24:2808 | this access | | UseUseExplosion.cs:24:473:24:476 | [post] this access | UseUseExplosion.cs:24:490:24:493 | this access | | UseUseExplosion.cs:24:473:24:476 | [post] this access | UseUseExplosion.cs:24:2788:24:2793 | this access | | UseUseExplosion.cs:24:473:24:476 | access to property Prop | UseUseExplosion.cs:24:490:24:493 | access to property Prop | -| UseUseExplosion.cs:24:473:24:476 | access to property Prop | UseUseExplosion.cs:24:2788:24:2793 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:473:24:476 | access to property Prop | UseUseExplosion.cs:24:2788:24:2794 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:473:24:476 | this access | UseUseExplosion.cs:24:490:24:493 | this access | | UseUseExplosion.cs:24:473:24:476 | this access | UseUseExplosion.cs:24:2788:24:2793 | this access | | UseUseExplosion.cs:24:490:24:493 | [post] this access | UseUseExplosion.cs:24:507:24:510 | this access | | UseUseExplosion.cs:24:490:24:493 | [post] this access | UseUseExplosion.cs:24:2773:24:2778 | this access | | UseUseExplosion.cs:24:490:24:493 | access to property Prop | UseUseExplosion.cs:24:507:24:510 | access to property Prop | -| UseUseExplosion.cs:24:490:24:493 | access to property Prop | UseUseExplosion.cs:24:2773:24:2778 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:490:24:493 | access to property Prop | UseUseExplosion.cs:24:2773:24:2779 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:490:24:493 | this access | UseUseExplosion.cs:24:507:24:510 | this access | | UseUseExplosion.cs:24:490:24:493 | this access | UseUseExplosion.cs:24:2773:24:2778 | this access | | UseUseExplosion.cs:24:507:24:510 | [post] this access | UseUseExplosion.cs:24:524:24:527 | this access | | UseUseExplosion.cs:24:507:24:510 | [post] this access | UseUseExplosion.cs:24:2758:24:2763 | this access | | UseUseExplosion.cs:24:507:24:510 | access to property Prop | UseUseExplosion.cs:24:524:24:527 | access to property Prop | -| UseUseExplosion.cs:24:507:24:510 | access to property Prop | UseUseExplosion.cs:24:2758:24:2763 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:507:24:510 | access to property Prop | UseUseExplosion.cs:24:2758:24:2764 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:507:24:510 | this access | UseUseExplosion.cs:24:524:24:527 | this access | | UseUseExplosion.cs:24:507:24:510 | this access | UseUseExplosion.cs:24:2758:24:2763 | this access | | UseUseExplosion.cs:24:524:24:527 | [post] this access | UseUseExplosion.cs:24:541:24:544 | this access | | UseUseExplosion.cs:24:524:24:527 | [post] this access | UseUseExplosion.cs:24:2743:24:2748 | this access | | UseUseExplosion.cs:24:524:24:527 | access to property Prop | UseUseExplosion.cs:24:541:24:544 | access to property Prop | -| UseUseExplosion.cs:24:524:24:527 | access to property Prop | UseUseExplosion.cs:24:2743:24:2748 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:524:24:527 | access to property Prop | UseUseExplosion.cs:24:2743:24:2749 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:524:24:527 | this access | UseUseExplosion.cs:24:541:24:544 | this access | | UseUseExplosion.cs:24:524:24:527 | this access | UseUseExplosion.cs:24:2743:24:2748 | this access | | UseUseExplosion.cs:24:541:24:544 | [post] this access | UseUseExplosion.cs:24:558:24:561 | this access | | UseUseExplosion.cs:24:541:24:544 | [post] this access | UseUseExplosion.cs:24:2728:24:2733 | this access | | UseUseExplosion.cs:24:541:24:544 | access to property Prop | UseUseExplosion.cs:24:558:24:561 | access to property Prop | -| UseUseExplosion.cs:24:541:24:544 | access to property Prop | UseUseExplosion.cs:24:2728:24:2733 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:541:24:544 | access to property Prop | UseUseExplosion.cs:24:2728:24:2734 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:541:24:544 | this access | UseUseExplosion.cs:24:558:24:561 | this access | | UseUseExplosion.cs:24:541:24:544 | this access | UseUseExplosion.cs:24:2728:24:2733 | this access | | UseUseExplosion.cs:24:558:24:561 | [post] this access | UseUseExplosion.cs:24:575:24:578 | this access | | UseUseExplosion.cs:24:558:24:561 | [post] this access | UseUseExplosion.cs:24:2713:24:2718 | this access | | UseUseExplosion.cs:24:558:24:561 | access to property Prop | UseUseExplosion.cs:24:575:24:578 | access to property Prop | -| UseUseExplosion.cs:24:558:24:561 | access to property Prop | UseUseExplosion.cs:24:2713:24:2718 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:558:24:561 | access to property Prop | UseUseExplosion.cs:24:2713:24:2719 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:558:24:561 | this access | UseUseExplosion.cs:24:575:24:578 | this access | | UseUseExplosion.cs:24:558:24:561 | this access | UseUseExplosion.cs:24:2713:24:2718 | this access | | UseUseExplosion.cs:24:575:24:578 | [post] this access | UseUseExplosion.cs:24:592:24:595 | this access | | UseUseExplosion.cs:24:575:24:578 | [post] this access | UseUseExplosion.cs:24:2698:24:2703 | this access | | UseUseExplosion.cs:24:575:24:578 | access to property Prop | UseUseExplosion.cs:24:592:24:595 | access to property Prop | -| UseUseExplosion.cs:24:575:24:578 | access to property Prop | UseUseExplosion.cs:24:2698:24:2703 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:575:24:578 | access to property Prop | UseUseExplosion.cs:24:2698:24:2704 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:575:24:578 | this access | UseUseExplosion.cs:24:592:24:595 | this access | | UseUseExplosion.cs:24:575:24:578 | this access | UseUseExplosion.cs:24:2698:24:2703 | this access | | UseUseExplosion.cs:24:592:24:595 | [post] this access | UseUseExplosion.cs:24:609:24:612 | this access | | UseUseExplosion.cs:24:592:24:595 | [post] this access | UseUseExplosion.cs:24:2683:24:2688 | this access | | UseUseExplosion.cs:24:592:24:595 | access to property Prop | UseUseExplosion.cs:24:609:24:612 | access to property Prop | -| UseUseExplosion.cs:24:592:24:595 | access to property Prop | UseUseExplosion.cs:24:2683:24:2688 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:592:24:595 | access to property Prop | UseUseExplosion.cs:24:2683:24:2689 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:592:24:595 | this access | UseUseExplosion.cs:24:609:24:612 | this access | | UseUseExplosion.cs:24:592:24:595 | this access | UseUseExplosion.cs:24:2683:24:2688 | this access | | UseUseExplosion.cs:24:609:24:612 | [post] this access | UseUseExplosion.cs:24:626:24:629 | this access | | UseUseExplosion.cs:24:609:24:612 | [post] this access | UseUseExplosion.cs:24:2668:24:2673 | this access | | UseUseExplosion.cs:24:609:24:612 | access to property Prop | UseUseExplosion.cs:24:626:24:629 | access to property Prop | -| UseUseExplosion.cs:24:609:24:612 | access to property Prop | UseUseExplosion.cs:24:2668:24:2673 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:609:24:612 | access to property Prop | UseUseExplosion.cs:24:2668:24:2674 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:609:24:612 | this access | UseUseExplosion.cs:24:626:24:629 | this access | | UseUseExplosion.cs:24:609:24:612 | this access | UseUseExplosion.cs:24:2668:24:2673 | this access | | UseUseExplosion.cs:24:626:24:629 | [post] this access | UseUseExplosion.cs:24:643:24:646 | this access | | UseUseExplosion.cs:24:626:24:629 | [post] this access | UseUseExplosion.cs:24:2653:24:2658 | this access | | UseUseExplosion.cs:24:626:24:629 | access to property Prop | UseUseExplosion.cs:24:643:24:646 | access to property Prop | -| UseUseExplosion.cs:24:626:24:629 | access to property Prop | UseUseExplosion.cs:24:2653:24:2658 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:626:24:629 | access to property Prop | UseUseExplosion.cs:24:2653:24:2659 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:626:24:629 | this access | UseUseExplosion.cs:24:643:24:646 | this access | | UseUseExplosion.cs:24:626:24:629 | this access | UseUseExplosion.cs:24:2653:24:2658 | this access | | UseUseExplosion.cs:24:643:24:646 | [post] this access | UseUseExplosion.cs:24:660:24:663 | this access | | UseUseExplosion.cs:24:643:24:646 | [post] this access | UseUseExplosion.cs:24:2638:24:2643 | this access | | UseUseExplosion.cs:24:643:24:646 | access to property Prop | UseUseExplosion.cs:24:660:24:663 | access to property Prop | -| UseUseExplosion.cs:24:643:24:646 | access to property Prop | UseUseExplosion.cs:24:2638:24:2643 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:643:24:646 | access to property Prop | UseUseExplosion.cs:24:2638:24:2644 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:643:24:646 | this access | UseUseExplosion.cs:24:660:24:663 | this access | | UseUseExplosion.cs:24:643:24:646 | this access | UseUseExplosion.cs:24:2638:24:2643 | this access | | UseUseExplosion.cs:24:660:24:663 | [post] this access | UseUseExplosion.cs:24:677:24:680 | this access | | UseUseExplosion.cs:24:660:24:663 | [post] this access | UseUseExplosion.cs:24:2623:24:2628 | this access | | UseUseExplosion.cs:24:660:24:663 | access to property Prop | UseUseExplosion.cs:24:677:24:680 | access to property Prop | -| UseUseExplosion.cs:24:660:24:663 | access to property Prop | UseUseExplosion.cs:24:2623:24:2628 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:660:24:663 | access to property Prop | UseUseExplosion.cs:24:2623:24:2629 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:660:24:663 | this access | UseUseExplosion.cs:24:677:24:680 | this access | | UseUseExplosion.cs:24:660:24:663 | this access | UseUseExplosion.cs:24:2623:24:2628 | this access | | UseUseExplosion.cs:24:677:24:680 | [post] this access | UseUseExplosion.cs:24:694:24:697 | this access | | UseUseExplosion.cs:24:677:24:680 | [post] this access | UseUseExplosion.cs:24:2608:24:2613 | this access | | UseUseExplosion.cs:24:677:24:680 | access to property Prop | UseUseExplosion.cs:24:694:24:697 | access to property Prop | -| UseUseExplosion.cs:24:677:24:680 | access to property Prop | UseUseExplosion.cs:24:2608:24:2613 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:677:24:680 | access to property Prop | UseUseExplosion.cs:24:2608:24:2614 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:677:24:680 | this access | UseUseExplosion.cs:24:694:24:697 | this access | | UseUseExplosion.cs:24:677:24:680 | this access | UseUseExplosion.cs:24:2608:24:2613 | this access | | UseUseExplosion.cs:24:694:24:697 | [post] this access | UseUseExplosion.cs:24:711:24:714 | this access | | UseUseExplosion.cs:24:694:24:697 | [post] this access | UseUseExplosion.cs:24:2593:24:2598 | this access | | UseUseExplosion.cs:24:694:24:697 | access to property Prop | UseUseExplosion.cs:24:711:24:714 | access to property Prop | -| UseUseExplosion.cs:24:694:24:697 | access to property Prop | UseUseExplosion.cs:24:2593:24:2598 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:694:24:697 | access to property Prop | UseUseExplosion.cs:24:2593:24:2599 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:694:24:697 | this access | UseUseExplosion.cs:24:711:24:714 | this access | | UseUseExplosion.cs:24:694:24:697 | this access | UseUseExplosion.cs:24:2593:24:2598 | this access | | UseUseExplosion.cs:24:711:24:714 | [post] this access | UseUseExplosion.cs:24:728:24:731 | this access | | UseUseExplosion.cs:24:711:24:714 | [post] this access | UseUseExplosion.cs:24:2578:24:2583 | this access | | UseUseExplosion.cs:24:711:24:714 | access to property Prop | UseUseExplosion.cs:24:728:24:731 | access to property Prop | -| UseUseExplosion.cs:24:711:24:714 | access to property Prop | UseUseExplosion.cs:24:2578:24:2583 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:711:24:714 | access to property Prop | UseUseExplosion.cs:24:2578:24:2584 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:711:24:714 | this access | UseUseExplosion.cs:24:728:24:731 | this access | | UseUseExplosion.cs:24:711:24:714 | this access | UseUseExplosion.cs:24:2578:24:2583 | this access | | UseUseExplosion.cs:24:728:24:731 | [post] this access | UseUseExplosion.cs:24:745:24:748 | this access | | UseUseExplosion.cs:24:728:24:731 | [post] this access | UseUseExplosion.cs:24:2563:24:2568 | this access | | UseUseExplosion.cs:24:728:24:731 | access to property Prop | UseUseExplosion.cs:24:745:24:748 | access to property Prop | -| UseUseExplosion.cs:24:728:24:731 | access to property Prop | UseUseExplosion.cs:24:2563:24:2568 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:728:24:731 | access to property Prop | UseUseExplosion.cs:24:2563:24:2569 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:728:24:731 | this access | UseUseExplosion.cs:24:745:24:748 | this access | | UseUseExplosion.cs:24:728:24:731 | this access | UseUseExplosion.cs:24:2563:24:2568 | this access | | UseUseExplosion.cs:24:745:24:748 | [post] this access | UseUseExplosion.cs:24:762:24:765 | this access | | UseUseExplosion.cs:24:745:24:748 | [post] this access | UseUseExplosion.cs:24:2548:24:2553 | this access | | UseUseExplosion.cs:24:745:24:748 | access to property Prop | UseUseExplosion.cs:24:762:24:765 | access to property Prop | -| UseUseExplosion.cs:24:745:24:748 | access to property Prop | UseUseExplosion.cs:24:2548:24:2553 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:745:24:748 | access to property Prop | UseUseExplosion.cs:24:2548:24:2554 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:745:24:748 | this access | UseUseExplosion.cs:24:762:24:765 | this access | | UseUseExplosion.cs:24:745:24:748 | this access | UseUseExplosion.cs:24:2548:24:2553 | this access | | UseUseExplosion.cs:24:762:24:765 | [post] this access | UseUseExplosion.cs:24:779:24:782 | this access | | UseUseExplosion.cs:24:762:24:765 | [post] this access | UseUseExplosion.cs:24:2533:24:2538 | this access | | UseUseExplosion.cs:24:762:24:765 | access to property Prop | UseUseExplosion.cs:24:779:24:782 | access to property Prop | -| UseUseExplosion.cs:24:762:24:765 | access to property Prop | UseUseExplosion.cs:24:2533:24:2538 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:762:24:765 | access to property Prop | UseUseExplosion.cs:24:2533:24:2539 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:762:24:765 | this access | UseUseExplosion.cs:24:779:24:782 | this access | | UseUseExplosion.cs:24:762:24:765 | this access | UseUseExplosion.cs:24:2533:24:2538 | this access | | UseUseExplosion.cs:24:779:24:782 | [post] this access | UseUseExplosion.cs:24:796:24:799 | this access | | UseUseExplosion.cs:24:779:24:782 | [post] this access | UseUseExplosion.cs:24:2518:24:2523 | this access | | UseUseExplosion.cs:24:779:24:782 | access to property Prop | UseUseExplosion.cs:24:796:24:799 | access to property Prop | -| UseUseExplosion.cs:24:779:24:782 | access to property Prop | UseUseExplosion.cs:24:2518:24:2523 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:779:24:782 | access to property Prop | UseUseExplosion.cs:24:2518:24:2524 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:779:24:782 | this access | UseUseExplosion.cs:24:796:24:799 | this access | | UseUseExplosion.cs:24:779:24:782 | this access | UseUseExplosion.cs:24:2518:24:2523 | this access | | UseUseExplosion.cs:24:796:24:799 | [post] this access | UseUseExplosion.cs:24:813:24:816 | this access | | UseUseExplosion.cs:24:796:24:799 | [post] this access | UseUseExplosion.cs:24:2503:24:2508 | this access | | UseUseExplosion.cs:24:796:24:799 | access to property Prop | UseUseExplosion.cs:24:813:24:816 | access to property Prop | -| UseUseExplosion.cs:24:796:24:799 | access to property Prop | UseUseExplosion.cs:24:2503:24:2508 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:796:24:799 | access to property Prop | UseUseExplosion.cs:24:2503:24:2509 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:796:24:799 | this access | UseUseExplosion.cs:24:813:24:816 | this access | | UseUseExplosion.cs:24:796:24:799 | this access | UseUseExplosion.cs:24:2503:24:2508 | this access | | UseUseExplosion.cs:24:813:24:816 | [post] this access | UseUseExplosion.cs:24:830:24:833 | this access | | UseUseExplosion.cs:24:813:24:816 | [post] this access | UseUseExplosion.cs:24:2488:24:2493 | this access | | UseUseExplosion.cs:24:813:24:816 | access to property Prop | UseUseExplosion.cs:24:830:24:833 | access to property Prop | -| UseUseExplosion.cs:24:813:24:816 | access to property Prop | UseUseExplosion.cs:24:2488:24:2493 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:813:24:816 | access to property Prop | UseUseExplosion.cs:24:2488:24:2494 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:813:24:816 | this access | UseUseExplosion.cs:24:830:24:833 | this access | | UseUseExplosion.cs:24:813:24:816 | this access | UseUseExplosion.cs:24:2488:24:2493 | this access | | UseUseExplosion.cs:24:830:24:833 | [post] this access | UseUseExplosion.cs:24:847:24:850 | this access | | UseUseExplosion.cs:24:830:24:833 | [post] this access | UseUseExplosion.cs:24:2473:24:2478 | this access | | UseUseExplosion.cs:24:830:24:833 | access to property Prop | UseUseExplosion.cs:24:847:24:850 | access to property Prop | -| UseUseExplosion.cs:24:830:24:833 | access to property Prop | UseUseExplosion.cs:24:2473:24:2478 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:830:24:833 | access to property Prop | UseUseExplosion.cs:24:2473:24:2479 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:830:24:833 | this access | UseUseExplosion.cs:24:847:24:850 | this access | | UseUseExplosion.cs:24:830:24:833 | this access | UseUseExplosion.cs:24:2473:24:2478 | this access | | UseUseExplosion.cs:24:847:24:850 | [post] this access | UseUseExplosion.cs:24:864:24:867 | this access | | UseUseExplosion.cs:24:847:24:850 | [post] this access | UseUseExplosion.cs:24:2458:24:2463 | this access | | UseUseExplosion.cs:24:847:24:850 | access to property Prop | UseUseExplosion.cs:24:864:24:867 | access to property Prop | -| UseUseExplosion.cs:24:847:24:850 | access to property Prop | UseUseExplosion.cs:24:2458:24:2463 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:847:24:850 | access to property Prop | UseUseExplosion.cs:24:2458:24:2464 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:847:24:850 | this access | UseUseExplosion.cs:24:864:24:867 | this access | | UseUseExplosion.cs:24:847:24:850 | this access | UseUseExplosion.cs:24:2458:24:2463 | this access | | UseUseExplosion.cs:24:864:24:867 | [post] this access | UseUseExplosion.cs:24:881:24:884 | this access | | UseUseExplosion.cs:24:864:24:867 | [post] this access | UseUseExplosion.cs:24:2443:24:2448 | this access | | UseUseExplosion.cs:24:864:24:867 | access to property Prop | UseUseExplosion.cs:24:881:24:884 | access to property Prop | -| UseUseExplosion.cs:24:864:24:867 | access to property Prop | UseUseExplosion.cs:24:2443:24:2448 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:864:24:867 | access to property Prop | UseUseExplosion.cs:24:2443:24:2449 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:864:24:867 | this access | UseUseExplosion.cs:24:881:24:884 | this access | | UseUseExplosion.cs:24:864:24:867 | this access | UseUseExplosion.cs:24:2443:24:2448 | this access | | UseUseExplosion.cs:24:881:24:884 | [post] this access | UseUseExplosion.cs:24:898:24:901 | this access | | UseUseExplosion.cs:24:881:24:884 | [post] this access | UseUseExplosion.cs:24:2428:24:2433 | this access | | UseUseExplosion.cs:24:881:24:884 | access to property Prop | UseUseExplosion.cs:24:898:24:901 | access to property Prop | -| UseUseExplosion.cs:24:881:24:884 | access to property Prop | UseUseExplosion.cs:24:2428:24:2433 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:881:24:884 | access to property Prop | UseUseExplosion.cs:24:2428:24:2434 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:881:24:884 | this access | UseUseExplosion.cs:24:898:24:901 | this access | | UseUseExplosion.cs:24:881:24:884 | this access | UseUseExplosion.cs:24:2428:24:2433 | this access | | UseUseExplosion.cs:24:898:24:901 | [post] this access | UseUseExplosion.cs:24:915:24:918 | this access | | UseUseExplosion.cs:24:898:24:901 | [post] this access | UseUseExplosion.cs:24:2413:24:2418 | this access | | UseUseExplosion.cs:24:898:24:901 | access to property Prop | UseUseExplosion.cs:24:915:24:918 | access to property Prop | -| UseUseExplosion.cs:24:898:24:901 | access to property Prop | UseUseExplosion.cs:24:2413:24:2418 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:898:24:901 | access to property Prop | UseUseExplosion.cs:24:2413:24:2419 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:898:24:901 | this access | UseUseExplosion.cs:24:915:24:918 | this access | | UseUseExplosion.cs:24:898:24:901 | this access | UseUseExplosion.cs:24:2413:24:2418 | this access | | UseUseExplosion.cs:24:915:24:918 | [post] this access | UseUseExplosion.cs:24:932:24:935 | this access | | UseUseExplosion.cs:24:915:24:918 | [post] this access | UseUseExplosion.cs:24:2398:24:2403 | this access | | UseUseExplosion.cs:24:915:24:918 | access to property Prop | UseUseExplosion.cs:24:932:24:935 | access to property Prop | -| UseUseExplosion.cs:24:915:24:918 | access to property Prop | UseUseExplosion.cs:24:2398:24:2403 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:915:24:918 | access to property Prop | UseUseExplosion.cs:24:2398:24:2404 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:915:24:918 | this access | UseUseExplosion.cs:24:932:24:935 | this access | | UseUseExplosion.cs:24:915:24:918 | this access | UseUseExplosion.cs:24:2398:24:2403 | this access | | UseUseExplosion.cs:24:932:24:935 | [post] this access | UseUseExplosion.cs:24:949:24:952 | this access | | UseUseExplosion.cs:24:932:24:935 | [post] this access | UseUseExplosion.cs:24:2383:24:2388 | this access | | UseUseExplosion.cs:24:932:24:935 | access to property Prop | UseUseExplosion.cs:24:949:24:952 | access to property Prop | -| UseUseExplosion.cs:24:932:24:935 | access to property Prop | UseUseExplosion.cs:24:2383:24:2388 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:932:24:935 | access to property Prop | UseUseExplosion.cs:24:2383:24:2389 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:932:24:935 | this access | UseUseExplosion.cs:24:949:24:952 | this access | | UseUseExplosion.cs:24:932:24:935 | this access | UseUseExplosion.cs:24:2383:24:2388 | this access | | UseUseExplosion.cs:24:949:24:952 | [post] this access | UseUseExplosion.cs:24:966:24:969 | this access | | UseUseExplosion.cs:24:949:24:952 | [post] this access | UseUseExplosion.cs:24:2368:24:2373 | this access | | UseUseExplosion.cs:24:949:24:952 | access to property Prop | UseUseExplosion.cs:24:966:24:969 | access to property Prop | -| UseUseExplosion.cs:24:949:24:952 | access to property Prop | UseUseExplosion.cs:24:2368:24:2373 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:949:24:952 | access to property Prop | UseUseExplosion.cs:24:2368:24:2374 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:949:24:952 | this access | UseUseExplosion.cs:24:966:24:969 | this access | | UseUseExplosion.cs:24:949:24:952 | this access | UseUseExplosion.cs:24:2368:24:2373 | this access | | UseUseExplosion.cs:24:966:24:969 | [post] this access | UseUseExplosion.cs:24:983:24:986 | this access | | UseUseExplosion.cs:24:966:24:969 | [post] this access | UseUseExplosion.cs:24:2353:24:2358 | this access | | UseUseExplosion.cs:24:966:24:969 | access to property Prop | UseUseExplosion.cs:24:983:24:986 | access to property Prop | -| UseUseExplosion.cs:24:966:24:969 | access to property Prop | UseUseExplosion.cs:24:2353:24:2358 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:966:24:969 | access to property Prop | UseUseExplosion.cs:24:2353:24:2359 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:966:24:969 | this access | UseUseExplosion.cs:24:983:24:986 | this access | | UseUseExplosion.cs:24:966:24:969 | this access | UseUseExplosion.cs:24:2353:24:2358 | this access | | UseUseExplosion.cs:24:983:24:986 | [post] this access | UseUseExplosion.cs:24:1000:24:1003 | this access | | UseUseExplosion.cs:24:983:24:986 | [post] this access | UseUseExplosion.cs:24:2338:24:2343 | this access | | UseUseExplosion.cs:24:983:24:986 | access to property Prop | UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | -| UseUseExplosion.cs:24:983:24:986 | access to property Prop | UseUseExplosion.cs:24:2338:24:2343 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:983:24:986 | access to property Prop | UseUseExplosion.cs:24:2338:24:2344 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:983:24:986 | this access | UseUseExplosion.cs:24:1000:24:1003 | this access | | UseUseExplosion.cs:24:983:24:986 | this access | UseUseExplosion.cs:24:2338:24:2343 | this access | | UseUseExplosion.cs:24:1000:24:1003 | [post] this access | UseUseExplosion.cs:24:1017:24:1020 | this access | | UseUseExplosion.cs:24:1000:24:1003 | [post] this access | UseUseExplosion.cs:24:2323:24:2328 | this access | | UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | -| UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | UseUseExplosion.cs:24:2323:24:2328 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | UseUseExplosion.cs:24:2323:24:2329 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1000:24:1003 | this access | UseUseExplosion.cs:24:1017:24:1020 | this access | | UseUseExplosion.cs:24:1000:24:1003 | this access | UseUseExplosion.cs:24:2323:24:2328 | this access | | UseUseExplosion.cs:24:1017:24:1020 | [post] this access | UseUseExplosion.cs:24:1034:24:1037 | this access | | UseUseExplosion.cs:24:1017:24:1020 | [post] this access | UseUseExplosion.cs:24:2308:24:2313 | this access | | UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | -| UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | UseUseExplosion.cs:24:2308:24:2313 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | UseUseExplosion.cs:24:2308:24:2314 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1017:24:1020 | this access | UseUseExplosion.cs:24:1034:24:1037 | this access | | UseUseExplosion.cs:24:1017:24:1020 | this access | UseUseExplosion.cs:24:2308:24:2313 | this access | | UseUseExplosion.cs:24:1034:24:1037 | [post] this access | UseUseExplosion.cs:24:1051:24:1054 | this access | | UseUseExplosion.cs:24:1034:24:1037 | [post] this access | UseUseExplosion.cs:24:2293:24:2298 | this access | | UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | -| UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | UseUseExplosion.cs:24:2293:24:2298 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | UseUseExplosion.cs:24:2293:24:2299 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1034:24:1037 | this access | UseUseExplosion.cs:24:1051:24:1054 | this access | | UseUseExplosion.cs:24:1034:24:1037 | this access | UseUseExplosion.cs:24:2293:24:2298 | this access | | UseUseExplosion.cs:24:1051:24:1054 | [post] this access | UseUseExplosion.cs:24:1068:24:1071 | this access | | UseUseExplosion.cs:24:1051:24:1054 | [post] this access | UseUseExplosion.cs:24:2278:24:2283 | this access | | UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | -| UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | UseUseExplosion.cs:24:2278:24:2283 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | UseUseExplosion.cs:24:2278:24:2284 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1051:24:1054 | this access | UseUseExplosion.cs:24:1068:24:1071 | this access | | UseUseExplosion.cs:24:1051:24:1054 | this access | UseUseExplosion.cs:24:2278:24:2283 | this access | | UseUseExplosion.cs:24:1068:24:1071 | [post] this access | UseUseExplosion.cs:24:1085:24:1088 | this access | | UseUseExplosion.cs:24:1068:24:1071 | [post] this access | UseUseExplosion.cs:24:2263:24:2268 | this access | | UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | -| UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | UseUseExplosion.cs:24:2263:24:2268 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | UseUseExplosion.cs:24:2263:24:2269 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1068:24:1071 | this access | UseUseExplosion.cs:24:1085:24:1088 | this access | | UseUseExplosion.cs:24:1068:24:1071 | this access | UseUseExplosion.cs:24:2263:24:2268 | this access | | UseUseExplosion.cs:24:1085:24:1088 | [post] this access | UseUseExplosion.cs:24:1102:24:1105 | this access | | UseUseExplosion.cs:24:1085:24:1088 | [post] this access | UseUseExplosion.cs:24:2248:24:2253 | this access | | UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | -| UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | UseUseExplosion.cs:24:2248:24:2253 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | UseUseExplosion.cs:24:2248:24:2254 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1085:24:1088 | this access | UseUseExplosion.cs:24:1102:24:1105 | this access | | UseUseExplosion.cs:24:1085:24:1088 | this access | UseUseExplosion.cs:24:2248:24:2253 | this access | | UseUseExplosion.cs:24:1102:24:1105 | [post] this access | UseUseExplosion.cs:24:1119:24:1122 | this access | | UseUseExplosion.cs:24:1102:24:1105 | [post] this access | UseUseExplosion.cs:24:2233:24:2238 | this access | | UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | -| UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | UseUseExplosion.cs:24:2233:24:2238 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | UseUseExplosion.cs:24:2233:24:2239 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1102:24:1105 | this access | UseUseExplosion.cs:24:1119:24:1122 | this access | | UseUseExplosion.cs:24:1102:24:1105 | this access | UseUseExplosion.cs:24:2233:24:2238 | this access | | UseUseExplosion.cs:24:1119:24:1122 | [post] this access | UseUseExplosion.cs:24:1136:24:1139 | this access | | UseUseExplosion.cs:24:1119:24:1122 | [post] this access | UseUseExplosion.cs:24:2218:24:2223 | this access | | UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | -| UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | UseUseExplosion.cs:24:2218:24:2223 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | UseUseExplosion.cs:24:2218:24:2224 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1119:24:1122 | this access | UseUseExplosion.cs:24:1136:24:1139 | this access | | UseUseExplosion.cs:24:1119:24:1122 | this access | UseUseExplosion.cs:24:2218:24:2223 | this access | | UseUseExplosion.cs:24:1136:24:1139 | [post] this access | UseUseExplosion.cs:24:1153:24:1156 | this access | | UseUseExplosion.cs:24:1136:24:1139 | [post] this access | UseUseExplosion.cs:24:2203:24:2208 | this access | | UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | -| UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | UseUseExplosion.cs:24:2203:24:2208 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | UseUseExplosion.cs:24:2203:24:2209 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1136:24:1139 | this access | UseUseExplosion.cs:24:1153:24:1156 | this access | | UseUseExplosion.cs:24:1136:24:1139 | this access | UseUseExplosion.cs:24:2203:24:2208 | this access | | UseUseExplosion.cs:24:1153:24:1156 | [post] this access | UseUseExplosion.cs:24:1170:24:1173 | this access | | UseUseExplosion.cs:24:1153:24:1156 | [post] this access | UseUseExplosion.cs:24:2188:24:2193 | this access | | UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | -| UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | UseUseExplosion.cs:24:2188:24:2193 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | UseUseExplosion.cs:24:2188:24:2194 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1153:24:1156 | this access | UseUseExplosion.cs:24:1170:24:1173 | this access | | UseUseExplosion.cs:24:1153:24:1156 | this access | UseUseExplosion.cs:24:2188:24:2193 | this access | | UseUseExplosion.cs:24:1170:24:1173 | [post] this access | UseUseExplosion.cs:24:1187:24:1190 | this access | | UseUseExplosion.cs:24:1170:24:1173 | [post] this access | UseUseExplosion.cs:24:2173:24:2178 | this access | | UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | -| UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | UseUseExplosion.cs:24:2173:24:2178 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | UseUseExplosion.cs:24:2173:24:2179 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1170:24:1173 | this access | UseUseExplosion.cs:24:1187:24:1190 | this access | | UseUseExplosion.cs:24:1170:24:1173 | this access | UseUseExplosion.cs:24:2173:24:2178 | this access | | UseUseExplosion.cs:24:1187:24:1190 | [post] this access | UseUseExplosion.cs:24:1204:24:1207 | this access | | UseUseExplosion.cs:24:1187:24:1190 | [post] this access | UseUseExplosion.cs:24:2158:24:2163 | this access | | UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | -| UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | UseUseExplosion.cs:24:2158:24:2163 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | UseUseExplosion.cs:24:2158:24:2164 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1187:24:1190 | this access | UseUseExplosion.cs:24:1204:24:1207 | this access | | UseUseExplosion.cs:24:1187:24:1190 | this access | UseUseExplosion.cs:24:2158:24:2163 | this access | | UseUseExplosion.cs:24:1204:24:1207 | [post] this access | UseUseExplosion.cs:24:1221:24:1224 | this access | | UseUseExplosion.cs:24:1204:24:1207 | [post] this access | UseUseExplosion.cs:24:2143:24:2148 | this access | | UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | -| UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | UseUseExplosion.cs:24:2143:24:2148 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | UseUseExplosion.cs:24:2143:24:2149 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1204:24:1207 | this access | UseUseExplosion.cs:24:1221:24:1224 | this access | | UseUseExplosion.cs:24:1204:24:1207 | this access | UseUseExplosion.cs:24:2143:24:2148 | this access | | UseUseExplosion.cs:24:1221:24:1224 | [post] this access | UseUseExplosion.cs:24:1238:24:1241 | this access | | UseUseExplosion.cs:24:1221:24:1224 | [post] this access | UseUseExplosion.cs:24:2128:24:2133 | this access | | UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | -| UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | UseUseExplosion.cs:24:2128:24:2133 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | UseUseExplosion.cs:24:2128:24:2134 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1221:24:1224 | this access | UseUseExplosion.cs:24:1238:24:1241 | this access | | UseUseExplosion.cs:24:1221:24:1224 | this access | UseUseExplosion.cs:24:2128:24:2133 | this access | | UseUseExplosion.cs:24:1238:24:1241 | [post] this access | UseUseExplosion.cs:24:1255:24:1258 | this access | | UseUseExplosion.cs:24:1238:24:1241 | [post] this access | UseUseExplosion.cs:24:2113:24:2118 | this access | | UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | -| UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | UseUseExplosion.cs:24:2113:24:2118 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | UseUseExplosion.cs:24:2113:24:2119 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1238:24:1241 | this access | UseUseExplosion.cs:24:1255:24:1258 | this access | | UseUseExplosion.cs:24:1238:24:1241 | this access | UseUseExplosion.cs:24:2113:24:2118 | this access | | UseUseExplosion.cs:24:1255:24:1258 | [post] this access | UseUseExplosion.cs:24:1272:24:1275 | this access | | UseUseExplosion.cs:24:1255:24:1258 | [post] this access | UseUseExplosion.cs:24:2098:24:2103 | this access | | UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | -| UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | UseUseExplosion.cs:24:2098:24:2103 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | UseUseExplosion.cs:24:2098:24:2104 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1255:24:1258 | this access | UseUseExplosion.cs:24:1272:24:1275 | this access | | UseUseExplosion.cs:24:1255:24:1258 | this access | UseUseExplosion.cs:24:2098:24:2103 | this access | | UseUseExplosion.cs:24:1272:24:1275 | [post] this access | UseUseExplosion.cs:24:1289:24:1292 | this access | | UseUseExplosion.cs:24:1272:24:1275 | [post] this access | UseUseExplosion.cs:24:2083:24:2088 | this access | | UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | -| UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | UseUseExplosion.cs:24:2083:24:2088 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | UseUseExplosion.cs:24:2083:24:2089 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1272:24:1275 | this access | UseUseExplosion.cs:24:1289:24:1292 | this access | | UseUseExplosion.cs:24:1272:24:1275 | this access | UseUseExplosion.cs:24:2083:24:2088 | this access | | UseUseExplosion.cs:24:1289:24:1292 | [post] this access | UseUseExplosion.cs:24:1306:24:1309 | this access | | UseUseExplosion.cs:24:1289:24:1292 | [post] this access | UseUseExplosion.cs:24:2068:24:2073 | this access | | UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | -| UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | UseUseExplosion.cs:24:2068:24:2073 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | UseUseExplosion.cs:24:2068:24:2074 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1289:24:1292 | this access | UseUseExplosion.cs:24:1306:24:1309 | this access | | UseUseExplosion.cs:24:1289:24:1292 | this access | UseUseExplosion.cs:24:2068:24:2073 | this access | | UseUseExplosion.cs:24:1306:24:1309 | [post] this access | UseUseExplosion.cs:24:1323:24:1326 | this access | | UseUseExplosion.cs:24:1306:24:1309 | [post] this access | UseUseExplosion.cs:24:2053:24:2058 | this access | | UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | -| UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | UseUseExplosion.cs:24:2053:24:2058 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | UseUseExplosion.cs:24:2053:24:2059 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1306:24:1309 | this access | UseUseExplosion.cs:24:1323:24:1326 | this access | | UseUseExplosion.cs:24:1306:24:1309 | this access | UseUseExplosion.cs:24:2053:24:2058 | this access | | UseUseExplosion.cs:24:1323:24:1326 | [post] this access | UseUseExplosion.cs:24:1340:24:1343 | this access | | UseUseExplosion.cs:24:1323:24:1326 | [post] this access | UseUseExplosion.cs:24:2038:24:2043 | this access | | UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | -| UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | UseUseExplosion.cs:24:2038:24:2043 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | UseUseExplosion.cs:24:2038:24:2044 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1323:24:1326 | this access | UseUseExplosion.cs:24:1340:24:1343 | this access | | UseUseExplosion.cs:24:1323:24:1326 | this access | UseUseExplosion.cs:24:2038:24:2043 | this access | | UseUseExplosion.cs:24:1340:24:1343 | [post] this access | UseUseExplosion.cs:24:1357:24:1360 | this access | | UseUseExplosion.cs:24:1340:24:1343 | [post] this access | UseUseExplosion.cs:24:2023:24:2028 | this access | | UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | -| UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | UseUseExplosion.cs:24:2023:24:2028 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | UseUseExplosion.cs:24:2023:24:2029 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1340:24:1343 | this access | UseUseExplosion.cs:24:1357:24:1360 | this access | | UseUseExplosion.cs:24:1340:24:1343 | this access | UseUseExplosion.cs:24:2023:24:2028 | this access | | UseUseExplosion.cs:24:1357:24:1360 | [post] this access | UseUseExplosion.cs:24:1374:24:1377 | this access | | UseUseExplosion.cs:24:1357:24:1360 | [post] this access | UseUseExplosion.cs:24:2008:24:2013 | this access | | UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | -| UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | UseUseExplosion.cs:24:2008:24:2013 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | UseUseExplosion.cs:24:2008:24:2014 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1357:24:1360 | this access | UseUseExplosion.cs:24:1374:24:1377 | this access | | UseUseExplosion.cs:24:1357:24:1360 | this access | UseUseExplosion.cs:24:2008:24:2013 | this access | | UseUseExplosion.cs:24:1374:24:1377 | [post] this access | UseUseExplosion.cs:24:1391:24:1394 | this access | | UseUseExplosion.cs:24:1374:24:1377 | [post] this access | UseUseExplosion.cs:24:1993:24:1998 | this access | | UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | -| UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | UseUseExplosion.cs:24:1993:24:1998 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | UseUseExplosion.cs:24:1993:24:1999 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1374:24:1377 | this access | UseUseExplosion.cs:24:1391:24:1394 | this access | | UseUseExplosion.cs:24:1374:24:1377 | this access | UseUseExplosion.cs:24:1993:24:1998 | this access | | UseUseExplosion.cs:24:1391:24:1394 | [post] this access | UseUseExplosion.cs:24:1408:24:1411 | this access | | UseUseExplosion.cs:24:1391:24:1394 | [post] this access | UseUseExplosion.cs:24:1978:24:1983 | this access | | UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | -| UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | UseUseExplosion.cs:24:1978:24:1983 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | UseUseExplosion.cs:24:1978:24:1984 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1391:24:1394 | this access | UseUseExplosion.cs:24:1408:24:1411 | this access | | UseUseExplosion.cs:24:1391:24:1394 | this access | UseUseExplosion.cs:24:1978:24:1983 | this access | | UseUseExplosion.cs:24:1408:24:1411 | [post] this access | UseUseExplosion.cs:24:1425:24:1428 | this access | | UseUseExplosion.cs:24:1408:24:1411 | [post] this access | UseUseExplosion.cs:24:1963:24:1968 | this access | | UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | -| UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | UseUseExplosion.cs:24:1963:24:1968 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | UseUseExplosion.cs:24:1963:24:1969 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1408:24:1411 | this access | UseUseExplosion.cs:24:1425:24:1428 | this access | | UseUseExplosion.cs:24:1408:24:1411 | this access | UseUseExplosion.cs:24:1963:24:1968 | this access | | UseUseExplosion.cs:24:1425:24:1428 | [post] this access | UseUseExplosion.cs:24:1442:24:1445 | this access | | UseUseExplosion.cs:24:1425:24:1428 | [post] this access | UseUseExplosion.cs:24:1948:24:1953 | this access | | UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | -| UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | UseUseExplosion.cs:24:1948:24:1953 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | UseUseExplosion.cs:24:1948:24:1954 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1425:24:1428 | this access | UseUseExplosion.cs:24:1442:24:1445 | this access | | UseUseExplosion.cs:24:1425:24:1428 | this access | UseUseExplosion.cs:24:1948:24:1953 | this access | | UseUseExplosion.cs:24:1442:24:1445 | [post] this access | UseUseExplosion.cs:24:1459:24:1462 | this access | | UseUseExplosion.cs:24:1442:24:1445 | [post] this access | UseUseExplosion.cs:24:1933:24:1938 | this access | | UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | -| UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | UseUseExplosion.cs:24:1933:24:1938 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | UseUseExplosion.cs:24:1933:24:1939 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1442:24:1445 | this access | UseUseExplosion.cs:24:1459:24:1462 | this access | | UseUseExplosion.cs:24:1442:24:1445 | this access | UseUseExplosion.cs:24:1933:24:1938 | this access | | UseUseExplosion.cs:24:1459:24:1462 | [post] this access | UseUseExplosion.cs:24:1476:24:1479 | this access | | UseUseExplosion.cs:24:1459:24:1462 | [post] this access | UseUseExplosion.cs:24:1918:24:1923 | this access | | UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | -| UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | UseUseExplosion.cs:24:1918:24:1923 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | UseUseExplosion.cs:24:1918:24:1924 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1459:24:1462 | this access | UseUseExplosion.cs:24:1476:24:1479 | this access | | UseUseExplosion.cs:24:1459:24:1462 | this access | UseUseExplosion.cs:24:1918:24:1923 | this access | | UseUseExplosion.cs:24:1476:24:1479 | [post] this access | UseUseExplosion.cs:24:1493:24:1496 | this access | | UseUseExplosion.cs:24:1476:24:1479 | [post] this access | UseUseExplosion.cs:24:1903:24:1908 | this access | | UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | -| UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | UseUseExplosion.cs:24:1903:24:1908 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | UseUseExplosion.cs:24:1903:24:1909 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1476:24:1479 | this access | UseUseExplosion.cs:24:1493:24:1496 | this access | | UseUseExplosion.cs:24:1476:24:1479 | this access | UseUseExplosion.cs:24:1903:24:1908 | this access | | UseUseExplosion.cs:24:1493:24:1496 | [post] this access | UseUseExplosion.cs:24:1510:24:1513 | this access | | UseUseExplosion.cs:24:1493:24:1496 | [post] this access | UseUseExplosion.cs:24:1888:24:1893 | this access | | UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | -| UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | UseUseExplosion.cs:24:1888:24:1893 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | UseUseExplosion.cs:24:1888:24:1894 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1493:24:1496 | this access | UseUseExplosion.cs:24:1510:24:1513 | this access | | UseUseExplosion.cs:24:1493:24:1496 | this access | UseUseExplosion.cs:24:1888:24:1893 | this access | | UseUseExplosion.cs:24:1510:24:1513 | [post] this access | UseUseExplosion.cs:24:1527:24:1530 | this access | | UseUseExplosion.cs:24:1510:24:1513 | [post] this access | UseUseExplosion.cs:24:1873:24:1878 | this access | | UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | -| UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | UseUseExplosion.cs:24:1873:24:1878 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | UseUseExplosion.cs:24:1873:24:1879 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1510:24:1513 | this access | UseUseExplosion.cs:24:1527:24:1530 | this access | | UseUseExplosion.cs:24:1510:24:1513 | this access | UseUseExplosion.cs:24:1873:24:1878 | this access | | UseUseExplosion.cs:24:1527:24:1530 | [post] this access | UseUseExplosion.cs:24:1544:24:1547 | this access | | UseUseExplosion.cs:24:1527:24:1530 | [post] this access | UseUseExplosion.cs:24:1858:24:1863 | this access | | UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | -| UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | UseUseExplosion.cs:24:1858:24:1863 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | UseUseExplosion.cs:24:1858:24:1864 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1527:24:1530 | this access | UseUseExplosion.cs:24:1544:24:1547 | this access | | UseUseExplosion.cs:24:1527:24:1530 | this access | UseUseExplosion.cs:24:1858:24:1863 | this access | | UseUseExplosion.cs:24:1544:24:1547 | [post] this access | UseUseExplosion.cs:24:1561:24:1564 | this access | | UseUseExplosion.cs:24:1544:24:1547 | [post] this access | UseUseExplosion.cs:24:1843:24:1848 | this access | | UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | -| UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | UseUseExplosion.cs:24:1843:24:1848 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | UseUseExplosion.cs:24:1843:24:1849 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1544:24:1547 | this access | UseUseExplosion.cs:24:1561:24:1564 | this access | | UseUseExplosion.cs:24:1544:24:1547 | this access | UseUseExplosion.cs:24:1843:24:1848 | this access | | UseUseExplosion.cs:24:1561:24:1564 | [post] this access | UseUseExplosion.cs:24:1577:24:1580 | this access | | UseUseExplosion.cs:24:1561:24:1564 | [post] this access | UseUseExplosion.cs:24:1828:24:1833 | this access | | UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | -| UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | UseUseExplosion.cs:24:1828:24:1833 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | UseUseExplosion.cs:24:1828:24:1834 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1561:24:1564 | this access | UseUseExplosion.cs:24:1577:24:1580 | this access | | UseUseExplosion.cs:24:1561:24:1564 | this access | UseUseExplosion.cs:24:1828:24:1833 | this access | | UseUseExplosion.cs:24:1577:24:1580 | [post] this access | UseUseExplosion.cs:24:1593:24:1596 | this access | | UseUseExplosion.cs:24:1577:24:1580 | [post] this access | UseUseExplosion.cs:24:1813:24:1818 | this access | | UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | -| UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | UseUseExplosion.cs:24:1813:24:1818 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | UseUseExplosion.cs:24:1813:24:1819 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1577:24:1580 | this access | UseUseExplosion.cs:24:1593:24:1596 | this access | | UseUseExplosion.cs:24:1577:24:1580 | this access | UseUseExplosion.cs:24:1813:24:1818 | this access | | UseUseExplosion.cs:24:1593:24:1596 | [post] this access | UseUseExplosion.cs:24:1609:24:1612 | this access | | UseUseExplosion.cs:24:1593:24:1596 | [post] this access | UseUseExplosion.cs:24:1798:24:1803 | this access | | UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | -| UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | UseUseExplosion.cs:24:1798:24:1803 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | UseUseExplosion.cs:24:1798:24:1804 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1593:24:1596 | this access | UseUseExplosion.cs:24:1609:24:1612 | this access | | UseUseExplosion.cs:24:1593:24:1596 | this access | UseUseExplosion.cs:24:1798:24:1803 | this access | | UseUseExplosion.cs:24:1609:24:1612 | [post] this access | UseUseExplosion.cs:24:1625:24:1628 | this access | | UseUseExplosion.cs:24:1609:24:1612 | [post] this access | UseUseExplosion.cs:24:1783:24:1788 | this access | | UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | -| UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | UseUseExplosion.cs:24:1783:24:1788 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | UseUseExplosion.cs:24:1783:24:1789 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1609:24:1612 | this access | UseUseExplosion.cs:24:1625:24:1628 | this access | | UseUseExplosion.cs:24:1609:24:1612 | this access | UseUseExplosion.cs:24:1783:24:1788 | this access | | UseUseExplosion.cs:24:1625:24:1628 | [post] this access | UseUseExplosion.cs:24:1641:24:1644 | this access | | UseUseExplosion.cs:24:1625:24:1628 | [post] this access | UseUseExplosion.cs:24:1768:24:1773 | this access | | UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | -| UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | UseUseExplosion.cs:24:1768:24:1773 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | UseUseExplosion.cs:24:1768:24:1774 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1625:24:1628 | this access | UseUseExplosion.cs:24:1641:24:1644 | this access | | UseUseExplosion.cs:24:1625:24:1628 | this access | UseUseExplosion.cs:24:1768:24:1773 | this access | | UseUseExplosion.cs:24:1641:24:1644 | [post] this access | UseUseExplosion.cs:24:1657:24:1660 | this access | | UseUseExplosion.cs:24:1641:24:1644 | [post] this access | UseUseExplosion.cs:24:1753:24:1758 | this access | | UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | -| UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | UseUseExplosion.cs:24:1753:24:1758 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | UseUseExplosion.cs:24:1753:24:1759 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1641:24:1644 | this access | UseUseExplosion.cs:24:1657:24:1660 | this access | | UseUseExplosion.cs:24:1641:24:1644 | this access | UseUseExplosion.cs:24:1753:24:1758 | this access | | UseUseExplosion.cs:24:1657:24:1660 | [post] this access | UseUseExplosion.cs:24:1673:24:1676 | this access | | UseUseExplosion.cs:24:1657:24:1660 | [post] this access | UseUseExplosion.cs:24:1738:24:1743 | this access | | UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | -| UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | UseUseExplosion.cs:24:1738:24:1743 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | UseUseExplosion.cs:24:1738:24:1744 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1657:24:1660 | this access | UseUseExplosion.cs:24:1673:24:1676 | this access | | UseUseExplosion.cs:24:1657:24:1660 | this access | UseUseExplosion.cs:24:1738:24:1743 | this access | | UseUseExplosion.cs:24:1673:24:1676 | [post] this access | UseUseExplosion.cs:24:1689:24:1692 | this access | | UseUseExplosion.cs:24:1673:24:1676 | [post] this access | UseUseExplosion.cs:24:1723:24:1728 | this access | | UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | -| UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | UseUseExplosion.cs:24:1723:24:1728 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | UseUseExplosion.cs:24:1723:24:1729 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1673:24:1676 | this access | UseUseExplosion.cs:24:1689:24:1692 | this access | | UseUseExplosion.cs:24:1673:24:1676 | this access | UseUseExplosion.cs:24:1723:24:1728 | this access | | UseUseExplosion.cs:24:1689:24:1692 | [post] this access | UseUseExplosion.cs:24:1708:24:1713 | this access | | UseUseExplosion.cs:24:1689:24:1692 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(this.Prop) | -| UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | UseUseExplosion.cs:24:1708:24:1713 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | UseUseExplosion.cs:25:13:25:16 | access to property Prop | | UseUseExplosion.cs:24:1689:24:1692 | this access | UseUseExplosion.cs:24:1708:24:1713 | this access | | UseUseExplosion.cs:24:1689:24:1692 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | -| UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(x) | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1708:24:1713 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(x) | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1708:24:1713 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1708:24:1713 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1712:24:1712 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1723:24:1728 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1712:24:1712 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1723:24:1728 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1723:24:1728 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1727:24:1727 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1738:24:1743 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1723:24:1729 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1727:24:1727 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1738:24:1743 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1738:24:1743 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1742:24:1742 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1753:24:1758 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1738:24:1744 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1742:24:1742 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1753:24:1758 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1753:24:1758 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1757:24:1757 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1768:24:1773 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1753:24:1759 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1757:24:1757 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1768:24:1773 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1768:24:1773 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1772:24:1772 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1783:24:1788 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1768:24:1774 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1772:24:1772 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1783:24:1788 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1783:24:1788 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1787:24:1787 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1798:24:1803 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1783:24:1789 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1787:24:1787 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1798:24:1803 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1798:24:1803 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1802:24:1802 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1813:24:1818 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1798:24:1804 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1802:24:1802 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1813:24:1818 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1813:24:1818 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1817:24:1817 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1828:24:1833 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1813:24:1819 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1817:24:1817 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1828:24:1833 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1828:24:1833 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1832:24:1832 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1843:24:1848 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1828:24:1834 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1832:24:1832 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1843:24:1848 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1843:24:1848 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1847:24:1847 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1858:24:1863 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1843:24:1849 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1847:24:1847 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1858:24:1863 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1858:24:1863 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1862:24:1862 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1873:24:1878 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1858:24:1864 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1862:24:1862 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1873:24:1878 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1873:24:1878 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1877:24:1877 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1888:24:1893 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1873:24:1879 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1877:24:1877 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1888:24:1893 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1888:24:1893 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1892:24:1892 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1903:24:1908 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1888:24:1894 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1892:24:1892 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1903:24:1908 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1903:24:1908 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1907:24:1907 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1918:24:1923 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1903:24:1909 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1907:24:1907 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1918:24:1923 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1918:24:1923 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1922:24:1922 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1933:24:1938 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1918:24:1924 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1922:24:1922 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1933:24:1938 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1933:24:1938 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1937:24:1937 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1948:24:1953 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1933:24:1939 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1937:24:1937 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1948:24:1953 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1948:24:1953 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1952:24:1952 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1963:24:1968 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1948:24:1954 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1952:24:1952 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1963:24:1968 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1963:24:1968 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1967:24:1967 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1978:24:1983 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1963:24:1969 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1967:24:1967 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1978:24:1983 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1978:24:1983 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1982:24:1982 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1993:24:1998 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1978:24:1984 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1982:24:1982 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1993:24:1998 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1993:24:1998 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1997:24:1997 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2008:24:2013 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1993:24:1999 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1997:24:1997 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2008:24:2013 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2008:24:2013 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2012:24:2012 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2023:24:2028 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2008:24:2014 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2012:24:2012 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2023:24:2028 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2023:24:2028 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2027:24:2027 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2038:24:2043 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2023:24:2029 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2027:24:2027 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2038:24:2043 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2038:24:2043 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2042:24:2042 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2053:24:2058 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2038:24:2044 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2042:24:2042 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2053:24:2058 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2053:24:2058 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2057:24:2057 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2068:24:2073 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2053:24:2059 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2057:24:2057 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2068:24:2073 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2068:24:2073 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2072:24:2072 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2083:24:2088 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2068:24:2074 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2072:24:2072 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2083:24:2088 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2083:24:2088 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2087:24:2087 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2098:24:2103 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2083:24:2089 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2087:24:2087 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2098:24:2103 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2098:24:2103 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2102:24:2102 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2113:24:2118 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2098:24:2104 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2102:24:2102 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2113:24:2118 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2113:24:2118 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2117:24:2117 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2128:24:2133 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2113:24:2119 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2117:24:2117 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2128:24:2133 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2128:24:2133 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2132:24:2132 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2143:24:2148 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2128:24:2134 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2132:24:2132 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2143:24:2148 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2143:24:2148 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2147:24:2147 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2158:24:2163 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2143:24:2149 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2147:24:2147 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2158:24:2163 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2158:24:2163 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2162:24:2162 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2173:24:2178 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2158:24:2164 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2162:24:2162 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2173:24:2178 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2173:24:2178 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2177:24:2177 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2188:24:2193 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2173:24:2179 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2177:24:2177 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2188:24:2193 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2188:24:2193 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2192:24:2192 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2203:24:2208 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2188:24:2194 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2192:24:2192 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2203:24:2208 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2203:24:2208 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2207:24:2207 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2218:24:2223 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2203:24:2209 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2207:24:2207 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2218:24:2223 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2218:24:2223 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2222:24:2222 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2233:24:2238 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2218:24:2224 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2222:24:2222 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2233:24:2238 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2233:24:2238 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2237:24:2237 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2248:24:2253 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2233:24:2239 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2237:24:2237 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2248:24:2253 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2248:24:2253 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2252:24:2252 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2263:24:2268 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2248:24:2254 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2252:24:2252 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2263:24:2268 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2263:24:2268 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2267:24:2267 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2278:24:2283 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2263:24:2269 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2267:24:2267 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2278:24:2283 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2278:24:2283 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2282:24:2282 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2293:24:2298 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2278:24:2284 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2282:24:2282 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2293:24:2298 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2293:24:2298 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2297:24:2297 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2308:24:2313 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2293:24:2299 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2297:24:2297 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2308:24:2313 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2308:24:2313 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2312:24:2312 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2323:24:2328 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2308:24:2314 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2312:24:2312 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2323:24:2328 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2323:24:2328 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2327:24:2327 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2338:24:2343 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2323:24:2329 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2327:24:2327 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2338:24:2343 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2338:24:2343 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2342:24:2342 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2353:24:2358 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2338:24:2344 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2342:24:2342 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2353:24:2358 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2353:24:2358 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2357:24:2357 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2368:24:2373 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2353:24:2359 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2357:24:2357 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2368:24:2373 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2368:24:2373 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2372:24:2372 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2383:24:2388 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2368:24:2374 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2372:24:2372 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2383:24:2388 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2383:24:2388 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2387:24:2387 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2398:24:2403 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2383:24:2389 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2387:24:2387 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2398:24:2403 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2398:24:2403 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2402:24:2402 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2413:24:2418 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2398:24:2404 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2402:24:2402 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2413:24:2418 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2413:24:2418 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2417:24:2417 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2428:24:2433 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2413:24:2419 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2417:24:2417 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2428:24:2433 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2428:24:2433 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2432:24:2432 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2443:24:2448 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2428:24:2434 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2432:24:2432 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2443:24:2448 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2443:24:2448 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2447:24:2447 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2458:24:2463 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2443:24:2449 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2447:24:2447 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2458:24:2463 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2458:24:2463 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2462:24:2462 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2473:24:2478 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2458:24:2464 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2462:24:2462 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2473:24:2478 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2473:24:2478 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2477:24:2477 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2488:24:2493 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2473:24:2479 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2477:24:2477 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2488:24:2493 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2488:24:2493 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2492:24:2492 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2503:24:2508 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2488:24:2494 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2492:24:2492 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2503:24:2508 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2503:24:2508 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2507:24:2507 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2518:24:2523 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2503:24:2509 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2507:24:2507 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2518:24:2523 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2518:24:2523 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2522:24:2522 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2533:24:2538 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2518:24:2524 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2522:24:2522 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2533:24:2538 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2533:24:2538 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2537:24:2537 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2548:24:2553 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2533:24:2539 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2537:24:2537 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2548:24:2553 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2548:24:2553 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2552:24:2552 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2563:24:2568 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2548:24:2554 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2552:24:2552 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2563:24:2568 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2563:24:2568 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2567:24:2567 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2578:24:2583 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2563:24:2569 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2567:24:2567 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2578:24:2583 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2578:24:2583 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2582:24:2582 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2593:24:2598 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2578:24:2584 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2582:24:2582 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2593:24:2598 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2593:24:2598 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2597:24:2597 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2608:24:2613 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2593:24:2599 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2597:24:2597 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2608:24:2613 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2608:24:2613 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2612:24:2612 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2623:24:2628 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2608:24:2614 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2612:24:2612 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2623:24:2628 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2623:24:2628 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2627:24:2627 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2638:24:2643 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2623:24:2629 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2627:24:2627 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2638:24:2643 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2638:24:2643 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2642:24:2642 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2653:24:2658 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2638:24:2644 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2642:24:2642 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2653:24:2658 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2653:24:2658 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2657:24:2657 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2668:24:2673 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2653:24:2659 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2657:24:2657 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2668:24:2673 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2668:24:2673 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2672:24:2672 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2683:24:2688 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2668:24:2674 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2672:24:2672 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2683:24:2688 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2683:24:2688 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2687:24:2687 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2698:24:2703 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2683:24:2689 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2687:24:2687 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2698:24:2703 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2698:24:2703 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2702:24:2702 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2713:24:2718 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2698:24:2704 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2702:24:2702 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2713:24:2718 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2713:24:2718 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2717:24:2717 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2728:24:2733 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2713:24:2719 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2717:24:2717 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2728:24:2733 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2728:24:2733 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2732:24:2732 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2743:24:2748 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2728:24:2734 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2732:24:2732 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2743:24:2748 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2743:24:2748 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2747:24:2747 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2758:24:2763 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2743:24:2749 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2747:24:2747 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2758:24:2763 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2758:24:2763 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2762:24:2762 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2773:24:2778 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2758:24:2764 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2762:24:2762 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2773:24:2778 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2773:24:2778 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2777:24:2777 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2788:24:2793 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2773:24:2779 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2777:24:2777 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2788:24:2793 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2788:24:2793 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2792:24:2792 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2803:24:2808 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2788:24:2794 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2792:24:2792 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2803:24:2808 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2803:24:2808 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2807:24:2807 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2818:24:2823 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2803:24:2809 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2807:24:2807 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2818:24:2823 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2818:24:2823 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2822:24:2822 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2833:24:2838 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2818:24:2824 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2822:24:2822 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2833:24:2838 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2833:24:2838 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2837:24:2837 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2848:24:2853 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2833:24:2839 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2837:24:2837 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2848:24:2853 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2848:24:2853 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2852:24:2852 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2863:24:2868 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2848:24:2854 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2852:24:2852 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2863:24:2868 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2863:24:2868 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2867:24:2867 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2878:24:2883 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2863:24:2869 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2867:24:2867 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2878:24:2883 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2878:24:2883 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2882:24:2882 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2893:24:2898 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2878:24:2884 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2882:24:2882 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2893:24:2898 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2893:24:2898 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2897:24:2897 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2908:24:2913 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2893:24:2899 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2897:24:2897 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2908:24:2913 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2908:24:2913 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2912:24:2912 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2923:24:2928 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2908:24:2914 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2912:24:2912 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2923:24:2928 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2923:24:2928 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2927:24:2927 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2938:24:2943 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2923:24:2929 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2927:24:2927 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2938:24:2943 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2938:24:2943 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2942:24:2942 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2953:24:2958 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2938:24:2944 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2942:24:2942 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2953:24:2958 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2953:24:2958 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2957:24:2957 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2968:24:2973 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2953:24:2959 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2957:24:2957 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2968:24:2973 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2968:24:2973 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2972:24:2972 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2983:24:2988 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2968:24:2974 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2972:24:2972 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2983:24:2988 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2983:24:2988 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2987:24:2987 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2998:24:3003 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2983:24:2989 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2987:24:2987 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2998:24:3003 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2998:24:3003 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3002:24:3002 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3013:24:3018 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2998:24:3004 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3002:24:3002 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3013:24:3018 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3013:24:3018 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3017:24:3017 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3028:24:3033 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3013:24:3019 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3017:24:3017 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3028:24:3033 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3028:24:3033 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3032:24:3032 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3043:24:3048 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3028:24:3034 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3032:24:3032 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3043:24:3048 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3043:24:3048 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3047:24:3047 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3058:24:3063 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3043:24:3049 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3047:24:3047 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3058:24:3063 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3058:24:3063 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3062:24:3062 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3073:24:3078 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3058:24:3064 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3062:24:3062 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3073:24:3078 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3073:24:3078 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3077:24:3077 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3088:24:3093 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3073:24:3079 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3077:24:3077 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3088:24:3093 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3088:24:3093 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3092:24:3092 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3103:24:3108 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3088:24:3094 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3092:24:3092 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3103:24:3108 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3103:24:3108 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3107:24:3107 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3118:24:3123 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3103:24:3109 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3107:24:3107 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3118:24:3123 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3118:24:3123 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3122:24:3122 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3133:24:3138 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3118:24:3124 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3122:24:3122 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3133:24:3138 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3133:24:3138 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3137:24:3137 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3148:24:3153 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3133:24:3139 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3137:24:3137 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3148:24:3153 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3148:24:3153 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3152:24:3152 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3163:24:3168 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3148:24:3154 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3152:24:3152 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3163:24:3168 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3163:24:3168 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3167:24:3167 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3178:24:3183 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3163:24:3169 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3167:24:3167 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3178:24:3183 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3178:24:3183 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3182:24:3182 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3193:24:3198 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3178:24:3184 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3182:24:3182 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3193:24:3198 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3193:24:3198 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3197:24:3197 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1712:25:1712 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1727:25:1727 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1742:25:1742 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1757:25:1757 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1772:25:1772 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1787:25:1787 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1802:25:1802 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1817:25:1817 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1832:25:1832 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1847:25:1847 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1862:25:1862 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1877:25:1877 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1892:25:1892 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1907:25:1907 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1922:25:1922 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1937:25:1937 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1952:25:1952 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1967:25:1967 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1982:25:1982 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1997:25:1997 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2012:25:2012 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2027:25:2027 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2042:25:2042 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2057:25:2057 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2072:25:2072 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2087:25:2087 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2102:25:2102 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2117:25:2117 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2132:25:2132 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2147:25:2147 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2162:25:2162 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2177:25:2177 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2192:25:2192 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2207:25:2207 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2222:25:2222 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2237:25:2237 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2252:25:2252 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2267:25:2267 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2282:25:2282 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2297:25:2297 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2312:25:2312 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2327:25:2327 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2342:25:2342 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2357:25:2357 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2372:25:2372 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2387:25:2387 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2402:25:2402 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2417:25:2417 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2432:25:2432 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2447:25:2447 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2462:25:2462 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2477:25:2477 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2492:25:2492 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2507:25:2507 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2522:25:2522 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2537:25:2537 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2552:25:2552 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2567:25:2567 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2582:25:2582 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2597:25:2597 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2612:25:2612 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2627:25:2627 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2642:25:2642 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2657:25:2657 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2672:25:2672 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2687:25:2687 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2702:25:2702 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2717:25:2717 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2732:25:2732 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2747:25:2747 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2762:25:2762 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2777:25:2777 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2792:25:2792 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2807:25:2807 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2822:25:2822 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2837:25:2837 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2852:25:2852 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2867:25:2867 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2882:25:2882 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2897:25:2897 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2912:25:2912 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2927:25:2927 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2942:25:2942 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2957:25:2957 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2972:25:2972 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2987:25:2987 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3002:25:3002 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3017:25:3017 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3032:25:3032 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3047:25:3047 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3062:25:3062 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3077:25:3077 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3092:25:3092 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3107:25:3107 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3122:25:3122 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3137:25:3137 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3152:25:3152 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3167:25:3167 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3182:25:3182 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3197:25:3197 | access to local variable x | +| UseUseExplosion.cs:24:3193:24:3199 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3197:24:3197 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:25:13:25:16 | [post] this access | UseUseExplosion.cs:25:31:25:34 | this access | | UseUseExplosion.cs:25:13:25:16 | [post] this access | UseUseExplosion.cs:25:3193:25:3198 | this access | | UseUseExplosion.cs:25:13:25:16 | access to property Prop | UseUseExplosion.cs:25:31:25:34 | access to property Prop | diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index 4be5dcf1295..56621390ff3 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -631,11 +631,11 @@ | LocalDataFlow.cs:367:32:367:33 | SSA param(b2) | LocalDataFlow.cs:374:17:374:18 | access to parameter b2 | | LocalDataFlow.cs:367:32:367:33 | b2 | LocalDataFlow.cs:367:32:367:33 | SSA param(b2) | | LocalDataFlow.cs:369:17:369:18 | "" | LocalDataFlow.cs:369:13:369:13 | access to local variable x | +| LocalDataFlow.cs:372:9:379:9 | [input] SSA phi(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | LocalDataFlow.cs:373:13:373:13 | access to local variable x | LocalDataFlow.cs:373:13:373:25 | SSA def(x) | -| LocalDataFlow.cs:373:13:373:25 | SSA def(x) | LocalDataFlow.cs:374:17:374:18 | [input] SSA phi(x) | +| LocalDataFlow.cs:373:13:373:25 | SSA def(x) | LocalDataFlow.cs:372:9:379:9 | [input] SSA phi(x) | | LocalDataFlow.cs:373:13:373:25 | SSA def(x) | LocalDataFlow.cs:376:35:376:35 | access to local variable x | | LocalDataFlow.cs:373:17:373:25 | "tainted" | LocalDataFlow.cs:373:13:373:13 | access to local variable x | -| LocalDataFlow.cs:374:17:374:18 | [input] SSA phi(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | 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 | @@ -669,60 +669,53 @@ | SSA.cs:22:16:22:23 | access to local variable ssaSink1 | SSA.cs:22:16:22:28 | SSA def(ssaSink1) | | SSA.cs:22:16:22:28 | SSA def(ssaSink1) | SSA.cs:25:15:25:22 | access to local variable ssaSink1 | | SSA.cs:22:27:22:28 | "" | SSA.cs:22:16:22:23 | access to local variable ssaSink1 | +| SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | +| SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | SSA.cs:37:24:37:31 | access to local variable ssaSink0 | | SSA.cs:23:13:23:22 | [post] access to parameter nonTainted | SSA.cs:29:13:29:22 | access to parameter nonTainted | | SSA.cs:23:13:23:22 | access to parameter nonTainted | SSA.cs:29:13:29:22 | access to parameter nonTainted | | SSA.cs:23:13:23:29 | access to property Length | SSA.cs:23:13:23:33 | ... > ... | -| SSA.cs:23:13:23:33 | [input] SSA phi read(ssaSink0) | SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | +| SSA.cs:23:13:23:33 | [input] SSA phi read(ssaSink0) | SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | | SSA.cs:24:13:24:20 | access to local variable ssaSink1 | SSA.cs:24:13:24:31 | SSA def(ssaSink1) | | SSA.cs:24:13:24:31 | SSA def(ssaSink1) | SSA.cs:25:15:25:22 | access to local variable ssaSink1 | +| SSA.cs:24:24:24:31 | access to local variable ssaSink0 | SSA.cs:23:9:24:32 | SSA phi read(ssaSink0) | | SSA.cs:24:24:24:31 | access to local variable ssaSink0 | SSA.cs:24:13:24:20 | access to local variable ssaSink1 | -| SSA.cs:24:24:24:31 | access to local variable ssaSink0 | SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | -| SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | -| SSA.cs:25:9:25:24 | SSA phi read(ssaSink0) | SSA.cs:37:24:37:31 | access to local variable ssaSink0 | | SSA.cs:28:16:28:23 | access to local variable nonSink1 | SSA.cs:28:16:28:28 | SSA def(nonSink1) | | SSA.cs:28:16:28:28 | SSA def(nonSink1) | SSA.cs:31:15:31:22 | access to local variable nonSink1 | | SSA.cs:28:27:28:28 | "" | SSA.cs:28:16:28:23 | access to local variable nonSink1 | +| SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | SSA.cs:47:13:47:33 | [input] SSA phi read(nonSink0) | +| SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | SSA.cs:49:24:49:31 | access to local variable nonSink0 | | SSA.cs:29:13:29:22 | [post] access to parameter nonTainted | SSA.cs:35:13:35:22 | access to parameter nonTainted | | SSA.cs:29:13:29:22 | access to parameter nonTainted | SSA.cs:35:13:35:22 | access to parameter nonTainted | | SSA.cs:29:13:29:29 | access to property Length | SSA.cs:29:13:29:33 | ... > ... | -| SSA.cs:29:13:29:33 | [input] SSA phi read(nonSink0) | SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | +| SSA.cs:29:13:29:33 | [input] SSA phi read(nonSink0) | SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | | SSA.cs:30:13:30:20 | access to local variable nonSink1 | SSA.cs:30:13:30:31 | SSA def(nonSink1) | | SSA.cs:30:13:30:31 | SSA def(nonSink1) | SSA.cs:31:15:31:22 | access to local variable nonSink1 | +| SSA.cs:30:24:30:31 | access to local variable nonSink0 | SSA.cs:29:9:30:32 | SSA phi read(nonSink0) | | SSA.cs:30:24:30:31 | access to local variable nonSink0 | SSA.cs:30:13:30:20 | access to local variable nonSink1 | -| SSA.cs:30:24:30:31 | access to local variable nonSink0 | SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | -| SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | SSA.cs:47:13:47:33 | [input] SSA phi read(nonSink0) | -| SSA.cs:31:9:31:24 | SSA phi read(nonSink0) | SSA.cs:49:24:49:31 | access to local variable nonSink0 | | SSA.cs:34:16:34:23 | access to local variable ssaSink2 | SSA.cs:34:16:34:28 | SSA def(ssaSink2) | | SSA.cs:34:16:34:28 | SSA def(ssaSink2) | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | | SSA.cs:34:27:34:28 | "" | SSA.cs:34:16:34:23 | access to local variable ssaSink2 | +| SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | SSA.cs:89:13:89:33 | [input] SSA phi read(ssaSink0) | +| SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | SSA.cs:91:24:91:31 | access to local variable ssaSink0 | | SSA.cs:35:13:35:22 | [post] access to parameter nonTainted | SSA.cs:35:13:35:33 | [input] SSA phi read(nonTainted) | | SSA.cs:35:13:35:22 | [post] access to parameter nonTainted | SSA.cs:38:17:38:26 | access to parameter nonTainted | | SSA.cs:35:13:35:22 | access to parameter nonTainted | SSA.cs:35:13:35:33 | [input] SSA phi read(nonTainted) | | SSA.cs:35:13:35:22 | access to parameter nonTainted | SSA.cs:38:17:38:26 | access to parameter nonTainted | | SSA.cs:35:13:35:29 | access to property Length | SSA.cs:35:13:35:33 | ... > ... | | SSA.cs:35:13:35:33 | [input] SSA phi read(nonTainted) | SSA.cs:47:13:47:22 | access to parameter nonTainted | -| SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | +| SSA.cs:35:13:35:33 | [input] SSA phi read(ssaSink0) | SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | | SSA.cs:37:13:37:20 | access to local variable ssaSink2 | SSA.cs:37:13:37:31 | SSA def(ssaSink2) | | SSA.cs:37:13:37:31 | SSA def(ssaSink2) | SSA.cs:39:21:39:28 | access to local variable ssaSink2 | | SSA.cs:37:13:37:31 | SSA def(ssaSink2) | SSA.cs:41:21:41:28 | access to local variable ssaSink2 | +| SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:35:9:42:9 | SSA phi read(ssaSink0) | | SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:37:13:37:20 | access to local variable ssaSink2 | -| SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:39:17:39:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:37:24:37:31 | access to local variable ssaSink0 | SSA.cs:41:17:41:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:38:17:38:26 | [post] access to parameter nonTainted | SSA.cs:39:17:39:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:38:17:38:26 | [post] access to parameter nonTainted | SSA.cs:41:17:41:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:38:17:38:26 | access to parameter nonTainted | SSA.cs:39:17:39:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:38:17:38:26 | access to parameter nonTainted | SSA.cs:41:17:41:29 | [input] SSA phi read(nonTainted) | +| SSA.cs:38:17:38:26 | [post] access to parameter nonTainted | SSA.cs:47:13:47:22 | access to parameter nonTainted | +| SSA.cs:38:17:38:26 | access to parameter nonTainted | SSA.cs:47:13:47:22 | access to parameter nonTainted | | SSA.cs:38:17:38:33 | access to property Length | SSA.cs:38:17:38:37 | ... > ... | -| SSA.cs:39:17:39:29 | [input] SSA phi read(nonTainted) | SSA.cs:47:13:47:22 | access to parameter nonTainted | -| SSA.cs:39:17:39:29 | [input] SSA phi read(ssaSink0) | SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | | SSA.cs:39:21:39:28 | [post] access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | | SSA.cs:39:21:39:28 | access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | -| SSA.cs:41:17:41:29 | [input] SSA phi read(nonTainted) | SSA.cs:47:13:47:22 | access to parameter nonTainted | -| SSA.cs:41:17:41:29 | [input] SSA phi read(ssaSink0) | SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | | SSA.cs:41:21:41:28 | [post] access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | | SSA.cs:41:21:41:28 | access to local variable ssaSink2 | SSA.cs:43:15:43:22 | access to local variable ssaSink2 | -| SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | SSA.cs:89:13:89:33 | [input] SSA phi read(ssaSink0) | -| SSA.cs:43:9:43:24 | SSA phi read(ssaSink0) | SSA.cs:91:24:91:31 | access to local variable ssaSink0 | | SSA.cs:46:16:46:23 | access to local variable nonSink2 | SSA.cs:46:16:46:28 | SSA def(nonSink2) | | SSA.cs:46:16:46:28 | SSA def(nonSink2) | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:46:27:46:28 | "" | SSA.cs:46:16:46:23 | access to local variable nonSink2 | @@ -737,19 +730,12 @@ | SSA.cs:49:13:49:31 | SSA def(nonSink2) | SSA.cs:51:21:51:28 | access to local variable nonSink2 | | SSA.cs:49:13:49:31 | SSA def(nonSink2) | SSA.cs:53:21:53:28 | access to local variable nonSink2 | | SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:49:13:49:20 | access to local variable nonSink2 | -| SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:51:17:51:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:53:17:53:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:50:17:50:26 | [post] access to parameter nonTainted | SSA.cs:51:17:51:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:50:17:50:26 | [post] access to parameter nonTainted | SSA.cs:53:17:53:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:50:17:50:26 | access to parameter nonTainted | SSA.cs:51:17:51:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:50:17:50:26 | access to parameter nonTainted | SSA.cs:53:17:53:29 | [input] SSA phi read(nonTainted) | +| SSA.cs:49:24:49:31 | access to local variable nonSink0 | SSA.cs:63:23:63:30 | access to local variable nonSink0 | +| SSA.cs:50:17:50:26 | [post] access to parameter nonTainted | SSA.cs:89:13:89:22 | access to parameter nonTainted | +| SSA.cs:50:17:50:26 | access to parameter nonTainted | SSA.cs:89:13:89:22 | access to parameter nonTainted | | SSA.cs:50:17:50:33 | access to property Length | SSA.cs:50:17:50:37 | ... > ... | -| SSA.cs:51:17:51:29 | [input] SSA phi read(nonSink0) | SSA.cs:63:23:63:30 | access to local variable nonSink0 | -| SSA.cs:51:17:51:29 | [input] SSA phi read(nonTainted) | SSA.cs:89:13:89:22 | access to parameter nonTainted | | SSA.cs:51:21:51:28 | [post] access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:51:21:51:28 | access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | -| SSA.cs:53:17:53:29 | [input] SSA phi read(nonSink0) | SSA.cs:63:23:63:30 | access to local variable nonSink0 | -| SSA.cs:53:17:53:29 | [input] SSA phi read(nonTainted) | SSA.cs:89:13:89:22 | access to parameter nonTainted | | SSA.cs:53:21:53:28 | [post] access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:53:21:53:28 | access to local variable nonSink2 | SSA.cs:55:15:55:22 | access to local variable nonSink2 | | SSA.cs:58:16:58:23 | access to local variable ssaSink3 | SSA.cs:58:16:58:33 | SSA def(ssaSink3) | @@ -852,19 +838,12 @@ | SSA.cs:91:13:91:31 | SSA def(ssaSink4) | SSA.cs:93:21:93:28 | access to local variable ssaSink4 | | SSA.cs:91:13:91:31 | SSA def(ssaSink4) | SSA.cs:95:21:95:28 | access to local variable ssaSink4 | | SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:91:13:91:20 | access to local variable ssaSink4 | -| SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:93:17:93:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:95:17:95:29 | [input] SSA phi read(ssaSink0) | -| SSA.cs:92:17:92:26 | [post] access to parameter nonTainted | SSA.cs:93:17:93:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:92:17:92:26 | [post] access to parameter nonTainted | SSA.cs:95:17:95:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:92:17:92:26 | access to parameter nonTainted | SSA.cs:93:17:93:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:92:17:92:26 | access to parameter nonTainted | SSA.cs:95:17:95:29 | [input] SSA phi read(nonTainted) | +| SSA.cs:91:24:91:31 | access to local variable ssaSink0 | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | +| SSA.cs:92:17:92:26 | [post] access to parameter nonTainted | SSA.cs:102:13:102:22 | access to parameter nonTainted | +| SSA.cs:92:17:92:26 | access to parameter nonTainted | SSA.cs:102:13:102:22 | access to parameter nonTainted | | SSA.cs:92:17:92:33 | access to property Length | SSA.cs:92:17:92:37 | ... > ... | -| SSA.cs:93:17:93:29 | [input] SSA phi read(nonTainted) | SSA.cs:102:13:102:22 | access to parameter nonTainted | -| SSA.cs:93:17:93:29 | [input] SSA phi read(ssaSink0) | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | | SSA.cs:93:21:93:28 | [post] access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | | SSA.cs:93:21:93:28 | access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | -| SSA.cs:95:17:95:29 | [input] SSA phi read(nonTainted) | SSA.cs:102:13:102:22 | access to parameter nonTainted | -| SSA.cs:95:17:95:29 | [input] SSA phi read(ssaSink0) | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | | SSA.cs:95:21:95:28 | [post] access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | | SSA.cs:95:21:95:28 | access to local variable ssaSink4 | SSA.cs:97:23:97:30 | access to local variable ssaSink4 | | SSA.cs:97:23:97:30 | SSA def(ssaSink4) | SSA.cs:98:15:98:22 | access to local variable ssaSink4 | @@ -885,19 +864,12 @@ | SSA.cs:104:13:104:31 | SSA def(nonSink3) | SSA.cs:106:21:106:28 | access to local variable nonSink3 | | SSA.cs:104:13:104:31 | SSA def(nonSink3) | SSA.cs:108:21:108:28 | access to local variable nonSink3 | | SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:104:13:104:20 | access to local variable nonSink3 | -| SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:106:17:106:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:108:17:108:29 | [input] SSA phi read(nonSink0) | -| SSA.cs:105:17:105:26 | [post] access to parameter nonTainted | SSA.cs:106:17:106:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:105:17:105:26 | [post] access to parameter nonTainted | SSA.cs:108:17:108:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:105:17:105:26 | access to parameter nonTainted | SSA.cs:106:17:106:29 | [input] SSA phi read(nonTainted) | -| SSA.cs:105:17:105:26 | access to parameter nonTainted | SSA.cs:108:17:108:29 | [input] SSA phi read(nonTainted) | +| SSA.cs:104:24:104:31 | access to local variable nonSink0 | SSA.cs:130:39:130:46 | access to local variable nonSink0 | +| SSA.cs:105:17:105:26 | [post] access to parameter nonTainted | SSA.cs:115:13:115:22 | access to parameter nonTainted | +| SSA.cs:105:17:105:26 | access to parameter nonTainted | SSA.cs:115:13:115:22 | access to parameter nonTainted | | SSA.cs:105:17:105:33 | access to property Length | SSA.cs:105:17:105:37 | ... > ... | -| SSA.cs:106:17:106:29 | [input] SSA phi read(nonSink0) | SSA.cs:130:39:130:46 | access to local variable nonSink0 | -| SSA.cs:106:17:106:29 | [input] SSA phi read(nonTainted) | SSA.cs:115:13:115:22 | access to parameter nonTainted | | SSA.cs:106:21:106:28 | [post] access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:106:21:106:28 | access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | -| SSA.cs:108:17:108:29 | [input] SSA phi read(nonSink0) | SSA.cs:130:39:130:46 | access to local variable nonSink0 | -| SSA.cs:108:17:108:29 | [input] SSA phi read(nonTainted) | SSA.cs:115:13:115:22 | access to parameter nonTainted | | SSA.cs:108:21:108:28 | [post] access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:108:21:108:28 | access to local variable nonSink3 | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:110:23:110:30 | SSA def(nonSink3) | SSA.cs:111:15:111:22 | access to local variable nonSink3 | @@ -934,19 +906,15 @@ | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | SSA.cs:121:21:121:40 | access to field SsaFieldSink1 | | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | SSA.cs:117:13:117:32 | access to field SsaFieldSink1 | -| SSA.cs:118:17:118:26 | [post] access to parameter nonTainted | SSA.cs:119:17:119:41 | [input] SSA phi read(nonTainted) | -| SSA.cs:118:17:118:26 | [post] access to parameter nonTainted | SSA.cs:121:17:121:41 | [input] SSA phi read(nonTainted) | -| SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:119:17:119:41 | [input] SSA phi read(nonTainted) | -| SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:121:17:121:41 | [input] SSA phi read(nonTainted) | +| SSA.cs:118:17:118:26 | [post] access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | +| SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | | SSA.cs:118:17:118:33 | access to property Length | SSA.cs:118:17:118:37 | ... > ... | -| SSA.cs:119:17:119:41 | [input] SSA phi read(nonTainted) | SSA.cs:128:13:128:22 | access to parameter nonTainted | | SSA.cs:119:21:119:24 | [post] this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:119:21:119:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:119:21:119:26 | [post] access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:119:21:119:26 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:119:21:119:40 | [post] access to field SsaFieldSink1 | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | -| SSA.cs:121:17:121:41 | [input] SSA phi read(nonTainted) | SSA.cs:128:13:128:22 | access to parameter nonTainted | | SSA.cs:121:21:121:24 | [post] this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:121:21:121:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:121:21:121:26 | [post] access to field S | SSA.cs:123:23:123:28 | access to field S | @@ -1017,10 +985,10 @@ | SSA.cs:146:13:146:13 | access to parameter t | SSA.cs:146:13:146:13 | (...) ... | | SSA.cs:146:13:146:13 | access to parameter t | SSA.cs:149:17:149:17 | access to parameter t | | SSA.cs:147:13:147:13 | access to parameter t | SSA.cs:147:13:147:26 | SSA def(t) | -| SSA.cs:147:13:147:26 | SSA def(t) | SSA.cs:144:17:144:26 | SSA phi(t) | +| SSA.cs:147:13:147:26 | SSA def(t) | SSA.cs:146:9:149:18 | SSA phi(t) | | SSA.cs:147:17:147:26 | default(...) | SSA.cs:147:13:147:13 | access to parameter t | | SSA.cs:149:13:149:13 | access to parameter t | SSA.cs:149:13:149:17 | SSA def(t) | -| SSA.cs:149:13:149:17 | SSA def(t) | SSA.cs:144:17:144:26 | SSA phi(t) | +| SSA.cs:149:13:149:17 | SSA def(t) | SSA.cs:146:9:149:18 | SSA phi(t) | | SSA.cs:149:17:149:17 | access to parameter t | SSA.cs:149:13:149:13 | access to parameter t | | SSA.cs:152:36:152:36 | SSA param(t) | SSA.cs:154:13:154:13 | access to parameter t | | SSA.cs:152:36:152:36 | t | SSA.cs:152:36:152:36 | SSA param(t) | @@ -1028,8 +996,8 @@ | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:154:13:154:13 | (...) ... | | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:154:13:154:21 | [input] SSA phi(t) | | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:155:25:155:25 | access to parameter t | -| SSA.cs:154:13:154:21 | [input] SSA phi(t) | SSA.cs:152:17:152:28 | SSA phi(t) | -| SSA.cs:155:25:155:25 | SSA def(t) | SSA.cs:152:17:152:28 | SSA phi(t) | +| SSA.cs:154:13:154:21 | [input] SSA phi(t) | SSA.cs:154:9:155:27 | SSA phi(t) | +| SSA.cs:155:25:155:25 | SSA def(t) | SSA.cs:154:9:155:27 | SSA phi(t) | | SSA.cs:155:25:155:25 | access to parameter t | SSA.cs:155:25:155:25 | SSA def(t) | | SSA.cs:166:10:166:13 | this | SSA.cs:166:19:166:22 | this access | | SSA.cs:166:28:166:31 | null | SSA.cs:166:19:166:24 | access to field S | @@ -1043,19 +1011,19 @@ | SSA.cs:171:13:171:13 | access to parameter i | SSA.cs:171:13:171:15 | SSA def(i) | | SSA.cs:171:13:171:15 | ...-- | SSA.cs:171:13:171:19 | ... > ... | | SSA.cs:171:13:171:15 | SSA def(i) | SSA.cs:174:20:174:20 | access to parameter i | +| SSA.cs:172:9:179:9 | [input] SSA phi(ssaSink5) | SSA.cs:180:15:180:22 | access to local variable ssaSink5 | | SSA.cs:173:13:173:20 | access to local variable ssaSink5 | SSA.cs:173:13:173:30 | SSA def(ssaSink5) | -| SSA.cs:173:13:173:30 | SSA def(ssaSink5) | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | +| SSA.cs:173:13:173:30 | SSA def(ssaSink5) | SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | | SSA.cs:173:24:173:30 | access to parameter tainted | SSA.cs:173:13:173:20 | access to local variable ssaSink5 | -| SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | SSA.cs:174:20:174:26 | [input] SSA phi(ssaSink5) | -| SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | +| SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | SSA.cs:172:9:179:9 | [input] SSA phi(ssaSink5) | +| SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | | SSA.cs:174:20:174:20 | access to parameter i | SSA.cs:174:20:174:22 | SSA def(i) | | SSA.cs:174:20:174:22 | ...-- | SSA.cs:174:20:174:26 | ... > ... | | SSA.cs:174:20:174:22 | SSA def(i) | SSA.cs:174:20:174:20 | access to parameter i | -| SSA.cs:174:20:174:26 | [input] SSA phi(ssaSink5) | SSA.cs:180:15:180:22 | access to local variable ssaSink5 | | SSA.cs:176:21:176:28 | [post] access to local variable ssaSink5 | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | | 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) | +| SSA.cs:177:21:177:28 | [post] access to local variable ssaSink5 | SSA.cs:174:13:178:13 | SSA phi read(ssaSink5) | +| SSA.cs:177:21:177:28 | access to local variable ssaSink5 | SSA.cs:174:13:178:13 | 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) | @@ -1067,11 +1035,11 @@ | Splitting.cs:5:17:5:23 | access to parameter tainted | Splitting.cs:5:13:5:13 | access to local variable x | | Splitting.cs:6:13:6:13 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | | Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | access to parameter b | +| Splitting.cs:7:9:11:9 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | | Splitting.cs:8:19:8:19 | [post] access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | | Splitting.cs:8:19:8:19 | access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | +| Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:7:9:11:9 | [input] SSA phi read(x) | | Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:9:17:9:25 | ... == ... | -| Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | -| Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | | Splitting.cs:12:15:12:15 | [post] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | | Splitting.cs:12:15:12:15 | access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | | Splitting.cs:17:18:17:18 | SSA param(b) | Splitting.cs:20:13:20:13 | access to parameter b | @@ -1260,1208 +1228,1205 @@ | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | UseUseExplosion.cs:24:3182:24:3182 | access to local variable x | | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | UseUseExplosion.cs:24:3197:24:3197 | access to local variable x | | UseUseExplosion.cs:23:17:23:17 | 0 | UseUseExplosion.cs:23:13:23:13 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1712:25:1712 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1727:25:1727 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1742:25:1742 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1757:25:1757 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1772:25:1772 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1787:25:1787 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1802:25:1802 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1817:25:1817 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1832:25:1832 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1847:25:1847 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1862:25:1862 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1877:25:1877 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1892:25:1892 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1907:25:1907 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1922:25:1922 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1937:25:1937 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1952:25:1952 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1967:25:1967 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1982:25:1982 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1997:25:1997 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2012:25:2012 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2027:25:2027 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2042:25:2042 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2057:25:2057 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2072:25:2072 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2087:25:2087 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2102:25:2102 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2117:25:2117 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2132:25:2132 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2147:25:2147 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2162:25:2162 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2177:25:2177 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2192:25:2192 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2207:25:2207 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2222:25:2222 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2237:25:2237 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2252:25:2252 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2267:25:2267 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2282:25:2282 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2297:25:2297 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2312:25:2312 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2327:25:2327 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2342:25:2342 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2357:25:2357 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2372:25:2372 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2387:25:2387 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2402:25:2402 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2417:25:2417 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2432:25:2432 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2447:25:2447 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2462:25:2462 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2477:25:2477 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2492:25:2492 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2507:25:2507 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2522:25:2522 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2537:25:2537 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2552:25:2552 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2567:25:2567 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2582:25:2582 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2597:25:2597 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2612:25:2612 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2627:25:2627 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2642:25:2642 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2657:25:2657 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2672:25:2672 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2687:25:2687 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2702:25:2702 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2717:25:2717 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2732:25:2732 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2747:25:2747 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2762:25:2762 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2777:25:2777 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2792:25:2792 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2807:25:2807 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2822:25:2822 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2837:25:2837 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2852:25:2852 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2867:25:2867 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2882:25:2882 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2897:25:2897 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2912:25:2912 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2927:25:2927 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2942:25:2942 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2957:25:2957 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2972:25:2972 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2987:25:2987 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3002:25:3002 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3017:25:3017 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3032:25:3032 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3047:25:3047 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3062:25:3062 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3077:25:3077 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3092:25:3092 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3107:25:3107 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3122:25:3122 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3137:25:3137 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3152:25:3152 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3167:25:3167 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3182:25:3182 | access to local variable x | +| UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3197:25:3197 | access to local variable x | | UseUseExplosion.cs:24:13:24:16 | [post] this access | UseUseExplosion.cs:24:31:24:34 | this access | | UseUseExplosion.cs:24:13:24:16 | [post] this access | UseUseExplosion.cs:24:3193:24:3198 | this access | | UseUseExplosion.cs:24:13:24:16 | access to property Prop | UseUseExplosion.cs:24:13:24:22 | ... > ... | | UseUseExplosion.cs:24:13:24:16 | access to property Prop | UseUseExplosion.cs:24:31:24:34 | access to property Prop | -| UseUseExplosion.cs:24:13:24:16 | access to property Prop | UseUseExplosion.cs:24:3193:24:3198 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:13:24:16 | access to property Prop | UseUseExplosion.cs:24:3193:24:3199 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:13:24:16 | this access | UseUseExplosion.cs:24:31:24:34 | this access | | UseUseExplosion.cs:24:13:24:16 | this access | UseUseExplosion.cs:24:3193:24:3198 | this access | | UseUseExplosion.cs:24:31:24:34 | [post] this access | UseUseExplosion.cs:24:48:24:51 | this access | | UseUseExplosion.cs:24:31:24:34 | [post] this access | UseUseExplosion.cs:24:3178:24:3183 | this access | | UseUseExplosion.cs:24:31:24:34 | access to property Prop | UseUseExplosion.cs:24:31:24:39 | ... > ... | | UseUseExplosion.cs:24:31:24:34 | access to property Prop | UseUseExplosion.cs:24:48:24:51 | access to property Prop | -| UseUseExplosion.cs:24:31:24:34 | access to property Prop | UseUseExplosion.cs:24:3178:24:3183 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:31:24:34 | access to property Prop | UseUseExplosion.cs:24:3178:24:3184 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:31:24:34 | this access | UseUseExplosion.cs:24:48:24:51 | this access | | UseUseExplosion.cs:24:31:24:34 | this access | UseUseExplosion.cs:24:3178:24:3183 | this access | | UseUseExplosion.cs:24:48:24:51 | [post] this access | UseUseExplosion.cs:24:65:24:68 | this access | | UseUseExplosion.cs:24:48:24:51 | [post] this access | UseUseExplosion.cs:24:3163:24:3168 | this access | | UseUseExplosion.cs:24:48:24:51 | access to property Prop | UseUseExplosion.cs:24:48:24:56 | ... > ... | | UseUseExplosion.cs:24:48:24:51 | access to property Prop | UseUseExplosion.cs:24:65:24:68 | access to property Prop | -| UseUseExplosion.cs:24:48:24:51 | access to property Prop | UseUseExplosion.cs:24:3163:24:3168 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:48:24:51 | access to property Prop | UseUseExplosion.cs:24:3163:24:3169 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:48:24:51 | this access | UseUseExplosion.cs:24:65:24:68 | this access | | UseUseExplosion.cs:24:48:24:51 | this access | UseUseExplosion.cs:24:3163:24:3168 | this access | | UseUseExplosion.cs:24:65:24:68 | [post] this access | UseUseExplosion.cs:24:82:24:85 | this access | | UseUseExplosion.cs:24:65:24:68 | [post] this access | UseUseExplosion.cs:24:3148:24:3153 | this access | | UseUseExplosion.cs:24:65:24:68 | access to property Prop | UseUseExplosion.cs:24:65:24:73 | ... > ... | | UseUseExplosion.cs:24:65:24:68 | access to property Prop | UseUseExplosion.cs:24:82:24:85 | access to property Prop | -| UseUseExplosion.cs:24:65:24:68 | access to property Prop | UseUseExplosion.cs:24:3148:24:3153 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:65:24:68 | access to property Prop | UseUseExplosion.cs:24:3148:24:3154 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:65:24:68 | this access | UseUseExplosion.cs:24:82:24:85 | this access | | UseUseExplosion.cs:24:65:24:68 | this access | UseUseExplosion.cs:24:3148:24:3153 | this access | | UseUseExplosion.cs:24:82:24:85 | [post] this access | UseUseExplosion.cs:24:99:24:102 | this access | | UseUseExplosion.cs:24:82:24:85 | [post] this access | UseUseExplosion.cs:24:3133:24:3138 | this access | | UseUseExplosion.cs:24:82:24:85 | access to property Prop | UseUseExplosion.cs:24:82:24:90 | ... > ... | | UseUseExplosion.cs:24:82:24:85 | access to property Prop | UseUseExplosion.cs:24:99:24:102 | access to property Prop | -| UseUseExplosion.cs:24:82:24:85 | access to property Prop | UseUseExplosion.cs:24:3133:24:3138 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:82:24:85 | access to property Prop | UseUseExplosion.cs:24:3133:24:3139 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:82:24:85 | this access | UseUseExplosion.cs:24:99:24:102 | this access | | UseUseExplosion.cs:24:82:24:85 | this access | UseUseExplosion.cs:24:3133:24:3138 | this access | | UseUseExplosion.cs:24:99:24:102 | [post] this access | UseUseExplosion.cs:24:116:24:119 | this access | | UseUseExplosion.cs:24:99:24:102 | [post] this access | UseUseExplosion.cs:24:3118:24:3123 | this access | | UseUseExplosion.cs:24:99:24:102 | access to property Prop | UseUseExplosion.cs:24:99:24:107 | ... > ... | | UseUseExplosion.cs:24:99:24:102 | access to property Prop | UseUseExplosion.cs:24:116:24:119 | access to property Prop | -| UseUseExplosion.cs:24:99:24:102 | access to property Prop | UseUseExplosion.cs:24:3118:24:3123 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:99:24:102 | access to property Prop | UseUseExplosion.cs:24:3118:24:3124 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:99:24:102 | this access | UseUseExplosion.cs:24:116:24:119 | this access | | UseUseExplosion.cs:24:99:24:102 | this access | UseUseExplosion.cs:24:3118:24:3123 | this access | | UseUseExplosion.cs:24:116:24:119 | [post] this access | UseUseExplosion.cs:24:133:24:136 | this access | | UseUseExplosion.cs:24:116:24:119 | [post] this access | UseUseExplosion.cs:24:3103:24:3108 | this access | | UseUseExplosion.cs:24:116:24:119 | access to property Prop | UseUseExplosion.cs:24:116:24:124 | ... > ... | | UseUseExplosion.cs:24:116:24:119 | access to property Prop | UseUseExplosion.cs:24:133:24:136 | access to property Prop | -| UseUseExplosion.cs:24:116:24:119 | access to property Prop | UseUseExplosion.cs:24:3103:24:3108 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:116:24:119 | access to property Prop | UseUseExplosion.cs:24:3103:24:3109 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:116:24:119 | this access | UseUseExplosion.cs:24:133:24:136 | this access | | UseUseExplosion.cs:24:116:24:119 | this access | UseUseExplosion.cs:24:3103:24:3108 | this access | | UseUseExplosion.cs:24:133:24:136 | [post] this access | UseUseExplosion.cs:24:150:24:153 | this access | | UseUseExplosion.cs:24:133:24:136 | [post] this access | UseUseExplosion.cs:24:3088:24:3093 | this access | | UseUseExplosion.cs:24:133:24:136 | access to property Prop | UseUseExplosion.cs:24:133:24:141 | ... > ... | | UseUseExplosion.cs:24:133:24:136 | access to property Prop | UseUseExplosion.cs:24:150:24:153 | access to property Prop | -| UseUseExplosion.cs:24:133:24:136 | access to property Prop | UseUseExplosion.cs:24:3088:24:3093 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:133:24:136 | access to property Prop | UseUseExplosion.cs:24:3088:24:3094 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:133:24:136 | this access | UseUseExplosion.cs:24:150:24:153 | this access | | UseUseExplosion.cs:24:133:24:136 | this access | UseUseExplosion.cs:24:3088:24:3093 | this access | | UseUseExplosion.cs:24:150:24:153 | [post] this access | UseUseExplosion.cs:24:167:24:170 | this access | | UseUseExplosion.cs:24:150:24:153 | [post] this access | UseUseExplosion.cs:24:3073:24:3078 | this access | | UseUseExplosion.cs:24:150:24:153 | access to property Prop | UseUseExplosion.cs:24:150:24:158 | ... > ... | | UseUseExplosion.cs:24:150:24:153 | access to property Prop | UseUseExplosion.cs:24:167:24:170 | access to property Prop | -| UseUseExplosion.cs:24:150:24:153 | access to property Prop | UseUseExplosion.cs:24:3073:24:3078 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:150:24:153 | access to property Prop | UseUseExplosion.cs:24:3073:24:3079 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:150:24:153 | this access | UseUseExplosion.cs:24:167:24:170 | this access | | UseUseExplosion.cs:24:150:24:153 | this access | UseUseExplosion.cs:24:3073:24:3078 | this access | | UseUseExplosion.cs:24:167:24:170 | [post] this access | UseUseExplosion.cs:24:184:24:187 | this access | | UseUseExplosion.cs:24:167:24:170 | [post] this access | UseUseExplosion.cs:24:3058:24:3063 | this access | | UseUseExplosion.cs:24:167:24:170 | access to property Prop | UseUseExplosion.cs:24:167:24:175 | ... > ... | | UseUseExplosion.cs:24:167:24:170 | access to property Prop | UseUseExplosion.cs:24:184:24:187 | access to property Prop | -| UseUseExplosion.cs:24:167:24:170 | access to property Prop | UseUseExplosion.cs:24:3058:24:3063 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:167:24:170 | access to property Prop | UseUseExplosion.cs:24:3058:24:3064 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:167:24:170 | this access | UseUseExplosion.cs:24:184:24:187 | this access | | UseUseExplosion.cs:24:167:24:170 | this access | UseUseExplosion.cs:24:3058:24:3063 | this access | | UseUseExplosion.cs:24:184:24:187 | [post] this access | UseUseExplosion.cs:24:201:24:204 | this access | | UseUseExplosion.cs:24:184:24:187 | [post] this access | UseUseExplosion.cs:24:3043:24:3048 | this access | | UseUseExplosion.cs:24:184:24:187 | access to property Prop | UseUseExplosion.cs:24:184:24:192 | ... > ... | | UseUseExplosion.cs:24:184:24:187 | access to property Prop | UseUseExplosion.cs:24:201:24:204 | access to property Prop | -| UseUseExplosion.cs:24:184:24:187 | access to property Prop | UseUseExplosion.cs:24:3043:24:3048 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:184:24:187 | access to property Prop | UseUseExplosion.cs:24:3043:24:3049 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:184:24:187 | this access | UseUseExplosion.cs:24:201:24:204 | this access | | UseUseExplosion.cs:24:184:24:187 | this access | UseUseExplosion.cs:24:3043:24:3048 | this access | | UseUseExplosion.cs:24:201:24:204 | [post] this access | UseUseExplosion.cs:24:218:24:221 | this access | | UseUseExplosion.cs:24:201:24:204 | [post] this access | UseUseExplosion.cs:24:3028:24:3033 | this access | | UseUseExplosion.cs:24:201:24:204 | access to property Prop | UseUseExplosion.cs:24:201:24:209 | ... > ... | | UseUseExplosion.cs:24:201:24:204 | access to property Prop | UseUseExplosion.cs:24:218:24:221 | access to property Prop | -| UseUseExplosion.cs:24:201:24:204 | access to property Prop | UseUseExplosion.cs:24:3028:24:3033 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:201:24:204 | access to property Prop | UseUseExplosion.cs:24:3028:24:3034 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:201:24:204 | this access | UseUseExplosion.cs:24:218:24:221 | this access | | UseUseExplosion.cs:24:201:24:204 | this access | UseUseExplosion.cs:24:3028:24:3033 | this access | | UseUseExplosion.cs:24:218:24:221 | [post] this access | UseUseExplosion.cs:24:235:24:238 | this access | | UseUseExplosion.cs:24:218:24:221 | [post] this access | UseUseExplosion.cs:24:3013:24:3018 | this access | | UseUseExplosion.cs:24:218:24:221 | access to property Prop | UseUseExplosion.cs:24:218:24:226 | ... > ... | | UseUseExplosion.cs:24:218:24:221 | access to property Prop | UseUseExplosion.cs:24:235:24:238 | access to property Prop | -| UseUseExplosion.cs:24:218:24:221 | access to property Prop | UseUseExplosion.cs:24:3013:24:3018 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:218:24:221 | access to property Prop | UseUseExplosion.cs:24:3013:24:3019 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:218:24:221 | this access | UseUseExplosion.cs:24:235:24:238 | this access | | UseUseExplosion.cs:24:218:24:221 | this access | UseUseExplosion.cs:24:3013:24:3018 | this access | | UseUseExplosion.cs:24:235:24:238 | [post] this access | UseUseExplosion.cs:24:252:24:255 | this access | | UseUseExplosion.cs:24:235:24:238 | [post] this access | UseUseExplosion.cs:24:2998:24:3003 | this access | | UseUseExplosion.cs:24:235:24:238 | access to property Prop | UseUseExplosion.cs:24:235:24:243 | ... > ... | | UseUseExplosion.cs:24:235:24:238 | access to property Prop | UseUseExplosion.cs:24:252:24:255 | access to property Prop | -| UseUseExplosion.cs:24:235:24:238 | access to property Prop | UseUseExplosion.cs:24:2998:24:3003 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:235:24:238 | access to property Prop | UseUseExplosion.cs:24:2998:24:3004 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:235:24:238 | this access | UseUseExplosion.cs:24:252:24:255 | this access | | UseUseExplosion.cs:24:235:24:238 | this access | UseUseExplosion.cs:24:2998:24:3003 | this access | | UseUseExplosion.cs:24:252:24:255 | [post] this access | UseUseExplosion.cs:24:269:24:272 | this access | | UseUseExplosion.cs:24:252:24:255 | [post] this access | UseUseExplosion.cs:24:2983:24:2988 | this access | | UseUseExplosion.cs:24:252:24:255 | access to property Prop | UseUseExplosion.cs:24:252:24:260 | ... > ... | | UseUseExplosion.cs:24:252:24:255 | access to property Prop | UseUseExplosion.cs:24:269:24:272 | access to property Prop | -| UseUseExplosion.cs:24:252:24:255 | access to property Prop | UseUseExplosion.cs:24:2983:24:2988 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:252:24:255 | access to property Prop | UseUseExplosion.cs:24:2983:24:2989 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:252:24:255 | this access | UseUseExplosion.cs:24:269:24:272 | this access | | UseUseExplosion.cs:24:252:24:255 | this access | UseUseExplosion.cs:24:2983:24:2988 | this access | | UseUseExplosion.cs:24:269:24:272 | [post] this access | UseUseExplosion.cs:24:286:24:289 | this access | | UseUseExplosion.cs:24:269:24:272 | [post] this access | UseUseExplosion.cs:24:2968:24:2973 | this access | | UseUseExplosion.cs:24:269:24:272 | access to property Prop | UseUseExplosion.cs:24:269:24:277 | ... > ... | | UseUseExplosion.cs:24:269:24:272 | access to property Prop | UseUseExplosion.cs:24:286:24:289 | access to property Prop | -| UseUseExplosion.cs:24:269:24:272 | access to property Prop | UseUseExplosion.cs:24:2968:24:2973 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:269:24:272 | access to property Prop | UseUseExplosion.cs:24:2968:24:2974 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:269:24:272 | this access | UseUseExplosion.cs:24:286:24:289 | this access | | UseUseExplosion.cs:24:269:24:272 | this access | UseUseExplosion.cs:24:2968:24:2973 | this access | | UseUseExplosion.cs:24:286:24:289 | [post] this access | UseUseExplosion.cs:24:303:24:306 | this access | | UseUseExplosion.cs:24:286:24:289 | [post] this access | UseUseExplosion.cs:24:2953:24:2958 | this access | | UseUseExplosion.cs:24:286:24:289 | access to property Prop | UseUseExplosion.cs:24:286:24:294 | ... > ... | | UseUseExplosion.cs:24:286:24:289 | access to property Prop | UseUseExplosion.cs:24:303:24:306 | access to property Prop | -| UseUseExplosion.cs:24:286:24:289 | access to property Prop | UseUseExplosion.cs:24:2953:24:2958 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:286:24:289 | access to property Prop | UseUseExplosion.cs:24:2953:24:2959 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:286:24:289 | this access | UseUseExplosion.cs:24:303:24:306 | this access | | UseUseExplosion.cs:24:286:24:289 | this access | UseUseExplosion.cs:24:2953:24:2958 | this access | | UseUseExplosion.cs:24:303:24:306 | [post] this access | UseUseExplosion.cs:24:320:24:323 | this access | | UseUseExplosion.cs:24:303:24:306 | [post] this access | UseUseExplosion.cs:24:2938:24:2943 | this access | | UseUseExplosion.cs:24:303:24:306 | access to property Prop | UseUseExplosion.cs:24:303:24:311 | ... > ... | | UseUseExplosion.cs:24:303:24:306 | access to property Prop | UseUseExplosion.cs:24:320:24:323 | access to property Prop | -| UseUseExplosion.cs:24:303:24:306 | access to property Prop | UseUseExplosion.cs:24:2938:24:2943 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:303:24:306 | access to property Prop | UseUseExplosion.cs:24:2938:24:2944 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:303:24:306 | this access | UseUseExplosion.cs:24:320:24:323 | this access | | UseUseExplosion.cs:24:303:24:306 | this access | UseUseExplosion.cs:24:2938:24:2943 | this access | | UseUseExplosion.cs:24:320:24:323 | [post] this access | UseUseExplosion.cs:24:337:24:340 | this access | | UseUseExplosion.cs:24:320:24:323 | [post] this access | UseUseExplosion.cs:24:2923:24:2928 | this access | | UseUseExplosion.cs:24:320:24:323 | access to property Prop | UseUseExplosion.cs:24:320:24:328 | ... > ... | | UseUseExplosion.cs:24:320:24:323 | access to property Prop | UseUseExplosion.cs:24:337:24:340 | access to property Prop | -| UseUseExplosion.cs:24:320:24:323 | access to property Prop | UseUseExplosion.cs:24:2923:24:2928 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:320:24:323 | access to property Prop | UseUseExplosion.cs:24:2923:24:2929 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:320:24:323 | this access | UseUseExplosion.cs:24:337:24:340 | this access | | UseUseExplosion.cs:24:320:24:323 | this access | UseUseExplosion.cs:24:2923:24:2928 | this access | | UseUseExplosion.cs:24:337:24:340 | [post] this access | UseUseExplosion.cs:24:354:24:357 | this access | | UseUseExplosion.cs:24:337:24:340 | [post] this access | UseUseExplosion.cs:24:2908:24:2913 | this access | | UseUseExplosion.cs:24:337:24:340 | access to property Prop | UseUseExplosion.cs:24:337:24:345 | ... > ... | | UseUseExplosion.cs:24:337:24:340 | access to property Prop | UseUseExplosion.cs:24:354:24:357 | access to property Prop | -| UseUseExplosion.cs:24:337:24:340 | access to property Prop | UseUseExplosion.cs:24:2908:24:2913 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:337:24:340 | access to property Prop | UseUseExplosion.cs:24:2908:24:2914 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:337:24:340 | this access | UseUseExplosion.cs:24:354:24:357 | this access | | UseUseExplosion.cs:24:337:24:340 | this access | UseUseExplosion.cs:24:2908:24:2913 | this access | | UseUseExplosion.cs:24:354:24:357 | [post] this access | UseUseExplosion.cs:24:371:24:374 | this access | | UseUseExplosion.cs:24:354:24:357 | [post] this access | UseUseExplosion.cs:24:2893:24:2898 | this access | | UseUseExplosion.cs:24:354:24:357 | access to property Prop | UseUseExplosion.cs:24:354:24:362 | ... > ... | | UseUseExplosion.cs:24:354:24:357 | access to property Prop | UseUseExplosion.cs:24:371:24:374 | access to property Prop | -| UseUseExplosion.cs:24:354:24:357 | access to property Prop | UseUseExplosion.cs:24:2893:24:2898 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:354:24:357 | access to property Prop | UseUseExplosion.cs:24:2893:24:2899 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:354:24:357 | this access | UseUseExplosion.cs:24:371:24:374 | this access | | UseUseExplosion.cs:24:354:24:357 | this access | UseUseExplosion.cs:24:2893:24:2898 | this access | | UseUseExplosion.cs:24:371:24:374 | [post] this access | UseUseExplosion.cs:24:388:24:391 | this access | | UseUseExplosion.cs:24:371:24:374 | [post] this access | UseUseExplosion.cs:24:2878:24:2883 | this access | | UseUseExplosion.cs:24:371:24:374 | access to property Prop | UseUseExplosion.cs:24:371:24:379 | ... > ... | | UseUseExplosion.cs:24:371:24:374 | access to property Prop | UseUseExplosion.cs:24:388:24:391 | access to property Prop | -| UseUseExplosion.cs:24:371:24:374 | access to property Prop | UseUseExplosion.cs:24:2878:24:2883 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:371:24:374 | access to property Prop | UseUseExplosion.cs:24:2878:24:2884 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:371:24:374 | this access | UseUseExplosion.cs:24:388:24:391 | this access | | UseUseExplosion.cs:24:371:24:374 | this access | UseUseExplosion.cs:24:2878:24:2883 | this access | | UseUseExplosion.cs:24:388:24:391 | [post] this access | UseUseExplosion.cs:24:405:24:408 | this access | | UseUseExplosion.cs:24:388:24:391 | [post] this access | UseUseExplosion.cs:24:2863:24:2868 | this access | | UseUseExplosion.cs:24:388:24:391 | access to property Prop | UseUseExplosion.cs:24:388:24:396 | ... > ... | | UseUseExplosion.cs:24:388:24:391 | access to property Prop | UseUseExplosion.cs:24:405:24:408 | access to property Prop | -| UseUseExplosion.cs:24:388:24:391 | access to property Prop | UseUseExplosion.cs:24:2863:24:2868 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:388:24:391 | access to property Prop | UseUseExplosion.cs:24:2863:24:2869 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:388:24:391 | this access | UseUseExplosion.cs:24:405:24:408 | this access | | UseUseExplosion.cs:24:388:24:391 | this access | UseUseExplosion.cs:24:2863:24:2868 | this access | | UseUseExplosion.cs:24:405:24:408 | [post] this access | UseUseExplosion.cs:24:422:24:425 | this access | | UseUseExplosion.cs:24:405:24:408 | [post] this access | UseUseExplosion.cs:24:2848:24:2853 | this access | | UseUseExplosion.cs:24:405:24:408 | access to property Prop | UseUseExplosion.cs:24:405:24:413 | ... > ... | | UseUseExplosion.cs:24:405:24:408 | access to property Prop | UseUseExplosion.cs:24:422:24:425 | access to property Prop | -| UseUseExplosion.cs:24:405:24:408 | access to property Prop | UseUseExplosion.cs:24:2848:24:2853 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:405:24:408 | access to property Prop | UseUseExplosion.cs:24:2848:24:2854 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:405:24:408 | this access | UseUseExplosion.cs:24:422:24:425 | this access | | UseUseExplosion.cs:24:405:24:408 | this access | UseUseExplosion.cs:24:2848:24:2853 | this access | | UseUseExplosion.cs:24:422:24:425 | [post] this access | UseUseExplosion.cs:24:439:24:442 | this access | | UseUseExplosion.cs:24:422:24:425 | [post] this access | UseUseExplosion.cs:24:2833:24:2838 | this access | | UseUseExplosion.cs:24:422:24:425 | access to property Prop | UseUseExplosion.cs:24:422:24:430 | ... > ... | | UseUseExplosion.cs:24:422:24:425 | access to property Prop | UseUseExplosion.cs:24:439:24:442 | access to property Prop | -| UseUseExplosion.cs:24:422:24:425 | access to property Prop | UseUseExplosion.cs:24:2833:24:2838 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:422:24:425 | access to property Prop | UseUseExplosion.cs:24:2833:24:2839 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:422:24:425 | this access | UseUseExplosion.cs:24:439:24:442 | this access | | UseUseExplosion.cs:24:422:24:425 | this access | UseUseExplosion.cs:24:2833:24:2838 | this access | | UseUseExplosion.cs:24:439:24:442 | [post] this access | UseUseExplosion.cs:24:456:24:459 | this access | | UseUseExplosion.cs:24:439:24:442 | [post] this access | UseUseExplosion.cs:24:2818:24:2823 | this access | | UseUseExplosion.cs:24:439:24:442 | access to property Prop | UseUseExplosion.cs:24:439:24:447 | ... > ... | | UseUseExplosion.cs:24:439:24:442 | access to property Prop | UseUseExplosion.cs:24:456:24:459 | access to property Prop | -| UseUseExplosion.cs:24:439:24:442 | access to property Prop | UseUseExplosion.cs:24:2818:24:2823 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:439:24:442 | access to property Prop | UseUseExplosion.cs:24:2818:24:2824 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:439:24:442 | this access | UseUseExplosion.cs:24:456:24:459 | this access | | UseUseExplosion.cs:24:439:24:442 | this access | UseUseExplosion.cs:24:2818:24:2823 | this access | | UseUseExplosion.cs:24:456:24:459 | [post] this access | UseUseExplosion.cs:24:473:24:476 | this access | | UseUseExplosion.cs:24:456:24:459 | [post] this access | UseUseExplosion.cs:24:2803:24:2808 | this access | | UseUseExplosion.cs:24:456:24:459 | access to property Prop | UseUseExplosion.cs:24:456:24:464 | ... > ... | | UseUseExplosion.cs:24:456:24:459 | access to property Prop | UseUseExplosion.cs:24:473:24:476 | access to property Prop | -| UseUseExplosion.cs:24:456:24:459 | access to property Prop | UseUseExplosion.cs:24:2803:24:2808 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:456:24:459 | access to property Prop | UseUseExplosion.cs:24:2803:24:2809 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:456:24:459 | this access | UseUseExplosion.cs:24:473:24:476 | this access | | UseUseExplosion.cs:24:456:24:459 | this access | UseUseExplosion.cs:24:2803:24:2808 | this access | | UseUseExplosion.cs:24:473:24:476 | [post] this access | UseUseExplosion.cs:24:490:24:493 | this access | | UseUseExplosion.cs:24:473:24:476 | [post] this access | UseUseExplosion.cs:24:2788:24:2793 | this access | | UseUseExplosion.cs:24:473:24:476 | access to property Prop | UseUseExplosion.cs:24:473:24:481 | ... > ... | | UseUseExplosion.cs:24:473:24:476 | access to property Prop | UseUseExplosion.cs:24:490:24:493 | access to property Prop | -| UseUseExplosion.cs:24:473:24:476 | access to property Prop | UseUseExplosion.cs:24:2788:24:2793 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:473:24:476 | access to property Prop | UseUseExplosion.cs:24:2788:24:2794 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:473:24:476 | this access | UseUseExplosion.cs:24:490:24:493 | this access | | UseUseExplosion.cs:24:473:24:476 | this access | UseUseExplosion.cs:24:2788:24:2793 | this access | | UseUseExplosion.cs:24:490:24:493 | [post] this access | UseUseExplosion.cs:24:507:24:510 | this access | | UseUseExplosion.cs:24:490:24:493 | [post] this access | UseUseExplosion.cs:24:2773:24:2778 | this access | | UseUseExplosion.cs:24:490:24:493 | access to property Prop | UseUseExplosion.cs:24:490:24:498 | ... > ... | | UseUseExplosion.cs:24:490:24:493 | access to property Prop | UseUseExplosion.cs:24:507:24:510 | access to property Prop | -| UseUseExplosion.cs:24:490:24:493 | access to property Prop | UseUseExplosion.cs:24:2773:24:2778 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:490:24:493 | access to property Prop | UseUseExplosion.cs:24:2773:24:2779 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:490:24:493 | this access | UseUseExplosion.cs:24:507:24:510 | this access | | UseUseExplosion.cs:24:490:24:493 | this access | UseUseExplosion.cs:24:2773:24:2778 | this access | | UseUseExplosion.cs:24:507:24:510 | [post] this access | UseUseExplosion.cs:24:524:24:527 | this access | | UseUseExplosion.cs:24:507:24:510 | [post] this access | UseUseExplosion.cs:24:2758:24:2763 | this access | | UseUseExplosion.cs:24:507:24:510 | access to property Prop | UseUseExplosion.cs:24:507:24:515 | ... > ... | | UseUseExplosion.cs:24:507:24:510 | access to property Prop | UseUseExplosion.cs:24:524:24:527 | access to property Prop | -| UseUseExplosion.cs:24:507:24:510 | access to property Prop | UseUseExplosion.cs:24:2758:24:2763 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:507:24:510 | access to property Prop | UseUseExplosion.cs:24:2758:24:2764 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:507:24:510 | this access | UseUseExplosion.cs:24:524:24:527 | this access | | UseUseExplosion.cs:24:507:24:510 | this access | UseUseExplosion.cs:24:2758:24:2763 | this access | | UseUseExplosion.cs:24:524:24:527 | [post] this access | UseUseExplosion.cs:24:541:24:544 | this access | | UseUseExplosion.cs:24:524:24:527 | [post] this access | UseUseExplosion.cs:24:2743:24:2748 | this access | | UseUseExplosion.cs:24:524:24:527 | access to property Prop | UseUseExplosion.cs:24:524:24:532 | ... > ... | | UseUseExplosion.cs:24:524:24:527 | access to property Prop | UseUseExplosion.cs:24:541:24:544 | access to property Prop | -| UseUseExplosion.cs:24:524:24:527 | access to property Prop | UseUseExplosion.cs:24:2743:24:2748 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:524:24:527 | access to property Prop | UseUseExplosion.cs:24:2743:24:2749 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:524:24:527 | this access | UseUseExplosion.cs:24:541:24:544 | this access | | UseUseExplosion.cs:24:524:24:527 | this access | UseUseExplosion.cs:24:2743:24:2748 | this access | | UseUseExplosion.cs:24:541:24:544 | [post] this access | UseUseExplosion.cs:24:558:24:561 | this access | | UseUseExplosion.cs:24:541:24:544 | [post] this access | UseUseExplosion.cs:24:2728:24:2733 | this access | | UseUseExplosion.cs:24:541:24:544 | access to property Prop | UseUseExplosion.cs:24:541:24:549 | ... > ... | | UseUseExplosion.cs:24:541:24:544 | access to property Prop | UseUseExplosion.cs:24:558:24:561 | access to property Prop | -| UseUseExplosion.cs:24:541:24:544 | access to property Prop | UseUseExplosion.cs:24:2728:24:2733 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:541:24:544 | access to property Prop | UseUseExplosion.cs:24:2728:24:2734 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:541:24:544 | this access | UseUseExplosion.cs:24:558:24:561 | this access | | UseUseExplosion.cs:24:541:24:544 | this access | UseUseExplosion.cs:24:2728:24:2733 | this access | | UseUseExplosion.cs:24:558:24:561 | [post] this access | UseUseExplosion.cs:24:575:24:578 | this access | | UseUseExplosion.cs:24:558:24:561 | [post] this access | UseUseExplosion.cs:24:2713:24:2718 | this access | | UseUseExplosion.cs:24:558:24:561 | access to property Prop | UseUseExplosion.cs:24:558:24:566 | ... > ... | | UseUseExplosion.cs:24:558:24:561 | access to property Prop | UseUseExplosion.cs:24:575:24:578 | access to property Prop | -| UseUseExplosion.cs:24:558:24:561 | access to property Prop | UseUseExplosion.cs:24:2713:24:2718 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:558:24:561 | access to property Prop | UseUseExplosion.cs:24:2713:24:2719 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:558:24:561 | this access | UseUseExplosion.cs:24:575:24:578 | this access | | UseUseExplosion.cs:24:558:24:561 | this access | UseUseExplosion.cs:24:2713:24:2718 | this access | | UseUseExplosion.cs:24:575:24:578 | [post] this access | UseUseExplosion.cs:24:592:24:595 | this access | | UseUseExplosion.cs:24:575:24:578 | [post] this access | UseUseExplosion.cs:24:2698:24:2703 | this access | | UseUseExplosion.cs:24:575:24:578 | access to property Prop | UseUseExplosion.cs:24:575:24:583 | ... > ... | | UseUseExplosion.cs:24:575:24:578 | access to property Prop | UseUseExplosion.cs:24:592:24:595 | access to property Prop | -| UseUseExplosion.cs:24:575:24:578 | access to property Prop | UseUseExplosion.cs:24:2698:24:2703 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:575:24:578 | access to property Prop | UseUseExplosion.cs:24:2698:24:2704 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:575:24:578 | this access | UseUseExplosion.cs:24:592:24:595 | this access | | UseUseExplosion.cs:24:575:24:578 | this access | UseUseExplosion.cs:24:2698:24:2703 | this access | | UseUseExplosion.cs:24:592:24:595 | [post] this access | UseUseExplosion.cs:24:609:24:612 | this access | | UseUseExplosion.cs:24:592:24:595 | [post] this access | UseUseExplosion.cs:24:2683:24:2688 | this access | | UseUseExplosion.cs:24:592:24:595 | access to property Prop | UseUseExplosion.cs:24:592:24:600 | ... > ... | | UseUseExplosion.cs:24:592:24:595 | access to property Prop | UseUseExplosion.cs:24:609:24:612 | access to property Prop | -| UseUseExplosion.cs:24:592:24:595 | access to property Prop | UseUseExplosion.cs:24:2683:24:2688 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:592:24:595 | access to property Prop | UseUseExplosion.cs:24:2683:24:2689 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:592:24:595 | this access | UseUseExplosion.cs:24:609:24:612 | this access | | UseUseExplosion.cs:24:592:24:595 | this access | UseUseExplosion.cs:24:2683:24:2688 | this access | | UseUseExplosion.cs:24:609:24:612 | [post] this access | UseUseExplosion.cs:24:626:24:629 | this access | | UseUseExplosion.cs:24:609:24:612 | [post] this access | UseUseExplosion.cs:24:2668:24:2673 | this access | | UseUseExplosion.cs:24:609:24:612 | access to property Prop | UseUseExplosion.cs:24:609:24:617 | ... > ... | | UseUseExplosion.cs:24:609:24:612 | access to property Prop | UseUseExplosion.cs:24:626:24:629 | access to property Prop | -| UseUseExplosion.cs:24:609:24:612 | access to property Prop | UseUseExplosion.cs:24:2668:24:2673 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:609:24:612 | access to property Prop | UseUseExplosion.cs:24:2668:24:2674 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:609:24:612 | this access | UseUseExplosion.cs:24:626:24:629 | this access | | UseUseExplosion.cs:24:609:24:612 | this access | UseUseExplosion.cs:24:2668:24:2673 | this access | | UseUseExplosion.cs:24:626:24:629 | [post] this access | UseUseExplosion.cs:24:643:24:646 | this access | | UseUseExplosion.cs:24:626:24:629 | [post] this access | UseUseExplosion.cs:24:2653:24:2658 | this access | | UseUseExplosion.cs:24:626:24:629 | access to property Prop | UseUseExplosion.cs:24:626:24:634 | ... > ... | | UseUseExplosion.cs:24:626:24:629 | access to property Prop | UseUseExplosion.cs:24:643:24:646 | access to property Prop | -| UseUseExplosion.cs:24:626:24:629 | access to property Prop | UseUseExplosion.cs:24:2653:24:2658 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:626:24:629 | access to property Prop | UseUseExplosion.cs:24:2653:24:2659 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:626:24:629 | this access | UseUseExplosion.cs:24:643:24:646 | this access | | UseUseExplosion.cs:24:626:24:629 | this access | UseUseExplosion.cs:24:2653:24:2658 | this access | | UseUseExplosion.cs:24:643:24:646 | [post] this access | UseUseExplosion.cs:24:660:24:663 | this access | | UseUseExplosion.cs:24:643:24:646 | [post] this access | UseUseExplosion.cs:24:2638:24:2643 | this access | | UseUseExplosion.cs:24:643:24:646 | access to property Prop | UseUseExplosion.cs:24:643:24:651 | ... > ... | | UseUseExplosion.cs:24:643:24:646 | access to property Prop | UseUseExplosion.cs:24:660:24:663 | access to property Prop | -| UseUseExplosion.cs:24:643:24:646 | access to property Prop | UseUseExplosion.cs:24:2638:24:2643 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:643:24:646 | access to property Prop | UseUseExplosion.cs:24:2638:24:2644 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:643:24:646 | this access | UseUseExplosion.cs:24:660:24:663 | this access | | UseUseExplosion.cs:24:643:24:646 | this access | UseUseExplosion.cs:24:2638:24:2643 | this access | | UseUseExplosion.cs:24:660:24:663 | [post] this access | UseUseExplosion.cs:24:677:24:680 | this access | | UseUseExplosion.cs:24:660:24:663 | [post] this access | UseUseExplosion.cs:24:2623:24:2628 | this access | | UseUseExplosion.cs:24:660:24:663 | access to property Prop | UseUseExplosion.cs:24:660:24:668 | ... > ... | | UseUseExplosion.cs:24:660:24:663 | access to property Prop | UseUseExplosion.cs:24:677:24:680 | access to property Prop | -| UseUseExplosion.cs:24:660:24:663 | access to property Prop | UseUseExplosion.cs:24:2623:24:2628 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:660:24:663 | access to property Prop | UseUseExplosion.cs:24:2623:24:2629 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:660:24:663 | this access | UseUseExplosion.cs:24:677:24:680 | this access | | UseUseExplosion.cs:24:660:24:663 | this access | UseUseExplosion.cs:24:2623:24:2628 | this access | | UseUseExplosion.cs:24:677:24:680 | [post] this access | UseUseExplosion.cs:24:694:24:697 | this access | | UseUseExplosion.cs:24:677:24:680 | [post] this access | UseUseExplosion.cs:24:2608:24:2613 | this access | | UseUseExplosion.cs:24:677:24:680 | access to property Prop | UseUseExplosion.cs:24:677:24:685 | ... > ... | | UseUseExplosion.cs:24:677:24:680 | access to property Prop | UseUseExplosion.cs:24:694:24:697 | access to property Prop | -| UseUseExplosion.cs:24:677:24:680 | access to property Prop | UseUseExplosion.cs:24:2608:24:2613 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:677:24:680 | access to property Prop | UseUseExplosion.cs:24:2608:24:2614 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:677:24:680 | this access | UseUseExplosion.cs:24:694:24:697 | this access | | UseUseExplosion.cs:24:677:24:680 | this access | UseUseExplosion.cs:24:2608:24:2613 | this access | | UseUseExplosion.cs:24:694:24:697 | [post] this access | UseUseExplosion.cs:24:711:24:714 | this access | | UseUseExplosion.cs:24:694:24:697 | [post] this access | UseUseExplosion.cs:24:2593:24:2598 | this access | | UseUseExplosion.cs:24:694:24:697 | access to property Prop | UseUseExplosion.cs:24:694:24:702 | ... > ... | | UseUseExplosion.cs:24:694:24:697 | access to property Prop | UseUseExplosion.cs:24:711:24:714 | access to property Prop | -| UseUseExplosion.cs:24:694:24:697 | access to property Prop | UseUseExplosion.cs:24:2593:24:2598 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:694:24:697 | access to property Prop | UseUseExplosion.cs:24:2593:24:2599 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:694:24:697 | this access | UseUseExplosion.cs:24:711:24:714 | this access | | UseUseExplosion.cs:24:694:24:697 | this access | UseUseExplosion.cs:24:2593:24:2598 | this access | | UseUseExplosion.cs:24:711:24:714 | [post] this access | UseUseExplosion.cs:24:728:24:731 | this access | | UseUseExplosion.cs:24:711:24:714 | [post] this access | UseUseExplosion.cs:24:2578:24:2583 | this access | | UseUseExplosion.cs:24:711:24:714 | access to property Prop | UseUseExplosion.cs:24:711:24:719 | ... > ... | | UseUseExplosion.cs:24:711:24:714 | access to property Prop | UseUseExplosion.cs:24:728:24:731 | access to property Prop | -| UseUseExplosion.cs:24:711:24:714 | access to property Prop | UseUseExplosion.cs:24:2578:24:2583 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:711:24:714 | access to property Prop | UseUseExplosion.cs:24:2578:24:2584 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:711:24:714 | this access | UseUseExplosion.cs:24:728:24:731 | this access | | UseUseExplosion.cs:24:711:24:714 | this access | UseUseExplosion.cs:24:2578:24:2583 | this access | | UseUseExplosion.cs:24:728:24:731 | [post] this access | UseUseExplosion.cs:24:745:24:748 | this access | | UseUseExplosion.cs:24:728:24:731 | [post] this access | UseUseExplosion.cs:24:2563:24:2568 | this access | | UseUseExplosion.cs:24:728:24:731 | access to property Prop | UseUseExplosion.cs:24:728:24:736 | ... > ... | | UseUseExplosion.cs:24:728:24:731 | access to property Prop | UseUseExplosion.cs:24:745:24:748 | access to property Prop | -| UseUseExplosion.cs:24:728:24:731 | access to property Prop | UseUseExplosion.cs:24:2563:24:2568 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:728:24:731 | access to property Prop | UseUseExplosion.cs:24:2563:24:2569 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:728:24:731 | this access | UseUseExplosion.cs:24:745:24:748 | this access | | UseUseExplosion.cs:24:728:24:731 | this access | UseUseExplosion.cs:24:2563:24:2568 | this access | | UseUseExplosion.cs:24:745:24:748 | [post] this access | UseUseExplosion.cs:24:762:24:765 | this access | | UseUseExplosion.cs:24:745:24:748 | [post] this access | UseUseExplosion.cs:24:2548:24:2553 | this access | | UseUseExplosion.cs:24:745:24:748 | access to property Prop | UseUseExplosion.cs:24:745:24:753 | ... > ... | | UseUseExplosion.cs:24:745:24:748 | access to property Prop | UseUseExplosion.cs:24:762:24:765 | access to property Prop | -| UseUseExplosion.cs:24:745:24:748 | access to property Prop | UseUseExplosion.cs:24:2548:24:2553 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:745:24:748 | access to property Prop | UseUseExplosion.cs:24:2548:24:2554 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:745:24:748 | this access | UseUseExplosion.cs:24:762:24:765 | this access | | UseUseExplosion.cs:24:745:24:748 | this access | UseUseExplosion.cs:24:2548:24:2553 | this access | | UseUseExplosion.cs:24:762:24:765 | [post] this access | UseUseExplosion.cs:24:779:24:782 | this access | | UseUseExplosion.cs:24:762:24:765 | [post] this access | UseUseExplosion.cs:24:2533:24:2538 | this access | | UseUseExplosion.cs:24:762:24:765 | access to property Prop | UseUseExplosion.cs:24:762:24:770 | ... > ... | | UseUseExplosion.cs:24:762:24:765 | access to property Prop | UseUseExplosion.cs:24:779:24:782 | access to property Prop | -| UseUseExplosion.cs:24:762:24:765 | access to property Prop | UseUseExplosion.cs:24:2533:24:2538 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:762:24:765 | access to property Prop | UseUseExplosion.cs:24:2533:24:2539 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:762:24:765 | this access | UseUseExplosion.cs:24:779:24:782 | this access | | UseUseExplosion.cs:24:762:24:765 | this access | UseUseExplosion.cs:24:2533:24:2538 | this access | | UseUseExplosion.cs:24:779:24:782 | [post] this access | UseUseExplosion.cs:24:796:24:799 | this access | | UseUseExplosion.cs:24:779:24:782 | [post] this access | UseUseExplosion.cs:24:2518:24:2523 | this access | | UseUseExplosion.cs:24:779:24:782 | access to property Prop | UseUseExplosion.cs:24:779:24:787 | ... > ... | | UseUseExplosion.cs:24:779:24:782 | access to property Prop | UseUseExplosion.cs:24:796:24:799 | access to property Prop | -| UseUseExplosion.cs:24:779:24:782 | access to property Prop | UseUseExplosion.cs:24:2518:24:2523 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:779:24:782 | access to property Prop | UseUseExplosion.cs:24:2518:24:2524 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:779:24:782 | this access | UseUseExplosion.cs:24:796:24:799 | this access | | UseUseExplosion.cs:24:779:24:782 | this access | UseUseExplosion.cs:24:2518:24:2523 | this access | | UseUseExplosion.cs:24:796:24:799 | [post] this access | UseUseExplosion.cs:24:813:24:816 | this access | | UseUseExplosion.cs:24:796:24:799 | [post] this access | UseUseExplosion.cs:24:2503:24:2508 | this access | | UseUseExplosion.cs:24:796:24:799 | access to property Prop | UseUseExplosion.cs:24:796:24:804 | ... > ... | | UseUseExplosion.cs:24:796:24:799 | access to property Prop | UseUseExplosion.cs:24:813:24:816 | access to property Prop | -| UseUseExplosion.cs:24:796:24:799 | access to property Prop | UseUseExplosion.cs:24:2503:24:2508 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:796:24:799 | access to property Prop | UseUseExplosion.cs:24:2503:24:2509 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:796:24:799 | this access | UseUseExplosion.cs:24:813:24:816 | this access | | UseUseExplosion.cs:24:796:24:799 | this access | UseUseExplosion.cs:24:2503:24:2508 | this access | | UseUseExplosion.cs:24:813:24:816 | [post] this access | UseUseExplosion.cs:24:830:24:833 | this access | | UseUseExplosion.cs:24:813:24:816 | [post] this access | UseUseExplosion.cs:24:2488:24:2493 | this access | | UseUseExplosion.cs:24:813:24:816 | access to property Prop | UseUseExplosion.cs:24:813:24:821 | ... > ... | | UseUseExplosion.cs:24:813:24:816 | access to property Prop | UseUseExplosion.cs:24:830:24:833 | access to property Prop | -| UseUseExplosion.cs:24:813:24:816 | access to property Prop | UseUseExplosion.cs:24:2488:24:2493 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:813:24:816 | access to property Prop | UseUseExplosion.cs:24:2488:24:2494 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:813:24:816 | this access | UseUseExplosion.cs:24:830:24:833 | this access | | UseUseExplosion.cs:24:813:24:816 | this access | UseUseExplosion.cs:24:2488:24:2493 | this access | | UseUseExplosion.cs:24:830:24:833 | [post] this access | UseUseExplosion.cs:24:847:24:850 | this access | | UseUseExplosion.cs:24:830:24:833 | [post] this access | UseUseExplosion.cs:24:2473:24:2478 | this access | | UseUseExplosion.cs:24:830:24:833 | access to property Prop | UseUseExplosion.cs:24:830:24:838 | ... > ... | | UseUseExplosion.cs:24:830:24:833 | access to property Prop | UseUseExplosion.cs:24:847:24:850 | access to property Prop | -| UseUseExplosion.cs:24:830:24:833 | access to property Prop | UseUseExplosion.cs:24:2473:24:2478 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:830:24:833 | access to property Prop | UseUseExplosion.cs:24:2473:24:2479 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:830:24:833 | this access | UseUseExplosion.cs:24:847:24:850 | this access | | UseUseExplosion.cs:24:830:24:833 | this access | UseUseExplosion.cs:24:2473:24:2478 | this access | | UseUseExplosion.cs:24:847:24:850 | [post] this access | UseUseExplosion.cs:24:864:24:867 | this access | | UseUseExplosion.cs:24:847:24:850 | [post] this access | UseUseExplosion.cs:24:2458:24:2463 | this access | | UseUseExplosion.cs:24:847:24:850 | access to property Prop | UseUseExplosion.cs:24:847:24:855 | ... > ... | | UseUseExplosion.cs:24:847:24:850 | access to property Prop | UseUseExplosion.cs:24:864:24:867 | access to property Prop | -| UseUseExplosion.cs:24:847:24:850 | access to property Prop | UseUseExplosion.cs:24:2458:24:2463 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:847:24:850 | access to property Prop | UseUseExplosion.cs:24:2458:24:2464 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:847:24:850 | this access | UseUseExplosion.cs:24:864:24:867 | this access | | UseUseExplosion.cs:24:847:24:850 | this access | UseUseExplosion.cs:24:2458:24:2463 | this access | | UseUseExplosion.cs:24:864:24:867 | [post] this access | UseUseExplosion.cs:24:881:24:884 | this access | | UseUseExplosion.cs:24:864:24:867 | [post] this access | UseUseExplosion.cs:24:2443:24:2448 | this access | | UseUseExplosion.cs:24:864:24:867 | access to property Prop | UseUseExplosion.cs:24:864:24:872 | ... > ... | | UseUseExplosion.cs:24:864:24:867 | access to property Prop | UseUseExplosion.cs:24:881:24:884 | access to property Prop | -| UseUseExplosion.cs:24:864:24:867 | access to property Prop | UseUseExplosion.cs:24:2443:24:2448 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:864:24:867 | access to property Prop | UseUseExplosion.cs:24:2443:24:2449 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:864:24:867 | this access | UseUseExplosion.cs:24:881:24:884 | this access | | UseUseExplosion.cs:24:864:24:867 | this access | UseUseExplosion.cs:24:2443:24:2448 | this access | | UseUseExplosion.cs:24:881:24:884 | [post] this access | UseUseExplosion.cs:24:898:24:901 | this access | | UseUseExplosion.cs:24:881:24:884 | [post] this access | UseUseExplosion.cs:24:2428:24:2433 | this access | | UseUseExplosion.cs:24:881:24:884 | access to property Prop | UseUseExplosion.cs:24:881:24:889 | ... > ... | | UseUseExplosion.cs:24:881:24:884 | access to property Prop | UseUseExplosion.cs:24:898:24:901 | access to property Prop | -| UseUseExplosion.cs:24:881:24:884 | access to property Prop | UseUseExplosion.cs:24:2428:24:2433 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:881:24:884 | access to property Prop | UseUseExplosion.cs:24:2428:24:2434 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:881:24:884 | this access | UseUseExplosion.cs:24:898:24:901 | this access | | UseUseExplosion.cs:24:881:24:884 | this access | UseUseExplosion.cs:24:2428:24:2433 | this access | | UseUseExplosion.cs:24:898:24:901 | [post] this access | UseUseExplosion.cs:24:915:24:918 | this access | | UseUseExplosion.cs:24:898:24:901 | [post] this access | UseUseExplosion.cs:24:2413:24:2418 | this access | | UseUseExplosion.cs:24:898:24:901 | access to property Prop | UseUseExplosion.cs:24:898:24:906 | ... > ... | | UseUseExplosion.cs:24:898:24:901 | access to property Prop | UseUseExplosion.cs:24:915:24:918 | access to property Prop | -| UseUseExplosion.cs:24:898:24:901 | access to property Prop | UseUseExplosion.cs:24:2413:24:2418 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:898:24:901 | access to property Prop | UseUseExplosion.cs:24:2413:24:2419 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:898:24:901 | this access | UseUseExplosion.cs:24:915:24:918 | this access | | UseUseExplosion.cs:24:898:24:901 | this access | UseUseExplosion.cs:24:2413:24:2418 | this access | | UseUseExplosion.cs:24:915:24:918 | [post] this access | UseUseExplosion.cs:24:932:24:935 | this access | | UseUseExplosion.cs:24:915:24:918 | [post] this access | UseUseExplosion.cs:24:2398:24:2403 | this access | | UseUseExplosion.cs:24:915:24:918 | access to property Prop | UseUseExplosion.cs:24:915:24:923 | ... > ... | | UseUseExplosion.cs:24:915:24:918 | access to property Prop | UseUseExplosion.cs:24:932:24:935 | access to property Prop | -| UseUseExplosion.cs:24:915:24:918 | access to property Prop | UseUseExplosion.cs:24:2398:24:2403 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:915:24:918 | access to property Prop | UseUseExplosion.cs:24:2398:24:2404 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:915:24:918 | this access | UseUseExplosion.cs:24:932:24:935 | this access | | UseUseExplosion.cs:24:915:24:918 | this access | UseUseExplosion.cs:24:2398:24:2403 | this access | | UseUseExplosion.cs:24:932:24:935 | [post] this access | UseUseExplosion.cs:24:949:24:952 | this access | | UseUseExplosion.cs:24:932:24:935 | [post] this access | UseUseExplosion.cs:24:2383:24:2388 | this access | | UseUseExplosion.cs:24:932:24:935 | access to property Prop | UseUseExplosion.cs:24:932:24:940 | ... > ... | | UseUseExplosion.cs:24:932:24:935 | access to property Prop | UseUseExplosion.cs:24:949:24:952 | access to property Prop | -| UseUseExplosion.cs:24:932:24:935 | access to property Prop | UseUseExplosion.cs:24:2383:24:2388 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:932:24:935 | access to property Prop | UseUseExplosion.cs:24:2383:24:2389 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:932:24:935 | this access | UseUseExplosion.cs:24:949:24:952 | this access | | UseUseExplosion.cs:24:932:24:935 | this access | UseUseExplosion.cs:24:2383:24:2388 | this access | | UseUseExplosion.cs:24:949:24:952 | [post] this access | UseUseExplosion.cs:24:966:24:969 | this access | | UseUseExplosion.cs:24:949:24:952 | [post] this access | UseUseExplosion.cs:24:2368:24:2373 | this access | | UseUseExplosion.cs:24:949:24:952 | access to property Prop | UseUseExplosion.cs:24:949:24:957 | ... > ... | | UseUseExplosion.cs:24:949:24:952 | access to property Prop | UseUseExplosion.cs:24:966:24:969 | access to property Prop | -| UseUseExplosion.cs:24:949:24:952 | access to property Prop | UseUseExplosion.cs:24:2368:24:2373 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:949:24:952 | access to property Prop | UseUseExplosion.cs:24:2368:24:2374 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:949:24:952 | this access | UseUseExplosion.cs:24:966:24:969 | this access | | UseUseExplosion.cs:24:949:24:952 | this access | UseUseExplosion.cs:24:2368:24:2373 | this access | | UseUseExplosion.cs:24:966:24:969 | [post] this access | UseUseExplosion.cs:24:983:24:986 | this access | | UseUseExplosion.cs:24:966:24:969 | [post] this access | UseUseExplosion.cs:24:2353:24:2358 | this access | | UseUseExplosion.cs:24:966:24:969 | access to property Prop | UseUseExplosion.cs:24:966:24:974 | ... > ... | | UseUseExplosion.cs:24:966:24:969 | access to property Prop | UseUseExplosion.cs:24:983:24:986 | access to property Prop | -| UseUseExplosion.cs:24:966:24:969 | access to property Prop | UseUseExplosion.cs:24:2353:24:2358 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:966:24:969 | access to property Prop | UseUseExplosion.cs:24:2353:24:2359 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:966:24:969 | this access | UseUseExplosion.cs:24:983:24:986 | this access | | UseUseExplosion.cs:24:966:24:969 | this access | UseUseExplosion.cs:24:2353:24:2358 | this access | | UseUseExplosion.cs:24:983:24:986 | [post] this access | UseUseExplosion.cs:24:1000:24:1003 | this access | | UseUseExplosion.cs:24:983:24:986 | [post] this access | UseUseExplosion.cs:24:2338:24:2343 | this access | | UseUseExplosion.cs:24:983:24:986 | access to property Prop | UseUseExplosion.cs:24:983:24:991 | ... > ... | | UseUseExplosion.cs:24:983:24:986 | access to property Prop | UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | -| UseUseExplosion.cs:24:983:24:986 | access to property Prop | UseUseExplosion.cs:24:2338:24:2343 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:983:24:986 | access to property Prop | UseUseExplosion.cs:24:2338:24:2344 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:983:24:986 | this access | UseUseExplosion.cs:24:1000:24:1003 | this access | | UseUseExplosion.cs:24:983:24:986 | this access | UseUseExplosion.cs:24:2338:24:2343 | this access | | UseUseExplosion.cs:24:1000:24:1003 | [post] this access | UseUseExplosion.cs:24:1017:24:1020 | this access | | UseUseExplosion.cs:24:1000:24:1003 | [post] this access | UseUseExplosion.cs:24:2323:24:2328 | this access | | UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | UseUseExplosion.cs:24:1000:24:1008 | ... > ... | | UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | -| UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | UseUseExplosion.cs:24:2323:24:2328 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1000:24:1003 | access to property Prop | UseUseExplosion.cs:24:2323:24:2329 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1000:24:1003 | this access | UseUseExplosion.cs:24:1017:24:1020 | this access | | UseUseExplosion.cs:24:1000:24:1003 | this access | UseUseExplosion.cs:24:2323:24:2328 | this access | | UseUseExplosion.cs:24:1017:24:1020 | [post] this access | UseUseExplosion.cs:24:1034:24:1037 | this access | | UseUseExplosion.cs:24:1017:24:1020 | [post] this access | UseUseExplosion.cs:24:2308:24:2313 | this access | | UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | UseUseExplosion.cs:24:1017:24:1025 | ... > ... | | UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | -| UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | UseUseExplosion.cs:24:2308:24:2313 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1017:24:1020 | access to property Prop | UseUseExplosion.cs:24:2308:24:2314 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1017:24:1020 | this access | UseUseExplosion.cs:24:1034:24:1037 | this access | | UseUseExplosion.cs:24:1017:24:1020 | this access | UseUseExplosion.cs:24:2308:24:2313 | this access | | UseUseExplosion.cs:24:1034:24:1037 | [post] this access | UseUseExplosion.cs:24:1051:24:1054 | this access | | UseUseExplosion.cs:24:1034:24:1037 | [post] this access | UseUseExplosion.cs:24:2293:24:2298 | this access | | UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | UseUseExplosion.cs:24:1034:24:1042 | ... > ... | | UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | -| UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | UseUseExplosion.cs:24:2293:24:2298 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1034:24:1037 | access to property Prop | UseUseExplosion.cs:24:2293:24:2299 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1034:24:1037 | this access | UseUseExplosion.cs:24:1051:24:1054 | this access | | UseUseExplosion.cs:24:1034:24:1037 | this access | UseUseExplosion.cs:24:2293:24:2298 | this access | | UseUseExplosion.cs:24:1051:24:1054 | [post] this access | UseUseExplosion.cs:24:1068:24:1071 | this access | | UseUseExplosion.cs:24:1051:24:1054 | [post] this access | UseUseExplosion.cs:24:2278:24:2283 | this access | | UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | UseUseExplosion.cs:24:1051:24:1059 | ... > ... | | UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | -| UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | UseUseExplosion.cs:24:2278:24:2283 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1051:24:1054 | access to property Prop | UseUseExplosion.cs:24:2278:24:2284 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1051:24:1054 | this access | UseUseExplosion.cs:24:1068:24:1071 | this access | | UseUseExplosion.cs:24:1051:24:1054 | this access | UseUseExplosion.cs:24:2278:24:2283 | this access | | UseUseExplosion.cs:24:1068:24:1071 | [post] this access | UseUseExplosion.cs:24:1085:24:1088 | this access | | UseUseExplosion.cs:24:1068:24:1071 | [post] this access | UseUseExplosion.cs:24:2263:24:2268 | this access | | UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | UseUseExplosion.cs:24:1068:24:1076 | ... > ... | | UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | -| UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | UseUseExplosion.cs:24:2263:24:2268 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1068:24:1071 | access to property Prop | UseUseExplosion.cs:24:2263:24:2269 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1068:24:1071 | this access | UseUseExplosion.cs:24:1085:24:1088 | this access | | UseUseExplosion.cs:24:1068:24:1071 | this access | UseUseExplosion.cs:24:2263:24:2268 | this access | | UseUseExplosion.cs:24:1085:24:1088 | [post] this access | UseUseExplosion.cs:24:1102:24:1105 | this access | | UseUseExplosion.cs:24:1085:24:1088 | [post] this access | UseUseExplosion.cs:24:2248:24:2253 | this access | | UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | UseUseExplosion.cs:24:1085:24:1093 | ... > ... | | UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | -| UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | UseUseExplosion.cs:24:2248:24:2253 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1085:24:1088 | access to property Prop | UseUseExplosion.cs:24:2248:24:2254 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1085:24:1088 | this access | UseUseExplosion.cs:24:1102:24:1105 | this access | | UseUseExplosion.cs:24:1085:24:1088 | this access | UseUseExplosion.cs:24:2248:24:2253 | this access | | UseUseExplosion.cs:24:1102:24:1105 | [post] this access | UseUseExplosion.cs:24:1119:24:1122 | this access | | UseUseExplosion.cs:24:1102:24:1105 | [post] this access | UseUseExplosion.cs:24:2233:24:2238 | this access | | UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | UseUseExplosion.cs:24:1102:24:1110 | ... > ... | | UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | -| UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | UseUseExplosion.cs:24:2233:24:2238 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1102:24:1105 | access to property Prop | UseUseExplosion.cs:24:2233:24:2239 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1102:24:1105 | this access | UseUseExplosion.cs:24:1119:24:1122 | this access | | UseUseExplosion.cs:24:1102:24:1105 | this access | UseUseExplosion.cs:24:2233:24:2238 | this access | | UseUseExplosion.cs:24:1119:24:1122 | [post] this access | UseUseExplosion.cs:24:1136:24:1139 | this access | | UseUseExplosion.cs:24:1119:24:1122 | [post] this access | UseUseExplosion.cs:24:2218:24:2223 | this access | | UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | UseUseExplosion.cs:24:1119:24:1127 | ... > ... | | UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | -| UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | UseUseExplosion.cs:24:2218:24:2223 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1119:24:1122 | access to property Prop | UseUseExplosion.cs:24:2218:24:2224 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1119:24:1122 | this access | UseUseExplosion.cs:24:1136:24:1139 | this access | | UseUseExplosion.cs:24:1119:24:1122 | this access | UseUseExplosion.cs:24:2218:24:2223 | this access | | UseUseExplosion.cs:24:1136:24:1139 | [post] this access | UseUseExplosion.cs:24:1153:24:1156 | this access | | UseUseExplosion.cs:24:1136:24:1139 | [post] this access | UseUseExplosion.cs:24:2203:24:2208 | this access | | UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | UseUseExplosion.cs:24:1136:24:1144 | ... > ... | | UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | -| UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | UseUseExplosion.cs:24:2203:24:2208 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1136:24:1139 | access to property Prop | UseUseExplosion.cs:24:2203:24:2209 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1136:24:1139 | this access | UseUseExplosion.cs:24:1153:24:1156 | this access | | UseUseExplosion.cs:24:1136:24:1139 | this access | UseUseExplosion.cs:24:2203:24:2208 | this access | | UseUseExplosion.cs:24:1153:24:1156 | [post] this access | UseUseExplosion.cs:24:1170:24:1173 | this access | | UseUseExplosion.cs:24:1153:24:1156 | [post] this access | UseUseExplosion.cs:24:2188:24:2193 | this access | | UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | UseUseExplosion.cs:24:1153:24:1161 | ... > ... | | UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | -| UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | UseUseExplosion.cs:24:2188:24:2193 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1153:24:1156 | access to property Prop | UseUseExplosion.cs:24:2188:24:2194 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1153:24:1156 | this access | UseUseExplosion.cs:24:1170:24:1173 | this access | | UseUseExplosion.cs:24:1153:24:1156 | this access | UseUseExplosion.cs:24:2188:24:2193 | this access | | UseUseExplosion.cs:24:1170:24:1173 | [post] this access | UseUseExplosion.cs:24:1187:24:1190 | this access | | UseUseExplosion.cs:24:1170:24:1173 | [post] this access | UseUseExplosion.cs:24:2173:24:2178 | this access | | UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | UseUseExplosion.cs:24:1170:24:1178 | ... > ... | | UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | -| UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | UseUseExplosion.cs:24:2173:24:2178 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1170:24:1173 | access to property Prop | UseUseExplosion.cs:24:2173:24:2179 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1170:24:1173 | this access | UseUseExplosion.cs:24:1187:24:1190 | this access | | UseUseExplosion.cs:24:1170:24:1173 | this access | UseUseExplosion.cs:24:2173:24:2178 | this access | | UseUseExplosion.cs:24:1187:24:1190 | [post] this access | UseUseExplosion.cs:24:1204:24:1207 | this access | | UseUseExplosion.cs:24:1187:24:1190 | [post] this access | UseUseExplosion.cs:24:2158:24:2163 | this access | | UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | UseUseExplosion.cs:24:1187:24:1195 | ... > ... | | UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | -| UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | UseUseExplosion.cs:24:2158:24:2163 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1187:24:1190 | access to property Prop | UseUseExplosion.cs:24:2158:24:2164 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1187:24:1190 | this access | UseUseExplosion.cs:24:1204:24:1207 | this access | | UseUseExplosion.cs:24:1187:24:1190 | this access | UseUseExplosion.cs:24:2158:24:2163 | this access | | UseUseExplosion.cs:24:1204:24:1207 | [post] this access | UseUseExplosion.cs:24:1221:24:1224 | this access | | UseUseExplosion.cs:24:1204:24:1207 | [post] this access | UseUseExplosion.cs:24:2143:24:2148 | this access | | UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | UseUseExplosion.cs:24:1204:24:1212 | ... > ... | | UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | -| UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | UseUseExplosion.cs:24:2143:24:2148 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1204:24:1207 | access to property Prop | UseUseExplosion.cs:24:2143:24:2149 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1204:24:1207 | this access | UseUseExplosion.cs:24:1221:24:1224 | this access | | UseUseExplosion.cs:24:1204:24:1207 | this access | UseUseExplosion.cs:24:2143:24:2148 | this access | | UseUseExplosion.cs:24:1221:24:1224 | [post] this access | UseUseExplosion.cs:24:1238:24:1241 | this access | | UseUseExplosion.cs:24:1221:24:1224 | [post] this access | UseUseExplosion.cs:24:2128:24:2133 | this access | | UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | UseUseExplosion.cs:24:1221:24:1229 | ... > ... | | UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | -| UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | UseUseExplosion.cs:24:2128:24:2133 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1221:24:1224 | access to property Prop | UseUseExplosion.cs:24:2128:24:2134 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1221:24:1224 | this access | UseUseExplosion.cs:24:1238:24:1241 | this access | | UseUseExplosion.cs:24:1221:24:1224 | this access | UseUseExplosion.cs:24:2128:24:2133 | this access | | UseUseExplosion.cs:24:1238:24:1241 | [post] this access | UseUseExplosion.cs:24:1255:24:1258 | this access | | UseUseExplosion.cs:24:1238:24:1241 | [post] this access | UseUseExplosion.cs:24:2113:24:2118 | this access | | UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | UseUseExplosion.cs:24:1238:24:1246 | ... > ... | | UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | -| UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | UseUseExplosion.cs:24:2113:24:2118 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1238:24:1241 | access to property Prop | UseUseExplosion.cs:24:2113:24:2119 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1238:24:1241 | this access | UseUseExplosion.cs:24:1255:24:1258 | this access | | UseUseExplosion.cs:24:1238:24:1241 | this access | UseUseExplosion.cs:24:2113:24:2118 | this access | | UseUseExplosion.cs:24:1255:24:1258 | [post] this access | UseUseExplosion.cs:24:1272:24:1275 | this access | | UseUseExplosion.cs:24:1255:24:1258 | [post] this access | UseUseExplosion.cs:24:2098:24:2103 | this access | | UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | UseUseExplosion.cs:24:1255:24:1263 | ... > ... | | UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | -| UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | UseUseExplosion.cs:24:2098:24:2103 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1255:24:1258 | access to property Prop | UseUseExplosion.cs:24:2098:24:2104 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1255:24:1258 | this access | UseUseExplosion.cs:24:1272:24:1275 | this access | | UseUseExplosion.cs:24:1255:24:1258 | this access | UseUseExplosion.cs:24:2098:24:2103 | this access | | UseUseExplosion.cs:24:1272:24:1275 | [post] this access | UseUseExplosion.cs:24:1289:24:1292 | this access | | UseUseExplosion.cs:24:1272:24:1275 | [post] this access | UseUseExplosion.cs:24:2083:24:2088 | this access | | UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | UseUseExplosion.cs:24:1272:24:1280 | ... > ... | | UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | -| UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | UseUseExplosion.cs:24:2083:24:2088 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1272:24:1275 | access to property Prop | UseUseExplosion.cs:24:2083:24:2089 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1272:24:1275 | this access | UseUseExplosion.cs:24:1289:24:1292 | this access | | UseUseExplosion.cs:24:1272:24:1275 | this access | UseUseExplosion.cs:24:2083:24:2088 | this access | | UseUseExplosion.cs:24:1289:24:1292 | [post] this access | UseUseExplosion.cs:24:1306:24:1309 | this access | | UseUseExplosion.cs:24:1289:24:1292 | [post] this access | UseUseExplosion.cs:24:2068:24:2073 | this access | | UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | UseUseExplosion.cs:24:1289:24:1297 | ... > ... | | UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | -| UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | UseUseExplosion.cs:24:2068:24:2073 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1289:24:1292 | access to property Prop | UseUseExplosion.cs:24:2068:24:2074 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1289:24:1292 | this access | UseUseExplosion.cs:24:1306:24:1309 | this access | | UseUseExplosion.cs:24:1289:24:1292 | this access | UseUseExplosion.cs:24:2068:24:2073 | this access | | UseUseExplosion.cs:24:1306:24:1309 | [post] this access | UseUseExplosion.cs:24:1323:24:1326 | this access | | UseUseExplosion.cs:24:1306:24:1309 | [post] this access | UseUseExplosion.cs:24:2053:24:2058 | this access | | UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | UseUseExplosion.cs:24:1306:24:1314 | ... > ... | | UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | -| UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | UseUseExplosion.cs:24:2053:24:2058 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1306:24:1309 | access to property Prop | UseUseExplosion.cs:24:2053:24:2059 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1306:24:1309 | this access | UseUseExplosion.cs:24:1323:24:1326 | this access | | UseUseExplosion.cs:24:1306:24:1309 | this access | UseUseExplosion.cs:24:2053:24:2058 | this access | | UseUseExplosion.cs:24:1323:24:1326 | [post] this access | UseUseExplosion.cs:24:1340:24:1343 | this access | | UseUseExplosion.cs:24:1323:24:1326 | [post] this access | UseUseExplosion.cs:24:2038:24:2043 | this access | | UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | UseUseExplosion.cs:24:1323:24:1331 | ... > ... | | UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | -| UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | UseUseExplosion.cs:24:2038:24:2043 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1323:24:1326 | access to property Prop | UseUseExplosion.cs:24:2038:24:2044 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1323:24:1326 | this access | UseUseExplosion.cs:24:1340:24:1343 | this access | | UseUseExplosion.cs:24:1323:24:1326 | this access | UseUseExplosion.cs:24:2038:24:2043 | this access | | UseUseExplosion.cs:24:1340:24:1343 | [post] this access | UseUseExplosion.cs:24:1357:24:1360 | this access | | UseUseExplosion.cs:24:1340:24:1343 | [post] this access | UseUseExplosion.cs:24:2023:24:2028 | this access | | UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | UseUseExplosion.cs:24:1340:24:1348 | ... > ... | | UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | -| UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | UseUseExplosion.cs:24:2023:24:2028 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1340:24:1343 | access to property Prop | UseUseExplosion.cs:24:2023:24:2029 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1340:24:1343 | this access | UseUseExplosion.cs:24:1357:24:1360 | this access | | UseUseExplosion.cs:24:1340:24:1343 | this access | UseUseExplosion.cs:24:2023:24:2028 | this access | | UseUseExplosion.cs:24:1357:24:1360 | [post] this access | UseUseExplosion.cs:24:1374:24:1377 | this access | | UseUseExplosion.cs:24:1357:24:1360 | [post] this access | UseUseExplosion.cs:24:2008:24:2013 | this access | | UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | UseUseExplosion.cs:24:1357:24:1365 | ... > ... | | UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | -| UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | UseUseExplosion.cs:24:2008:24:2013 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1357:24:1360 | access to property Prop | UseUseExplosion.cs:24:2008:24:2014 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1357:24:1360 | this access | UseUseExplosion.cs:24:1374:24:1377 | this access | | UseUseExplosion.cs:24:1357:24:1360 | this access | UseUseExplosion.cs:24:2008:24:2013 | this access | | UseUseExplosion.cs:24:1374:24:1377 | [post] this access | UseUseExplosion.cs:24:1391:24:1394 | this access | | UseUseExplosion.cs:24:1374:24:1377 | [post] this access | UseUseExplosion.cs:24:1993:24:1998 | this access | | UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | UseUseExplosion.cs:24:1374:24:1382 | ... > ... | | UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | -| UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | UseUseExplosion.cs:24:1993:24:1998 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1374:24:1377 | access to property Prop | UseUseExplosion.cs:24:1993:24:1999 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1374:24:1377 | this access | UseUseExplosion.cs:24:1391:24:1394 | this access | | UseUseExplosion.cs:24:1374:24:1377 | this access | UseUseExplosion.cs:24:1993:24:1998 | this access | | UseUseExplosion.cs:24:1391:24:1394 | [post] this access | UseUseExplosion.cs:24:1408:24:1411 | this access | | UseUseExplosion.cs:24:1391:24:1394 | [post] this access | UseUseExplosion.cs:24:1978:24:1983 | this access | | UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | UseUseExplosion.cs:24:1391:24:1399 | ... > ... | | UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | -| UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | UseUseExplosion.cs:24:1978:24:1983 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1391:24:1394 | access to property Prop | UseUseExplosion.cs:24:1978:24:1984 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1391:24:1394 | this access | UseUseExplosion.cs:24:1408:24:1411 | this access | | UseUseExplosion.cs:24:1391:24:1394 | this access | UseUseExplosion.cs:24:1978:24:1983 | this access | | UseUseExplosion.cs:24:1408:24:1411 | [post] this access | UseUseExplosion.cs:24:1425:24:1428 | this access | | UseUseExplosion.cs:24:1408:24:1411 | [post] this access | UseUseExplosion.cs:24:1963:24:1968 | this access | | UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | UseUseExplosion.cs:24:1408:24:1416 | ... > ... | | UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | -| UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | UseUseExplosion.cs:24:1963:24:1968 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1408:24:1411 | access to property Prop | UseUseExplosion.cs:24:1963:24:1969 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1408:24:1411 | this access | UseUseExplosion.cs:24:1425:24:1428 | this access | | UseUseExplosion.cs:24:1408:24:1411 | this access | UseUseExplosion.cs:24:1963:24:1968 | this access | | UseUseExplosion.cs:24:1425:24:1428 | [post] this access | UseUseExplosion.cs:24:1442:24:1445 | this access | | UseUseExplosion.cs:24:1425:24:1428 | [post] this access | UseUseExplosion.cs:24:1948:24:1953 | this access | | UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | UseUseExplosion.cs:24:1425:24:1433 | ... > ... | | UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | -| UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | UseUseExplosion.cs:24:1948:24:1953 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1425:24:1428 | access to property Prop | UseUseExplosion.cs:24:1948:24:1954 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1425:24:1428 | this access | UseUseExplosion.cs:24:1442:24:1445 | this access | | UseUseExplosion.cs:24:1425:24:1428 | this access | UseUseExplosion.cs:24:1948:24:1953 | this access | | UseUseExplosion.cs:24:1442:24:1445 | [post] this access | UseUseExplosion.cs:24:1459:24:1462 | this access | | UseUseExplosion.cs:24:1442:24:1445 | [post] this access | UseUseExplosion.cs:24:1933:24:1938 | this access | | UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | UseUseExplosion.cs:24:1442:24:1450 | ... > ... | | UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | -| UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | UseUseExplosion.cs:24:1933:24:1938 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1442:24:1445 | access to property Prop | UseUseExplosion.cs:24:1933:24:1939 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1442:24:1445 | this access | UseUseExplosion.cs:24:1459:24:1462 | this access | | UseUseExplosion.cs:24:1442:24:1445 | this access | UseUseExplosion.cs:24:1933:24:1938 | this access | | UseUseExplosion.cs:24:1459:24:1462 | [post] this access | UseUseExplosion.cs:24:1476:24:1479 | this access | | UseUseExplosion.cs:24:1459:24:1462 | [post] this access | UseUseExplosion.cs:24:1918:24:1923 | this access | | UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | UseUseExplosion.cs:24:1459:24:1467 | ... > ... | | UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | -| UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | UseUseExplosion.cs:24:1918:24:1923 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1459:24:1462 | access to property Prop | UseUseExplosion.cs:24:1918:24:1924 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1459:24:1462 | this access | UseUseExplosion.cs:24:1476:24:1479 | this access | | UseUseExplosion.cs:24:1459:24:1462 | this access | UseUseExplosion.cs:24:1918:24:1923 | this access | | UseUseExplosion.cs:24:1476:24:1479 | [post] this access | UseUseExplosion.cs:24:1493:24:1496 | this access | | UseUseExplosion.cs:24:1476:24:1479 | [post] this access | UseUseExplosion.cs:24:1903:24:1908 | this access | | UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | UseUseExplosion.cs:24:1476:24:1484 | ... > ... | | UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | -| UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | UseUseExplosion.cs:24:1903:24:1908 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1476:24:1479 | access to property Prop | UseUseExplosion.cs:24:1903:24:1909 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1476:24:1479 | this access | UseUseExplosion.cs:24:1493:24:1496 | this access | | UseUseExplosion.cs:24:1476:24:1479 | this access | UseUseExplosion.cs:24:1903:24:1908 | this access | | UseUseExplosion.cs:24:1493:24:1496 | [post] this access | UseUseExplosion.cs:24:1510:24:1513 | this access | | UseUseExplosion.cs:24:1493:24:1496 | [post] this access | UseUseExplosion.cs:24:1888:24:1893 | this access | | UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | UseUseExplosion.cs:24:1493:24:1501 | ... > ... | | UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | -| UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | UseUseExplosion.cs:24:1888:24:1893 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1493:24:1496 | access to property Prop | UseUseExplosion.cs:24:1888:24:1894 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1493:24:1496 | this access | UseUseExplosion.cs:24:1510:24:1513 | this access | | UseUseExplosion.cs:24:1493:24:1496 | this access | UseUseExplosion.cs:24:1888:24:1893 | this access | | UseUseExplosion.cs:24:1510:24:1513 | [post] this access | UseUseExplosion.cs:24:1527:24:1530 | this access | | UseUseExplosion.cs:24:1510:24:1513 | [post] this access | UseUseExplosion.cs:24:1873:24:1878 | this access | | UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | UseUseExplosion.cs:24:1510:24:1518 | ... > ... | | UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | -| UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | UseUseExplosion.cs:24:1873:24:1878 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1510:24:1513 | access to property Prop | UseUseExplosion.cs:24:1873:24:1879 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1510:24:1513 | this access | UseUseExplosion.cs:24:1527:24:1530 | this access | | UseUseExplosion.cs:24:1510:24:1513 | this access | UseUseExplosion.cs:24:1873:24:1878 | this access | | UseUseExplosion.cs:24:1527:24:1530 | [post] this access | UseUseExplosion.cs:24:1544:24:1547 | this access | | UseUseExplosion.cs:24:1527:24:1530 | [post] this access | UseUseExplosion.cs:24:1858:24:1863 | this access | | UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | UseUseExplosion.cs:24:1527:24:1535 | ... > ... | | UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | -| UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | UseUseExplosion.cs:24:1858:24:1863 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1527:24:1530 | access to property Prop | UseUseExplosion.cs:24:1858:24:1864 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1527:24:1530 | this access | UseUseExplosion.cs:24:1544:24:1547 | this access | | UseUseExplosion.cs:24:1527:24:1530 | this access | UseUseExplosion.cs:24:1858:24:1863 | this access | | UseUseExplosion.cs:24:1544:24:1547 | [post] this access | UseUseExplosion.cs:24:1561:24:1564 | this access | | UseUseExplosion.cs:24:1544:24:1547 | [post] this access | UseUseExplosion.cs:24:1843:24:1848 | this access | | UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | UseUseExplosion.cs:24:1544:24:1552 | ... > ... | | UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | -| UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | UseUseExplosion.cs:24:1843:24:1848 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1544:24:1547 | access to property Prop | UseUseExplosion.cs:24:1843:24:1849 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1544:24:1547 | this access | UseUseExplosion.cs:24:1561:24:1564 | this access | | UseUseExplosion.cs:24:1544:24:1547 | this access | UseUseExplosion.cs:24:1843:24:1848 | this access | | UseUseExplosion.cs:24:1561:24:1564 | [post] this access | UseUseExplosion.cs:24:1577:24:1580 | this access | | UseUseExplosion.cs:24:1561:24:1564 | [post] this access | UseUseExplosion.cs:24:1828:24:1833 | this access | | UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | UseUseExplosion.cs:24:1561:24:1568 | ... > ... | | UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | -| UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | UseUseExplosion.cs:24:1828:24:1833 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1561:24:1564 | access to property Prop | UseUseExplosion.cs:24:1828:24:1834 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1561:24:1564 | this access | UseUseExplosion.cs:24:1577:24:1580 | this access | | UseUseExplosion.cs:24:1561:24:1564 | this access | UseUseExplosion.cs:24:1828:24:1833 | this access | | UseUseExplosion.cs:24:1577:24:1580 | [post] this access | UseUseExplosion.cs:24:1593:24:1596 | this access | | UseUseExplosion.cs:24:1577:24:1580 | [post] this access | UseUseExplosion.cs:24:1813:24:1818 | this access | | UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | UseUseExplosion.cs:24:1577:24:1584 | ... > ... | | UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | -| UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | UseUseExplosion.cs:24:1813:24:1818 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1577:24:1580 | access to property Prop | UseUseExplosion.cs:24:1813:24:1819 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1577:24:1580 | this access | UseUseExplosion.cs:24:1593:24:1596 | this access | | UseUseExplosion.cs:24:1577:24:1580 | this access | UseUseExplosion.cs:24:1813:24:1818 | this access | | UseUseExplosion.cs:24:1593:24:1596 | [post] this access | UseUseExplosion.cs:24:1609:24:1612 | this access | | UseUseExplosion.cs:24:1593:24:1596 | [post] this access | UseUseExplosion.cs:24:1798:24:1803 | this access | | UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | UseUseExplosion.cs:24:1593:24:1600 | ... > ... | | UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | -| UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | UseUseExplosion.cs:24:1798:24:1803 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1593:24:1596 | access to property Prop | UseUseExplosion.cs:24:1798:24:1804 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1593:24:1596 | this access | UseUseExplosion.cs:24:1609:24:1612 | this access | | UseUseExplosion.cs:24:1593:24:1596 | this access | UseUseExplosion.cs:24:1798:24:1803 | this access | | UseUseExplosion.cs:24:1609:24:1612 | [post] this access | UseUseExplosion.cs:24:1625:24:1628 | this access | | UseUseExplosion.cs:24:1609:24:1612 | [post] this access | UseUseExplosion.cs:24:1783:24:1788 | this access | | UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | UseUseExplosion.cs:24:1609:24:1616 | ... > ... | | UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | -| UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | UseUseExplosion.cs:24:1783:24:1788 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1609:24:1612 | access to property Prop | UseUseExplosion.cs:24:1783:24:1789 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1609:24:1612 | this access | UseUseExplosion.cs:24:1625:24:1628 | this access | | UseUseExplosion.cs:24:1609:24:1612 | this access | UseUseExplosion.cs:24:1783:24:1788 | this access | | UseUseExplosion.cs:24:1625:24:1628 | [post] this access | UseUseExplosion.cs:24:1641:24:1644 | this access | | UseUseExplosion.cs:24:1625:24:1628 | [post] this access | UseUseExplosion.cs:24:1768:24:1773 | this access | | UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | UseUseExplosion.cs:24:1625:24:1632 | ... > ... | | UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | -| UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | UseUseExplosion.cs:24:1768:24:1773 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1625:24:1628 | access to property Prop | UseUseExplosion.cs:24:1768:24:1774 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1625:24:1628 | this access | UseUseExplosion.cs:24:1641:24:1644 | this access | | UseUseExplosion.cs:24:1625:24:1628 | this access | UseUseExplosion.cs:24:1768:24:1773 | this access | | UseUseExplosion.cs:24:1641:24:1644 | [post] this access | UseUseExplosion.cs:24:1657:24:1660 | this access | | UseUseExplosion.cs:24:1641:24:1644 | [post] this access | UseUseExplosion.cs:24:1753:24:1758 | this access | | UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | UseUseExplosion.cs:24:1641:24:1648 | ... > ... | | UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | -| UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | UseUseExplosion.cs:24:1753:24:1758 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1641:24:1644 | access to property Prop | UseUseExplosion.cs:24:1753:24:1759 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1641:24:1644 | this access | UseUseExplosion.cs:24:1657:24:1660 | this access | | UseUseExplosion.cs:24:1641:24:1644 | this access | UseUseExplosion.cs:24:1753:24:1758 | this access | | UseUseExplosion.cs:24:1657:24:1660 | [post] this access | UseUseExplosion.cs:24:1673:24:1676 | this access | | UseUseExplosion.cs:24:1657:24:1660 | [post] this access | UseUseExplosion.cs:24:1738:24:1743 | this access | | UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | UseUseExplosion.cs:24:1657:24:1664 | ... > ... | | UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | -| UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | UseUseExplosion.cs:24:1738:24:1743 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1657:24:1660 | access to property Prop | UseUseExplosion.cs:24:1738:24:1744 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1657:24:1660 | this access | UseUseExplosion.cs:24:1673:24:1676 | this access | | UseUseExplosion.cs:24:1657:24:1660 | this access | UseUseExplosion.cs:24:1738:24:1743 | this access | | UseUseExplosion.cs:24:1673:24:1676 | [post] this access | UseUseExplosion.cs:24:1689:24:1692 | this access | | UseUseExplosion.cs:24:1673:24:1676 | [post] this access | UseUseExplosion.cs:24:1723:24:1728 | this access | | UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | UseUseExplosion.cs:24:1673:24:1680 | ... > ... | | UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | -| UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | UseUseExplosion.cs:24:1723:24:1728 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1673:24:1676 | access to property Prop | UseUseExplosion.cs:24:1723:24:1729 | [input] SSA phi read(this.Prop) | | UseUseExplosion.cs:24:1673:24:1676 | this access | UseUseExplosion.cs:24:1689:24:1692 | this access | | UseUseExplosion.cs:24:1673:24:1676 | this access | UseUseExplosion.cs:24:1723:24:1728 | this access | | UseUseExplosion.cs:24:1689:24:1692 | [post] this access | UseUseExplosion.cs:24:1708:24:1713 | this access | | UseUseExplosion.cs:24:1689:24:1692 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | UseUseExplosion.cs:24:1689:24:1696 | ... > ... | -| UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(this.Prop) | -| UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | UseUseExplosion.cs:24:1708:24:1713 | [input] SSA phi read(this.Prop) | +| UseUseExplosion.cs:24:1689:24:1692 | access to property Prop | UseUseExplosion.cs:25:13:25:16 | access to property Prop | | UseUseExplosion.cs:24:1689:24:1692 | this access | UseUseExplosion.cs:24:1708:24:1713 | this access | | UseUseExplosion.cs:24:1689:24:1692 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | -| UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(x) | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1708:24:1713 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1699:24:1701 | [input] SSA phi read(x) | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1708:24:1713 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1708:24:1713 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1712:24:1712 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1723:24:1728 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1712:24:1712 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1723:24:1728 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1723:24:1728 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1727:24:1727 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1738:24:1743 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1723:24:1729 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1727:24:1727 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1738:24:1743 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1738:24:1743 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1742:24:1742 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1753:24:1758 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1738:24:1744 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1742:24:1742 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1753:24:1758 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1753:24:1758 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1757:24:1757 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1768:24:1773 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1753:24:1759 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1757:24:1757 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1768:24:1773 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1768:24:1773 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1772:24:1772 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1783:24:1788 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1768:24:1774 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1772:24:1772 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1783:24:1788 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1783:24:1788 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1787:24:1787 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1798:24:1803 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1783:24:1789 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1787:24:1787 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1798:24:1803 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1798:24:1803 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1802:24:1802 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1813:24:1818 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1798:24:1804 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1802:24:1802 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1813:24:1818 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1813:24:1818 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1817:24:1817 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1828:24:1833 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1813:24:1819 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1817:24:1817 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1828:24:1833 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1828:24:1833 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1832:24:1832 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1843:24:1848 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1828:24:1834 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1832:24:1832 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1843:24:1848 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1843:24:1848 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1847:24:1847 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1858:24:1863 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1843:24:1849 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1847:24:1847 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1858:24:1863 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1858:24:1863 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1862:24:1862 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1873:24:1878 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1858:24:1864 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1862:24:1862 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1873:24:1878 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1873:24:1878 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1877:24:1877 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1888:24:1893 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1873:24:1879 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1877:24:1877 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1888:24:1893 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1888:24:1893 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1892:24:1892 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1903:24:1908 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1888:24:1894 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1892:24:1892 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1903:24:1908 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1903:24:1908 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1907:24:1907 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1918:24:1923 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1903:24:1909 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1907:24:1907 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1918:24:1923 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1918:24:1923 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1922:24:1922 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1933:24:1938 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1918:24:1924 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1922:24:1922 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1933:24:1938 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1933:24:1938 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1937:24:1937 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1948:24:1953 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1933:24:1939 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1937:24:1937 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1948:24:1953 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1948:24:1953 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1952:24:1952 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1963:24:1968 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1948:24:1954 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1952:24:1952 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1963:24:1968 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1963:24:1968 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1967:24:1967 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1978:24:1983 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1963:24:1969 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1967:24:1967 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1978:24:1983 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1978:24:1983 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1982:24:1982 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:1993:24:1998 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1978:24:1984 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1982:24:1982 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:1993:24:1998 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:1993:24:1998 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:1997:24:1997 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2008:24:2013 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1993:24:1999 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:1997:24:1997 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2008:24:2013 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2008:24:2013 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2012:24:2012 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2023:24:2028 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2008:24:2014 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2012:24:2012 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2023:24:2028 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2023:24:2028 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2027:24:2027 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2038:24:2043 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2023:24:2029 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2027:24:2027 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2038:24:2043 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2038:24:2043 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2042:24:2042 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2053:24:2058 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2038:24:2044 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2042:24:2042 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2053:24:2058 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2053:24:2058 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2057:24:2057 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2068:24:2073 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2053:24:2059 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2057:24:2057 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2068:24:2073 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2068:24:2073 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2072:24:2072 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2083:24:2088 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2068:24:2074 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2072:24:2072 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2083:24:2088 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2083:24:2088 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2087:24:2087 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2098:24:2103 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2083:24:2089 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2087:24:2087 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2098:24:2103 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2098:24:2103 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2102:24:2102 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2113:24:2118 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2098:24:2104 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2102:24:2102 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2113:24:2118 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2113:24:2118 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2117:24:2117 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2128:24:2133 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2113:24:2119 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2117:24:2117 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2128:24:2133 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2128:24:2133 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2132:24:2132 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2143:24:2148 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2128:24:2134 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2132:24:2132 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2143:24:2148 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2143:24:2148 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2147:24:2147 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2158:24:2163 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2143:24:2149 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2147:24:2147 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2158:24:2163 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2158:24:2163 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2162:24:2162 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2173:24:2178 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2158:24:2164 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2162:24:2162 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2173:24:2178 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2173:24:2178 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2177:24:2177 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2188:24:2193 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2173:24:2179 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2177:24:2177 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2188:24:2193 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2188:24:2193 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2192:24:2192 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2203:24:2208 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2188:24:2194 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2192:24:2192 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2203:24:2208 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2203:24:2208 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2207:24:2207 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2218:24:2223 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2203:24:2209 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2207:24:2207 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2218:24:2223 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2218:24:2223 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2222:24:2222 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2233:24:2238 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2218:24:2224 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2222:24:2222 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2233:24:2238 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2233:24:2238 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2237:24:2237 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2248:24:2253 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2233:24:2239 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2237:24:2237 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2248:24:2253 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2248:24:2253 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2252:24:2252 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2263:24:2268 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2248:24:2254 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2252:24:2252 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2263:24:2268 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2263:24:2268 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2267:24:2267 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2278:24:2283 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2263:24:2269 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2267:24:2267 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2278:24:2283 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2278:24:2283 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2282:24:2282 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2293:24:2298 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2278:24:2284 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2282:24:2282 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2293:24:2298 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2293:24:2298 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2297:24:2297 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2308:24:2313 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2293:24:2299 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2297:24:2297 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2308:24:2313 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2308:24:2313 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2312:24:2312 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2323:24:2328 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2308:24:2314 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2312:24:2312 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2323:24:2328 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2323:24:2328 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2327:24:2327 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2338:24:2343 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2323:24:2329 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2327:24:2327 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2338:24:2343 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2338:24:2343 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2342:24:2342 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2353:24:2358 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2338:24:2344 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2342:24:2342 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2353:24:2358 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2353:24:2358 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2357:24:2357 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2368:24:2373 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2353:24:2359 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2357:24:2357 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2368:24:2373 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2368:24:2373 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2372:24:2372 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2383:24:2388 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2368:24:2374 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2372:24:2372 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2383:24:2388 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2383:24:2388 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2387:24:2387 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2398:24:2403 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2383:24:2389 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2387:24:2387 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2398:24:2403 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2398:24:2403 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2402:24:2402 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2413:24:2418 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2398:24:2404 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2402:24:2402 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2413:24:2418 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2413:24:2418 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2417:24:2417 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2428:24:2433 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2413:24:2419 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2417:24:2417 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2428:24:2433 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2428:24:2433 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2432:24:2432 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2443:24:2448 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2428:24:2434 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2432:24:2432 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2443:24:2448 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2443:24:2448 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2447:24:2447 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2458:24:2463 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2443:24:2449 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2447:24:2447 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2458:24:2463 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2458:24:2463 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2462:24:2462 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2473:24:2478 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2458:24:2464 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2462:24:2462 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2473:24:2478 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2473:24:2478 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2477:24:2477 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2488:24:2493 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2473:24:2479 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2477:24:2477 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2488:24:2493 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2488:24:2493 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2492:24:2492 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2503:24:2508 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2488:24:2494 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2492:24:2492 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2503:24:2508 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2503:24:2508 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2507:24:2507 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2518:24:2523 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2503:24:2509 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2507:24:2507 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2518:24:2523 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2518:24:2523 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2522:24:2522 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2533:24:2538 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2518:24:2524 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2522:24:2522 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2533:24:2538 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2533:24:2538 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2537:24:2537 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2548:24:2553 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2533:24:2539 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2537:24:2537 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2548:24:2553 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2548:24:2553 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2552:24:2552 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2563:24:2568 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2548:24:2554 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2552:24:2552 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2563:24:2568 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2563:24:2568 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2567:24:2567 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2578:24:2583 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2563:24:2569 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2567:24:2567 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2578:24:2583 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2578:24:2583 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2582:24:2582 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2593:24:2598 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2578:24:2584 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2582:24:2582 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2593:24:2598 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2593:24:2598 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2597:24:2597 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2608:24:2613 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2593:24:2599 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2597:24:2597 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2608:24:2613 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2608:24:2613 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2612:24:2612 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2623:24:2628 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2608:24:2614 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2612:24:2612 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2623:24:2628 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2623:24:2628 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2627:24:2627 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2638:24:2643 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2623:24:2629 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2627:24:2627 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2638:24:2643 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2638:24:2643 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2642:24:2642 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2653:24:2658 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2638:24:2644 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2642:24:2642 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2653:24:2658 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2653:24:2658 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2657:24:2657 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2668:24:2673 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2653:24:2659 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2657:24:2657 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2668:24:2673 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2668:24:2673 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2672:24:2672 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2683:24:2688 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2668:24:2674 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2672:24:2672 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2683:24:2688 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2683:24:2688 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2687:24:2687 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2698:24:2703 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2683:24:2689 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2687:24:2687 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2698:24:2703 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2698:24:2703 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2702:24:2702 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2713:24:2718 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2698:24:2704 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2702:24:2702 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2713:24:2718 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2713:24:2718 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2717:24:2717 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2728:24:2733 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2713:24:2719 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2717:24:2717 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2728:24:2733 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2728:24:2733 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2732:24:2732 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2743:24:2748 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2728:24:2734 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2732:24:2732 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2743:24:2748 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2743:24:2748 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2747:24:2747 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2758:24:2763 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2743:24:2749 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2747:24:2747 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2758:24:2763 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2758:24:2763 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2762:24:2762 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2773:24:2778 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2758:24:2764 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2762:24:2762 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2773:24:2778 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2773:24:2778 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2777:24:2777 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2788:24:2793 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2773:24:2779 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2777:24:2777 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2788:24:2793 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2788:24:2793 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2792:24:2792 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2803:24:2808 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2788:24:2794 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2792:24:2792 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2803:24:2808 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2803:24:2808 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2807:24:2807 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2818:24:2823 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2803:24:2809 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2807:24:2807 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2818:24:2823 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2818:24:2823 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2822:24:2822 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2833:24:2838 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2818:24:2824 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2822:24:2822 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2833:24:2838 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2833:24:2838 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2837:24:2837 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2848:24:2853 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2833:24:2839 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2837:24:2837 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2848:24:2853 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2848:24:2853 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2852:24:2852 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2863:24:2868 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2848:24:2854 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2852:24:2852 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2863:24:2868 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2863:24:2868 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2867:24:2867 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2878:24:2883 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2863:24:2869 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2867:24:2867 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2878:24:2883 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2878:24:2883 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2882:24:2882 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2893:24:2898 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2878:24:2884 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2882:24:2882 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2893:24:2898 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2893:24:2898 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2897:24:2897 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2908:24:2913 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2893:24:2899 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2897:24:2897 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2908:24:2913 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2908:24:2913 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2912:24:2912 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2923:24:2928 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2908:24:2914 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2912:24:2912 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2923:24:2928 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2923:24:2928 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2927:24:2927 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2938:24:2943 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2923:24:2929 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2927:24:2927 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2938:24:2943 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2938:24:2943 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2942:24:2942 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2953:24:2958 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2938:24:2944 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2942:24:2942 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2953:24:2958 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2953:24:2958 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2957:24:2957 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2968:24:2973 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2953:24:2959 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2957:24:2957 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2968:24:2973 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2968:24:2973 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2972:24:2972 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2983:24:2988 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2968:24:2974 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2972:24:2972 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2983:24:2988 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2983:24:2988 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:2987:24:2987 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:2998:24:3003 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2983:24:2989 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2987:24:2987 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:2998:24:3003 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:2998:24:3003 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3002:24:3002 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3013:24:3018 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:2998:24:3004 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3002:24:3002 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3013:24:3018 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3013:24:3018 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3017:24:3017 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3028:24:3033 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3013:24:3019 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3017:24:3017 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3028:24:3033 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3028:24:3033 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3032:24:3032 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3043:24:3048 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3028:24:3034 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3032:24:3032 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3043:24:3048 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3043:24:3048 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3047:24:3047 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3058:24:3063 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3043:24:3049 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3047:24:3047 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3058:24:3063 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3058:24:3063 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3062:24:3062 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3073:24:3078 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3058:24:3064 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3062:24:3062 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3073:24:3078 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3073:24:3078 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3077:24:3077 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3088:24:3093 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3073:24:3079 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3077:24:3077 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3088:24:3093 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3088:24:3093 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3092:24:3092 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3103:24:3108 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3088:24:3094 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3092:24:3092 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3103:24:3108 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3103:24:3108 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3107:24:3107 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3118:24:3123 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3103:24:3109 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3107:24:3107 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3118:24:3123 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3118:24:3123 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3122:24:3122 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3133:24:3138 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3118:24:3124 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3122:24:3122 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3133:24:3138 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3133:24:3138 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3137:24:3137 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3148:24:3153 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3133:24:3139 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3137:24:3137 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3148:24:3153 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3148:24:3153 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3152:24:3152 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3163:24:3168 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3148:24:3154 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3152:24:3152 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3163:24:3168 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3163:24:3168 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3167:24:3167 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3178:24:3183 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3163:24:3169 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3167:24:3167 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3178:24:3183 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3178:24:3183 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3182:24:3182 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:24:3193:24:3198 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3178:24:3184 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3182:24:3182 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:24:3193:24:3198 | [post] this access | UseUseExplosion.cs:25:13:25:16 | this access | | UseUseExplosion.cs:24:3193:24:3198 | this access | UseUseExplosion.cs:25:13:25:16 | this access | -| UseUseExplosion.cs:24:3197:24:3197 | access to local variable x | UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1712:25:1712 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1727:25:1727 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1742:25:1742 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1757:25:1757 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1772:25:1772 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1787:25:1787 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1802:25:1802 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1817:25:1817 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1832:25:1832 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1847:25:1847 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1862:25:1862 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1877:25:1877 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1892:25:1892 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1907:25:1907 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1922:25:1922 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1937:25:1937 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1952:25:1952 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1967:25:1967 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1982:25:1982 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:1997:25:1997 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2012:25:2012 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2027:25:2027 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2042:25:2042 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2057:25:2057 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2072:25:2072 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2087:25:2087 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2102:25:2102 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2117:25:2117 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2132:25:2132 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2147:25:2147 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2162:25:2162 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2177:25:2177 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2192:25:2192 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2207:25:2207 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2222:25:2222 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2237:25:2237 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2252:25:2252 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2267:25:2267 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2282:25:2282 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2297:25:2297 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2312:25:2312 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2327:25:2327 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2342:25:2342 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2357:25:2357 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2372:25:2372 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2387:25:2387 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2402:25:2402 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2417:25:2417 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2432:25:2432 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2447:25:2447 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2462:25:2462 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2477:25:2477 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2492:25:2492 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2507:25:2507 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2522:25:2522 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2537:25:2537 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2552:25:2552 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2567:25:2567 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2582:25:2582 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2597:25:2597 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2612:25:2612 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2627:25:2627 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2642:25:2642 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2657:25:2657 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2672:25:2672 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2687:25:2687 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2702:25:2702 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2717:25:2717 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2732:25:2732 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2747:25:2747 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2762:25:2762 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2777:25:2777 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2792:25:2792 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2807:25:2807 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2822:25:2822 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2837:25:2837 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2852:25:2852 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2867:25:2867 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2882:25:2882 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2897:25:2897 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2912:25:2912 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2927:25:2927 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2942:25:2942 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2957:25:2957 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2972:25:2972 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:2987:25:2987 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3002:25:3002 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3017:25:3017 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3032:25:3032 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3047:25:3047 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3062:25:3062 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3077:25:3077 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3092:25:3092 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3107:25:3107 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3122:25:3122 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3137:25:3137 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3152:25:3152 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3167:25:3167 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3182:25:3182 | access to local variable x | -| UseUseExplosion.cs:25:9:25:3199 | SSA phi read(x) | UseUseExplosion.cs:25:3197:25:3197 | access to local variable x | +| UseUseExplosion.cs:24:3193:24:3199 | [input] SSA phi read(this.Prop) | UseUseExplosion.cs:25:13:25:16 | access to property Prop | +| UseUseExplosion.cs:24:3197:24:3197 | access to local variable x | UseUseExplosion.cs:24:9:24:3199 | SSA phi read(x) | | UseUseExplosion.cs:25:13:25:16 | [post] this access | UseUseExplosion.cs:25:31:25:34 | this access | | UseUseExplosion.cs:25:13:25:16 | [post] this access | UseUseExplosion.cs:25:3193:25:3198 | this access | | UseUseExplosion.cs:25:13:25:16 | access to property Prop | UseUseExplosion.cs:25:13:25:22 | ... > ... | From 371bc3012e913af0641d101179c4b79d073fcdbc Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 7 Apr 2026 14:51:00 +0200 Subject: [PATCH 076/208] C#: CFG and data flow nodes now exist for LHSs. --- .../security/dataflow/flowsources/StoredFlowSources.expected | 2 ++ 1 file changed, 2 insertions(+) diff --git a/csharp/ql/test/library-tests/security/dataflow/flowsources/StoredFlowSources.expected b/csharp/ql/test/library-tests/security/dataflow/flowsources/StoredFlowSources.expected index e27ea53adbd..d805f62e6b7 100644 --- a/csharp/ql/test/library-tests/security/dataflow/flowsources/StoredFlowSources.expected +++ b/csharp/ql/test/library-tests/security/dataflow/flowsources/StoredFlowSources.expected @@ -8,11 +8,13 @@ | data.cs:28:51:28:71 | access to indexer | | data.cs:28:51:28:71 | call to method ToString | | data.cs:30:13:30:26 | access to local variable customerReader | +| entity.cs:31:29:31:33 | access to local variable blogs | | entity.cs:31:29:31:82 | DbRawSqlQuery blogs = ... | | entity.cs:31:37:31:82 | call to method SqlQuery | | entity.cs:32:30:32:34 | access to local variable blogs | | entity.cs:35:31:35:34 | access to local variable blog | | entity.cs:35:31:35:39 | access to property Name | +| entity.cs:38:31:38:39 | access to local variable blogNames | | entity.cs:38:31:38:93 | DbRawSqlQuery blogNames = ... | | entity.cs:38:43:38:93 | call to method SqlQuery | | entity.cs:39:34:39:42 | access to local variable blogNames | From 1d9c0ae3884eee039d6bbaf93fd4a09b42b60e93 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 8 Apr 2026 10:25:02 +0200 Subject: [PATCH 077/208] C#: Fix perf. --- .../code/csharp/dataflow/internal/DataFlowPublic.qll | 4 +++- .../code/csharp/dataflow/internal/TaintTrackingPublic.qll | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index 5c49809ed40..7919b38de3f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -133,12 +133,14 @@ AssignableDefinitionNode assignableDefinitionNode(AssignableDefinition def) { predicate localFlowStep = localFlowStepImpl/2; +private predicate localFlowStepPlus(Node source, Node sink) = fastTC(localFlowStep/2)(source, sink) + /** * Holds if data flows from `source` to `sink` in zero or more local * (intra-procedural) steps. */ pragma[inline] -predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) } +predicate localFlow(Node source, Node sink) { localFlowStepPlus(source, sink) or source = sink } /** * Holds if data can flow from `e1` to `e2` in zero or more diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll index 1e60165d748..60ebece0ee5 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPublic.qll @@ -1,12 +1,17 @@ private import csharp private import TaintTrackingPrivate +private predicate localTaintStepPlus(DataFlow::Node source, DataFlow::Node sink) = + fastTC(localTaintStep/2)(source, sink) + /** * Holds if taint propagates from `source` to `sink` in zero or more local * (intra-procedural) steps. */ pragma[inline] -predicate localTaint(DataFlow::Node source, DataFlow::Node sink) { localTaintStep*(source, sink) } +predicate localTaint(DataFlow::Node source, DataFlow::Node sink) { + localTaintStepPlus(source, sink) or source = sink +} /** * Holds if taint can flow from `e1` to `e2` in zero or more From bfbd0f77e8c8a823d37864919999abd7c81cb549 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 9 Apr 2026 10:33:52 +0200 Subject: [PATCH 078/208] C#: Fix some bad join orders. --- csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll | 4 +++- .../semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll | 5 +++-- csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index 11124cc2094..87710acd262 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -605,7 +605,9 @@ module Ssa { override Element getElement() { result = this.getParameter() } - override string toString() { result = "SSA param(" + this.getParameter() + ")" } + override string toString() { + result = "SSA param(" + pragma[only_bind_out](this.getParameter()) + ")" + } override Location getLocation() { not NearestLocation::nearestLocation(this, _, _) 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 043ba2fc228..c8294c706b2 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -748,6 +748,7 @@ private class Argument extends Expr { * * `postUpdate` indicates whether the store targets a post-update node. */ +pragma[nomagic] private predicate fieldOrPropertyStore(ContentSet c, Expr src, Expr q, boolean postUpdate) { exists(FieldOrProperty f | c = f.getContentSet() and @@ -795,9 +796,9 @@ private predicate fieldOrPropertyStore(ContentSet c, Expr src, Expr q, boolean p // Tuple element, `(..., src, ...)` `f` is `ItemX` of tuple `q` exists(TupleExpr te, int i | te = q and - src = te.getArgument(i) and + src = te.getArgument(pragma[only_bind_into](i)) and te.isConstruction() and - f = q.getType().(TupleType).getElement(i) and + f = q.getType().(TupleType).getElement(pragma[only_bind_into](i)) and postUpdate = false ) ) diff --git a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql index f86b97ef302..0b59ea92824 100644 --- a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql +++ b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql @@ -13,6 +13,7 @@ import csharp import semmle.code.csharp.frameworks.System +pragma[nomagic] predicate nodeBeforeParameterAccess(ControlFlowNode node) { exists(EqualsMethod equals | equals.getBody().getControlFlowNode() = node) or From bbd403dbc3cb35c550b6bd88f05f17212b82f81c Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 9 Apr 2026 11:24:54 +0200 Subject: [PATCH 079/208] C#: Rework DataFlowCallable-to-cfg relation in terms of basic blocks for performance. --- .../dataflow/internal/DataFlowDispatch.qll | 53 ++++++++++--------- .../dataflow/internal/DataFlowPrivate.qll | 4 +- 2 files changed, 30 insertions(+), 27 deletions(-) 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 ed45135c4d8..e365385c6d4 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -210,51 +210,45 @@ class DataFlowCallable extends TDataFlowCallable { } pragma[nomagic] - private ControlFlowNode getAMultiBodyEntryNode(BasicBlock bb, int i) { + private BasicBlock getAMultiBodyEntryBlock() { this.isMultiBodied() and exists(ControlFlowElement body, Location l | body = this.asCallable(l).getBody() or objectInitEntry(this.asCallable(l), body) | NearestLocation::nearestLocation(body, l, _) and - result.isBefore(body) - ) and - bb.getNode(i) = result - } - - pragma[nomagic] - private ControlFlowNode getAMultiBodyControlFlowNodePred() { - result = this.getAMultiBodyEntryNode(_, _).getAPredecessor() - or - result = this.getAMultiBodyControlFlowNodePred().getAPredecessor() - } - - pragma[nomagic] - private ControlFlowNode getAMultiBodyControlFlowNodeSuccSameBasicBlock() { - exists(BasicBlock bb, int i, int j | - exists(this.getAMultiBodyEntryNode(bb, i)) and - result = bb.getNode(j) and - j > i + result.getANode().isBefore(body) ) } + pragma[nomagic] + private BasicBlock getAMultiBodyControlFlowPred() { + result = this.getAMultiBodyEntryBlock().getAPredecessor() + or + result = this.getAMultiBodyControlFlowPred().getAPredecessor() + } + pragma[nomagic] private BasicBlock getAMultiBodyBasicBlockSucc() { - result = this.getAMultiBodyEntryNode(_, _).getBasicBlock().getASuccessor() + result = this.getAMultiBodyEntryBlock().getASuccessor() or result = this.getAMultiBodyBasicBlockSucc().getASuccessor() } - pragma[inline] - private ControlFlowNode getAMultiBodyControlFlowNode() { + pragma[nomagic] + private BasicBlock getAMultiBodyBasicBlock() { result = [ - this.getAMultiBodyEntryNode(_, _), this.getAMultiBodyControlFlowNodePred(), - this.getAMultiBodyControlFlowNodeSuccSameBasicBlock(), - this.getAMultiBodyBasicBlockSucc().getANode() + this.getAMultiBodyEntryBlock(), this.getAMultiBodyControlFlowPred(), + this.getAMultiBodyBasicBlockSucc() ] } + pragma[inline] + private ControlFlowNode getAMultiBodyControlFlowNode() { + result = this.getAMultiBodyBasicBlock().getANode() + } + /** Gets a control flow node belonging to this callable. */ pragma[inline] ControlFlowNode getAControlFlowNode() { @@ -264,6 +258,15 @@ class DataFlowCallable extends TDataFlowCallable { result.getEnclosingCallable() = this.asCallable(_) } + /** Gets a basic block belonging to this callable. */ + pragma[inline] + BasicBlock getABasicBlock() { + result = this.getAMultiBodyBasicBlock() + or + not this.isMultiBodied() and + result.getEnclosingCallable() = this.asCallable(_) + } + /** Gets the underlying summarized callable, if any. */ FlowSummary::SummarizedCallable asSummarizedCallable() { this = TSummarizedCallable(result) } 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 c8294c706b2..00a0ca06ae3 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -1213,7 +1213,7 @@ class SsaNode extends NodeImpl, TSsaNode { SsaNode() { this = TSsaNode(node) } override DataFlowCallable getEnclosingCallableImpl() { - result.getAControlFlowNode().getBasicBlock() = node.getBasicBlock() + result.getABasicBlock() = node.getBasicBlock() } override Type getTypeImpl() { result = node.getSourceVariable().getType() } @@ -1904,7 +1904,7 @@ class CaptureNode extends NodeImpl, TCaptureNode { VariableCapture::Flow::SynthesizedCaptureNode getSynthesizedCaptureNode() { result = cn } override DataFlowCallable getEnclosingCallableImpl() { - result.getAControlFlowNode().getBasicBlock() = cn.getBasicBlock() + result.getABasicBlock() = cn.getBasicBlock() } override Type getTypeImpl() { From 2d5a1840f42639ac34c945c20263c7e22cecc0da Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 9 Apr 2026 11:33:11 +0200 Subject: [PATCH 080/208] C#: Accept new CFG in tests. --- .../controlflow/graph/BasicBlock.expected | 2470 +- .../controlflow/graph/Condition.expected | 2952 +- .../controlflow/graph/Dominance.expected | 33396 ++++++++++------ .../graph/EnclosingCallable.expected | 7931 +++- .../controlflow/graph/NodeGraph.expected | 10391 +++-- .../controlflow/graph/Nodes.expected | 102 +- .../library-tests/csharp7/IsFlow.expected | 206 +- .../NullCoalescingControlFlow.expected | 26 +- .../csharp8/NullableRefTypes.expected | 57 +- .../csharp8/UsingControlFlow.expected | 58 +- .../csharp8/ispatternflow.expected | 227 +- .../csharp8/switchexprcontrolflow.expected | 467 +- .../csharp8/switchstmtctrlflow.expected | 475 +- .../dataflow/ssa-large/countssa.expected | 2 +- .../ql/test/library-tests/goto/Goto1.expected | 104 +- .../test/library-tests/obinit/ObInit.expected | 75 +- .../standalone/controlflow/cfg.expected | 129 +- 17 files changed, 37582 insertions(+), 21486 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index 9802f2b0195..98a7879a6a3 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -1,1178 +1,1318 @@ -| 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 | -| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | exit remove_Event | 4 | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | exit M1 | 34 | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | exit M2 | 42 | -| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | exit M3 | 17 | -| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | exit M4 | 20 | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | exit M5 | 24 | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | exit M6 | 30 | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | exit M7 | 25 | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | exit M8 | 31 | -| AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | exit M9 | 51 | -| 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 | 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 | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:10:9:10:31 | call to method Assert | 7 | -| Assert.cs:9:24:9:27 | null | Assert.cs:9:24:9:27 | null | 1 | -| Assert.cs:9:31:9:32 | "" | Assert.cs:9:31:9:32 | "" | 1 | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:7:10:7:11 | exit M1 (normal) | 5 | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:20:16:20 | access to parameter b | 4 | -| Assert.cs:14:10:14:11 | exit M2 | Assert.cs:14:10:14:11 | exit M2 | 1 | -| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | exit M2 (abnormal) | 1 | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:17:9:17:24 | call to method IsNull | 5 | -| Assert.cs:16:24:16:27 | null | Assert.cs:16:24:16:27 | null | 1 | -| Assert.cs:16:31:16:32 | "" | Assert.cs:16:31:16:32 | "" | 1 | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:14:10:14:11 | exit M2 (normal) | 5 | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:20:23:20 | access to parameter b | 4 | -| Assert.cs:21:10:21:11 | exit M3 | Assert.cs:21:10:21:11 | exit M3 | 1 | -| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | exit M3 (abnormal) | 1 | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:24:9:24:27 | call to method IsNotNull | 5 | -| Assert.cs:23:24:23:27 | null | Assert.cs:23:24:23:27 | null | 1 | -| Assert.cs:23:31:23:32 | "" | Assert.cs:23:31:23:32 | "" | 1 | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:21:10:21:11 | exit M3 (normal) | 5 | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:20:30:20 | access to parameter b | 4 | -| Assert.cs:28:10:28:11 | exit M4 | Assert.cs:28:10:28:11 | exit M4 | 1 | -| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | exit M4 (abnormal) | 1 | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:31:9:31:32 | call to method IsTrue | 7 | -| Assert.cs:30:24:30:27 | null | Assert.cs:30:24:30:27 | null | 1 | -| Assert.cs:30:31:30:32 | "" | Assert.cs:30:31:30:32 | "" | 1 | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:28:10:28:11 | exit M4 (normal) | 5 | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:20:37:20 | access to parameter b | 4 | -| Assert.cs:35:10:35:11 | exit M5 | Assert.cs:35:10:35:11 | exit M5 | 1 | -| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | exit M5 (abnormal) | 1 | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:38:9:38:32 | call to method IsTrue | 7 | -| Assert.cs:37:24:37:27 | null | Assert.cs:37:24:37:27 | null | 1 | -| Assert.cs:37:31:37:32 | "" | Assert.cs:37:31:37:32 | "" | 1 | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:35:10:35:11 | exit M5 (normal) | 5 | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:20:44:20 | access to parameter b | 4 | -| Assert.cs:42:10:42:11 | exit M6 | Assert.cs:42:10:42:11 | exit M6 | 1 | -| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | exit M6 (abnormal) | 1 | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:45:9:45:33 | call to method IsFalse | 7 | -| Assert.cs:44:24:44:27 | null | Assert.cs:44:24:44:27 | null | 1 | -| Assert.cs:44:31:44:32 | "" | Assert.cs:44:31:44:32 | "" | 1 | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:42:10:42:11 | exit M6 (normal) | 5 | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:20:51:20 | access to parameter b | 4 | -| Assert.cs:49:10:49:11 | exit M7 | Assert.cs:49:10:49:11 | exit M7 | 1 | -| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | exit M7 (abnormal) | 1 | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:52:9:52:33 | call to method IsFalse | 7 | -| Assert.cs:51:24:51:27 | null | Assert.cs:51:24:51:27 | null | 1 | -| Assert.cs:51:31:51:32 | "" | Assert.cs:51:31:51:32 | "" | 1 | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:49:10:49:11 | exit M7 (normal) | 5 | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:20:58:20 | access to parameter b | 4 | -| Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | exit M8 | 1 | -| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | exit M8 (abnormal) | 1 | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:31 | ... != ... | 6 | -| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | 1 | -| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | 1 | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | 2 | -| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | 1 | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:56:10:56:11 | exit M8 (normal) | 5 | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:20:65:20 | access to parameter b | 4 | -| Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | exit M9 | 1 | -| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | exit M9 (abnormal) | 1 | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:32 | ... == ... | 6 | -| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | 1 | -| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | 1 | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | 2 | -| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | 1 | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:63:10:63:11 | exit M9 (normal) | 5 | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:20:72:20 | access to parameter b | 4 | -| Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | exit M10 | 1 | -| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | exit M10 (abnormal) | 1 | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:31 | ... == ... | 6 | -| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | 1 | -| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | 1 | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | 2 | -| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | 1 | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:70:10:70:12 | exit M10 (normal) | 5 | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:20:79:20 | access to parameter b | 4 | -| Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | exit M11 | 1 | -| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | exit M11 (abnormal) | 1 | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:32 | ... != ... | 6 | -| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | 1 | -| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | 1 | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | 2 | -| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | 1 | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:77:10:77:12 | exit M11 (normal) | 5 | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:20:86:20 | access to parameter b | 4 | -| Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | exit M12 | 1 | -| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 (abnormal) | 1 | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | call to method Assert | 7 | -| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | 1 | -| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | 1 | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:13:90:13 | access to parameter b | 6 | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | call to method IsNull | 5 | -| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | 1 | -| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | 1 | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:13:94:13 | access to parameter b | 6 | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | call to method IsNotNull | 5 | -| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | 1 | -| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | 1 | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:13:98:13 | access to parameter b | 6 | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | call to method IsTrue | 7 | -| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | 1 | -| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | 1 | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:13:102:13 | access to parameter b | 6 | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | call to method IsTrue | 7 | -| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | 1 | -| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | 1 | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:13:106:13 | access to parameter b | 6 | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | call to method IsFalse | 7 | -| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | 1 | -| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | 1 | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:13:110:13 | access to parameter b | 6 | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | call to method IsFalse | 7 | -| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | 1 | -| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | 1 | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:13:114:13 | access to parameter b | 6 | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:31 | ... != ... | 6 | -| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | 1 | -| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | 1 | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | 2 | -| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | 1 | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:13:118:13 | access to parameter b | 6 | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:32 | ... == ... | 6 | -| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | 1 | -| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | 1 | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | 2 | -| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | !... | 2 | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:13:122:13 | access to parameter b | 6 | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:31 | ... == ... | 6 | -| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | 1 | -| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | 1 | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | 2 | -| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | 1 | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:13:126:13 | access to parameter b | 6 | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:32 | ... != ... | 6 | -| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | 1 | -| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | 1 | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | 2 | -| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | !... | 2 | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | exit M12 (normal) | 5 | -| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | exit AssertTrueFalse | 4 | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | 8 | -| 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 | 7 | -| Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | exit M | 31 | -| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | exit (...) => ... | 4 | -| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | exit + | 6 | -| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | exit SetParamSingle | 7 | -| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | exit SetParamMulti | 10 | -| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | exit M2 | 28 | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry | 7 | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:7:33:7:36 | access to parameter args | 5 | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | 2 | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | 1 | -| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:9:21:9:31 | ... == ... | 6 | -| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:10:21:10:26 | break; | 1 | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:15:17:15:28 | ... == ... | 5 | -| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:16:17:16:17 | ; | 1 | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:22:29:22:32 | access to parameter args | 3 | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | 1 | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:26:21:26:31 | ... == ... | 8 | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | break; | 1 | -| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | ... == ... | 5 | -| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:32:21:32:21 | ; | 1 | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | exit M2 | 3 | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:42:17:42:28 | ... == ... | 8 | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 | 2 | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | 1 | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | access to parameter args | 2 | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | 1 | -| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:49:21:49:31 | ... == ... | 6 | -| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | break; | 1 | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:53:7:53:7 | ; | 1 | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:60:17:60:28 | ... == ... | 8 | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 | 2 | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | 1 | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | access to parameter args | 2 | -| BreakInTry.cs:65:13:69:13 | 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 | 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 | 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 | 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 | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | 1 | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:26:5:26 | access to parameter s | 2 | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | exit M2 | 2 | -| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:34 | access to property Length | 1 | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | 2 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | exit M3 | 2 | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:38:7:55 | access to property Length | 1 | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | 1 | -| ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | 1 | -| ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | 1 | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | 1 | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:25:9:25 | access to parameter s | 2 | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | access to property Length | 1 | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:9:9:10 | exit M4 | 3 | -| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:38:9:38 | 0 | 1 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:13:13:13:13 | access to parameter s | 4 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | exit M5 | 2 | -| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:13:13:21 | access to property Length | 1 | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:13:13:25 | ... > ... | 3 | -| ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:14:13:14:21 | return ...; | 2 | -| ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:16:13:16:21 | return ...; | 2 | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | 2 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | exit M6 | 2 | -| ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | 2 | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:23:18:23:29 | (...) ... | 5 | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:24:18:24:24 | (...) ... | 4 | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:25:13:25:14 | "" | 4 | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:21:10:21:11 | exit M7 | 5 | -| ConditionalAccess.cs:30:10:30:12 | enter Out | ConditionalAccess.cs:30:10:30:12 | exit Out | 5 | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:12 | access to property Prop | 8 | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 | 2 | -| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | 1 | -| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | exit get_Item | 6 | -| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | exit set_Item | 4 | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | 4 | -| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:12:48:25 | ... = ... | 3 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | 2 | -| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:12:49:32 | ... = ... | 3 | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | 2 | -| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:12:50:23 | ... = ... | 4 | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | 1 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | 2 | -| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:18:51:31 | ... = ... | 3 | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | 1 | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | 2 | -| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:18:52:38 | ... = ... | 3 | -| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | 1 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 2 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 4 | -| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | 1 | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | exit M9 | 4 | -| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | 8 | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | exit Conditions | 7 | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:5:13:5:15 | access to parameter inc | 4 | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | 2 | -| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | ...++ | 3 | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | 2 | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:7:13:7:16 | [false] !... | 1 | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:13:7:16 | [true] !... | 1 | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:15 | ...-- | 3 | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:14:13:14:13 | access to parameter b | 7 | -| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:15 | ...++ | 3 | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:17 | ... > ... | 4 | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | 2 | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:17:17:18 | [false] !... | 1 | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:17:17:18 | [true] !... | 1 | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:19 | ...-- | 3 | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | exit M1 | 4 | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:25:13:25:14 | access to parameter b1 | 7 | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | 2 | -| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:19 | ...++ | 3 | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | 2 | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:15 | ...++ | 3 | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | exit M2 | 4 | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:37:13:37:14 | access to parameter b1 | 10 | -| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:19 | ... = ... | 3 | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | 2 | -| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:15 | ...++ | 3 | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | 2 | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:15 | ...++ | 3 | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | exit M3 | 4 | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:9:53:9 | while (...) ... | 6 | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:22 | ... > ... | 4 | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:17:51:17 | access to parameter b | 3 | -| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:19 | ...++ | 3 | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | exit M4 | 4 | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:9:64:9 | while (...) ... | 6 | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:22 | ... > ... | 4 | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:17:62:17 | access to parameter b | 3 | -| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:19 | ...++ | 3 | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | 2 | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:15 | ...++ | 3 | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | exit M5 | 4 | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:74:27:74:28 | access to parameter ss | 12 | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | 1 | +| AccessorCalls.cs:1:7:1:19 | Entry | AccessorCalls.cs:1:7:1:19 | Exit | 11 | +| AccessorCalls.cs:5:23:5:25 | Entry | AccessorCalls.cs:5:23:5:25 | Exit | 4 | +| AccessorCalls.cs:5:33:5:35 | Entry | AccessorCalls.cs:5:33:5:35 | Exit | 4 | +| AccessorCalls.cs:7:32:7:34 | Entry | AccessorCalls.cs:7:32:7:34 | Exit | 4 | +| AccessorCalls.cs:7:40:7:45 | Entry | AccessorCalls.cs:7:40:7:45 | Exit | 4 | +| AccessorCalls.cs:10:10:10:11 | Entry | AccessorCalls.cs:10:10:10:11 | Exit | 66 | +| AccessorCalls.cs:19:10:19:11 | Entry | AccessorCalls.cs:19:10:19:11 | Exit | 90 | +| AccessorCalls.cs:28:10:28:11 | Entry | AccessorCalls.cs:28:10:28:11 | Exit | 33 | +| AccessorCalls.cs:35:10:35:11 | Entry | AccessorCalls.cs:35:10:35:11 | Exit | 42 | +| AccessorCalls.cs:42:10:42:11 | Entry | AccessorCalls.cs:42:10:42:11 | Exit | 46 | +| AccessorCalls.cs:49:10:49:11 | Entry | AccessorCalls.cs:49:10:49:11 | Exit | 64 | +| AccessorCalls.cs:56:10:56:11 | Entry | AccessorCalls.cs:56:10:56:11 | Exit | 50 | +| AccessorCalls.cs:61:10:61:11 | Entry | AccessorCalls.cs:61:10:61:11 | Exit | 68 | +| AccessorCalls.cs:66:10:66:11 | Entry | AccessorCalls.cs:66:10:66:11 | Exit | 104 | +| ArrayCreation.cs:1:7:1:19 | Entry | ArrayCreation.cs:1:7:1:19 | Exit | 11 | +| ArrayCreation.cs:3:11:3:12 | Entry | ArrayCreation.cs:3:11:3:12 | Exit | 7 | +| ArrayCreation.cs:5:12:5:13 | Entry | ArrayCreation.cs:5:12:5:13 | Exit | 8 | +| ArrayCreation.cs:7:11:7:12 | Entry | ArrayCreation.cs:7:11:7:12 | Exit | 12 | +| ArrayCreation.cs:9:12:9:13 | Entry | ArrayCreation.cs:9:12:9:13 | Exit | 21 | +| Assert.cs:5:7:5:17 | Entry | Assert.cs:5:7:5:17 | Exit | 11 | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:9:20:9:20 | access to parameter b | 7 | +| Assert.cs:7:10:7:11 | Exceptional Exit | Assert.cs:7:10:7:11 | Exceptional Exit | 1 | +| Assert.cs:7:10:7:11 | Exit | Assert.cs:7:10:7:11 | Exit | 1 | +| Assert.cs:9:20:9:20 | After access to parameter b [false] | Assert.cs:9:31:9:32 | "" | 2 | +| Assert.cs:9:20:9:20 | After access to parameter b [true] | Assert.cs:9:24:9:27 | null | 2 | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:10:9:10:31 | call to method Assert | 12 | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:7:10:7:11 | Normal Exit | 13 | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:16:20:16:20 | access to parameter b | 7 | +| Assert.cs:14:10:14:11 | Exceptional Exit | Assert.cs:14:10:14:11 | Exceptional Exit | 1 | +| Assert.cs:14:10:14:11 | Exit | Assert.cs:14:10:14:11 | Exit | 1 | +| Assert.cs:16:20:16:20 | After access to parameter b [false] | Assert.cs:16:31:16:32 | "" | 2 | +| Assert.cs:16:20:16:20 | After access to parameter b [true] | Assert.cs:16:24:16:27 | null | 2 | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:17:9:17:24 | call to method IsNull | 8 | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:14:10:14:11 | Normal Exit | 13 | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:23:20:23:20 | access to parameter b | 7 | +| Assert.cs:21:10:21:11 | Exceptional Exit | Assert.cs:21:10:21:11 | Exceptional Exit | 1 | +| Assert.cs:21:10:21:11 | Exit | Assert.cs:21:10:21:11 | Exit | 1 | +| Assert.cs:23:20:23:20 | After access to parameter b [false] | Assert.cs:23:31:23:32 | "" | 2 | +| Assert.cs:23:20:23:20 | After access to parameter b [true] | Assert.cs:23:24:23:27 | null | 2 | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:24:9:24:27 | call to method IsNotNull | 8 | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:21:10:21:11 | Normal Exit | 13 | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:30:20:30:20 | access to parameter b | 7 | +| Assert.cs:28:10:28:11 | Exceptional Exit | Assert.cs:28:10:28:11 | Exceptional Exit | 1 | +| Assert.cs:28:10:28:11 | Exit | Assert.cs:28:10:28:11 | Exit | 1 | +| Assert.cs:30:20:30:20 | After access to parameter b [false] | Assert.cs:30:31:30:32 | "" | 2 | +| Assert.cs:30:20:30:20 | After access to parameter b [true] | Assert.cs:30:24:30:27 | null | 2 | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:31:9:31:32 | call to method IsTrue | 12 | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:28:10:28:11 | Normal Exit | 13 | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:37:20:37:20 | access to parameter b | 7 | +| Assert.cs:35:10:35:11 | Exceptional Exit | Assert.cs:35:10:35:11 | Exceptional Exit | 1 | +| Assert.cs:35:10:35:11 | Exit | Assert.cs:35:10:35:11 | Exit | 1 | +| Assert.cs:37:20:37:20 | After access to parameter b [false] | Assert.cs:37:31:37:32 | "" | 2 | +| Assert.cs:37:20:37:20 | After access to parameter b [true] | Assert.cs:37:24:37:27 | null | 2 | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:38:9:38:32 | call to method IsTrue | 12 | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:35:10:35:11 | Normal Exit | 13 | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:44:20:44:20 | access to parameter b | 7 | +| Assert.cs:42:10:42:11 | Exceptional Exit | Assert.cs:42:10:42:11 | Exceptional Exit | 1 | +| Assert.cs:42:10:42:11 | Exit | Assert.cs:42:10:42:11 | Exit | 1 | +| Assert.cs:44:20:44:20 | After access to parameter b [false] | Assert.cs:44:31:44:32 | "" | 2 | +| Assert.cs:44:20:44:20 | After access to parameter b [true] | Assert.cs:44:24:44:27 | null | 2 | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:45:9:45:33 | call to method IsFalse | 12 | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:42:10:42:11 | Normal Exit | 13 | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:51:20:51:20 | access to parameter b | 7 | +| Assert.cs:49:10:49:11 | Exceptional Exit | Assert.cs:49:10:49:11 | Exceptional Exit | 1 | +| Assert.cs:49:10:49:11 | Exit | Assert.cs:49:10:49:11 | Exit | 1 | +| Assert.cs:51:20:51:20 | After access to parameter b [false] | Assert.cs:51:31:51:32 | "" | 2 | +| Assert.cs:51:20:51:20 | After access to parameter b [true] | Assert.cs:51:24:51:27 | null | 2 | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:52:9:52:33 | call to method IsFalse | 12 | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:49:10:49:11 | Normal Exit | 13 | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:58:20:58:20 | access to parameter b | 7 | +| Assert.cs:56:10:56:11 | Exceptional Exit | Assert.cs:56:10:56:11 | Exceptional Exit | 1 | +| Assert.cs:56:10:56:11 | Exit | Assert.cs:56:10:56:11 | Exit | 1 | +| Assert.cs:58:20:58:20 | After access to parameter b [false] | Assert.cs:58:31:58:32 | "" | 2 | +| Assert.cs:58:20:58:20 | After access to parameter b [true] | Assert.cs:58:24:58:27 | null | 2 | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:59:23:59:31 | ... != ... | 11 | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:56:10:56:11 | Normal Exit | 13 | +| Assert.cs:59:23:59:31 | After ... != ... [false] | Assert.cs:59:23:59:31 | After ... != ... [false] | 1 | +| Assert.cs:59:23:59:31 | After ... != ... [true] | Assert.cs:59:36:59:36 | access to parameter b | 2 | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | 2 | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:65:20:65:20 | access to parameter b | 7 | +| Assert.cs:63:10:63:11 | Exceptional Exit | Assert.cs:63:10:63:11 | Exceptional Exit | 1 | +| Assert.cs:63:10:63:11 | Exit | Assert.cs:63:10:63:11 | Exit | 1 | +| Assert.cs:65:20:65:20 | After access to parameter b [false] | Assert.cs:65:31:65:32 | "" | 2 | +| Assert.cs:65:20:65:20 | After access to parameter b [true] | Assert.cs:65:24:65:27 | null | 2 | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:66:24:66:32 | ... == ... | 11 | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:63:10:63:11 | Normal Exit | 13 | +| Assert.cs:66:24:66:32 | After ... == ... [false] | Assert.cs:66:37:66:37 | access to parameter b | 2 | +| Assert.cs:66:24:66:32 | After ... == ... [true] | Assert.cs:66:24:66:32 | After ... == ... [true] | 1 | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | 2 | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:72:20:72:20 | access to parameter b | 7 | +| Assert.cs:70:10:70:12 | Exceptional Exit | Assert.cs:70:10:70:12 | Exceptional Exit | 1 | +| Assert.cs:70:10:70:12 | Exit | Assert.cs:70:10:70:12 | Exit | 1 | +| Assert.cs:72:20:72:20 | After access to parameter b [false] | Assert.cs:72:31:72:32 | "" | 2 | +| Assert.cs:72:20:72:20 | After access to parameter b [true] | Assert.cs:72:24:72:27 | null | 2 | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:73:23:73:31 | ... == ... | 11 | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:70:10:70:12 | Normal Exit | 13 | +| Assert.cs:73:23:73:31 | After ... == ... [false] | Assert.cs:73:23:73:31 | After ... == ... [false] | 1 | +| Assert.cs:73:23:73:31 | After ... == ... [true] | Assert.cs:73:36:73:36 | access to parameter b | 2 | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | 2 | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:79:20:79:20 | access to parameter b | 7 | +| Assert.cs:77:10:77:12 | Exceptional Exit | Assert.cs:77:10:77:12 | Exceptional Exit | 1 | +| Assert.cs:77:10:77:12 | Exit | Assert.cs:77:10:77:12 | Exit | 1 | +| Assert.cs:79:20:79:20 | After access to parameter b [false] | Assert.cs:79:31:79:32 | "" | 2 | +| Assert.cs:79:20:79:20 | After access to parameter b [true] | Assert.cs:79:24:79:27 | null | 2 | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:80:24:80:32 | ... != ... | 11 | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:77:10:77:12 | Normal Exit | 13 | +| Assert.cs:80:24:80:32 | After ... != ... [false] | Assert.cs:80:37:80:37 | access to parameter b | 2 | +| Assert.cs:80:24:80:32 | After ... != ... [true] | Assert.cs:80:24:80:32 | After ... != ... [true] | 1 | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | 2 | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:86:20:86:20 | access to parameter b | 7 | +| Assert.cs:84:10:84:12 | Exceptional Exit | Assert.cs:84:10:84:12 | Exceptional Exit | 1 | +| Assert.cs:84:10:84:12 | Exit | Assert.cs:84:10:84:12 | Exit | 1 | +| Assert.cs:86:20:86:20 | After access to parameter b [false] | Assert.cs:86:31:86:32 | "" | 2 | +| Assert.cs:86:20:86:20 | After access to parameter b [true] | Assert.cs:86:24:86:27 | null | 2 | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:87:9:87:31 | call to method Assert | 12 | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:90:13:90:13 | access to parameter b | 16 | +| Assert.cs:90:13:90:13 | After access to parameter b [false] | Assert.cs:90:24:90:25 | "" | 2 | +| Assert.cs:90:13:90:13 | After access to parameter b [true] | Assert.cs:90:17:90:20 | null | 2 | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | call to method IsNull | 8 | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:94:13:94:13 | access to parameter b | 16 | +| Assert.cs:94:13:94:13 | After access to parameter b [false] | Assert.cs:94:24:94:25 | "" | 2 | +| Assert.cs:94:13:94:13 | After access to parameter b [true] | Assert.cs:94:17:94:20 | null | 2 | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | call to method IsNotNull | 8 | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:98:13:98:13 | access to parameter b | 16 | +| Assert.cs:98:13:98:13 | After access to parameter b [false] | Assert.cs:98:24:98:25 | "" | 2 | +| Assert.cs:98:13:98:13 | After access to parameter b [true] | Assert.cs:98:17:98:20 | null | 2 | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | call to method IsTrue | 12 | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:102:13:102:13 | access to parameter b | 16 | +| Assert.cs:102:13:102:13 | After access to parameter b [false] | Assert.cs:102:24:102:25 | "" | 2 | +| Assert.cs:102:13:102:13 | After access to parameter b [true] | Assert.cs:102:17:102:20 | null | 2 | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | call to method IsTrue | 12 | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:106:13:106:13 | access to parameter b | 16 | +| Assert.cs:106:13:106:13 | After access to parameter b [false] | Assert.cs:106:24:106:25 | "" | 2 | +| Assert.cs:106:13:106:13 | After access to parameter b [true] | Assert.cs:106:17:106:20 | null | 2 | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | call to method IsFalse | 12 | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:110:13:110:13 | access to parameter b | 16 | +| Assert.cs:110:13:110:13 | After access to parameter b [false] | Assert.cs:110:24:110:25 | "" | 2 | +| Assert.cs:110:13:110:13 | After access to parameter b [true] | Assert.cs:110:17:110:20 | null | 2 | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | call to method IsFalse | 12 | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:114:13:114:13 | access to parameter b | 16 | +| Assert.cs:114:13:114:13 | After access to parameter b [false] | Assert.cs:114:24:114:25 | "" | 2 | +| Assert.cs:114:13:114:13 | After access to parameter b [true] | Assert.cs:114:17:114:20 | null | 2 | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | ... != ... | 11 | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:118:13:118:13 | access to parameter b | 16 | +| Assert.cs:115:23:115:31 | After ... != ... [false] | Assert.cs:115:23:115:31 | After ... != ... [false] | 1 | +| Assert.cs:115:23:115:31 | After ... != ... [true] | Assert.cs:115:36:115:36 | access to parameter b | 2 | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | 2 | +| Assert.cs:118:13:118:13 | After access to parameter b [false] | Assert.cs:118:24:118:25 | "" | 2 | +| Assert.cs:118:13:118:13 | After access to parameter b [true] | Assert.cs:118:17:118:20 | null | 2 | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | ... == ... | 11 | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:122:13:122:13 | access to parameter b | 16 | +| Assert.cs:119:24:119:32 | After ... == ... [false] | Assert.cs:119:37:119:38 | After !... | 4 | +| Assert.cs:119:24:119:32 | After ... == ... [true] | Assert.cs:119:24:119:32 | After ... == ... [true] | 1 | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | 2 | +| Assert.cs:122:13:122:13 | After access to parameter b [false] | Assert.cs:122:24:122:25 | "" | 2 | +| Assert.cs:122:13:122:13 | After access to parameter b [true] | Assert.cs:122:17:122:20 | null | 2 | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | ... == ... | 11 | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:126:13:126:13 | access to parameter b | 16 | +| Assert.cs:123:23:123:31 | After ... == ... [false] | Assert.cs:123:23:123:31 | After ... == ... [false] | 1 | +| Assert.cs:123:23:123:31 | After ... == ... [true] | Assert.cs:123:36:123:36 | access to parameter b | 2 | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | 2 | +| Assert.cs:126:13:126:13 | After access to parameter b [false] | Assert.cs:126:24:126:25 | "" | 2 | +| Assert.cs:126:13:126:13 | After access to parameter b [true] | Assert.cs:126:17:126:20 | null | 2 | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | ... != ... | 11 | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:84:10:84:12 | Normal Exit | 13 | +| Assert.cs:127:24:127:32 | After ... != ... [false] | Assert.cs:127:37:127:38 | After !... | 4 | +| Assert.cs:127:24:127:32 | After ... != ... [true] | Assert.cs:127:24:127:32 | After ... != ... [true] | 1 | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | 2 | +| Assert.cs:131:18:131:32 | Entry | Assert.cs:131:18:131:32 | Exit | 4 | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | 9 | +| Assert.cs:138:10:138:12 | Exceptional Exit | Assert.cs:138:10:138:12 | Exceptional Exit | 1 | +| Assert.cs:138:10:138:12 | Exit | Assert.cs:138:10:138:12 | Exit | 1 | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:138:10:138:12 | Normal Exit | 5 | +| Assignments.cs:1:7:1:17 | Entry | Assignments.cs:1:7:1:17 | Exit | 11 | +| Assignments.cs:3:10:3:10 | Entry | Assignments.cs:3:10:3:10 | Exit | 62 | +| Assignments.cs:14:18:14:35 | Entry | Assignments.cs:14:18:14:35 | Exit | 4 | +| Assignments.cs:17:40:17:40 | Entry | Assignments.cs:17:40:17:40 | Exit | 7 | +| Assignments.cs:27:10:27:23 | Entry | Assignments.cs:27:10:27:23 | Exit | 12 | +| Assignments.cs:32:10:32:22 | Entry | Assignments.cs:32:10:32:22 | Exit | 19 | +| Assignments.cs:38:10:38:11 | Entry | Assignments.cs:38:10:38:11 | Exit | 52 | +| BreakInTry.cs:1:7:1:16 | Entry | BreakInTry.cs:1:7:1:16 | Exit | 11 | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:33:7:36 | access to parameter args | 6 | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:15:17:15:28 | ... == ... | 8 | +| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:9:21:9:31 | ... == ... | 7 | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | 1 | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | 1 | +| BreakInTry.cs:9:21:9:31 | After ... == ... [false] | BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | 4 | +| BreakInTry.cs:9:21:9:31 | After ... == ... [true] | BreakInTry.cs:10:21:10:26 | break; | 3 | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:3:10:3:11 | Exit | 6 | +| BreakInTry.cs:15:17:15:28 | After ... == ... [false] | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | 1 | +| BreakInTry.cs:15:17:15:28 | After ... == ... [true] | BreakInTry.cs:16:17:16:17 | ; | 2 | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:29:22:32 | access to parameter args | 4 | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | Exit | 5 | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:26:21:26:31 | ... == ... | 9 | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | 1 | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | 1 | +| BreakInTry.cs:24:13:33:13 | After try {...} ... | BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | 3 | +| BreakInTry.cs:26:21:26:31 | After ... == ... [false] | BreakInTry.cs:25:13:28:13 | After {...} | 3 | +| BreakInTry.cs:26:21:26:31 | After ... == ... [true] | BreakInTry.cs:27:21:27:26 | break; | 3 | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | ... == ... | 6 | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:30:13:33:13 | After {...} | 2 | +| BreakInTry.cs:31:21:31:32 | After ... == ... [false] | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | 1 | +| BreakInTry.cs:31:21:31:32 | After ... == ... [true] | BreakInTry.cs:32:21:32:21 | ; | 2 | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:42:17:42:28 | ... == ... | 9 | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | Exit | 2 | +| BreakInTry.cs:40:9:52:9 | After try {...} ... | BreakInTry.cs:39:5:54:5 | After {...} | 3 | +| BreakInTry.cs:42:17:42:28 | After ... == ... [false] | BreakInTry.cs:41:9:44:9 | After {...} | 3 | +| BreakInTry.cs:42:17:42:28 | After ... == ... [true] | BreakInTry.cs:43:17:43:23 | return ...; | 3 | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | access to parameter args | 3 | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:46:9:52:9 | After {...} | 2 | +| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:49:21:49:31 | ... == ... | 7 | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | 1 | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | 1 | +| BreakInTry.cs:49:21:49:31 | After ... == ... [false] | BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | 4 | +| BreakInTry.cs:49:21:49:31 | After ... == ... [true] | BreakInTry.cs:50:21:50:26 | break; | 3 | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:60:17:60:28 | ... == ... | 9 | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | Exit | 2 | +| BreakInTry.cs:58:9:70:9 | After try {...} ... | BreakInTry.cs:57:5:71:5 | After {...} | 2 | +| BreakInTry.cs:60:17:60:28 | After ... == ... [false] | BreakInTry.cs:59:9:62:9 | After {...} | 3 | +| BreakInTry.cs:60:17:60:28 | After ... == ... [true] | BreakInTry.cs:61:17:61:23 | return ...; | 3 | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | access to parameter args | 3 | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:64:9:70:9 | After {...} | 2 | +| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | ... == ... | 7 | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | 1 | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | 1 | +| BreakInTry.cs:67:21:67:31 | After ... == ... [false] | BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | 4 | +| BreakInTry.cs:67:21:67:31 | After ... == ... [true] | BreakInTry.cs:68:21:68:26 | break; | 3 | +| CompileTimeOperators.cs:3:7:3:26 | Entry | CompileTimeOperators.cs:3:7:3:26 | Exit | 11 | +| CompileTimeOperators.cs:5:9:5:15 | Entry | CompileTimeOperators.cs:5:9:5:15 | Exit | 7 | +| CompileTimeOperators.cs:10:9:10:14 | Entry | CompileTimeOperators.cs:10:9:10:14 | Exit | 7 | +| CompileTimeOperators.cs:15:10:15:15 | Entry | CompileTimeOperators.cs:15:10:15:15 | Exit | 7 | +| CompileTimeOperators.cs:20:12:20:17 | Entry | CompileTimeOperators.cs:20:12:20:17 | Exit | 7 | +| CompileTimeOperators.cs:26:7:26:22 | Entry | CompileTimeOperators.cs:26:7:26:22 | Exit | 11 | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:36:9:38:9 | After {...} | 14 | +| CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | 1 | +| CompileTimeOperators.cs:28:10:28:10 | Exit | CompileTimeOperators.cs:28:10:28:10 | Exit | 1 | +| CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | CompileTimeOperators.cs:39:9:39:34 | After ...; | 7 | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | Normal Exit | 9 | +| ConditionalAccess.cs:1:7:1:23 | Entry | ConditionalAccess.cs:1:7:1:23 | Exit | 11 | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:26 | access to parameter i | 4 | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:26:3:38 | call to method ToString | 2 | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | 1 | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | 2 | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | 1 | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:12:3:13 | Exit | 3 | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:26 | access to parameter s | 3 | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | ConditionalAccess.cs:5:26:5:34 | access to property Length | 2 | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | 1 | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:10:5:11 | Exit | 3 | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | 4 | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:10:7:11 | Exit | 3 | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | 1 | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | 2 | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:38:7:55 | access to property Length | 2 | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | 1 | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [null] | 2 | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:25 | access to parameter s | 4 | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:25:9:33 | access to property Length | 2 | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | 1 | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | 1 | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:38:9:38 | 0 | 2 | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:9:9:10 | Exit | 3 | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:13 | access to parameter s | 6 | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | Exit | 2 | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | ConditionalAccess.cs:13:13:13:21 | access to property Length | 2 | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | 1 | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:25 | ... > ... | 6 | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | ConditionalAccess.cs:16:13:16:21 | return ...; | 4 | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | ConditionalAccess.cs:14:13:14:21 | return ...; | 4 | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | 3 | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | 3 | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | 1 | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | Exit | 3 | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:23:18:23:29 | (...) ... | 9 | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:24:18:24:24 | (...) ... | 11 | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | ConditionalAccess.cs:23:17:23:38 | access to property Length | 2 | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | 1 | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:25:13:25:14 | "" | 9 | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | ConditionalAccess.cs:24:17:24:37 | call to method ToString | 2 | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | 1 | +| ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | 3 | +| ConditionalAccess.cs:25:13:25:14 | After "" [null] | ConditionalAccess.cs:25:13:25:14 | After "" [null] | 1 | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:21:10:21:11 | Exit | 7 | +| ConditionalAccess.cs:30:10:30:12 | Entry | ConditionalAccess.cs:30:10:30:12 | Exit | 8 | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:35:9:35:12 | access to property Prop | 14 | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | ConditionalAccess.cs:35:9:35:24 | call to method Out | 3 | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | 1 | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:32:10:32:11 | Exit | 5 | +| ConditionalAccess.cs:42:9:42:11 | Entry | ConditionalAccess.cs:42:9:42:11 | Exit | 7 | +| ConditionalAccess.cs:43:9:43:11 | Entry | ConditionalAccess.cs:43:9:43:11 | Exit | 4 | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | 6 | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:48:12:48:25 | ... = ... | 5 | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | 1 | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | 6 | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:49:12:49:32 | ... = ... | 5 | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | 1 | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | 6 | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:50:12:50:23 | ... = ... | 6 | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | 1 | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | 7 | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:51:9:51:16 | access to property Prop | 2 | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | 1 | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | ConditionalAccess.cs:51:18:51:31 | ... = ... | 5 | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | 1 | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | 7 | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:52:9:52:16 | access to property Prop | 2 | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | 1 | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | ConditionalAccess.cs:52:18:52:38 | ... = ... | 5 | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | 1 | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 6 | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:53:12:53:25 | ... -= ... | 5 | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | 1 | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 6 | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:54:12:54:29 | ... += ... | 5 | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | 1 | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:46:10:46:11 | Exit | 5 | +| ConditionalAccess.cs:60:26:60:38 | Entry | ConditionalAccess.cs:60:26:60:38 | Exit | 12 | +| Conditions.cs:1:7:1:16 | Entry | Conditions.cs:1:7:1:16 | Exit | 11 | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:5:13:5:15 | access to parameter inc | 4 | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | 4 | +| Conditions.cs:5:13:5:15 | After access to parameter inc [false] | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | 1 | +| Conditions.cs:5:13:5:15 | After access to parameter inc [true] | Conditions.cs:6:13:6:16 | After ...; | 7 | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:3:10:3:19 | Exit | 4 | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:8:13:8:16 | After ...; | 8 | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:7:13:7:16 | After !... [false] | 2 | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:14:13:14:13 | access to parameter b | 11 | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:13:16:17 | ... > ... | 6 | +| Conditions.cs:14:13:14:13 | After access to parameter b [false] | Conditions.cs:14:13:14:13 | After access to parameter b [false] | 1 | +| Conditions.cs:14:13:14:13 | After access to parameter b [true] | Conditions.cs:15:13:15:16 | After ...; | 7 | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:11:9:11:10 | Exit | 6 | +| Conditions.cs:16:13:16:17 | After ... > ... [false] | Conditions.cs:16:13:16:17 | After ... > ... [false] | 1 | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:18:17:18 | access to parameter b | 4 | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:17:13:18:20 | After if (...) ... | 1 | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:18:17:18:20 | After ...; | 8 | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:17:17:17:18 | After !... [false] | 2 | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:25:13:25:14 | access to parameter b1 | 11 | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | 3 | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | 1 | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:17:26:18 | access to parameter b2 | 3 | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:26:13:27:20 | After if (...) ... | 1 | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | 1 | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | Conditions.cs:27:17:27:20 | After ...; | 7 | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:22:9:22:10 | Exit | 6 | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | 1 | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | Conditions.cs:29:13:29:16 | After ...; | 7 | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:37:13:37:14 | access to parameter b1 | 18 | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | 3 | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | 1 | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | Conditions.cs:38:13:38:20 | After ...; | 8 | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | 3 | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | 1 | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | Conditions.cs:40:13:40:16 | After ...; | 7 | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:33:9:33:10 | Exit | 6 | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | 1 | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | Conditions.cs:42:13:42:16 | After ...; | 7 | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:49:9:53:9 | while (...) ... | 10 | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | ... > ... | 8 | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:46:9:46:10 | Exit | 7 | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:51:17:51:17 | access to parameter b | 4 | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:50:9:53:9 | After {...} | 2 | +| Conditions.cs:51:17:51:17 | After access to parameter b [false] | Conditions.cs:51:17:51:17 | After access to parameter b [false] | 1 | +| Conditions.cs:51:17:51:17 | After access to parameter b [true] | Conditions.cs:52:17:52:20 | After ...; | 7 | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:60:9:64:9 | while (...) ... | 10 | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | ... > ... | 8 | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:65:13:65:13 | access to parameter b | 4 | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:62:17:62:17 | access to parameter b | 4 | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:61:9:64:9 | After {...} | 2 | +| Conditions.cs:62:17:62:17 | After access to parameter b [false] | Conditions.cs:62:17:62:17 | After access to parameter b [false] | 1 | +| Conditions.cs:62:17:62:17 | After access to parameter b [true] | Conditions.cs:63:17:63:20 | After ...; | 7 | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:57:9:57:10 | Exit | 6 | +| Conditions.cs:65:13:65:13 | After access to parameter b [false] | Conditions.cs:65:13:65:13 | After access to parameter b [false] | 1 | +| Conditions.cs:65:13:65:13 | After access to parameter b [true] | Conditions.cs:66:13:66:16 | After ...; | 7 | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:27:74:28 | access to parameter ss | 25 | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:13:81:13 | access to local variable b | 3 | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:76:17:76:17 | access to local variable b | 4 | -| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:19 | ...++ | 3 | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:21 | ... > ... | 4 | -| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:25 | ... = ... | 3 | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:13:81:13 | access to local variable b | 2 | -| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:15 | ...++ | 3 | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:70:9:70:10 | exit M6 | 4 | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:90:27:90:28 | access to parameter ss | 12 | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | 1 | +| Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | 1 | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | 1 | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:17:78:21 | ... > ... | 6 | +| Conditions.cs:76:17:76:17 | After access to local variable b [false] | Conditions.cs:76:17:76:17 | After access to local variable b [false] | 1 | +| Conditions.cs:76:17:76:17 | After access to local variable b [true] | Conditions.cs:77:17:77:20 | After ...; | 7 | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | 3 | +| Conditions.cs:78:17:78:21 | After ... > ... [false] | Conditions.cs:78:17:78:21 | After ... > ... [false] | 1 | +| Conditions.cs:78:17:78:21 | After ... > ... [true] | Conditions.cs:79:17:79:26 | After ...; | 8 | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:70:9:70:10 | Exit | 6 | +| Conditions.cs:81:13:81:13 | After access to local variable b [false] | Conditions.cs:81:13:81:13 | After access to local variable b [false] | 1 | +| Conditions.cs:81:13:81:13 | After access to local variable b [true] | Conditions.cs:82:13:82:16 | After ...; | 7 | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:27:90:28 | access to parameter ss | 25 | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | Exit | 6 | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:92:17:92:17 | access to local variable b | 4 | -| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:19 | ...++ | 3 | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:21 | ... > ... | 4 | -| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:25 | ... = ... | 3 | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | 2 | -| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:19 | ...++ | 3 | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | exit M7 | 4 | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:105:13:105:13 | access to parameter b | 8 | -| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:19 | ... += ... | 4 | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:24 | ... > ... | 5 | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | 2 | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:17:108:18 | [false] !... | 1 | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:17:108:18 | [true] !... | 1 | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:23 | ... += ... | 4 | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:102:12:102:13 | exit M8 | 4 | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:116:18:116:22 | Int32 i = ... | 8 | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | exit M9 | 2 | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:39 | ... < ... | 4 | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:44 | ...++ | 2 | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:18:119:21 | access to local variable last | 11 | -| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:119:17:119:21 | [false] !... | 1 | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:119:17:119:21 | [true] !... | 1 | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:22 | ... = ... | 3 | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | 2 | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:24 | ... = ... | 3 | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:9:140:9 | while (...) ... | 3 | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | true | 1 | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:133:17:133:22 | access to field Field1 | 4 | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:135:21:135:26 | access to field Field2 | 4 | -| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:137:21:137:37 | call to method ToString | 5 | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:17:145:17 | access to parameter b | 4 | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 | 2 | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:146:13:146:13 | access to parameter b | 4 | -| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | 1 | -| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | 1 | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:48 | call to method WriteLine | 6 | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:48 | call to method WriteLine | 6 | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods | 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 | -| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:26:10:26:11 | exit M4 | 7 | -| ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | exit M5 | 7 | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:44:9:47:9 | catch (...) {...} | 8 | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 | 2 | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | 2 | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | 1 | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | 2 | -| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | exit M7 | 6 | -| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | exit M8 | 6 | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:68:13:68:13 | access to parameter b | 4 | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | 1 | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | 1 | -| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | 3 | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:74:13:74:13 | access to parameter b | 4 | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | exit ErrorAlways | 2 | -| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:13:75:34 | throw ...; | 2 | -| ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:13:77:45 | throw ...; | 3 | -| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 | 6 | -| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 | 5 | -| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:87:10:87:13 | exit Exit | 7 | -| ExitMethods.cs:92:10:92:18 | enter ExitInTry | ExitMethods.cs:92:10:92:18 | exit ExitInTry | 9 | -| ExitMethods.cs:105:10:105:24 | enter ApplicationExit | ExitMethods.cs:105:10:105:24 | exit ApplicationExit | 6 | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:112:16:112:25 | ... != ... | 6 | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr | ExitMethods.cs:110:13:110:21 | exit ThrowExpr | 1 | -| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (normal) | 7 | -| ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | 4 | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:16:117:30 | call to method Contains | 5 | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall | 4 | -| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:34:117:34 | 0 | 1 | -| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:38:117:38 | 1 | 1 | -| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | 7 | -| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | 7 | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:33:132:49 | call to method IsFalse | 3 | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse | 1 | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | 1 | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | 1 | -| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | 8 | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:142:13:142:13 | access to parameter b | 4 | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow | 2 | -| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:13:143:42 | call to method Throw | 3 | -| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:13:145:52 | call to method Throw | 4 | -| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:5:23:5:29 | exit ToInt32 | 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 | 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 | -| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | exit M1 (normal) | 1 | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:23:13:23:37 | call to method WriteLine | 7 | -| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 | 1 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) | 1 | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) | 1 | -| Finally.cs:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | return ...; | 1 | +| Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | 1 | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | 1 | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:17:94:21 | ... > ... | 6 | +| Conditions.cs:92:17:92:17 | After access to local variable b [false] | Conditions.cs:92:17:92:17 | After access to local variable b [false] | 1 | +| Conditions.cs:92:17:92:17 | After access to local variable b [true] | Conditions.cs:93:17:93:20 | After ...; | 7 | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | 3 | +| Conditions.cs:94:17:94:21 | After ... > ... [false] | Conditions.cs:94:17:94:21 | After ... > ... [false] | 1 | +| Conditions.cs:94:17:94:21 | After ... > ... [true] | Conditions.cs:95:17:95:26 | After ...; | 8 | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | 3 | +| Conditions.cs:96:17:96:17 | After access to local variable b [false] | Conditions.cs:96:17:96:17 | After access to local variable b [false] | 1 | +| Conditions.cs:96:17:96:17 | After access to local variable b [true] | Conditions.cs:97:17:97:20 | After ...; | 7 | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:105:13:105:13 | access to parameter b | 14 | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:13:107:24 | ... > ... | 9 | +| Conditions.cs:105:13:105:13 | After access to parameter b [false] | Conditions.cs:105:13:105:13 | After access to parameter b [false] | 1 | +| Conditions.cs:105:13:105:13 | After access to parameter b [true] | Conditions.cs:106:13:106:20 | After ...; | 8 | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:102:12:102:13 | Exit | 6 | +| Conditions.cs:107:13:107:24 | After ... > ... [false] | Conditions.cs:107:13:107:24 | After ... > ... [false] | 1 | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:18:108:18 | access to parameter b | 4 | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:108:13:109:24 | After if (...) ... | 1 | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:109:17:109:24 | After ...; | 9 | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:108:17:108:18 | After !... [false] | 2 | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:116:18:116:22 | After Int32 i = ... | 15 | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:113:10:113:11 | Exit | 5 | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:119:18:119:21 | access to local variable last | 23 | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | ... < ... | 7 | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | 3 | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:120:17:120:23 | After ...; | 9 | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:119:17:119:21 | After !... [false] | 2 | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:116:42:116:44 | After ...++ | 7 | +| Conditions.cs:121:17:121:20 | After access to local variable last [false] | Conditions.cs:121:17:121:20 | After access to local variable last [false] | 1 | +| Conditions.cs:121:17:121:20 | After access to local variable last [true] | Conditions.cs:122:17:122:25 | After ...; | 8 | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:131:9:140:9 | while (...) ... | 3 | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:133:17:133:22 | access to field Field1 | 8 | +| Conditions.cs:133:13:139:13 | After if (...) ... | Conditions.cs:132:9:140:9 | After {...} | 2 | +| Conditions.cs:133:17:133:22 | After access to field Field1 [false] | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | 1 | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:135:21:135:26 | access to field Field2 | 6 | +| Conditions.cs:135:17:138:17 | After if (...) ... | Conditions.cs:134:13:139:13 | After {...} | 2 | +| Conditions.cs:135:21:135:26 | After access to field Field2 [false] | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | 1 | +| Conditions.cs:135:21:135:26 | After access to field Field2 [true] | Conditions.cs:136:17:138:17 | After {...} | 12 | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:145:17:145:17 | access to parameter b | 7 | +| Conditions.cs:145:17:145:17 | After access to parameter b [false] | Conditions.cs:145:27:145:29 | "b" | 2 | +| Conditions.cs:145:17:145:17 | After access to parameter b [true] | Conditions.cs:145:21:145:23 | "a" | 2 | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:146:13:146:13 | access to parameter b | 6 | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:143:10:143:12 | Exit | 4 | +| Conditions.cs:146:13:146:13 | After access to parameter b [false] | Conditions.cs:149:13:149:49 | After ...; | 14 | +| Conditions.cs:146:13:146:13 | After access to parameter b [true] | Conditions.cs:147:13:147:49 | After ...; | 14 | +| ExitMethods.cs:6:7:6:17 | Entry | ExitMethods.cs:6:7:6:17 | Exit | 11 | +| ExitMethods.cs:8:10:8:11 | Entry | ExitMethods.cs:8:10:8:11 | Exit | 12 | +| ExitMethods.cs:14:10:14:11 | Entry | ExitMethods.cs:14:10:14:11 | Exit | 12 | +| ExitMethods.cs:20:10:20:11 | Entry | ExitMethods.cs:20:10:20:11 | Exit | 8 | +| ExitMethods.cs:26:10:26:11 | Entry | ExitMethods.cs:26:10:26:11 | Exit | 8 | +| ExitMethods.cs:32:10:32:11 | Entry | ExitMethods.cs:32:10:32:11 | Exit | 8 | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:44:9:47:9 | catch (...) {...} | 9 | +| ExitMethods.cs:38:10:38:11 | Exit | ExitMethods.cs:38:10:38:11 | Exit | 1 | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:38:10:38:11 | Normal Exit | 1 | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | ExitMethods.cs:46:13:46:19 | return ...; | 4 | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | catch (...) {...} | 2 | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:50:13:50:19 | return ...; | 4 | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | ExitMethods.cs:38:10:38:11 | Exceptional Exit | 2 | +| ExitMethods.cs:54:10:54:11 | Entry | ExitMethods.cs:54:10:54:11 | Exit | 7 | +| ExitMethods.cs:60:10:60:11 | Entry | ExitMethods.cs:60:10:60:11 | Exit | 7 | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:68:13:68:13 | access to parameter b | 4 | +| ExitMethods.cs:66:17:66:26 | Exit | ExitMethods.cs:66:17:66:26 | Exit | 1 | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:66:17:66:26 | Normal Exit | 4 | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | ExitMethods.cs:66:17:66:26 | Exceptional Exit | 7 | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:74:13:74:13 | access to parameter b | 4 | +| ExitMethods.cs:72:17:72:27 | Exceptional Exit | ExitMethods.cs:72:17:72:27 | Exit | 2 | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | ExitMethods.cs:77:13:77:45 | throw ...; | 7 | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | ExitMethods.cs:75:13:75:34 | throw ...; | 6 | +| ExitMethods.cs:80:17:80:28 | Entry | ExitMethods.cs:80:17:80:28 | Exit | 9 | +| ExitMethods.cs:85:17:85:28 | Entry | ExitMethods.cs:85:17:85:28 | Exit | 8 | +| ExitMethods.cs:87:10:87:13 | Entry | ExitMethods.cs:87:10:87:13 | Exit | 8 | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:99:9:102:9 | After {...} | 16 | +| ExitMethods.cs:92:10:92:18 | Exceptional Exit | ExitMethods.cs:92:10:92:18 | Exceptional Exit | 1 | +| ExitMethods.cs:92:10:92:18 | Exit | ExitMethods.cs:92:10:92:18 | Exit | 1 | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:92:10:92:18 | Normal Exit | 3 | +| ExitMethods.cs:105:10:105:24 | Entry | ExitMethods.cs:105:10:105:24 | Exit | 7 | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:112:16:112:25 | ... != ... | 11 | +| ExitMethods.cs:110:13:110:21 | Exit | ExitMethods.cs:110:13:110:21 | Exit | 1 | +| ExitMethods.cs:112:16:112:25 | After ... != ... [false] | ExitMethods.cs:110:13:110:21 | Exceptional Exit | 8 | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:110:13:110:21 | Normal Exit | 12 | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:117:16:117:30 | call to method Contains | 8 | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | ExitMethods.cs:117:38:117:38 | 1 | 2 | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | ExitMethods.cs:117:34:117:34 | 0 | 2 | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:115:16:115:34 | Exit | 4 | +| ExitMethods.cs:120:17:120:32 | Entry | ExitMethods.cs:120:17:120:32 | Exit | 8 | +| ExitMethods.cs:126:17:126:33 | Entry | ExitMethods.cs:126:17:126:33 | Exit | 8 | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:33:132:49 | call to method IsFalse | 4 | +| ExitMethods.cs:132:10:132:20 | Exceptional Exit | ExitMethods.cs:132:10:132:20 | Exceptional Exit | 1 | +| ExitMethods.cs:132:10:132:20 | Exit | ExitMethods.cs:132:10:132:20 | Exit | 1 | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:10:132:20 | Normal Exit | 2 | +| ExitMethods.cs:134:17:134:33 | Entry | ExitMethods.cs:134:17:134:33 | Exit | 9 | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:142:13:142:13 | access to parameter b | 4 | +| ExitMethods.cs:140:17:140:42 | Exceptional Exit | ExitMethods.cs:140:17:140:42 | Exit | 2 | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | ExitMethods.cs:145:13:145:52 | call to method Throw | 8 | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | ExitMethods.cs:143:13:143:42 | call to method Throw | 5 | +| Extensions.cs:5:23:5:29 | Entry | Extensions.cs:5:23:5:29 | Exit | 10 | +| Extensions.cs:10:24:10:29 | Entry | Extensions.cs:10:24:10:29 | Exit | 11 | +| Extensions.cs:15:23:15:33 | Entry | Extensions.cs:15:23:15:33 | Exit | 7 | +| Extensions.cs:20:17:20:20 | Entry | Extensions.cs:20:17:20:20 | Exit | 37 | +| Finally.cs:3:14:3:20 | Entry | Finally.cs:3:14:3:20 | Exit | 11 | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:11:13:11:37 | call to method WriteLine | 8 | +| Finally.cs:7:10:7:11 | Exceptional Exit | Finally.cs:7:10:7:11 | Exceptional Exit | 1 | +| Finally.cs:7:10:7:11 | Exit | Finally.cs:7:10:7:11 | Exit | 1 | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:7:10:7:11 | Normal Exit | 3 | +| Finally.cs:11:13:11:37 | After call to method WriteLine | Finally.cs:10:9:12:9 | After {...} | 3 | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:14:9:16:9 | After {...} | 8 | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:23:13:23:37 | call to method WriteLine | 8 | +| Finally.cs:19:10:19:11 | Exceptional Exit | Finally.cs:19:10:19:11 | Exceptional Exit | 1 | +| Finally.cs:19:10:19:11 | Exit | Finally.cs:19:10:19:11 | Exit | 1 | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:19:10:19:11 | Normal Exit | 1 | +| Finally.cs:21:9:51:9 | After try {...} ... | Finally.cs:20:5:52:5 | After {...} | 2 | +| Finally.cs:23:13:23:37 | After call to method WriteLine | Finally.cs:24:13:24:19 | return ...; | 4 | +| Finally.cs:26:9:29:9 | After catch (...) {...} [match] | Finally.cs:28:13:28:18 | throw ...; | 7 | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | catch (...) {...} | 2 | | Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | catch (...) {...} | 1 | -| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:48:26:51 | true | 2 | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | 2 | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | 1 | -| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:34:21:34:24 | true | 6 | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:38:17:38:44 | throw ...; | 5 | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | 1 | -| Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} | 1 | -| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:46:13:46:19 | return ...; | 3 | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | 4 | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:58:13:58:37 | call to method WriteLine | 7 | -| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 | 1 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) | 1 | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) | 1 | -| Finally.cs:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | return ...; | 1 | +| Finally.cs:30:9:40:9 | After catch (...) {...} [match] | Finally.cs:38:17:38:44 | throw ...; | 17 | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | catch (...) {...} | 2 | +| Finally.cs:41:9:43:9 | After catch (...) {...} [match] | Finally.cs:42:9:43:9 | {...} | 2 | +| Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | Finally.cs:46:13:46:19 | return ...; | 6 | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:49:9:51:9 | After {...} | 8 | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:58:13:58:37 | call to method WriteLine | 8 | +| Finally.cs:54:10:54:11 | Exceptional Exit | Finally.cs:54:10:54:11 | Exceptional Exit | 1 | +| Finally.cs:54:10:54:11 | Exit | Finally.cs:54:10:54:11 | Exit | 1 | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:54:10:54:11 | Normal Exit | 1 | +| Finally.cs:56:9:71:9 | After try {...} ... | Finally.cs:55:5:72:5 | After {...} | 2 | +| Finally.cs:58:13:58:37 | After call to method WriteLine | Finally.cs:59:13:59:19 | return ...; | 4 | +| Finally.cs:61:9:64:9 | After catch (...) {...} [match] | Finally.cs:63:13:63:18 | throw ...; | 7 | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | catch (...) {...} | 2 | | Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | catch (...) {...} | 1 | -| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:48:61:51 | true | 2 | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | 2 | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | 1 | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:51 | ... != ... | 5 | -| Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | 1 | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | 4 | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:77:9:100:9 | while (...) ... | 6 | -| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 | 1 | -| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) | 1 | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | exit M4 (normal) | 1 | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:20 | ... > ... | 3 | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:81:21:81:26 | ... == ... | 7 | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; | 1 | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:26 | ... == ... | 4 | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; | 1 | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:26 | ... == ... | 4 | -| Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; | 1 | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:92:25:92:30 | ... == ... | 7 | -| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:25:93:46 | throw ...; | 1 | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | 1 | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:23 | ...-- | 4 | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:107:17:107:21 | access to field Field | 7 | -| Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | exit M5 | 1 | -| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 (abnormal) | 1 | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | exit M5 (normal) | 1 | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | 1 | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... | 2 | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; | 1 | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | access to field Field | 3 | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | 1 | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | 2 | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | 1 | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | 1 | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | ... == ... | 7 | -| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... | 1 | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... | 1 | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:40 | call to method WriteLine | 4 | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:32 | ... > ... | 6 | -| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:36 | call to method WriteLine | 3 | -| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | exit M6 | 12 | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | exit M7 | 13 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:151:17:151:28 | ... == ... | 8 | -| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 | 1 | -| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 (abnormal) | 1 | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 (normal) | 1 | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | 1 | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | 1 | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:31 | access to property Length | 6 | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | 2 | -| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | 1 | -| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | 2 | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:35:65:51 | ... != ... | 9 | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | 1 | +| Finally.cs:65:35:65:51 | After ... != ... [false] | Finally.cs:65:35:65:51 | After ... != ... [false] | 1 | +| Finally.cs:65:35:65:51 | After ... != ... [true] | Finally.cs:66:9:67:9 | {...} | 2 | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:69:9:71:9 | After {...} | 8 | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:77:9:100:9 | while (...) ... | 10 | +| Finally.cs:74:10:74:11 | Exceptional Exit | Finally.cs:74:10:74:11 | Exceptional Exit | 1 | +| Finally.cs:74:10:74:11 | Exit | Finally.cs:74:10:74:11 | Exit | 1 | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:74:10:74:11 | Normal Exit | 1 | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:75:5:101:5 | After {...} | 2 | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:16:77:20 | ... > ... | 5 | +| Finally.cs:77:16:77:20 | After ... > ... [false] | Finally.cs:77:16:77:20 | After ... > ... [false] | 1 | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:81:21:81:26 | ... == ... | 9 | +| Finally.cs:79:13:99:13 | After try {...} ... | Finally.cs:78:9:100:9 | After {...} | 2 | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:83:21:83:26 | ... == ... | 7 | +| Finally.cs:81:21:81:26 | After ... == ... [true] | Finally.cs:82:21:82:27 | return ...; | 3 | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | ... == ... | 7 | +| Finally.cs:83:21:83:26 | After ... == ... [true] | Finally.cs:84:21:84:29 | continue; | 3 | +| Finally.cs:85:21:85:26 | After ... == ... [false] | Finally.cs:80:13:87:13 | After {...} | 3 | +| Finally.cs:85:21:85:26 | After ... == ... [true] | Finally.cs:86:21:86:26 | break; | 3 | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:92:25:92:30 | ... == ... | 8 | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:89:13:99:13 | After {...} | 2 | +| Finally.cs:92:25:92:30 | After ... == ... [false] | Finally.cs:91:17:94:17 | After {...} | 3 | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:93:31:93:45 | object creation of type Exception | 4 | +| Finally.cs:93:31:93:45 | After object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | 2 | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:96:17:98:17 | After {...} | 8 | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:107:17:107:21 | access to field Field | 10 | +| Finally.cs:103:10:103:11 | Exceptional Exit | Finally.cs:103:10:103:11 | Exceptional Exit | 1 | +| Finally.cs:103:10:103:11 | Exit | Finally.cs:103:10:103:11 | Exit | 1 | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:103:10:103:11 | Normal Exit | 1 | +| Finally.cs:105:9:118:9 | After try {...} ... | Finally.cs:104:5:119:5 | After {...} | 2 | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:28 | access to property Length | 2 | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:17:107:33 | ... == ... | 3 | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:109:17:109:21 | access to field Field | 8 | +| Finally.cs:107:17:107:33 | After ... == ... [true] | Finally.cs:108:17:108:23 | return ...; | 3 | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:28 | access to property Length | 2 | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:17:109:33 | ... == ... | 3 | +| Finally.cs:109:17:109:33 | After ... == ... [false] | Finally.cs:106:9:111:9 | After {...} | 3 | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | 4 | +| Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | 2 | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | ... == ... | 13 | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:17:116:32 | ... > ... | 12 | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:115:17:115:41 | After ...; | 11 | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:114:17:114:36 | After !... [false] | 2 | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:113:9:118:9 | After {...} | 2 | +| Finally.cs:116:17:116:32 | After ... > ... [false] | Finally.cs:116:17:116:32 | After ... > ... [false] | 1 | +| Finally.cs:116:17:116:32 | After ... > ... [true] | Finally.cs:117:17:117:37 | After ...; | 7 | +| Finally.cs:121:10:121:11 | Entry | Finally.cs:121:10:121:11 | Exit | 23 | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:137:13:137:36 | call to method WriteLine | 8 | +| Finally.cs:137:13:137:36 | After call to method WriteLine | Finally.cs:136:9:138:9 | After {...} | 3 | +| Finally.cs:140:9:143:9 | {...} | Finally.cs:133:10:133:11 | Exit | 9 | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:151:17:151:28 | ... == ... | 9 | +| Finally.cs:147:10:147:11 | Exceptional Exit | Finally.cs:147:10:147:11 | Exceptional Exit | 1 | +| Finally.cs:147:10:147:11 | Exit | Finally.cs:147:10:147:11 | Exit | 1 | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:147:10:147:11 | Normal Exit | 3 | +| Finally.cs:151:17:151:28 | After ... == ... [false] | Finally.cs:150:9:153:9 | After {...} | 3 | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | 4 | +| Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | 2 | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:31 | access to property Length | 8 | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:155:9:169:9 | After {...} | 2 | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:21:158:36 | ... == ... | 3 | +| Finally.cs:158:21:158:36 | After ... == ... [false] | Finally.cs:157:13:160:13 | After {...} | 3 | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:159:27:159:44 | object creation of type Exception | 5 | +| Finally.cs:159:27:159:44 | After object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | 2 | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:39:161:54 | ... == ... | 9 | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:166:13:168:13 | After {...} | 11 | | Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | catch (...) {...} | 1 | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:54 | ... == ... | 5 | -| Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | 6 | -| Finally.cs:165:13:168:13 | 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 | 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 | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) | 1 | -| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:180:21:180:43 | throw ...; | 1 | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | 1 | +| Finally.cs:161:39:161:54 | After ... == ... [false] | Finally.cs:161:39:161:54 | After ... == ... [false] | 1 | +| Finally.cs:161:39:161:54 | After ... == ... [true] | Finally.cs:162:13:164:13 | After {...} | 13 | +| Finally.cs:172:11:172:20 | Entry | Finally.cs:172:11:172:20 | Exit | 11 | +| Finally.cs:173:11:173:20 | Entry | Finally.cs:173:11:173:20 | Exit | 11 | +| Finally.cs:174:11:174:20 | Entry | Finally.cs:174:11:174:20 | Exit | 11 | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:180:17:180:18 | access to parameter b1 | 6 | +| Finally.cs:176:10:176:11 | Exceptional Exit | Finally.cs:176:10:176:11 | Exceptional Exit | 1 | +| Finally.cs:176:10:176:11 | Exit | Finally.cs:176:10:176:11 | Exit | 1 | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:176:10:176:11 | Normal Exit | 3 | +| Finally.cs:180:17:180:18 | After access to parameter b1 [false] | Finally.cs:179:9:181:9 | After {...} | 3 | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:180:27:180:42 | object creation of type ExceptionA | 4 | +| Finally.cs:180:27:180:42 | After object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | 2 | | Finally.cs:183:9:192:9 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | 5 | -| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:25:186:47 | throw ...; | 1 | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | 1 | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:183:9:192:9 | After {...} | 2 | +| Finally.cs:186:21:186:22 | After access to parameter b2 [false] | Finally.cs:185:13:187:13 | After {...} | 3 | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:186:31:186:46 | object creation of type ExceptionB | 4 | +| Finally.cs:186:31:186:46 | After object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | 2 | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:38:188:39 | access to parameter b2 | 2 | +| Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | 1 | | Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | 1 | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | 1 | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:21:190:22 | access to parameter b1 | 3 | -| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:25:190:47 | throw ...; | 2 | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:17:199:18 | access to parameter b1 | 6 | -| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 | 1 | -| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) | 1 | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | 1 | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | 1 | +| Finally.cs:188:38:188:39 | After access to parameter b2 [false] | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | 1 | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:190:21:190:22 | access to parameter b1 | 4 | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:189:13:191:13 | After {...} | 3 | +| Finally.cs:190:21:190:22 | After access to parameter b1 [true] | Finally.cs:190:25:190:47 | throw ...; | 6 | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:199:17:199:18 | access to parameter b1 | 6 | +| Finally.cs:195:10:195:12 | Exceptional Exit | Finally.cs:195:10:195:12 | Exceptional Exit | 1 | +| Finally.cs:195:10:195:12 | Exit | Finally.cs:195:10:195:12 | Exit | 1 | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:195:10:195:12 | Normal Exit | 13 | +| Finally.cs:199:17:199:18 | After access to parameter b1 [false] | Finally.cs:198:9:200:9 | After {...} | 3 | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:199:27:199:42 | object creation of type ExceptionA | 4 | +| Finally.cs:199:27:199:42 | After object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | 2 | | Finally.cs:202:9:212:9 | {...} | Finally.cs:205:21:205:22 | access to parameter b2 | 5 | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | 1 | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | 1 | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:202:9:212:9 | After {...} | 12 | +| Finally.cs:205:21:205:22 | After access to parameter b2 [false] | Finally.cs:204:13:206:13 | After {...} | 3 | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:205:31:205:46 | object creation of type ExceptionB | 4 | +| Finally.cs:205:31:205:46 | After object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | 2 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | 3 | -| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | 2 | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | ... = ... | 5 | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 6 | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:220:13:220:36 | call to method WriteLine | 7 | -| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:224:13:224:38 | call to method WriteLine | 5 | -| Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | exit M11 | 9 | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:239:21:239:22 | access to parameter b1 | 8 | -| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 | 1 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) | 1 | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | 1 | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | 1 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:208:13:210:13 | After {...} | 3 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [true] | Finally.cs:209:25:209:47 | throw ...; | 6 | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:220:13:220:36 | call to method WriteLine | 8 | +| Finally.cs:220:13:220:36 | After call to method WriteLine | Finally.cs:219:9:221:9 | After {...} | 3 | +| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:223:9:225:9 | After {...} | 10 | +| Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | Exit | 18 | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:239:21:239:22 | access to parameter b1 | 8 | +| Finally.cs:233:10:233:12 | Exceptional Exit | Finally.cs:233:10:233:12 | Exceptional Exit | 1 | +| Finally.cs:233:10:233:12 | Exit | Finally.cs:233:10:233:12 | Exit | 1 | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:233:10:233:12 | Normal Exit | 9 | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:254:13:254:44 | call to method WriteLine | 5 | +| Finally.cs:239:21:239:22 | After access to parameter b1 [false] | Finally.cs:238:13:241:13 | After {...} | 3 | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:240:27:240:42 | object creation of type ExceptionA | 4 | +| Finally.cs:240:27:240:42 | After object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | 2 | | Finally.cs:243:13:253:13 | {...} | Finally.cs:246:25:246:26 | access to parameter b2 | 5 | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | 1 | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | 1 | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | 4 | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:44 | call to method WriteLine | 3 | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:46 | call to method WriteLine | 4 | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | exit M12 (normal) | 4 | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:272:13:272:18 | ... += ... | 15 | -| 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 | 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 | -| Foreach.cs:8:22:8:24 | String arg | Foreach.cs:9:13:9:13 | ; | 2 | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:14:27:14:30 | access to parameter args | 3 | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | exit M2 | 2 | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | 1 | -| Foreach.cs:14:22:14:22 | String _ | Foreach.cs:15:13:15:13 | ; | 2 | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:20:27:20:27 | access to parameter e | 3 | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | exit M3 | 2 | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | 1 | -| Foreach.cs:20:22:20:22 | String x | Foreach.cs:21:11:21:11 | ; | 2 | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | call to method ToArray | 1 | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:68 | ... ?? ... | 1 | -| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty | 1 | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:26:36:26:39 | access to parameter args | 3 | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | exit M4 | 2 | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | 1 | -| Foreach.cs:26:23:26:23 | String x | Foreach.cs:27:11:27:11 | ; | 4 | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:32:32:32:35 | access to parameter args | 3 | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | exit M5 | 2 | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | 1 | -| Foreach.cs:32:23:32:23 | String x | Foreach.cs:33:11:33:11 | ; | 4 | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:38:39:38:42 | access to parameter args | 3 | -| 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 | 15 | -| Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | exit Initializers | 4 | -| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | exit Initializers | 7 | -| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | exit Initializers | 7 | -| Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | exit M | 23 | -| Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | exit H | 6 | -| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | exit | 11 | -| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor | 7 | -| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | exit | 7 | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 12 | -| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | exit Sub | 10 | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 14 | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers | 7 | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | exit Compound | 7 | -| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | exit Test | 116 | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | 7 | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:9:13:9:28 | ... == ... | 7 | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | 2 | -| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | 1 | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | 4 | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | 1 | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | 11 | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 | 2 | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | 4 | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:24:29:24:32 | access to parameter args | 3 | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 | 2 | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | access to parameter args | 2 | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | 4 | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | 7 | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 | 2 | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | 4 | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | 19 | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 | 2 | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | 2 | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | 6 | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | 12 | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 | 2 | -| LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:49:9:52:9 | {...} | 2 | -| LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:51:13:51:23 | goto ...; | 5 | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | 11 | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 | 2 | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | 1 | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:243:13:253:13 | After {...} | 2 | +| Finally.cs:246:25:246:26 | After access to parameter b2 [false] | Finally.cs:245:17:248:17 | After {...} | 3 | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:247:31:247:46 | object creation of type ExceptionA | 4 | +| Finally.cs:247:31:247:46 | After object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | 2 | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | After {...} | 8 | +| Finally.cs:254:13:254:44 | After call to method WriteLine | Finally.cs:236:9:255:9 | After {...} | 3 | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | After {...} | 8 | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:267:13:267:34 | call to method WriteLine | 8 | +| Finally.cs:263:10:263:12 | Exceptional Exit | Finally.cs:263:10:263:12 | Exceptional Exit | 1 | +| Finally.cs:263:10:263:12 | Exit | Finally.cs:263:10:263:12 | Exit | 1 | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:263:10:263:12 | Normal Exit | 3 | +| Finally.cs:267:13:267:34 | After call to method WriteLine | Finally.cs:266:9:268:9 | After {...} | 3 | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:270:9:273:9 | After {...} | 15 | +| Foreach.cs:4:7:4:13 | Entry | Foreach.cs:4:7:4:13 | Exit | 11 | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:29:8:32 | access to parameter args | 4 | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | Exit | 4 | +| Foreach.cs:8:22:8:24 | String arg | Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | 3 | +| Foreach.cs:8:29:8:32 | After access to parameter args [empty] | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | 1 | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | 1 | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:27:14:30 | access to parameter args | 4 | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | Exit | 4 | +| Foreach.cs:14:22:14:22 | String _ | Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | 3 | +| Foreach.cs:14:27:14:30 | After access to parameter args [empty] | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | 1 | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | 1 | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:27 | access to parameter e | 6 | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | Exit | 4 | +| Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | 3 | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:20:27:20:38 | call to method ToArray | 2 | +| Foreach.cs:20:27:20:27 | After access to parameter e [null] | Foreach.cs:20:27:20:27 | After access to parameter e [null] | 1 | +| Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | 1 | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:43:20:68 | call to method Empty | 3 | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | 1 | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | 1 | +| Foreach.cs:20:43:20:68 | After call to method Empty [empty] | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | 1 | +| Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | 1 | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:36:26:39 | access to parameter args | 4 | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | Exit | 4 | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | 7 | +| Foreach.cs:26:36:26:39 | After access to parameter args [empty] | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | 1 | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | 1 | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:32:32:35 | access to parameter args | 4 | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | Exit | 4 | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | 7 | +| Foreach.cs:32:32:32:35 | After access to parameter args [empty] | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | 1 | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | 1 | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:39:38:42 | access to parameter args | 4 | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | Exit | 4 | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | 7 | +| Foreach.cs:38:39:38:42 | After access to parameter args [empty] | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | 1 | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | 1 | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | Exit | 9 | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | Exit | 27 | +| Initializers.cs:8:5:8:16 | Entry | Initializers.cs:8:5:8:16 | Exit | 11 | +| Initializers.cs:10:5:10:16 | Entry | Initializers.cs:10:5:10:16 | Exit | 11 | +| Initializers.cs:12:10:12:10 | Entry | Initializers.cs:12:10:12:10 | Exit | 48 | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Exit | 11 | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Exit | 19 | +| Initializers.cs:26:11:26:13 | Entry | Initializers.cs:26:11:26:13 | Exit | 11 | +| Initializers.cs:31:9:31:11 | Entry | Initializers.cs:31:9:31:11 | Exit | 22 | +| Initializers.cs:33:9:33:11 | Entry | Initializers.cs:33:9:33:11 | Exit | 18 | +| Initializers.cs:35:9:35:11 | Entry | Initializers.cs:35:9:35:11 | Exit | 26 | +| Initializers.cs:39:7:39:23 | Entry | Initializers.cs:39:7:39:23 | Exit | 11 | +| Initializers.cs:41:11:41:18 | Entry | Initializers.cs:41:11:41:18 | Exit | 11 | +| Initializers.cs:51:10:51:13 | Entry | Initializers.cs:51:10:51:13 | Exit | 245 | +| LoopUnrolling.cs:5:7:5:19 | Entry | LoopUnrolling.cs:5:7:5:19 | Exit | 11 | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:9:13:9:28 | ... == ... | 10 | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | Exit | 2 | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:29:11:32 | access to parameter args | 4 | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | LoopUnrolling.cs:10:13:10:19 | return ...; | 3 | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:8:5:13:5 | After {...} | 2 | +| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | 8 | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | 1 | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | 1 | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | 20 | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | Exit | 4 | +| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | 8 | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | 1 | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | 1 | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:29:24:32 | access to parameter args | 4 | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | Exit | 4 | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | access to parameter args | 3 | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | 1 | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | 1 | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | 2 | +| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | 8 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | 1 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | 1 | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | 14 | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | Exit | 4 | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | 8 | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | 1 | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | 1 | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | 36 | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | Exit | 4 | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | 3 | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | 1 | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | 1 | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | 2 | +| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | 12 | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | 1 | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | 1 | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | 20 | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:45:10:45:11 | Exit | 5 | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:49:9:52:9 | {...} | 3 | +| LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:51:13:51:23 | goto ...; | 9 | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | 20 | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | Exit | 4 | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:60:17:60:17 | access to parameter b | 4 | -| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | 3 | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | 2 | -| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | 3 | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:14:69:23 | call to method Any | 5 | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 | 2 | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:69:13:69:23 | [false] !... | 1 | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:69:13:69:23 | [true] !... | 1 | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | 1 | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:72:29:72:32 | access to parameter args | 4 | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | 4 | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | 8 | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 | 2 | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | 5 | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | 8 | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 | 2 | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | 5 | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | 8 | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | 2 | -| LoopUnrolling.cs:97: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 | 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 | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | 1 | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | 1 | -| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | 4 | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | 1 | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | 1 | -| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | 4 | -| 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 | ... = ... | 8 | -| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | 2 | -| MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | 1 | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | exit get_Item | 1 | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:36:15:38 | enter get_Item | 1 | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item | MultiImplementationA.cs:15:36:15:38 | exit get_Item | 1 | -| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | exit get_Item (normal) | 4 | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:54:15:56 | enter set_Item | 1 | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | exit set_Item | 2 | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | 1 | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | 1 | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | 3 | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | 1 | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | LoopUnrolling.cs:61:17:61:37 | After ...; | 7 | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | 3 | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | 1 | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | LoopUnrolling.cs:63:17:63:37 | After ...; | 7 | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:69:14:69:23 | call to method Any | 7 | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | Exit | 2 | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:70:13:70:19 | return ...; | 4 | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:29:72:32 | access to parameter args | 11 | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:68:5:74:5 | After {...} | 2 | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | 8 | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | 1 | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | 1 | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | 15 | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | Exit | 4 | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | 10 | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | 1 | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | 1 | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | 15 | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | Exit | 4 | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | 10 | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | 1 | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | 1 | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | 15 | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | Exit | 4 | +| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | 10 | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | 1 | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | 1 | +| MultiImplementationA.cs:4:7:4:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | {...} | 8 | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | Entry | 1 | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | Exit | 2 | +| MultiImplementationA.cs:6:22:6:31 | Before throw ... | MultiImplementationA.cs:6:22:6:31 | Exceptional Exit | 4 | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | Entry | 1 | +| MultiImplementationA.cs:6:22:6:31 | Exit | MultiImplementationA.cs:6:22:6:31 | Exit | 1 | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:21:7:23 | Entry | 1 | +| MultiImplementationA.cs:7:21:7:23 | Exit | MultiImplementationA.cs:7:21:7:23 | Exit | 1 | +| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:21:7:23 | Exceptional Exit | 5 | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:41:7:43 | Entry | 1 | +| MultiImplementationA.cs:7:41:7:43 | Exit | MultiImplementationA.cs:7:41:7:43 | Exit | 1 | +| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:41:7:43 | Exceptional Exit | 5 | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationA.cs:8:16:8:16 | Entry | 1 | +| MultiImplementationA.cs:8:16:8:16 | Exit | MultiImplementationA.cs:8:16:8:16 | Exit | 1 | +| MultiImplementationA.cs:8:23:8:32 | Before throw ... | MultiImplementationA.cs:8:16:8:16 | Exceptional Exit | 4 | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:11:7:11:8 | Entry | 1 | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | Exit | 2 | +| MultiImplementationA.cs:13:16:13:20 | Before ... = ... | MultiImplementationA.cs:24:32:24:34 | After ... = ... | 16 | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | Entry | 1 | +| MultiImplementationA.cs:14:31:14:31 | Exit | MultiImplementationA.cs:14:31:14:31 | Exit | 1 | +| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | Normal Exit | 2 | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:36:15:38 | Entry | 1 | +| MultiImplementationA.cs:15:36:15:38 | Exit | MultiImplementationA.cs:15:36:15:38 | Exit | 1 | +| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | Normal Exit | 5 | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:54:15:56 | Entry | 1 | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | Exit | 2 | | MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:58:15:60 | {...} | 1 | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:16:17:16:18 | enter M1 | 1 | -| 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 | 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) | 10 | -| MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | 1 | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | 2 | -| MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:27:21:29 | {...} | 3 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:6:22:7 | enter ~C2 | 1 | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 | MultiImplementationA.cs:22:6:22:7 | exit ~C2 | 1 | -| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (normal) | 2 | -| 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 | 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 | 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 | 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 | ... = ... | 8 | -| MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | 3 | -| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | 4 | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:16:17:16:18 | Entry | 1 | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:16:17:16:18 | Exit | 2 | +| MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:17:5:19:5 | After {...} | 3 | +| MultiImplementationA.cs:18:9:18:22 | Entry | MultiImplementationA.cs:18:9:18:22 | Exit | 4 | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | Normal Exit | 20 | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | Entry | 1 | +| MultiImplementationA.cs:20:12:20:13 | Exit | MultiImplementationA.cs:20:12:20:13 | Exit | 1 | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:12:21:13 | Entry | 1 | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | Exit | 2 | +| MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | MultiImplementationA.cs:21:27:21:29 | {...} | 5 | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:6:22:7 | Entry | 1 | +| MultiImplementationA.cs:22:6:22:7 | Exit | MultiImplementationA.cs:22:6:22:7 | Exit | 1 | +| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | Normal Exit | 2 | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationA.cs:23:28:23:35 | Entry | 1 | +| MultiImplementationA.cs:23:28:23:35 | Exit | MultiImplementationA.cs:23:28:23:35 | Exit | 1 | +| MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | Normal Exit | 2 | +| MultiImplementationA.cs:28:7:28:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | {...} | 8 | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | Entry | 1 | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | Exit | 2 | +| MultiImplementationA.cs:30:21:30:23 | Entry | MultiImplementationA.cs:30:21:30:23 | Exit | 6 | +| MultiImplementationA.cs:34:15:34:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | {...} | 8 | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | Entry | 1 | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | Exit | 2 | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:9:36:10 | Entry | 1 | +| MultiImplementationA.cs:36:9:36:10 | Exit | MultiImplementationA.cs:36:9:36:10 | Exit | 1 | +| MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:9:36:10 | Exceptional Exit | 5 | +| MultiImplementationA.cs:37:9:37:10 | Entry | MultiImplementationA.cs:37:9:37:10 | Exit | 7 | +| MultiImplementationB.cs:1:7:1:8 | Before call to method | MultiImplementationB.cs:1:7:1:8 | {...} | 8 | +| MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | Normal Exit | 2 | +| MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | Normal Exit | 5 | +| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | Normal Exit | 2 | +| MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | Normal Exit | 2 | +| MultiImplementationB.cs:11:16:11:20 | Before ... = ... | MultiImplementationB.cs:22:32:22:34 | After ... = ... | 16 | +| MultiImplementationB.cs:12:31:12:40 | Before throw ... | MultiImplementationA.cs:14:31:14:31 | Exceptional Exit | 4 | +| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | Exceptional Exit | 5 | | 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 | 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 | 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 | 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 | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:25:5:25 | access to parameter b | 2 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | exit M2 | 3 | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | 1 | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | 1 | -| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | false | 1 | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:39:5:39 | 0 | 1 | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:43:5:43 | 1 | 1 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | 2 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | exit M3 | 3 | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | 1 | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:53 | ... ?? ... | 1 | -| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:52:7:53 | "" | 1 | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:37:9:37 | access to parameter b | 2 | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | exit M4 | 3 | -| NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | 1 | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | 1 | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | access to parameter s | 1 | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | access to parameter s | 1 | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | "" | 1 | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | 1 | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | 2 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | exit M5 | 3 | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | 1 | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | 1 | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | 1 | -| NullCoalescing.cs:11:51:11:58 | [false] ... && ... | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | 1 | -| NullCoalescing.cs:11:51:11:58 | [true] ... && ... | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | 1 | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | 1 | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:64:11:64 | 0 | 1 | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:68:11:68 | 1 | 1 | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:15:17:15:26 | (...) ... | 5 | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:16:17:16:18 | "" | 5 | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | (...) ... | 5 | -| NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | exit M6 | 4 | -| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | exit | 11 | -| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial | 7 | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial | 7 | -| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | exit Patterns | 7 | -| 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 | -| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:10:13:10:42 | call to method WriteLine | 7 | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:23:12:31 | String s1 | 3 | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:12:18:12:31 | [false] ... is ... | 1 | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:12:18:12:31 | [true] ... is ... | 1 | -| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:14:13:14:45 | call to method WriteLine | 7 | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:23:16:28 | Object v1 | 3 | -| Patterns.cs:16:18:16:28 | [false] ... is ... | Patterns.cs:16:18:16:28 | [false] ... is ... | 1 | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:16:18:16:28 | [true] ... is ... | 1 | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:17:9:18:9 | {...} | 1 | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:22:18:22:22 | "xyz" | 4 | -| Patterns.cs:23:17:23:22 | break; | Patterns.cs:23:17:23:22 | break; | 1 | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:18:24:23 | Int32 i2 | 2 | -| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:30:24:35 | ... > ... | 3 | -| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:26:17:26:22 | break; | 7 | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | Int32 i3 | 2 | -| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:29:17:29:22 | break; | 7 | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:18:30:26 | String s2 | 2 | -| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:32:17:32:22 | break; | 7 | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:18:33:23 | Object v2 | 2 | -| Patterns.cs:34:17:34:22 | break; | Patterns.cs:34:17:34:22 | break; | 1 | -| Patterns.cs:35:13:35:20 | default: | Patterns.cs:37:17:37:22 | break; | 5 | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:5:10:5:11 | exit M1 | 4 | -| Patterns.cs:47:24:47:25 | enter M2 | Patterns.cs:47:24:47:25 | exit M2 | 7 | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:18:51:21 | null | 3 | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:9:51:21 | [false] ... is ... | 1 | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:9:51:21 | [true] ... is ... | 1 | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | exit M3 | 3 | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:14:51:21 | [match] not ... | 1 | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:14:51:21 | [no-match] not ... | 1 | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:30 | ... is ... | 3 | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:39 | ... is ... | 3 | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:18:54:37 | Patterns u | 3 | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:53:24:53:25 | exit M4 | 5 | -| Patterns.cs:54:27:54:35 | [match] { ... } | Patterns.cs:54:27:54:35 | [match] { ... } | 1 | -| Patterns.cs:54:27:54:35 | [no-match] { ... } | Patterns.cs:54:27:54:35 | [no-match] { ... } | 1 | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:33:54:33 | 1 | 1 | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:60:17:60:17 | 1 | 4 | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:56:26:56:27 | exit M5 | 4 | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:60:13:60:17 | [match] not ... | 1 | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:60:13:60:17 | [no-match] not ... | 1 | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:13:60:28 | ... => ... | 2 | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:13:61:13 | _ | 1 | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:13:61:24 | ... => ... | 2 | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:69:17:69:17 | 2 | 4 | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:69:13:69:17 | [no-match] not ... | 1 | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:13 | 2 | 1 | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:65:26:65:27 | exit M6 | 6 | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:78:13:78:15 | > ... | 5 | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:74:26:74:27 | exit M7 | 4 | -| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:13:78:24 | ... => ... | 2 | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:13:79:15 | < ... | 2 | -| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:13:79:24 | ... => ... | 2 | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | 1 | 1 | -| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:13:80:20 | ... => ... | 2 | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:13:81:13 | _ | 1 | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:13:81:20 | ... => ... | 2 | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:44:85:44 | 1 | 3 | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:39:85:53 | [false] ... is ... | 1 | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:39:85:53 | [true] ... is ... | 1 | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | exit M8 | 3 | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:44:85:53 | [match] ... or ... | 1 | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | 1 | -| Patterns.cs:85:49:85:53 | [match] not ... | Patterns.cs:85:49:85:53 | [match] not ... | 1 | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:49:85:53 | [no-match] not ... | 1 | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:53:85:53 | 2 | 1 | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:57:85:63 | "not 2" | 1 | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:67:85:69 | "2" | 1 | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:44:87:44 | 1 | 3 | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:39:87:54 | [false] ... is ... | 1 | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:39:87:54 | [true] ... is ... | 1 | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | exit M9 | 3 | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:44:87:54 | [match] ... and ... | 1 | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:44:87:54 | [no-match] ... and ... | 1 | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:50:87:54 | [match] not ... | 1 | -| Patterns.cs:87:50:87:54 | [no-match] not ... | Patterns.cs:87:50:87:54 | [no-match] not ... | 1 | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:54:87:54 | 2 | 1 | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:58:87:60 | "1" | 1 | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:64:87:70 | "not 1" | 1 | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:29:95:31 | access to constant A | 5 | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | exit M10 | 2 | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:95:13:95:40 | [false] ... is ... | 1 | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:95:13:95:40 | [true] ... is ... | 1 | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | 1 | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | 1 | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | 1 | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | 1 | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:29:95:38 | [match] ... or ... | 1 | -| 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 | 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 | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:12:13:12:21 | [false] ... is ... | 1 | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:12:13:12:21 | [true] ... is ... | 1 | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:13:13:13:19 | return ...; | 1 | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:9:14:28 | call to method WriteLine | 3 | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:19:18:19:21 | null | 5 | -| PostDominance.cs:17:10:17:11 | exit M3 | PostDominance.cs:17:10:17:11 | exit M3 | 1 | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:19:13:19:21 | [false] ... is ... | 1 | -| 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 | 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 | 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 | -| Switch.cs:10:10:10:11 | exit M2 (abnormal) | Switch.cs:10:10:10:11 | exit M2 (abnormal) | 1 | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:10:10:10:11 | exit M2 (normal) | 1 | -| Switch.cs:15:17:15:23 | return ...; | Switch.cs:15:17:15:23 | return ...; | 1 | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:18:16:18 | 0 | 2 | -| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | 2 | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:18:18:21 | null | 2 | -| Switch.cs:19:17:19:29 | goto default; | Switch.cs:19:17:19:29 | goto default; | 1 | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:18:20:22 | Int32 i | 2 | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:21:21:29 | ... == ... | 4 | -| Switch.cs:22:21:22:27 | return ...; | Switch.cs:22:21:22:27 | return ...; | 1 | -| Switch.cs:23:27:23:27 | 0 | Switch.cs:23:17:23:28 | goto case ...; | 2 | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:18:24:25 | String s | 2 | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:43 | ... > ... | 4 | -| Switch.cs:24:32:24:55 | [false] ... && ... | Switch.cs:24:32:24:55 | [false] ... && ... | 1 | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:24:32:24:55 | [true] ... && ... | 1 | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:48:24:55 | ... != ... | 3 | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:26:17:26:23 | return ...; | 4 | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | 2 | -| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:27:32:27:38 | call to method Throw | 1 | -| Switch.cs:30:13:30:20 | default: | Switch.cs:29:17:29:23 | return ...; | 4 | -| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:35:10:35:11 | exit M3 | 6 | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:48:18:48:20 | access to type Int32 | 6 | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | exit M4 | 2 | -| Switch.cs:49:17:49:22 | break; | Switch.cs:49:17:49:22 | break; | 1 | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:18:50:21 | access to type Boolean | 2 | -| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:30:50:38 | ... != ... | 3 | -| Switch.cs:51:17:51:22 | break; | Switch.cs:51:17:51:22 | break; | 1 | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:59:18:59:18 | 2 | 8 | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:18:61:18 | 3 | 2 | -| Switch.cs:62:17:62:22 | break; | Switch.cs:55:10:55:11 | exit M5 | 3 | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:70:18:70:20 | access to type Int32 | 7 | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | exit M6 | 2 | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:18:72:19 | "" | 2 | -| Switch.cs:73:17:73:22 | break; | Switch.cs:73:17:73:22 | break; | 1 | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:81:18:81:18 | 1 | 6 | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | exit M7 | 2 | -| Switch.cs:82:24:82:27 | true | Switch.cs:82:17:82:28 | return ...; | 2 | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:18:83:18 | 2 | 2 | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:21:84:25 | ... > ... | 4 | -| Switch.cs:85:21:85:26 | break; | Switch.cs:85:21:85:26 | break; | 1 | -| Switch.cs:86:24:86:27 | true | Switch.cs:86:17:86:28 | return ...; | 2 | -| Switch.cs:88:16:88:20 | false | Switch.cs:88:9:88:21 | return ...; | 2 | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:95:18:95:20 | access to type Int32 | 6 | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | exit M8 | 2 | -| Switch.cs:96:24:96:27 | true | Switch.cs:96:17:96:28 | return ...; | 2 | -| Switch.cs:98:16:98:20 | false | Switch.cs:98:9:98:21 | return ...; | 2 | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:103:17:103:17 | access to parameter s | 4 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | exit M9 | 2 | -| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:25 | access to property Length | 1 | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:18:105:18 | 0 | 2 | -| Switch.cs:105:28:105:28 | 0 | Switch.cs:105:21:105:29 | return ...; | 2 | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:18:106:18 | 1 | 2 | -| Switch.cs:106:28:106:28 | 1 | Switch.cs:106:21:106:29 | return ...; | 2 | -| Switch.cs:108:17:108:17 | 1 | Switch.cs:108:9:108:18 | return ...; | 3 | -| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:17:111:21 | exit Throw | 5 | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:117:18:117:18 | 3 | 7 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | exit M10 | 2 | -| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:25:117:34 | ... == ... | 3 | -| Switch.cs:117:44:117:44 | 1 | Switch.cs:117:37:117:45 | return ...; | 2 | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | 2 | 2 | -| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:25:118:33 | ... == ... | 3 | -| Switch.cs:118:43:118:43 | 2 | Switch.cs:118:36:118:44 | return ...; | 2 | -| Switch.cs:120:17:120:17 | 1 | Switch.cs:120:9:120:18 | return ...; | 3 | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:24:125:29 | Boolean b | 5 | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | exit M11 | 2 | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:13:125:48 | [false] ... switch { ... } | 1 | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:125:13:125:48 | [true] ... switch { ... } | 1 | -| Switch.cs:125:24:125:34 | [false] ... => ... | Switch.cs:125:24:125:34 | [false] ... => ... | 1 | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:24:125:34 | [true] ... => ... | 1 | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:34:125:34 | access to local variable b | 1 | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:37 | _ | 1 | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:37:125:46 | [false] ... => ... | 1 | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:42:125:46 | false | 1 | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:126:13:126:19 | return ...; | 1 | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:28:131:35 | String s | 4 | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | exit M12 | 3 | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:16:131:66 | call to method ToString | 1 | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | 1 | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:17:131:53 | [null] ... switch { ... } | 1 | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:28:131:40 | [non-null] ... => ... | 1 | -| Switch.cs:131:28:131:40 | [null] ... => ... | Switch.cs:131:28:131:40 | [null] ... => ... | 1 | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:40:131:40 | access to local variable s | 1 | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:43 | _ | 1 | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:131:43:131:51 | [null] ... => ... | 1 | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:48:131:51 | null | 1 | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:139:18:139:18 | 1 | 6 | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | exit M13 | 2 | -| Switch.cs:138:13:138:20 | default: | Switch.cs:138:22:138:31 | return ...; | 4 | -| Switch.cs:139:28:139:28 | 1 | Switch.cs:139:21:139:29 | return ...; | 2 | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:18:140:18 | 2 | 2 | -| Switch.cs:140:28:140:28 | 2 | Switch.cs:140:21:140:29 | return ...; | 2 | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:148:18:148:18 | 1 | 6 | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | exit M14 | 2 | -| Switch.cs:148:28:148:28 | 1 | Switch.cs:148:21:148:29 | return ...; | 2 | -| Switch.cs:149:13:149:20 | default: | Switch.cs:149:22:149:31 | return ...; | 4 | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:18:150:18 | 2 | 2 | -| Switch.cs:150:28:150:28 | 2 | Switch.cs:150:21:150:29 | return ...; | 2 | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:28:156:31 | true | 5 | -| Switch.cs:154:10:154:12 | exit M15 | Switch.cs:154:10:154:12 | exit M15 | 1 | -| Switch.cs:154:10:154:12 | exit M15 (abnormal) | Switch.cs:154:10:154:12 | exit M15 (abnormal) | 1 | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:154:10:154:12 | exit M15 (normal) | 1 | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:157:13:157:13 | access to parameter b | 4 | -| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:28:156:38 | ... => ... | 2 | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | false | 1 | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:41:156:52 | ... => ... | 2 | -| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:13:158:48 | call to method WriteLine | 6 | -| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:13:160:48 | call to method WriteLine | 6 | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:167:18:167:18 | 1 | 6 | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | exit M16 | 2 | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:18:168:18 | 2 | 2 | -| Switch.cs:169:17:169:51 | ...; | Switch.cs:170:17:170:22 | break; | 4 | -| 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 | 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 | 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 | 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 | -| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:13:12:48 | call to method WriteLine | 3 | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:9:17:9 | while (...) ... | 1 | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:16:14:20 | ... > ... | 3 | -| cflow.cs:15:9:17:9 | {...} | cflow.cs:16:13:16:40 | call to method WriteLine | 7 | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:19:9:22:25 | do ... while (...); | 1 | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | ... < ... | 9 | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:18:24:22 | Int32 i = ... | 3 | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:25:24:31 | ... <= ... | 3 | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:24:34:24:36 | ...++ | 2 | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:26:17:26:26 | ... == ... | 7 | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:26:17:26:40 | [false] ... && ... | 1 | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:26:17:26:40 | [true] ... && ... | 1 | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:31:26:40 | ... == ... | 5 | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:17:27:45 | call to method WriteLine | 3 | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:28:22:28:31 | ... == ... | 6 | -| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:17:29:41 | call to method WriteLine | 3 | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:30:22:30:31 | ... == ... | 6 | -| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:17:31:41 | call to method WriteLine | 3 | -| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:17:33:36 | call to method WriteLine | 3 | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:39:17:39:17 | access to parameter a | 4 | -| cflow.cs:37:17:37:22 | exit Switch | cflow.cs:37:17:37:22 | exit Switch | 1 | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:18:41:18 | 1 | 2 | -| cflow.cs:42:17:42:39 | ...; | cflow.cs:43:17:43:28 | goto case ...; | 5 | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | 2 | -| cflow.cs:45:17:45:39 | ...; | cflow.cs:46:17:46:28 | goto case ...; | 5 | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | 2 | -| cflow.cs:48:17:48:39 | ...; | cflow.cs:49:17:49:22 | break; | 4 | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:53:18:53:19 | 42 | 4 | -| cflow.cs:54:17:54:48 | ...; | cflow.cs:55:17:55:22 | break; | 4 | -| cflow.cs:56:13:56:20 | default: | cflow.cs:58:17:58:22 | break; | 5 | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:62:18:62:18 | 0 | 6 | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:23:63:33 | ... == ... | 5 | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:63:21:63:34 | [false] !... | 1 | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:63:21:63:34 | [true] !... | 1 | -| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:37:17:37:22 | exit Switch (abnormal) | 3 | -| cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | break; | 1 | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:37:17:37:22 | exit Switch (normal) | 3 | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:72:13:72:21 | ... == ... | 6 | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | exit M | 2 | -| cflow.cs:73:13:73:19 | return ...; | cflow.cs:73:13:73:19 | return ...; | 1 | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:74:13:74:24 | ... > ... | 5 | -| cflow.cs:75:9:77:9 | {...} | cflow.cs:76:13:76:32 | call to method WriteLine | 4 | -| cflow.cs:79:9:81:9 | {...} | cflow.cs:80:13:80:47 | call to method WriteLine | 4 | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:86:13:86:21 | ... != ... | 6 | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | exit M2 | 2 | -| cflow.cs:86:13:86:37 | [false] ... && ... | cflow.cs:86:13:86:37 | [false] ... && ... | 1 | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:86:13:86:37 | [true] ... && ... | 1 | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:37 | ... > ... | 4 | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:13:87:32 | call to method WriteLine | 3 | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:92:13:92:27 | call to method Equals | 6 | -| cflow.cs:90:18:90:19 | exit M3 | cflow.cs:90:18:90:19 | exit M3 | 1 | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:90:18:90:19 | exit M3 (normal) | 1 | -| cflow.cs:93:45:93:47 | "s" | cflow.cs:90:18:90:19 | exit M3 (abnormal) | 4 | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:96:13:96:25 | ... != ... | 8 | -| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:13:97:54 | call to method WriteLine | 4 | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:13:99:25 | ... != ... | 5 | -| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:13:100:41 | call to method WriteLine | 4 | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:13:102:29 | ... != ... | 5 | -| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:13:103:35 | call to method WriteLine | 4 | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:108:13:108:21 | ... != ... | 6 | -| cflow.cs:109:9:115:9 | {...} | cflow.cs:110:13:113:13 | while (...) ... | 2 | -| cflow.cs:110:20:110:23 | true | cflow.cs:110:20:110:23 | true | 1 | -| cflow.cs:111:13:113:13 | {...} | cflow.cs:112:17:112:36 | call to method WriteLine | 4 | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:106:18:106:19 | exit M4 | 5 | -| cflow.cs:119:20:119:21 | enter M5 | cflow.cs:119:20:119:21 | exit M5 | 14 | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:32:127:44 | ... == ... | 6 | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:19:127:21 | exit get_Prop | 4 | -| cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | 1 | -| cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | access to field Field | 2 | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | exit set_Prop | 9 | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 12 | -| cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | exit ControlFlow | 9 | -| cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | exit ControlFlow | 8 | -| cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | exit + | 9 | -| cflow.cs:144:33:144:35 | enter get_Item | cflow.cs:144:33:144:35 | exit get_Item | 9 | -| cflow.cs:144:56:144:58 | enter set_Item | cflow.cs:144:56:144:58 | exit set_Item | 4 | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:149:9:150:33 | for (...;...;...) ... | 6 | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | exit For | 2 | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:16:149:21 | ... < ... | 3 | -| cflow.cs:150:13:150:33 | ...; | cflow.cs:149:24:149:26 | ++... | 5 | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | 1 | -| cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:152:18:152:20 | ...++ | 2 | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | ... > ... | 8 | -| cflow.cs:156:17:156:22 | break; | cflow.cs:159:9:165:9 | for (...;...;...) ... | 2 | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | ... > ... | 11 | -| cflow.cs:164:17:164:22 | break; | cflow.cs:167:9:171:9 | for (...;...;...) ... | 2 | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:16:167:21 | ... < ... | 3 | -| cflow.cs:168:9:171:9 | {...} | cflow.cs:170:13:170:15 | ...++ | 7 | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:25:173:29 | Int32 j = ... | 5 | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:32:173:41 | ... < ... | 5 | -| cflow.cs:174:9:176:9 | {...} | cflow.cs:173:49:173:51 | ...++ | 10 | -| cflow.cs:179:10:179:16 | enter Lambdas | cflow.cs:179:10:179:16 | exit Lambdas | 10 | -| cflow.cs:181:28:181:37 | enter (...) => ... | cflow.cs:181:28:181:37 | exit (...) => ... | 6 | -| cflow.cs:182:28:182:61 | enter delegate(...) { ... } | cflow.cs:182:28:182:61 | exit delegate(...) { ... } | 8 | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:13:187:18 | ... == ... | 6 | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | 1 | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | 1 | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:23:187:28 | ... == ... | 3 | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:39 | ... == ... | 3 | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:49 | ... && ... | 1 | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:185:10:185:18 | exit LogicalOr | 5 | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:195:17:195:32 | ... > ... | 8 | -| cflow.cs:193:10:193:17 | exit Booleans | cflow.cs:193:10:193:17 | exit Booleans | 1 | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:193:10:193:17 | exit Booleans (normal) | 1 | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:15:197:31 | ... == ... | 8 | -| cflow.cs:195:39:195:43 | this access | cflow.cs:195:37:195:56 | !... | 6 | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:197:13:197:47 | [false] !... | 1 | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:197:13:197:47 | [true] !... | 1 | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | 1 | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | 1 | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | false | 1 | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | true | 1 | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:17:198:33 | ... == ... | 6 | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:13:198:48 | ... = ... | 2 | -| cflow.cs:198:37:198:41 | false | cflow.cs:198:37:198:41 | false | 1 | -| cflow.cs:198:45:198:48 | true | cflow.cs:198:45:198:48 | true | 1 | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:15:200:31 | ... == ... | 6 | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:13:200:32 | [false] !... | 1 | -| cflow.cs:200:13:200:32 | [true] !... | cflow.cs:200:13:200:32 | [true] !... | 1 | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | 1 | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | 1 | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:37:200:62 | [false] !... | 1 | -| cflow.cs:200:37:200:62 | [true] !... | cflow.cs:200:37:200:62 | [true] !... | 1 | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:38:200:62 | [false] !... | 1 | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:38:200:62 | [true] !... | 1 | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:56 | ... == ... | 5 | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:40:200:61 | [false] ... && ... | 1 | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:40:200:61 | [true] ... && ... | 1 | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | access to local variable b | 1 | -| cflow.cs:201:9:205:9 | {...} | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | 5 | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:210:9:221:36 | do ... while (...); | 3 | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | 2 | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | ... > ... | 12 | -| cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | continue; | 2 | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:32 | ... < ... | 6 | -| cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | break; | 2 | -| cflow.cs:221:18:221:22 | this access | cflow.cs:221:18:221:34 | ... < ... | 5 | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:226:27:226:64 | call to method Repeat | 5 | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | exit Foreach | 2 | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | 1 | -| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | ... > ... | 13 | -| cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | continue; | 2 | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:32 | ... < ... | 6 | -| cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | break; | 2 | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:241:5:259:5 | {...} | 2 | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | exit Goto | 2 | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:19:242:35 | ... == ... | 7 | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:242:16:242:36 | [false] !... | 1 | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:16:242:36 | [true] !... | 1 | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:17:242:36 | [false] !... | 1 | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:17:242:36 | [true] !... | 1 | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:39:242:41 | {...} | 1 | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:13:244:28 | ... > ... | 6 | -| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:244:31:244:41 | goto ...; | 1 | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:248:18:248:18 | 0 | 8 | -| cflow.cs:249:17:249:29 | goto default; | cflow.cs:249:17:249:29 | goto default; | 1 | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:18:250:18 | 1 | 2 | -| cflow.cs:251:17:251:37 | ...; | cflow.cs:252:17:252:22 | break; | 4 | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:18:253:18 | 2 | 2 | -| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:254:17:254:27 | goto ...; | 1 | -| cflow.cs:255:13:255:20 | default: | cflow.cs:257:17:257:22 | break; | 5 | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:264:18:264:22 | Int32 i = ... | 7 | -| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | exit Yield | 1 | -| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield (abnormal) | 1 | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield (normal) | 1 | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:30 | ... < ... | 3 | -| cflow.cs:265:9:267:9 | {...} | cflow.cs:264:33:264:35 | ...++ | 5 | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs: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 | 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 | 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 | 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 | 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 | +| MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:15:5:17:5 | After {...} | 3 | +| MultiImplementationB.cs:16:9:16:31 | Entry | MultiImplementationB.cs:16:9:16:31 | Exit | 6 | +| MultiImplementationB.cs:18:12:18:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | Exceptional Exit | 12 | +| MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | MultiImplementationB.cs:19:27:19:29 | {...} | 5 | +| MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationA.cs:22:6:22:7 | Exceptional Exit | 5 | +| MultiImplementationB.cs:21:50:21:59 | Before throw ... | MultiImplementationA.cs:23:28:23:35 | Exceptional Exit | 4 | +| MultiImplementationB.cs:25:7:25:8 | Before call to method | MultiImplementationB.cs:25:7:25:8 | {...} | 8 | +| MultiImplementationB.cs:30:15:30:16 | Before call to method | MultiImplementationB.cs:30:15:30:16 | {...} | 8 | +| MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | Normal Exit | 2 | +| NullCoalescing.cs:1:7:1:20 | Entry | NullCoalescing.cs:1:7:1:20 | Exit | 11 | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:23 | access to parameter i | 3 | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | 1 | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | NullCoalescing.cs:3:28:3:28 | 0 | 2 | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:9:3:10 | Exit | 3 | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:25 | access to parameter b | 4 | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | Exit | 3 | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | 1 | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | NullCoalescing.cs:5:30:5:34 | After false [false] | 3 | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:43:5:43 | 1 | 2 | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | NullCoalescing.cs:5:39:5:39 | 0 | 2 | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | 3 | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | 1 | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | 3 | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | Exit | 3 | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | 1 | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | NullCoalescing.cs:7:52:7:53 | "" | 2 | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | 1 | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:37:9:37 | access to parameter b | 4 | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | Exit | 3 | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:45:9:45 | access to parameter s | 2 | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:41:9:41 | access to parameter s | 2 | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | 1 | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:52 | "" | 3 | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | 1 | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | 1 | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | 1 | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | 1 | +| NullCoalescing.cs:9:51:9:52 | After "" [non-null] | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | 1 | +| NullCoalescing.cs:9:51:9:52 | After "" [null] | NullCoalescing.cs:9:57:9:58 | "" | 2 | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | 1 | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | 4 | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | Exit | 3 | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | 1 | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | 3 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:68:11:68 | 1 | 2 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:64:11:64 | 0 | 2 | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | 1 | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | 2 | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | 1 | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | 1 | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | 2 | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:15:17:15:26 | (...) ... | 9 | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | 1 | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | NullCoalescing.cs:15:31:15:31 | 0 | 2 | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | "" | 9 | +| NullCoalescing.cs:16:17:16:18 | After "" [non-null] | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | 1 | +| NullCoalescing.cs:16:17:16:18 | After "" [null] | NullCoalescing.cs:16:23:16:25 | "a" | 2 | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | (...) ... | 11 | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | 1 | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | NullCoalescing.cs:17:24:17:24 | 1 | 2 | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | Exit | 7 | +| PartialImplementationA.cs:1:15:1:21 | Entry | PartialImplementationA.cs:1:15:1:21 | Exit | 19 | +| PartialImplementationA.cs:3:12:3:18 | Entry | PartialImplementationA.cs:3:12:3:18 | Exit | 11 | +| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Exit | 11 | +| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Exit | 11 | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | ... is ... | 13 | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | case ...: | 4 | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | ... is ... | 5 | +| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:9:9:11:9 | After {...} | 18 | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | 1 | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | ... is ... | 5 | +| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:13:9:15:9 | After {...} | 18 | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | 1 | +| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | 1 | +| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:17:9:18:9 | {...} | 4 | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | Exit | 7 | +| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:23:17:23:22 | break; | 4 | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | case ...: | 2 | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | ... > ... | 6 | +| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | 1 | +| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:24:30:24:35 | After ... > ... [false] | 1 | +| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:26:17:26:22 | break; | 16 | +| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:29:17:29:22 | break; | 17 | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | case ...: | 2 | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | case ...: | 1 | +| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:32:17:32:22 | break; | 17 | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | case ...: | 2 | +| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:34:17:34:22 | break; | 4 | +| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:37:17:37:22 | break; | 11 | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | ... is ... | 4 | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Exit | 3 | +| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:14:48:20 | After not ... | 5 | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | ... is ... | 5 | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | ... is ... | 4 | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | ... is ... | 9 | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Exit | 3 | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | 1 | +| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:30:51:30 | 1 | 2 | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | 1 | +| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:39:51:39 | 2 | 2 | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | ... is ... | 4 | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Exit | 3 | +| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:14:54:37 | After not ... | 13 | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | ... => ... | 6 | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | Exit | 4 | +| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:22:60:28 | "not 1" | 6 | +| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:61:18:61:24 | "other" | 5 | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | ... => ... | 6 | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:65:26:65:27 | Exit | 4 | +| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:22:69:33 | "impossible" | 6 | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | ... => ... | 2 | +| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:18:70:27 | "possible" | 3 | +| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | 1 | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | ... => ... | 6 | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:74:26:74:27 | Exit | 4 | +| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:20:78:24 | "> 1" | 6 | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | ... => ... | 2 | +| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:20:79:24 | "< 0" | 6 | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | ... => ... | 2 | +| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:18:80:20 | "1" | 3 | +| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:81:18:81:20 | "0" | 5 | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | ... is ... | 5 | +| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:67:85:69 | "2" | 2 | +| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | 11 | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Exit | 3 | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | ... is ... | 5 | +| Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:64:87:70 | "not 1" | 2 | +| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:58:87:60 | "1" | 11 | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Exit | 3 | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | ... is ... | 6 | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:93:17:93:19 | Exit | 4 | +| Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:13:95:40 | After ... is ... [false] | 1 | +| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:96:9:98:9 | After {...} | 21 | +| PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Exit | 11 | +| PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | Exit | 11 | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | ... is ... | 6 | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Exit | 2 | +| PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:11:5:15:5 | After {...} | 9 | +| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | 5 | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | ... is ... | 6 | +| PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | Exit | 1 | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | Normal Exit | 10 | +| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:17:10:17:11 | Exceptional Exit | 10 | +| Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Exit | 11 | +| Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Exit | 4 | +| Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | Exit | 4 | +| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:10:10:10:10 | Exit | 149 | +| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Exit | 11 | +| Switch.cs:5:10:5:11 | Entry | Switch.cs:5:10:5:11 | Exit | 8 | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | case ...: | 5 | +| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | Exceptional Exit | 1 | +| Switch.cs:10:10:10:11 | Exit | Switch.cs:10:10:10:11 | Exit | 1 | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | Normal Exit | 1 | +| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:15:17:15:23 | return ...; | 4 | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | case ...: | 2 | +| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:17:17:17:38 | throw ...; | 7 | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | case ...: | 2 | +| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:19:17:19:29 | goto default; | 4 | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | case ...: | 2 | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | ... == ... | 7 | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | case ...: | 2 | +| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:23:17:23:28 | goto case ...; | 5 | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:22:21:22:27 | return ...; | 3 | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | ... > ... | 10 | +| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | 1 | +| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:24:32:24:43 | After ... > ... [false] | 1 | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | ... != ... | 5 | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | 1 | +| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:24:48:24:55 | After ... != ... [false] | 1 | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:26:17:26:23 | return ...; | 10 | +| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:32:27:38 | call to method Throw | 4 | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:30:13:30:20 | default: | 2 | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | case ...: | 1 | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:29:17:29:23 | return ...; | 6 | +| Switch.cs:35:10:35:11 | Entry | Switch.cs:35:10:35:11 | Exit | 7 | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | case ...: | 5 | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:44:10:44:11 | Exit | 4 | +| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:49:17:49:22 | break; | 4 | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | case ...: | 2 | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | ... != ... | 6 | +| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | 1 | +| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:50:30:50:38 | After ... != ... [false] | 1 | +| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:51:17:51:22 | break; | 3 | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | case ...: | 9 | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:55:10:55:11 | Exit | 4 | +| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:60:17:60:22 | break; | 4 | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | case ...: | 2 | +| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:62:17:62:22 | break; | 4 | +| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | 1 | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | case ...: | 8 | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:66:10:66:11 | Exit | 4 | +| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:71:17:71:22 | break; | 4 | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | case ...: | 2 | +| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:73:17:73:22 | break; | 4 | +| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | 1 | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | case ...: | 5 | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | Exit | 2 | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:88:9:88:21 | return ...; | 4 | +| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:82:17:82:28 | return ...; | 5 | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | case ...: | 2 | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | ... > ... | 7 | +| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | 1 | +| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:86:17:86:28 | return ...; | 5 | +| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:85:21:85:26 | break; | 3 | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | case ...: | 5 | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | Exit | 2 | +| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:96:17:96:28 | return ...; | 5 | +| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:98:9:98:21 | return ...; | 5 | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | access to parameter s | 5 | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | Exit | 2 | +| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:103:17:103:25 | access to property Length | 2 | +| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:103:17:103:17 | After access to parameter s [null] | 1 | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | case ...: | 2 | +| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:21:105:29 | return ...; | 5 | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | case ...: | 2 | +| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:21:106:29 | return ...; | 5 | +| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:108:9:108:18 | return ...; | 8 | +| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:17:111:21 | Exit | 8 | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | case ...: | 8 | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | Exit | 2 | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:120:9:120:18 | return ...; | 7 | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | ... == ... | 6 | +| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:117:13:117:35 | After case ...: [no-match] | 1 | +| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:117:25:117:34 | After ... == ... [false] | 1 | +| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:117:37:117:45 | return ...; | 4 | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | ... == ... | 6 | +| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:118:13:118:34 | After case ...: [no-match] | 1 | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | case ...: | 1 | +| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:118:25:118:33 | After ... == ... [false] | 1 | +| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:118:36:118:44 | return ...; | 4 | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | ... => ... | 6 | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | Exit | 2 | +| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:124:5:127:5 | After {...} | 3 | +| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:126:13:126:19 | return ...; | 3 | +| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:34:125:34 | access to local variable b | 3 | +| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:125:42:125:46 | false | 5 | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | ... => ... | 7 | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:129:12:129:14 | Exit | 4 | +| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:131:16:131:66 | call to method ToString | 2 | +| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | 1 | +| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:40:131:40 | access to local variable s | 3 | +| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:131:48:131:51 | null | 5 | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | case ...: | 5 | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | Exit | 2 | +| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:21:139:29 | return ...; | 5 | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | case ...: | 2 | +| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:21:140:29 | return ...; | 5 | +| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:138:22:138:31 | return ...; | 9 | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | case ...: | 5 | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | Exit | 2 | +| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:21:148:29 | return ...; | 5 | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | case ...: | 2 | +| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:21:150:29 | return ...; | 5 | +| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:149:22:149:31 | return ...; | 9 | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | ... => ... | 8 | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | access to parameter b | 6 | +| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:36:156:38 | "a" | 3 | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | ... => ... | 2 | +| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:50:156:52 | "b" | 3 | +| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | 1 | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:154:10:154:12 | Exit | 4 | +| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:160:13:160:49 | After ...; | 14 | +| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:158:13:158:49 | After ...; | 14 | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | case ...: | 5 | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:163:10:163:12 | Exit | 4 | +| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:167:18:167:18 | 1 | 2 | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | case ...: | 2 | +| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:168:18:168:18 | 2 | 2 | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | case ...: | 2 | +| Switch.cs:169:17:169:51 | ...; | Switch.cs:170:17:170:22 | break; | 8 | +| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:173:17:173:22 | break; | 10 | +| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:176:17:176:22 | break; | 11 | +| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | Exit | 11 | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | ... is ... | 26 | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | Exit | 11 | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | 1 | +| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | 4 | +| VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Exit | 11 | +| VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | Exit | 36 | +| VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | Exit | 23 | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | access to parameter b | 26 | +| VarDecls.cs:25:20:25:20 | After access to parameter b [false] | VarDecls.cs:25:28:25:28 | access to local variable y | 2 | +| VarDecls.cs:25:20:25:20 | After access to parameter b [true] | VarDecls.cs:25:24:25:24 | access to local variable x | 2 | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:19:7:19:8 | Exit | 4 | +| VarDecls.cs:28:11:28:11 | Entry | VarDecls.cs:28:11:28:11 | Exit | 11 | +| VarDecls.cs:28:41:28:47 | Entry | VarDecls.cs:28:41:28:47 | Exit | 4 | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:11:13:11:17 | ... > ... | 30 | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:14:9:17:9 | while (...) ... | 2 | +| cflow.cs:11:13:11:17 | After ... > ... [false] | cflow.cs:11:13:11:17 | After ... > ... [false] | 1 | +| cflow.cs:11:13:11:17 | After ... > ... [true] | cflow.cs:12:13:12:49 | After ...; | 7 | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | ... > ... | 5 | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:19:9:22:25 | do ... while (...); | 3 | +| cflow.cs:14:16:14:20 | After ... > ... [true] | cflow.cs:15:9:17:9 | After {...} | 16 | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | ... < ... | 19 | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:24:18:24:22 | After Int32 i = ... | 8 | +| cflow.cs:22:18:22:23 | After ... < ... [true] | cflow.cs:22:18:22:23 | After ... < ... [true] | 1 | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:5:17:5:20 | Exit | 5 | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:17:26:26 | ... == ... | 12 | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | ... <= ... | 4 | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:24:34:24:36 | After ...++ | 7 | +| cflow.cs:26:17:26:26 | After ... == ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | 1 | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:31:26:40 | ... == ... | 9 | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:22:28:31 | ... == ... | 10 | +| cflow.cs:26:31:26:40 | After ... == ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | 1 | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:27:17:27:46 | After ...; | 8 | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | 1 | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | ... == ... | 10 | +| cflow.cs:28:22:28:31 | After ... == ... [true] | cflow.cs:29:17:29:42 | After ...; | 7 | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | 1 | +| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:33:17:33:37 | After ...; | 7 | +| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:31:17:31:42 | After ...; | 7 | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:13:41:19 | case ...: | 5 | +| cflow.cs:37:17:37:22 | Exit | cflow.cs:37:17:37:22 | Exit | 1 | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | case ...: | 4 | +| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:43:17:43:28 | goto case ...; | 11 | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | case ...: | 2 | +| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:46:17:46:28 | goto case ...; | 11 | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | case ...: | 2 | +| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:49:17:49:22 | break; | 10 | +| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | 1 | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | case ...: | 10 | +| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:55:17:55:22 | break; | 10 | +| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:58:17:58:22 | break; | 11 | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Normal Exit | 5 | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | ... == ... | 11 | +| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | 1 | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:37:17:37:22 | Exceptional Exit | 8 | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:65:17:65:22 | break; | 5 | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | ... == ... | 7 | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | Exit | 2 | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:74:13:74:24 | ... > ... | 10 | +| cflow.cs:72:13:72:21 | After ... == ... [true] | cflow.cs:73:13:73:19 | return ...; | 3 | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:71:5:82:5 | After {...} | 2 | +| cflow.cs:74:13:74:24 | After ... > ... [false] | cflow.cs:79:9:81:9 | After {...} | 9 | +| cflow.cs:74:13:74:24 | After ... > ... [true] | cflow.cs:75:9:77:9 | After {...} | 9 | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:13:86:21 | ... != ... | 8 | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:84:18:84:19 | Exit | 4 | +| cflow.cs:86:13:86:21 | After ... != ... [false] | cflow.cs:86:13:86:21 | After ... != ... [false] | 1 | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:26:86:37 | ... > ... | 8 | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:13:86:37 | After ... && ... [false] | 1 | +| cflow.cs:86:26:86:37 | After ... > ... [false] | cflow.cs:86:26:86:37 | After ... > ... [false] | 1 | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:87:13:87:33 | After ...; | 8 | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:92:13:92:27 | call to method Equals | 7 | +| cflow.cs:90:18:90:19 | Exit | cflow.cs:90:18:90:19 | Exit | 1 | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:96:13:96:25 | ... != ... | 16 | +| cflow.cs:92:13:92:27 | After call to method Equals [true] | cflow.cs:90:18:90:19 | Exceptional Exit | 8 | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:13:99:25 | ... != ... | 9 | +| cflow.cs:96:13:96:25 | After ... != ... [false] | cflow.cs:96:13:96:25 | After ... != ... [false] | 1 | +| cflow.cs:96:13:96:25 | After ... != ... [true] | cflow.cs:97:13:97:55 | After ...; | 12 | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:13:102:29 | ... != ... | 9 | +| cflow.cs:99:13:99:25 | After ... != ... [false] | cflow.cs:99:13:99:25 | After ... != ... [false] | 1 | +| cflow.cs:99:13:99:25 | After ... != ... [true] | cflow.cs:100:13:100:42 | After ...; | 10 | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:90:18:90:19 | Normal Exit | 3 | +| cflow.cs:102:13:102:29 | After ... != ... [false] | cflow.cs:102:13:102:29 | After ... != ... [false] | 1 | +| cflow.cs:102:13:102:29 | After ... != ... [true] | cflow.cs:103:13:103:36 | After ...; | 10 | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:108:13:108:21 | ... != ... | 7 | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:106:18:106:19 | Exit | 11 | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:110:13:113:13 | while (...) ... | 3 | +| cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | cflow.cs:111:13:113:13 | After {...} | 11 | +| cflow.cs:119:20:119:21 | Entry | cflow.cs:119:20:119:21 | Exit | 25 | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:32:127:44 | ... == ... | 11 | +| cflow.cs:127:32:127:44 | After ... == ... [false] | cflow.cs:127:53:127:57 | After access to field Field | 5 | +| cflow.cs:127:32:127:44 | After ... == ... [true] | cflow.cs:127:48:127:49 | "" | 2 | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:19:127:21 | Exit | 4 | +| cflow.cs:127:62:127:64 | Entry | cflow.cs:127:62:127:64 | Exit | 15 | +| cflow.cs:129:5:129:15 | Entry | cflow.cs:129:5:129:15 | Exit | 22 | +| cflow.cs:134:5:134:15 | Entry | cflow.cs:134:5:134:15 | Exit | 15 | +| cflow.cs:136:12:136:22 | Entry | cflow.cs:136:12:136:22 | Exit | 12 | +| cflow.cs:138:40:138:40 | Entry | cflow.cs:138:40:138:40 | Exit | 13 | +| cflow.cs:144:33:144:35 | Entry | cflow.cs:144:33:144:35 | Exit | 14 | +| cflow.cs:144:56:144:58 | Entry | cflow.cs:144:56:144:58 | Exit | 4 | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:149:9:150:33 | for (...;...;...) ... | 10 | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:152:9:157:9 | for (...;...;...) ... | 3 | +| cflow.cs:149:16:149:21 | After ... < ... [true] | cflow.cs:149:24:149:26 | After ++... | 12 | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | ... < ... | 4 | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | ... > ... | 12 | +| cflow.cs:155:17:155:22 | After ... > ... [false] | cflow.cs:152:18:152:20 | After ...++ | 8 | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:159:9:165:9 | for (...;...;...) ... | 5 | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | ... > ... | 18 | +| cflow.cs:163:17:163:22 | After ... > ... [false] | cflow.cs:159:9:165:9 | [LoopHeader] for (...;...;...) ... | 4 | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:167:9:171:9 | for (...;...;...) ... | 5 | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:173:25:173:29 | After Int32 j = ... | 13 | +| cflow.cs:167:16:167:21 | After ... < ... [true] | cflow.cs:167:9:171:9 | [LoopHeader] for (...;...;...) ... | 16 | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | ... < ... | 4 | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:146:10:146:12 | Exit | 5 | +| cflow.cs:173:32:173:41 | After ... < ... [true] | cflow.cs:173:49:173:51 | After ...++ | 22 | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | ... < ... | 8 | +| cflow.cs:179:10:179:16 | Entry | cflow.cs:179:10:179:16 | Exit | 19 | +| cflow.cs:181:28:181:37 | Entry | cflow.cs:181:28:181:37 | Exit | 8 | +| cflow.cs:182:28:182:61 | Entry | cflow.cs:182:28:182:61 | Exit | 11 | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:13:187:18 | ... == ... | 9 | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:185:10:185:18 | Exit | 4 | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:23:187:28 | ... == ... | 5 | +| cflow.cs:187:13:187:18 | After ... == ... [true] | cflow.cs:187:13:187:18 | After ... == ... [true] | 1 | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | 1 | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:188:13:188:55 | After ...; | 7 | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:34:187:39 | ... == ... | 7 | +| cflow.cs:187:23:187:28 | After ... == ... [true] | cflow.cs:187:23:187:28 | After ... == ... [true] | 1 | +| cflow.cs:187:34:187:39 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | 1 | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:44:187:49 | ... == ... | 5 | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:190:13:190:52 | After ...; | 8 | +| cflow.cs:187:44:187:49 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | 1 | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:187:34:187:49 | After ... && ... [true] | 2 | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:195:17:195:32 | ... > ... | 16 | +| cflow.cs:193:10:193:17 | Exit | cflow.cs:193:10:193:17 | Exit | 1 | +| cflow.cs:195:17:195:32 | After ... > ... [false] | cflow.cs:195:17:195:32 | After ... > ... [false] | 1 | +| cflow.cs:195:17:195:32 | After ... > ... [true] | cflow.cs:195:37:195:56 | After !... | 14 | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:197:15:197:31 | ... == ... | 17 | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:15:200:31 | ... == ... | 14 | +| cflow.cs:197:15:197:31 | After ... == ... [false] | cflow.cs:197:13:197:47 | After !... [false] | 5 | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:198:17:198:33 | ... == ... | 19 | +| cflow.cs:198:17:198:33 | After ... == ... [false] | cflow.cs:198:45:198:48 | true | 2 | +| cflow.cs:198:17:198:33 | After ... == ... [true] | cflow.cs:198:37:198:41 | false | 2 | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:13:198:49 | After ...; | 4 | +| cflow.cs:200:13:200:62 | After ... \|\| ... [true] | cflow.cs:193:10:193:17 | Exceptional Exit | 9 | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:200:13:200:32 | After !... [true] | 2 | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:40:200:56 | ... == ... | 15 | +| cflow.cs:200:40:200:56 | After ... == ... [false] | cflow.cs:200:40:200:56 | After ... == ... [false] | 1 | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:61:200:61 | access to local variable b | 2 | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:193:10:193:17 | Normal Exit | 7 | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:200:61:200:61 | After access to local variable b [false] | 1 | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:200:37:200:62 | After !... [true] | 4 | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:210:9:221:36 | do ... while (...); | 3 | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:208:10:208:11 | Exit | 4 | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:221:18:221:34 | ... < ... | 11 | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | ... > ... | 22 | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:217:17:217:32 | ... < ... | 13 | +| cflow.cs:213:17:213:32 | After ... > ... [true] | cflow.cs:215:17:215:25 | continue; | 4 | +| cflow.cs:217:17:217:32 | After ... < ... [false] | cflow.cs:211:9:221:9 | After {...} | 3 | +| cflow.cs:217:17:217:32 | After ... < ... [true] | cflow.cs:219:17:219:22 | break; | 4 | +| cflow.cs:221:18:221:34 | After ... < ... [false] | cflow.cs:221:18:221:34 | After ... < ... [false] | 1 | +| cflow.cs:221:18:221:34 | After ... < ... [true] | cflow.cs:221:18:221:34 | After ... < ... [true] | 1 | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:27:226:64 | call to method Repeat | 7 | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Exit | 4 | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | 1 | +| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | ... > ... | 23 | +| cflow.cs:226:27:226:64 | After call to method Repeat [empty] | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | 1 | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | 1 | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:233:17:233:32 | ... < ... | 13 | +| cflow.cs:229:17:229:32 | After ... > ... [true] | cflow.cs:231:17:231:25 | continue; | 4 | +| cflow.cs:233:17:233:32 | After ... < ... [false] | cflow.cs:227:9:237:9 | After {...} | 3 | +| cflow.cs:233:17:233:32 | After ... < ... [true] | cflow.cs:235:17:235:22 | break; | 4 | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:241:5:259:5 | {...} | 2 | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:19:242:35 | ... == ... | 14 | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | ... > ... | 12 | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:242:16:242:36 | After !... [false] | 3 | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:242:39:242:41 | {...} | 4 | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | case ...: | 15 | +| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:244:31:244:41 | goto ...; | 3 | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:240:10:240:13 | Exit | 4 | +| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:249:17:249:29 | goto default; | 4 | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | case ...: | 2 | +| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:252:17:252:22 | break; | 10 | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | case ...: | 2 | +| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:254:17:254:27 | goto ...; | 4 | +| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:255:13:255:20 | default: | 2 | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:257:17:257:22 | break; | 9 | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:264:18:264:22 | After Int32 i = ... | 12 | +| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Exceptional Exit | 1 | +| cflow.cs:261:49:261:53 | Exit | cflow.cs:261:49:261:53 | Exit | 1 | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:261:49:261:53 | Normal Exit | 1 | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:274:9:276:9 | After {...} | 14 | +| cflow.cs:264:25:264:30 | After ... < ... [true] | cflow.cs:264:33:264:35 | After ...++ | 12 | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | ... < ... | 4 | +| cflow.cs:268:9:276:9 | After try {...} ... | cflow.cs:262:5:277:5 | After {...} | 2 | +| cflow.cs:282:5:282:18 | Entry | cflow.cs:282:5:282:18 | Exit | 11 | +| cflow.cs:284:5:284:18 | Entry | cflow.cs:284:5:284:18 | Exit | 7 | +| cflow.cs:286:5:286:18 | Entry | cflow.cs:286:5:286:18 | Exit | 11 | +| cflow.cs:289:7:289:18 | Entry | cflow.cs:289:7:289:18 | Exit | 11 | +| cflow.cs:291:12:291:12 | Entry | cflow.cs:291:12:291:12 | Exit | 8 | +| cflow.cs:296:5:296:25 | Entry | cflow.cs:296:5:296:25 | Exit | 11 | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:300:46:300:50 | ... > ... | 11 | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:298:10:298:10 | Exit | 8 | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:300:56:300:64 | After ... != ... | 7 | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:300:44:300:51 | After !... [false] | 2 | +| cflow.cs:304:7:304:18 | Entry | cflow.cs:304:7:304:18 | Exit | 11 | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | Exit | 4 | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | Exit | 14 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected index cda25b6abd1..05c22139486 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected @@ -1,1454 +1,1506 @@ conditionBlock -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:24:9:27 | null | true | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:31:9:32 | "" | false | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:24:16:27 | null | true | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:31:16:32 | "" | false | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:24:23:27 | null | true | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:31:23:32 | "" | false | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:24:30:27 | null | true | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:31:30:32 | "" | false | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:24:37:27 | null | true | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:31:37:32 | "" | false | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:24:44:27 | null | true | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:31:44:32 | "" | false | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:24:51:27 | null | true | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:31:51:32 | "" | false | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:24:58:27 | null | true | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:31:58:32 | "" | false | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:36:59:36 | access to parameter b | true | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:24:65:27 | null | true | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:31:65:32 | "" | false | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:37:66:37 | access to parameter b | false | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:24:72:27 | null | true | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:31:72:32 | "" | false | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:36:73:36 | access to parameter b | true | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:24:79:27 | null | true | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:31:79:32 | "" | false | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:37:80:37 | access to parameter b | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:24:86:27 | null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:31:86:32 | "" | false | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:17:90:20 | null | true | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:24:90:25 | "" | false | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:17:94:20 | null | true | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:24:94:25 | "" | false | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:17:98:20 | null | true | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:24:98:25 | "" | false | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:17:102:20 | null | true | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:24:102:25 | "" | false | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:17:106:20 | null | true | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:24:106:25 | "" | false | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:17:110:20 | null | true | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:24:110:25 | "" | false | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:17:114:20 | null | true | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:24:114:25 | "" | false | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:17:118:20 | null | true | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:24:118:25 | "" | false | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:17:122:20 | null | true | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:24:122:25 | "" | false | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:17:126:20 | null | true | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:24:126:25 | "" | false | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:26:7:28 | String arg | false | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:10:21:10:26 | break; | false | -| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:10:21:10:26 | break; | true | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:16:17:16:17 | ; | true | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:22:22:24 | String arg | false | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:27:21:27:26 | break; | false | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:30:13:33:13 | {...} | false | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | ; | false | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:27:21:27:26 | break; | true | -| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:32:21:32:21 | ; | true | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:43:17:43:23 | return ...; | true | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | false | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | break; | false | -| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:50:21:50:26 | break; | true | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:61:17:61:23 | return ...; | true | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | false | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | break; | false | -| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:68:21:68:26 | break; | true | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:38 | call to method ToString | false | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | false | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | false | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:26:5:34 | access to property Length | false | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | false | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | true | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | true | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | true | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | false | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | true | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:25:9:33 | access to property Length | false | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:13:13:13:21 | access to property Length | false | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:14:20:14:20 | 0 | true | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:16:20:16:20 | 1 | false | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | false | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | true | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:24:17:24:37 | call to method ToString | true | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:25:31:25:31 | access to local variable s | true | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:24:17:24:37 | call to method ToString | false | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:24 | call to method Out | false | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:24:48:25 | 42 | false | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | false | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | false | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | false | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | false | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | false | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | false | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | false | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | false | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | false | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | false | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | ...; | true | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [false] !... | true | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | false | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:8:13:8:16 | ...; | false | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | true | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:15:13:15:16 | ...; | true | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | true | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | true | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | true | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | true | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | true | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | false | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | false | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | true | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:26:13:27:20 | if (...) ... | true | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:27:17:27:20 | ...; | true | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:20 | ...; | true | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:29:13:29:16 | ...; | true | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:38:13:38:20 | ...; | true | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:16 | ...; | true | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:42:13:42:16 | ...; | true | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:50:9:53:9 | {...} | true | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:20 | ...; | true | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:54:16:54:16 | access to local variable y | false | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:20 | ...; | true | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:61:9:64:9 | {...} | true | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:20 | ...; | true | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:65:9:66:16 | if (...) ... | false | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:66:13:66:16 | ...; | false | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:67:16:67:16 | access to local variable y | false | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:20 | ...; | true | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:66:13:66:16 | ...; | true | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | false | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:77:17:77:20 | ...; | false | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:13:79:26 | if (...) ... | false | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:79:17:79:26 | ...; | false | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | true | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:82:13:82:16 | ...; | true | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:83:16:83:16 | access to local variable x | true | -| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:77:17:77:20 | ...; | true | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:79:17:79:26 | ...; | true | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:82:13:82:16 | ...; | true | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:22:90:22 | String _ | false | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:93:17:93:20 | ...; | false | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:94:13:95:26 | if (...) ... | false | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:95:17:95:26 | ...; | false | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:96:13:97:20 | if (...) ... | false | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:97:17:97:20 | ...; | false | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x | true | -| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:93:17:93:20 | ...; | true | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:95:17:95:26 | ...; | true | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:97:17:97:20 | ...; | true | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:106:13:106:20 | ...; | true | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | true | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | true | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | true | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | true | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | true | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | false | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | false | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | exit M9 (normal) | false | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [false] !... | true | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [true] !... | false | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:120:17:120:23 | ...; | false | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | true | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | true | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:134:13:139:13 | {...} | true | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:136:17:138:17 | {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:136:17:138:17 | {...} | true | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:136:17:138:17 | {...} | true | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:21:145:23 | "a" | true | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:27:145:29 | "b" | false | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:147:13:147:49 | ...; | true | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:149:13:149:49 | ...; | false | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:45:9:47:9 | {...} | true | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:48:9:51:9 | catch (...) {...} | false | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:49:9:51:9 | {...} | false | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | true | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | false | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:69:19:69:33 | object creation of type Exception | true | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:75:19:75:33 | object creation of type Exception | true | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:77:41:77:43 | "b" | false | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:112:29:112:29 | 1 | true | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:112:69:112:75 | "input" | false | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:34:117:34 | 0 | true | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:38:117:38 | 1 | false | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:143:13:143:43 | ...; | true | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:145:13:145:53 | ...; | false | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | true | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:27:9:29:9 | {...} | true | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | false | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | false | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | false | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | false | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | false | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | false | -| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:27:9:29:9 | {...} | true | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | true | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | true | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | false | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | false | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | false | -| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:34:27:34:32 | throw ...; | true | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | true | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | false | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | true | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:62:9:64:9 | {...} | true | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | false | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | false | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | false | -| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:62:9:64:9 | {...} | true | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | true | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | true | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:66:9:67:9 | {...} | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | exit M4 (abnormal) | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:78:9:100:9 | {...} | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:82:21:82:27 | return ...; | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:83:17:84:29 | if (...) ... | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:84:21:84:29 | continue; | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:85:17:86:26 | if (...) ... | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:86:21:86:26 | break; | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:89:13:99:13 | {...} | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | throw ...; | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | object creation of type Exception | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | {...} | true | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:82:21:82:27 | return ...; | true | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:83:17:84:29 | if (...) ... | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:84:21:84:29 | continue; | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:85:17:86:26 | if (...) ... | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:86:21:86:26 | break; | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:84:21:84:29 | continue; | true | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:86:21:86:26 | break; | false | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:86:21:86:26 | break; | true | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:25:93:46 | throw ...; | true | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | true | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:108:17:108:23 | return ...; | true | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:109:13:110:49 | if (...) ... | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:109:17:109:28 | access to property Length | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:109:33:109:33 | 1 | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:17:110:49 | throw ...; | false | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | false | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:17:110:49 | throw ...; | true | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [false] !... | true | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [true] !... | false | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:115:17:115:41 | ...; | false | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:117:17:117:37 | ...; | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:17:152:50 | throw ...; | true | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:21:159:45 | throw ...; | true | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:41:159:43 | "1" | true | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | true | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:162:13:164:13 | {...} | true | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:162:13:164:13 | {...} | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:21:180:43 | throw ...; | true | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | true | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:25:186:47 | throw ...; | true | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | true | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:9:20:9:20 | After access to parameter b [false] | false | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:9:20:9:20 | After access to parameter b [true] | true | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:16:20:16:20 | After access to parameter b [false] | false | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:16:20:16:20 | After access to parameter b [true] | true | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:23:20:23:20 | After access to parameter b [false] | false | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:23:20:23:20 | After access to parameter b [true] | true | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:30:20:30:20 | After access to parameter b [false] | false | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:30:20:30:20 | After access to parameter b [true] | true | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:37:20:37:20 | After access to parameter b [false] | false | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:37:20:37:20 | After access to parameter b [true] | true | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:44:20:44:20 | After access to parameter b [false] | false | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:44:20:44:20 | After access to parameter b [true] | true | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:51:20:51:20 | After access to parameter b [false] | false | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:51:20:51:20 | After access to parameter b [true] | true | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:58:20:58:20 | After access to parameter b [false] | false | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:58:20:58:20 | After access to parameter b [true] | true | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:59:23:59:31 | After ... != ... [false] | false | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:59:23:59:31 | After ... != ... [true] | true | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:65:20:65:20 | After access to parameter b [false] | false | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:65:20:65:20 | After access to parameter b [true] | true | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:66:24:66:32 | After ... == ... [false] | false | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:66:24:66:32 | After ... == ... [true] | true | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:72:20:72:20 | After access to parameter b [false] | false | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:72:20:72:20 | After access to parameter b [true] | true | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:73:23:73:31 | After ... == ... [false] | false | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:73:23:73:31 | After ... == ... [true] | true | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:79:20:79:20 | After access to parameter b [false] | false | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:79:20:79:20 | After access to parameter b [true] | true | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:80:24:80:32 | After ... != ... [false] | false | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:80:24:80:32 | After ... != ... [true] | true | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:86:20:86:20 | After access to parameter b [false] | false | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:86:20:86:20 | After access to parameter b [true] | true | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:90:13:90:13 | After access to parameter b [false] | false | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:90:13:90:13 | After access to parameter b [true] | true | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:94:13:94:13 | After access to parameter b [false] | false | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:94:13:94:13 | After access to parameter b [true] | true | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:98:13:98:13 | After access to parameter b [false] | false | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:98:13:98:13 | After access to parameter b [true] | true | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [false] | false | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [true] | true | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [false] | false | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [true] | true | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [false] | false | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [true] | true | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [false] | false | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [true] | true | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | false | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | true | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [false] | false | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [true] | true | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | false | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | true | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [false] | false | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [true] | true | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | false | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | true | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [false] | false | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [true] | true | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | false | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | true | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:26:7:28 | String arg | false | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | true | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | false | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | false | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | false | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | false | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | true | +| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | false | +| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | true | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:22:22:24 | String arg | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | true | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:24:13:33:13 | After try {...} ... | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:30:13:33:13 | {...} | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:31:17:32:21 | After if (...) ... | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | false | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | false | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | false | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | true | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | false | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | true | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | false | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | true | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:26:47:28 | String arg | false | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | true | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | false | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | false | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | false | +| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | false | +| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | true | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | false | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | true | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:26:65:28 | String arg | false | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | true | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | false | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | false | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | false | +| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | false | +| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | true | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | false | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | true | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | false | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | false | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | false | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | true | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | false | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | true | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | true | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | true | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | false | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | true | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | false | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | true | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | false | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | false | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | false | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | true | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | false | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | true | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | false | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | true | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | false | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | true | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | false | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | true | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | false | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:25:13:25:14 | After "" [null] | true | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | false | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | true | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | false | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | true | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | false | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | true | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | false | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | true | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | false | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | true | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | false | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | false | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | false | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | true | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | false | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | false | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | false | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | true | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | false | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | true | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | false | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | true | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | false | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | true | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:14:13:14:13 | After access to parameter b [false] | false | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:14:13:14:13 | After access to parameter b [true] | true | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [false] | false | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | true | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:17:13:18:20 | After if (...) ... | true | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [false] | true | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [true] | true | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:18:17:18 | After access to parameter b [false] | false | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:18:17:18 | After access to parameter b [true] | true | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | false | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | true | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:26:13:27:20 | After if (...) ... | true | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | true | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | true | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | false | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | true | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | false | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | true | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | false | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | true | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | false | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | true | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | false | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | true | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | After ... > ... [false] | false | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | After ... > ... [true] | true | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:13:52:20 | After if (...) ... | true | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [false] | true | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [true] | true | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:51:17:51:17 | After access to parameter b [false] | false | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:51:17:51:17 | After access to parameter b [true] | true | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [false] | false | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | true | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:13:63:20 | After if (...) ... | true | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [false] | true | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [true] | true | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:65:9:66:16 | After if (...) ... | false | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:65:13:65:13 | After access to parameter b [false] | false | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:65:13:65:13 | After access to parameter b [true] | false | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:65:13:65:13 | After access to parameter b [false] | false | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:65:13:65:13 | After access to parameter b [true] | true | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:62:17:62:17 | After access to parameter b [false] | false | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:62:17:62:17 | After access to parameter b [true] | true | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:22:74:22 | String _ | false | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | true | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | false | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:76:13:77:20 | After if (...) ... | false | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:76:17:76:17 | After access to local variable b [false] | false | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:76:17:76:17 | After access to local variable b [true] | false | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:78:13:79:26 | After if (...) ... | false | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:78:17:78:21 | After ... > ... [false] | false | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:78:17:78:21 | After ... > ... [true] | false | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:13:81:13 | After access to local variable b [false] | false | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:13:81:13 | After access to local variable b [true] | true | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:76:17:76:17 | After access to local variable b [false] | false | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:76:17:76:17 | After access to local variable b [true] | true | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | false | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | true | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:22:90:22 | String _ | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | true | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:92:13:93:20 | After if (...) ... | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:92:17:92:17 | After access to local variable b [false] | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:92:17:92:17 | After access to local variable b [true] | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:94:13:95:26 | After if (...) ... | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:94:17:94:21 | After ... > ... [false] | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:94:17:94:21 | After ... > ... [true] | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:96:13:97:20 | After if (...) ... | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:96:17:96:17 | After access to local variable b [false] | false | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:96:17:96:17 | After access to local variable b [true] | false | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:92:17:92:17 | After access to local variable b [false] | false | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:92:17:92:17 | After access to local variable b [true] | true | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | false | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | true | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [false] | false | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [true] | true | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:105:13:105:13 | After access to parameter b [false] | false | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:105:13:105:13 | After access to parameter b [true] | true | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [false] | false | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | true | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:108:13:109:24 | After if (...) ... | true | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [false] | true | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [true] | true | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:18:108:18 | After access to parameter b [false] | false | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:18:108:18 | After access to parameter b [true] | true | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:119:18:119:21 | After access to local variable last [false] | false | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:119:18:119:21 | After access to local variable last [true] | true | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [false] | false | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | true | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:13:120:23 | After if (...) ... | true | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:18:119:21 | After access to local variable last [false] | true | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:18:119:21 | After access to local variable last [true] | true | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:13:122:25 | After if (...) ... | true | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:17:121:20 | After access to local variable last [false] | true | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:17:121:20 | After access to local variable last [true] | true | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:17:121:20 | After access to local variable last [false] | false | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:17:121:20 | After access to local variable last [true] | true | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | false | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | true | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:135:17:138:17 | After if (...) ... | true | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | true | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | true | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | false | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | true | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:145:17:145:17 | After access to parameter b [false] | false | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:145:17:145:17 | After access to parameter b [true] | true | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:146:13:146:13 | After access to parameter b [false] | false | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:146:13:146:13 | After access to parameter b [true] | true | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | true | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | false | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | false | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | false | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | true | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | false | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | false | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | true | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | false | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | true | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | false | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | true | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | false | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | true | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | false | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | true | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | true | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | false | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | true | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | true | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | true | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:35:65:51 | After ... != ... [false] | true | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:35:65:51 | After ... != ... [true] | true | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | true | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | false | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | false | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:35:65:51 | After ... != ... [false] | false | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:35:65:51 | After ... != ... [true] | false | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:35:65:51 | After ... != ... [false] | false | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:35:65:51 | After ... != ... [true] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:74:10:74:11 | Exceptional Exit | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:16:77:20 | After ... > ... [false] | false | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:16:77:20 | After ... > ... [true] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:79:13:99:13 | After try {...} ... | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:81:21:81:26 | After ... == ... [false] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:81:21:81:26 | After ... == ... [true] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:83:21:83:26 | After ... == ... [false] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:83:21:83:26 | After ... == ... [true] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:85:21:85:26 | After ... == ... [false] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:85:21:85:26 | After ... == ... [true] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:89:13:99:13 | {...} | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:90:17:98:17 | After try {...} ... | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:92:25:92:30 | After ... == ... [false] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:92:25:92:30 | After ... == ... [true] | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:93:31:93:45 | After object creation of type Exception | true | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:96:17:98:17 | {...} | true | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:81:21:81:26 | After ... == ... [false] | false | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:81:21:81:26 | After ... == ... [true] | true | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:83:21:83:26 | After ... == ... [false] | false | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:83:21:83:26 | After ... == ... [true] | false | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:85:21:85:26 | After ... == ... [false] | false | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:85:21:85:26 | After ... == ... [true] | false | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:83:21:83:26 | After ... == ... [false] | false | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:83:21:83:26 | After ... == ... [true] | true | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [false] | false | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [true] | false | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [false] | false | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [true] | true | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:92:25:92:30 | After ... == ... [false] | false | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:92:25:92:30 | After ... == ... [true] | true | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | After object creation of type Exception | true | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:17:107:33 | After ... == ... [false] | false | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:17:107:33 | After ... == ... [true] | true | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:21 | After access to field Field | false | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:28 | After access to property Length | false | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [false] | false | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [true] | false | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | false | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [false] | false | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [true] | true | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | true | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | After ... == ... [false] | false | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | After ... == ... [true] | true | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:17:116:32 | After ... > ... [false] | false | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:17:116:32 | After ... > ... [true] | true | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:151:17:151:28 | After ... == ... [false] | false | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:151:17:151:28 | After ... == ... [true] | true | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | true | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:21:158:36 | After ... == ... [false] | false | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:21:158:36 | After ... == ... [true] | true | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:159:27:159:44 | After object creation of type Exception | true | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:39:161:54 | After ... == ... [false] | false | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:39:161:54 | After ... == ... [true] | true | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | true | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:39:161:54 | After ... == ... [false] | true | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:39:161:54 | After ... == ... [true] | true | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | false | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | true | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | false | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | true | | Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | true | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | true | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:189:13:191:13 | {...} | true | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | true | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:189:13:191:13 | {...} | true | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | true | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:21:199:43 | throw ...; | true | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:25:205:47 | throw ...; | true | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:211:13:211:29 | ...; | false | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:213:9:213:25 | ...; | false | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:21:240:43 | throw ...; | true | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:25:247:47 | throw ...; | true | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | exit M1 (normal) | true | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | false | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | exit M2 (normal) | true | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:22:14:22 | String _ | false | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:20:27:20:38 | call to method ToArray | false | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | exit M3 (normal) | true | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x | false | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | exit M4 (normal) | true | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:23:26:23 | String x | false | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | exit M5 (normal) | true | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:23:32:23 | String x | false | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | exit M6 (normal) | true | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | false | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:10:13:10:19 | return ...; | true | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:22:11:24 | String arg | false | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:29:11:32 | access to parameter args | false | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | false | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | true | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | false | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | true | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | false | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | false | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | false | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | true | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | false | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | true | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | false | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | false | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | false | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | true | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:48:22:48:22 | String x | false | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:50:9:50:13 | Label: | false | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | true | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | false | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | false | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | false | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | false | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:61:17:61:37 | ...; | true | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | true | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [false] !... | true | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [true] !... | false | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:70:13:70:19 | return ...; | false | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:71:9:71:21 | ...; | true | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | true | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:22:72:24 | String arg | true | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | false | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:22:72:24 | String arg | false | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | true | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | false | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | true | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | false | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | true | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | false | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | true | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | false | -| NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:28:3:28 | 0 | true | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | true | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:30:5:34 | false | true | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:39:5:39 | 0 | true | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:43:5:43 | 1 | false | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:39:5:39 | 0 | true | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | true | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:46:7:53 | ... ?? ... | true | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:52:7:53 | "" | true | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:52:7:53 | "" | true | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:41:9:41 | access to parameter s | true | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:45:9:45 | access to parameter s | false | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:51:9:52 | "" | true | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | true | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:58 | ... ?? ... | false | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | true | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | true | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | true | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | true | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:68:11:68 | 1 | false | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:64:11:64 | 0 | true | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | true | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | true | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | true | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:15:31:15:31 | 0 | true | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:16:17:16:25 | ... ?? ... | true | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:17:13:17:24 | ... ?? ... | true | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:16:17:16:25 | ... ?? ... | false | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:17:13:17:24 | ... ?? ... | false | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:8:13:8:23 | [false] ... is ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:8:13:8:23 | [true] ... is ... | true | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:9:9:11:9 | {...} | true | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:12:14:18:9 | if (...) ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:12:18:12:31 | [false] ... is ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:12:18:12:31 | [true] ... is ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:13:9:15:9 | {...} | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:16:14:18:9 | if (...) ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:16:18:16:28 | [false] ... is ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:16:18:16:28 | [true] ... is ... | false | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:17:9:18:9 | {...} | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:14:18:9 | if (...) ... | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:18:12:31 | [false] ... is ... | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:18:12:31 | [true] ... is ... | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:13:9:15:9 | {...} | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:16:18:16:28 | [false] ... is ... | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:16:18:16:28 | [true] ... is ... | false | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:17:9:18:9 | {...} | false | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:9:9:11:9 | {...} | true | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | [false] ... is ... | false | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | [true] ... is ... | true | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:13:9:15:9 | {...} | true | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:16:14:18:9 | if (...) ... | false | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [false] ... is ... | false | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [true] ... is ... | false | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:17:9:18:9 | {...} | false | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | false | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:18:16:28 | [false] ... is ... | false | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:18:16:28 | [true] ... is ... | false | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:17:9:18:9 | {...} | false | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:13:9:15:9 | {...} | true | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [false] ... is ... | false | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [true] ... is ... | true | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:17:9:18:9 | {...} | true | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:17:9:18:9 | {...} | true | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:23:17:23:22 | break; | true | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:24:13:24:36 | case ...: | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:24:30:24:31 | access to local variable i2 | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:25:17:25:52 | ...; | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:27:13:27:24 | case ...: | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:28:17:28:47 | ...; | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:30:13:30:27 | case ...: | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:31:17:31:50 | ...; | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:33:13:33:24 | case ...: | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:34:17:34:22 | break; | false | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:35:13:35:20 | default: | false | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:30:24:31 | access to local variable i2 | true | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:25:17:25:52 | ...; | true | -| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:25:17:25:52 | ...; | true | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:28:17:28:47 | ...; | true | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | case ...: | false | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:31:17:31:50 | ...; | false | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | case ...: | false | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:34:17:34:22 | break; | false | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:35:13:35:20 | default: | false | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:31:17:31:50 | ...; | true | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:33:13:33:24 | case ...: | false | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:34:17:34:22 | break; | false | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:35:13:35:20 | default: | false | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:34:17:34:22 | break; | true | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:35:13:35:20 | default: | false | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:9:51:21 | [false] ... is ... | true | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:9:51:21 | [true] ... is ... | false | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:14:51:21 | [match] not ... | false | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:14:51:21 | [no-match] not ... | true | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:25:51:25 | access to parameter c | false | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:34:51:34 | access to parameter c | true | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | false | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | true | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:9:51:21 | [true] ... is ... | true | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:25:51:25 | access to parameter c | true | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:9:51:21 | [false] ... is ... | false | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:34:51:34 | access to parameter c | false | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:27:54:35 | [match] { ... } | true | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:27:54:35 | [no-match] { ... } | true | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:33:54:33 | 1 | true | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [match] { ... } | true | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [no-match] { ... } | false | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:60:13:60:17 | [match] not ... | false | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:60:13:60:17 | [no-match] not ... | true | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:60:22:60:28 | "not 1" | false | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:61:13:61:13 | _ | true | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:61:18:61:24 | "other" | true | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:60:22:60:28 | "not 1" | true | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:61:13:61:13 | _ | false | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:61:18:61:24 | "other" | false | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:18:61:24 | "other" | true | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:69:13:69:17 | [no-match] not ... | true | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:70:13:70:13 | 2 | true | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:70:18:70:27 | "possible" | true | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:70:13:70:13 | 2 | false | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:70:18:70:27 | "possible" | false | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:18:70:27 | "possible" | true | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:78:20:78:24 | "> 1" | true | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:79:15:79:15 | 0 | false | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:79:20:79:24 | "< 0" | false | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:80:13:80:13 | 1 | false | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:80:18:80:20 | "1" | false | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:81:13:81:13 | _ | false | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:81:18:81:20 | "0" | false | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:20:79:24 | "< 0" | true | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:80:13:80:13 | 1 | false | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:80:18:80:20 | "1" | false | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:81:13:81:13 | _ | false | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:81:18:81:20 | "0" | false | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:18:80:20 | "1" | true | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:81:13:81:13 | _ | false | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:81:18:81:20 | "0" | false | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:18:81:20 | "0" | true | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:39:85:53 | [false] ... is ... | false | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:44:85:53 | [no-match] ... or ... | false | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:49:85:53 | [match] not ... | false | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:49:85:53 | [no-match] not ... | false | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:53:85:53 | 2 | false | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:67:85:69 | "2" | false | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:67:85:69 | "2" | false | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | true | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:39:85:53 | [true] ... is ... | true | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:57:85:63 | "not 2" | true | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:39:85:53 | [false] ... is ... | false | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:67:85:69 | "2" | false | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:39:85:53 | [false] ... is ... | false | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | false | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:67:85:69 | "2" | false | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:39:85:53 | [false] ... is ... | true | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:44:85:53 | [no-match] ... or ... | true | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [match] not ... | false | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [no-match] not ... | true | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:67:85:69 | "2" | true | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:39:87:54 | [true] ... is ... | true | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:44:87:54 | [match] ... and ... | true | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:50:87:54 | [match] not ... | true | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:50:87:54 | [no-match] not ... | true | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:54:87:54 | 2 | true | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:58:87:60 | "1" | true | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:64:87:70 | "not 1" | false | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:58:87:60 | "1" | true | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:39:87:54 | [true] ... is ... | true | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:58:87:60 | "1" | true | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:39:87:54 | [false] ... is ... | false | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:64:87:70 | "not 1" | false | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:39:87:54 | [true] ... is ... | true | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:44:87:54 | [match] ... and ... | true | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:58:87:60 | "1" | true | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:39:87:54 | [true] ... is ... | false | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:44:87:54 | [match] ... and ... | false | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [match] not ... | false | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [no-match] not ... | true | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:58:87:60 | "1" | false | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:13:95:40 | [false] ... is ... | false | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:21:95:40 | [no-match] { ... } | false | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:21:95:40 | [no-match] { ... } | false | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:29:95:38 | [no-match] ... or ... | false | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:36:95:38 | access to constant B | false | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:96:9:98:9 | {...} | true | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:13:95:40 | [true] ... is ... | true | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:13:95:40 | [true] ... is ... | true | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | true | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:96:9:98:9 | {...} | true | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:96:9:98:9 | {...} | true | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:13:95:40 | [false] ... is ... | false | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:13:95:40 | [false] ... is ... | false | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | false | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:13:95:40 | [true] ... is ... | true | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:21:95:40 | [match] { ... } | true | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:21:95:40 | [match] { ... } | true | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:96:9:98:9 | {...} | true | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:13:95:40 | [false] ... is ... | false | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | false | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | false | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:13:95:40 | [false] ... is ... | false | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:21:95:40 | [no-match] { ... } | false | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:21:95:40 | [no-match] { ... } | false | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:38 | [no-match] ... or ... | false | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:12:13:12:21 | [false] ... is ... | false | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:12:13:12:21 | [true] ... is ... | true | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:13:13:13:19 | return ...; | true | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:14:9:14:29 | ...; | false | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:14:9:14:29 | ...; | false | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | true | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:19:13:19:21 | [false] ... is ... | false | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:19:13:19:21 | [true] ... is ... | true | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:20:45:20:53 | nameof(...) | true | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:21:9:21:29 | ...; | false | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:21:9:21:29 | ...; | false | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:20:45:20:53 | nameof(...) | true | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | exit M2 (abnormal) | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:15:17:15:23 | return ...; | true | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:16:13:16:19 | case ...: | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:17:23:17:37 | object creation of type Exception | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:18:13:18:22 | case ...: | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:19:17:19:29 | goto default; | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:20:13:20:23 | case ...: | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:21:17:22:27 | if (...) ... | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:22:21:22:27 | return ...; | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:23:27:23:27 | 0 | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:13:24:56 | case ...: | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:32:24:32 | access to local variable s | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:32:24:55 | [true] ... && ... | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:48:24:48 | access to local variable s | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:25:17:25:37 | ...; | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:27:13:27:39 | case ...: | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:27:32:27:38 | call to method Throw | false | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:30:13:30:20 | default: | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:17:23:17:37 | object creation of type Exception | true | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:18:13:18:22 | case ...: | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:19:17:19:29 | goto default; | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:20:13:20:23 | case ...: | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:21:17:22:27 | if (...) ... | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:22:21:22:27 | return ...; | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:23:27:23:27 | 0 | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:13:24:56 | case ...: | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:25:17:25:37 | ...; | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:27:13:27:39 | case ...: | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | false | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:30:13:30:20 | default: | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:19:17:19:29 | goto default; | true | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:20:13:20:23 | case ...: | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:21:17:22:27 | if (...) ... | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:22:21:22:27 | return ...; | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:23:27:23:27 | 0 | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:13:24:56 | case ...: | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:25:17:25:37 | ...; | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:27:13:27:39 | case ...: | false | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:21:17:22:27 | if (...) ... | true | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:22:21:22:27 | return ...; | true | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:23:27:23:27 | 0 | true | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:13:24:56 | case ...: | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:25:17:25:37 | ...; | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:27:13:27:39 | case ...: | false | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | false | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:22:21:22:27 | return ...; | true | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:23:27:23:27 | 0 | false | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | true | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | true | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | true | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | true | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:25:17:25:37 | ...; | true | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:55 | [true] ... && ... | true | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:48:24:48 | access to local variable s | true | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:25:17:25:37 | ...; | true | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:25:17:25:37 | ...; | true | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:32:24:55 | [true] ... && ... | true | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:25:17:25:37 | ...; | true | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | true | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:49:17:49:22 | break; | true | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:50:13:50:39 | case ...: | false | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:50:30:50:30 | access to parameter o | false | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:51:17:51:22 | break; | false | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:30:50:30 | access to parameter o | true | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:51:17:51:22 | break; | true | -| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:51:17:51:22 | break; | true | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:61:13:61:19 | case ...: | false | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:62:17:62:22 | break; | false | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:62:17:62:22 | break; | true | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:66:10:66:11 | exit M6 (normal) | false | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:72:13:72:20 | case ...: | false | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:73:17:73:22 | break; | false | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:73:17:73:22 | break; | true | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:82:24:82:27 | true | true | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:83:13:83:19 | case ...: | false | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:84:17:85:26 | if (...) ... | false | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:85:21:85:26 | break; | false | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:86:24:86:27 | true | false | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:88:16:88:20 | false | false | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:84:17:85:26 | if (...) ... | true | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:85:21:85:26 | break; | true | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:86:24:86:27 | true | true | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:85:21:85:26 | break; | true | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:86:24:86:27 | true | false | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:96:24:96:27 | true | true | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:98:16:98:20 | false | false | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:103:17:103:25 | access to property Length | false | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:28:105:28 | 0 | true | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:106:13:106:19 | case ...: | false | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:106:28:106:28 | 1 | false | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:108:17:108:17 | 1 | false | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:28:106:28 | 1 | true | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:108:17:108:17 | 1 | false | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:117:25:117:25 | access to parameter s | true | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:117:44:117:44 | 1 | true | -| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:44:117:44 | 1 | true | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:25 | access to parameter s | true | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:43:118:43 | 2 | true | -| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:43:118:43 | 2 | true | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:13:125:48 | [true] ... switch { ... } | true | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:24:125:34 | [false] ... => ... | true | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:24:125:34 | [true] ... => ... | true | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:34:125:34 | access to local variable b | true | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:37:125:37 | _ | false | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:37:125:46 | [false] ... => ... | false | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:42:125:46 | false | false | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:126:13:126:19 | return ...; | true | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:126:13:126:19 | return ...; | true | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:13:125:48 | [true] ... switch { ... } | true | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:126:13:126:19 | return ...; | true | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | [true] ... switch { ... } | true | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [false] ... => ... | false | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [true] ... => ... | true | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:126:13:126:19 | return ...; | true | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:46 | [false] ... => ... | true | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:42:125:46 | false | true | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:37:125:46 | [false] ... => ... | false | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:16:131:66 | call to method ToString | true | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | true | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:28:131:40 | [non-null] ... => ... | true | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:28:131:40 | [null] ... => ... | true | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:40:131:40 | access to local variable s | true | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:43:131:43 | _ | false | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:43:131:51 | [null] ... => ... | false | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:48:131:51 | null | false | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:16:131:66 | call to method ToString | false | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:16:131:66 | call to method ToString | false | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | false | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:16:131:66 | call to method ToString | false | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | false | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [non-null] ... => ... | false | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [null] ... => ... | true | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:51 | [null] ... => ... | true | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:48:131:51 | null | true | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:43:131:51 | [null] ... => ... | true | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:138:13:138:20 | default: | false | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:139:28:139:28 | 1 | true | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:140:13:140:19 | case ...: | false | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:140:28:140:28 | 2 | false | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:138:13:138:20 | default: | false | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:28:140:28 | 2 | true | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:148:28:148:28 | 1 | true | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:149:13:149:20 | default: | false | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:150:13:150:19 | case ...: | false | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:150:28:150:28 | 2 | false | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:149:13:149:20 | default: | false | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:28:150:28 | 2 | true | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | exit M15 (abnormal) | false | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:36:156:38 | "a" | true | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:41:156:45 | false | false | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:50:156:52 | "b" | false | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:158:13:158:49 | ...; | true | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:160:13:160:49 | ...; | false | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | true | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:168:13:168:19 | case ...: | false | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:171:13:171:19 | case ...: | false | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:172:17:172:46 | ...; | false | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:174:13:174:20 | default: | false | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:171:13:171:19 | case ...: | false | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:172:17:172:46 | ...; | false | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:174:13:174:20 | default: | false | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:172:17:172:46 | ...; | true | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:174:13:174:20 | default: | false | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | false | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | true | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:25:7:25 | ; | true | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | true | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:25:24:25:24 | access to local variable x | true | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:25:28:25:28 | access to local variable y | false | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:12:13:12:49 | ...; | true | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:5:17:5:20 | exit Main (normal) | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:15:9:17:9 | {...} | true | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:19:9:22:25 | do ... while (...); | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:20:9:22:9 | {...} | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:24:9:34:9 | for (...;...;...) ... | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:24:25:24:25 | access to local variable i | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:24:34:24:34 | access to local variable i | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:25:9:34:9 | {...} | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:26:17:26:40 | [false] ... && ... | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:26:17:26:40 | [true] ... && ... | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:26:31:26:31 | access to local variable i | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:27:17:27:46 | ...; | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:28:18:33:37 | if (...) ... | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:29:17:29:42 | ...; | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:30:18:33:37 | if (...) ... | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:31:17:31:42 | ...; | false | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:33:17:33:37 | ...; | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:5:17:5:20 | exit Main (normal) | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:9:34:9 | for (...;...;...) ... | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:25 | access to local variable i | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:34:24:34 | access to local variable i | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:25:9:34:9 | {...} | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:40 | [false] ... && ... | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:40 | [true] ... && ... | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:31:26:31 | access to local variable i | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:27:17:27:46 | ...; | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:18:33:37 | if (...) ... | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:29:17:29:42 | ...; | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:18:33:37 | if (...) ... | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:31:17:31:42 | ...; | false | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:33:17:33:37 | ...; | false | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:5:17:5:20 | exit Main (normal) | false | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:34:24:34 | access to local variable i | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:25:9:34:9 | {...} | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:17:26:40 | [false] ... && ... | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:17:26:40 | [true] ... && ... | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:27:17:27:46 | ...; | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:28:18:33:37 | if (...) ... | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:29:17:29:42 | ...; | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:30:18:33:37 | if (...) ... | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:31:17:31:42 | ...; | true | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:33:17:33:37 | ...; | true | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:26:17:26:40 | [true] ... && ... | true | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:26:31:26:31 | access to local variable i | true | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:27:17:27:46 | ...; | true | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:28:18:33:37 | if (...) ... | false | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:29:17:29:42 | ...; | false | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:30:18:33:37 | if (...) ... | false | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:31:17:31:42 | ...; | false | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:33:17:33:37 | ...; | false | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:27:17:27:46 | ...; | true | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:17:26:40 | [true] ... && ... | true | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:27:17:27:46 | ...; | true | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:29:17:29:42 | ...; | true | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:30:18:33:37 | if (...) ... | false | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:31:17:31:42 | ...; | false | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:33:17:33:37 | ...; | false | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:31:17:31:42 | ...; | true | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:33:17:33:37 | ...; | false | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:42:17:42:39 | ...; | true | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | exit Switch | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:45:17:45:39 | ...; | true | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:47:13:47:19 | case ...: | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:48:17:48:39 | ...; | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:51:9:59:9 | switch (...) {...} | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:54:17:54:48 | ...; | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:56:13:56:20 | default: | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:60:9:66:9 | switch (...) {...} | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:63:17:64:55 | if (...) ... | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:63:21:63:34 | [false] !... | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:63:21:63:34 | [true] !... | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:65:17:65:22 | break; | false | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:67:16:67:16 | access to parameter a | false | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:48:17:48:39 | ...; | true | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:54:17:54:48 | ...; | true | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:56:13:56:20 | default: | false | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:17:64:55 | if (...) ... | true | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:21:63:34 | [false] !... | true | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:21:63:34 | [true] !... | true | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | true | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:65:17:65:22 | break; | true | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | [false] !... | true | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | [true] !... | false | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | false | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:65:17:65:22 | break; | true | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:65:17:65:22 | break; | false | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | true | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:73:13:73:19 | return ...; | true | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:74:9:81:9 | if (...) ... | false | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:75:9:77:9 | {...} | false | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:79:9:81:9 | {...} | false | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:75:9:77:9 | {...} | true | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:79:9:81:9 | {...} | false | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:86:13:86:37 | [true] ... && ... | true | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:86:26:86:26 | access to parameter s | true | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:87:13:87:33 | ...; | true | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:87:13:87:33 | ...; | true | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:13:86:37 | [true] ... && ... | true | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:87:13:87:33 | ...; | true | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:90:18:90:19 | exit M3 (normal) | false | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:93:45:93:47 | "s" | true | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:94:9:94:29 | ...; | false | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:97:13:97:55 | ...; | false | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:99:9:100:42 | if (...) ... | false | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:100:13:100:42 | ...; | false | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:102:9:103:36 | if (...) ... | false | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:103:13:103:36 | ...; | false | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:97:13:97:55 | ...; | true | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:100:13:100:42 | ...; | true | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:103:13:103:36 | ...; | true | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:109:9:115:9 | {...} | true | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:110:20:110:23 | true | true | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:111:13:113:13 | {...} | true | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:116:9:116:29 | ...; | false | -| cflow.cs:110:20:110:23 | true | cflow.cs:111:13:113:13 | {...} | true | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:48:127:49 | "" | true | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:53:127:57 | this access | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:146:10:146:12 | exit For (normal) | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:150:13:150:33 | ...; | true | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:152:9:157:9 | for (...;...;...) ... | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:152:18:152:18 | access to local variable x | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:153:9:157:9 | {...} | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:156:17:156:22 | break; | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:160:9:165:9 | {...} | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:164:17:164:22 | break; | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:167:16:167:16 | access to local variable x | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:168:9:171:9 | {...} | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:173:9:176:9 | for (...;...;...) ... | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:173:32:173:32 | access to local variable i | false | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:174:9:176:9 | {...} | false | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:146:10:146:12 | exit For (normal) | true | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:152:18:152:18 | access to local variable x | false | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:156:17:156:22 | break; | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | true | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | false | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | true | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | true | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | true | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | false | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | true | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | false | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | true | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | true | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | false | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | true | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | true | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:197:9:212:9 | After try {...} ... | false | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:203:13:210:13 | After try {...} ... | false | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | false | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | true | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | false | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | true | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | true | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | false | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | true | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | true | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:22:8:24 | String arg | false | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | true | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | false | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:22:14:22 | String _ | false | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | true | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | false | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | false | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:27 | After access to parameter e [null] | true | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | false | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | false | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | true | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | false | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:18:26:31 | Before (..., ...) | false | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | true | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | false | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:18:32:27 | Before (..., ...) | false | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | true | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | false | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:18:38:34 | Before (..., ...) | false | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | true | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | false | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | false | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | true | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | false | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:22:11:24 | String arg | false | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | false | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | false | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:22:11:24 | String arg | false | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | true | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | false | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:22:18:22 | String x | false | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | false | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:22:24:24 | Char arg | false | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | true | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | false | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | false | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:26:25:29 | Char arg0 | false | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | false | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | false | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:26:25:29 | Char arg0 | false | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | true | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | false | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:22:32:22 | String x | false | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | false | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:22:40:22 | String x | false | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | false | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | false | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:26:41:26 | String y | false | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | false | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | false | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:26:41:26 | String y | false | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | true | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | false | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | false | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:50:9:50:13 | Label: | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:22:58:22 | String x | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | false | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | true | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | true | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | false | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | true | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | true | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:22:72:24 | String arg | true | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | true | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | true | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:22:72:24 | String arg | false | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | true | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | false | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:22:79:22 | String x | false | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | false | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:22:88:22 | String x | false | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | false | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:22:97:22 | String x | false | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | true | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | false | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | false | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | true | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | false | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | true | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | false | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | true | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | false | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | true | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | true | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | true | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | true | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | false | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | true | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | false | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | true | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | true | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | true | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | false | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | false | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | false | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | true | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | false | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | true | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | false | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:52 | After "" [null] | true | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | false | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | true | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | true | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | true | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | true | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | true | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | true | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | false | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | true | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | true | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | true | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | false | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | true | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | false | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | true | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | false | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [null] | true | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | false | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | true | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | After ... is ... [false] | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | [match-true] ... is ... | true | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:14:18:9 | After if (...) ... | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | [match-true] ... is ... | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:14:18:9 | After if (...) ... | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | [match-true] ... is ... | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [match] | true | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [no-match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:13:24:36 | After case ...: [match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:13:24:36 | After case ...: [no-match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | After case ...: [match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | After case ...: [no-match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | case ...: | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:13:30:27 | After case ...: [match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:13:30:27 | After case ...: [no-match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [match] | false | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | [match-true] ... is ... | true | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | false | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | false | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | true | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [match] | true | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | false | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | true | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | true | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | false | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | true | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [match] | true | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [no-match] | false | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | false | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [match] | true | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [no-match] | false | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [match] | false | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [no-match] | false | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [match] | false | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | true | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | [match-true] ... is ... | true | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | After ... is ... [false] | false | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | [match-true] ... is ... | true | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | After ... is ... | true | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | After ... is ... | false | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | [match-true] ... is ... | false | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | [match-true] ... is ... | true | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | [match-true] ... is ... | true | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [match] | true | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | false | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | After ... => ... [match] | true | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | false | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:27 | After ... => ... [match] | false | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | false | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [match] | true | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | false | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | After ... => ... [match] | true | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | false | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:24 | After ... => ... [match] | false | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | false | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:20 | After ... => ... [match] | false | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | false | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [match] | true | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | false | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | false | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | false | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | true | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | false | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | After ... is ... [false] | false | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | [match-true] ... is ... | true | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | After ... is ... [false] | false | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | [match-true] ... is ... | true | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | After ... is ... [false] | false | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | [match-true] ... is ... | true | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | After ... is ... [false] | false | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | true | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | After ... is ... [false] | false | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | true | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Exceptional Exit | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [match] | true | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [no-match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:13:16:19 | After case ...: [match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:13:16:19 | After case ...: [no-match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:13:18:22 | After case ...: [match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:13:18:22 | After case ...: [no-match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:13:20:23 | After case ...: [match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:13:20:23 | After case ...: [no-match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:21:21:21:29 | After ... == ... [false] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:21:21:21:29 | After ... == ... [true] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:13:24:56 | After case ...: [match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:13:24:56 | After case ...: [no-match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:43 | After ... > ... [false] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:43 | After ... > ... [true] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:48:24:55 | After ... != ... [false] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:48:24:55 | After ... != ... [true] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | After case ...: [match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | After case ...: [no-match] | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | case ...: | false | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:30:13:30:20 | After default: [match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | After case ...: [no-match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | false | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:30:13:30:20 | After default: [match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [match] | true | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | false | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | true | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | true | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | true | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | false | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | false | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | After ... == ... [true] | true | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | true | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | true | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | true | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | true | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | true | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | true | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | After ... > ... [true] | true | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:48:24:55 | After ... != ... [false] | true | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:48:24:55 | After ... != ... [true] | true | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | After ... != ... [false] | false | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | After ... != ... [true] | true | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [match] | true | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [no-match] | false | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | After case ...: [match] | true | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | After case ...: [no-match] | false | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:13:50:39 | After case ...: [match] | false | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:13:50:39 | After case ...: [no-match] | false | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:30:50:38 | After ... != ... [false] | false | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:30:50:38 | After ... != ... [true] | false | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [match] | true | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | false | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:30:50:38 | After ... != ... [false] | true | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:30:50:38 | After ... != ... [true] | true | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | After ... != ... [false] | false | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | After ... != ... [true] | true | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | After case ...: [match] | true | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | After case ...: [no-match] | false | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:13:61:19 | After case ...: [match] | false | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:13:61:19 | After case ...: [no-match] | false | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [match] | true | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | false | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | After case ...: [match] | true | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | After case ...: [no-match] | false | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:13:72:20 | After case ...: [match] | false | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:13:72:20 | After case ...: [no-match] | false | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [match] | true | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | false | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:79:9:87:9 | After switch (...) {...} | false | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | After case ...: [match] | true | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | After case ...: [no-match] | false | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:13:83:19 | After case ...: [match] | false | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:13:83:19 | After case ...: [no-match] | false | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:84:21:84:25 | After ... > ... [false] | false | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:84:21:84:25 | After ... > ... [true] | false | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [match] | true | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | false | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:84:21:84:25 | After ... > ... [false] | true | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:84:21:84:25 | After ... > ... [true] | true | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | After ... > ... [false] | false | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | After ... > ... [true] | true | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | After case ...: [match] | true | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | After case ...: [no-match] | false | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | false | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | After access to parameter s [null] | true | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | After case ...: [match] | true | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | After case ...: [no-match] | false | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:13:106:19 | After case ...: [match] | false | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:13:106:19 | After case ...: [no-match] | false | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [match] | true | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [no-match] | false | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | After case ...: [match] | true | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | After case ...: [no-match] | false | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:25:117:34 | After ... == ... [false] | true | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:25:117:34 | After ... == ... [true] | true | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | After ... == ... [false] | false | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | After ... == ... [true] | true | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | After ... == ... [false] | false | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | After ... == ... [true] | true | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [match] | true | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [no-match] | false | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:33 | After ... == ... [false] | true | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:33 | After ... == ... [true] | true | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | After ... => ... [match] | true | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | After ... => ... [no-match] | false | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | After ... => ... [match] | true | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | After ... => ... [no-match] | false | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | After case ...: [match] | true | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | After case ...: [no-match] | false | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:13:140:19 | After case ...: [match] | false | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:13:140:19 | After case ...: [no-match] | false | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [match] | true | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [no-match] | false | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | After case ...: [match] | true | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | After case ...: [no-match] | false | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:13:150:19 | After case ...: [match] | false | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:13:150:19 | After case ...: [no-match] | false | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [match] | true | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [no-match] | false | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | After ... => ... [match] | true | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | After ... => ... [no-match] | false | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:52 | After ... => ... [match] | false | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:52 | After ... => ... [no-match] | false | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | After access to parameter b [false] | false | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | After access to parameter b [true] | true | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [match] | true | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | false | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | After case ...: [match] | true | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | After case ...: [no-match] | false | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:13:168:19 | After case ...: [match] | false | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:13:168:19 | After case ...: [no-match] | false | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:13:171:19 | After case ...: [match] | false | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:13:171:19 | After case ...: [no-match] | false | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [match] | true | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [no-match] | false | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [match] | false | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | false | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [match] | true | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | false | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | false | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | true | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | false | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | true | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:11:13:11:17 | After ... > ... [false] | false | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:11:13:11:17 | After ... > ... [true] | true | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | After ... > ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | After ... > ... [true] | true | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:20:9:22:9 | {...} | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:22:18:22:23 | After ... < ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:22:18:22:23 | After ... < ... [true] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:24:25:24:31 | Before ... <= ... | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:13:33:37 | After if (...) ... | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:17:26:26 | After ... == ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:17:26:26 | After ... == ... [true] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:17:26:40 | After ... && ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:31:26:40 | After ... == ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:31:26:40 | After ... == ... [true] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:28:22:28:31 | After ... == ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:28:22:28:31 | After ... == ... [true] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:30:22:30:31 | After ... == ... [false] | false | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:30:22:30:31 | After ... == ... [true] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | After ... < ... [false] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | After ... < ... [true] | true | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:31 | After ... <= ... [false] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:31 | After ... <= ... [true] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:31 | Before ... <= ... | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:13:33:37 | After if (...) ... | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:26 | After ... == ... [false] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:26 | After ... == ... [true] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:40 | After ... && ... [false] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:31:26:40 | After ... == ... [false] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:31:26:40 | After ... == ... [true] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:18:33:37 | After if (...) ... | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:22:28:31 | After ... == ... [false] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:22:28:31 | After ... == ... [true] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:18:33:37 | After if (...) ... | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:22:30:31 | After ... == ... [false] | false | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:22:30:31 | After ... == ... [true] | false | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:17:26:26 | After ... == ... [false] | false | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:17:26:26 | After ... == ... [true] | true | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:31:26:40 | After ... == ... [false] | true | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:31:26:40 | After ... == ... [true] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | false | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:13:33:37 | After if (...) ... | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:26 | After ... == ... [false] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:26 | After ... == ... [true] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:40 | After ... && ... [false] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:31:26:40 | After ... == ... [false] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:31:26:40 | After ... == ... [true] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:18:33:37 | After if (...) ... | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:22:28:31 | After ... == ... [false] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:22:28:31 | After ... == ... [true] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:18:33:37 | After if (...) ... | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:22:30:31 | After ... == ... [false] | true | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:22:30:31 | After ... == ... [true] | true | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:31:26:40 | After ... == ... [false] | false | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:31:26:40 | After ... == ... [true] | true | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:22:28:31 | After ... == ... [false] | false | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:22:28:31 | After ... == ... [true] | true | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:30:18:33:37 | After if (...) ... | false | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | false | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | false | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | false | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | true | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:37:17:37:22 | Exit | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:39:9:50:9 | After switch (...) {...} | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:13:41:19 | After case ...: [no-match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:44:13:44:19 | After case ...: [no-match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:13:47:19 | After case ...: [match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:13:47:19 | After case ...: [no-match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:51:9:59:9 | After switch (...) {...} | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:13:53:20 | After case ...: [match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:13:53:20 | After case ...: [no-match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:60:9:66:9 | After switch (...) {...} | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:13:62:19 | After case ...: [match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:13:62:19 | After case ...: [no-match] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:63:23:63:33 | After ... == ... [false] | false | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:63:23:63:33 | After ... == ... [true] | false | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [match] | true | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [no-match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Exit | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:39:9:50:9 | After switch (...) {...} | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | After case ...: [no-match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:51:9:59:9 | After switch (...) {...} | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [no-match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:60:9:66:9 | After switch (...) {...} | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [false] | false | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [true] | false | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [match] | true | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | false | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [match] | true | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [no-match] | false | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [false] | true | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [true] | true | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | After ... == ... [false] | false | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | After ... == ... [true] | true | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | After ... == ... [false] | false | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | After ... == ... [true] | true | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:74:9:81:9 | After if (...) ... | false | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:74:13:74:24 | After ... > ... [false] | false | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:74:13:74:24 | After ... > ... [true] | false | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:74:13:74:24 | After ... > ... [false] | false | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:74:13:74:24 | After ... > ... [true] | true | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:13:86:21 | After ... != ... [false] | false | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:13:86:21 | After ... != ... [true] | true | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:26:86:37 | After ... > ... [false] | true | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:26:86:37 | After ... > ... [true] | true | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:26:86:37 | After ... > ... [false] | false | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:26:86:37 | After ... > ... [true] | true | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:92:13:92:27 | After call to method Equals [false] | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:92:13:92:27 | After call to method Equals [true] | true | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:96:9:97:55 | After if (...) ... | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:96:13:96:25 | After ... != ... [false] | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:96:13:96:25 | After ... != ... [true] | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:99:9:100:42 | After if (...) ... | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:99:13:99:25 | After ... != ... [false] | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:99:13:99:25 | After ... != ... [true] | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:102:9:103:36 | After if (...) ... | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:102:13:102:29 | After ... != ... [false] | false | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:102:13:102:29 | After ... != ... [true] | false | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:96:13:96:25 | After ... != ... [false] | false | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:96:13:96:25 | After ... != ... [true] | true | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [false] | false | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [true] | true | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [false] | false | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [true] | true | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:108:13:108:21 | After ... != ... [false] | false | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:108:13:108:21 | After ... != ... [true] | true | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | true | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:32:127:44 | After ... == ... [false] | false | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:32:127:44 | After ... == ... [true] | true | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [false] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | true | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:153:9:157:9 | {...} | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [false] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [true] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:160:9:165:9 | {...} | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [false] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [true] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:167:16:167:21 | Before ... < ... | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | false | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:173:32:173:41 | Before ... < ... | false | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | After ... > ... [false] | false | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | After ... > ... [true] | true | | cflow.cs:153:9:157:9 | {...} | cflow.cs:160:9:165:9 | {...} | true | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:164:17:164:22 | break; | true | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:16 | access to local variable x | true | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:168:9:171:9 | {...} | true | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:9:176:9 | for (...;...;...) ... | true | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:32 | access to local variable i | true | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:174:9:176:9 | {...} | true | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:146:10:146:12 | exit For (normal) | true | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:164:17:164:22 | break; | true | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:16 | access to local variable x | true | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:168:9:171:9 | {...} | true | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:9:176:9 | for (...;...;...) ... | true | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:32 | access to local variable i | true | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:174:9:176:9 | {...} | true | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:146:10:146:12 | exit For (normal) | false | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:168:9:171:9 | {...} | true | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:173:9:176:9 | for (...;...;...) ... | false | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:173:32:173:32 | access to local variable i | false | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:174:9:176:9 | {...} | false | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:146:10:146:12 | exit For (normal) | false | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:174:9:176:9 | {...} | true | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:13:187:28 | ... \|\| ... | false | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:13:187:50 | ... \|\| ... | false | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:23:187:23 | 2 | false | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:34:187:34 | 1 | false | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:34:187:49 | ... && ... | false | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:190:13:190:52 | ...; | false | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | false | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:34:187:34 | 1 | false | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:34:187:49 | ... && ... | false | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:190:13:190:52 | ...; | false | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:190:13:190:52 | ...; | false | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:13:187:28 | ... \|\| ... | false | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:13:187:50 | ... \|\| ... | false | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:34:187:34 | 1 | false | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:34:187:49 | ... && ... | false | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:190:13:190:52 | ...; | false | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:13:187:50 | ... \|\| ... | false | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:49 | ... && ... | false | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:190:13:190:52 | ...; | false | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:13:187:50 | ... \|\| ... | false | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:190:13:190:52 | ...; | false | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:195:39:195:43 | this access | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:13:197:47 | [false] !... | false | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:13:197:47 | [true] !... | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | false | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:35:197:39 | false | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:43:197:46 | true | false | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:13:198:49 | ...; | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:17:198:48 | ... ? ... : ... | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:37:198:41 | false | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:45:198:48 | true | true | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:13:198:49 | ...; | true | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:17:198:48 | ... ? ... : ... | true | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:37:198:41 | false | true | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:45:198:48 | true | true | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:13:197:47 | [true] !... | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:13:198:49 | ...; | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:17:198:48 | ... ? ... : ... | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:37:198:41 | false | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:45:198:48 | true | false | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:13:197:47 | [false] !... | true | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:13:197:47 | [true] !... | false | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | false | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:13:198:49 | ...; | false | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:17:198:48 | ... ? ... : ... | false | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:37:198:41 | false | false | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:45:198:48 | true | false | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:13:197:47 | [false] !... | true | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | true | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:37:198:41 | false | true | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:45:198:48 | true | false | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:32 | [false] !... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:32 | [true] !... | false | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:37:200:62 | [false] !... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:37:200:62 | [true] !... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:38:200:62 | [false] !... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:38:200:62 | [true] !... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:40:200:44 | this access | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:40:200:61 | [false] ... && ... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:40:200:61 | [true] ... && ... | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:61:200:61 | access to local variable b | true | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:193:10:193:17 | exit Booleans (normal) | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:37:200:62 | [false] !... | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:37:200:62 | [true] !... | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:38:200:62 | [false] !... | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:38:200:62 | [true] !... | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:44 | this access | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:61 | [false] ... && ... | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:61 | [true] ... && ... | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:61:200:61 | access to local variable b | false | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | false | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:201:9:205:9 | {...} | true | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:193:10:193:17 | exit Booleans (normal) | false | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | false | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:37:200:62 | [true] !... | false | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:193:10:193:17 | exit Booleans (normal) | true | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | true | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:37:200:62 | [false] !... | true | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:37:200:62 | [true] !... | true | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:38:200:62 | [false] !... | true | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:61 | [true] ... && ... | true | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:61:200:61 | access to local variable b | true | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | false | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | false | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:37:200:62 | [false] !... | false | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:38:200:62 | [true] !... | false | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:37:200:62 | [true] !... | true | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:38:200:62 | [false] !... | true | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:37:200:62 | [true] !... | true | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:38:200:62 | [false] !... | true | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [true] ... && ... | true | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:214:13:216:13 | {...} | true | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:217:13:220:13 | if (...) ... | false | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:218:13:220:13 | {...} | false | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:218:13:220:13 | {...} | true | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:22:226:22 | String x | false | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:230:13:232:13 | {...} | false | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:233:13:236:13 | if (...) ... | false | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:234:13:236:13 | {...} | false | -| cflow.cs:226:22:226:22 | String x | cflow.cs:230:13:232:13 | {...} | true | -| cflow.cs:226:22:226:22 | String x | cflow.cs:233:13:236:13 | if (...) ... | false | -| cflow.cs:226:22:226:22 | String x | cflow.cs:234:13:236:13 | {...} | false | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:234:13:236:13 | {...} | true | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:16:242:36 | [false] !... | false | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:16:242:36 | [true] !... | true | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:17:242:36 | [false] !... | true | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:17:242:36 | [true] !... | false | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:39:242:41 | {...} | true | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:39:242:41 | {...} | true | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:16:242:36 | [true] !... | false | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:39:242:41 | {...} | false | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:16:242:36 | [false] !... | true | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:240:10:240:13 | exit Goto (normal) | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:31:244:41 | goto ...; | true | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:246:9:258:9 | switch (...) {...} | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:249:17:249:29 | goto default; | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:250:13:250:19 | case ...: | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:251:17:251:37 | ...; | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:253:13:253:19 | case ...: | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:254:17:254:27 | goto ...; | false | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:255:13:255:20 | default: | false | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:249:17:249:29 | goto default; | true | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:250:13:250:19 | case ...: | false | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:251:17:251:37 | ...; | false | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:253:13:253:19 | case ...: | false | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:254:17:254:27 | goto ...; | false | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:251:17:251:37 | ...; | true | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:253:13:253:19 | case ...: | false | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:254:17:254:27 | goto ...; | false | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:254:17:254:27 | goto ...; | true | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield | false | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (abnormal) | false | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (normal) | false | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:265:9:267:9 | {...} | true | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:268:9:276:9 | try {...} ... | false | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:300:44:300:51 | [false] !... | true | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:300:44:300:51 | [true] !... | false | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:300:56:300:56 | access to parameter s | false | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:56:300:56 | access to parameter s | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [false] | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [true] | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [false] | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [true] | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:21 | Before ... < ... | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [false] | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [true] | true | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:41 | Before ... < ... | true | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [false] | false | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [true] | true | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [false] | true | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [true] | true | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:21 | Before ... < ... | true | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [false] | true | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [true] | true | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:41 | Before ... < ... | true | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | false | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | true | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | false | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | false | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:173:32:173:41 | Before ... < ... | false | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | false | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | true | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:13:187:18 | After ... == ... [false] | false | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:13:187:18 | After ... == ... [true] | true | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:23:187:28 | After ... == ... [false] | false | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:23:187:28 | After ... == ... [true] | false | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:34:187:39 | After ... == ... [false] | false | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:34:187:39 | After ... == ... [true] | false | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:34:187:49 | After ... && ... [false] | false | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:44:187:49 | After ... == ... [false] | false | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:44:187:49 | After ... == ... [true] | false | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:23:187:28 | After ... == ... [false] | false | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:23:187:28 | After ... == ... [true] | true | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | false | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [true] | false | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | false | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | false | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [true] | false | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | false | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [true] | true | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | true | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [true] | true | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:44:187:49 | After ... == ... [false] | false | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:44:187:49 | After ... == ... [true] | true | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:195:17:195:32 | After ... > ... [false] | false | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:195:17:195:32 | After ... > ... [true] | true | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:197:15:197:31 | After ... == ... [false] | false | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:197:15:197:31 | After ... == ... [true] | true | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:198:17:198:33 | After ... == ... [false] | true | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:198:17:198:33 | After ... == ... [true] | true | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:198:17:198:48 | After ... ? ... : ... | true | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:15:200:31 | After ... == ... [false] | false | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:15:200:31 | After ... == ... [true] | true | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:40:200:56 | After ... == ... [false] | true | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:40:200:56 | After ... == ... [true] | true | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:40:200:61 | After ... && ... [false] | true | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:61:200:61 | After access to local variable b [false] | true | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:61:200:61 | After access to local variable b [true] | true | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [false] | false | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [true] | true | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:40:200:56 | After ... == ... [false] | false | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:40:200:56 | After ... == ... [true] | true | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [false] | true | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [true] | true | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [false] | false | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [true] | true | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:221:18:221:34 | After ... < ... [false] | false | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:221:18:221:34 | After ... < ... [true] | true | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | After ... > ... [false] | false | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | After ... > ... [true] | true | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:217:17:217:32 | After ... < ... [false] | false | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:217:17:217:32 | After ... < ... [true] | false | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:217:17:217:32 | After ... < ... [false] | false | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:217:17:217:32 | After ... < ... [true] | true | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | false | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:22:226:22 | String x | false | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | true | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | false | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:229:17:229:32 | After ... > ... [false] | false | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:229:17:229:32 | After ... > ... [true] | false | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:233:17:233:32 | After ... < ... [false] | false | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:233:17:233:32 | After ... < ... [true] | false | +| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | After ... > ... [false] | false | +| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | After ... > ... [true] | true | +| cflow.cs:226:22:226:22 | String x | cflow.cs:233:17:233:32 | After ... < ... [false] | false | +| cflow.cs:226:22:226:22 | String x | cflow.cs:233:17:233:32 | After ... < ... [true] | false | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:233:17:233:32 | After ... < ... [false] | false | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:233:17:233:32 | After ... < ... [true] | true | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:19:242:35 | After ... == ... [false] | false | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:19:242:35 | After ... == ... [true] | true | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [false] | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [true] | true | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:246:9:258:9 | After switch (...) {...} | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:13:248:19 | After case ...: [match] | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:13:248:19 | After case ...: [no-match] | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:13:250:19 | After case ...: [match] | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:13:250:19 | After case ...: [no-match] | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:13:253:19 | After case ...: [match] | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:13:253:19 | After case ...: [no-match] | false | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:255:13:255:20 | After default: [match] | false | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | After case ...: [match] | true | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | After case ...: [no-match] | false | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:13:250:19 | After case ...: [match] | false | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:13:250:19 | After case ...: [no-match] | false | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:13:253:19 | After case ...: [match] | false | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:13:253:19 | After case ...: [no-match] | false | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [match] | true | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [no-match] | false | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [match] | false | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | false | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [match] | true | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | false | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Exceptional Exit | false | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Exit | false | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Normal Exit | false | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | After ... < ... [false] | false | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | After ... < ... [true] | true | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:268:9:276:9 | After try {...} ... | false | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:300:46:300:50 | After ... > ... [false] | false | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:300:46:300:50 | After ... > ... [true] | true | conditionFlow -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:24:9:27 | null | true | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:31:9:32 | "" | false | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:24:16:27 | null | true | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:31:16:32 | "" | false | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:24:23:27 | null | true | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:31:23:32 | "" | false | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:24:30:27 | null | true | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:31:30:32 | "" | false | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:24:37:27 | null | true | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:31:37:32 | "" | false | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:24:44:27 | null | true | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:31:44:32 | "" | false | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:24:51:27 | null | true | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:31:51:32 | "" | false | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | null | true | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | "" | false | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | ... && ... | false | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | true | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | null | true | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | "" | false | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | ... \|\| ... | true | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | false | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | null | true | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | "" | false | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | ... && ... | false | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | true | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | null | true | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | "" | false | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | ... \|\| ... | true | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | false | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | null | true | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | "" | false | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:17:90:20 | null | true | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:24:90:25 | "" | false | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:17:94:20 | null | true | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:24:94:25 | "" | false | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:17:98:20 | null | true | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:24:98:25 | "" | false | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:17:102:20 | null | true | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:24:102:25 | "" | false | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:17:106:20 | null | true | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:24:106:25 | "" | false | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:17:110:20 | null | true | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:24:110:25 | "" | false | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:17:114:20 | null | true | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:24:114:25 | "" | false | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | ... && ... | false | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | true | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:17:118:20 | null | true | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:24:118:25 | "" | false | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | ... \|\| ... | true | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | false | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:17:122:20 | null | true | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:24:122:25 | "" | false | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | ... && ... | false | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | true | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:17:126:20 | null | true | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:24:126:25 | "" | false | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | ... \|\| ... | true | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | false | -| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:10:21:10:26 | break; | true | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | false | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:16:17:16:17 | ; | true | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:27:21:27:26 | break; | true | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:30:13:33:13 | {...} | false | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:32:21:32:21 | ; | true | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:35:7:35:7 | ; | false | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:43:17:43:23 | return ...; | true | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:46:9:52:9 | {...} | false | -| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:50:21:50:26 | break; | true | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:61:17:61:23 | return ...; | true | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:64:9:70:9 | {...} | false | -| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | true | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:14:20:14:20 | 0 | true | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:16:20:16:20 | 1 | false | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | ...; | true | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | false | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | false | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | true | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | true | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | false | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | ...; | true | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | if (...) ... | false | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:17:13:18:20 | if (...) ... | true | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:19:16:19:16 | access to local variable x | false | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | true | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | true | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | false | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | true | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | false | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | ...; | true | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... | false | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | true | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | false | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | true | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:39:9:40:16 | if (...) ... | false | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | ...; | true | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | false | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | true | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | false | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | true | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | access to parameter x | false | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | ...; | true | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | true | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | false | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | access to parameter x | false | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | ...; | true | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | true | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | false | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; | true | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:78:13:79:26 | if (...) ... | false | -| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | false | -| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:79:17:79:26 | ...; | true | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:82:13:82:16 | ...; | true | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:83:16:83:16 | access to local variable x | false | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:93:17:93:20 | ...; | true | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:94:13:95:26 | if (...) ... | false | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:95:17:95:26 | ...; | true | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:96:13:97:20 | if (...) ... | false | -| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | false | -| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; | true | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | ...; | true | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | if (...) ... | false | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:108:13:109:24 | if (...) ... | true | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:110:16:110:16 | access to local variable x | false | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | true | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | true | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | false | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:113:10:113:11 | exit M9 (normal) | false | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:117:9:123:9 | {...} | true | -| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:121:13:122:25 | if (...) ... | false | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false] !... | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true] !... | false | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | false | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | true | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:131:16:131:19 | true | false | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | {...} | true | -| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:131:16:131:19 | true | false | -| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:136:17:138:17 | {...} | true | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | "a" | true | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | "b" | false | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:147:13:147:49 | ...; | true | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:149:13:149:49 | ...; | false | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | false | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:69:19:69:33 | object creation of type Exception | true | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:75:19:75:33 | object creation of type Exception | true | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:77:41:77:43 | "b" | false | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:29:112:29 | 1 | true | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:69:112:75 | "input" | false | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:34:117:34 | 0 | true | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:38:117:38 | 1 | false | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:143:13:143:43 | ...; | true | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:145:13:145:53 | ...; | false | -| Finally.cs:26:48:26:51 | true | Finally.cs:27:9:29:9 | {...} | true | -| Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; | true | -| Finally.cs:61:48:61:51 | true | Finally.cs:62:9:64:9 | {...} | true | -| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:66:9:67:9 | {...} | true | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:74:10:74:11 | exit M4 (normal) | false | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:78:9:100:9 | {...} | true | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:82:21:82:27 | return ...; | true | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:83:17:84:29 | if (...) ... | false | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:84:21:84:29 | continue; | true | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:85:17:86:26 | if (...) ... | false | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:86:21:86:26 | break; | true | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:89:13:99:13 | {...} | false | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:93:31:93:45 | object creation of type Exception | true | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:96:17:98:17 | {...} | false | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:108:17:108:23 | return ...; | true | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | false | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} | false | -| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:116:13:117:37 | if (...) ... | false | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | true | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | false | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | false | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | true | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | false | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (normal) | false | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | true | -| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:162:13:164:13 | {...} | true | -| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | true | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | {...} | false | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | true | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | true | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | false | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | false | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | false | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | false | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | false | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:10:13:10:19 | return ...; | true | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | false | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | ...; | true | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | false | -| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:63:17:63:37 | ...; | true | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | false | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | true | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:13:69:23 | [false] !... | true | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:13:69:23 | [true] !... | false | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | false | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | true | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:43:5:43 | 1 | false | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:39:5:39 | 0 | true | -| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | false | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:41:9:41 | access to parameter s | true | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:45:9:45 | access to parameter s | false | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | false | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | true | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:68:11:68 | 1 | false | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:64:11:64 | 0 | true | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | false | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | true | -| NullCoalescing.cs:11:51:11:58 | [false] ... && ... | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | false | -| NullCoalescing.cs:11:51:11:58 | [true] ... && ... | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | true | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | false | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | true | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:14:18:9 | if (...) ... | false | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:9:9:11:9 | {...} | true | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | false | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:13:9:15:9 | {...} | true | -| Patterns.cs:16:18:16:28 | [false] ... is ... | Patterns.cs:20:9:38:9 | switch (...) {...} | false | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:17:9:18:9 | {...} | true | -| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:25:17:25:52 | ...; | true | -| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:27:13:27:24 | case ...: | false | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | false | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | true | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:67:85:69 | "2" | false | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | true | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:64:87:70 | "not 1" | false | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:58:87:60 | "1" | true | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:93:17:93:19 | exit M10 (normal) | false | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:96:9:98:9 | {...} | true | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:14:9:14:29 | ...; | false | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | true | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:21:9:21:29 | ...; | false | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:20:45:20:53 | nameof(...) | true | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:22:21:22:27 | return ...; | true | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:23:27:23:27 | 0 | false | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:48:24:48 | access to local variable s | true | -| Switch.cs:24:32:24:55 | [false] ... && ... | Switch.cs:27:13:27:39 | case ...: | false | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:25:17:25:37 | ...; | true | -| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:32:24:55 | [true] ... && ... | true | -| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:44:10:44:11 | exit M4 (normal) | false | -| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:51:17:51:22 | break; | true | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:85:21:85:26 | break; | true | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:86:24:86:27 | true | false | -| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:44:117:44 | 1 | true | -| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:118:13:118:34 | case ...: | false | -| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:43:118:43 | 2 | true | -| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:120:17:120:17 | 1 | false | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:123:10:123:12 | exit M11 (normal) | false | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:126:13:126:19 | return ...; | true | -| Switch.cs:125:24:125:34 | [false] ... => ... | Switch.cs:125:13:125:48 | [false] ... switch { ... } | false | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:13:125:48 | [true] ... switch { ... } | true | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [false] ... => ... | false | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [true] ... => ... | true | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:13:125:48 | [false] ... switch { ... } | false | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:37:125:46 | [false] ... => ... | false | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:158:13:158:49 | ...; | true | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:160:13:160:49 | ...; | false | -| TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:8:9:8:28 | ... ...; | false | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | true | -| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:24:25:24 | access to local variable x | true | -| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:28:25:28 | access to local variable y | false | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:12:13:12:49 | ...; | true | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:14:9:17:9 | while (...) ... | false | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:15:9:17:9 | {...} | true | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:19:9:22:25 | do ... while (...); | false | -| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:20:9:22:9 | {...} | true | -| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | false | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:5:17:5:20 | exit Main (normal) | false | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:25:9:34:9 | {...} | true | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:40 | [false] ... && ... | false | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:31:26:31 | access to local variable i | true | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:28:18:33:37 | if (...) ... | false | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:27:17:27:46 | ...; | true | -| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:17:26:40 | [false] ... && ... | false | -| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:17:26:40 | [true] ... && ... | true | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:29:17:29:42 | ...; | true | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:30:18:33:37 | if (...) ... | false | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:31:17:31:42 | ...; | true | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:33:17:33:37 | ...; | false | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:65:17:65:22 | break; | false | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | true | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [false] !... | true | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [true] !... | false | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:73:13:73:19 | return ...; | true | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:74:9:81:9 | if (...) ... | false | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:75:9:77:9 | {...} | true | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:79:9:81:9 | {...} | false | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:37 | [false] ... && ... | false | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:26:86:26 | access to parameter s | true | -| cflow.cs:86:13:86:37 | [false] ... && ... | cflow.cs:84:18:84:19 | exit M2 (normal) | false | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:87:13:87:33 | ...; | true | -| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:13:86:37 | [false] ... && ... | false | -| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:13:86:37 | [true] ... && ... | true | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:93:45:93:47 | "s" | true | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:94:9:94:29 | ...; | false | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:97:13:97:55 | ...; | true | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:99:9:100:42 | if (...) ... | false | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:100:13:100:42 | ...; | true | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:102:9:103:36 | if (...) ... | false | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:90:18:90:19 | exit M3 (normal) | false | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:103:13:103:36 | ...; | true | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:109:9:115:9 | {...} | true | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:116:9:116:29 | ...; | false | -| cflow.cs:110:20:110:23 | true | cflow.cs:111:13:113:13 | {...} | true | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:48:127:49 | "" | true | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:53:127:57 | this access | false | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:150:13:150:33 | ...; | true | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | false | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:152:18:152:18 | access to local variable x | false | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:156:17:156:22 | break; | true | -| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:160:9:165:9 | {...} | false | -| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:164:17:164:22 | break; | true | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:168:9:171:9 | {...} | true | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | false | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:146:10:146:12 | exit For (normal) | false | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:174:9:176:9 | {...} | true | -| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:23:187:23 | 2 | false | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:34:187:34 | 1 | false | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:190:13:190:52 | ...; | false | -| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:13:187:28 | ... \|\| ... | false | -| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:49 | ... && ... | false | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:13:187:50 | ... \|\| ... | false | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:56 | ... && ... | false | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:39:195:43 | this access | true | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:200:9:205:9 | if (...) ... | false | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:13:198:49 | ...; | true | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:35:197:39 | false | true | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:43:197:46 | true | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:13:197:47 | [true] !... | false | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:13:197:47 | [false] !... | true | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | false | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | true | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:37:198:41 | false | true | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:45:198:48 | true | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:44 | this access | false | -| cflow.cs:200:13:200:32 | [true] !... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | true | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | false | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:201:9:205:9 | {...} | true | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:13:200:32 | [false] !... | true | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:13:200:32 | [true] !... | false | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | false | -| cflow.cs:200:37:200:62 | [true] !... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | true | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:37:200:62 | [true] !... | false | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:37:200:62 | [false] !... | true | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:61 | [false] ... && ... | false | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:61:200:61 | access to local variable b | true | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:38:200:62 | [true] !... | false | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:38:200:62 | [false] !... | true | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [false] ... && ... | false | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [true] ... && ... | true | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:214:13:216:13 | {...} | true | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:217:13:220:13 | if (...) ... | false | -| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:218:13:220:13 | {...} | true | -| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:221:18:221:22 | this access | false | -| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:208:10:208:11 | exit Do (normal) | false | -| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:211:9:221:9 | {...} | true | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:230:13:232:13 | {...} | true | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:233:13:236:13 | if (...) ... | false | -| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | false | -| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:234:13:236:13 | {...} | true | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:244:9:244:41 | if (...) ... | false | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:39:242:41 | {...} | true | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:16:242:36 | [true] !... | false | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:16:242:36 | [false] !... | true | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:17:242:36 | [false] !... | true | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:17:242:36 | [true] !... | false | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:31:244:41 | goto ...; | true | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:246:9:258:9 | switch (...) {...} | false | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:265:9:267:9 | {...} | true | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:268:9:276:9 | try {...} ... | false | -| cflow.cs:300:44:300:51 | [false] !... | cflow.cs:300:44:300:64 | ... && ... | false | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:56:300:56 | access to parameter s | true | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:44:300:51 | [false] !... | true | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:44:300:51 | [true] !... | false | +| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | After access to parameter b [false] | false | +| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | After access to parameter b [true] | true | +| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | After access to parameter b [false] | false | +| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | After access to parameter b [true] | true | +| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | After access to parameter b [false] | false | +| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | After access to parameter b [true] | true | +| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | After access to parameter b [false] | false | +| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | After access to parameter b [true] | true | +| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | After access to parameter b [false] | false | +| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | After access to parameter b [true] | true | +| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | After access to parameter b [false] | false | +| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | After access to parameter b [true] | true | +| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | After access to parameter b [false] | false | +| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | After access to parameter b [true] | true | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | After access to parameter b [false] | false | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | After access to parameter b [true] | true | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | After ... != ... [false] | false | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | After ... != ... [true] | true | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | After access to parameter b [false] | false | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | After access to parameter b [true] | true | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | After ... == ... [false] | false | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | After ... == ... [true] | true | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | After access to parameter b [false] | false | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | After access to parameter b [true] | true | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | After ... == ... [false] | false | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | After ... == ... [true] | true | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | After access to parameter b [false] | false | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | After access to parameter b [true] | true | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | After ... != ... [false] | false | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | After ... != ... [true] | true | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | After access to parameter b [false] | false | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | After access to parameter b [true] | true | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | After access to parameter b [false] | false | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | After access to parameter b [true] | true | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | After access to parameter b [false] | false | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | After access to parameter b [true] | true | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | After access to parameter b [false] | false | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | After access to parameter b [true] | true | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | After access to parameter b [false] | false | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | After access to parameter b [true] | true | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | After access to parameter b [false] | false | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | After access to parameter b [true] | true | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | After access to parameter b [false] | false | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | After access to parameter b [true] | true | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | After access to parameter b [false] | false | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | After access to parameter b [true] | true | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | After ... != ... [false] | false | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | After ... != ... [true] | true | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | After access to parameter b [false] | false | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | After access to parameter b [true] | true | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | After ... == ... [false] | false | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | After ... == ... [true] | true | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | After access to parameter b [false] | false | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | After access to parameter b [true] | true | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | After ... == ... [false] | false | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | After ... == ... [true] | true | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | After access to parameter b [false] | false | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | After access to parameter b [true] | true | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | After ... != ... [false] | false | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | After ... != ... [true] | true | +| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | false | +| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | true | +| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | false | +| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | true | +| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | false | +| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | true | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | false | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | true | +| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | false | +| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | true | +| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | false | +| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | true | +| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | false | +| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | true | +| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | false | +| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | true | +| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | false | +| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | true | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | false | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | true | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:7:13:7:16 | After !... [true] | true | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:7:13:7:16 | After !... [false] | false | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | false | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | true | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | After access to parameter b [false] | false | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | After access to parameter b [true] | true | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | After ... > ... [false] | false | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | true | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:17:17:17:18 | After !... [true] | true | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:17:17:17:18 | After !... [false] | false | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | After access to parameter b [false] | false | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | After access to parameter b [true] | true | +| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | false | +| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | true | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | false | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | true | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | false | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | true | +| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | false | +| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | true | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | false | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | true | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | false | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | true | +| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | After ... > ... [false] | false | +| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | After ... > ... [true] | true | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | After access to parameter b [false] | false | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | After access to parameter b [true] | true | +| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | After ... > ... [false] | false | +| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | true | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | After access to parameter b [false] | false | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | After access to parameter b [true] | true | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | After access to parameter b [false] | false | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | After access to parameter b [true] | true | +| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | After access to local variable b [false] | false | +| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | After access to local variable b [true] | true | +| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | false | +| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | true | +| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | After access to local variable b [false] | false | +| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | After access to local variable b [true] | true | +| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | After access to local variable b [false] | false | +| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | After access to local variable b [true] | true | +| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | false | +| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | true | +| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | After access to local variable b [false] | false | +| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | After access to local variable b [true] | true | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | After access to parameter b [false] | false | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | After access to parameter b [true] | true | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | After ... > ... [false] | false | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | true | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:108:17:108:18 | After !... [true] | true | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:108:17:108:18 | After !... [false] | false | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | After access to parameter b [false] | false | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | After access to parameter b [true] | true | +| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [false] | false | +| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | true | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:119:17:119:21 | After !... [true] | true | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:119:17:119:21 | After !... [false] | false | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | After access to local variable last [false] | false | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | After access to local variable last [true] | true | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | After access to local variable last [false] | false | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | After access to local variable last [true] | true | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | After true [true] | true | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | false | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | true | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | false | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | true | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | After access to parameter b [false] | false | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | After access to parameter b [true] | true | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | After access to parameter b [false] | false | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | After access to parameter b [true] | true | +| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | false | +| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | true | +| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | false | +| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | true | +| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | false | +| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | true | +| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | false | +| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | true | +| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | false | +| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | true | +| Finally.cs:26:48:26:51 | true | Finally.cs:26:48:26:51 | After true [true] | true | +| Finally.cs:34:21:34:24 | true | Finally.cs:34:21:34:24 | After true [true] | true | +| Finally.cs:61:48:61:51 | true | Finally.cs:61:48:61:51 | After true [true] | true | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | After ... != ... [false] | false | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | After ... != ... [true] | true | +| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | After ... > ... [false] | false | +| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | After ... > ... [true] | true | +| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | After ... == ... [false] | false | +| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | After ... == ... [true] | true | +| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | After ... == ... [false] | false | +| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | After ... == ... [true] | true | +| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | After ... == ... [false] | false | +| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | After ... == ... [true] | true | +| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | After ... == ... [false] | false | +| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | After ... == ... [true] | true | +| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | After ... == ... [false] | false | +| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | After ... == ... [true] | true | +| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | After ... == ... [false] | false | +| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | After ... == ... [true] | true | +| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | After ... == ... [false] | false | +| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | After ... == ... [true] | true | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:114:17:114:36 | After !... [true] | true | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:114:17:114:36 | After !... [false] | false | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | After ... > ... [false] | false | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | After ... > ... [true] | true | +| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | After ... == ... [false] | false | +| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | After ... == ... [true] | true | +| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | After ... == ... [false] | false | +| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | After ... == ... [true] | true | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | After ... == ... [false] | false | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | After ... == ... [true] | true | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | false | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | true | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | false | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | true | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | false | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | true | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | false | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | true | +| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | false | +| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | true | +| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | false | +| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | true | +| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | false | +| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | true | +| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | false | +| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | true | +| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | false | +| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | true | +| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | false | +| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | true | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | true | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | true | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:69:13:69:23 | After !... [true] | true | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:69:13:69:23 | After !... [false] | false | +| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | false | +| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | true | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | false | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | true | +| NullCoalescing.cs:5:30:5:34 | After false [false] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | false | +| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | After false [false] | false | +| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | false | +| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | true | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | false | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | true | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | false | +| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | false | +| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | true | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | false | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | true | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | false | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | true | +| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | false | +| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | true | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | false | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | true | +| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | After ... is ... [true] | true | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | true | +| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | After ... is ... [true] | true | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | true | +| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | After ... is ... [true] | true | +| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | false | +| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | true | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | true | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | false | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | true | +| Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | true | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | true | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | true | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | false | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | true | +| Patterns.cs:85:44:85:53 | After ... or ... | Patterns.cs:85:39:85:53 | After ... is ... [true] | true | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | false | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | true | +| Patterns.cs:87:44:87:54 | After ... and ... | Patterns.cs:87:39:87:54 | After ... is ... [true] | true | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | false | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | true | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:13:95:40 | After ... is ... [true] | true | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | After ... is ... [false] | false | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | true | +| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | After ... is ... [true] | true | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | After ... is ... [false] | false | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | true | +| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | After ... is ... [true] | true | +| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [false] | false | +| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [true] | true | +| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | After ... > ... [false] | false | +| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | After ... > ... [true] | true | +| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | After ... != ... [false] | false | +| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | After ... != ... [true] | true | +| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:24:32:24:55 | After ... && ... [true] | true | +| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [false] | false | +| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [true] | true | +| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | After ... > ... [false] | false | +| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | After ... > ... [true] | true | +| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [false] | false | +| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [true] | true | +| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [false] | false | +| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [true] | true | +| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | false | +| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | true | +| Switch.cs:125:42:125:46 | false | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | false | +| Switch.cs:125:42:125:46 | false | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | true | +| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [false] | false | +| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [true] | true | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | false | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | true | +| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | true | +| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | false | +| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | true | +| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | After ... > ... [false] | false | +| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | After ... > ... [true] | true | +| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | After ... > ... [false] | false | +| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | After ... > ... [true] | true | +| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | After ... < ... [false] | false | +| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | After ... < ... [true] | true | +| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | false | +| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | true | +| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | After ... == ... [false] | false | +| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | After ... == ... [true] | true | +| cflow.cs:26:17:26:26 | After ... == ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | false | +| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | After ... == ... [false] | false | +| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | After ... == ... [true] | true | +| cflow.cs:26:31:26:40 | After ... == ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | false | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:26:17:26:40 | After ... && ... [true] | true | +| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | After ... == ... [false] | false | +| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | After ... == ... [true] | true | +| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | After ... == ... [false] | false | +| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | After ... == ... [true] | true | +| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | After ... == ... [false] | false | +| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | After ... == ... [true] | true | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:63:21:63:34 | After !... [true] | true | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:63:21:63:34 | After !... [false] | false | +| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | After ... == ... [false] | false | +| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | After ... == ... [true] | true | +| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | After ... > ... [false] | false | +| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | After ... > ... [true] | true | +| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | After ... != ... [false] | false | +| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | After ... != ... [true] | true | +| cflow.cs:86:13:86:21 | After ... != ... [false] | cflow.cs:86:13:86:37 | After ... && ... [false] | false | +| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | After ... > ... [false] | false | +| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | After ... > ... [true] | true | +| cflow.cs:86:26:86:37 | After ... > ... [false] | cflow.cs:86:13:86:37 | After ... && ... [false] | false | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:86:13:86:37 | After ... && ... [true] | true | +| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | After call to method Equals [false] | false | +| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | After call to method Equals [true] | true | +| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | After ... != ... [false] | false | +| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | After ... != ... [true] | true | +| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | After ... != ... [false] | false | +| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | After ... != ... [true] | true | +| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | After ... != ... [false] | false | +| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | After ... != ... [true] | true | +| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | After ... != ... [false] | false | +| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | After ... != ... [true] | true | +| cflow.cs:110:20:110:23 | true | cflow.cs:110:20:110:23 | After true [true] | true | +| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | After ... == ... [false] | false | +| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | After ... == ... [true] | true | +| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | After ... < ... [false] | false | +| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | true | +| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | After ... > ... [false] | false | +| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | After ... > ... [true] | true | +| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | After ... > ... [false] | false | +| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | After ... > ... [true] | true | +| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | false | +| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | true | +| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | false | +| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | true | +| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:18 | After ... == ... [false] | false | +| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:18 | After ... == ... [true] | true | +| cflow.cs:187:13:187:18 | After ... == ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | true | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | true | +| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:28 | After ... == ... [false] | false | +| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:28 | After ... == ... [true] | true | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:13:187:28 | After ... \|\| ... [false] | false | +| cflow.cs:187:23:187:28 | After ... == ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | true | +| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:39 | After ... == ... [false] | false | +| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:39 | After ... == ... [true] | true | +| cflow.cs:187:34:187:39 | After ... == ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | false | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:13:187:50 | After ... \|\| ... [false] | false | +| cflow.cs:187:34:187:49 | After ... && ... [true] | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | true | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:49 | After ... == ... [false] | false | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:49 | After ... == ... [true] | true | +| cflow.cs:187:44:187:49 | After ... == ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | false | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:187:34:187:49 | After ... && ... [true] | true | +| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | After ... > ... [false] | false | +| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | After ... > ... [true] | true | +| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | After ... == ... [false] | false | +| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | After ... == ... [true] | true | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | cflow.cs:197:13:197:47 | After !... [true] | true | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | cflow.cs:197:13:197:47 | After !... [false] | false | +| cflow.cs:197:35:197:39 | After false [false] | cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | false | +| cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | After false [false] | false | +| cflow.cs:197:43:197:46 | After true [true] | cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | true | +| cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | After true [true] | true | +| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | After ... == ... [false] | false | +| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | After ... == ... [true] | true | +| cflow.cs:200:13:200:32 | After !... [true] | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | true | +| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | After ... == ... [false] | false | +| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | After ... == ... [true] | true | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:200:13:200:32 | After !... [true] | true | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:13:200:32 | After !... [false] | false | +| cflow.cs:200:37:200:62 | After !... [false] | cflow.cs:200:13:200:62 | After ... \|\| ... [false] | false | +| cflow.cs:200:37:200:62 | After !... [true] | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | true | +| cflow.cs:200:38:200:62 | After !... [false] | cflow.cs:200:37:200:62 | After !... [true] | true | +| cflow.cs:200:38:200:62 | After !... [true] | cflow.cs:200:37:200:62 | After !... [false] | false | +| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | After ... == ... [false] | false | +| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | After ... == ... [true] | true | +| cflow.cs:200:40:200:56 | After ... == ... [false] | cflow.cs:200:40:200:61 | After ... && ... [false] | false | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:38:200:62 | After !... [true] | true | +| cflow.cs:200:40:200:61 | After ... && ... [true] | cflow.cs:200:38:200:62 | After !... [false] | false | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:200:40:200:61 | After ... && ... [false] | false | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:200:40:200:61 | After ... && ... [true] | true | +| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | After access to local variable b [false] | false | +| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | After access to local variable b [true] | true | +| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | After ... > ... [false] | false | +| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | After ... > ... [true] | true | +| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | After ... < ... [false] | false | +| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | After ... < ... [true] | true | +| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | After ... < ... [false] | false | +| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | After ... < ... [true] | true | +| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | After ... > ... [false] | false | +| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | After ... > ... [true] | true | +| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | After ... < ... [false] | false | +| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | After ... < ... [true] | true | +| cflow.cs:242:17:242:36 | After !... [false] | cflow.cs:242:16:242:36 | After !... [true] | true | +| cflow.cs:242:17:242:36 | After !... [true] | cflow.cs:242:16:242:36 | After !... [false] | false | +| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | After ... == ... [false] | false | +| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | After ... == ... [true] | true | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:242:17:242:36 | After !... [true] | true | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:242:17:242:36 | After !... [false] | false | +| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | After ... > ... [false] | false | +| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | After ... > ... [true] | true | +| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | After ... < ... [false] | false | +| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | After ... < ... [true] | true | +| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | After ... > ... [false] | false | +| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | After ... > ... [true] | true | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:300:44:300:51 | After !... [true] | true | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:300:44:300:51 | After !... [false] | false | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index 072d874d8d4..209cb10f811 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -1,15206 +1,23060 @@ dominance -| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | -| 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 | After call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | +| AccessorCalls.cs:1:7:1:19 | After call to method | AccessorCalls.cs:1:7:1:19 | Before call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | Before call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | Before call to method | AccessorCalls.cs:1:7:1:19 | this access | +| AccessorCalls.cs:1:7:1:19 | Entry | AccessorCalls.cs:1:7:1:19 | Before call to method | +| AccessorCalls.cs:1:7:1:19 | Normal Exit | AccessorCalls.cs:1:7:1:19 | Exit | +| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | After call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | After call to method | | 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 | -| AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | -| AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:37:5:39 | {...} | -| AccessorCalls.cs:5:33:5:35 | exit set_Item (normal) | AccessorCalls.cs:5:33:5:35 | exit set_Item | -| AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:33:5:35 | exit set_Item (normal) | -| AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:36:7:38 | {...} | -| AccessorCalls.cs:7:32:7:34 | exit add_Event (normal) | AccessorCalls.cs:7:32:7:34 | exit add_Event | -| AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:32:7:34 | exit add_Event (normal) | -| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:47:7:49 | {...} | -| AccessorCalls.cs:7:40:7:45 | exit remove_Event (normal) | AccessorCalls.cs:7:40:7:45 | exit remove_Event | -| AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:40:7:45 | exit remove_Event (normal) | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:11:5:17:5 | {...} | -| AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | exit M1 | +| AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | Normal Exit | +| AccessorCalls.cs:5:23:5:25 | Entry | AccessorCalls.cs:5:30:5:30 | access to parameter i | +| AccessorCalls.cs:5:23:5:25 | Normal Exit | AccessorCalls.cs:5:23:5:25 | Exit | +| AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:23:5:25 | Normal Exit | +| AccessorCalls.cs:5:33:5:35 | Entry | AccessorCalls.cs:5:37:5:39 | {...} | +| AccessorCalls.cs:5:33:5:35 | Normal Exit | AccessorCalls.cs:5:33:5:35 | Exit | +| AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:33:5:35 | Normal Exit | +| AccessorCalls.cs:7:32:7:34 | Entry | AccessorCalls.cs:7:36:7:38 | {...} | +| AccessorCalls.cs:7:32:7:34 | Normal Exit | AccessorCalls.cs:7:32:7:34 | Exit | +| AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:32:7:34 | Normal Exit | +| AccessorCalls.cs:7:40:7:45 | Entry | AccessorCalls.cs:7:47:7:49 | {...} | +| AccessorCalls.cs:7:40:7:45 | Normal Exit | AccessorCalls.cs:7:40:7:45 | Exit | +| AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:40:7:45 | Normal Exit | +| AccessorCalls.cs:10:10:10:11 | Entry | AccessorCalls.cs:11:5:17:5 | {...} | +| AccessorCalls.cs:10:10:10:11 | Normal Exit | AccessorCalls.cs:10:10:10:11 | Exit | +| AccessorCalls.cs:11:5:17:5 | After {...} | AccessorCalls.cs:10:10:10:11 | Normal Exit | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:12:9:12:32 | ...; | -| AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:22:12:25 | this access | -| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | -| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:13:9:13:30 | ...; | -| AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:12 | this access | +| AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:9:12:18 | access to field Field | +| AccessorCalls.cs:12:9:12:18 | After access to field Field | AccessorCalls.cs:12:22:12:31 | Before access to field Field | +| AccessorCalls.cs:12:9:12:18 | Before access to field Field | AccessorCalls.cs:12:9:12:12 | this access | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:18 | After access to field Field | +| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:9:12:31 | After ... = ... | +| AccessorCalls.cs:12:9:12:31 | After ... = ... | AccessorCalls.cs:12:9:12:32 | After ...; | +| AccessorCalls.cs:12:9:12:31 | Before ... = ... | AccessorCalls.cs:12:9:12:18 | Before access to field Field | +| AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:31 | Before ... = ... | +| AccessorCalls.cs:12:9:12:32 | After ...; | AccessorCalls.cs:13:9:13:30 | ...; | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:31 | access to field Field | -| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:18 | access to field Field | -| AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:21:13:24 | this access | -| AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | -| AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:14:9:14:26 | ...; | -| AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:13:9:13:12 | this access | +| AccessorCalls.cs:12:22:12:31 | After access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | +| AccessorCalls.cs:12:22:12:31 | Before access to field Field | AccessorCalls.cs:12:22:12:25 | this access | +| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:22:12:31 | After access to field Field | +| AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:9:13:17 | access to property Prop | +| AccessorCalls.cs:13:9:13:17 | After access to property Prop | AccessorCalls.cs:13:21:13:29 | Before access to property Prop | +| AccessorCalls.cs:13:9:13:17 | Before access to property Prop | AccessorCalls.cs:13:9:13:12 | this access | +| AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:17 | After access to property Prop | +| AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:13:9:13:29 | After ... = ... | +| AccessorCalls.cs:13:9:13:29 | After ... = ... | AccessorCalls.cs:13:9:13:30 | After ...; | +| AccessorCalls.cs:13:9:13:29 | Before ... = ... | AccessorCalls.cs:13:9:13:17 | Before access to property Prop | +| AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:13:9:13:29 | Before ... = ... | +| AccessorCalls.cs:13:9:13:30 | After ...; | AccessorCalls.cs:14:9:14:26 | ...; | | AccessorCalls.cs:13:21:13:24 | this access | AccessorCalls.cs:13:21:13:29 | access to property Prop | -| AccessorCalls.cs:13:21:13:29 | access to property Prop | AccessorCalls.cs:13:9:13:17 | access to property Prop | +| AccessorCalls.cs:13:21:13:29 | After access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | +| AccessorCalls.cs:13:21:13:29 | Before access to property Prop | AccessorCalls.cs:13:21:13:24 | this access | +| AccessorCalls.cs:13:21:13:29 | access to property Prop | AccessorCalls.cs:13:21:13:29 | After access to property Prop | | AccessorCalls.cs:14:9:14:12 | this access | AccessorCalls.cs:14:14:14:14 | 0 | -| AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:14:9:14:25 | ... = ... | -| AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:15:9:15:24 | ...; | -| AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:14:9:14:12 | this access | -| AccessorCalls.cs:14:14:14:14 | 0 | AccessorCalls.cs:14:19:14:22 | this access | +| AccessorCalls.cs:14:9:14:15 | After access to indexer | AccessorCalls.cs:14:19:14:25 | Before access to indexer | +| AccessorCalls.cs:14:9:14:15 | Before access to indexer | AccessorCalls.cs:14:9:14:12 | this access | +| AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:14:9:14:15 | After access to indexer | +| AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:14:9:14:25 | After ... = ... | +| AccessorCalls.cs:14:9:14:25 | After ... = ... | AccessorCalls.cs:14:9:14:26 | After ...; | +| AccessorCalls.cs:14:9:14:25 | Before ... = ... | AccessorCalls.cs:14:9:14:15 | Before access to indexer | +| AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:14:9:14:25 | Before ... = ... | +| AccessorCalls.cs:14:9:14:26 | After ...; | AccessorCalls.cs:15:9:15:24 | ...; | +| AccessorCalls.cs:14:14:14:14 | 0 | AccessorCalls.cs:14:9:14:15 | access to indexer | | AccessorCalls.cs:14:19:14:22 | this access | AccessorCalls.cs:14:24:14:24 | 1 | -| AccessorCalls.cs:14:19:14:25 | access to indexer | AccessorCalls.cs:14:9:14:15 | access to indexer | +| AccessorCalls.cs:14:19:14:25 | After access to indexer | AccessorCalls.cs:14:9:14:25 | ... = ... | +| AccessorCalls.cs:14:19:14:25 | Before access to indexer | AccessorCalls.cs:14:19:14:22 | this access | +| AccessorCalls.cs:14:19:14:25 | access to indexer | AccessorCalls.cs:14:19:14:25 | After access to indexer | | AccessorCalls.cs:14:24:14:24 | 1 | AccessorCalls.cs:14:19:14:25 | access to indexer | -| AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:15:23:15:23 | access to parameter e | -| AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:15:9:15:23 | ... += ... | -| AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:16:9:16:24 | ...; | -| AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:15:9:15:12 | this access | -| AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:15:9:15:18 | access to event Event | -| AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:16:23:16:23 | access to parameter e | -| AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:16:9:16:23 | ... -= ... | -| AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | -| AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:16:9:16:12 | this access | -| AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:16:9:16:18 | access to event Event | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:20:5:26:5 | {...} | -| AccessorCalls.cs:19:10:19:11 | exit M2 (normal) | AccessorCalls.cs:19:10:19:11 | exit M2 | +| AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:15:9:15:18 | access to event Event | +| AccessorCalls.cs:15:9:15:18 | After access to event Event | AccessorCalls.cs:15:23:15:23 | access to parameter e | +| AccessorCalls.cs:15:9:15:18 | Before access to event Event | AccessorCalls.cs:15:9:15:12 | this access | +| AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:15:9:15:18 | After access to event Event | +| AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:15:9:15:23 | After ... += ... | +| AccessorCalls.cs:15:9:15:23 | After ... += ... | AccessorCalls.cs:15:9:15:24 | After ...; | +| AccessorCalls.cs:15:9:15:23 | Before ... += ... | AccessorCalls.cs:15:9:15:18 | Before access to event Event | +| AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:15:9:15:23 | Before ... += ... | +| AccessorCalls.cs:15:9:15:24 | After ...; | AccessorCalls.cs:16:9:16:24 | ...; | +| AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:15:9:15:23 | ... += ... | +| AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:16:9:16:18 | access to event Event | +| AccessorCalls.cs:16:9:16:18 | After access to event Event | AccessorCalls.cs:16:23:16:23 | access to parameter e | +| AccessorCalls.cs:16:9:16:18 | Before access to event Event | AccessorCalls.cs:16:9:16:12 | this access | +| AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:16:9:16:18 | After access to event Event | +| AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:16:9:16:23 | After ... -= ... | +| AccessorCalls.cs:16:9:16:23 | After ... -= ... | AccessorCalls.cs:16:9:16:24 | After ...; | +| AccessorCalls.cs:16:9:16:23 | Before ... -= ... | AccessorCalls.cs:16:9:16:18 | Before access to event Event | +| AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:16:9:16:23 | Before ... -= ... | +| AccessorCalls.cs:16:9:16:24 | After ...; | AccessorCalls.cs:11:5:17:5 | After {...} | +| AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:16:9:16:23 | ... -= ... | +| AccessorCalls.cs:19:10:19:11 | Entry | AccessorCalls.cs:20:5:26:5 | {...} | +| AccessorCalls.cs:19:10:19:11 | Normal Exit | AccessorCalls.cs:19:10:19:11 | Exit | +| AccessorCalls.cs:20:5:26:5 | After {...} | AccessorCalls.cs:19:10:19:11 | Normal Exit | | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:21:9:21:36 | ...; | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | -| AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | -| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | -| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:22:9:22:34 | ...; | -| AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:12 | this access | +| AccessorCalls.cs:21:9:21:14 | After access to field x | AccessorCalls.cs:21:9:21:20 | access to field Field | +| AccessorCalls.cs:21:9:21:14 | Before access to field x | AccessorCalls.cs:21:9:21:12 | this access | +| AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:9:21:14 | After access to field x | +| AccessorCalls.cs:21:9:21:20 | After access to field Field | AccessorCalls.cs:21:24:21:35 | Before access to field Field | +| AccessorCalls.cs:21:9:21:20 | Before access to field Field | AccessorCalls.cs:21:9:21:14 | Before access to field x | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:20 | After access to field Field | +| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:9:21:35 | After ... = ... | +| AccessorCalls.cs:21:9:21:35 | After ... = ... | AccessorCalls.cs:21:9:21:36 | After ...; | +| AccessorCalls.cs:21:9:21:35 | Before ... = ... | AccessorCalls.cs:21:9:21:20 | Before access to field Field | +| AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:35 | Before ... = ... | +| AccessorCalls.cs:21:9:21:36 | After ...; | AccessorCalls.cs:22:9:22:34 | ...; | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:29 | access to field x | -| AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:20 | access to field Field | +| AccessorCalls.cs:21:24:21:29 | After access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | +| AccessorCalls.cs:21:24:21:29 | Before access to field x | AccessorCalls.cs:21:24:21:27 | this access | +| AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:29 | After access to field x | +| AccessorCalls.cs:21:24:21:35 | After access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | +| AccessorCalls.cs:21:24:21:35 | Before access to field Field | AccessorCalls.cs:21:24:21:29 | Before access to field x | +| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:24:21:35 | After access to field Field | | AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:14 | access to field x | -| AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:23:22:26 | this access | -| AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | -| AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:23:9:23:30 | ...; | -| AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:22:9:22:12 | this access | +| AccessorCalls.cs:22:9:22:14 | After access to field x | AccessorCalls.cs:22:9:22:19 | access to property Prop | +| AccessorCalls.cs:22:9:22:14 | Before access to field x | AccessorCalls.cs:22:9:22:12 | this access | +| AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:9:22:14 | After access to field x | +| AccessorCalls.cs:22:9:22:19 | After access to property Prop | AccessorCalls.cs:22:23:22:33 | Before access to property Prop | +| AccessorCalls.cs:22:9:22:19 | Before access to property Prop | AccessorCalls.cs:22:9:22:14 | Before access to field x | +| AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:19 | After access to property Prop | +| AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:22:9:22:33 | After ... = ... | +| AccessorCalls.cs:22:9:22:33 | After ... = ... | AccessorCalls.cs:22:9:22:34 | After ...; | +| AccessorCalls.cs:22:9:22:33 | Before ... = ... | AccessorCalls.cs:22:9:22:19 | Before access to property Prop | +| AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:22:9:22:33 | Before ... = ... | +| AccessorCalls.cs:22:9:22:34 | After ...; | AccessorCalls.cs:23:9:23:30 | ...; | | AccessorCalls.cs:22:23:22:26 | this access | AccessorCalls.cs:22:23:22:28 | access to field x | -| AccessorCalls.cs:22:23:22:28 | access to field x | AccessorCalls.cs:22:23:22:33 | access to property Prop | -| AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:22:9:22:19 | access to property Prop | +| AccessorCalls.cs:22:23:22:28 | After access to field x | AccessorCalls.cs:22:23:22:33 | access to property Prop | +| AccessorCalls.cs:22:23:22:28 | Before access to field x | AccessorCalls.cs:22:23:22:26 | this access | +| AccessorCalls.cs:22:23:22:28 | access to field x | AccessorCalls.cs:22:23:22:28 | After access to field x | +| AccessorCalls.cs:22:23:22:33 | After access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | +| AccessorCalls.cs:22:23:22:33 | Before access to property Prop | AccessorCalls.cs:22:23:22:28 | Before access to field x | +| AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:22:23:22:33 | After access to property Prop | | AccessorCalls.cs:23:9:23:12 | this access | AccessorCalls.cs:23:9:23:14 | access to field x | -| AccessorCalls.cs:23:9:23:14 | access to field x | AccessorCalls.cs:23:16:23:16 | 0 | -| AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:23:9:23:29 | ... = ... | -| AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:24:9:24:26 | ...; | -| AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:23:9:23:12 | this access | -| AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:23:21:23:24 | this access | +| AccessorCalls.cs:23:9:23:14 | After access to field x | AccessorCalls.cs:23:16:23:16 | 0 | +| AccessorCalls.cs:23:9:23:14 | Before access to field x | AccessorCalls.cs:23:9:23:12 | this access | +| AccessorCalls.cs:23:9:23:14 | access to field x | AccessorCalls.cs:23:9:23:14 | After access to field x | +| AccessorCalls.cs:23:9:23:17 | After access to indexer | AccessorCalls.cs:23:21:23:29 | Before access to indexer | +| AccessorCalls.cs:23:9:23:17 | Before access to indexer | AccessorCalls.cs:23:9:23:14 | Before access to field x | +| AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:23:9:23:17 | After access to indexer | +| AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:23:9:23:29 | After ... = ... | +| AccessorCalls.cs:23:9:23:29 | After ... = ... | AccessorCalls.cs:23:9:23:30 | After ...; | +| AccessorCalls.cs:23:9:23:29 | Before ... = ... | AccessorCalls.cs:23:9:23:17 | Before access to indexer | +| AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:23:9:23:29 | Before ... = ... | +| AccessorCalls.cs:23:9:23:30 | After ...; | AccessorCalls.cs:24:9:24:26 | ...; | +| AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:23:9:23:17 | access to indexer | | AccessorCalls.cs:23:21:23:24 | this access | AccessorCalls.cs:23:21:23:26 | access to field x | -| AccessorCalls.cs:23:21:23:26 | access to field x | AccessorCalls.cs:23:28:23:28 | 1 | -| AccessorCalls.cs:23:21:23:29 | access to indexer | AccessorCalls.cs:23:9:23:17 | access to indexer | +| AccessorCalls.cs:23:21:23:26 | After access to field x | AccessorCalls.cs:23:28:23:28 | 1 | +| AccessorCalls.cs:23:21:23:26 | Before access to field x | AccessorCalls.cs:23:21:23:24 | this access | +| AccessorCalls.cs:23:21:23:26 | access to field x | AccessorCalls.cs:23:21:23:26 | After access to field x | +| AccessorCalls.cs:23:21:23:29 | After access to indexer | AccessorCalls.cs:23:9:23:29 | ... = ... | +| AccessorCalls.cs:23:21:23:29 | Before access to indexer | AccessorCalls.cs:23:21:23:26 | Before access to field x | +| AccessorCalls.cs:23:21:23:29 | access to indexer | AccessorCalls.cs:23:21:23:29 | After access to indexer | | AccessorCalls.cs:23:28:23:28 | 1 | AccessorCalls.cs:23:21:23:29 | access to indexer | | AccessorCalls.cs:24:9:24:12 | this access | AccessorCalls.cs:24:9:24:14 | access to field x | -| AccessorCalls.cs:24:9:24:14 | access to field x | AccessorCalls.cs:24:25:24:25 | access to parameter e | -| AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:24:9:24:25 | ... += ... | -| AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:25:9:25:26 | ...; | -| AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:24:9:24:12 | this access | -| AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:24:9:24:20 | access to event Event | +| AccessorCalls.cs:24:9:24:14 | After access to field x | AccessorCalls.cs:24:9:24:20 | access to event Event | +| AccessorCalls.cs:24:9:24:14 | Before access to field x | AccessorCalls.cs:24:9:24:12 | this access | +| AccessorCalls.cs:24:9:24:14 | access to field x | AccessorCalls.cs:24:9:24:14 | After access to field x | +| AccessorCalls.cs:24:9:24:20 | After access to event Event | AccessorCalls.cs:24:25:24:25 | access to parameter e | +| AccessorCalls.cs:24:9:24:20 | Before access to event Event | AccessorCalls.cs:24:9:24:14 | Before access to field x | +| AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:24:9:24:20 | After access to event Event | +| AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:24:9:24:25 | After ... += ... | +| AccessorCalls.cs:24:9:24:25 | After ... += ... | AccessorCalls.cs:24:9:24:26 | After ...; | +| AccessorCalls.cs:24:9:24:25 | Before ... += ... | AccessorCalls.cs:24:9:24:20 | Before access to event Event | +| AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:24:9:24:25 | Before ... += ... | +| AccessorCalls.cs:24:9:24:26 | After ...; | AccessorCalls.cs:25:9:25:26 | ...; | +| AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:24:9:24:25 | ... += ... | | AccessorCalls.cs:25:9:25:12 | this access | AccessorCalls.cs:25:9:25:14 | access to field x | -| AccessorCalls.cs:25:9:25:14 | access to field x | AccessorCalls.cs:25:25:25:25 | access to parameter e | -| AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:25:9:25:25 | ... -= ... | -| AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:19:10:19:11 | exit M2 (normal) | -| AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:25:9:25:12 | this access | -| AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:25:9:25:20 | access to event Event | -| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:29:5:33:5 | {...} | -| AccessorCalls.cs:28:10:28:11 | exit M3 (normal) | AccessorCalls.cs:28:10:28:11 | exit M3 | +| AccessorCalls.cs:25:9:25:14 | After access to field x | AccessorCalls.cs:25:9:25:20 | access to event Event | +| AccessorCalls.cs:25:9:25:14 | Before access to field x | AccessorCalls.cs:25:9:25:12 | this access | +| AccessorCalls.cs:25:9:25:14 | access to field x | AccessorCalls.cs:25:9:25:14 | After access to field x | +| AccessorCalls.cs:25:9:25:20 | After access to event Event | AccessorCalls.cs:25:25:25:25 | access to parameter e | +| AccessorCalls.cs:25:9:25:20 | Before access to event Event | AccessorCalls.cs:25:9:25:14 | Before access to field x | +| AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:25:9:25:20 | After access to event Event | +| AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:25:9:25:25 | After ... -= ... | +| AccessorCalls.cs:25:9:25:25 | After ... -= ... | AccessorCalls.cs:25:9:25:26 | After ...; | +| AccessorCalls.cs:25:9:25:25 | Before ... -= ... | AccessorCalls.cs:25:9:25:20 | Before access to event Event | +| AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:25:9:25:25 | Before ... -= ... | +| AccessorCalls.cs:25:9:25:26 | After ...; | AccessorCalls.cs:20:5:26:5 | After {...} | +| AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:25:9:25:25 | ... -= ... | +| AccessorCalls.cs:28:10:28:11 | Entry | AccessorCalls.cs:29:5:33:5 | {...} | +| AccessorCalls.cs:28:10:28:11 | Normal Exit | AccessorCalls.cs:28:10:28:11 | Exit | +| AccessorCalls.cs:29:5:33:5 | After {...} | AccessorCalls.cs:28:10:28:11 | Normal Exit | | AccessorCalls.cs:29:5:33:5 | {...} | AccessorCalls.cs:30:9:30:21 | ...; | | AccessorCalls.cs:30:9:30:12 | this access | AccessorCalls.cs:30:9:30:18 | access to field Field | -| AccessorCalls.cs:30:9:30:18 | access to field Field | AccessorCalls.cs:30:9:30:20 | ...++ | -| AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:31:9:31:20 | ...; | -| AccessorCalls.cs:30:9:30:21 | ...; | AccessorCalls.cs:30:9:30:12 | this access | +| AccessorCalls.cs:30:9:30:18 | After access to field Field | AccessorCalls.cs:30:9:30:20 | ...++ | +| AccessorCalls.cs:30:9:30:18 | Before access to field Field | AccessorCalls.cs:30:9:30:12 | this access | +| AccessorCalls.cs:30:9:30:18 | access to field Field | AccessorCalls.cs:30:9:30:18 | After access to field Field | +| AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:30:9:30:20 | After ...++ | +| AccessorCalls.cs:30:9:30:20 | After ...++ | AccessorCalls.cs:30:9:30:21 | After ...; | +| AccessorCalls.cs:30:9:30:20 | Before ...++ | AccessorCalls.cs:30:9:30:18 | Before access to field Field | +| AccessorCalls.cs:30:9:30:21 | ...; | AccessorCalls.cs:30:9:30:20 | Before ...++ | +| AccessorCalls.cs:30:9:30:21 | After ...; | AccessorCalls.cs:31:9:31:20 | ...; | | AccessorCalls.cs:31:9:31:12 | this access | AccessorCalls.cs:31:9:31:17 | access to property Prop | -| AccessorCalls.cs:31:9:31:17 | access to property Prop | AccessorCalls.cs:31:9:31:19 | ...++ | -| AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:32:9:32:18 | ...; | -| AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:31:9:31:12 | this access | +| AccessorCalls.cs:31:9:31:17 | After access to property Prop | AccessorCalls.cs:31:9:31:19 | ...++ | +| AccessorCalls.cs:31:9:31:17 | Before access to property Prop | AccessorCalls.cs:31:9:31:12 | this access | +| AccessorCalls.cs:31:9:31:17 | access to property Prop | AccessorCalls.cs:31:9:31:17 | After access to property Prop | +| AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:31:9:31:19 | After ...++ | +| AccessorCalls.cs:31:9:31:19 | After ...++ | AccessorCalls.cs:31:9:31:20 | After ...; | +| AccessorCalls.cs:31:9:31:19 | Before ...++ | AccessorCalls.cs:31:9:31:17 | Before access to property Prop | +| AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:31:9:31:19 | Before ...++ | +| AccessorCalls.cs:31:9:31:20 | After ...; | AccessorCalls.cs:32:9:32:18 | ...; | | AccessorCalls.cs:32:9:32:12 | this access | AccessorCalls.cs:32:14:32:14 | 0 | -| AccessorCalls.cs:32:9:32:15 | access to indexer | AccessorCalls.cs:32:9:32:17 | ...++ | -| AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:28:10:28:11 | exit M3 (normal) | -| AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:32:9:32:12 | this access | +| AccessorCalls.cs:32:9:32:15 | After access to indexer | AccessorCalls.cs:32:9:32:17 | ...++ | +| AccessorCalls.cs:32:9:32:15 | Before access to indexer | AccessorCalls.cs:32:9:32:12 | this access | +| AccessorCalls.cs:32:9:32:15 | access to indexer | AccessorCalls.cs:32:9:32:15 | After access to indexer | +| AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:32:9:32:17 | After ...++ | +| AccessorCalls.cs:32:9:32:17 | After ...++ | AccessorCalls.cs:32:9:32:18 | After ...; | +| AccessorCalls.cs:32:9:32:17 | Before ...++ | AccessorCalls.cs:32:9:32:15 | Before access to indexer | +| AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:32:9:32:17 | Before ...++ | +| AccessorCalls.cs:32:9:32:18 | After ...; | AccessorCalls.cs:29:5:33:5 | After {...} | | AccessorCalls.cs:32:14:32:14 | 0 | AccessorCalls.cs:32:9:32:15 | access to indexer | -| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:36:5:40:5 | {...} | -| AccessorCalls.cs:35:10:35:11 | exit M4 (normal) | AccessorCalls.cs:35:10:35:11 | exit M4 | +| AccessorCalls.cs:35:10:35:11 | Entry | AccessorCalls.cs:36:5:40:5 | {...} | +| AccessorCalls.cs:35:10:35:11 | Normal Exit | AccessorCalls.cs:35:10:35:11 | Exit | +| AccessorCalls.cs:36:5:40:5 | After {...} | AccessorCalls.cs:35:10:35:11 | Normal Exit | | AccessorCalls.cs:36:5:40:5 | {...} | AccessorCalls.cs:37:9:37:23 | ...; | | AccessorCalls.cs:37:9:37:12 | this access | AccessorCalls.cs:37:9:37:14 | access to field x | -| AccessorCalls.cs:37:9:37:14 | access to field x | AccessorCalls.cs:37:9:37:20 | access to field Field | -| AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:37:9:37:22 | ...++ | -| AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:38:9:38:22 | ...; | -| AccessorCalls.cs:37:9:37:23 | ...; | AccessorCalls.cs:37:9:37:12 | this access | +| AccessorCalls.cs:37:9:37:14 | After access to field x | AccessorCalls.cs:37:9:37:20 | access to field Field | +| AccessorCalls.cs:37:9:37:14 | Before access to field x | AccessorCalls.cs:37:9:37:12 | this access | +| AccessorCalls.cs:37:9:37:14 | access to field x | AccessorCalls.cs:37:9:37:14 | After access to field x | +| AccessorCalls.cs:37:9:37:20 | After access to field Field | AccessorCalls.cs:37:9:37:22 | ...++ | +| AccessorCalls.cs:37:9:37:20 | Before access to field Field | AccessorCalls.cs:37:9:37:14 | Before access to field x | +| AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:37:9:37:20 | After access to field Field | +| AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:37:9:37:22 | After ...++ | +| AccessorCalls.cs:37:9:37:22 | After ...++ | AccessorCalls.cs:37:9:37:23 | After ...; | +| AccessorCalls.cs:37:9:37:22 | Before ...++ | AccessorCalls.cs:37:9:37:20 | Before access to field Field | +| AccessorCalls.cs:37:9:37:23 | ...; | AccessorCalls.cs:37:9:37:22 | Before ...++ | +| AccessorCalls.cs:37:9:37:23 | After ...; | AccessorCalls.cs:38:9:38:22 | ...; | | AccessorCalls.cs:38:9:38:12 | this access | AccessorCalls.cs:38:9:38:14 | access to field x | -| AccessorCalls.cs:38:9:38:14 | access to field x | AccessorCalls.cs:38:9:38:19 | access to property Prop | -| AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:38:9:38:21 | ...++ | -| AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:39:9:39:20 | ...; | -| AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:38:9:38:12 | this access | +| AccessorCalls.cs:38:9:38:14 | After access to field x | AccessorCalls.cs:38:9:38:19 | access to property Prop | +| AccessorCalls.cs:38:9:38:14 | Before access to field x | AccessorCalls.cs:38:9:38:12 | this access | +| AccessorCalls.cs:38:9:38:14 | access to field x | AccessorCalls.cs:38:9:38:14 | After access to field x | +| AccessorCalls.cs:38:9:38:19 | After access to property Prop | AccessorCalls.cs:38:9:38:21 | ...++ | +| AccessorCalls.cs:38:9:38:19 | Before access to property Prop | AccessorCalls.cs:38:9:38:14 | Before access to field x | +| AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:38:9:38:19 | After access to property Prop | +| AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:38:9:38:21 | After ...++ | +| AccessorCalls.cs:38:9:38:21 | After ...++ | AccessorCalls.cs:38:9:38:22 | After ...; | +| AccessorCalls.cs:38:9:38:21 | Before ...++ | AccessorCalls.cs:38:9:38:19 | Before access to property Prop | +| AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:38:9:38:21 | Before ...++ | +| AccessorCalls.cs:38:9:38:22 | After ...; | AccessorCalls.cs:39:9:39:20 | ...; | | AccessorCalls.cs:39:9:39:12 | this access | AccessorCalls.cs:39:9:39:14 | access to field x | -| AccessorCalls.cs:39:9:39:14 | access to field x | AccessorCalls.cs:39:16:39:16 | 0 | -| AccessorCalls.cs:39:9:39:17 | access to indexer | AccessorCalls.cs:39:9:39:19 | ...++ | -| AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:35:10:35:11 | exit M4 (normal) | -| AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:39:9:39:12 | this access | +| AccessorCalls.cs:39:9:39:14 | After access to field x | AccessorCalls.cs:39:16:39:16 | 0 | +| AccessorCalls.cs:39:9:39:14 | Before access to field x | AccessorCalls.cs:39:9:39:12 | this access | +| AccessorCalls.cs:39:9:39:14 | access to field x | AccessorCalls.cs:39:9:39:14 | After access to field x | +| AccessorCalls.cs:39:9:39:17 | After access to indexer | AccessorCalls.cs:39:9:39:19 | ...++ | +| AccessorCalls.cs:39:9:39:17 | Before access to indexer | AccessorCalls.cs:39:9:39:14 | Before access to field x | +| AccessorCalls.cs:39:9:39:17 | access to indexer | AccessorCalls.cs:39:9:39:17 | After access to indexer | +| AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:39:9:39:19 | After ...++ | +| AccessorCalls.cs:39:9:39:19 | After ...++ | AccessorCalls.cs:39:9:39:20 | After ...; | +| AccessorCalls.cs:39:9:39:19 | Before ...++ | AccessorCalls.cs:39:9:39:17 | Before access to indexer | +| AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:39:9:39:19 | Before ...++ | +| AccessorCalls.cs:39:9:39:20 | After ...; | AccessorCalls.cs:36:5:40:5 | After {...} | | AccessorCalls.cs:39:16:39:16 | 0 | AccessorCalls.cs:39:9:39:17 | access to indexer | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:43:5:47:5 | {...} | -| AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | AccessorCalls.cs:42:10:42:11 | exit M5 | +| AccessorCalls.cs:42:10:42:11 | Entry | AccessorCalls.cs:43:5:47:5 | {...} | +| AccessorCalls.cs:42:10:42:11 | Normal Exit | AccessorCalls.cs:42:10:42:11 | Exit | +| AccessorCalls.cs:43:5:47:5 | After {...} | AccessorCalls.cs:42:10:42:11 | Normal Exit | | AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | -| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | -| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:45:9:45:31 | ...; | -| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access | +| AccessorCalls.cs:44:9:44:18 | After access to field Field | AccessorCalls.cs:44:23:44:32 | Before access to field Field | +| AccessorCalls.cs:44:9:44:18 | Before access to field Field | AccessorCalls.cs:44:9:44:12 | this access | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:18 | After access to field Field | +| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:44:9:44:32 | After ... += ... | +| AccessorCalls.cs:44:9:44:32 | After ... += ... | AccessorCalls.cs:44:9:44:33 | After ...; | +| AccessorCalls.cs:44:9:44:32 | Before ... += ... | AccessorCalls.cs:44:9:44:18 | Before access to field Field | +| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:32 | Before ... += ... | +| AccessorCalls.cs:44:9:44:33 | After ...; | AccessorCalls.cs:45:9:45:31 | ...; | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field | -| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... += ... | +| AccessorCalls.cs:44:23:44:32 | After access to field Field | AccessorCalls.cs:44:9:44:32 | ... += ... | +| AccessorCalls.cs:44:23:44:32 | Before access to field Field | AccessorCalls.cs:44:23:44:26 | this access | +| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:23:44:32 | After access to field Field | | AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:17 | access to property Prop | -| AccessorCalls.cs:45:9:45:17 | access to property Prop | AccessorCalls.cs:45:22:45:25 | this access | -| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:46:9:46:27 | ...; | -| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:45:9:45:12 | this access | +| AccessorCalls.cs:45:9:45:17 | After access to property Prop | AccessorCalls.cs:45:22:45:30 | Before access to property Prop | +| AccessorCalls.cs:45:9:45:17 | Before access to property Prop | AccessorCalls.cs:45:9:45:12 | this access | +| AccessorCalls.cs:45:9:45:17 | access to property Prop | AccessorCalls.cs:45:9:45:17 | After access to property Prop | +| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:45:9:45:30 | After ... += ... | +| AccessorCalls.cs:45:9:45:30 | After ... += ... | AccessorCalls.cs:45:9:45:31 | After ...; | +| AccessorCalls.cs:45:9:45:30 | Before ... += ... | AccessorCalls.cs:45:9:45:17 | Before access to property Prop | +| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:45:9:45:30 | Before ... += ... | +| AccessorCalls.cs:45:9:45:31 | After ...; | AccessorCalls.cs:46:9:46:27 | ...; | | AccessorCalls.cs:45:22:45:25 | this access | AccessorCalls.cs:45:22:45:30 | access to property Prop | -| AccessorCalls.cs:45:22:45:30 | access to property Prop | AccessorCalls.cs:45:9:45:30 | ... += ... | +| AccessorCalls.cs:45:22:45:30 | After access to property Prop | AccessorCalls.cs:45:9:45:30 | ... += ... | +| AccessorCalls.cs:45:22:45:30 | Before access to property Prop | AccessorCalls.cs:45:22:45:25 | this access | +| AccessorCalls.cs:45:22:45:30 | access to property Prop | AccessorCalls.cs:45:22:45:30 | After access to property Prop | | AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:14:46:14 | 0 | -| AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:46:20:46:23 | this access | -| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | -| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:46:9:46:12 | this access | +| AccessorCalls.cs:46:9:46:15 | After access to indexer | AccessorCalls.cs:46:20:46:26 | Before access to indexer | +| AccessorCalls.cs:46:9:46:15 | Before access to indexer | AccessorCalls.cs:46:9:46:12 | this access | +| AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:46:9:46:15 | After access to indexer | +| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:46:9:46:26 | After ... += ... | +| AccessorCalls.cs:46:9:46:26 | After ... += ... | AccessorCalls.cs:46:9:46:27 | After ...; | +| AccessorCalls.cs:46:9:46:26 | Before ... += ... | AccessorCalls.cs:46:9:46:15 | Before access to indexer | +| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:46:9:46:26 | Before ... += ... | +| AccessorCalls.cs:46:9:46:27 | After ...; | AccessorCalls.cs:43:5:47:5 | After {...} | | AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:46:9:46:15 | access to indexer | | AccessorCalls.cs:46:20:46:23 | this access | AccessorCalls.cs:46:25:46:25 | 0 | -| AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:46:9:46:26 | ... += ... | +| AccessorCalls.cs:46:20:46:26 | After access to indexer | AccessorCalls.cs:46:9:46:26 | ... += ... | +| AccessorCalls.cs:46:20:46:26 | Before access to indexer | AccessorCalls.cs:46:20:46:23 | this access | +| AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:46:20:46:26 | After access to indexer | | AccessorCalls.cs:46:25:46:25 | 0 | AccessorCalls.cs:46:20:46:26 | access to indexer | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:50:5:54:5 | {...} | -| AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | AccessorCalls.cs:49:10:49:11 | exit M6 | +| AccessorCalls.cs:49:10:49:11 | Entry | AccessorCalls.cs:50:5:54:5 | {...} | +| AccessorCalls.cs:49:10:49:11 | Normal Exit | AccessorCalls.cs:49:10:49:11 | Exit | +| AccessorCalls.cs:50:5:54:5 | After {...} | AccessorCalls.cs:49:10:49:11 | Normal Exit | | AccessorCalls.cs:50:5:54:5 | {...} | AccessorCalls.cs:51:9:51:37 | ...; | | AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x | -| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | -| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access | -| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:52:9:52:35 | ...; | -| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access | +| AccessorCalls.cs:51:9:51:14 | After access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | +| AccessorCalls.cs:51:9:51:14 | Before access to field x | AccessorCalls.cs:51:9:51:12 | this access | +| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:14 | After access to field x | +| AccessorCalls.cs:51:9:51:20 | After access to field Field | AccessorCalls.cs:51:25:51:36 | Before access to field Field | +| AccessorCalls.cs:51:9:51:20 | Before access to field Field | AccessorCalls.cs:51:9:51:14 | Before access to field x | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:20 | After access to field Field | +| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:51:9:51:36 | After ... += ... | +| AccessorCalls.cs:51:9:51:36 | After ... += ... | AccessorCalls.cs:51:9:51:37 | After ...; | +| AccessorCalls.cs:51:9:51:36 | Before ... += ... | AccessorCalls.cs:51:9:51:20 | Before access to field Field | +| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:36 | Before ... += ... | +| AccessorCalls.cs:51:9:51:37 | After ...; | AccessorCalls.cs:52:9:52:35 | ...; | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x | -| AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:36 | access to field Field | -| AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... += ... | +| AccessorCalls.cs:51:25:51:30 | After access to field x | AccessorCalls.cs:51:25:51:36 | access to field Field | +| AccessorCalls.cs:51:25:51:30 | Before access to field x | AccessorCalls.cs:51:25:51:28 | this access | +| AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:30 | After access to field x | +| AccessorCalls.cs:51:25:51:36 | After access to field Field | AccessorCalls.cs:51:9:51:36 | ... += ... | +| AccessorCalls.cs:51:25:51:36 | Before access to field Field | AccessorCalls.cs:51:25:51:30 | Before access to field x | +| AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:51:25:51:36 | After access to field Field | | AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:14 | access to field x | -| AccessorCalls.cs:52:9:52:14 | access to field x | AccessorCalls.cs:52:9:52:19 | access to property Prop | -| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:24:52:27 | this access | -| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:53:9:53:31 | ...; | -| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:52:9:52:12 | this access | +| AccessorCalls.cs:52:9:52:14 | After access to field x | AccessorCalls.cs:52:9:52:19 | access to property Prop | +| AccessorCalls.cs:52:9:52:14 | Before access to field x | AccessorCalls.cs:52:9:52:12 | this access | +| AccessorCalls.cs:52:9:52:14 | access to field x | AccessorCalls.cs:52:9:52:14 | After access to field x | +| AccessorCalls.cs:52:9:52:19 | After access to property Prop | AccessorCalls.cs:52:24:52:34 | Before access to property Prop | +| AccessorCalls.cs:52:9:52:19 | Before access to property Prop | AccessorCalls.cs:52:9:52:14 | Before access to field x | +| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:19 | After access to property Prop | +| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:52:9:52:34 | After ... += ... | +| AccessorCalls.cs:52:9:52:34 | After ... += ... | AccessorCalls.cs:52:9:52:35 | After ...; | +| AccessorCalls.cs:52:9:52:34 | Before ... += ... | AccessorCalls.cs:52:9:52:19 | Before access to property Prop | +| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:52:9:52:34 | Before ... += ... | +| AccessorCalls.cs:52:9:52:35 | After ...; | AccessorCalls.cs:53:9:53:31 | ...; | | AccessorCalls.cs:52:24:52:27 | this access | AccessorCalls.cs:52:24:52:29 | access to field x | -| AccessorCalls.cs:52:24:52:29 | access to field x | AccessorCalls.cs:52:24:52:34 | access to property Prop | -| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:9:52:34 | ... += ... | +| AccessorCalls.cs:52:24:52:29 | After access to field x | AccessorCalls.cs:52:24:52:34 | access to property Prop | +| AccessorCalls.cs:52:24:52:29 | Before access to field x | AccessorCalls.cs:52:24:52:27 | this access | +| AccessorCalls.cs:52:24:52:29 | access to field x | AccessorCalls.cs:52:24:52:29 | After access to field x | +| AccessorCalls.cs:52:24:52:34 | After access to property Prop | AccessorCalls.cs:52:9:52:34 | ... += ... | +| AccessorCalls.cs:52:24:52:34 | Before access to property Prop | AccessorCalls.cs:52:24:52:29 | Before access to field x | +| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:24:52:34 | After access to property Prop | | AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:14 | access to field x | -| AccessorCalls.cs:53:9:53:14 | access to field x | AccessorCalls.cs:53:16:53:16 | 0 | -| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:22:53:25 | this access | -| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | -| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:53:9:53:12 | this access | +| AccessorCalls.cs:53:9:53:14 | After access to field x | AccessorCalls.cs:53:16:53:16 | 0 | +| AccessorCalls.cs:53:9:53:14 | Before access to field x | AccessorCalls.cs:53:9:53:12 | this access | +| AccessorCalls.cs:53:9:53:14 | access to field x | AccessorCalls.cs:53:9:53:14 | After access to field x | +| AccessorCalls.cs:53:9:53:17 | After access to indexer | AccessorCalls.cs:53:22:53:30 | Before access to indexer | +| AccessorCalls.cs:53:9:53:17 | Before access to indexer | AccessorCalls.cs:53:9:53:14 | Before access to field x | +| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:17 | After access to indexer | +| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:53:9:53:30 | After ... += ... | +| AccessorCalls.cs:53:9:53:30 | After ... += ... | AccessorCalls.cs:53:9:53:31 | After ...; | +| AccessorCalls.cs:53:9:53:30 | Before ... += ... | AccessorCalls.cs:53:9:53:17 | Before access to indexer | +| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:53:9:53:30 | Before ... += ... | +| AccessorCalls.cs:53:9:53:31 | After ...; | AccessorCalls.cs:50:5:54:5 | After {...} | | AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:53:9:53:17 | access to indexer | | AccessorCalls.cs:53:22:53:25 | this access | AccessorCalls.cs:53:22:53:27 | access to field x | -| AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:53:29:53:29 | 0 | -| AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:53:9:53:30 | ... += ... | +| AccessorCalls.cs:53:22:53:27 | After access to field x | AccessorCalls.cs:53:29:53:29 | 0 | +| AccessorCalls.cs:53:22:53:27 | Before access to field x | AccessorCalls.cs:53:22:53:25 | this access | +| AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:53:22:53:27 | After access to field x | +| AccessorCalls.cs:53:22:53:30 | After access to indexer | AccessorCalls.cs:53:9:53:30 | ... += ... | +| AccessorCalls.cs:53:22:53:30 | Before access to indexer | AccessorCalls.cs:53:22:53:27 | Before access to field x | +| AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:53:22:53:30 | After access to indexer | | AccessorCalls.cs:53:29:53:29 | 0 | AccessorCalls.cs:53:22:53:30 | access to indexer | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:57:5:59:5 | {...} | -| AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | AccessorCalls.cs:56:10:56:11 | exit M7 | +| AccessorCalls.cs:56:10:56:11 | Entry | AccessorCalls.cs:57:5:59:5 | {...} | +| AccessorCalls.cs:56:10:56:11 | Normal Exit | AccessorCalls.cs:56:10:56:11 | Exit | +| AccessorCalls.cs:57:5:59:5 | After {...} | AccessorCalls.cs:56:10:56:11 | Normal Exit | | AccessorCalls.cs:57:5:59:5 | {...} | AccessorCalls.cs:58:9:58:86 | ...; | -| AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:58:50:58:53 | this access | -| AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | -| AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:10:58:13 | this access | -| AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:22:58:25 | this access | -| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:22:58:30 | access to property Prop | -| AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:37:58:40 | this access | -| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:37:58:43 | access to indexer | -| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | +| AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:58:9:58:45 | After (..., ...) | +| AccessorCalls.cs:58:9:58:45 | After (..., ...) | AccessorCalls.cs:58:49:58:85 | Before (..., ...) | +| AccessorCalls.cs:58:9:58:45 | Before (..., ...) | AccessorCalls.cs:58:10:58:19 | Before access to field Field | +| AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:58:9:58:85 | After ... = ... | +| AccessorCalls.cs:58:9:58:85 | After ... = ... | AccessorCalls.cs:58:9:58:86 | After ...; | +| AccessorCalls.cs:58:9:58:85 | Before ... = ... | AccessorCalls.cs:58:9:58:45 | Before (..., ...) | +| AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:9:58:85 | Before ... = ... | +| AccessorCalls.cs:58:9:58:86 | After ...; | AccessorCalls.cs:57:5:59:5 | After {...} | +| AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:10:58:19 | access to field Field | +| AccessorCalls.cs:58:10:58:19 | After access to field Field | AccessorCalls.cs:58:22:58:30 | Before access to property Prop | +| AccessorCalls.cs:58:10:58:19 | Before access to field Field | AccessorCalls.cs:58:10:58:13 | this access | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:10:58:19 | After access to field Field | +| AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:22:58:30 | access to property Prop | +| AccessorCalls.cs:58:22:58:30 | After access to property Prop | AccessorCalls.cs:58:33:58:44 | Before (..., ...) | +| AccessorCalls.cs:58:22:58:30 | Before access to property Prop | AccessorCalls.cs:58:22:58:25 | this access | +| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:22:58:30 | After access to property Prop | +| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:33:58:44 | After (..., ...) | +| AccessorCalls.cs:58:33:58:44 | After (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | +| AccessorCalls.cs:58:33:58:44 | Before (..., ...) | AccessorCalls.cs:58:34:58:34 | access to parameter i | +| AccessorCalls.cs:58:34:58:34 | access to parameter i | AccessorCalls.cs:58:37:58:43 | Before access to indexer | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:42:58:42 | 0 | -| AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:9:58:85 | ... = ... | -| AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:33:58:44 | (..., ...) | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:10:58:19 | access to field Field | +| AccessorCalls.cs:58:37:58:43 | After access to indexer | AccessorCalls.cs:58:33:58:44 | (..., ...) | +| AccessorCalls.cs:58:37:58:43 | Before access to indexer | AccessorCalls.cs:58:37:58:40 | this access | +| AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:37:58:43 | After access to indexer | +| AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:37:58:43 | access to indexer | +| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:49:58:85 | After (..., ...) | +| AccessorCalls.cs:58:49:58:85 | After (..., ...) | AccessorCalls.cs:58:9:58:85 | ... = ... | +| AccessorCalls.cs:58:49:58:85 | Before (..., ...) | AccessorCalls.cs:58:50:58:59 | Before access to field Field | | AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:59 | access to field Field | -| AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:62:58:65 | this access | +| AccessorCalls.cs:58:50:58:59 | After access to field Field | AccessorCalls.cs:58:62:58:70 | Before access to property Prop | +| AccessorCalls.cs:58:50:58:59 | Before access to field Field | AccessorCalls.cs:58:50:58:53 | this access | +| AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:50:58:59 | After access to field Field | | AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:70 | access to property Prop | -| AccessorCalls.cs:58:62:58:70 | access to property Prop | AccessorCalls.cs:58:74:58:74 | 0 | -| AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:58:49:58:85 | (..., ...) | -| AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:58:77:58:80 | this access | +| AccessorCalls.cs:58:62:58:70 | After access to property Prop | AccessorCalls.cs:58:73:58:84 | Before (..., ...) | +| AccessorCalls.cs:58:62:58:70 | Before access to property Prop | AccessorCalls.cs:58:62:58:65 | this access | +| AccessorCalls.cs:58:62:58:70 | access to property Prop | AccessorCalls.cs:58:62:58:70 | After access to property Prop | +| AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:58:73:58:84 | After (..., ...) | +| AccessorCalls.cs:58:73:58:84 | After (..., ...) | AccessorCalls.cs:58:49:58:85 | (..., ...) | +| AccessorCalls.cs:58:73:58:84 | Before (..., ...) | AccessorCalls.cs:58:74:58:74 | 0 | +| AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:58:77:58:83 | Before access to indexer | | AccessorCalls.cs:58:77:58:80 | this access | AccessorCalls.cs:58:82:58:82 | 1 | -| AccessorCalls.cs:58:77:58:83 | access to indexer | AccessorCalls.cs:58:73:58:84 | (..., ...) | +| AccessorCalls.cs:58:77:58:83 | After access to indexer | AccessorCalls.cs:58:73:58:84 | (..., ...) | +| AccessorCalls.cs:58:77:58:83 | Before access to indexer | AccessorCalls.cs:58:77:58:80 | this access | +| AccessorCalls.cs:58:77:58:83 | access to indexer | AccessorCalls.cs:58:77:58:83 | After access to indexer | | AccessorCalls.cs:58:82:58:82 | 1 | AccessorCalls.cs:58:77:58:83 | access to indexer | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:62:5:64:5 | {...} | -| AccessorCalls.cs:61:10:61:11 | exit M8 (normal) | AccessorCalls.cs:61:10:61:11 | exit M8 | +| AccessorCalls.cs:61:10:61:11 | Entry | AccessorCalls.cs:62:5:64:5 | {...} | +| AccessorCalls.cs:61:10:61:11 | Normal Exit | AccessorCalls.cs:61:10:61:11 | Exit | +| AccessorCalls.cs:62:5:64:5 | After {...} | AccessorCalls.cs:61:10:61:11 | Normal Exit | | AccessorCalls.cs:62:5:64:5 | {...} | AccessorCalls.cs:63:9:63:98 | ...; | -| AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:63:56:63:59 | this access | -| AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:61:10:61:11 | exit M8 (normal) | -| AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:10:63:13 | this access | +| AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:63:9:63:51 | After (..., ...) | +| AccessorCalls.cs:63:9:63:51 | After (..., ...) | AccessorCalls.cs:63:55:63:97 | Before (..., ...) | +| AccessorCalls.cs:63:9:63:51 | Before (..., ...) | AccessorCalls.cs:63:10:63:21 | Before access to field Field | +| AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:63:9:63:97 | After ... = ... | +| AccessorCalls.cs:63:9:63:97 | After ... = ... | AccessorCalls.cs:63:9:63:98 | After ...; | +| AccessorCalls.cs:63:9:63:97 | Before ... = ... | AccessorCalls.cs:63:9:63:51 | Before (..., ...) | +| AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:9:63:97 | Before ... = ... | +| AccessorCalls.cs:63:9:63:98 | After ...; | AccessorCalls.cs:62:5:64:5 | After {...} | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | -| AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | -| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:24:63:34 | access to property Prop | +| AccessorCalls.cs:63:10:63:15 | After access to field x | AccessorCalls.cs:63:10:63:21 | access to field Field | +| AccessorCalls.cs:63:10:63:15 | Before access to field x | AccessorCalls.cs:63:10:63:13 | this access | +| AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:10:63:15 | After access to field x | +| AccessorCalls.cs:63:10:63:21 | After access to field Field | AccessorCalls.cs:63:24:63:34 | Before access to property Prop | +| AccessorCalls.cs:63:10:63:21 | Before access to field Field | AccessorCalls.cs:63:10:63:15 | Before access to field x | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:10:63:21 | After access to field Field | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | -| AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | -| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:41:63:49 | access to indexer | -| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:9:63:51 | (..., ...) | +| AccessorCalls.cs:63:24:63:29 | After access to field x | AccessorCalls.cs:63:24:63:34 | access to property Prop | +| AccessorCalls.cs:63:24:63:29 | Before access to field x | AccessorCalls.cs:63:24:63:27 | this access | +| AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:24:63:29 | After access to field x | +| AccessorCalls.cs:63:24:63:34 | After access to property Prop | AccessorCalls.cs:63:37:63:50 | Before (..., ...) | +| AccessorCalls.cs:63:24:63:34 | Before access to property Prop | AccessorCalls.cs:63:24:63:29 | Before access to field x | +| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:24:63:34 | After access to property Prop | +| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:37:63:50 | After (..., ...) | +| AccessorCalls.cs:63:37:63:50 | After (..., ...) | AccessorCalls.cs:63:9:63:51 | (..., ...) | +| AccessorCalls.cs:63:37:63:50 | Before (..., ...) | AccessorCalls.cs:63:38:63:38 | access to parameter i | +| AccessorCalls.cs:63:38:63:38 | access to parameter i | AccessorCalls.cs:63:41:63:49 | Before access to indexer | | AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:41:63:46 | access to field x | -| AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:48:63:48 | 0 | -| AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:9:63:97 | ... = ... | -| AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:37:63:50 | (..., ...) | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:10:63:21 | access to field Field | +| AccessorCalls.cs:63:41:63:46 | After access to field x | AccessorCalls.cs:63:48:63:48 | 0 | +| AccessorCalls.cs:63:41:63:46 | Before access to field x | AccessorCalls.cs:63:41:63:44 | this access | +| AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:41:63:46 | After access to field x | +| AccessorCalls.cs:63:41:63:49 | After access to indexer | AccessorCalls.cs:63:37:63:50 | (..., ...) | +| AccessorCalls.cs:63:41:63:49 | Before access to indexer | AccessorCalls.cs:63:41:63:46 | Before access to field x | +| AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:41:63:49 | After access to indexer | +| AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:41:63:49 | access to indexer | +| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:55:63:97 | After (..., ...) | +| AccessorCalls.cs:63:55:63:97 | After (..., ...) | AccessorCalls.cs:63:9:63:97 | ... = ... | +| AccessorCalls.cs:63:55:63:97 | Before (..., ...) | AccessorCalls.cs:63:56:63:67 | Before access to field Field | | AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:61 | access to field x | -| AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | -| AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:70:63:73 | this access | +| AccessorCalls.cs:63:56:63:61 | After access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | +| AccessorCalls.cs:63:56:63:61 | Before access to field x | AccessorCalls.cs:63:56:63:59 | this access | +| AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:61 | After access to field x | +| AccessorCalls.cs:63:56:63:67 | After access to field Field | AccessorCalls.cs:63:70:63:80 | Before access to property Prop | +| AccessorCalls.cs:63:56:63:67 | Before access to field Field | AccessorCalls.cs:63:56:63:61 | Before access to field x | +| AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:56:63:67 | After access to field Field | | AccessorCalls.cs:63:70:63:73 | this access | AccessorCalls.cs:63:70:63:75 | access to field x | -| AccessorCalls.cs:63:70:63:75 | access to field x | AccessorCalls.cs:63:70:63:80 | access to property Prop | -| AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:63:84:63:84 | 0 | -| AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:63:55:63:97 | (..., ...) | -| AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:63:87:63:90 | this access | +| AccessorCalls.cs:63:70:63:75 | After access to field x | AccessorCalls.cs:63:70:63:80 | access to property Prop | +| AccessorCalls.cs:63:70:63:75 | Before access to field x | AccessorCalls.cs:63:70:63:73 | this access | +| AccessorCalls.cs:63:70:63:75 | access to field x | AccessorCalls.cs:63:70:63:75 | After access to field x | +| AccessorCalls.cs:63:70:63:80 | After access to property Prop | AccessorCalls.cs:63:83:63:96 | Before (..., ...) | +| AccessorCalls.cs:63:70:63:80 | Before access to property Prop | AccessorCalls.cs:63:70:63:75 | Before access to field x | +| AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:63:70:63:80 | After access to property Prop | +| AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:63:83:63:96 | After (..., ...) | +| AccessorCalls.cs:63:83:63:96 | After (..., ...) | AccessorCalls.cs:63:55:63:97 | (..., ...) | +| AccessorCalls.cs:63:83:63:96 | Before (..., ...) | AccessorCalls.cs:63:84:63:84 | 0 | +| AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:63:87:63:95 | Before access to indexer | | AccessorCalls.cs:63:87:63:90 | this access | AccessorCalls.cs:63:87:63:92 | access to field x | -| AccessorCalls.cs:63:87:63:92 | access to field x | AccessorCalls.cs:63:94:63:94 | 1 | -| AccessorCalls.cs:63:87:63:95 | access to indexer | AccessorCalls.cs:63:83:63:96 | (..., ...) | +| AccessorCalls.cs:63:87:63:92 | After access to field x | AccessorCalls.cs:63:94:63:94 | 1 | +| AccessorCalls.cs:63:87:63:92 | Before access to field x | AccessorCalls.cs:63:87:63:90 | this access | +| AccessorCalls.cs:63:87:63:92 | access to field x | AccessorCalls.cs:63:87:63:92 | After access to field x | +| AccessorCalls.cs:63:87:63:95 | After access to indexer | AccessorCalls.cs:63:83:63:96 | (..., ...) | +| AccessorCalls.cs:63:87:63:95 | Before access to indexer | AccessorCalls.cs:63:87:63:92 | Before access to field x | +| AccessorCalls.cs:63:87:63:95 | access to indexer | AccessorCalls.cs:63:87:63:95 | After access to indexer | | AccessorCalls.cs:63:94:63:94 | 1 | AccessorCalls.cs:63:87:63:95 | access to indexer | -| AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:67:5:74:5 | {...} | -| AccessorCalls.cs:66:10:66:11 | exit M9 (normal) | AccessorCalls.cs:66:10:66:11 | exit M9 | +| AccessorCalls.cs:66:10:66:11 | Entry | AccessorCalls.cs:67:5:74:5 | {...} | +| AccessorCalls.cs:66:10:66:11 | Normal Exit | AccessorCalls.cs:66:10:66:11 | Exit | +| AccessorCalls.cs:67:5:74:5 | After {...} | AccessorCalls.cs:66:10:66:11 | Normal Exit | | AccessorCalls.cs:67:5:74:5 | {...} | AccessorCalls.cs:68:9:68:22 | ... ...; | -| AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:68:21:68:21 | access to parameter o | -| AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:69:9:69:36 | ...; | +| AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:68:17:68:21 | Before dynamic d = ... | +| AccessorCalls.cs:68:9:68:22 | After ... ...; | AccessorCalls.cs:69:9:69:36 | ...; | +| AccessorCalls.cs:68:17:68:17 | access to local variable d | AccessorCalls.cs:68:21:68:21 | access to parameter o | +| AccessorCalls.cs:68:17:68:21 | After dynamic d = ... | AccessorCalls.cs:68:9:68:22 | After ... ...; | +| AccessorCalls.cs:68:17:68:21 | Before dynamic d = ... | AccessorCalls.cs:68:17:68:17 | access to local variable d | +| AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:68:17:68:21 | After dynamic d = ... | | AccessorCalls.cs:68:21:68:21 | access to parameter o | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | -| AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:24:69:24 | access to local variable d | -| AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:35 | ... = ... | -| AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:70:9:70:22 | ...; | -| AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:69:9:69:9 | access to local variable d | +| AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:69:9:69:20 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:69:24:69:35 | Before dynamic access to member MaybeProp2 | +| AccessorCalls.cs:69:9:69:20 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:9 | access to local variable d | +| AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:20 | After dynamic access to member MaybeProp1 | +| AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:69:9:69:35 | After ... = ... | +| AccessorCalls.cs:69:9:69:35 | After ... = ... | AccessorCalls.cs:69:9:69:36 | After ...; | +| AccessorCalls.cs:69:9:69:35 | Before ... = ... | AccessorCalls.cs:69:9:69:20 | Before dynamic access to member MaybeProp1 | +| AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:69:9:69:35 | Before ... = ... | +| AccessorCalls.cs:69:9:69:36 | After ...; | AccessorCalls.cs:70:9:70:22 | ...; | | AccessorCalls.cs:69:24:69:24 | access to local variable d | AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | -| AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:69:24:69:35 | After dynamic access to member MaybeProp2 | AccessorCalls.cs:69:9:69:35 | ... = ... | +| AccessorCalls.cs:69:24:69:35 | Before dynamic access to member MaybeProp2 | AccessorCalls.cs:69:24:69:24 | access to local variable d | +| AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | AccessorCalls.cs:69:24:69:35 | After dynamic access to member MaybeProp2 | | AccessorCalls.cs:70:9:70:9 | access to local variable d | AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | -| AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | -| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:71:9:71:26 | ...; | -| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:70:9:70:9 | access to local variable d | +| AccessorCalls.cs:70:9:70:19 | After dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | +| AccessorCalls.cs:70:9:70:19 | Before dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:9 | access to local variable d | +| AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:19 | After dynamic access to member MaybeProp | +| AccessorCalls.cs:70:9:70:21 | After dynamic call to operator ++ | AccessorCalls.cs:70:9:70:22 | After ...; | +| AccessorCalls.cs:70:9:70:21 | Before dynamic call to operator ++ | AccessorCalls.cs:70:9:70:19 | Before dynamic access to member MaybeProp | +| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:70:9:70:21 | After dynamic call to operator ++ | +| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:70:9:70:21 | Before dynamic call to operator ++ | +| AccessorCalls.cs:70:9:70:22 | After ...; | AccessorCalls.cs:71:9:71:26 | ...; | | AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | -| AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:71:25:71:25 | access to parameter e | -| AccessorCalls.cs:71:9:71:25 | ... += ... | AccessorCalls.cs:72:9:72:21 | ...; | -| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:71:9:71:9 | access to local variable d | +| AccessorCalls.cs:71:9:71:20 | After dynamic access to member MaybeEvent | AccessorCalls.cs:71:25:71:25 | access to parameter e | +| AccessorCalls.cs:71:9:71:20 | Before dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:9 | access to local variable d | +| AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:20 | After dynamic access to member MaybeEvent | +| AccessorCalls.cs:71:9:71:25 | ... += ... | AccessorCalls.cs:71:9:71:25 | After ... += ... | +| AccessorCalls.cs:71:9:71:25 | After ... += ... | AccessorCalls.cs:71:9:71:26 | After ...; | +| AccessorCalls.cs:71:9:71:25 | Before ... += ... | AccessorCalls.cs:71:9:71:20 | Before dynamic access to member MaybeEvent | +| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:71:9:71:25 | Before ... += ... | +| AccessorCalls.cs:71:9:71:26 | After ...; | AccessorCalls.cs:72:9:72:21 | ...; | | AccessorCalls.cs:71:25:71:25 | access to parameter e | AccessorCalls.cs:71:9:71:25 | ... += ... | | AccessorCalls.cs:72:9:72:9 | access to local variable d | AccessorCalls.cs:72:11:72:11 | 0 | -| AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:72:17:72:17 | access to local variable d | -| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:73:9:73:84 | ...; | -| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:72:9:72:9 | access to local variable d | +| AccessorCalls.cs:72:9:72:12 | After dynamic access to element | AccessorCalls.cs:72:17:72:20 | Before dynamic access to element | +| AccessorCalls.cs:72:9:72:12 | Before dynamic access to element | AccessorCalls.cs:72:9:72:9 | access to local variable d | +| AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:72:9:72:12 | After dynamic access to element | +| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:72:9:72:20 | After ... += ... | +| AccessorCalls.cs:72:9:72:20 | After ... += ... | AccessorCalls.cs:72:9:72:21 | After ...; | +| AccessorCalls.cs:72:9:72:20 | Before ... += ... | AccessorCalls.cs:72:9:72:12 | Before dynamic access to element | +| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:72:9:72:20 | Before ... += ... | +| AccessorCalls.cs:72:9:72:21 | After ...; | AccessorCalls.cs:73:9:73:84 | ...; | | AccessorCalls.cs:72:11:72:11 | 0 | AccessorCalls.cs:72:9:72:12 | dynamic access to element | | AccessorCalls.cs:72:17:72:17 | access to local variable d | AccessorCalls.cs:72:19:72:19 | 1 | -| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:9:72:20 | ... += ... | +| AccessorCalls.cs:72:17:72:20 | After dynamic access to element | AccessorCalls.cs:72:9:72:20 | ... += ... | +| AccessorCalls.cs:72:17:72:20 | Before dynamic access to element | AccessorCalls.cs:72:17:72:17 | access to local variable d | +| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:17:72:20 | After dynamic access to element | | AccessorCalls.cs:72:19:72:19 | 1 | AccessorCalls.cs:72:17:72:20 | dynamic access to element | -| AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:73:49:73:49 | access to local variable d | -| AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:66:10:66:11 | exit M9 (normal) | -| AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:73:10:73:10 | access to local variable d | -| AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:73:24:73:27 | this access | -| AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:24:73:32 | access to property Prop | -| AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:39:73:39 | access to local variable d | -| AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:39:73:42 | dynamic access to element | -| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:9:73:44 | (..., ...) | +| AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:73:9:73:44 | After (..., ...) | +| AccessorCalls.cs:73:9:73:44 | After (..., ...) | AccessorCalls.cs:73:48:73:83 | Before (..., ...) | +| AccessorCalls.cs:73:9:73:44 | Before (..., ...) | AccessorCalls.cs:73:10:73:21 | Before dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:73:9:73:83 | After ... = ... | +| AccessorCalls.cs:73:9:73:83 | After ... = ... | AccessorCalls.cs:73:9:73:84 | After ...; | +| AccessorCalls.cs:73:9:73:83 | Before ... = ... | AccessorCalls.cs:73:9:73:44 | Before (..., ...) | +| AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:73:9:73:83 | Before ... = ... | +| AccessorCalls.cs:73:9:73:84 | After ...; | AccessorCalls.cs:67:5:74:5 | After {...} | +| AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:10:73:21 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:73:24:73:32 | Before access to property Prop | +| AccessorCalls.cs:73:10:73:21 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:10 | access to local variable d | +| AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:21 | After dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:24:73:32 | access to property Prop | +| AccessorCalls.cs:73:24:73:32 | After access to property Prop | AccessorCalls.cs:73:35:73:43 | Before (..., ...) | +| AccessorCalls.cs:73:24:73:32 | Before access to property Prop | AccessorCalls.cs:73:24:73:27 | this access | +| AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:24:73:32 | After access to property Prop | +| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:35:73:43 | After (..., ...) | +| AccessorCalls.cs:73:35:73:43 | After (..., ...) | AccessorCalls.cs:73:9:73:44 | (..., ...) | +| AccessorCalls.cs:73:35:73:43 | Before (..., ...) | AccessorCalls.cs:73:36:73:36 | access to parameter i | +| AccessorCalls.cs:73:36:73:36 | access to parameter i | AccessorCalls.cs:73:39:73:42 | Before dynamic access to element | | AccessorCalls.cs:73:39:73:39 | access to local variable d | AccessorCalls.cs:73:41:73:41 | 0 | -| AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:9:73:83 | ... = ... | -| AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:73:35:73:43 | (..., ...) | -| AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:39:73:42 | After dynamic access to element | AccessorCalls.cs:73:35:73:43 | (..., ...) | +| AccessorCalls.cs:73:39:73:42 | Before dynamic access to element | AccessorCalls.cs:73:39:73:39 | access to local variable d | +| AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:39:73:42 | After dynamic access to element | +| AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:73:39:73:42 | dynamic access to element | +| AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:73:48:73:83 | After (..., ...) | +| AccessorCalls.cs:73:48:73:83 | After (..., ...) | AccessorCalls.cs:73:9:73:83 | ... = ... | +| AccessorCalls.cs:73:48:73:83 | Before (..., ...) | AccessorCalls.cs:73:49:73:60 | Before dynamic access to member MaybeProp1 | | AccessorCalls.cs:73:49:73:49 | access to local variable d | AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | -| AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:63:73:66 | this access | +| AccessorCalls.cs:73:49:73:60 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:73:63:73:71 | Before access to property Prop | +| AccessorCalls.cs:73:49:73:60 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:73:49:73:49 | access to local variable d | +| AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:49:73:60 | After dynamic access to member MaybeProp1 | | AccessorCalls.cs:73:63:73:66 | this access | AccessorCalls.cs:73:63:73:71 | access to property Prop | -| AccessorCalls.cs:73:63:73:71 | access to property Prop | AccessorCalls.cs:73:75:73:75 | 0 | -| AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:73:48:73:83 | (..., ...) | -| AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:73:78:73:78 | access to local variable d | +| AccessorCalls.cs:73:63:73:71 | After access to property Prop | AccessorCalls.cs:73:74:73:82 | Before (..., ...) | +| AccessorCalls.cs:73:63:73:71 | Before access to property Prop | AccessorCalls.cs:73:63:73:66 | this access | +| AccessorCalls.cs:73:63:73:71 | access to property Prop | AccessorCalls.cs:73:63:73:71 | After access to property Prop | +| AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:73:74:73:82 | After (..., ...) | +| AccessorCalls.cs:73:74:73:82 | After (..., ...) | AccessorCalls.cs:73:48:73:83 | (..., ...) | +| AccessorCalls.cs:73:74:73:82 | Before (..., ...) | AccessorCalls.cs:73:75:73:75 | 0 | +| AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:73:78:73:81 | Before 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:78:73:81 | dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | +| AccessorCalls.cs:73:78:73:81 | After dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | +| AccessorCalls.cs:73:78:73:81 | Before dynamic access to element | AccessorCalls.cs:73:78:73:78 | access to local variable d | +| AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:78:73:81 | After dynamic access to element | | 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 | 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 | After call to constructor Object | ArrayCreation.cs:1:7:1:19 | {...} | +| ArrayCreation.cs:1:7:1:19 | After call to method | ArrayCreation.cs:1:7:1:19 | Before call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | Before call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | Before call to method | ArrayCreation.cs:1:7:1:19 | this access | +| ArrayCreation.cs:1:7:1:19 | Entry | ArrayCreation.cs:1:7:1:19 | Before call to method | +| ArrayCreation.cs:1:7:1:19 | Normal Exit | ArrayCreation.cs:1:7:1:19 | Exit | +| ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | After call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | After call to method | | 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 | -| ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | +| ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | Normal Exit | +| ArrayCreation.cs:3:11:3:12 | Entry | ArrayCreation.cs:3:19:3:28 | Before array creation of type Int32[] | +| ArrayCreation.cs:3:11:3:12 | Normal Exit | ArrayCreation.cs:3:11:3:12 | Exit | +| ArrayCreation.cs:3:19:3:28 | After array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | Normal Exit | +| ArrayCreation.cs:3:19:3:28 | Before array creation of type Int32[] | ArrayCreation.cs:3:27:3:27 | 0 | +| ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:19:3:28 | After array creation of type Int32[] | | ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | -| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:28:5:28 | 0 | -| ArrayCreation.cs:5:12:5:13 | exit M2 (normal) | ArrayCreation.cs:5:12:5:13 | exit M2 | -| ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | exit M2 (normal) | +| ArrayCreation.cs:5:12:5:13 | Entry | ArrayCreation.cs:5:20:5:32 | Before array creation of type Int32[,] | +| ArrayCreation.cs:5:12:5:13 | Normal Exit | ArrayCreation.cs:5:12:5:13 | Exit | +| ArrayCreation.cs:5:20:5:32 | After array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | Normal Exit | +| ArrayCreation.cs:5:20:5:32 | Before array creation of type Int32[,] | ArrayCreation.cs:5:28:5:28 | 0 | +| ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | ArrayCreation.cs:5:20:5:32 | After array creation of type Int32[,] | | ArrayCreation.cs:5:28:5:28 | 0 | ArrayCreation.cs:5:31:5:31 | 1 | | ArrayCreation.cs:5:31:5:31 | 1 | ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | -| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:19:7:36 | 2 | -| ArrayCreation.cs:7:11:7:12 | exit M3 (normal) | ArrayCreation.cs:7:11:7:12 | exit M3 | +| ArrayCreation.cs:7:11:7:12 | Entry | ArrayCreation.cs:7:19:7:36 | Before array creation of type Int32[] | +| ArrayCreation.cs:7:11:7:12 | Normal Exit | ArrayCreation.cs:7:11:7:12 | Exit | | ArrayCreation.cs:7:19:7:36 | 2 | ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | -| ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:31:7:31 | 0 | -| ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:11:7:12 | exit M3 (normal) | +| ArrayCreation.cs:7:19:7:36 | After array creation of type Int32[] | ArrayCreation.cs:7:11:7:12 | Normal Exit | +| ArrayCreation.cs:7:19:7:36 | Before array creation of type Int32[] | ArrayCreation.cs:7:29:7:36 | Before { ..., ... } | +| ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:19:7:36 | After array creation of type Int32[] | +| ArrayCreation.cs:7:29:7:36 | After { ..., ... } | ArrayCreation.cs:7:19:7:36 | 2 | +| ArrayCreation.cs:7:29:7:36 | Before { ..., ... } | ArrayCreation.cs:7:31:7:31 | 0 | +| ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:29:7:36 | After { ..., ... } | | ArrayCreation.cs:7:31:7:31 | 0 | ArrayCreation.cs:7:34:7:34 | 1 | | ArrayCreation.cs:7:34:7:34 | 1 | ArrayCreation.cs:7:29:7:36 | { ..., ... } | -| ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:20:9:52 | 2 | -| ArrayCreation.cs:9:12:9:13 | exit M4 (normal) | ArrayCreation.cs:9:12:9:13 | exit M4 | +| ArrayCreation.cs:9:12:9:13 | Entry | ArrayCreation.cs:9:20:9:52 | Before array creation of type Int32[,] | +| ArrayCreation.cs:9:12:9:13 | Normal Exit | ArrayCreation.cs:9:12:9:13 | Exit | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | 2 | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | -| ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:35:9:35 | 0 | -| ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:12:9:13 | exit M4 (normal) | -| ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:45:9:45 | 2 | +| ArrayCreation.cs:9:20:9:52 | After array creation of type Int32[,] | ArrayCreation.cs:9:12:9:13 | Normal Exit | +| ArrayCreation.cs:9:20:9:52 | Before array creation of type Int32[,] | ArrayCreation.cs:9:31:9:52 | Before { ..., ... } | +| ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:20:9:52 | After array creation of type Int32[,] | +| ArrayCreation.cs:9:31:9:52 | After { ..., ... } | ArrayCreation.cs:9:20:9:52 | 2 | +| ArrayCreation.cs:9:31:9:52 | Before { ..., ... } | ArrayCreation.cs:9:33:9:40 | Before { ..., ... } | +| ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:31:9:52 | After { ..., ... } | +| ArrayCreation.cs:9:33:9:40 | After { ..., ... } | ArrayCreation.cs:9:43:9:50 | Before { ..., ... } | +| ArrayCreation.cs:9:33:9:40 | Before { ..., ... } | ArrayCreation.cs:9:35:9:35 | 0 | +| ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:33:9:40 | After { ..., ... } | | ArrayCreation.cs:9:35:9:35 | 0 | ArrayCreation.cs:9:38:9:38 | 1 | | ArrayCreation.cs:9:38:9:38 | 1 | ArrayCreation.cs:9:33:9:40 | { ..., ... } | -| ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:31:9:52 | { ..., ... } | +| ArrayCreation.cs:9:43:9:50 | After { ..., ... } | ArrayCreation.cs:9:31:9:52 | { ..., ... } | +| ArrayCreation.cs:9:43:9:50 | Before { ..., ... } | ArrayCreation.cs:9:45:9:45 | 2 | +| ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:43:9:50 | After { ..., ... } | | 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 | 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 | After call to constructor Object | Assert.cs:5:7:5:17 | {...} | +| Assert.cs:5:7:5:17 | After call to method | Assert.cs:5:7:5:17 | Before call to constructor Object | +| Assert.cs:5:7:5:17 | Before call to constructor Object | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | Before call to method | Assert.cs:5:7:5:17 | this access | +| Assert.cs:5:7:5:17 | Entry | Assert.cs:5:7:5:17 | Before call to method | +| Assert.cs:5:7:5:17 | Normal Exit | Assert.cs:5:7:5:17 | Exit | +| Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | After call to constructor Object | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | After call to method | | 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:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | Normal Exit | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:8:5:12:5 | {...} | +| Assert.cs:8:5:12:5 | After {...} | Assert.cs:7:10:7:11 | Normal Exit | | Assert.cs:8:5:12:5 | {...} | Assert.cs:9:9:9:33 | ... ...; | -| Assert.cs:9:9:9:33 | ... ...; | Assert.cs:9:20:9:20 | access to parameter b | -| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:10:9:10:32 | ...; | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:24:9:27 | null | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:31:9:32 | "" | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:16:9:32 | String s = ... | -| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:7:10:7:11 | exit M1 (abnormal) | -| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:11:9:11:36 | ...; | -| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:22:10:22 | access to local variable s | +| Assert.cs:9:9:9:33 | ... ...; | Assert.cs:9:16:9:32 | Before String s = ... | +| Assert.cs:9:9:9:33 | After ... ...; | Assert.cs:10:9:10:32 | ...; | +| Assert.cs:9:16:9:16 | access to local variable s | Assert.cs:9:20:9:32 | ... ? ... : ... | +| Assert.cs:9:16:9:32 | After String s = ... | Assert.cs:9:9:9:33 | After ... ...; | +| Assert.cs:9:16:9:32 | Before String s = ... | Assert.cs:9:16:9:16 | access to local variable s | +| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:9:16:9:32 | After String s = ... | +| Assert.cs:9:20:9:20 | After access to parameter b [false] | Assert.cs:9:31:9:32 | "" | +| Assert.cs:9:20:9:20 | After access to parameter b [true] | Assert.cs:9:24:9:27 | null | +| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | After access to parameter b [false] | +| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | After access to parameter b [true] | +| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:20:9:20 | access to parameter b | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:16:9:32 | String s = ... | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:10:9:10:32 | After ...; | +| Assert.cs:10:9:10:31 | Before call to method Assert | Assert.cs:10:22:10:30 | Before ... != ... | +| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:7:10:7:11 | Exceptional Exit | +| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:9:10:31 | After call to method Assert | +| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:9:10:31 | Before call to method Assert | +| Assert.cs:10:9:10:32 | After ...; | Assert.cs:11:9:11:36 | ...; | | Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:27:10:30 | null | -| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:9:10:31 | call to method Assert | +| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:30 | After ... != ... | +| Assert.cs:10:22:10:30 | After ... != ... | Assert.cs:10:9:10:31 | call to method Assert | +| Assert.cs:10:22:10:30 | Before ... != ... | Assert.cs:10:22:10:22 | access to local variable s | | Assert.cs:10:27:10:30 | null | Assert.cs:10:22:10:30 | ... != ... | -| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:7:10:7:11 | exit M1 (normal) | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:27:11:27 | access to local variable s | +| Assert.cs:11:9:11:35 | After call to method WriteLine | Assert.cs:11:9:11:36 | After ...; | +| Assert.cs:11:9:11:35 | Before call to method WriteLine | Assert.cs:11:27:11:34 | Before access to property Length | +| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:11:9:11:35 | After call to method WriteLine | +| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:9:11:35 | Before call to method WriteLine | +| Assert.cs:11:9:11:36 | After ...; | Assert.cs:8:5:12:5 | After {...} | | Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:11:27:11:34 | access to property Length | -| Assert.cs:11:27:11:34 | access to property Length | Assert.cs:11:9:11:35 | call to method WriteLine | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:15:5:19:5 | {...} | +| Assert.cs:11:27:11:34 | After access to property Length | Assert.cs:11:9:11:35 | call to method WriteLine | +| Assert.cs:11:27:11:34 | Before access to property Length | Assert.cs:11:27:11:27 | access to local variable s | +| Assert.cs:11:27:11:34 | access to property Length | Assert.cs:11:27:11:34 | After access to property Length | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:15:5:19:5 | {...} | +| Assert.cs:15:5:19:5 | After {...} | Assert.cs:14:10:14:11 | Normal Exit | | Assert.cs:15:5:19:5 | {...} | Assert.cs:16:9:16:33 | ... ...; | -| Assert.cs:16:9:16:33 | ... ...; | Assert.cs:16:20:16:20 | access to parameter b | -| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:17:9:17:25 | ...; | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:24:16:27 | null | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:31:16:32 | "" | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:16:16:32 | String s = ... | -| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | -| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:18:9:18:36 | ...; | -| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:23:17:23 | access to local variable s | +| Assert.cs:16:9:16:33 | ... ...; | Assert.cs:16:16:16:32 | Before String s = ... | +| Assert.cs:16:9:16:33 | After ... ...; | Assert.cs:17:9:17:25 | ...; | +| Assert.cs:16:16:16:16 | access to local variable s | Assert.cs:16:20:16:32 | ... ? ... : ... | +| Assert.cs:16:16:16:32 | After String s = ... | Assert.cs:16:9:16:33 | After ... ...; | +| Assert.cs:16:16:16:32 | Before String s = ... | Assert.cs:16:16:16:16 | access to local variable s | +| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:16:16:16:32 | After String s = ... | +| Assert.cs:16:20:16:20 | After access to parameter b [false] | Assert.cs:16:31:16:32 | "" | +| Assert.cs:16:20:16:20 | After access to parameter b [true] | Assert.cs:16:24:16:27 | null | +| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | After access to parameter b [false] | +| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | After access to parameter b [true] | +| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:20:16:20 | access to parameter b | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:16:16:32 | String s = ... | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:17:9:17:25 | After ...; | +| Assert.cs:17:9:17:24 | Before call to method IsNull | Assert.cs:17:23:17:23 | access to local variable s | +| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:14:10:14:11 | Exceptional Exit | +| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:9:17:24 | After call to method IsNull | +| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:9:17:24 | Before call to method IsNull | +| Assert.cs:17:9:17:25 | After ...; | Assert.cs:18:9:18:36 | ...; | | Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | call to method IsNull | -| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:14:10:14:11 | exit M2 (normal) | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:27:18:27 | access to local variable s | +| Assert.cs:18:9:18:35 | After call to method WriteLine | Assert.cs:18:9:18:36 | After ...; | +| Assert.cs:18:9:18:35 | Before call to method WriteLine | Assert.cs:18:27:18:34 | Before access to property Length | +| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:18:9:18:35 | After call to method WriteLine | +| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:9:18:35 | Before call to method WriteLine | +| Assert.cs:18:9:18:36 | After ...; | Assert.cs:15:5:19:5 | After {...} | | Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:18:27:18:34 | access to property Length | -| Assert.cs:18:27:18:34 | access to property Length | Assert.cs:18:9:18:35 | call to method WriteLine | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:22:5:26:5 | {...} | +| Assert.cs:18:27:18:34 | After access to property Length | Assert.cs:18:9:18:35 | call to method WriteLine | +| Assert.cs:18:27:18:34 | Before access to property Length | Assert.cs:18:27:18:27 | access to local variable s | +| Assert.cs:18:27:18:34 | access to property Length | Assert.cs:18:27:18:34 | After access to property Length | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:22:5:26:5 | {...} | +| Assert.cs:22:5:26:5 | After {...} | Assert.cs:21:10:21:11 | Normal Exit | | Assert.cs:22:5:26:5 | {...} | Assert.cs:23:9:23:33 | ... ...; | -| Assert.cs:23:9:23:33 | ... ...; | Assert.cs:23:20:23:20 | access to parameter b | -| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:24:9:24:28 | ...; | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:24:23:27 | null | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:31:23:32 | "" | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:16:23:32 | String s = ... | -| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | -| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:25:9:25:36 | ...; | -| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:26:24:26 | access to local variable s | +| Assert.cs:23:9:23:33 | ... ...; | Assert.cs:23:16:23:32 | Before String s = ... | +| Assert.cs:23:9:23:33 | After ... ...; | Assert.cs:24:9:24:28 | ...; | +| Assert.cs:23:16:23:16 | access to local variable s | Assert.cs:23:20:23:32 | ... ? ... : ... | +| Assert.cs:23:16:23:32 | After String s = ... | Assert.cs:23:9:23:33 | After ... ...; | +| Assert.cs:23:16:23:32 | Before String s = ... | Assert.cs:23:16:23:16 | access to local variable s | +| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:23:16:23:32 | After String s = ... | +| Assert.cs:23:20:23:20 | After access to parameter b [false] | Assert.cs:23:31:23:32 | "" | +| Assert.cs:23:20:23:20 | After access to parameter b [true] | Assert.cs:23:24:23:27 | null | +| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | After access to parameter b [false] | +| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | After access to parameter b [true] | +| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:20:23:20 | access to parameter b | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:16:23:32 | String s = ... | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:24:9:24:28 | After ...; | +| Assert.cs:24:9:24:27 | Before call to method IsNotNull | Assert.cs:24:26:24:26 | access to local variable s | +| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:21:10:21:11 | Exceptional Exit | +| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:9:24:27 | After call to method IsNotNull | +| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:9:24:27 | Before call to method IsNotNull | +| Assert.cs:24:9:24:28 | After ...; | Assert.cs:25:9:25:36 | ...; | | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | call to method IsNotNull | -| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:21:10:21:11 | exit M3 (normal) | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:27:25:27 | access to local variable s | +| Assert.cs:25:9:25:35 | After call to method WriteLine | Assert.cs:25:9:25:36 | After ...; | +| Assert.cs:25:9:25:35 | Before call to method WriteLine | Assert.cs:25:27:25:34 | Before access to property Length | +| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:25:9:25:35 | After call to method WriteLine | +| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:9:25:35 | Before call to method WriteLine | +| Assert.cs:25:9:25:36 | After ...; | Assert.cs:22:5:26:5 | After {...} | | Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:25:27:25:34 | access to property Length | -| Assert.cs:25:27:25:34 | access to property Length | Assert.cs:25:9:25:35 | call to method WriteLine | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:29:5:33:5 | {...} | +| Assert.cs:25:27:25:34 | After access to property Length | Assert.cs:25:9:25:35 | call to method WriteLine | +| Assert.cs:25:27:25:34 | Before access to property Length | Assert.cs:25:27:25:27 | access to local variable s | +| Assert.cs:25:27:25:34 | access to property Length | Assert.cs:25:27:25:34 | After access to property Length | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:29:5:33:5 | {...} | +| Assert.cs:29:5:33:5 | After {...} | Assert.cs:28:10:28:11 | Normal Exit | | Assert.cs:29:5:33:5 | {...} | Assert.cs:30:9:30:33 | ... ...; | -| Assert.cs:30:9:30:33 | ... ...; | Assert.cs:30:20:30:20 | access to parameter b | -| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:31:9:31:33 | ...; | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:24:30:27 | null | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:31:30:32 | "" | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:16:30:32 | String s = ... | -| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | -| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:32:9:32:36 | ...; | -| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:23:31:23 | access to local variable s | +| Assert.cs:30:9:30:33 | ... ...; | Assert.cs:30:16:30:32 | Before String s = ... | +| Assert.cs:30:9:30:33 | After ... ...; | Assert.cs:31:9:31:33 | ...; | +| Assert.cs:30:16:30:16 | access to local variable s | Assert.cs:30:20:30:32 | ... ? ... : ... | +| Assert.cs:30:16:30:32 | After String s = ... | Assert.cs:30:9:30:33 | After ... ...; | +| Assert.cs:30:16:30:32 | Before String s = ... | Assert.cs:30:16:30:16 | access to local variable s | +| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:30:16:30:32 | After String s = ... | +| Assert.cs:30:20:30:20 | After access to parameter b [false] | Assert.cs:30:31:30:32 | "" | +| Assert.cs:30:20:30:20 | After access to parameter b [true] | Assert.cs:30:24:30:27 | null | +| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | After access to parameter b [false] | +| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | After access to parameter b [true] | +| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:20:30:20 | access to parameter b | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:16:30:32 | String s = ... | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:31:9:31:33 | After ...; | +| Assert.cs:31:9:31:32 | Before call to method IsTrue | Assert.cs:31:23:31:31 | Before ... == ... | +| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:28:10:28:11 | Exceptional Exit | +| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:9:31:32 | After call to method IsTrue | +| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:9:31:32 | Before call to method IsTrue | +| Assert.cs:31:9:31:33 | After ...; | Assert.cs:32:9:32:36 | ...; | | Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:28:31:31 | null | -| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:9:31:32 | call to method IsTrue | +| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:31 | After ... == ... | +| Assert.cs:31:23:31:31 | After ... == ... | Assert.cs:31:9:31:32 | call to method IsTrue | +| Assert.cs:31:23:31:31 | Before ... == ... | Assert.cs:31:23:31:23 | access to local variable s | | Assert.cs:31:28:31:31 | null | Assert.cs:31:23:31:31 | ... == ... | -| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:28:10:28:11 | exit M4 (normal) | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:27:32:27 | access to local variable s | +| Assert.cs:32:9:32:35 | After call to method WriteLine | Assert.cs:32:9:32:36 | After ...; | +| Assert.cs:32:9:32:35 | Before call to method WriteLine | Assert.cs:32:27:32:34 | Before access to property Length | +| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:32:9:32:35 | After call to method WriteLine | +| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:9:32:35 | Before call to method WriteLine | +| Assert.cs:32:9:32:36 | After ...; | Assert.cs:29:5:33:5 | After {...} | | Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:32:27:32:34 | access to property Length | -| Assert.cs:32:27:32:34 | access to property Length | Assert.cs:32:9:32:35 | call to method WriteLine | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:36:5:40:5 | {...} | +| Assert.cs:32:27:32:34 | After access to property Length | Assert.cs:32:9:32:35 | call to method WriteLine | +| Assert.cs:32:27:32:34 | Before access to property Length | Assert.cs:32:27:32:27 | access to local variable s | +| Assert.cs:32:27:32:34 | access to property Length | Assert.cs:32:27:32:34 | After access to property Length | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:36:5:40:5 | {...} | +| Assert.cs:36:5:40:5 | After {...} | Assert.cs:35:10:35:11 | Normal Exit | | Assert.cs:36:5:40:5 | {...} | Assert.cs:37:9:37:33 | ... ...; | -| Assert.cs:37:9:37:33 | ... ...; | Assert.cs:37:20:37:20 | access to parameter b | -| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:38:9:38:33 | ...; | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:24:37:27 | null | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:31:37:32 | "" | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:16:37:32 | String s = ... | -| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | -| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:39:9:39:36 | ...; | -| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:23:38:23 | access to local variable s | +| Assert.cs:37:9:37:33 | ... ...; | Assert.cs:37:16:37:32 | Before String s = ... | +| Assert.cs:37:9:37:33 | After ... ...; | Assert.cs:38:9:38:33 | ...; | +| Assert.cs:37:16:37:16 | access to local variable s | Assert.cs:37:20:37:32 | ... ? ... : ... | +| Assert.cs:37:16:37:32 | After String s = ... | Assert.cs:37:9:37:33 | After ... ...; | +| Assert.cs:37:16:37:32 | Before String s = ... | Assert.cs:37:16:37:16 | access to local variable s | +| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:37:16:37:32 | After String s = ... | +| Assert.cs:37:20:37:20 | After access to parameter b [false] | Assert.cs:37:31:37:32 | "" | +| Assert.cs:37:20:37:20 | After access to parameter b [true] | Assert.cs:37:24:37:27 | null | +| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | After access to parameter b [false] | +| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | After access to parameter b [true] | +| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:20:37:20 | access to parameter b | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:16:37:32 | String s = ... | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:38:9:38:33 | After ...; | +| Assert.cs:38:9:38:32 | Before call to method IsTrue | Assert.cs:38:23:38:31 | Before ... != ... | +| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:35:10:35:11 | Exceptional Exit | +| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:9:38:32 | After call to method IsTrue | +| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:9:38:32 | Before call to method IsTrue | +| Assert.cs:38:9:38:33 | After ...; | Assert.cs:39:9:39:36 | ...; | | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:28:38:31 | null | -| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:9:38:32 | call to method IsTrue | +| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:31 | After ... != ... | +| Assert.cs:38:23:38:31 | After ... != ... | Assert.cs:38:9:38:32 | call to method IsTrue | +| Assert.cs:38:23:38:31 | Before ... != ... | Assert.cs:38:23:38:23 | access to local variable s | | Assert.cs:38:28:38:31 | null | Assert.cs:38:23:38:31 | ... != ... | -| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:35:10:35:11 | exit M5 (normal) | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:27:39:27 | access to local variable s | +| Assert.cs:39:9:39:35 | After call to method WriteLine | Assert.cs:39:9:39:36 | After ...; | +| Assert.cs:39:9:39:35 | Before call to method WriteLine | Assert.cs:39:27:39:34 | Before access to property Length | +| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:39:9:39:35 | After call to method WriteLine | +| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:9:39:35 | Before call to method WriteLine | +| Assert.cs:39:9:39:36 | After ...; | Assert.cs:36:5:40:5 | After {...} | | Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:39:27:39:34 | access to property Length | -| Assert.cs:39:27:39:34 | access to property Length | Assert.cs:39:9:39:35 | call to method WriteLine | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:43:5:47:5 | {...} | +| Assert.cs:39:27:39:34 | After access to property Length | Assert.cs:39:9:39:35 | call to method WriteLine | +| Assert.cs:39:27:39:34 | Before access to property Length | Assert.cs:39:27:39:27 | access to local variable s | +| Assert.cs:39:27:39:34 | access to property Length | Assert.cs:39:27:39:34 | After access to property Length | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:43:5:47:5 | {...} | +| Assert.cs:43:5:47:5 | After {...} | Assert.cs:42:10:42:11 | Normal Exit | | Assert.cs:43:5:47:5 | {...} | Assert.cs:44:9:44:33 | ... ...; | -| Assert.cs:44:9:44:33 | ... ...; | Assert.cs:44:20:44:20 | access to parameter b | -| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:45:9:45:34 | ...; | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:24:44:27 | null | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:31:44:32 | "" | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:16:44:32 | String s = ... | -| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | -| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:46:9:46:36 | ...; | -| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:24:45:24 | access to local variable s | +| Assert.cs:44:9:44:33 | ... ...; | Assert.cs:44:16:44:32 | Before String s = ... | +| Assert.cs:44:9:44:33 | After ... ...; | Assert.cs:45:9:45:34 | ...; | +| Assert.cs:44:16:44:16 | access to local variable s | Assert.cs:44:20:44:32 | ... ? ... : ... | +| Assert.cs:44:16:44:32 | After String s = ... | Assert.cs:44:9:44:33 | After ... ...; | +| Assert.cs:44:16:44:32 | Before String s = ... | Assert.cs:44:16:44:16 | access to local variable s | +| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:44:16:44:32 | After String s = ... | +| Assert.cs:44:20:44:20 | After access to parameter b [false] | Assert.cs:44:31:44:32 | "" | +| Assert.cs:44:20:44:20 | After access to parameter b [true] | Assert.cs:44:24:44:27 | null | +| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | After access to parameter b [false] | +| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | After access to parameter b [true] | +| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:20:44:20 | access to parameter b | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:16:44:32 | String s = ... | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:45:9:45:34 | After ...; | +| Assert.cs:45:9:45:33 | Before call to method IsFalse | Assert.cs:45:24:45:32 | Before ... != ... | +| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:42:10:42:11 | Exceptional Exit | +| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:9:45:33 | After call to method IsFalse | +| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:9:45:33 | Before call to method IsFalse | +| Assert.cs:45:9:45:34 | After ...; | Assert.cs:46:9:46:36 | ...; | | Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:29:45:32 | null | -| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:9:45:33 | call to method IsFalse | +| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:32 | After ... != ... | +| Assert.cs:45:24:45:32 | After ... != ... | Assert.cs:45:9:45:33 | call to method IsFalse | +| Assert.cs:45:24:45:32 | Before ... != ... | Assert.cs:45:24:45:24 | access to local variable s | | Assert.cs:45:29:45:32 | null | Assert.cs:45:24:45:32 | ... != ... | -| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:42:10:42:11 | exit M6 (normal) | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:27:46:27 | access to local variable s | +| Assert.cs:46:9:46:35 | After call to method WriteLine | Assert.cs:46:9:46:36 | After ...; | +| Assert.cs:46:9:46:35 | Before call to method WriteLine | Assert.cs:46:27:46:34 | Before access to property Length | +| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:46:9:46:35 | After call to method WriteLine | +| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:9:46:35 | Before call to method WriteLine | +| Assert.cs:46:9:46:36 | After ...; | Assert.cs:43:5:47:5 | After {...} | | Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:46:27:46:34 | access to property Length | -| Assert.cs:46:27:46:34 | access to property Length | Assert.cs:46:9:46:35 | call to method WriteLine | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:50:5:54:5 | {...} | +| Assert.cs:46:27:46:34 | After access to property Length | Assert.cs:46:9:46:35 | call to method WriteLine | +| Assert.cs:46:27:46:34 | Before access to property Length | Assert.cs:46:27:46:27 | access to local variable s | +| Assert.cs:46:27:46:34 | access to property Length | Assert.cs:46:27:46:34 | After access to property Length | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:50:5:54:5 | {...} | +| Assert.cs:50:5:54:5 | After {...} | Assert.cs:49:10:49:11 | Normal Exit | | Assert.cs:50:5:54:5 | {...} | Assert.cs:51:9:51:33 | ... ...; | -| Assert.cs:51:9:51:33 | ... ...; | Assert.cs:51:20:51:20 | access to parameter b | -| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:52:9:52:34 | ...; | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:24:51:27 | null | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:31:51:32 | "" | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:16:51:32 | String s = ... | -| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | -| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:53:9:53:36 | ...; | -| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:24:52:24 | access to local variable s | +| Assert.cs:51:9:51:33 | ... ...; | Assert.cs:51:16:51:32 | Before String s = ... | +| Assert.cs:51:9:51:33 | After ... ...; | Assert.cs:52:9:52:34 | ...; | +| Assert.cs:51:16:51:16 | access to local variable s | Assert.cs:51:20:51:32 | ... ? ... : ... | +| Assert.cs:51:16:51:32 | After String s = ... | Assert.cs:51:9:51:33 | After ... ...; | +| Assert.cs:51:16:51:32 | Before String s = ... | Assert.cs:51:16:51:16 | access to local variable s | +| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:51:16:51:32 | After String s = ... | +| Assert.cs:51:20:51:20 | After access to parameter b [false] | Assert.cs:51:31:51:32 | "" | +| Assert.cs:51:20:51:20 | After access to parameter b [true] | Assert.cs:51:24:51:27 | null | +| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | After access to parameter b [false] | +| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | After access to parameter b [true] | +| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:20:51:20 | access to parameter b | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:16:51:32 | String s = ... | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:52:9:52:34 | After ...; | +| Assert.cs:52:9:52:33 | Before call to method IsFalse | Assert.cs:52:24:52:32 | Before ... == ... | +| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:49:10:49:11 | Exceptional Exit | +| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:9:52:33 | After call to method IsFalse | +| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:9:52:33 | Before call to method IsFalse | +| Assert.cs:52:9:52:34 | After ...; | Assert.cs:53:9:53:36 | ...; | | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:29:52:32 | null | -| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | call to method IsFalse | +| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:32 | After ... == ... | +| Assert.cs:52:24:52:32 | After ... == ... | Assert.cs:52:9:52:33 | call to method IsFalse | +| Assert.cs:52:24:52:32 | Before ... == ... | Assert.cs:52:24:52:24 | access to local variable s | | Assert.cs:52:29:52:32 | null | Assert.cs:52:24:52:32 | ... == ... | -| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:49:10:49:11 | exit M7 (normal) | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:27:53:27 | access to local variable s | +| Assert.cs:53:9:53:35 | After call to method WriteLine | Assert.cs:53:9:53:36 | After ...; | +| Assert.cs:53:9:53:35 | Before call to method WriteLine | Assert.cs:53:27:53:34 | Before access to property Length | +| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:53:9:53:35 | After call to method WriteLine | +| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:9:53:35 | Before call to method WriteLine | +| Assert.cs:53:9:53:36 | After ...; | Assert.cs:50:5:54:5 | After {...} | | Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:53:27:53:34 | access to property Length | -| Assert.cs:53:27:53:34 | access to property Length | Assert.cs:53:9:53:35 | call to method WriteLine | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:57:5:61:5 | {...} | +| Assert.cs:53:27:53:34 | After access to property Length | Assert.cs:53:9:53:35 | call to method WriteLine | +| Assert.cs:53:27:53:34 | Before access to property Length | Assert.cs:53:27:53:27 | access to local variable s | +| Assert.cs:53:27:53:34 | access to property Length | Assert.cs:53:27:53:34 | After access to property Length | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:57:5:61:5 | {...} | +| Assert.cs:57:5:61:5 | After {...} | Assert.cs:56:10:56:11 | Normal Exit | | Assert.cs:57:5:61:5 | {...} | Assert.cs:58:9:58:33 | ... ...; | -| Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:20:58:20 | access to parameter b | -| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:59:9:59:38 | ...; | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | null | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | "" | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:16:58:32 | String s = ... | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:60:9:60:36 | ...; | -| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:23:59:23 | access to local variable s | +| Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:16:58:32 | Before String s = ... | +| Assert.cs:58:9:58:33 | After ... ...; | Assert.cs:59:9:59:38 | ...; | +| Assert.cs:58:16:58:16 | access to local variable s | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:58:16:58:32 | After String s = ... | Assert.cs:58:9:58:33 | After ... ...; | +| Assert.cs:58:16:58:32 | Before String s = ... | Assert.cs:58:16:58:16 | access to local variable s | +| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:16:58:32 | After String s = ... | +| Assert.cs:58:20:58:20 | After access to parameter b [false] | Assert.cs:58:31:58:32 | "" | +| Assert.cs:58:20:58:20 | After access to parameter b [true] | Assert.cs:58:24:58:27 | null | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:16:58:32 | String s = ... | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:9:59:38 | After ...; | +| Assert.cs:59:9:59:37 | Before call to method IsTrue | Assert.cs:59:23:59:36 | ... && ... | +| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | Exceptional Exit | +| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:9:59:37 | After call to method IsTrue | +| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:9:59:37 | Before call to method IsTrue | +| Assert.cs:59:9:59:38 | After ...; | Assert.cs:60:9:60:36 | ...; | | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:28:59:31 | null | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | ... && ... | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:59:23:59:31 | After ... != ... [true] | Assert.cs:59:36:59:36 | access to parameter b | +| Assert.cs:59:23:59:31 | Before ... != ... | Assert.cs:59:23:59:23 | access to local variable s | +| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:31 | Before ... != ... | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | | Assert.cs:59:28:59:31 | null | Assert.cs:59:23:59:31 | ... != ... | -| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | exit M8 (normal) | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:27:60:27 | access to local variable s | +| Assert.cs:60:9:60:35 | After call to method WriteLine | Assert.cs:60:9:60:36 | After ...; | +| Assert.cs:60:9:60:35 | Before call to method WriteLine | Assert.cs:60:27:60:34 | Before access to property Length | +| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:9:60:35 | After call to method WriteLine | +| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:9:60:35 | Before call to method WriteLine | +| Assert.cs:60:9:60:36 | After ...; | Assert.cs:57:5:61:5 | After {...} | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:34 | access to property Length | -| Assert.cs:60:27:60:34 | access to property Length | Assert.cs:60:9:60:35 | call to method WriteLine | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:64:5:68:5 | {...} | +| Assert.cs:60:27:60:34 | After access to property Length | Assert.cs:60:9:60:35 | call to method WriteLine | +| Assert.cs:60:27:60:34 | Before access to property Length | Assert.cs:60:27:60:27 | access to local variable s | +| Assert.cs:60:27:60:34 | access to property Length | Assert.cs:60:27:60:34 | After access to property Length | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:64:5:68:5 | {...} | +| Assert.cs:64:5:68:5 | After {...} | Assert.cs:63:10:63:11 | Normal Exit | | Assert.cs:64:5:68:5 | {...} | Assert.cs:65:9:65:33 | ... ...; | -| Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:20:65:20 | access to parameter b | -| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:66:9:66:39 | ...; | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | null | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | "" | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:16:65:32 | String s = ... | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:67:9:67:36 | ...; | -| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:24:66:24 | access to local variable s | +| Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:16:65:32 | Before String s = ... | +| Assert.cs:65:9:65:33 | After ... ...; | Assert.cs:66:9:66:39 | ...; | +| Assert.cs:65:16:65:16 | access to local variable s | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:65:16:65:32 | After String s = ... | Assert.cs:65:9:65:33 | After ... ...; | +| Assert.cs:65:16:65:32 | Before String s = ... | Assert.cs:65:16:65:16 | access to local variable s | +| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:16:65:32 | After String s = ... | +| Assert.cs:65:20:65:20 | After access to parameter b [false] | Assert.cs:65:31:65:32 | "" | +| Assert.cs:65:20:65:20 | After access to parameter b [true] | Assert.cs:65:24:65:27 | null | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:16:65:32 | String s = ... | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:9:66:39 | After ...; | +| Assert.cs:66:9:66:38 | Before call to method IsFalse | Assert.cs:66:24:66:37 | ... \|\| ... | +| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | Exceptional Exit | +| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:9:66:38 | After call to method IsFalse | +| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:9:66:38 | Before call to method IsFalse | +| Assert.cs:66:9:66:39 | After ...; | Assert.cs:67:9:67:36 | ...; | | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:29:66:32 | null | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | ... \|\| ... | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:66:24:66:32 | After ... == ... [false] | Assert.cs:66:37:66:37 | access to parameter b | +| Assert.cs:66:24:66:32 | Before ... == ... | Assert.cs:66:24:66:24 | access to local variable s | +| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:32 | Before ... == ... | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | | Assert.cs:66:29:66:32 | null | Assert.cs:66:24:66:32 | ... == ... | -| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | exit M9 (normal) | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:27:67:27 | access to local variable s | +| Assert.cs:67:9:67:35 | After call to method WriteLine | Assert.cs:67:9:67:36 | After ...; | +| Assert.cs:67:9:67:35 | Before call to method WriteLine | Assert.cs:67:27:67:34 | Before access to property Length | +| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:9:67:35 | After call to method WriteLine | +| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:9:67:35 | Before call to method WriteLine | +| Assert.cs:67:9:67:36 | After ...; | Assert.cs:64:5:68:5 | After {...} | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:34 | access to property Length | -| Assert.cs:67:27:67:34 | access to property Length | Assert.cs:67:9:67:35 | call to method WriteLine | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:71:5:75:5 | {...} | +| Assert.cs:67:27:67:34 | After access to property Length | Assert.cs:67:9:67:35 | call to method WriteLine | +| Assert.cs:67:27:67:34 | Before access to property Length | Assert.cs:67:27:67:27 | access to local variable s | +| Assert.cs:67:27:67:34 | access to property Length | Assert.cs:67:27:67:34 | After access to property Length | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:71:5:75:5 | {...} | +| Assert.cs:71:5:75:5 | After {...} | Assert.cs:70:10:70:12 | Normal Exit | | Assert.cs:71:5:75:5 | {...} | Assert.cs:72:9:72:33 | ... ...; | -| Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:20:72:20 | access to parameter b | -| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:73:9:73:38 | ...; | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | null | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | "" | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:16:72:32 | String s = ... | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:74:9:74:36 | ...; | -| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:23:73:23 | access to local variable s | +| Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:16:72:32 | Before String s = ... | +| Assert.cs:72:9:72:33 | After ... ...; | Assert.cs:73:9:73:38 | ...; | +| Assert.cs:72:16:72:16 | access to local variable s | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:72:16:72:32 | After String s = ... | Assert.cs:72:9:72:33 | After ... ...; | +| Assert.cs:72:16:72:32 | Before String s = ... | Assert.cs:72:16:72:16 | access to local variable s | +| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:16:72:32 | After String s = ... | +| Assert.cs:72:20:72:20 | After access to parameter b [false] | Assert.cs:72:31:72:32 | "" | +| Assert.cs:72:20:72:20 | After access to parameter b [true] | Assert.cs:72:24:72:27 | null | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:16:72:32 | String s = ... | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:9:73:38 | After ...; | +| Assert.cs:73:9:73:37 | Before call to method IsTrue | Assert.cs:73:23:73:36 | ... && ... | +| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | Exceptional Exit | +| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:9:73:37 | After call to method IsTrue | +| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:9:73:37 | Before call to method IsTrue | +| Assert.cs:73:9:73:38 | After ...; | Assert.cs:74:9:74:36 | ...; | | Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:28:73:31 | null | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | ... && ... | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:73:23:73:31 | After ... == ... [true] | Assert.cs:73:36:73:36 | access to parameter b | +| Assert.cs:73:23:73:31 | Before ... == ... | Assert.cs:73:23:73:23 | access to local variable s | +| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:31 | Before ... == ... | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | | Assert.cs:73:28:73:31 | null | Assert.cs:73:23:73:31 | ... == ... | -| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | exit M10 (normal) | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:27:74:27 | access to local variable s | +| Assert.cs:74:9:74:35 | After call to method WriteLine | Assert.cs:74:9:74:36 | After ...; | +| Assert.cs:74:9:74:35 | Before call to method WriteLine | Assert.cs:74:27:74:34 | Before access to property Length | +| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:9:74:35 | After call to method WriteLine | +| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:9:74:35 | Before call to method WriteLine | +| Assert.cs:74:9:74:36 | After ...; | Assert.cs:71:5:75:5 | After {...} | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:34 | access to property Length | -| Assert.cs:74:27:74:34 | access to property Length | Assert.cs:74:9:74:35 | call to method WriteLine | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:78:5:82:5 | {...} | +| Assert.cs:74:27:74:34 | After access to property Length | Assert.cs:74:9:74:35 | call to method WriteLine | +| Assert.cs:74:27:74:34 | Before access to property Length | Assert.cs:74:27:74:27 | access to local variable s | +| Assert.cs:74:27:74:34 | access to property Length | Assert.cs:74:27:74:34 | After access to property Length | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:78:5:82:5 | {...} | +| Assert.cs:78:5:82:5 | After {...} | Assert.cs:77:10:77:12 | Normal Exit | | Assert.cs:78:5:82:5 | {...} | Assert.cs:79:9:79:33 | ... ...; | -| Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:20:79:20 | access to parameter b | -| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:80:9:80:39 | ...; | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | null | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | "" | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:16:79:32 | String s = ... | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:81:9:81:36 | ...; | -| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:24:80:24 | access to local variable s | +| Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:16:79:32 | Before String s = ... | +| Assert.cs:79:9:79:33 | After ... ...; | Assert.cs:80:9:80:39 | ...; | +| Assert.cs:79:16:79:16 | access to local variable s | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:79:16:79:32 | After String s = ... | Assert.cs:79:9:79:33 | After ... ...; | +| Assert.cs:79:16:79:32 | Before String s = ... | Assert.cs:79:16:79:16 | access to local variable s | +| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:16:79:32 | After String s = ... | +| Assert.cs:79:20:79:20 | After access to parameter b [false] | Assert.cs:79:31:79:32 | "" | +| Assert.cs:79:20:79:20 | After access to parameter b [true] | Assert.cs:79:24:79:27 | null | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:16:79:32 | String s = ... | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:9:80:39 | After ...; | +| Assert.cs:80:9:80:38 | Before call to method IsFalse | Assert.cs:80:24:80:37 | ... \|\| ... | +| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | Exceptional Exit | +| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:9:80:38 | After call to method IsFalse | +| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:9:80:38 | Before call to method IsFalse | +| Assert.cs:80:9:80:39 | After ...; | Assert.cs:81:9:81:36 | ...; | | Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:29:80:32 | null | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | ... \|\| ... | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:80:24:80:32 | After ... != ... [false] | Assert.cs:80:37:80:37 | access to parameter b | +| Assert.cs:80:24:80:32 | Before ... != ... | Assert.cs:80:24:80:24 | access to local variable s | +| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:32 | Before ... != ... | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | | Assert.cs:80:29:80:32 | null | Assert.cs:80:24:80:32 | ... != ... | -| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | exit M11 (normal) | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:27:81:27 | access to local variable s | +| Assert.cs:81:9:81:35 | After call to method WriteLine | Assert.cs:81:9:81:36 | After ...; | +| Assert.cs:81:9:81:35 | Before call to method WriteLine | Assert.cs:81:27:81:34 | Before access to property Length | +| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:9:81:35 | After call to method WriteLine | +| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:9:81:35 | Before call to method WriteLine | +| Assert.cs:81:9:81:36 | After ...; | Assert.cs:78:5:82:5 | After {...} | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:34 | access to property Length | -| Assert.cs:81:27:81:34 | access to property Length | Assert.cs:81:9:81:35 | call to method WriteLine | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:85:5:129:5 | {...} | +| Assert.cs:81:27:81:34 | After access to property Length | Assert.cs:81:9:81:35 | call to method WriteLine | +| Assert.cs:81:27:81:34 | Before access to property Length | Assert.cs:81:27:81:27 | access to local variable s | +| Assert.cs:81:27:81:34 | access to property Length | Assert.cs:81:27:81:34 | After access to property Length | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:85:5:129:5 | {...} | +| Assert.cs:85:5:129:5 | After {...} | Assert.cs:84:10:84:12 | Normal Exit | | Assert.cs:85:5:129:5 | {...} | Assert.cs:86:9:86:33 | ... ...; | -| Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:20:86:20 | access to parameter b | -| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:87:9:87:32 | ...; | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | null | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:16:86:32 | String s = ... | -| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:22:87:22 | access to local variable s | +| Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:16:86:32 | Before String s = ... | +| Assert.cs:86:9:86:33 | After ... ...; | Assert.cs:87:9:87:32 | ...; | +| Assert.cs:86:16:86:16 | access to local variable s | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:86:16:86:32 | After String s = ... | Assert.cs:86:9:86:33 | After ... ...; | +| Assert.cs:86:16:86:32 | Before String s = ... | Assert.cs:86:16:86:16 | access to local variable s | +| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:16:86:32 | After String s = ... | +| Assert.cs:86:20:86:20 | After access to parameter b [false] | Assert.cs:86:31:86:32 | "" | +| Assert.cs:86:20:86:20 | After access to parameter b [true] | Assert.cs:86:24:86:27 | null | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:20 | access to parameter b | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:16:86:32 | String s = ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:87:9:87:32 | After ...; | +| Assert.cs:87:9:87:31 | Before call to method Assert | Assert.cs:87:22:87:30 | Before ... != ... | +| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:84:10:84:12 | Exceptional Exit | +| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:9:87:31 | Before call to method Assert | +| Assert.cs:87:9:87:32 | After ...; | Assert.cs:88:9:88:36 | ...; | | Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:27:87:30 | null | -| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | call to method Assert | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:22:87:30 | After ... != ... | +| Assert.cs:87:22:87:30 | After ... != ... | Assert.cs:87:9:87:31 | call to method Assert | +| Assert.cs:87:22:87:30 | Before ... != ... | Assert.cs:87:22:87:22 | access to local variable s | | Assert.cs:87:27:87:30 | null | Assert.cs:87:22:87:30 | ... != ... | -| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:90:9:90:26 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:27:88:27 | access to local variable s | +| Assert.cs:88:9:88:35 | After call to method WriteLine | Assert.cs:88:9:88:36 | After ...; | +| Assert.cs:88:9:88:35 | Before call to method WriteLine | Assert.cs:88:27:88:34 | Before access to property Length | +| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:88:9:88:35 | After call to method WriteLine | +| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:9:88:35 | Before call to method WriteLine | +| Assert.cs:88:9:88:36 | After ...; | Assert.cs:90:9:90:26 | ...; | | Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:27:88:34 | access to property Length | -| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:9:88:35 | call to method WriteLine | -| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:91:9:91:25 | ...; | -| Assert.cs:90:9:90:26 | ...; | Assert.cs:90:13:90:13 | access to parameter b | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:17:90:20 | null | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:24:90:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:9:90:25 | ... = ... | -| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:23:91:23 | access to local variable s | +| Assert.cs:88:27:88:34 | After access to property Length | Assert.cs:88:9:88:35 | call to method WriteLine | +| Assert.cs:88:27:88:34 | Before access to property Length | Assert.cs:88:27:88:27 | access to local variable s | +| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:27:88:34 | After access to property Length | +| Assert.cs:90:9:90:9 | access to local variable s | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:9:90:25 | After ... = ... | +| Assert.cs:90:9:90:25 | After ... = ... | Assert.cs:90:9:90:26 | After ...; | +| Assert.cs:90:9:90:25 | Before ... = ... | Assert.cs:90:9:90:9 | access to local variable s | +| Assert.cs:90:9:90:26 | ...; | Assert.cs:90:9:90:25 | Before ... = ... | +| Assert.cs:90:9:90:26 | After ...; | Assert.cs:91:9:91:25 | ...; | +| Assert.cs:90:13:90:13 | After access to parameter b [false] | Assert.cs:90:24:90:25 | "" | +| Assert.cs:90:13:90:13 | After access to parameter b [true] | Assert.cs:90:17:90:20 | null | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:13 | access to parameter b | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:9:90:25 | ... = ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:91:9:91:25 | After ...; | +| Assert.cs:91:9:91:24 | Before call to method IsNull | Assert.cs:91:23:91:23 | access to local variable s | +| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:9:91:24 | Before call to method IsNull | +| Assert.cs:91:9:91:25 | After ...; | Assert.cs:92:9:92:36 | ...; | | Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | call to method IsNull | -| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:94:9:94:26 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:27:92:27 | access to local variable s | +| Assert.cs:92:9:92:35 | After call to method WriteLine | Assert.cs:92:9:92:36 | After ...; | +| Assert.cs:92:9:92:35 | Before call to method WriteLine | Assert.cs:92:27:92:34 | Before access to property Length | +| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:92:9:92:35 | After call to method WriteLine | +| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:9:92:35 | Before call to method WriteLine | +| Assert.cs:92:9:92:36 | After ...; | Assert.cs:94:9:94:26 | ...; | | Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:34 | access to property Length | -| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:9:92:35 | call to method WriteLine | -| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:95:9:95:28 | ...; | -| Assert.cs:94:9:94:26 | ...; | Assert.cs:94:13:94:13 | access to parameter b | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:17:94:20 | null | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:24:94:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:9:94:25 | ... = ... | -| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:26:95:26 | access to local variable s | +| Assert.cs:92:27:92:34 | After access to property Length | Assert.cs:92:9:92:35 | call to method WriteLine | +| Assert.cs:92:27:92:34 | Before access to property Length | Assert.cs:92:27:92:27 | access to local variable s | +| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:27:92:34 | After access to property Length | +| Assert.cs:94:9:94:9 | access to local variable s | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:9:94:25 | After ... = ... | +| Assert.cs:94:9:94:25 | After ... = ... | Assert.cs:94:9:94:26 | After ...; | +| Assert.cs:94:9:94:25 | Before ... = ... | Assert.cs:94:9:94:9 | access to local variable s | +| Assert.cs:94:9:94:26 | ...; | Assert.cs:94:9:94:25 | Before ... = ... | +| Assert.cs:94:9:94:26 | After ...; | Assert.cs:95:9:95:28 | ...; | +| Assert.cs:94:13:94:13 | After access to parameter b [false] | Assert.cs:94:24:94:25 | "" | +| Assert.cs:94:13:94:13 | After access to parameter b [true] | Assert.cs:94:17:94:20 | null | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:13 | access to parameter b | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:9:94:25 | ... = ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:95:9:95:28 | After ...; | +| Assert.cs:95:9:95:27 | Before call to method IsNotNull | Assert.cs:95:26:95:26 | access to local variable s | +| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:9:95:27 | Before call to method IsNotNull | +| Assert.cs:95:9:95:28 | After ...; | Assert.cs:96:9:96:36 | ...; | | Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | call to method IsNotNull | -| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:98:9:98:26 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:27:96:27 | access to local variable s | +| Assert.cs:96:9:96:35 | After call to method WriteLine | Assert.cs:96:9:96:36 | After ...; | +| Assert.cs:96:9:96:35 | Before call to method WriteLine | Assert.cs:96:27:96:34 | Before access to property Length | +| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:96:9:96:35 | After call to method WriteLine | +| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:9:96:35 | Before call to method WriteLine | +| Assert.cs:96:9:96:36 | After ...; | Assert.cs:98:9:98:26 | ...; | | Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:34 | access to property Length | -| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:9:96:35 | call to method WriteLine | -| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:99:9:99:33 | ...; | -| Assert.cs:98:9:98:26 | ...; | Assert.cs:98:13:98:13 | access to parameter b | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:17:98:20 | null | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:24:98:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:9:98:25 | ... = ... | -| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:23:99:23 | access to local variable s | +| Assert.cs:96:27:96:34 | After access to property Length | Assert.cs:96:9:96:35 | call to method WriteLine | +| Assert.cs:96:27:96:34 | Before access to property Length | Assert.cs:96:27:96:27 | access to local variable s | +| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:27:96:34 | After access to property Length | +| Assert.cs:98:9:98:9 | access to local variable s | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:9:98:25 | After ... = ... | +| Assert.cs:98:9:98:25 | After ... = ... | Assert.cs:98:9:98:26 | After ...; | +| Assert.cs:98:9:98:25 | Before ... = ... | Assert.cs:98:9:98:9 | access to local variable s | +| Assert.cs:98:9:98:26 | ...; | Assert.cs:98:9:98:25 | Before ... = ... | +| Assert.cs:98:9:98:26 | After ...; | Assert.cs:99:9:99:33 | ...; | +| Assert.cs:98:13:98:13 | After access to parameter b [false] | Assert.cs:98:24:98:25 | "" | +| Assert.cs:98:13:98:13 | After access to parameter b [true] | Assert.cs:98:17:98:20 | null | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:13 | access to parameter b | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:9:98:25 | ... = ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:99:9:99:33 | After ...; | +| Assert.cs:99:9:99:32 | Before call to method IsTrue | Assert.cs:99:23:99:31 | Before ... == ... | +| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:9:99:32 | Before call to method IsTrue | +| Assert.cs:99:9:99:33 | After ...; | Assert.cs:100:9:100:36 | ...; | | Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:28:99:31 | null | -| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | call to method IsTrue | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:23:99:31 | After ... == ... | +| Assert.cs:99:23:99:31 | After ... == ... | Assert.cs:99:9:99:32 | call to method IsTrue | +| Assert.cs:99:23:99:31 | Before ... == ... | Assert.cs:99:23:99:23 | access to local variable s | | Assert.cs:99:28:99:31 | null | Assert.cs:99:23:99:31 | ... == ... | -| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:102:9:102:26 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:27:100:27 | access to local variable s | +| Assert.cs:100:9:100:35 | After call to method WriteLine | Assert.cs:100:9:100:36 | After ...; | +| Assert.cs:100:9:100:35 | Before call to method WriteLine | Assert.cs:100:27:100:34 | Before access to property Length | +| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:100:9:100:35 | After call to method WriteLine | +| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:9:100:35 | Before call to method WriteLine | +| Assert.cs:100:9:100:36 | After ...; | Assert.cs:102:9:102:26 | ...; | | Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:27:100:34 | access to property Length | -| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:9:100:35 | call to method WriteLine | -| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:103:9:103:33 | ...; | -| Assert.cs:102:9:102:26 | ...; | Assert.cs:102:13:102:13 | access to parameter b | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:17:102:20 | null | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:24:102:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:9:102:25 | ... = ... | -| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:23:103:23 | access to local variable s | +| Assert.cs:100:27:100:34 | After access to property Length | Assert.cs:100:9:100:35 | call to method WriteLine | +| Assert.cs:100:27:100:34 | Before access to property Length | Assert.cs:100:27:100:27 | access to local variable s | +| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:27:100:34 | After access to property Length | +| Assert.cs:102:9:102:9 | access to local variable s | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:9:102:25 | After ... = ... | +| Assert.cs:102:9:102:25 | After ... = ... | Assert.cs:102:9:102:26 | After ...; | +| Assert.cs:102:9:102:25 | Before ... = ... | Assert.cs:102:9:102:9 | access to local variable s | +| Assert.cs:102:9:102:26 | ...; | Assert.cs:102:9:102:25 | Before ... = ... | +| Assert.cs:102:9:102:26 | After ...; | Assert.cs:103:9:103:33 | ...; | +| Assert.cs:102:13:102:13 | After access to parameter b [false] | Assert.cs:102:24:102:25 | "" | +| Assert.cs:102:13:102:13 | After access to parameter b [true] | Assert.cs:102:17:102:20 | null | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:13 | access to parameter b | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:9:102:25 | ... = ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:103:9:103:33 | After ...; | +| Assert.cs:103:9:103:32 | Before call to method IsTrue | Assert.cs:103:23:103:31 | Before ... != ... | +| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:9:103:32 | Before call to method IsTrue | +| Assert.cs:103:9:103:33 | After ...; | Assert.cs:104:9:104:36 | ...; | | Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:28:103:31 | null | -| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | call to method IsTrue | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:23:103:31 | After ... != ... | +| Assert.cs:103:23:103:31 | After ... != ... | Assert.cs:103:9:103:32 | call to method IsTrue | +| Assert.cs:103:23:103:31 | Before ... != ... | Assert.cs:103:23:103:23 | access to local variable s | | Assert.cs:103:28:103:31 | null | Assert.cs:103:23:103:31 | ... != ... | -| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:106:9:106:26 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:27:104:27 | access to local variable s | +| Assert.cs:104:9:104:35 | After call to method WriteLine | Assert.cs:104:9:104:36 | After ...; | +| Assert.cs:104:9:104:35 | Before call to method WriteLine | Assert.cs:104:27:104:34 | Before access to property Length | +| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:104:9:104:35 | After call to method WriteLine | +| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:9:104:35 | Before call to method WriteLine | +| Assert.cs:104:9:104:36 | After ...; | Assert.cs:106:9:106:26 | ...; | | Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:27:104:34 | access to property Length | -| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:9:104:35 | call to method WriteLine | -| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:107:9:107:34 | ...; | -| Assert.cs:106:9:106:26 | ...; | Assert.cs:106:13:106:13 | access to parameter b | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:17:106:20 | null | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:24:106:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:9:106:25 | ... = ... | -| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:24:107:24 | access to local variable s | +| Assert.cs:104:27:104:34 | After access to property Length | Assert.cs:104:9:104:35 | call to method WriteLine | +| Assert.cs:104:27:104:34 | Before access to property Length | Assert.cs:104:27:104:27 | access to local variable s | +| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:27:104:34 | After access to property Length | +| Assert.cs:106:9:106:9 | access to local variable s | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:9:106:25 | After ... = ... | +| Assert.cs:106:9:106:25 | After ... = ... | Assert.cs:106:9:106:26 | After ...; | +| Assert.cs:106:9:106:25 | Before ... = ... | Assert.cs:106:9:106:9 | access to local variable s | +| Assert.cs:106:9:106:26 | ...; | Assert.cs:106:9:106:25 | Before ... = ... | +| Assert.cs:106:9:106:26 | After ...; | Assert.cs:107:9:107:34 | ...; | +| Assert.cs:106:13:106:13 | After access to parameter b [false] | Assert.cs:106:24:106:25 | "" | +| Assert.cs:106:13:106:13 | After access to parameter b [true] | Assert.cs:106:17:106:20 | null | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:13 | access to parameter b | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:9:106:25 | ... = ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:107:9:107:34 | After ...; | +| Assert.cs:107:9:107:33 | Before call to method IsFalse | Assert.cs:107:24:107:32 | Before ... != ... | +| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:9:107:33 | Before call to method IsFalse | +| Assert.cs:107:9:107:34 | After ...; | Assert.cs:108:9:108:36 | ...; | | Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:29:107:32 | null | -| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | call to method IsFalse | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:24:107:32 | After ... != ... | +| Assert.cs:107:24:107:32 | After ... != ... | Assert.cs:107:9:107:33 | call to method IsFalse | +| Assert.cs:107:24:107:32 | Before ... != ... | Assert.cs:107:24:107:24 | access to local variable s | | Assert.cs:107:29:107:32 | null | Assert.cs:107:24:107:32 | ... != ... | -| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:110:9:110:26 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:27:108:27 | access to local variable s | +| Assert.cs:108:9:108:35 | After call to method WriteLine | Assert.cs:108:9:108:36 | After ...; | +| Assert.cs:108:9:108:35 | Before call to method WriteLine | Assert.cs:108:27:108:34 | Before access to property Length | +| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:108:9:108:35 | After call to method WriteLine | +| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:9:108:35 | Before call to method WriteLine | +| Assert.cs:108:9:108:36 | After ...; | Assert.cs:110:9:110:26 | ...; | | Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:27:108:34 | access to property Length | -| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:9:108:35 | call to method WriteLine | -| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:111:9:111:34 | ...; | -| Assert.cs:110:9:110:26 | ...; | Assert.cs:110:13:110:13 | access to parameter b | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:17:110:20 | null | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:24:110:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:9:110:25 | ... = ... | -| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:24:111:24 | access to local variable s | +| Assert.cs:108:27:108:34 | After access to property Length | Assert.cs:108:9:108:35 | call to method WriteLine | +| Assert.cs:108:27:108:34 | Before access to property Length | Assert.cs:108:27:108:27 | access to local variable s | +| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:27:108:34 | After access to property Length | +| Assert.cs:110:9:110:9 | access to local variable s | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:9:110:25 | After ... = ... | +| Assert.cs:110:9:110:25 | After ... = ... | Assert.cs:110:9:110:26 | After ...; | +| Assert.cs:110:9:110:25 | Before ... = ... | Assert.cs:110:9:110:9 | access to local variable s | +| Assert.cs:110:9:110:26 | ...; | Assert.cs:110:9:110:25 | Before ... = ... | +| Assert.cs:110:9:110:26 | After ...; | Assert.cs:111:9:111:34 | ...; | +| Assert.cs:110:13:110:13 | After access to parameter b [false] | Assert.cs:110:24:110:25 | "" | +| Assert.cs:110:13:110:13 | After access to parameter b [true] | Assert.cs:110:17:110:20 | null | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:13 | access to parameter b | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:9:110:25 | ... = ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:111:9:111:34 | After ...; | +| Assert.cs:111:9:111:33 | Before call to method IsFalse | Assert.cs:111:24:111:32 | Before ... == ... | +| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:9:111:33 | Before call to method IsFalse | +| Assert.cs:111:9:111:34 | After ...; | Assert.cs:112:9:112:36 | ...; | | Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:29:111:32 | null | -| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | call to method IsFalse | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:24:111:32 | After ... == ... | +| Assert.cs:111:24:111:32 | After ... == ... | Assert.cs:111:9:111:33 | call to method IsFalse | +| Assert.cs:111:24:111:32 | Before ... == ... | Assert.cs:111:24:111:24 | access to local variable s | | Assert.cs:111:29:111:32 | null | Assert.cs:111:24:111:32 | ... == ... | -| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:114:9:114:26 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:27:112:27 | access to local variable s | +| Assert.cs:112:9:112:35 | After call to method WriteLine | Assert.cs:112:9:112:36 | After ...; | +| Assert.cs:112:9:112:35 | Before call to method WriteLine | Assert.cs:112:27:112:34 | Before access to property Length | +| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:112:9:112:35 | After call to method WriteLine | +| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:9:112:35 | Before call to method WriteLine | +| Assert.cs:112:9:112:36 | After ...; | Assert.cs:114:9:114:26 | ...; | | Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:27:112:34 | access to property Length | -| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:9:112:35 | call to method WriteLine | -| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:115:9:115:38 | ...; | -| Assert.cs:114:9:114:26 | ...; | Assert.cs:114:13:114:13 | access to parameter b | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:17:114:20 | null | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:24:114:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:9:114:25 | ... = ... | -| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:23:115:23 | access to local variable s | +| Assert.cs:112:27:112:34 | After access to property Length | Assert.cs:112:9:112:35 | call to method WriteLine | +| Assert.cs:112:27:112:34 | Before access to property Length | Assert.cs:112:27:112:27 | access to local variable s | +| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:27:112:34 | After access to property Length | +| Assert.cs:114:9:114:9 | access to local variable s | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:9:114:25 | After ... = ... | +| Assert.cs:114:9:114:25 | After ... = ... | Assert.cs:114:9:114:26 | After ...; | +| Assert.cs:114:9:114:25 | Before ... = ... | Assert.cs:114:9:114:9 | access to local variable s | +| Assert.cs:114:9:114:26 | ...; | Assert.cs:114:9:114:25 | Before ... = ... | +| Assert.cs:114:9:114:26 | After ...; | Assert.cs:115:9:115:38 | ...; | +| Assert.cs:114:13:114:13 | After access to parameter b [false] | Assert.cs:114:24:114:25 | "" | +| Assert.cs:114:13:114:13 | After access to parameter b [true] | Assert.cs:114:17:114:20 | null | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:13 | access to parameter b | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:9:114:25 | ... = ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:9:115:38 | After ...; | +| Assert.cs:115:9:115:37 | Before call to method IsTrue | Assert.cs:115:23:115:36 | ... && ... | +| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:9:115:37 | Before call to method IsTrue | +| Assert.cs:115:9:115:38 | After ...; | Assert.cs:116:9:116:36 | ...; | | Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:28:115:31 | null | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:115:23:115:31 | After ... != ... [true] | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:115:23:115:31 | Before ... != ... | Assert.cs:115:23:115:23 | access to local variable s | +| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:31 | Before ... != ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | | Assert.cs:115:28:115:31 | null | Assert.cs:115:23:115:31 | ... != ... | -| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:118:9:118:26 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:27:116:27 | access to local variable s | +| Assert.cs:116:9:116:35 | After call to method WriteLine | Assert.cs:116:9:116:36 | After ...; | +| Assert.cs:116:9:116:35 | Before call to method WriteLine | Assert.cs:116:27:116:34 | Before access to property Length | +| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:9:116:35 | After call to method WriteLine | +| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:9:116:35 | Before call to method WriteLine | +| Assert.cs:116:9:116:36 | After ...; | Assert.cs:118:9:118:26 | ...; | | Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:34 | access to property Length | -| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:9:116:35 | call to method WriteLine | -| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:119:9:119:40 | ...; | -| Assert.cs:118:9:118:26 | ...; | Assert.cs:118:13:118:13 | access to parameter b | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:17:118:20 | null | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:24:118:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:9:118:25 | ... = ... | -| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:24:119:24 | access to local variable s | +| Assert.cs:116:27:116:34 | After access to property Length | Assert.cs:116:9:116:35 | call to method WriteLine | +| Assert.cs:116:27:116:34 | Before access to property Length | Assert.cs:116:27:116:27 | access to local variable s | +| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:27:116:34 | After access to property Length | +| Assert.cs:118:9:118:9 | access to local variable s | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:9:118:25 | After ... = ... | +| Assert.cs:118:9:118:25 | After ... = ... | Assert.cs:118:9:118:26 | After ...; | +| Assert.cs:118:9:118:25 | Before ... = ... | Assert.cs:118:9:118:9 | access to local variable s | +| Assert.cs:118:9:118:26 | ...; | Assert.cs:118:9:118:25 | Before ... = ... | +| Assert.cs:118:9:118:26 | After ...; | Assert.cs:119:9:119:40 | ...; | +| Assert.cs:118:13:118:13 | After access to parameter b [false] | Assert.cs:118:24:118:25 | "" | +| Assert.cs:118:13:118:13 | After access to parameter b [true] | Assert.cs:118:17:118:20 | null | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:13 | access to parameter b | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:9:118:25 | ... = ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:9:119:40 | After ...; | +| Assert.cs:119:9:119:39 | Before call to method IsFalse | Assert.cs:119:24:119:38 | ... \|\| ... | +| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:9:119:39 | Before call to method IsFalse | +| Assert.cs:119:9:119:40 | After ...; | Assert.cs:120:9:120:36 | ...; | | Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:29:119:32 | null | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:119:24:119:32 | After ... == ... [false] | Assert.cs:119:37:119:38 | !... | +| Assert.cs:119:24:119:32 | Before ... == ... | Assert.cs:119:24:119:24 | access to local variable s | +| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:32 | Before ... == ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | | Assert.cs:119:29:119:32 | null | Assert.cs:119:24:119:32 | ... == ... | -| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | !... | -| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:122:9:122:26 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:27:120:27 | access to local variable s | +| Assert.cs:119:37:119:38 | !... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | After !... | +| Assert.cs:120:9:120:35 | After call to method WriteLine | Assert.cs:120:9:120:36 | After ...; | +| Assert.cs:120:9:120:35 | Before call to method WriteLine | Assert.cs:120:27:120:34 | Before access to property Length | +| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:9:120:35 | After call to method WriteLine | +| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:9:120:35 | Before call to method WriteLine | +| Assert.cs:120:9:120:36 | After ...; | Assert.cs:122:9:122:26 | ...; | | Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:34 | access to property Length | -| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:9:120:35 | call to method WriteLine | -| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:123:9:123:38 | ...; | -| Assert.cs:122:9:122:26 | ...; | Assert.cs:122:13:122:13 | access to parameter b | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:17:122:20 | null | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:24:122:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:9:122:25 | ... = ... | -| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:23:123:23 | access to local variable s | +| Assert.cs:120:27:120:34 | After access to property Length | Assert.cs:120:9:120:35 | call to method WriteLine | +| Assert.cs:120:27:120:34 | Before access to property Length | Assert.cs:120:27:120:27 | access to local variable s | +| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:27:120:34 | After access to property Length | +| Assert.cs:122:9:122:9 | access to local variable s | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:9:122:25 | After ... = ... | +| Assert.cs:122:9:122:25 | After ... = ... | Assert.cs:122:9:122:26 | After ...; | +| Assert.cs:122:9:122:25 | Before ... = ... | Assert.cs:122:9:122:9 | access to local variable s | +| Assert.cs:122:9:122:26 | ...; | Assert.cs:122:9:122:25 | Before ... = ... | +| Assert.cs:122:9:122:26 | After ...; | Assert.cs:123:9:123:38 | ...; | +| Assert.cs:122:13:122:13 | After access to parameter b [false] | Assert.cs:122:24:122:25 | "" | +| Assert.cs:122:13:122:13 | After access to parameter b [true] | Assert.cs:122:17:122:20 | null | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:13 | access to parameter b | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:9:122:25 | ... = ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:9:123:38 | After ...; | +| Assert.cs:123:9:123:37 | Before call to method IsTrue | Assert.cs:123:23:123:36 | ... && ... | +| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:9:123:37 | Before call to method IsTrue | +| Assert.cs:123:9:123:38 | After ...; | Assert.cs:124:9:124:36 | ...; | | Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:28:123:31 | null | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:123:23:123:31 | After ... == ... [true] | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:123:23:123:31 | Before ... == ... | Assert.cs:123:23:123:23 | access to local variable s | +| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:31 | Before ... == ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | | Assert.cs:123:28:123:31 | null | Assert.cs:123:23:123:31 | ... == ... | -| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:126:9:126:26 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:27:124:27 | access to local variable s | +| Assert.cs:124:9:124:35 | After call to method WriteLine | Assert.cs:124:9:124:36 | After ...; | +| Assert.cs:124:9:124:35 | Before call to method WriteLine | Assert.cs:124:27:124:34 | Before access to property Length | +| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:9:124:35 | After call to method WriteLine | +| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:9:124:35 | Before call to method WriteLine | +| Assert.cs:124:9:124:36 | After ...; | Assert.cs:126:9:126:26 | ...; | | Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:34 | access to property Length | -| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:9:124:35 | call to method WriteLine | -| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:127:9:127:40 | ...; | -| Assert.cs:126:9:126:26 | ...; | Assert.cs:126:13:126:13 | access to parameter b | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:17:126:20 | null | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:24:126:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:9:126:25 | ... = ... | -| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:24:127:24 | access to local variable s | +| Assert.cs:124:27:124:34 | After access to property Length | Assert.cs:124:9:124:35 | call to method WriteLine | +| Assert.cs:124:27:124:34 | Before access to property Length | Assert.cs:124:27:124:27 | access to local variable s | +| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:27:124:34 | After access to property Length | +| Assert.cs:126:9:126:9 | access to local variable s | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:9:126:25 | After ... = ... | +| Assert.cs:126:9:126:25 | After ... = ... | Assert.cs:126:9:126:26 | After ...; | +| Assert.cs:126:9:126:25 | Before ... = ... | Assert.cs:126:9:126:9 | access to local variable s | +| Assert.cs:126:9:126:26 | ...; | Assert.cs:126:9:126:25 | Before ... = ... | +| Assert.cs:126:9:126:26 | After ...; | Assert.cs:127:9:127:40 | ...; | +| Assert.cs:126:13:126:13 | After access to parameter b [false] | Assert.cs:126:24:126:25 | "" | +| Assert.cs:126:13:126:13 | After access to parameter b [true] | Assert.cs:126:17:126:20 | null | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:13 | access to parameter b | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:9:126:25 | ... = ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:9:127:40 | After ...; | +| Assert.cs:127:9:127:39 | Before call to method IsFalse | Assert.cs:127:24:127:38 | ... \|\| ... | +| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:9:127:39 | Before call to method IsFalse | +| Assert.cs:127:9:127:40 | After ...; | Assert.cs:128:9:128:36 | ...; | | Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:29:127:32 | null | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:127:24:127:32 | After ... != ... [false] | Assert.cs:127:37:127:38 | !... | +| Assert.cs:127:24:127:32 | Before ... != ... | Assert.cs:127:24:127:24 | access to local variable s | +| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:32 | Before ... != ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | | Assert.cs:127:29:127:32 | null | Assert.cs:127:24:127:32 | ... != ... | -| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | !... | -| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | exit M12 (normal) | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:27:128:27 | access to local variable s | +| Assert.cs:127:37:127:38 | !... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | After !... | +| Assert.cs:128:9:128:35 | After call to method WriteLine | Assert.cs:128:9:128:36 | After ...; | +| Assert.cs:128:9:128:35 | Before call to method WriteLine | Assert.cs:128:27:128:34 | Before access to property Length | +| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:9:128:35 | After call to method WriteLine | +| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:9:128:35 | Before call to method WriteLine | +| Assert.cs:128:9:128:36 | After ...; | Assert.cs:85:5:129:5 | After {...} | | Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:34 | access to property Length | -| Assert.cs:128:27:128:34 | access to property Length | Assert.cs:128:9:128:35 | call to method WriteLine | -| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:135:5:136:5 | {...} | -| Assert.cs:131:18:131:32 | exit AssertTrueFalse (normal) | Assert.cs:131:18:131:32 | exit AssertTrueFalse | -| Assert.cs:135:5:136:5 | {...} | Assert.cs:131:18:131:32 | exit AssertTrueFalse (normal) | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:139:5:142:5 | {...} | +| Assert.cs:128:27:128:34 | After access to property Length | Assert.cs:128:9:128:35 | call to method WriteLine | +| Assert.cs:128:27:128:34 | Before access to property Length | Assert.cs:128:27:128:27 | access to local variable s | +| Assert.cs:128:27:128:34 | access to property Length | Assert.cs:128:27:128:34 | After access to property Length | +| Assert.cs:131:18:131:32 | Entry | Assert.cs:135:5:136:5 | {...} | +| Assert.cs:131:18:131:32 | Normal Exit | Assert.cs:131:18:131:32 | Exit | +| Assert.cs:135:5:136:5 | {...} | Assert.cs:131:18:131:32 | Normal Exit | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:139:5:142:5 | {...} | | Assert.cs:139:5:142:5 | {...} | Assert.cs:140:9:140:36 | ...; | -| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | -| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:141:9:141:15 | return ...; | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:140:9:140:36 | After ...; | +| Assert.cs:140:9:140:35 | Before call to method AssertTrueFalse | Assert.cs:140:9:140:35 | this access | +| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:138:10:138:12 | Exceptional Exit | +| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | | Assert.cs:140:9:140:35 | this access | Assert.cs:140:25:140:26 | access to parameter b1 | -| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | this access | +| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | Before call to method AssertTrueFalse | +| Assert.cs:140:9:140:36 | After ...; | Assert.cs:141:9:141:15 | Before return ...; | | Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | access to parameter b2 | | Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | access to parameter b3 | | 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 | 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 | +| Assert.cs:141:9:141:15 | Before return ...; | Assert.cs:141:9:141:15 | return ...; | +| Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | Normal Exit | +| Assignments.cs:1:7:1:17 | After call to constructor Object | Assignments.cs:1:7:1:17 | {...} | +| Assignments.cs:1:7:1:17 | After call to method | Assignments.cs:1:7:1:17 | Before call to constructor Object | +| Assignments.cs:1:7:1:17 | Before call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | Before call to method | Assignments.cs:1:7:1:17 | this access | +| Assignments.cs:1:7:1:17 | Entry | Assignments.cs:1:7:1:17 | Before call to method | +| Assignments.cs:1:7:1:17 | Normal Exit | Assignments.cs:1:7:1:17 | Exit | +| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | After call to constructor Object | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | After call to method | | 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 | +| Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | Normal Exit | +| Assignments.cs:3:10:3:10 | Entry | Assignments.cs:4:5:15:5 | {...} | +| Assignments.cs:3:10:3:10 | Normal Exit | Assignments.cs:3:10:3:10 | Exit | +| Assignments.cs:4:5:15:5 | After {...} | Assignments.cs:3:10:3:10 | Normal Exit | | Assignments.cs:4:5:15:5 | {...} | Assignments.cs:5:9:5:18 | ... ...; | -| Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:17:5:17 | 0 | -| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:6:9:6:15 | ...; | +| Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:13:5:17 | Before Int32 x = ... | +| Assignments.cs:5:9:5:18 | After ... ...; | Assignments.cs:6:9:6:15 | ...; | +| Assignments.cs:5:13:5:13 | access to local variable x | Assignments.cs:5:17:5:17 | 0 | +| Assignments.cs:5:13:5:17 | After Int32 x = ... | Assignments.cs:5:9:5:18 | After ... ...; | +| Assignments.cs:5:13:5:17 | Before Int32 x = ... | Assignments.cs:5:13:5:13 | access to local variable x | +| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:5:13:5:17 | After Int32 x = ... | | Assignments.cs:5:17:5:17 | 0 | Assignments.cs:5:13:5:17 | Int32 x = ... | | Assignments.cs:6:9:6:9 | access to local variable x | Assignments.cs:6:14:6:14 | 1 | -| Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:8:9:8:22 | ... ...; | -| Assignments.cs:6:9:6:15 | ...; | Assignments.cs:6:9:6:9 | access to local variable x | +| Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:6:9:6:14 | After ... += ... | +| Assignments.cs:6:9:6:14 | After ... += ... | Assignments.cs:6:9:6:15 | After ...; | +| Assignments.cs:6:9:6:14 | Before ... += ... | Assignments.cs:6:9:6:9 | access to local variable x | +| Assignments.cs:6:9:6:15 | ...; | Assignments.cs:6:9:6:14 | Before ... += ... | +| Assignments.cs:6:9:6:15 | After ...; | Assignments.cs:8:9:8:22 | ... ...; | | Assignments.cs:6:14:6:14 | 1 | Assignments.cs:6:9:6:14 | ... += ... | -| Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:8:21:8:21 | 0 | -| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:9:9:9:15 | ...; | +| Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:8:17:8:21 | Before dynamic d = ... | +| Assignments.cs:8:9:8:22 | After ... ...; | Assignments.cs:9:9:9:15 | ...; | +| Assignments.cs:8:17:8:17 | access to local variable d | Assignments.cs:8:21:8:21 | Before (...) ... | +| Assignments.cs:8:17:8:21 | After dynamic d = ... | Assignments.cs:8:9:8:22 | After ... ...; | +| Assignments.cs:8:17:8:21 | Before dynamic d = ... | Assignments.cs:8:17:8:17 | access to local variable d | +| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:8:17:8:21 | After dynamic d = ... | | Assignments.cs:8:21:8:21 | 0 | Assignments.cs:8:21:8:21 | (...) ... | -| Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:8:17:8:21 | dynamic d = ... | +| Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:8:21:8:21 | After (...) ... | +| Assignments.cs:8:21:8:21 | After (...) ... | Assignments.cs:8:17:8:21 | dynamic d = ... | +| Assignments.cs:8:21:8:21 | Before (...) ... | Assignments.cs:8:21:8:21 | 0 | | Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:14:9:14 | 2 | -| Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:11:9:11:34 | ... ...; | -| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:9:9:9:9 | access to local variable d | +| Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:9:9:9:14 | After ... -= ... | +| Assignments.cs:9:9:9:14 | After ... -= ... | Assignments.cs:9:9:9:15 | After ...; | +| Assignments.cs:9:9:9:14 | Before ... -= ... | Assignments.cs:9:9:9:9 | access to local variable d | +| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:9:9:9:14 | Before ... -= ... | +| Assignments.cs:9:9:9:15 | After ...; | Assignments.cs:11:9:11:34 | ... ...; | | Assignments.cs:9:14:9:14 | 2 | Assignments.cs:9:9:9:14 | ... -= ... | -| Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:11:17:11:33 | object creation of type Assignments | -| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:12:9:12:18 | ...; | -| Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:13:11:33 | Assignments a = ... | +| Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:11:13:11:33 | Before Assignments a = ... | +| Assignments.cs:11:9:11:34 | After ... ...; | Assignments.cs:12:9:12:18 | ...; | +| Assignments.cs:11:13:11:13 | access to local variable a | Assignments.cs:11:17:11:33 | Before object creation of type Assignments | +| Assignments.cs:11:13:11:33 | After Assignments a = ... | Assignments.cs:11:9:11:34 | After ... ...; | +| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:11:13:11:33 | After Assignments a = ... | +| Assignments.cs:11:13:11:33 | Before Assignments a = ... | Assignments.cs:11:13:11:13 | access to local variable a | +| Assignments.cs:11:17:11:33 | After object creation of type Assignments | Assignments.cs:11:13:11:33 | Assignments a = ... | +| Assignments.cs:11:17:11:33 | Before object creation of type Assignments | Assignments.cs:11:17:11:33 | object creation of type Assignments | +| Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:17:11:33 | After object creation of type Assignments | | Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:14:12:17 | this access | -| Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:14:9:14:36 | ...; | -| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:12:9:12:9 | access to local variable a | +| Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:12:9:12:17 | After ... += ... | +| Assignments.cs:12:9:12:17 | After ... += ... | Assignments.cs:12:9:12:18 | After ...; | +| Assignments.cs:12:9:12:17 | Before ... += ... | Assignments.cs:12:9:12:9 | access to local variable a | +| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:12:9:12:17 | Before ... += ... | +| Assignments.cs:12:9:12:18 | After ...; | Assignments.cs:14:9:14:36 | ...; | | Assignments.cs:12:14:12:17 | this access | Assignments.cs:12:9:12:17 | ... += ... | -| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:9:14:35 | ... += ... | -| Assignments.cs:14:9:14:13 | this access | Assignments.cs:14:18:14:35 | (...) => ... | -| Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:3:10:3:10 | exit M (normal) | -| Assignments.cs:14:9:14:36 | ...; | Assignments.cs:14:9:14:13 | this access | -| Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:9:14:13 | access to event Event | -| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:33:14:35 | {...} | -| Assignments.cs:14:18:14:35 | exit (...) => ... (normal) | Assignments.cs:14:18:14:35 | exit (...) => ... | -| Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:18:14:35 | exit (...) => ... (normal) | -| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:18:5:20:5 | {...} | -| Assignments.cs:17:40:17:40 | exit + (normal) | Assignments.cs:17:40:17:40 | exit + | -| Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:16:19:16 | access to parameter x | -| Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | +| Assignments.cs:14:9:14:13 | After access to event Event | Assignments.cs:14:18:14:35 | (...) => ... | +| Assignments.cs:14:9:14:13 | Before access to event Event | Assignments.cs:14:9:14:13 | this access | +| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:9:14:13 | After access to event Event | +| Assignments.cs:14:9:14:13 | this access | Assignments.cs:14:9:14:13 | access to event Event | +| Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:14:9:14:35 | After ... += ... | +| Assignments.cs:14:9:14:35 | After ... += ... | Assignments.cs:14:9:14:36 | After ...; | +| Assignments.cs:14:9:14:35 | Before ... += ... | Assignments.cs:14:9:14:13 | Before access to event Event | +| Assignments.cs:14:9:14:36 | ...; | Assignments.cs:14:9:14:35 | Before ... += ... | +| Assignments.cs:14:9:14:36 | After ...; | Assignments.cs:4:5:15:5 | After {...} | +| Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:9:14:35 | ... += ... | +| Assignments.cs:14:18:14:35 | Entry | Assignments.cs:14:33:14:35 | {...} | +| Assignments.cs:14:18:14:35 | Normal Exit | Assignments.cs:14:18:14:35 | Exit | +| Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:18:14:35 | Normal Exit | +| Assignments.cs:17:40:17:40 | Entry | Assignments.cs:18:5:20:5 | {...} | +| Assignments.cs:17:40:17:40 | Normal Exit | Assignments.cs:17:40:17:40 | Exit | +| Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:9:19:17 | Before return ...; | +| Assignments.cs:19:9:19:17 | Before return ...; | Assignments.cs:19:16:19:16 | access to parameter x | +| Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | Normal Exit | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | -| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:28:5:30:5 | {...} | -| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | exit SetParamSingle | +| Assignments.cs:27:10:27:23 | Entry | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:27:10:27:23 | Normal Exit | Assignments.cs:27:10:27:23 | Exit | +| Assignments.cs:28:5:30:5 | After {...} | Assignments.cs:27:10:27:23 | Normal Exit | | Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:15 | ...; | -| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | -| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:9 | access to parameter x | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:9:29:14 | After ... = ... | +| Assignments.cs:29:9:29:14 | After ... = ... | Assignments.cs:29:9:29:15 | After ...; | +| Assignments.cs:29:9:29:14 | Before ... = ... | Assignments.cs:29:9:29:9 | access to parameter x | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:14 | Before ... = ... | +| Assignments.cs:29:9:29:15 | After ...; | Assignments.cs:28:5:30:5 | After {...} | | Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:14 | ... = ... | -| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:33:5:36:5 | {...} | -| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | exit SetParamMulti | +| Assignments.cs:32:10:32:22 | Entry | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:32:10:32:22 | Normal Exit | Assignments.cs:32:10:32:22 | Exit | +| Assignments.cs:33:5:36:5 | After {...} | Assignments.cs:32:10:32:22 | Normal Exit | | Assignments.cs:33:5:36:5 | {...} | Assignments.cs:34:9:34:15 | ...; | -| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:35:9:35:20 | ...; | -| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:9 | access to parameter x | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:9:34:14 | After ... = ... | +| Assignments.cs:34:9:34:14 | After ... = ... | Assignments.cs:34:9:34:15 | After ...; | +| Assignments.cs:34:9:34:14 | Before ... = ... | Assignments.cs:34:9:34:9 | access to parameter x | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:14 | Before ... = ... | +| Assignments.cs:34:9:34:15 | After ...; | Assignments.cs:35:9:35:20 | ...; | | Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:14 | ... = ... | -| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | -| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:9:35:9 | access to parameter y | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:9:35:19 | After ... = ... | +| Assignments.cs:35:9:35:19 | After ... = ... | Assignments.cs:35:9:35:20 | After ...; | +| Assignments.cs:35:9:35:19 | Before ... = ... | Assignments.cs:35:9:35:9 | access to parameter y | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:19 | Before ... = ... | +| Assignments.cs:35:9:35:20 | After ...; | Assignments.cs:33:5:36:5 | After {...} | | Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:19 | ... = ... | -| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:39:5:45:5 | {...} | -| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | exit M2 | +| Assignments.cs:38:10:38:11 | Entry | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:38:10:38:11 | Normal Exit | Assignments.cs:38:10:38:11 | Exit | +| Assignments.cs:39:5:45:5 | After {...} | Assignments.cs:38:10:38:11 | Normal Exit | | Assignments.cs:39:5:45:5 | {...} | Assignments.cs:40:9:40:15 | ... ...; | | Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | -| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:41:9:41:31 | ...; | -| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | -| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | -| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:43:9:43:56 | ...; | -| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | -| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | -| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:40:9:40:15 | After ... ...; | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:9:40:15 | After ... ...; | +| Assignments.cs:41:9:41:30 | After call to method SetParamSingle | Assignments.cs:41:9:41:31 | After ...; | +| Assignments.cs:41:9:41:30 | Before call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | After call to method SetParamSingle | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:28:41:29 | access to local variable x1 | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | Before call to method SetParamSingle | +| Assignments.cs:41:9:41:31 | After ...; | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:41:28:41:29 | access to local variable x1 | Assignments.cs:41:9:41:30 | call to method SetParamSingle | +| Assignments.cs:42:9:42:36 | After call to method SetParamSingle | Assignments.cs:42:9:42:37 | After ...; | +| Assignments.cs:42:9:42:36 | Before call to method SetParamSingle | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | After call to method SetParamSingle | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | Before access to field IntField | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | Before call to method SetParamSingle | +| Assignments.cs:42:9:42:37 | After ...; | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:42:28:42:35 | After access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | Before access to field IntField | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | After access to field IntField | | Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | access to field IntField | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:44:9:44:59 | ...; | -| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | -| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | -| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | -| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:9:43:55 | After call to method SetParamMulti | Assignments.cs:43:9:43:56 | After ...; | +| Assignments.cs:43:9:43:55 | Before call to method SetParamMulti | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | After call to method SetParamMulti | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:31:43:31 | Int32 y | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | Before call to method SetParamMulti | +| Assignments.cs:43:9:43:56 | After ...; | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:43:31:43:31 | Int32 y | Assignments.cs:43:34:43:37 | null | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | Before access to field StringField | +| Assignments.cs:43:44:43:54 | After access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:44:43:54 | Before access to field StringField | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | After access to field StringField | | Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | access to field StringField | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | exit M2 (normal) | -| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | -| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | -| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:9:44:58 | After call to method SetParamMulti | Assignments.cs:44:9:44:59 | After ...; | +| Assignments.cs:44:9:44:58 | Before call to method SetParamMulti | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:9:44:58 | After call to method SetParamMulti | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | Before access to field IntField | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | Before call to method SetParamMulti | +| Assignments.cs:44:9:44:59 | After ...; | Assignments.cs:39:5:45:5 | After {...} | +| Assignments.cs:44:27:44:34 | After access to field IntField | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:27:44:34 | Before access to field IntField | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | After access to field IntField | | Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | access to field IntField | -| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | -| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | Before access to field StringField | +| Assignments.cs:44:47:44:57 | After access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:47:44:57 | Before access to field StringField | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | After access to field StringField | | Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | access to field StringField | -| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | -| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | -| BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | exit BreakInTry | +| BreakInTry.cs:1:7:1:16 | After call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | +| BreakInTry.cs:1:7:1:16 | After call to method | BreakInTry.cs:1:7:1:16 | Before call to constructor Object | +| BreakInTry.cs:1:7:1:16 | Before call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | +| BreakInTry.cs:1:7:1:16 | Before call to method | BreakInTry.cs:1:7:1:16 | this access | +| BreakInTry.cs:1:7:1:16 | Entry | BreakInTry.cs:1:7:1:16 | Before call to method | +| BreakInTry.cs:1:7:1:16 | Normal Exit | BreakInTry.cs:1:7:1:16 | Exit | +| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | After call to constructor Object | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | After call to method | | 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 | +| BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | Normal Exit | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:4:5:18:5 | {...} | +| BreakInTry.cs:3:10:3:11 | Normal Exit | BreakInTry.cs:3:10:3:11 | Exit | +| BreakInTry.cs:4:5:18:5 | After {...} | BreakInTry.cs:3:10:3:11 | Normal Exit | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:5:9:17:9 | try {...} ... | +| BreakInTry.cs:5:9:17:9 | After try {...} ... | BreakInTry.cs:4:5:18:5 | After {...} | | BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:6:9:12:9 | {...} | -| BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:7:33:7:36 | access to parameter args | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:26:7:28 | String arg | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:14:9:17:9 | {...} | +| BreakInTry.cs:6:9:12:9 | After {...} | BreakInTry.cs:14:9:17:9 | {...} | +| BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:6:9:12:9 | After {...} | +| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:33:7:36 | access to parameter args | | BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:8:13:11:13 | {...} | -| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:7:26:7:28 | String arg | +| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | +| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:8:13:11:13 | After {...} | BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | | BreakInTry.cs:8:13:11:13 | {...} | BreakInTry.cs:9:17:10:26 | if (...) ... | -| BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:9:21:9:23 | access to local variable arg | +| BreakInTry.cs:9:17:10:26 | After if (...) ... | BreakInTry.cs:8:13:11:13 | After {...} | +| BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:9:21:9:31 | Before ... == ... | | BreakInTry.cs:9:21:9:23 | access to local variable arg | BreakInTry.cs:9:28:9:31 | null | -| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:10:21:10:26 | break; | +| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:9:21:9:31 | After ... == ... [false] | BreakInTry.cs:9:17:10:26 | After if (...) ... | +| BreakInTry.cs:9:21:9:31 | After ... == ... [true] | BreakInTry.cs:10:21:10:26 | Before break; | +| BreakInTry.cs:9:21:9:31 | Before ... == ... | BreakInTry.cs:9:21:9:23 | access to local variable arg | | BreakInTry.cs:9:28:9:31 | null | BreakInTry.cs:9:21:9:31 | ... == ... | +| BreakInTry.cs:10:21:10:26 | Before break; | BreakInTry.cs:10:21:10:26 | break; | +| BreakInTry.cs:14:9:17:9 | After {...} | BreakInTry.cs:5:9:17:9 | After try {...} ... | | BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:15:13:16:17 | if (...) ... | -| BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:15:17:15:20 | access to parameter args | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:14:9:17:9 | After {...} | +| BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:15:17:15:28 | Before ... == ... | | BreakInTry.cs:15:17:15:20 | access to parameter args | BreakInTry.cs:15:25:15:28 | null | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:16:17:16:17 | ; | +| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | +| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | +| BreakInTry.cs:15:17:15:28 | After ... == ... [true] | BreakInTry.cs:16:17:16:17 | ; | +| BreakInTry.cs:15:17:15:28 | Before ... == ... | BreakInTry.cs:15:17:15:20 | access to parameter args | | BreakInTry.cs:15:25:15:28 | null | BreakInTry.cs:15:17:15:28 | ... == ... | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:21:5:36:5 | {...} | -| BreakInTry.cs:20:10:20:11 | exit M2 (normal) | BreakInTry.cs:20:10:20:11 | exit M2 | -| BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:22:29:22:32 | access to parameter args | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:22:22:24 | String arg | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:35:7:35:7 | ; | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:21:5:36:5 | {...} | +| BreakInTry.cs:20:10:20:11 | Normal Exit | BreakInTry.cs:20:10:20:11 | Exit | +| BreakInTry.cs:21:5:36:5 | After {...} | BreakInTry.cs:20:10:20:11 | Normal Exit | +| BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:35:7:35:7 | ; | +| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | access to parameter args | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:23:9:34:9 | {...} | -| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:22:22:22:24 | String arg | +| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | +| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:23:9:34:9 | After {...} | BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | | BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:24:13:33:13 | try {...} ... | +| BreakInTry.cs:24:13:33:13 | After try {...} ... | BreakInTry.cs:23:9:34:9 | After {...} | | BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:25:13:28:13 | {...} | | BreakInTry.cs:25:13:28:13 | {...} | BreakInTry.cs:26:17:27:26 | if (...) ... | -| BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:26:21:26:23 | access to local variable arg | +| BreakInTry.cs:26:17:27:26 | After if (...) ... | BreakInTry.cs:25:13:28:13 | After {...} | +| BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:26:21:26:31 | Before ... == ... | | BreakInTry.cs:26:21:26:23 | access to local variable arg | BreakInTry.cs:26:28:26:31 | null | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:27:21:27:26 | break; | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:30:13:33:13 | {...} | +| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | +| BreakInTry.cs:26:21:26:31 | After ... == ... [false] | BreakInTry.cs:26:17:27:26 | After if (...) ... | +| BreakInTry.cs:26:21:26:31 | After ... == ... [true] | BreakInTry.cs:27:21:27:26 | Before break; | +| BreakInTry.cs:26:21:26:31 | Before ... == ... | BreakInTry.cs:26:21:26:23 | access to local variable arg | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:26:21:26:31 | ... == ... | +| BreakInTry.cs:27:21:27:26 | Before break; | BreakInTry.cs:27:21:27:26 | break; | +| BreakInTry.cs:30:13:33:13 | After {...} | BreakInTry.cs:24:13:33:13 | After try {...} ... | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:17:32:21 | if (...) ... | -| BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:31:21:31:24 | access to parameter args | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:30:13:33:13 | After {...} | +| BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:31:21:31:32 | Before ... == ... | | BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:29:31:32 | null | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:32:21:32:21 | ; | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:31:21:31:32 | After ... == ... [true] | BreakInTry.cs:32:21:32:21 | ; | +| BreakInTry.cs:31:21:31:32 | Before ... == ... | BreakInTry.cs:31:21:31:24 | access to parameter args | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:31:21:31:32 | ... == ... | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | exit M2 (normal) | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:39:5:54:5 | {...} | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 | +| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:21:5:36:5 | After {...} | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:39:5:54:5 | {...} | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | Exit | | BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:40:9:52:9 | try {...} ... | +| BreakInTry.cs:40:9:52:9 | After try {...} ... | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:41:9:44:9 | {...} | | BreakInTry.cs:41:9:44:9 | {...} | BreakInTry.cs:42:13:43:23 | if (...) ... | -| BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:42:17:42:20 | access to parameter args | +| BreakInTry.cs:42:13:43:23 | After if (...) ... | BreakInTry.cs:41:9:44:9 | After {...} | +| BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:42:17:42:28 | Before ... == ... | | BreakInTry.cs:42:17:42:20 | access to parameter args | BreakInTry.cs:42:25:42:28 | null | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:46:9:52:9 | {...} | +| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | +| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | +| BreakInTry.cs:42:17:42:28 | After ... == ... [false] | BreakInTry.cs:42:13:43:23 | After if (...) ... | +| BreakInTry.cs:42:17:42:28 | After ... == ... [true] | BreakInTry.cs:43:17:43:23 | Before return ...; | +| BreakInTry.cs:42:17:42:28 | Before ... == ... | BreakInTry.cs:42:17:42:20 | access to parameter args | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:17:42:28 | ... == ... | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | access to parameter args | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:53:7:53:7 | ; | +| BreakInTry.cs:43:17:43:23 | Before return ...; | BreakInTry.cs:43:17:43:23 | return ...; | +| BreakInTry.cs:46:9:52:9 | After {...} | BreakInTry.cs:38:10:38:11 | Normal Exit | +| BreakInTry.cs:46:9:52:9 | After {...} | BreakInTry.cs:40:9:52:9 | After try {...} ... | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:46:9:52:9 | After {...} | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | access to parameter args | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:48:13:51:13 | {...} | -| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:47:26:47:28 | String arg | +| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:48:13:51:13 | After {...} | BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:49:17:50:26 | if (...) ... | -| BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:49:21:49:23 | access to local variable arg | +| BreakInTry.cs:49:17:50:26 | After if (...) ... | BreakInTry.cs:48:13:51:13 | After {...} | +| BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:49:21:49:31 | Before ... == ... | | BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:28:49:31 | null | -| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:50:21:50:26 | break; | +| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:49:21:49:31 | After ... == ... [false] | BreakInTry.cs:49:17:50:26 | After if (...) ... | +| BreakInTry.cs:49:21:49:31 | After ... == ... [true] | BreakInTry.cs:50:21:50:26 | Before break; | +| BreakInTry.cs:49:21:49:31 | Before ... == ... | BreakInTry.cs:49:21:49:23 | access to local variable arg | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:49:21:49:31 | ... == ... | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:57:5:71:5 | {...} | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 | +| BreakInTry.cs:50:21:50:26 | Before break; | BreakInTry.cs:50:21:50:26 | break; | +| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:39:5:54:5 | After {...} | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:57:5:71:5 | {...} | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | Exit | | BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:58:9:70:9 | try {...} ... | +| BreakInTry.cs:58:9:70:9 | After try {...} ... | BreakInTry.cs:57:5:71:5 | After {...} | | BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:59:9:62:9 | {...} | | BreakInTry.cs:59:9:62:9 | {...} | BreakInTry.cs:60:13:61:23 | if (...) ... | -| BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:60:17:60:20 | access to parameter args | +| BreakInTry.cs:60:13:61:23 | After if (...) ... | BreakInTry.cs:59:9:62:9 | After {...} | +| BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:60:17:60:28 | Before ... == ... | | BreakInTry.cs:60:17:60:20 | access to parameter args | BreakInTry.cs:60:25:60:28 | null | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:64:9:70:9 | {...} | +| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | +| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | +| BreakInTry.cs:60:17:60:28 | After ... == ... [false] | BreakInTry.cs:60:13:61:23 | After if (...) ... | +| BreakInTry.cs:60:17:60:28 | After ... == ... [true] | BreakInTry.cs:61:17:61:23 | Before return ...; | +| BreakInTry.cs:60:17:60:28 | Before ... == ... | BreakInTry.cs:60:17:60:20 | access to parameter args | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:17:60:28 | ... == ... | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | access to parameter args | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | +| BreakInTry.cs:61:17:61:23 | Before return ...; | BreakInTry.cs:61:17:61:23 | return ...; | +| BreakInTry.cs:64:9:70:9 | After {...} | BreakInTry.cs:56:10:56:11 | Normal Exit | +| BreakInTry.cs:64:9:70:9 | After {...} | BreakInTry.cs:58:9:70:9 | After try {...} ... | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:64:9:70:9 | After {...} | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | access to parameter args | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:66:13:69:13 | {...} | -| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:65:26:65:28 | String arg | +| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:66:13:69:13 | After {...} | BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:67:17:68:26 | if (...) ... | -| BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:67:21:67:23 | access to local variable arg | +| BreakInTry.cs:67:17:68:26 | After if (...) ... | BreakInTry.cs:66:13:69:13 | After {...} | +| BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:67:21:67:31 | Before ... == ... | | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:28:67:31 | null | -| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | +| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| BreakInTry.cs:67:21:67:31 | After ... == ... [false] | BreakInTry.cs:67:17:68:26 | After if (...) ... | +| BreakInTry.cs:67:21:67:31 | After ... == ... [true] | BreakInTry.cs:68:21:68:26 | Before break; | +| BreakInTry.cs:67:21:67:31 | Before ... == ... | BreakInTry.cs:67:21:67:23 | access to local variable arg | | 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 | 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 | +| BreakInTry.cs:68:21:68:26 | Before break; | BreakInTry.cs:68:21:68:26 | break; | +| CompileTimeOperators.cs:3:7:3:26 | After call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | +| CompileTimeOperators.cs:3:7:3:26 | After call to method | CompileTimeOperators.cs:3:7:3:26 | Before call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | Before call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | Before call to method | CompileTimeOperators.cs:3:7:3:26 | this access | +| CompileTimeOperators.cs:3:7:3:26 | Entry | CompileTimeOperators.cs:3:7:3:26 | Before call to method | +| CompileTimeOperators.cs:3:7:3:26 | Normal Exit | CompileTimeOperators.cs:3:7:3:26 | Exit | +| CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | After call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | After call to method | | 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 | -| CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:7:16:7:27 | default(...) | -| CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | +| CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | Normal Exit | +| CompileTimeOperators.cs:5:9:5:15 | Entry | CompileTimeOperators.cs:6:5:8:5 | {...} | +| CompileTimeOperators.cs:5:9:5:15 | Normal Exit | CompileTimeOperators.cs:5:9:5:15 | Exit | +| CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:7:9:7:28 | Before return ...; | +| CompileTimeOperators.cs:7:9:7:28 | Before return ...; | CompileTimeOperators.cs:7:16:7:27 | default(...) | +| CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:5:9:5:15 | Normal Exit | | CompileTimeOperators.cs:7:16:7:27 | default(...) | CompileTimeOperators.cs:7:9:7:28 | return ...; | -| CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:11:5:13:5 | {...} | -| CompileTimeOperators.cs:10:9:10:14 | exit Sizeof (normal) | CompileTimeOperators.cs:10:9:10:14 | exit Sizeof | -| CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | -| CompileTimeOperators.cs:12:9:12:27 | return ...; | CompileTimeOperators.cs:10:9:10:14 | exit Sizeof (normal) | +| CompileTimeOperators.cs:10:9:10:14 | Entry | CompileTimeOperators.cs:11:5:13:5 | {...} | +| CompileTimeOperators.cs:10:9:10:14 | Normal Exit | CompileTimeOperators.cs:10:9:10:14 | Exit | +| CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:12:9:12:27 | Before return ...; | +| CompileTimeOperators.cs:12:9:12:27 | Before return ...; | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | +| CompileTimeOperators.cs:12:9:12:27 | return ...; | CompileTimeOperators.cs:10:9:10:14 | Normal Exit | | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | CompileTimeOperators.cs:12:9:12:27 | return ...; | -| CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:16:5:18:5 | {...} | -| CompileTimeOperators.cs:15:10:15:15 | exit Typeof (normal) | CompileTimeOperators.cs:15:10:15:15 | exit Typeof | -| CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | -| CompileTimeOperators.cs:17:9:17:27 | return ...; | CompileTimeOperators.cs:15:10:15:15 | exit Typeof (normal) | +| CompileTimeOperators.cs:15:10:15:15 | Entry | CompileTimeOperators.cs:16:5:18:5 | {...} | +| CompileTimeOperators.cs:15:10:15:15 | Normal Exit | CompileTimeOperators.cs:15:10:15:15 | Exit | +| CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:17:9:17:27 | Before return ...; | +| CompileTimeOperators.cs:17:9:17:27 | Before return ...; | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | +| CompileTimeOperators.cs:17:9:17:27 | return ...; | CompileTimeOperators.cs:15:10:15:15 | Normal Exit | | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | CompileTimeOperators.cs:17:9:17:27 | return ...; | -| CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:21:5:23:5 | {...} | -| CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | CompileTimeOperators.cs:20:12:20:17 | exit Nameof | -| CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | -| CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | +| CompileTimeOperators.cs:20:12:20:17 | Entry | CompileTimeOperators.cs:21:5:23:5 | {...} | +| CompileTimeOperators.cs:20:12:20:17 | Normal Exit | CompileTimeOperators.cs:20:12:20:17 | Exit | +| CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:22:9:22:25 | Before return ...; | +| CompileTimeOperators.cs:22:9:22:25 | Before return ...; | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | +| CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | Normal Exit | | 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 | 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 | After call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | {...} | +| CompileTimeOperators.cs:26:7:26:22 | After call to method | CompileTimeOperators.cs:26:7:26:22 | Before call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | Before call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | Before call to method | CompileTimeOperators.cs:26:7:26:22 | this access | +| CompileTimeOperators.cs:26:7:26:22 | Entry | CompileTimeOperators.cs:26:7:26:22 | Before call to method | +| CompileTimeOperators.cs:26:7:26:22 | Normal Exit | CompileTimeOperators.cs:26:7:26:22 | Exit | +| CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | After call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | After call to method | | 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:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | Normal Exit | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:29:5:41:5 | {...} | +| CompileTimeOperators.cs:29:5:41:5 | After {...} | CompileTimeOperators.cs:28:10:28:10 | Normal Exit | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | +| CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | CompileTimeOperators.cs:39:9:39:34 | ...; | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:31:9:34:9 | {...} | -| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | +| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | Before goto ...; | +| CompileTimeOperators.cs:32:13:32:21 | Before goto ...; | CompileTimeOperators.cs:32:13:32:21 | goto ...; | | CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | {...} | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:40:9:40:11 | End: | | CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:37:13:37:41 | ...; | -| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | -| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:39:9:39:34 | ...; | -| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | -| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:31:37:39 | "Finally" | +| CompileTimeOperators.cs:37:13:37:40 | After call to method WriteLine | CompileTimeOperators.cs:37:13:37:41 | After ...; | +| CompileTimeOperators.cs:37:13:37:40 | Before call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | "Finally" | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:37:13:37:40 | After call to method WriteLine | +| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:13:37:40 | Before call to method WriteLine | +| CompileTimeOperators.cs:37:13:37:41 | After ...; | CompileTimeOperators.cs:36:9:38:9 | After {...} | | CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | -| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:27:39:32 | "Dead" | +| CompileTimeOperators.cs:39:9:39:33 | After call to method WriteLine | CompileTimeOperators.cs:39:9:39:34 | After ...; | +| CompileTimeOperators.cs:39:9:39:33 | Before call to method WriteLine | CompileTimeOperators.cs:39:27:39:32 | "Dead" | +| CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:39:9:39:33 | After call to method WriteLine | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:33 | Before call to method WriteLine | | CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:14:40:38 | ...; | -| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | -| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | +| CompileTimeOperators.cs:40:14:40:37 | After call to method WriteLine | CompileTimeOperators.cs:40:14:40:38 | After ...; | +| CompileTimeOperators.cs:40:14:40:37 | Before call to method WriteLine | CompileTimeOperators.cs:40:32:40:36 | "End" | +| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:40:14:40:37 | After call to method WriteLine | +| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:14:40:37 | Before call to method WriteLine | +| CompileTimeOperators.cs:40:14:40:38 | After ...; | CompileTimeOperators.cs:29:5:41:5 | After {...} | | 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 | 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 | After call to constructor Object | ConditionalAccess.cs:1:7:1:23 | {...} | +| ConditionalAccess.cs:1:7:1:23 | After call to method | ConditionalAccess.cs:1:7:1:23 | Before call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | Before call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | Before call to method | ConditionalAccess.cs:1:7:1:23 | this access | +| ConditionalAccess.cs:1:7:1:23 | Entry | ConditionalAccess.cs:1:7:1:23 | Before call to method | +| ConditionalAccess.cs:1:7:1:23 | Normal Exit | ConditionalAccess.cs:1:7:1:23 | Exit | +| ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | After call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | After call to method | | 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 | -| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | -| 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:38 | call to method ToString | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:26:5:26 | access to parameter s | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | exit M2 | -| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | -| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:34 | access to property Length | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | exit M3 | -| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | -| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:25:9:25 | access to parameter s | -| ConditionalAccess.cs:9:9:9:10 | exit M4 (normal) | ConditionalAccess.cs:9:9:9:10 | exit M4 | -| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:33 | access to property Length | -| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:38:9:38 | 0 | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:9:9:10 | exit M4 (normal) | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:12:5:17:5 | {...} | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | exit M5 | +| ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | Normal Exit | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:49 | Before call to method ToLower | +| ConditionalAccess.cs:3:12:3:13 | Normal Exit | ConditionalAccess.cs:3:12:3:13 | Exit | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:26:3:38 | call to method ToString | +| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | +| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | +| ConditionalAccess.cs:3:26:3:38 | Before call to method ToString | 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:38 | After call to method ToString [non-null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:12:3:13 | Normal Exit | +| ConditionalAccess.cs:3:26:3:49 | Before call to method ToLower | ConditionalAccess.cs:3:26:3:38 | Before call to method ToString | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:34 | Before access to property Length | +| ConditionalAccess.cs:5:10:5:11 | Normal Exit | ConditionalAccess.cs:5:10:5:11 | Exit | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | ConditionalAccess.cs:5:26:5:34 | access to property Length | +| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | +| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:10:5:11 | Normal Exit | +| ConditionalAccess.cs:5:26:5:34 | Before access to property Length | ConditionalAccess.cs:5:26:5:26 | access to parameter s | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:38:7:55 | Before access to property Length | +| ConditionalAccess.cs:7:10:7:11 | Normal Exit | ConditionalAccess.cs:7:10:7:11 | Exit | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:10:7:11 | Normal Exit | +| ConditionalAccess.cs:7:38:7:55 | Before access to property Length | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | +| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | +| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:38:7:55 | access to property Length | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [null] | +| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | +| ConditionalAccess.cs:9:9:9:10 | Normal Exit | ConditionalAccess.cs:9:9:9:10 | Exit | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:25:9:33 | access to property Length | +| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | +| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:38:9:38 | 0 | +| ConditionalAccess.cs:9:25:9:33 | Before access to property Length | ConditionalAccess.cs:9:25:9:25 | access to parameter s | +| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | +| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:33 | Before access to property Length | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:9:9:10 | Normal Exit | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:12:5:17:5 | {...} | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | Exit | | ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:13:9:16:21 | if (...) ... | -| ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:13:13:13:13 | access to parameter s | -| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:21 | access to property Length | -| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:25:13:25 | 0 | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:14:20:14:20 | 0 | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:16:20:16:20 | 1 | +| ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:13:13:13:25 | Before ... > ... | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | ConditionalAccess.cs:13:13:13:21 | access to property Length | +| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | +| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:25:13:25 | Before (...) ... | +| ConditionalAccess.cs:13:13:13:21 | Before access to property Length | ConditionalAccess.cs:13:13:13:13 | access to parameter s | +| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | +| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | ConditionalAccess.cs:16:13:16:21 | Before return ...; | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | ConditionalAccess.cs:14:13:14:21 | Before return ...; | +| ConditionalAccess.cs:13:13:13:25 | Before ... > ... | ConditionalAccess.cs:13:13:13:21 | Before access to property Length | | ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:25:13:25 | (...) ... | -| ConditionalAccess.cs:13:25:13:25 | (...) ... | ConditionalAccess.cs:13:13:13:25 | ... > ... | +| ConditionalAccess.cs:13:25:13:25 | (...) ... | ConditionalAccess.cs:13:25:13:25 | After (...) ... | +| ConditionalAccess.cs:13:25:13:25 | After (...) ... | ConditionalAccess.cs:13:13:13:25 | ... > ... | +| ConditionalAccess.cs:13:25:13:25 | Before (...) ... | ConditionalAccess.cs:13:25:13:25 | 0 | +| ConditionalAccess.cs:14:13:14:21 | Before return ...; | ConditionalAccess.cs:14:20:14:20 | 0 | | ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:14:13:14:21 | return ...; | +| ConditionalAccess.cs:16:13:16:21 | Before return ...; | ConditionalAccess.cs:16:20:16:20 | 1 | | ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:16:13:16:21 | return ...; | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | exit M6 | -| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | -| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:60 | Before call to method CommaJoinWith | +| ConditionalAccess.cs:19:12:19:13 | Normal Exit | ConditionalAccess.cs:19:12:19:13 | Exit | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | +| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | Normal Exit | +| ConditionalAccess.cs:19:40:19:60 | Before call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:22:5:26:5 | {...} | -| ConditionalAccess.cs:21:10:21:11 | exit M7 (normal) | ConditionalAccess.cs:21:10:21:11 | exit M7 | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:22:5:26:5 | {...} | +| ConditionalAccess.cs:21:10:21:11 | Normal Exit | ConditionalAccess.cs:21:10:21:11 | Exit | +| ConditionalAccess.cs:22:5:26:5 | After {...} | ConditionalAccess.cs:21:10:21:11 | Normal Exit | | ConditionalAccess.cs:22:5:26:5 | {...} | ConditionalAccess.cs:23:9:23:39 | ... ...; | -| ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:23:26:23:29 | null | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:24:9:24:38 | ... ...; | -| ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | +| ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:23:13:23:38 | Before Nullable j = ... | +| ConditionalAccess.cs:23:9:23:39 | After ... ...; | ConditionalAccess.cs:24:9:24:38 | ... ...; | +| ConditionalAccess.cs:23:13:23:13 | access to local variable j | ConditionalAccess.cs:23:17:23:38 | Before access to property Length | +| ConditionalAccess.cs:23:13:23:38 | After Nullable j = ... | ConditionalAccess.cs:23:9:23:39 | After ... ...; | +| ConditionalAccess.cs:23:13:23:38 | Before Nullable j = ... | ConditionalAccess.cs:23:13:23:13 | access to local variable j | +| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:13:23:38 | After Nullable j = ... | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | +| ConditionalAccess.cs:23:17:23:38 | Before access to property Length | ConditionalAccess.cs:23:18:23:29 | Before (...) ... | +| ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | +| ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | ConditionalAccess.cs:23:17:23:38 | access to property Length | +| ConditionalAccess.cs:23:18:23:29 | Before (...) ... | ConditionalAccess.cs:23:26:23:29 | null | | ConditionalAccess.cs:23:26:23:29 | null | ConditionalAccess.cs:23:18:23:29 | (...) ... | -| ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:24:24:24:24 | access to parameter i | -| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:25:9:25:33 | ...; | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:13:24:37 | String s = ... | -| ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:17:24:37 | call to method ToString | +| ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:24:13:24:37 | Before String s = ... | +| ConditionalAccess.cs:24:9:24:38 | After ... ...; | ConditionalAccess.cs:25:9:25:33 | ...; | +| ConditionalAccess.cs:24:13:24:13 | access to local variable s | ConditionalAccess.cs:24:17:24:37 | Before call to method ToString | +| ConditionalAccess.cs:24:13:24:37 | After String s = ... | ConditionalAccess.cs:24:9:24:38 | After ... ...; | +| ConditionalAccess.cs:24:13:24:37 | Before String s = ... | ConditionalAccess.cs:24:13:24:13 | access to local variable s | +| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:24:13:24:37 | After String s = ... | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:13:24:37 | String s = ... | +| ConditionalAccess.cs:24:17:24:37 | Before call to method ToString | ConditionalAccess.cs:24:18:24:24 | Before (...) ... | +| ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | +| ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | ConditionalAccess.cs:24:17:24:37 | call to method ToString | +| ConditionalAccess.cs:24:18:24:24 | Before (...) ... | ConditionalAccess.cs:24:24:24:24 | access to parameter i | | ConditionalAccess.cs:24:24:24:24 | access to parameter i | ConditionalAccess.cs:24:18:24:24 | (...) ... | -| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:21:10:21:11 | exit M7 (normal) | -| ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:25:13:25:14 | "" | -| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | ConditionalAccess.cs:25:9:25:32 | ... = ... | +| ConditionalAccess.cs:25:9:25:9 | access to local variable s | ConditionalAccess.cs:25:13:25:32 | Before call to method CommaJoinWith | +| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:25:9:25:32 | After ... = ... | +| ConditionalAccess.cs:25:9:25:32 | After ... = ... | ConditionalAccess.cs:25:9:25:33 | After ...; | +| ConditionalAccess.cs:25:9:25:32 | Before ... = ... | ConditionalAccess.cs:25:9:25:9 | access to local variable s | +| ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:25:9:25:32 | Before ... = ... | +| ConditionalAccess.cs:25:9:25:33 | After ...; | ConditionalAccess.cs:22:5:26:5 | After {...} | +| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | ConditionalAccess.cs:25:31:25:31 | access to local variable s | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:9:25:32 | ... = ... | +| ConditionalAccess.cs:25:13:25:32 | Before call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:14 | "" | | ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | -| ConditionalAccess.cs:30:10:30:12 | enter Out | ConditionalAccess.cs:30:32:30:32 | 0 | -| ConditionalAccess.cs:30:10:30:12 | exit Out (normal) | ConditionalAccess.cs:30:10:30:12 | exit Out | -| ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:10:30:12 | exit Out (normal) | +| ConditionalAccess.cs:30:10:30:12 | Entry | ConditionalAccess.cs:30:28:30:32 | Before ... = ... | +| ConditionalAccess.cs:30:10:30:12 | Normal Exit | ConditionalAccess.cs:30:10:30:12 | Exit | +| ConditionalAccess.cs:30:28:30:28 | access to parameter i | ConditionalAccess.cs:30:32:30:32 | 0 | +| ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:28:30:32 | After ... = ... | +| ConditionalAccess.cs:30:28:30:32 | After ... = ... | ConditionalAccess.cs:30:10:30:12 | Normal Exit | +| ConditionalAccess.cs:30:28:30:32 | Before ... = ... | ConditionalAccess.cs:30:28:30:28 | access to parameter i | | ConditionalAccess.cs:30:32:30:32 | 0 | ConditionalAccess.cs:30:28:30:32 | ... = ... | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:33:5:36:5 | {...} | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:33:5:36:5 | {...} | +| ConditionalAccess.cs:32:10:32:11 | Normal Exit | ConditionalAccess.cs:32:10:32:11 | Exit | +| ConditionalAccess.cs:33:5:36:5 | After {...} | ConditionalAccess.cs:32:10:32:11 | Normal Exit | | ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:34:9:34:14 | ...; | -| ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:35:9:35:25 | ...; | -| ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:34:13:34:13 | 0 | +| ConditionalAccess.cs:34:9:34:9 | access to parameter i | ConditionalAccess.cs:34:13:34:13 | 0 | +| ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:34:9:34:13 | After ... = ... | +| ConditionalAccess.cs:34:9:34:13 | After ... = ... | ConditionalAccess.cs:34:9:34:14 | After ...; | +| ConditionalAccess.cs:34:9:34:13 | Before ... = ... | ConditionalAccess.cs:34:9:34:9 | access to parameter i | +| ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:34:9:34:13 | Before ... = ... | +| ConditionalAccess.cs:34:9:34:14 | After ...; | ConditionalAccess.cs:35:9:35:25 | ...; | | ConditionalAccess.cs:34:13:34:13 | 0 | ConditionalAccess.cs:34:9:34:13 | ... = ... | -| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | -| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:24 | call to method Out | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | ConditionalAccess.cs:35:23:35:23 | access to parameter i | +| ConditionalAccess.cs:35:9:35:12 | Before access to property Prop | ConditionalAccess.cs:35:9:35:12 | this access | +| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | +| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | access to property Prop | -| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | this access | -| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | -| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | exit get_Item | -| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:22:42:25 | null | -| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:25 | After ...; | +| ConditionalAccess.cs:35:9:35:24 | Before call to method Out | ConditionalAccess.cs:35:9:35:12 | Before access to property Prop | +| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:24 | Before call to method Out | +| ConditionalAccess.cs:35:9:35:25 | After ...; | ConditionalAccess.cs:33:5:36:5 | After {...} | +| ConditionalAccess.cs:35:23:35:23 | access to parameter i | ConditionalAccess.cs:35:9:35:24 | call to method Out | +| ConditionalAccess.cs:42:9:42:11 | Entry | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:42:9:42:11 | Normal Exit | ConditionalAccess.cs:42:9:42:11 | Exit | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:15:42:26 | Before return ...; | +| ConditionalAccess.cs:42:15:42:26 | Before return ...; | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | Normal Exit | | ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:15:42:26 | return ...; | -| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | -| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | exit set_Item | -| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:47:5:55:5 | {...} | -| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | +| ConditionalAccess.cs:43:9:43:11 | Entry | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:43:9:43:11 | Normal Exit | ConditionalAccess.cs:43:9:43:11 | Exit | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | Normal Exit | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:46:10:46:11 | Normal Exit | ConditionalAccess.cs:46:10:46:11 | Exit | +| ConditionalAccess.cs:47:5:55:5 | After {...} | ConditionalAccess.cs:46:10:46:11 | Normal Exit | | ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:48:9:48:26 | ...; | -| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:12:48:25 | ... = ... | -| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | -| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:9:48:20 | access to field IntField | -| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:12:49:32 | ... = ... | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | -| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | -| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:12:50:23 | ... = ... | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | -| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:18:50:23 | "Set0" | -| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:9:50:14 | access to indexer | -| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:18:51:31 | ... = ... | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | -| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:9:51:26 | access to field IntField | -| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:18:52:38 | ... = ... | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | -| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | -| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | -| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:48:9:48:20 | access to field IntField | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:9:48:20 | After access to field IntField | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:48:9:48:20 | Before access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:20 | After access to field IntField | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:12:48:25 | Before ... = ... | +| ConditionalAccess.cs:48:9:48:26 | After ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:9:48:26 | After ...; | +| ConditionalAccess.cs:48:12:48:25 | Before ... = ... | ConditionalAccess.cs:48:9:48:20 | Before access to field IntField | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:12:48:25 | ... = ... | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:9:49:22 | After access to property StringProp | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:9:49:22 | Before access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:22 | After access to property StringProp | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:12:49:32 | Before ... = ... | +| ConditionalAccess.cs:49:9:49:33 | After ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:9:49:33 | After ...; | +| ConditionalAccess.cs:49:12:49:32 | Before ... = ... | ConditionalAccess.cs:49:9:49:22 | Before access to property StringProp | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:12:49:32 | ... = ... | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:9:50:14 | After access to indexer | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:50:9:50:14 | Before access to indexer | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:9:50:14 | After access to indexer | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:12:50:23 | Before ... = ... | +| ConditionalAccess.cs:50:9:50:24 | After ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:9:50:24 | After ...; | +| ConditionalAccess.cs:50:12:50:23 | Before ... = ... | ConditionalAccess.cs:50:9:50:14 | Before access to indexer | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:9:50:14 | access to indexer | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:12:50:23 | ... = ... | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | ConditionalAccess.cs:51:9:51:26 | access to field IntField | +| ConditionalAccess.cs:51:9:51:16 | Before access to property Prop | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:51:9:51:26 | After access to field IntField | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:26 | Before access to field IntField | ConditionalAccess.cs:51:9:51:16 | Before access to property Prop | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:26 | After access to field IntField | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:18:51:31 | Before ... = ... | +| ConditionalAccess.cs:51:9:51:32 | After ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:9:51:32 | After ...; | +| ConditionalAccess.cs:51:18:51:31 | Before ... = ... | ConditionalAccess.cs:51:9:51:26 | Before access to field IntField | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:18:51:31 | ... = ... | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | +| ConditionalAccess.cs:52:9:52:16 | Before access to property Prop | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:52:9:52:28 | After access to property StringProp | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:28 | Before access to property StringProp | ConditionalAccess.cs:52:9:52:16 | Before access to property Prop | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:28 | After access to property StringProp | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:18:52:38 | Before ... = ... | +| ConditionalAccess.cs:52:9:52:39 | After ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:9:52:39 | After ...; | +| ConditionalAccess.cs:52:18:52:38 | Before ... = ... | ConditionalAccess.cs:52:9:52:28 | Before access to property StringProp | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:18:52:38 | ... = ... | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:9:53:20 | After access to field IntField | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:9:53:20 | Before access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | After access to field IntField | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:12:53:25 | Before ... -= ... | +| ConditionalAccess.cs:53:9:53:26 | After ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:9:53:26 | After ...; | +| ConditionalAccess.cs:53:12:53:25 | Before ... -= ... | ConditionalAccess.cs:53:9:53:20 | Before access to field IntField | | ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... -= ... | -| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | -| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:9:54:22 | After access to property StringProp | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:9:54:22 | Before access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | After access to property StringProp | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:12:54:29 | Before ... += ... | +| ConditionalAccess.cs:54:9:54:30 | After ...; | ConditionalAccess.cs:47:5:55:5 | After {...} | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:9:54:30 | After ...; | +| ConditionalAccess.cs:54:12:54:29 | Before ... += ... | ConditionalAccess.cs:54:9:54:22 | Before access to property StringProp | | ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... += ... | -| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | -| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | Entry | ConditionalAccess.cs:60:70:60:83 | Before ... + ... | +| ConditionalAccess.cs:60:26:60:38 | Normal Exit | ConditionalAccess.cs:60:26:60:38 | Exit | | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " | -| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | -| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:78 | After ... + ... | +| ConditionalAccess.cs:60:70:60:78 | After ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | +| ConditionalAccess.cs:60:70:60:78 | Before ... + ... | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:70:60:83 | After ... + ... | +| ConditionalAccess.cs:60:70:60:83 | After ... + ... | ConditionalAccess.cs:60:26:60:38 | Normal Exit | +| ConditionalAccess.cs:60:70:60:83 | Before ... + ... | ConditionalAccess.cs:60:70:60:78 | Before ... + ... | | ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:78 | ... + ... | | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:83 | ... + ... | -| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | -| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | -| Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | exit Conditions | +| Conditions.cs:1:7:1:16 | After call to constructor Object | Conditions.cs:1:7:1:16 | {...} | +| Conditions.cs:1:7:1:16 | After call to method | Conditions.cs:1:7:1:16 | Before call to constructor Object | +| Conditions.cs:1:7:1:16 | Before call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | +| Conditions.cs:1:7:1:16 | Before call to method | Conditions.cs:1:7:1:16 | this access | +| Conditions.cs:1:7:1:16 | Entry | Conditions.cs:1:7:1:16 | Before call to method | +| Conditions.cs:1:7:1:16 | Normal Exit | Conditions.cs:1:7:1:16 | Exit | +| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | After call to constructor Object | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | After call to method | | 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 | +| Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | Normal Exit | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:4:5:9:5 | {...} | +| Conditions.cs:3:10:3:19 | Normal Exit | Conditions.cs:3:10:3:19 | Exit | +| Conditions.cs:4:5:9:5 | After {...} | Conditions.cs:3:10:3:19 | Normal Exit | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:5:9:6:16 | if (...) ... | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | ...; | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | +| Conditions.cs:5:13:5:15 | After access to parameter inc [true] | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | | Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:15 | ...++ | -| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:13 | access to parameter x | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | +| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:15 | After ...++ | +| Conditions.cs:6:13:6:15 | After ...++ | Conditions.cs:6:13:6:16 | After ...; | +| Conditions.cs:6:13:6:15 | Before ...++ | Conditions.cs:6:13:6:13 | access to parameter x | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | Before ...++ | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:4:5:9:5 | After {...} | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | !... | +| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:14:7:16 | access to parameter inc | +| Conditions.cs:7:13:7:16 | After !... [true] | Conditions.cs:8:13:8:16 | ...; | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:7:13:7:16 | After !... [true] | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:7:13:7:16 | After !... [false] | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | ...-- | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:13 | access to parameter x | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:12:5:20:5 | {...} | -| Conditions.cs:11:9:11:10 | exit M1 (normal) | Conditions.cs:11:9:11:10 | exit M1 | +| Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:15 | After ...-- | +| Conditions.cs:8:13:8:15 | After ...-- | Conditions.cs:8:13:8:16 | After ...; | +| Conditions.cs:8:13:8:15 | Before ...-- | Conditions.cs:8:13:8:13 | access to parameter x | +| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:15 | Before ...-- | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:12:5:20:5 | {...} | +| Conditions.cs:11:9:11:10 | Normal Exit | Conditions.cs:11:9:11:10 | Exit | | Conditions.cs:12:5:20:5 | {...} | Conditions.cs:13:9:13:18 | ... ...; | -| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:17:13:17 | 0 | -| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:14:9:15:16 | if (...) ... | +| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:13:13:17 | Before Int32 x = ... | +| Conditions.cs:13:9:13:18 | After ... ...; | Conditions.cs:14:9:15:16 | if (...) ... | +| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:17:13:17 | 0 | +| Conditions.cs:13:13:13:17 | After Int32 x = ... | Conditions.cs:13:9:13:18 | After ... ...; | +| Conditions.cs:13:13:13:17 | Before Int32 x = ... | Conditions.cs:13:13:13:13 | access to local variable x | +| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:13:13:17 | After Int32 x = ... | | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:17 | Int32 x = ... | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:9:18:20 | if (...) ... | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | ...; | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:14:13:14:13 | After access to parameter b [true] | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | After access to parameter b [false] | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | After access to parameter b [true] | | Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:15 | ...++ | -| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:13 | access to local variable x | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:13 | access to local variable x | +| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:15:13:15:15 | After ...++ | +| Conditions.cs:15:13:15:15 | After ...++ | Conditions.cs:15:13:15:16 | After ...; | +| Conditions.cs:15:13:15:15 | Before ...++ | Conditions.cs:15:13:15:13 | access to local variable x | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:15 | Before ...++ | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:19:9:19:17 | Before return ...; | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:17 | Before ... > ... | | Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:17:16:17 | 0 | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | After ... > ... [false] | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:13:18:20 | if (...) ... | +| Conditions.cs:16:13:16:17 | Before ... > ... | Conditions.cs:16:13:16:13 | access to local variable x | | Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:13:16:17 | ... > ... | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | !... | +| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:18:17:18 | access to parameter b | +| Conditions.cs:17:17:17:18 | After !... [true] | Conditions.cs:18:17:18:20 | ...; | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:17:17:17:18 | After !... [true] | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:17:17:17:18 | After !... [false] | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | After access to parameter b [true] | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:17 | access to local variable x | -| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | exit M1 (normal) | +| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:19 | After ...-- | +| Conditions.cs:18:17:18:19 | After ...-- | Conditions.cs:18:17:18:20 | After ...; | +| Conditions.cs:18:17:18:19 | Before ...-- | Conditions.cs:18:17:18:17 | access to local variable x | +| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:19 | Before ...-- | +| Conditions.cs:19:9:19:17 | Before return ...; | Conditions.cs:19:16:19:16 | access to local variable x | +| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | Normal Exit | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:9:19:17 | return ...; | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:23:5:31:5 | {...} | -| Conditions.cs:22:9:22:10 | exit M2 (normal) | Conditions.cs:22:9:22:10 | exit M2 | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:23:5:31:5 | {...} | +| Conditions.cs:22:9:22:10 | Normal Exit | Conditions.cs:22:9:22:10 | Exit | | Conditions.cs:23:5:31:5 | {...} | Conditions.cs:24:9:24:18 | ... ...; | -| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:17:24:17 | 0 | -| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:25:9:27:20 | if (...) ... | +| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:13:24:17 | Before Int32 x = ... | +| Conditions.cs:24:9:24:18 | After ... ...; | Conditions.cs:25:9:27:20 | if (...) ... | +| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:17:24:17 | 0 | +| Conditions.cs:24:13:24:17 | After Int32 x = ... | Conditions.cs:24:9:24:18 | After ... ...; | +| Conditions.cs:24:13:24:17 | Before Int32 x = ... | Conditions.cs:24:13:24:13 | access to local variable x | +| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:13:24:17 | After Int32 x = ... | | Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:13:24:17 | Int32 x = ... | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... | | Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:13:27:20 | if (...) ... | +| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | +| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | | Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:19 | ...++ | -| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:17 | access to local variable x | +| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:27:17:27:19 | After ...++ | +| Conditions.cs:27:17:27:19 | After ...++ | Conditions.cs:27:17:27:20 | After ...; | +| Conditions.cs:27:17:27:19 | Before ...++ | Conditions.cs:27:17:27:17 | access to local variable x | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:19 | Before ...++ | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:30:9:30:17 | Before return ...; | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | Conditions.cs:29:13:29:16 | ...; | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:13 | access to local variable x | -| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | exit M2 (normal) | +| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:15 | After ...++ | +| Conditions.cs:29:13:29:15 | After ...++ | Conditions.cs:29:13:29:16 | After ...; | +| Conditions.cs:29:13:29:15 | Before ...++ | Conditions.cs:29:13:29:13 | access to local variable x | +| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:15 | Before ...++ | +| Conditions.cs:30:9:30:17 | Before return ...; | Conditions.cs:30:16:30:16 | access to local variable x | +| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | Normal Exit | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:9:30:17 | return ...; | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:34:5:44:5 | {...} | -| Conditions.cs:33:9:33:10 | exit M3 (normal) | Conditions.cs:33:9:33:10 | exit M3 | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:34:5:44:5 | {...} | +| Conditions.cs:33:9:33:10 | Normal Exit | Conditions.cs:33:9:33:10 | Exit | | Conditions.cs:34:5:44:5 | {...} | Conditions.cs:35:9:35:18 | ... ...; | -| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:17:35:17 | 0 | -| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:36:9:36:23 | ... ...; | +| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:13:35:17 | Before Int32 x = ... | +| Conditions.cs:35:9:35:18 | After ... ...; | Conditions.cs:36:9:36:23 | ... ...; | +| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:17:35:17 | 0 | +| Conditions.cs:35:13:35:17 | After Int32 x = ... | Conditions.cs:35:9:35:18 | After ... ...; | +| Conditions.cs:35:13:35:17 | Before Int32 x = ... | Conditions.cs:35:13:35:13 | access to local variable x | +| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:13:35:17 | After Int32 x = ... | | Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:13:35:17 | Int32 x = ... | -| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:18:36:22 | false | -| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:37:9:38:20 | if (...) ... | +| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:13:36:22 | Before Boolean b2 = ... | +| Conditions.cs:36:9:36:23 | After ... ...; | Conditions.cs:37:9:38:20 | if (...) ... | +| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:18:36:22 | false | +| Conditions.cs:36:13:36:22 | After Boolean b2 = ... | Conditions.cs:36:9:36:23 | After ... ...; | +| Conditions.cs:36:13:36:22 | Before Boolean b2 = ... | Conditions.cs:36:13:36:14 | access to local variable b2 | +| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:13:36:22 | After Boolean b2 = ... | | Conditions.cs:36:18:36:22 | false | Conditions.cs:36:13:36:22 | Boolean b2 = ... | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | | Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:18:38:19 | access to parameter b1 | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | Conditions.cs:38:13:38:20 | ...; | +| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:18:38:19 | access to parameter b1 | +| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:13:38:19 | After ... = ... | +| Conditions.cs:38:13:38:19 | After ... = ... | Conditions.cs:38:13:38:20 | After ...; | +| Conditions.cs:38:13:38:19 | Before ... = ... | Conditions.cs:38:13:38:14 | access to local variable b2 | +| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:19 | Before ... = ... | | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:19 | ... = ... | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | ...; | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | | Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:15 | ...++ | -| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:13 | access to local variable x | +| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:40:13:40:15 | After ...++ | +| Conditions.cs:40:13:40:15 | After ...++ | Conditions.cs:40:13:40:16 | After ...; | +| Conditions.cs:40:13:40:15 | Before ...++ | Conditions.cs:40:13:40:13 | access to local variable x | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:15 | Before ...++ | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:43:9:43:17 | Before return ...; | | Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | Conditions.cs:42:13:42:16 | ...; | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:13 | access to local variable x | -| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | exit M3 (normal) | +| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:15 | After ...++ | +| Conditions.cs:42:13:42:15 | After ...++ | Conditions.cs:42:13:42:16 | After ...; | +| Conditions.cs:42:13:42:15 | Before ...++ | Conditions.cs:42:13:42:13 | access to local variable x | +| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:15 | Before ...++ | +| Conditions.cs:43:9:43:17 | Before return ...; | Conditions.cs:43:16:43:16 | access to local variable x | +| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | Normal Exit | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:9:43:17 | return ...; | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:47:5:55:5 | {...} | -| Conditions.cs:46:9:46:10 | exit M4 (normal) | Conditions.cs:46:9:46:10 | exit M4 | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:47:5:55:5 | {...} | +| Conditions.cs:46:9:46:10 | Normal Exit | Conditions.cs:46:9:46:10 | Exit | | Conditions.cs:47:5:55:5 | {...} | Conditions.cs:48:9:48:18 | ... ...; | -| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:17:48:17 | 0 | -| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:49:9:53:9 | while (...) ... | +| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:13:48:17 | Before Int32 y = ... | +| Conditions.cs:48:9:48:18 | After ... ...; | Conditions.cs:49:9:53:9 | while (...) ... | +| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:17:48:17 | 0 | +| Conditions.cs:48:13:48:17 | After Int32 y = ... | Conditions.cs:48:9:48:18 | After ... ...; | +| Conditions.cs:48:13:48:17 | Before Int32 y = ... | Conditions.cs:48:13:48:13 | access to local variable y | +| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:13:48:17 | After Int32 y = ... | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:17 | Int32 y = ... | -| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:16 | access to parameter x | +| Conditions.cs:49:9:53:9 | After while (...) ... | Conditions.cs:54:9:54:17 | Before return ...; | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | Before ... > ... | +| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | ...-- | -| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:22:49:22 | 0 | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | +| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:18 | After ...-- | +| Conditions.cs:49:16:49:18 | After ...-- | Conditions.cs:49:22:49:22 | 0 | +| Conditions.cs:49:16:49:18 | Before ...-- | Conditions.cs:49:16:49:16 | access to parameter x | +| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | After ... > ... [false] | +| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:49:9:53:9 | After while (...) ... | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:50:9:53:9 | {...} | +| Conditions.cs:49:16:49:22 | Before ... > ... | Conditions.cs:49:16:49:18 | Before ...-- | | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:22 | ... > ... | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:13:52:20 | if (...) ... | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:50:9:53:9 | After {...} | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:51:17:51:17 | After access to parameter b [true] | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | After access to parameter b [true] | | Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:19 | ...++ | -| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:17 | access to local variable y | -| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | exit M4 (normal) | +| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:52:17:52:19 | After ...++ | +| Conditions.cs:52:17:52:19 | After ...++ | Conditions.cs:52:17:52:20 | After ...; | +| Conditions.cs:52:17:52:19 | Before ...++ | Conditions.cs:52:17:52:17 | access to local variable y | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:19 | Before ...++ | +| Conditions.cs:54:9:54:17 | Before return ...; | Conditions.cs:54:16:54:16 | access to local variable y | +| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | Normal Exit | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | return ...; | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:58:5:68:5 | {...} | -| Conditions.cs:57:9:57:10 | exit M5 (normal) | Conditions.cs:57:9:57:10 | exit M5 | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:58:5:68:5 | {...} | +| Conditions.cs:57:9:57:10 | Normal Exit | Conditions.cs:57:9:57:10 | Exit | | Conditions.cs:58:5:68:5 | {...} | Conditions.cs:59:9:59:18 | ... ...; | -| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:17:59:17 | 0 | -| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:60:9:64:9 | while (...) ... | +| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:13:59:17 | Before Int32 y = ... | +| Conditions.cs:59:9:59:18 | After ... ...; | Conditions.cs:60:9:64:9 | while (...) ... | +| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:17:59:17 | 0 | +| Conditions.cs:59:13:59:17 | After Int32 y = ... | Conditions.cs:59:9:59:18 | After ... ...; | +| Conditions.cs:59:13:59:17 | Before Int32 y = ... | Conditions.cs:59:13:59:13 | access to local variable y | +| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:13:59:17 | After Int32 y = ... | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:17 | Int32 y = ... | -| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | +| Conditions.cs:60:9:64:9 | After while (...) ... | Conditions.cs:65:9:66:16 | if (...) ... | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | Before ... > ... | +| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | ...-- | -| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:22:60:22 | 0 | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | +| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:18 | After ...-- | +| Conditions.cs:60:16:60:18 | After ...-- | Conditions.cs:60:22:60:22 | 0 | +| Conditions.cs:60:16:60:18 | Before ...-- | Conditions.cs:60:16:60:16 | access to parameter x | +| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | After ... > ... [false] | +| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:60:9:64:9 | After while (...) ... | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:61:9:64:9 | {...} | +| Conditions.cs:60:16:60:22 | Before ... > ... | Conditions.cs:60:16:60:18 | Before ...-- | | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:22 | ... > ... | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:13:63:20 | if (...) ... | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:61:9:64:9 | After {...} | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:62:17:62:17 | After access to parameter b [true] | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | After access to parameter b [true] | | Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:19 | ...++ | -| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:17 | access to local variable y | +| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:63:17:63:19 | After ...++ | +| Conditions.cs:63:17:63:19 | After ...++ | Conditions.cs:63:17:63:20 | After ...; | +| Conditions.cs:63:17:63:19 | Before ...++ | Conditions.cs:63:17:63:17 | access to local variable y | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:19 | Before ...++ | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:67:9:67:17 | Before return ...; | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | +| Conditions.cs:65:13:65:13 | After access to parameter b [true] | Conditions.cs:66:13:66:16 | ...; | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | After access to parameter b [true] | | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:13 | access to local variable y | -| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | exit M5 (normal) | +| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:15 | After ...++ | +| Conditions.cs:66:13:66:15 | After ...++ | Conditions.cs:66:13:66:16 | After ...; | +| Conditions.cs:66:13:66:15 | Before ...++ | Conditions.cs:66:13:66:13 | access to local variable y | +| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:15 | Before ...++ | +| Conditions.cs:67:9:67:17 | Before return ...; | Conditions.cs:67:16:67:16 | access to local variable y | +| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | Normal Exit | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:9:67:17 | return ...; | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:71:5:84:5 | {...} | -| Conditions.cs:70:9:70:10 | exit M6 (normal) | Conditions.cs:70:9:70:10 | exit M6 | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:71:5:84:5 | {...} | +| Conditions.cs:70:9:70:10 | Normal Exit | Conditions.cs:70:9:70:10 | Exit | | Conditions.cs:71:5:84:5 | {...} | Conditions.cs:72:9:72:30 | ... ...; | -| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:17:72:18 | access to parameter ss | -| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:73:9:73:18 | ... ...; | +| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:13:72:29 | Before Boolean b = ... | +| Conditions.cs:72:9:72:30 | After ... ...; | Conditions.cs:73:9:73:18 | ... ...; | +| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:17:72:29 | Before ... > ... | +| Conditions.cs:72:13:72:29 | After Boolean b = ... | Conditions.cs:72:9:72:30 | After ... ...; | +| Conditions.cs:72:13:72:29 | Before Boolean b = ... | Conditions.cs:72:13:72:13 | access to local variable b | +| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:13:72:29 | After Boolean b = ... | | Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:25 | access to property Length | -| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:29:72:29 | 0 | -| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:13:72:29 | Boolean b = ... | +| Conditions.cs:72:17:72:25 | After access to property Length | Conditions.cs:72:29:72:29 | 0 | +| Conditions.cs:72:17:72:25 | Before access to property Length | Conditions.cs:72:17:72:18 | access to parameter ss | +| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:25 | After access to property Length | +| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:17:72:29 | After ... > ... | +| Conditions.cs:72:17:72:29 | After ... > ... | Conditions.cs:72:13:72:29 | Boolean b = ... | +| Conditions.cs:72:17:72:29 | Before ... > ... | Conditions.cs:72:17:72:25 | Before access to property Length | | Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:29 | ... > ... | -| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:17:73:17 | 0 | -| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:74:27:74:28 | access to parameter ss | +| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:13:73:17 | Before Int32 x = ... | +| Conditions.cs:73:9:73:18 | After ... ...; | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | +| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:17:73:17 | 0 | +| Conditions.cs:73:13:73:17 | After Int32 x = ... | Conditions.cs:73:9:73:18 | After ... ...; | +| Conditions.cs:73:13:73:17 | Before Int32 x = ... | Conditions.cs:73:13:73:13 | access to local variable x | +| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:13:73:17 | After Int32 x = ... | | Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:13:73:17 | Int32 x = ... | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | +| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | access to parameter ss | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:75:9:80:9 | {...} | -| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | +| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:75:9:80:9 | After {...} | Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:76:13:77:20 | if (...) ... | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... | | Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:78:13:79:26 | if (...) ... | +| Conditions.cs:76:17:76:17 | After access to local variable b [true] | Conditions.cs:77:17:77:20 | ...; | +| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | After access to local variable b [true] | | Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:19 | ...++ | -| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:17 | access to local variable x | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:17 | access to local variable x | +| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:77:17:77:19 | After ...++ | +| Conditions.cs:77:17:77:19 | After ...++ | Conditions.cs:77:17:77:20 | After ...; | +| Conditions.cs:77:17:77:19 | Before ...++ | Conditions.cs:77:17:77:17 | access to local variable x | +| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:19 | Before ...++ | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:75:9:80:9 | After {...} | +| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:21 | Before ... > ... | | Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:21:78:21 | 0 | -| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:79:17:79:26 | ...; | +| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:78:17:78:21 | After ... > ... [true] | Conditions.cs:79:17:79:26 | ...; | +| Conditions.cs:78:17:78:21 | Before ... > ... | Conditions.cs:78:17:78:17 | access to local variable x | | Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:17:78:21 | ... > ... | -| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:21:79:25 | false | +| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:21:79:25 | false | +| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:17:79:25 | After ... = ... | +| Conditions.cs:79:17:79:25 | After ... = ... | Conditions.cs:79:17:79:26 | After ...; | +| Conditions.cs:79:17:79:25 | Before ... = ... | Conditions.cs:79:17:79:17 | access to local variable b | +| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:25 | Before ... = ... | | Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:25 | ... = ... | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:83:9:83:17 | Before return ...; | | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:13:81:13 | access to local variable b | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:82:13:82:16 | ...; | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:83:16:83:16 | access to local variable x | +| Conditions.cs:81:13:81:13 | After access to local variable b [true] | Conditions.cs:82:13:82:16 | ...; | +| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | After access to local variable b [false] | +| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | After access to local variable b [true] | | Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:15 | ...++ | -| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:13 | access to local variable x | -| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:70:9:70:10 | exit M6 (normal) | +| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:82:13:82:15 | After ...++ | +| Conditions.cs:82:13:82:15 | After ...++ | Conditions.cs:82:13:82:16 | After ...; | +| Conditions.cs:82:13:82:15 | Before ...++ | Conditions.cs:82:13:82:13 | access to local variable x | +| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:15 | Before ...++ | +| Conditions.cs:83:9:83:17 | Before return ...; | Conditions.cs:83:16:83:16 | access to local variable x | +| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:70:9:70:10 | Normal Exit | | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:9:83:17 | return ...; | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:87:5:100:5 | {...} | -| Conditions.cs:86:9:86:10 | exit M7 (normal) | Conditions.cs:86:9:86:10 | exit M7 | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:87:5:100:5 | {...} | +| Conditions.cs:86:9:86:10 | Normal Exit | Conditions.cs:86:9:86:10 | Exit | | Conditions.cs:87:5:100:5 | {...} | Conditions.cs:88:9:88:30 | ... ...; | -| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:17:88:18 | access to parameter ss | -| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:89:9:89:18 | ... ...; | +| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:13:88:29 | Before Boolean b = ... | +| Conditions.cs:88:9:88:30 | After ... ...; | Conditions.cs:89:9:89:18 | ... ...; | +| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:17:88:29 | Before ... > ... | +| Conditions.cs:88:13:88:29 | After Boolean b = ... | Conditions.cs:88:9:88:30 | After ... ...; | +| Conditions.cs:88:13:88:29 | Before Boolean b = ... | Conditions.cs:88:13:88:13 | access to local variable b | +| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:13:88:29 | After Boolean b = ... | | Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:25 | access to property Length | -| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:29:88:29 | 0 | -| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:13:88:29 | Boolean b = ... | +| Conditions.cs:88:17:88:25 | After access to property Length | Conditions.cs:88:29:88:29 | 0 | +| Conditions.cs:88:17:88:25 | Before access to property Length | Conditions.cs:88:17:88:18 | access to parameter ss | +| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:25 | After access to property Length | +| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:17:88:29 | After ... > ... | +| Conditions.cs:88:17:88:29 | After ... > ... | Conditions.cs:88:13:88:29 | Boolean b = ... | +| Conditions.cs:88:17:88:29 | Before ... > ... | Conditions.cs:88:17:88:25 | Before access to property Length | | Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:29 | ... > ... | -| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:17:89:17 | 0 | -| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:90:27:90:28 | access to parameter ss | +| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:13:89:17 | Before Int32 x = ... | +| Conditions.cs:89:9:89:18 | After ... ...; | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | +| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:17:89:17 | 0 | +| Conditions.cs:89:13:89:17 | After Int32 x = ... | Conditions.cs:89:9:89:18 | After ... ...; | +| Conditions.cs:89:13:89:17 | Before Int32 x = ... | Conditions.cs:89:13:89:13 | access to local variable x | +| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:13:89:17 | After Int32 x = ... | | Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:13:89:17 | Int32 x = ... | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:99:9:99:17 | Before return ...; | +| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | access to parameter ss | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:91:9:98:9 | {...} | -| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | +| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:91:9:98:9 | After {...} | Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:92:13:93:20 | if (...) ... | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... | | Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:94:13:95:26 | if (...) ... | +| Conditions.cs:92:17:92:17 | After access to local variable b [true] | Conditions.cs:93:17:93:20 | ...; | +| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | After access to local variable b [true] | | Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:19 | ...++ | -| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:17 | access to local variable x | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:17 | access to local variable x | +| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:93:17:93:19 | After ...++ | +| Conditions.cs:93:17:93:19 | After ...++ | Conditions.cs:93:17:93:20 | After ...; | +| Conditions.cs:93:17:93:19 | Before ...++ | Conditions.cs:93:17:93:17 | access to local variable x | +| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:19 | Before ...++ | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... | +| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:21 | Before ... > ... | | Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:21:94:21 | 0 | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:96:13:97:20 | if (...) ... | +| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:94:17:94:21 | After ... > ... [true] | Conditions.cs:95:17:95:26 | ...; | +| Conditions.cs:94:17:94:21 | Before ... > ... | Conditions.cs:94:17:94:17 | access to local variable x | | Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:17:94:21 | ... > ... | -| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:21:95:25 | false | +| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:21:95:25 | false | +| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:17:95:25 | After ... = ... | +| Conditions.cs:95:17:95:25 | After ... = ... | Conditions.cs:95:17:95:26 | After ...; | +| Conditions.cs:95:17:95:25 | Before ... = ... | Conditions.cs:95:17:95:17 | access to local variable b | +| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:25 | Before ... = ... | | Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:25 | ... = ... | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:91:9:98:9 | After {...} | | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | -| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; | +| Conditions.cs:96:17:96:17 | After access to local variable b [true] | Conditions.cs:97:17:97:20 | ...; | +| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | After access to local variable b [true] | | Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:19 | ...++ | -| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:17 | access to local variable x | -| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:86:9:86:10 | exit M7 (normal) | +| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:97:17:97:19 | After ...++ | +| Conditions.cs:97:17:97:19 | After ...++ | Conditions.cs:97:17:97:20 | After ...; | +| Conditions.cs:97:17:97:19 | Before ...++ | Conditions.cs:97:17:97:17 | access to local variable x | +| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:19 | Before ...++ | +| Conditions.cs:99:9:99:17 | Before return ...; | Conditions.cs:99:16:99:16 | access to local variable x | +| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:86:9:86:10 | Normal Exit | | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:9:99:17 | return ...; | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:103:5:111:5 | {...} | -| Conditions.cs:102:12:102:13 | exit M8 (normal) | Conditions.cs:102:12:102:13 | exit M8 | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:103:5:111:5 | {...} | +| Conditions.cs:102:12:102:13 | Normal Exit | Conditions.cs:102:12:102:13 | Exit | | Conditions.cs:103:5:111:5 | {...} | Conditions.cs:104:9:104:29 | ... ...; | -| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:17:104:17 | access to parameter b | -| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:105:9:106:20 | if (...) ... | +| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:13:104:28 | Before String x = ... | +| Conditions.cs:104:9:104:29 | After ... ...; | Conditions.cs:105:9:106:20 | if (...) ... | +| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:17:104:28 | Before call to method ToString | +| Conditions.cs:104:13:104:28 | After String x = ... | Conditions.cs:104:9:104:29 | After ... ...; | +| Conditions.cs:104:13:104:28 | Before String x = ... | Conditions.cs:104:13:104:13 | access to local variable x | +| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:13:104:28 | After String x = ... | | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | call to method ToString | -| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | +| Conditions.cs:104:17:104:28 | After call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | +| Conditions.cs:104:17:104:28 | Before call to method ToString | Conditions.cs:104:17:104:17 | access to parameter b | +| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:28 | After call to method ToString | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | ...; | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:105:13:105:13 | After access to parameter b [true] | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | After access to parameter b [false] | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | After access to parameter b [true] | | Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:18:106:19 | "" | -| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:13 | access to local variable x | +| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:13:106:19 | After ... += ... | +| Conditions.cs:106:13:106:19 | After ... += ... | Conditions.cs:106:13:106:20 | After ...; | +| Conditions.cs:106:13:106:19 | Before ... += ... | Conditions.cs:106:13:106:13 | access to local variable x | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:19 | Before ... += ... | | Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:13:106:19 | ... += ... | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:13 | access to local variable x | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:110:9:110:17 | Before return ...; | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:24 | Before ... > ... | | Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:20 | access to property Length | -| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:24:107:24 | 0 | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | +| Conditions.cs:107:13:107:20 | After access to property Length | Conditions.cs:107:24:107:24 | 0 | +| Conditions.cs:107:13:107:20 | Before access to property Length | Conditions.cs:107:13:107:13 | access to local variable x | +| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:13:107:20 | After access to property Length | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | After ... > ... [false] | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:13:109:24 | if (...) ... | +| Conditions.cs:107:13:107:24 | Before ... > ... | Conditions.cs:107:13:107:20 | Before access to property Length | | Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:24 | ... > ... | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | !... | +| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:18:108:18 | access to parameter b | +| Conditions.cs:108:17:108:18 | After !... [true] | Conditions.cs:109:17:109:24 | ...; | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:108:17:108:18 | After !... [true] | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:108:17:108:18 | After !... [false] | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | After access to parameter b [true] | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:17 | access to local variable x | +| Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:109:17:109:23 | After ... += ... | +| Conditions.cs:109:17:109:23 | After ... += ... | Conditions.cs:109:17:109:24 | After ...; | +| Conditions.cs:109:17:109:23 | Before ... += ... | Conditions.cs:109:17:109:17 | access to local variable x | +| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:23 | Before ... += ... | | Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:23 | ... += ... | -| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:102:12:102:13 | exit M8 (normal) | +| Conditions.cs:110:9:110:17 | Before return ...; | Conditions.cs:110:16:110:16 | access to local variable x | +| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:102:12:102:13 | Normal Exit | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:9:110:17 | return ...; | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:114:5:124:5 | {...} | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | exit M9 | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:114:5:124:5 | {...} | +| Conditions.cs:113:10:113:11 | Normal Exit | Conditions.cs:113:10:113:11 | Exit | +| Conditions.cs:114:5:124:5 | After {...} | Conditions.cs:113:10:113:11 | Normal Exit | | Conditions.cs:114:5:124:5 | {...} | Conditions.cs:115:9:115:24 | ... ...; | -| Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:115:20:115:23 | null | -| Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:116:9:123:9 | for (...;...;...) ... | +| Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:115:16:115:23 | Before String s = ... | +| Conditions.cs:115:9:115:24 | After ... ...; | Conditions.cs:116:9:123:9 | for (...;...;...) ... | +| Conditions.cs:115:16:115:16 | access to local variable s | Conditions.cs:115:20:115:23 | null | +| Conditions.cs:115:16:115:23 | After String s = ... | Conditions.cs:115:9:115:24 | After ... ...; | +| Conditions.cs:115:16:115:23 | Before String s = ... | Conditions.cs:115:16:115:16 | access to local variable s | +| Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:115:16:115:23 | After String s = ... | | Conditions.cs:115:20:115:23 | null | Conditions.cs:115:16:115:23 | String s = ... | -| Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:116:22:116:22 | 0 | -| Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:25:116:25 | access to local variable i | +| Conditions.cs:116:9:123:9 | After for (...;...;...) ... | Conditions.cs:114:5:124:5 | After {...} | +| Conditions.cs:116:9:123:9 | [LoopHeader] for (...;...;...) ... | Conditions.cs:116:42:116:44 | Before ...++ | +| Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:116:18:116:22 | Before Int32 i = ... | +| Conditions.cs:116:18:116:18 | access to local variable i | Conditions.cs:116:22:116:22 | 0 | +| Conditions.cs:116:18:116:22 | After Int32 i = ... | Conditions.cs:116:25:116:39 | Before ... < ... | +| Conditions.cs:116:18:116:22 | Before Int32 i = ... | Conditions.cs:116:18:116:18 | access to local variable i | +| Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:18:116:22 | After Int32 i = ... | | Conditions.cs:116:22:116:22 | 0 | Conditions.cs:116:18:116:22 | Int32 i = ... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:29:116:32 | access to parameter args | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:113:10:113:11 | exit M9 (normal) | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:117:9:123:9 | {...} | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:29:116:39 | Before access to property Length | +| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [false] | +| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:116:9:123:9 | After for (...;...;...) ... | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:117:9:123:9 | {...} | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:116:29:116:32 | access to parameter args | Conditions.cs:116:29:116:39 | access to property Length | -| Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:116:25:116:39 | ... < ... | +| Conditions.cs:116:29:116:39 | After access to property Length | Conditions.cs:116:25:116:39 | ... < ... | +| Conditions.cs:116:29:116:39 | Before access to property Length | Conditions.cs:116:29:116:32 | access to parameter args | +| Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:116:29:116:39 | After access to property Length | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:44 | ...++ | +| Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:116:42:116:44 | After ...++ | +| Conditions.cs:116:42:116:44 | Before ...++ | Conditions.cs:116:42:116:42 | access to local variable i | +| Conditions.cs:117:9:123:9 | After {...} | Conditions.cs:116:9:123:9 | [LoopHeader] for (...;...;...) ... | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:118:13:118:44 | ... ...; | -| Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:118:24:118:24 | access to local variable i | -| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:119:13:120:23 | if (...) ... | -| Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:29:118:32 | access to parameter args | -| Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:17:118:43 | Boolean last = ... | +| Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:118:17:118:43 | Before Boolean last = ... | +| Conditions.cs:118:13:118:44 | After ... ...; | Conditions.cs:119:13:120:23 | if (...) ... | +| Conditions.cs:118:17:118:20 | access to local variable last | Conditions.cs:118:24:118:43 | Before ... == ... | +| Conditions.cs:118:17:118:43 | After Boolean last = ... | Conditions.cs:118:13:118:44 | After ... ...; | +| Conditions.cs:118:17:118:43 | Before Boolean last = ... | Conditions.cs:118:17:118:20 | access to local variable last | +| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:118:17:118:43 | After Boolean last = ... | +| Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:29:118:43 | Before ... - ... | +| Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:24:118:43 | After ... == ... | +| Conditions.cs:118:24:118:43 | After ... == ... | Conditions.cs:118:17:118:43 | Boolean last = ... | +| Conditions.cs:118:24:118:43 | Before ... == ... | Conditions.cs:118:24:118:24 | access to local variable i | | Conditions.cs:118:29:118:32 | access to parameter args | Conditions.cs:118:29:118:39 | access to property Length | -| Conditions.cs:118:29:118:39 | access to property Length | Conditions.cs:118:43:118:43 | 1 | -| Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:24:118:43 | ... == ... | +| Conditions.cs:118:29:118:39 | After access to property Length | Conditions.cs:118:43:118:43 | 1 | +| Conditions.cs:118:29:118:39 | Before access to property Length | Conditions.cs:118:29:118:32 | access to parameter args | +| Conditions.cs:118:29:118:39 | access to property Length | Conditions.cs:118:29:118:39 | After access to property Length | +| Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:29:118:43 | After ... - ... | +| Conditions.cs:118:29:118:43 | After ... - ... | Conditions.cs:118:24:118:43 | ... == ... | +| Conditions.cs:118:29:118:43 | Before ... - ... | Conditions.cs:118:29:118:39 | Before access to property Length | | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:29:118:43 | ... - ... | -| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:18:119:21 | access to local variable last | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:21:120:22 | "" | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:13:122:25 | if (...) ... | +| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:17:119:21 | !... | +| Conditions.cs:119:17:119:21 | !... | Conditions.cs:119:18:119:21 | access to local variable last | +| Conditions.cs:119:17:119:21 | After !... [true] | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:119:17:119:21 | After !... [true] | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:119:17:119:21 | After !... [false] | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:120:17:120:17 | access to local variable s | Conditions.cs:120:21:120:22 | "" | +| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:120:17:120:22 | After ... = ... | +| Conditions.cs:120:17:120:22 | After ... = ... | Conditions.cs:120:17:120:23 | After ...; | +| Conditions.cs:120:17:120:22 | Before ... = ... | Conditions.cs:120:17:120:17 | access to local variable s | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:22 | Before ... = ... | | Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:17:120:22 | ... = ... | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:117:9:123:9 | After {...} | | Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:21:122:24 | null | +| Conditions.cs:121:17:121:20 | After access to local variable last [true] | Conditions.cs:122:17:122:25 | ...; | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:122:17:122:17 | access to local variable s | Conditions.cs:122:21:122:24 | null | +| Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:122:17:122:24 | After ... = ... | +| Conditions.cs:122:17:122:24 | After ... = ... | Conditions.cs:122:17:122:25 | After ...; | +| Conditions.cs:122:17:122:24 | Before ... = ... | Conditions.cs:122:17:122:17 | access to local variable s | +| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:24 | Before ... = ... | | Conditions.cs:122:21:122:24 | null | Conditions.cs:122:17:122:24 | ... = ... | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:130:5:141:5 | {...} | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:130:5:141:5 | {...} | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:131:9:140:9 | while (...) ... | -| Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:131:16:131:19 | true | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:131:16:131:19 | true | +| Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | +| Conditions.cs:131:16:131:19 | After true [true] | Conditions.cs:132:9:140:9 | {...} | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | After true [true] | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:133:13:139:13 | if (...) ... | -| Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:133:17:133:22 | this access | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:133:13:139:13 | After if (...) ... | Conditions.cs:132:9:140:9 | After {...} | +| Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:133:17:133:22 | Before access to field Field1 | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:133:17:133:22 | Before access to field Field1 | Conditions.cs:133:17:133:22 | this access | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | | Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:17:133:22 | access to field Field1 | | Conditions.cs:134:13:139:13 | {...} | Conditions.cs:135:17:138:17 | if (...) ... | -| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:135:21:135:26 | this access | -| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:136:17:138:17 | {...} | +| Conditions.cs:135:17:138:17 | After if (...) ... | Conditions.cs:134:13:139:13 | After {...} | +| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:135:21:135:26 | Before access to field Field2 | +| Conditions.cs:135:21:135:26 | After access to field Field2 [true] | Conditions.cs:136:17:138:17 | {...} | +| Conditions.cs:135:21:135:26 | Before access to field Field2 | Conditions.cs:135:21:135:26 | this access | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | | Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:21:135:26 | access to field Field2 | | Conditions.cs:136:17:138:17 | {...} | Conditions.cs:137:21:137:38 | ...; | -| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:37 | call to method ToString | +| Conditions.cs:137:21:137:26 | After access to field Field1 | Conditions.cs:137:21:137:37 | call to method ToString | +| Conditions.cs:137:21:137:26 | Before access to field Field1 | Conditions.cs:137:21:137:26 | this access | +| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:26 | After access to field Field1 | | Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:26 | access to field Field1 | -| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:26 | this access | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:144:5:150:5 | {...} | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 | +| Conditions.cs:137:21:137:37 | After call to method ToString | Conditions.cs:137:21:137:38 | After ...; | +| Conditions.cs:137:21:137:37 | Before call to method ToString | Conditions.cs:137:21:137:26 | Before access to field Field1 | +| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:137:21:137:37 | After call to method ToString | +| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:37 | Before call to method ToString | +| Conditions.cs:137:21:137:38 | After ...; | Conditions.cs:136:17:138:17 | After {...} | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:144:5:150:5 | {...} | +| Conditions.cs:143:10:143:12 | Normal Exit | Conditions.cs:143:10:143:12 | Exit | +| Conditions.cs:144:5:150:5 | After {...} | Conditions.cs:143:10:143:12 | Normal Exit | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:145:9:145:30 | ... ...; | -| Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:17:145:17 | access to parameter b | -| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:146:9:149:49 | if (...) ... | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | "a" | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | "b" | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:13:145:29 | String s = ... | +| Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:13:145:29 | Before String s = ... | +| Conditions.cs:145:9:145:30 | After ... ...; | Conditions.cs:146:9:149:49 | if (...) ... | +| Conditions.cs:145:13:145:13 | access to local variable s | Conditions.cs:145:17:145:29 | ... ? ... : ... | +| Conditions.cs:145:13:145:29 | After String s = ... | Conditions.cs:145:9:145:30 | After ... ...; | +| Conditions.cs:145:13:145:29 | Before String s = ... | Conditions.cs:145:13:145:13 | access to local variable s | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:13:145:29 | After String s = ... | +| Conditions.cs:145:17:145:17 | After access to parameter b [false] | Conditions.cs:145:27:145:29 | "b" | +| Conditions.cs:145:17:145:17 | After access to parameter b [true] | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | After access to parameter b [false] | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | After access to parameter b [true] | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:17 | access to parameter b | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:13:145:29 | String s = ... | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:144:5:150:5 | After {...} | | Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:146:13:146:13 | access to parameter b | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:149:13:149:49 | ...; | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:40:147:43 | "a = " | -| Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:13:147:48 | call to method WriteLine | -| Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:45:147:45 | access to local variable s | -| Conditions.cs:147:44:147:46 | {...} | Conditions.cs:147:38:147:47 | $"..." | +| Conditions.cs:146:13:146:13 | After access to parameter b [false] | Conditions.cs:149:13:149:49 | ...; | +| Conditions.cs:146:13:146:13 | After access to parameter b [true] | Conditions.cs:147:13:147:49 | ...; | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | After access to parameter b [false] | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | After access to parameter b [true] | +| Conditions.cs:147:13:147:48 | After call to method WriteLine | Conditions.cs:147:13:147:49 | After ...; | +| Conditions.cs:147:13:147:48 | Before call to method WriteLine | Conditions.cs:147:38:147:47 | Before $"..." | +| Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:147:13:147:48 | After call to method WriteLine | +| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:48 | Before call to method WriteLine | +| Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:38:147:47 | After $"..." | +| Conditions.cs:147:38:147:47 | After $"..." | Conditions.cs:147:13:147:48 | call to method WriteLine | +| Conditions.cs:147:38:147:47 | Before $"..." | Conditions.cs:147:40:147:43 | "a = " | +| Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:44:147:46 | Before {...} | +| Conditions.cs:147:44:147:46 | After {...} | Conditions.cs:147:38:147:47 | $"..." | +| Conditions.cs:147:44:147:46 | Before {...} | Conditions.cs:147:45:147:45 | access to local variable s | +| Conditions.cs:147:44:147:46 | {...} | Conditions.cs:147:44:147:46 | After {...} | | Conditions.cs:147:45:147:45 | access to local variable s | Conditions.cs:147:44:147:46 | {...} | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:40:149:43 | "b = " | -| Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:13:149:48 | call to method WriteLine | -| Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:45:149:45 | access to local variable s | -| Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:38:149:47 | $"..." | +| Conditions.cs:149:13:149:48 | After call to method WriteLine | Conditions.cs:149:13:149:49 | After ...; | +| Conditions.cs:149:13:149:48 | Before call to method WriteLine | Conditions.cs:149:38:149:47 | Before $"..." | +| Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:149:13:149:48 | After call to method WriteLine | +| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:48 | Before call to method WriteLine | +| Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:38:149:47 | After $"..." | +| Conditions.cs:149:38:149:47 | After $"..." | Conditions.cs:149:13:149:48 | call to method WriteLine | +| Conditions.cs:149:38:149:47 | Before $"..." | Conditions.cs:149:40:149:43 | "b = " | +| Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:44:149:46 | Before {...} | +| Conditions.cs:149:44:149:46 | After {...} | Conditions.cs:149:38:149:47 | $"..." | +| Conditions.cs:149:44:149:46 | Before {...} | Conditions.cs:149:45:149:45 | access to local variable s | +| Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:44:149:46 | After {...} | | 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 | 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 | After call to constructor Object | ExitMethods.cs:6:7:6:17 | {...} | +| ExitMethods.cs:6:7:6:17 | After call to method | ExitMethods.cs:6:7:6:17 | Before call to constructor Object | +| ExitMethods.cs:6:7:6:17 | Before call to constructor Object | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | Before call to method | ExitMethods.cs:6:7:6:17 | this access | +| ExitMethods.cs:6:7:6:17 | Entry | ExitMethods.cs:6:7:6:17 | Before call to method | +| ExitMethods.cs:6:7:6:17 | Normal Exit | ExitMethods.cs:6:7:6:17 | Exit | +| ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | After call to constructor Object | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | After call to method | | 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 | +| ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | Normal Exit | +| ExitMethods.cs:8:10:8:11 | Entry | ExitMethods.cs:9:5:12:5 | {...} | +| ExitMethods.cs:8:10:8:11 | Normal Exit | ExitMethods.cs:8:10:8:11 | Exit | | ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:10:9:10:25 | ...; | -| ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:11:9:11:15 | return ...; | -| ExitMethods.cs:10:9:10:25 | ...; | ExitMethods.cs:10:20:10:23 | true | +| ExitMethods.cs:10:9:10:24 | After call to method ErrorMaybe | ExitMethods.cs:10:9:10:25 | After ...; | +| ExitMethods.cs:10:9:10:24 | Before call to method ErrorMaybe | ExitMethods.cs:10:20:10:23 | true | +| ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:10:9:10:24 | After call to method ErrorMaybe | +| ExitMethods.cs:10:9:10:25 | ...; | ExitMethods.cs:10:9:10:24 | Before call to method ErrorMaybe | +| ExitMethods.cs:10:9:10:25 | After ...; | ExitMethods.cs:11:9:11:15 | Before return ...; | | ExitMethods.cs:10:20:10:23 | true | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | -| ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | -| ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:15:5:18:5 | {...} | -| ExitMethods.cs:14:10:14:11 | exit M2 (normal) | ExitMethods.cs:14:10:14:11 | exit M2 | +| ExitMethods.cs:11:9:11:15 | Before return ...; | ExitMethods.cs:11:9:11:15 | return ...; | +| ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:8:10:8:11 | Normal Exit | +| ExitMethods.cs:14:10:14:11 | Entry | ExitMethods.cs:15:5:18:5 | {...} | +| ExitMethods.cs:14:10:14:11 | Normal Exit | ExitMethods.cs:14:10:14:11 | Exit | | ExitMethods.cs:15:5:18:5 | {...} | ExitMethods.cs:16:9:16:26 | ...; | -| ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | ExitMethods.cs:17:9:17:15 | return ...; | -| ExitMethods.cs:16:9:16:26 | ...; | ExitMethods.cs:16:20:16:24 | false | +| ExitMethods.cs:16:9:16:25 | After call to method ErrorMaybe | ExitMethods.cs:16:9:16:26 | After ...; | +| ExitMethods.cs:16:9:16:25 | Before call to method ErrorMaybe | ExitMethods.cs:16:20:16:24 | false | +| ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | ExitMethods.cs:16:9:16:25 | After call to method ErrorMaybe | +| ExitMethods.cs:16:9:16:26 | ...; | ExitMethods.cs:16:9:16:25 | Before call to method ErrorMaybe | +| ExitMethods.cs:16:9:16:26 | After ...; | ExitMethods.cs:17:9:17:15 | Before return ...; | | ExitMethods.cs:16:20:16:24 | false | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | -| ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:14:10:14:11 | exit M2 (normal) | -| ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:21:5:24:5 | {...} | -| ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | ExitMethods.cs:20:10:20:11 | exit M3 | +| ExitMethods.cs:17:9:17:15 | Before return ...; | ExitMethods.cs:17:9:17:15 | return ...; | +| ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:14:10:14:11 | Normal Exit | +| ExitMethods.cs:20:10:20:11 | Entry | ExitMethods.cs:21:5:24:5 | {...} | +| ExitMethods.cs:20:10:20:11 | Exceptional Exit | ExitMethods.cs:20:10:20:11 | Exit | | ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:22:9:22:26 | ...; | -| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | -| ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:21:22:24 | true | +| ExitMethods.cs:22:9:22:25 | Before call to method ErrorAlways | ExitMethods.cs:22:21:22:24 | true | +| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | Exceptional Exit | +| ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:9:22:25 | Before call to method ErrorAlways | | ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | -| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:27:5:30:5 | {...} | -| ExitMethods.cs:26:10:26:11 | exit M4 (abnormal) | ExitMethods.cs:26:10:26:11 | exit M4 | +| ExitMethods.cs:26:10:26:11 | Entry | ExitMethods.cs:27:5:30:5 | {...} | +| ExitMethods.cs:26:10:26:11 | Exceptional Exit | ExitMethods.cs:26:10:26:11 | Exit | | ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:28:9:28:15 | ...; | -| ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:26:10:26:11 | exit M4 (abnormal) | +| ExitMethods.cs:28:9:28:14 | Before call to method Exit | ExitMethods.cs:28:9:28:14 | this access | +| ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:26:10:26:11 | Exceptional Exit | | ExitMethods.cs:28:9:28:14 | this access | ExitMethods.cs:28:9:28:14 | call to method Exit | -| ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:28:9:28:14 | this access | -| ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:33:5:36:5 | {...} | -| ExitMethods.cs:32:10:32:11 | exit M5 (abnormal) | ExitMethods.cs:32:10:32:11 | exit M5 | +| ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:28:9:28:14 | Before call to method Exit | +| ExitMethods.cs:32:10:32:11 | Entry | ExitMethods.cs:33:5:36:5 | {...} | +| ExitMethods.cs:32:10:32:11 | Exceptional Exit | ExitMethods.cs:32:10:32:11 | Exit | | ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:34:9:34:26 | ...; | -| ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:32:10:32:11 | exit M5 (abnormal) | +| ExitMethods.cs:34:9:34:25 | Before call to method ApplicationExit | ExitMethods.cs:34:9:34:25 | this access | +| ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:32:10:32:11 | Exceptional Exit | | ExitMethods.cs:34:9:34:25 | this access | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | -| ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:34:9:34:25 | this access | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:39:5:52:5 | {...} | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 | +| ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:34:9:34:25 | Before call to method ApplicationExit | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:39:5:52:5 | {...} | | ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:40:9:51:9 | try {...} ... | | ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:41:9:43:9 | {...} | | ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:42:13:42:31 | ...; | +| ExitMethods.cs:42:13:42:30 | Before call to method ErrorAlways | ExitMethods.cs:42:25:42:29 | false | | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | catch (...) {...} | -| ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:25:42:29 | false | +| ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:13:42:30 | Before call to method ErrorAlways | | ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | -| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | -| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:55:5:58:5 | {...} | -| ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | ExitMethods.cs:54:10:54:11 | exit M7 | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | ExitMethods.cs:45:9:47:9 | {...} | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | catch (...) {...} | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | Before return ...; | +| ExitMethods.cs:46:13:46:19 | Before return ...; | ExitMethods.cs:46:13:46:19 | return ...; | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:49:9:51:9 | {...} | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | ExitMethods.cs:38:10:38:11 | Exceptional Exit | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | Before return ...; | +| ExitMethods.cs:50:13:50:19 | Before return ...; | ExitMethods.cs:50:13:50:19 | return ...; | +| ExitMethods.cs:54:10:54:11 | Entry | ExitMethods.cs:55:5:58:5 | {...} | +| ExitMethods.cs:54:10:54:11 | Exceptional Exit | ExitMethods.cs:54:10:54:11 | Exit | | ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:56:9:56:23 | ...; | -| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | -| ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | -| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:61:5:64:5 | {...} | -| ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | ExitMethods.cs:60:10:60:11 | exit M8 | +| ExitMethods.cs:56:9:56:22 | Before call to method ErrorAlways2 | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | +| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | Exceptional Exit | +| ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:22 | Before call to method ErrorAlways2 | +| ExitMethods.cs:60:10:60:11 | Entry | ExitMethods.cs:61:5:64:5 | {...} | +| ExitMethods.cs:60:10:60:11 | Exceptional Exit | ExitMethods.cs:60:10:60:11 | Exit | | ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:62:9:62:23 | ...; | -| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | -| ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:67:5:70:5 | {...} | +| ExitMethods.cs:62:9:62:22 | Before call to method ErrorAlways3 | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | +| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | Exceptional Exit | +| ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:22 | Before call to method ErrorAlways3 | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:67:5:70:5 | {...} | +| ExitMethods.cs:67:5:70:5 | After {...} | ExitMethods.cs:66:17:66:26 | Normal Exit | | ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:68:9:69:34 | if (...) ... | +| ExitMethods.cs:68:9:69:34 | After if (...) ... | ExitMethods.cs:67:5:70:5 | After {...} | | ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:68:13:68:13 | access to parameter b | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:69:19:69:33 | object creation of type Exception | -| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | -| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:13:69:34 | throw ...; | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:73:5:78:5 | {...} | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | exit ErrorAlways | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:68:9:69:34 | After if (...) ... | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | ExitMethods.cs:69:13:69:34 | Before throw ...; | +| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | +| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | +| ExitMethods.cs:69:13:69:34 | Before throw ...; | ExitMethods.cs:69:19:69:33 | Before object creation of type Exception | +| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | Exceptional Exit | +| ExitMethods.cs:69:19:69:33 | After object creation of type Exception | ExitMethods.cs:69:13:69:34 | throw ...; | +| ExitMethods.cs:69:19:69:33 | Before object creation of type Exception | ExitMethods.cs:69:19:69:33 | object creation of type Exception | +| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:19:69:33 | After object creation of type Exception | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:73:5:78:5 | {...} | +| ExitMethods.cs:72:17:72:27 | Exceptional Exit | ExitMethods.cs:72:17:72:27 | Exit | | ExitMethods.cs:73:5:78:5 | {...} | ExitMethods.cs:74:9:77:45 | if (...) ... | | ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:74:13:74:13 | access to parameter b | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:75:19:75:33 | object creation of type Exception | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:77:41:77:43 | "b" | -| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:13:75:34 | throw ...; | -| ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:13:77:45 | throw ...; | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | ExitMethods.cs:77:13:77:45 | Before throw ...; | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | ExitMethods.cs:75:13:75:34 | Before throw ...; | +| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | +| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | +| ExitMethods.cs:75:13:75:34 | Before throw ...; | ExitMethods.cs:75:19:75:33 | Before object creation of type Exception | +| ExitMethods.cs:75:19:75:33 | After object creation of type Exception | ExitMethods.cs:75:13:75:34 | throw ...; | +| ExitMethods.cs:75:19:75:33 | Before object creation of type Exception | ExitMethods.cs:75:19:75:33 | object creation of type Exception | +| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:19:75:33 | After object creation of type Exception | +| ExitMethods.cs:77:13:77:45 | Before throw ...; | ExitMethods.cs:77:19:77:44 | Before object creation of type ArgumentException | +| ExitMethods.cs:77:19:77:44 | After object creation of type ArgumentException | ExitMethods.cs:77:13:77:45 | throw ...; | +| ExitMethods.cs:77:19:77:44 | Before object creation of type ArgumentException | ExitMethods.cs:77:41:77:43 | "b" | +| ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:19:77:44 | After object creation of type ArgumentException | | ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | -| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:81:5:83:5 | {...} | -| ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 | -| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:82:15:82:29 | object creation of type Exception | -| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | -| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:9:82:30 | throw ...; | -| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:41:85:55 | object creation of type Exception | -| ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 | -| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | -| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:35:85:55 | throw ... | -| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:88:5:90:5 | {...} | -| ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | ExitMethods.cs:87:10:87:13 | exit Exit | +| ExitMethods.cs:80:17:80:28 | Entry | ExitMethods.cs:81:5:83:5 | {...} | +| ExitMethods.cs:80:17:80:28 | Exceptional Exit | ExitMethods.cs:80:17:80:28 | Exit | +| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:82:9:82:30 | Before throw ...; | +| ExitMethods.cs:82:9:82:30 | Before throw ...; | ExitMethods.cs:82:15:82:29 | Before object creation of type Exception | +| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | Exceptional Exit | +| ExitMethods.cs:82:15:82:29 | After object creation of type Exception | ExitMethods.cs:82:9:82:30 | throw ...; | +| ExitMethods.cs:82:15:82:29 | Before object creation of type Exception | ExitMethods.cs:82:15:82:29 | object creation of type Exception | +| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:15:82:29 | After object creation of type Exception | +| ExitMethods.cs:85:17:85:28 | Entry | ExitMethods.cs:85:35:85:55 | Before throw ... | +| ExitMethods.cs:85:17:85:28 | Exceptional Exit | ExitMethods.cs:85:17:85:28 | Exit | +| ExitMethods.cs:85:35:85:55 | Before throw ... | ExitMethods.cs:85:41:85:55 | Before object creation of type Exception | +| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | Exceptional Exit | +| ExitMethods.cs:85:41:85:55 | After object creation of type Exception | ExitMethods.cs:85:35:85:55 | throw ... | +| ExitMethods.cs:85:41:85:55 | Before object creation of type Exception | ExitMethods.cs:85:41:85:55 | object creation of type Exception | +| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:41:85:55 | After object creation of type Exception | +| ExitMethods.cs:87:10:87:13 | Entry | ExitMethods.cs:88:5:90:5 | {...} | +| ExitMethods.cs:87:10:87:13 | Exceptional Exit | ExitMethods.cs:87:10:87:13 | Exit | | ExitMethods.cs:88:5:90:5 | {...} | ExitMethods.cs:89:9:89:28 | ...; | -| ExitMethods.cs:89:9:89:27 | call to method Exit | ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | -| ExitMethods.cs:89:9:89:28 | ...; | ExitMethods.cs:89:26:89:26 | 0 | +| ExitMethods.cs:89:9:89:27 | Before call to method Exit | ExitMethods.cs:89:26:89:26 | 0 | +| ExitMethods.cs:89:9:89:27 | call to method Exit | ExitMethods.cs:87:10:87:13 | Exceptional Exit | +| ExitMethods.cs:89:9:89:28 | ...; | ExitMethods.cs:89:9:89:27 | Before call to method Exit | | ExitMethods.cs:89:26:89:26 | 0 | ExitMethods.cs:89:9:89:27 | call to method Exit | -| ExitMethods.cs:92:10:92:18 | enter ExitInTry | ExitMethods.cs:93:5:103:5 | {...} | -| ExitMethods.cs:92:10:92:18 | exit ExitInTry (abnormal) | ExitMethods.cs:92:10:92:18 | exit ExitInTry | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:93:5:103:5 | {...} | +| ExitMethods.cs:93:5:103:5 | After {...} | ExitMethods.cs:92:10:92:18 | Normal Exit | | ExitMethods.cs:93:5:103:5 | {...} | ExitMethods.cs:94:9:102:9 | try {...} ... | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:93:5:103:5 | After {...} | | ExitMethods.cs:94:9:102:9 | try {...} ... | ExitMethods.cs:95:9:97:9 | {...} | | ExitMethods.cs:95:9:97:9 | {...} | ExitMethods.cs:96:13:96:19 | ...; | -| ExitMethods.cs:96:13:96:18 | call to method Exit | ExitMethods.cs:92:10:92:18 | exit ExitInTry (abnormal) | +| ExitMethods.cs:96:13:96:18 | Before call to method Exit | ExitMethods.cs:96:13:96:18 | this access | +| ExitMethods.cs:96:13:96:18 | call to method Exit | ExitMethods.cs:99:9:102:9 | {...} | | ExitMethods.cs:96:13:96:18 | this access | ExitMethods.cs:96:13:96:18 | call to method Exit | -| ExitMethods.cs:96:13:96:19 | ...; | ExitMethods.cs:96:13:96:18 | this access | -| ExitMethods.cs:105:10:105:24 | enter ApplicationExit | ExitMethods.cs:106:5:108:5 | {...} | -| ExitMethods.cs:105:10:105:24 | exit ApplicationExit (abnormal) | ExitMethods.cs:105:10:105:24 | exit ApplicationExit | +| ExitMethods.cs:96:13:96:19 | ...; | ExitMethods.cs:96:13:96:18 | Before call to method Exit | +| ExitMethods.cs:99:9:102:9 | After {...} | ExitMethods.cs:92:10:92:18 | Exceptional Exit | +| ExitMethods.cs:99:9:102:9 | After {...} | ExitMethods.cs:94:9:102:9 | After try {...} ... | +| ExitMethods.cs:99:9:102:9 | {...} | ExitMethods.cs:101:13:101:41 | ...; | +| ExitMethods.cs:101:13:101:40 | After call to method WriteLine | ExitMethods.cs:101:13:101:41 | After ...; | +| ExitMethods.cs:101:13:101:40 | Before call to method WriteLine | ExitMethods.cs:101:38:101:39 | "" | +| ExitMethods.cs:101:13:101:40 | call to method WriteLine | ExitMethods.cs:101:13:101:40 | After call to method WriteLine | +| ExitMethods.cs:101:13:101:41 | ...; | ExitMethods.cs:101:13:101:40 | Before call to method WriteLine | +| ExitMethods.cs:101:13:101:41 | After ...; | ExitMethods.cs:99:9:102:9 | After {...} | +| ExitMethods.cs:101:38:101:39 | "" | ExitMethods.cs:101:13:101:40 | call to method WriteLine | +| ExitMethods.cs:105:10:105:24 | Entry | ExitMethods.cs:106:5:108:5 | {...} | +| ExitMethods.cs:105:10:105:24 | Exceptional Exit | ExitMethods.cs:105:10:105:24 | Exit | | ExitMethods.cs:106:5:108:5 | {...} | ExitMethods.cs:107:9:107:48 | ...; | -| ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:105:10:105:24 | exit ApplicationExit (abnormal) | -| ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:107:9:107:47 | call to method Exit | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:111:5:113:5 | {...} | -| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:112:16:112:20 | access to parameter input | -| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (normal) | -| ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:112:25:112:25 | 0 | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:29:112:29 | 1 | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:69:112:75 | "input" | -| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:9:112:77 | return ...; | +| ExitMethods.cs:107:9:107:47 | Before call to method Exit | ExitMethods.cs:107:9:107:47 | call to method Exit | +| ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:105:10:105:24 | Exceptional Exit | +| ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:107:9:107:47 | Before call to method Exit | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:111:5:113:5 | {...} | +| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:112:9:112:77 | Before return ...; | +| ExitMethods.cs:112:9:112:77 | Before return ...; | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | +| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:110:13:110:21 | Normal Exit | +| ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:112:25:112:25 | Before (...) ... | +| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | +| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | +| ExitMethods.cs:112:16:112:25 | After ... != ... [false] | ExitMethods.cs:112:41:112:76 | Before throw ... | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:112:29:112:37 | Before ... / ... | +| ExitMethods.cs:112:16:112:25 | Before ... != ... | ExitMethods.cs:112:16:112:20 | access to parameter input | +| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:16:112:25 | Before ... != ... | +| ExitMethods.cs:112:16:112:76 | After ... ? ... : ... | ExitMethods.cs:112:9:112:77 | return ...; | | ExitMethods.cs:112:25:112:25 | 0 | ExitMethods.cs:112:25:112:25 | (...) ... | -| ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:112:16:112:25 | ... != ... | +| ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:112:25:112:25 | After (...) ... | +| ExitMethods.cs:112:25:112:25 | After (...) ... | ExitMethods.cs:112:16:112:25 | ... != ... | +| ExitMethods.cs:112:25:112:25 | Before (...) ... | ExitMethods.cs:112:25:112:25 | 0 | | ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:29:112:29 | (...) ... | -| ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:33:112:37 | access to parameter input | -| ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | +| ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:29:112:29 | After (...) ... | +| ExitMethods.cs:112:29:112:29 | After (...) ... | ExitMethods.cs:112:33:112:37 | access to parameter input | +| ExitMethods.cs:112:29:112:29 | Before (...) ... | ExitMethods.cs:112:29:112:29 | 1 | +| ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:29:112:37 | After ... / ... | +| ExitMethods.cs:112:29:112:37 | After ... / ... | ExitMethods.cs:112:16:112:76 | After ... ? ... : ... | +| ExitMethods.cs:112:29:112:37 | Before ... / ... | ExitMethods.cs:112:29:112:29 | Before (...) ... | | ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:112:29:112:37 | ... / ... | -| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | -| ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:41:112:76 | throw ... | +| ExitMethods.cs:112:41:112:76 | Before throw ... | ExitMethods.cs:112:47:112:76 | Before object creation of type ArgumentException | +| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | Exceptional Exit | +| ExitMethods.cs:112:47:112:76 | After object creation of type ArgumentException | ExitMethods.cs:112:41:112:76 | throw ... | +| ExitMethods.cs:112:47:112:76 | Before object creation of type ArgumentException | ExitMethods.cs:112:69:112:75 | "input" | +| ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:47:112:76 | After object creation of type ArgumentException | | ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:116:5:118:5 | {...} | -| ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall (normal) | ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall | -| ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:117:16:117:16 | access to parameter s | -| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall (normal) | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:116:5:118:5 | {...} | +| ExitMethods.cs:115:16:115:34 | Normal Exit | ExitMethods.cs:115:16:115:34 | Exit | +| ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:117:9:117:39 | Before return ...; | +| ExitMethods.cs:117:9:117:39 | Before return ...; | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | +| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:115:16:115:34 | Normal Exit | | ExitMethods.cs:117:16:117:16 | access to parameter s | ExitMethods.cs:117:27:117:29 | - | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:34:117:34 | 0 | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:38:117:38 | 1 | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:9:117:39 | return ...; | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | ExitMethods.cs:117:38:117:38 | 1 | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | ExitMethods.cs:117:34:117:34 | 0 | +| ExitMethods.cs:117:16:117:30 | Before call to method Contains | ExitMethods.cs:117:16:117:16 | access to parameter s | +| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | +| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | +| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:16:117:30 | Before call to method Contains | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:9:117:39 | return ...; | | ExitMethods.cs:117:27:117:29 | - | ExitMethods.cs:117:16:117:30 | call to method Contains | -| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:121:5:124:5 | {...} | -| ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | +| ExitMethods.cs:120:17:120:32 | Entry | ExitMethods.cs:121:5:124:5 | {...} | +| ExitMethods.cs:120:17:120:32 | Exceptional Exit | ExitMethods.cs:120:17:120:32 | Exit | | ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:122:9:122:29 | ...; | -| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | -| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:23:122:27 | false | +| ExitMethods.cs:122:9:122:28 | Before call to method IsTrue | ExitMethods.cs:122:23:122:27 | false | +| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:120:17:120:32 | Exceptional Exit | +| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:9:122:28 | Before call to method IsTrue | | ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | call to method IsTrue | -| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:127:5:130:5 | {...} | -| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | +| ExitMethods.cs:126:17:126:33 | Entry | ExitMethods.cs:127:5:130:5 | {...} | +| ExitMethods.cs:126:17:126:33 | Exceptional Exit | ExitMethods.cs:126:17:126:33 | Exit | | ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:128:9:128:27 | ...; | -| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | +| ExitMethods.cs:128:9:128:26 | Before call to method FailingAssertion | ExitMethods.cs:128:9:128:26 | this access | +| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | Exceptional Exit | | ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | -| ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:26 | this access | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | -| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | -| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | +| ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:26 | Before call to method FailingAssertion | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:33:132:49 | Before call to method IsFalse | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:10:132:20 | Normal Exit | +| ExitMethods.cs:132:33:132:49 | Before call to method IsFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | +| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | Exceptional Exit | +| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:33:132:49 | After call to method IsFalse | | ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | call to method IsFalse | -| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:135:5:138:5 | {...} | -| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | +| ExitMethods.cs:134:17:134:33 | Entry | ExitMethods.cs:135:5:138:5 | {...} | +| ExitMethods.cs:134:17:134:33 | Exceptional Exit | ExitMethods.cs:134:17:134:33 | Exit | | ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:136:9:136:26 | ...; | -| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | +| ExitMethods.cs:136:9:136:25 | Before call to method AssertFalse | ExitMethods.cs:136:9:136:25 | this access | +| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:134:17:134:33 | Exceptional Exit | | ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:21:136:24 | true | -| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | this access | +| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | Before call to method AssertFalse | | ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:141:5:147:5 | {...} | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:141:5:147:5 | {...} | +| ExitMethods.cs:140:17:140:42 | Exceptional Exit | ExitMethods.cs:140:17:140:42 | Exit | | ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:142:9:145:53 | if (...) ... | | ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:142:13:142:13 | access to parameter b | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:143:13:143:43 | ...; | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:145:13:145:53 | ...; | -| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:41:143:41 | access to parameter e | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | ExitMethods.cs:145:13:145:53 | ...; | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | ExitMethods.cs:143:13:143:43 | ...; | +| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | +| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | +| ExitMethods.cs:143:13:143:42 | Before call to method Throw | ExitMethods.cs:143:41:143:41 | access to parameter e | +| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:13:143:42 | Before call to method Throw | | ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:143:13:143:42 | call to method Throw | -| ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:13:145:52 | call to method Throw | -| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:43:145:43 | access to parameter e | +| ExitMethods.cs:145:13:145:44 | After call to method Capture | ExitMethods.cs:145:13:145:52 | call to method Throw | +| ExitMethods.cs:145:13:145:44 | Before call to method Capture | ExitMethods.cs:145:43:145:43 | access to parameter e | +| ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:13:145:44 | After call to method Capture | +| ExitMethods.cs:145:13:145:52 | Before call to method Throw | ExitMethods.cs:145:13:145:44 | Before call to method Capture | +| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:13:145:52 | Before call to method Throw | | ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:13:145:44 | call to method Capture | -| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:6:5:8:5 | {...} | -| Extensions.cs:5:23:5:29 | exit ToInt32 (normal) | Extensions.cs:5:23:5:29 | exit ToInt32 | -| Extensions.cs:6:5:8:5 | {...} | Extensions.cs:7:28:7:28 | access to parameter s | -| Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:5:23:5:29 | exit ToInt32 (normal) | -| Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:7:9:7:30 | return ...; | +| Extensions.cs:5:23:5:29 | Entry | Extensions.cs:6:5:8:5 | {...} | +| Extensions.cs:5:23:5:29 | Normal Exit | Extensions.cs:5:23:5:29 | Exit | +| Extensions.cs:6:5:8:5 | {...} | Extensions.cs:7:9:7:30 | Before return ...; | +| Extensions.cs:7:9:7:30 | Before return ...; | Extensions.cs:7:16:7:29 | Before call to method Parse | +| Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:5:23:5:29 | Normal Exit | +| Extensions.cs:7:16:7:29 | After call to method Parse | Extensions.cs:7:9:7:30 | return ...; | +| Extensions.cs:7:16:7:29 | Before call to method Parse | Extensions.cs:7:28:7:28 | access to parameter s | +| Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:7:16:7:29 | After call to method Parse | | Extensions.cs:7:28:7:28 | access to parameter s | Extensions.cs:7:16:7:29 | call to method Parse | -| Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:11:5:13:5 | {...} | -| Extensions.cs:10:24:10:29 | exit ToBool (normal) | Extensions.cs:10:24:10:29 | exit ToBool | -| Extensions.cs:11:5:13:5 | {...} | Extensions.cs:12:16:12:16 | access to parameter f | -| Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:10:24:10:29 | exit ToBool (normal) | +| Extensions.cs:10:24:10:29 | Entry | Extensions.cs:11:5:13:5 | {...} | +| Extensions.cs:10:24:10:29 | Normal Exit | Extensions.cs:10:24:10:29 | Exit | +| Extensions.cs:11:5:13:5 | {...} | Extensions.cs:12:9:12:20 | Before return ...; | +| Extensions.cs:12:9:12:20 | Before return ...; | Extensions.cs:12:16:12:19 | Before delegate call | +| Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:10:24:10:29 | Normal Exit | | Extensions.cs:12:16:12:16 | access to parameter f | Extensions.cs:12:18:12:18 | access to parameter s | -| Extensions.cs:12:16:12:19 | delegate call | Extensions.cs:12:9:12:20 | return ...; | +| Extensions.cs:12:16:12:19 | After delegate call | Extensions.cs:12:9:12:20 | return ...; | +| Extensions.cs:12:16:12:19 | Before delegate call | Extensions.cs:12:16:12:16 | access to parameter f | +| Extensions.cs:12:16:12:19 | delegate call | Extensions.cs:12:16:12:19 | After delegate call | | Extensions.cs:12:18:12:18 | access to parameter s | Extensions.cs:12:16:12:19 | delegate call | -| Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:48:15:50 | "0" | -| Extensions.cs:15:23:15:33 | exit CallToInt32 (normal) | Extensions.cs:15:23:15:33 | exit CallToInt32 | -| Extensions.cs:15:40:15:51 | call to method ToInt32 | Extensions.cs:15:23:15:33 | exit CallToInt32 (normal) | +| Extensions.cs:15:23:15:33 | Entry | Extensions.cs:15:40:15:51 | Before call to method ToInt32 | +| Extensions.cs:15:23:15:33 | Normal Exit | Extensions.cs:15:23:15:33 | Exit | +| Extensions.cs:15:40:15:51 | After call to method ToInt32 | Extensions.cs:15:23:15:33 | Normal Exit | +| Extensions.cs:15:40:15:51 | Before call to method ToInt32 | Extensions.cs:15:48:15:50 | "0" | +| Extensions.cs:15:40:15:51 | call to method ToInt32 | Extensions.cs:15:40:15:51 | After call to method ToInt32 | | Extensions.cs:15:48:15:50 | "0" | Extensions.cs:15:40:15:51 | call to method ToInt32 | -| Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:21:5:26:5 | {...} | -| Extensions.cs:20:17:20:20 | exit Main (normal) | Extensions.cs:20:17:20:20 | exit Main | +| Extensions.cs:20:17:20:20 | Entry | Extensions.cs:21:5:26:5 | {...} | +| Extensions.cs:20:17:20:20 | Normal Exit | Extensions.cs:20:17:20:20 | Exit | +| Extensions.cs:21:5:26:5 | After {...} | Extensions.cs:20:17:20:20 | Normal Exit | | Extensions.cs:21:5:26:5 | {...} | Extensions.cs:22:9:22:20 | ...; | | Extensions.cs:22:9:22:9 | access to parameter s | Extensions.cs:22:9:22:19 | call to method ToInt32 | -| Extensions.cs:22:9:22:19 | call to method ToInt32 | Extensions.cs:23:9:23:31 | ...; | -| Extensions.cs:22:9:22:20 | ...; | Extensions.cs:22:9:22:9 | access to parameter s | -| Extensions.cs:23:9:23:30 | call to method ToInt32 | Extensions.cs:24:9:24:46 | ...; | -| Extensions.cs:23:9:23:31 | ...; | Extensions.cs:23:28:23:29 | "" | +| Extensions.cs:22:9:22:19 | After call to method ToInt32 | Extensions.cs:22:9:22:20 | After ...; | +| Extensions.cs:22:9:22:19 | Before call to method ToInt32 | Extensions.cs:22:9:22:9 | access to parameter s | +| Extensions.cs:22:9:22:19 | call to method ToInt32 | Extensions.cs:22:9:22:19 | After call to method ToInt32 | +| Extensions.cs:22:9:22:20 | ...; | Extensions.cs:22:9:22:19 | Before call to method ToInt32 | +| Extensions.cs:22:9:22:20 | After ...; | Extensions.cs:23:9:23:31 | ...; | +| Extensions.cs:23:9:23:30 | After call to method ToInt32 | Extensions.cs:23:9:23:31 | After ...; | +| Extensions.cs:23:9:23:30 | Before call to method ToInt32 | Extensions.cs:23:28:23:29 | "" | +| Extensions.cs:23:9:23:30 | call to method ToInt32 | Extensions.cs:23:9:23:30 | After call to method ToInt32 | +| Extensions.cs:23:9:23:31 | ...; | Extensions.cs:23:9:23:30 | Before call to method ToInt32 | +| Extensions.cs:23:9:23:31 | After ...; | Extensions.cs:24:9:24:46 | ...; | | Extensions.cs:23:28:23:29 | "" | Extensions.cs:23:9:23:30 | call to method ToInt32 | -| Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:25:9:25:34 | ...; | -| Extensions.cs:24:9:24:46 | ...; | Extensions.cs:24:27:24:32 | "true" | -| Extensions.cs:24:27:24:32 | "true" | Extensions.cs:24:35:24:44 | access to method Parse | +| Extensions.cs:24:9:24:45 | After call to method ToBool | Extensions.cs:24:9:24:46 | After ...; | +| Extensions.cs:24:9:24:45 | Before call to method ToBool | Extensions.cs:24:27:24:32 | "true" | +| Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:24:9:24:45 | After call to method ToBool | +| Extensions.cs:24:9:24:46 | ...; | Extensions.cs:24:9:24:45 | Before call to method ToBool | +| Extensions.cs:24:9:24:46 | After ...; | Extensions.cs:25:9:25:34 | ...; | +| Extensions.cs:24:27:24:32 | "true" | Extensions.cs:24:35:24:44 | Before delegate creation of type Func | +| Extensions.cs:24:35:24:44 | After delegate creation of type Func | Extensions.cs:24:9:24:45 | call to method ToBool | +| Extensions.cs:24:35:24:44 | Before delegate creation of type Func | Extensions.cs:24:35:24:44 | access to method Parse | | Extensions.cs:24:35:24:44 | access to method Parse | Extensions.cs:24:35:24:44 | delegate creation of type Func | -| Extensions.cs:24:35:24:44 | delegate creation of type Func | Extensions.cs:24:9:24:45 | call to method ToBool | -| Extensions.cs:25:9:25:14 | "true" | Extensions.cs:25:23:25:32 | access to method Parse | -| Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:20:17:20:20 | exit Main (normal) | -| Extensions.cs:25:9:25:34 | ...; | Extensions.cs:25:9:25:14 | "true" | +| Extensions.cs:24:35:24:44 | delegate creation of type Func | Extensions.cs:24:35:24:44 | After delegate creation of type Func | +| Extensions.cs:25:9:25:14 | "true" | Extensions.cs:25:23:25:32 | Before delegate creation of type Func | +| Extensions.cs:25:9:25:33 | After call to method ToBool | Extensions.cs:25:9:25:34 | After ...; | +| Extensions.cs:25:9:25:33 | Before call to method ToBool | Extensions.cs:25:9:25:14 | "true" | +| Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:25:9:25:33 | After call to method ToBool | +| Extensions.cs:25:9:25:34 | ...; | Extensions.cs:25:9:25:33 | Before call to method ToBool | +| Extensions.cs:25:9:25:34 | After ...; | Extensions.cs:21:5:26:5 | After {...} | +| Extensions.cs:25:23:25:32 | After delegate creation of type Func | Extensions.cs:25:9:25:33 | call to method ToBool | +| Extensions.cs:25:23:25:32 | Before delegate creation of type Func | 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 | 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 | 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 | +| Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | After delegate creation of type Func | +| Finally.cs:3:14:3:20 | After call to constructor Object | Finally.cs:3:14:3:20 | {...} | +| Finally.cs:3:14:3:20 | After call to method | Finally.cs:3:14:3:20 | Before call to constructor Object | +| Finally.cs:3:14:3:20 | Before call to constructor Object | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | Before call to method | Finally.cs:3:14:3:20 | this access | +| Finally.cs:3:14:3:20 | Entry | Finally.cs:3:14:3:20 | Before call to method | +| Finally.cs:3:14:3:20 | Normal Exit | Finally.cs:3:14:3:20 | Exit | +| Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | After call to constructor Object | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | After call to method | | 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:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | Normal Exit | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:8:5:17:5 | {...} | +| Finally.cs:8:5:17:5 | After {...} | Finally.cs:7:10:7:11 | Normal Exit | | Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:8:5:17:5 | After {...} | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:10:9:12:9 | {...} | | Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:38 | ...; | +| Finally.cs:11:13:11:37 | After call to method WriteLine | Finally.cs:11:13:11:38 | After ...; | +| Finally.cs:11:13:11:37 | Before call to method WriteLine | Finally.cs:11:31:11:36 | "Try1" | +| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:11:13:11:37 | After call to method WriteLine | | Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} | -| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:31:11:36 | "Try1" | +| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:13:11:37 | Before call to method WriteLine | +| Finally.cs:11:13:11:38 | After ...; | Finally.cs:10:9:12:9 | After {...} | | Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:37 | call to method WriteLine | +| Finally.cs:14:9:16:9 | After {...} | Finally.cs:7:10:7:11 | Exceptional Exit | +| Finally.cs:14:9:16:9 | After {...} | Finally.cs:9:9:16:9 | After try {...} ... | | Finally.cs:14:9:16:9 | {...} | Finally.cs:15:13:15:41 | ...; | -| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | -| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (normal) | -| Finally.cs:15:13:15:41 | ...; | Finally.cs:15:31:15:39 | "Finally" | +| Finally.cs:15:13:15:40 | After call to method WriteLine | Finally.cs:15:13:15:41 | After ...; | +| Finally.cs:15:13:15:40 | Before call to method WriteLine | Finally.cs:15:31:15:39 | "Finally" | +| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:15:13:15:40 | After call to method WriteLine | +| Finally.cs:15:13:15:41 | ...; | Finally.cs:15:13:15:40 | Before call to method WriteLine | +| Finally.cs:15:13:15:41 | After ...; | Finally.cs:14:9:16:9 | After {...} | | Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:40 | call to method WriteLine | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:20:5:52:5 | {...} | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:20:5:52:5 | {...} | | Finally.cs:20:5:52:5 | {...} | Finally.cs:21:9:51:9 | try {...} ... | +| Finally.cs:21:9:51:9 | After try {...} ... | Finally.cs:20:5:52:5 | After {...} | | Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:22:9:25:9 | {...} | | Finally.cs:22:9:25:9 | {...} | Finally.cs:23:13:23:38 | ...; | -| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:24:13:24:19 | return ...; | +| Finally.cs:23:13:23:37 | After call to method WriteLine | Finally.cs:23:13:23:38 | After ...; | +| Finally.cs:23:13:23:37 | Before call to method WriteLine | Finally.cs:23:31:23:36 | "Try2" | +| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:23:13:23:37 | After call to method WriteLine | | Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | catch (...) {...} | -| Finally.cs:23:13:23:38 | ...; | Finally.cs:23:31:23:36 | "Try2" | +| Finally.cs:23:13:23:38 | ...; | Finally.cs:23:13:23:37 | Before call to method WriteLine | +| Finally.cs:23:13:23:38 | After ...; | Finally.cs:24:13:24:19 | Before return ...; | | Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:13:23:37 | call to method WriteLine | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:24:13:24:19 | Before return ...; | Finally.cs:24:13:24:19 | return ...; | +| Finally.cs:26:9:29:9 | After catch (...) {...} [match] | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | | Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:48:26:51 | true | -| Finally.cs:26:48:26:51 | true | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | +| Finally.cs:26:48:26:51 | After true [true] | Finally.cs:27:9:29:9 | {...} | +| Finally.cs:26:48:26:51 | true | Finally.cs:26:48:26:51 | After true [true] | +| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | Before throw ...; | +| Finally.cs:28:13:28:18 | Before throw ...; | Finally.cs:28:13:28:18 | throw ...; | +| Finally.cs:30:9:40:9 | After catch (...) {...} [match] | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | catch (...) {...} | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | | Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:31:9:40:9 | {...} | | Finally.cs:31:9:40:9 | {...} | Finally.cs:32:13:39:13 | try {...} ... | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:33:13:35:13 | {...} | | Finally.cs:33:13:35:13 | {...} | Finally.cs:34:17:34:32 | if (...) ... | | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:34:21:34:24 | true | -| Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:34:21:34:24 | After true [true] | Finally.cs:34:27:34:32 | Before throw ...; | +| Finally.cs:34:21:34:24 | true | Finally.cs:34:21:34:24 | After true [true] | +| Finally.cs:34:27:34:32 | Before throw ...; | Finally.cs:34:27:34:32 | throw ...; | | Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | {...} | -| Finally.cs:37:13:39:13 | {...} | Finally.cs:38:37:38:42 | "Boo!" | -| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:17:38:44 | throw ...; | +| Finally.cs:37:13:39:13 | {...} | Finally.cs:38:17:38:44 | Before throw ...; | +| Finally.cs:38:17:38:44 | Before throw ...; | Finally.cs:38:23:38:43 | Before object creation of type Exception | +| Finally.cs:38:23:38:43 | After object creation of type Exception | Finally.cs:38:17:38:44 | throw ...; | +| Finally.cs:38:23:38:43 | Before object creation of type Exception | Finally.cs:38:37:38:42 | "Boo!" | +| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:23:38:43 | After object creation of type Exception | | Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:38:23:38:43 | object creation of type Exception | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:45:9:47:9 | {...} | -| Finally.cs:45:9:47:9 | {...} | Finally.cs:46:13:46:19 | return ...; | +| Finally.cs:41:9:43:9 | After catch (...) {...} [match] | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:44:9:47:9 | After catch {...} [match] | Finally.cs:45:9:47:9 | {...} | +| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:44:9:47:9 | After catch {...} [match] | +| Finally.cs:45:9:47:9 | {...} | Finally.cs:46:13:46:19 | Before return ...; | +| Finally.cs:46:13:46:19 | Before return ...; | Finally.cs:46:13:46:19 | return ...; | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:19:10:19:11 | Exceptional Exit | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:19:10:19:11 | Normal Exit | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:21:9:51:9 | After try {...} ... | | Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:41 | ...; | -| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | -| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (normal) | -| Finally.cs:50:13:50:41 | ...; | Finally.cs:50:31:50:39 | "Finally" | +| Finally.cs:50:13:50:40 | After call to method WriteLine | Finally.cs:50:13:50:41 | After ...; | +| Finally.cs:50:13:50:40 | Before call to method WriteLine | Finally.cs:50:31:50:39 | "Finally" | +| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:50:13:50:40 | After call to method WriteLine | +| Finally.cs:50:13:50:41 | ...; | Finally.cs:50:13:50:40 | Before call to method WriteLine | +| Finally.cs:50:13:50:41 | After ...; | Finally.cs:49:9:51:9 | After {...} | | Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:40 | call to method WriteLine | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:55:5:72:5 | {...} | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:55:5:72:5 | {...} | | Finally.cs:55:5:72:5 | {...} | Finally.cs:56:9:71:9 | try {...} ... | +| Finally.cs:56:9:71:9 | After try {...} ... | Finally.cs:55:5:72:5 | After {...} | | Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:57:9:60:9 | {...} | | Finally.cs:57:9:60:9 | {...} | Finally.cs:58:13:58:38 | ...; | -| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:58:13:58:37 | After call to method WriteLine | Finally.cs:58:13:58:38 | After ...; | +| Finally.cs:58:13:58:37 | Before call to method WriteLine | Finally.cs:58:31:58:36 | "Try3" | +| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:58:13:58:37 | After call to method WriteLine | | Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | catch (...) {...} | -| Finally.cs:58:13:58:38 | ...; | Finally.cs:58:31:58:36 | "Try3" | +| Finally.cs:58:13:58:38 | ...; | Finally.cs:58:13:58:37 | Before call to method WriteLine | +| Finally.cs:58:13:58:38 | After ...; | Finally.cs:59:13:59:19 | Before return ...; | | Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:13:58:37 | call to method WriteLine | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:59:13:59:19 | Before return ...; | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:61:9:64:9 | After catch (...) {...} [match] | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | | Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:48:61:51 | true | -| Finally.cs:61:48:61:51 | true | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:35 | access to local variable e | +| Finally.cs:61:48:61:51 | After true [true] | Finally.cs:62:9:64:9 | {...} | +| Finally.cs:61:48:61:51 | true | Finally.cs:61:48:61:51 | After true [true] | +| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | Before throw ...; | +| Finally.cs:63:13:63:18 | Before throw ...; | Finally.cs:63:13:63:18 | throw ...; | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:51 | Before ... != ... | | Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:35:65:43 | access to property Message | -| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:48:65:51 | null | -| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:65:35:65:43 | After access to property Message | Finally.cs:65:48:65:51 | null | +| Finally.cs:65:35:65:43 | Before access to property Message | Finally.cs:65:35:65:35 | access to local variable e | +| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:35:65:43 | After access to property Message | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:65:35:65:51 | After ... != ... [true] | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:65:35:65:51 | Before ... != ... | Finally.cs:65:35:65:43 | Before access to property Message | | Finally.cs:65:48:65:51 | null | Finally.cs:65:35:65:51 | ... != ... | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:54:10:54:11 | Exceptional Exit | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:54:10:54:11 | Normal Exit | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:56:9:71:9 | After try {...} ... | | Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:41 | ...; | -| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | -| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (normal) | -| Finally.cs:70:13:70:41 | ...; | Finally.cs:70:31:70:39 | "Finally" | +| Finally.cs:70:13:70:40 | After call to method WriteLine | Finally.cs:70:13:70:41 | After ...; | +| Finally.cs:70:13:70:40 | Before call to method WriteLine | Finally.cs:70:31:70:39 | "Finally" | +| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:70:13:70:40 | After call to method WriteLine | +| Finally.cs:70:13:70:41 | ...; | Finally.cs:70:13:70:40 | Before call to method WriteLine | +| Finally.cs:70:13:70:41 | After ...; | Finally.cs:69:9:71:9 | After {...} | | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:40 | call to method WriteLine | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:75:5:101:5 | {...} | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:75:5:101:5 | {...} | | Finally.cs:75:5:101:5 | {...} | Finally.cs:76:9:76:19 | ... ...; | -| Finally.cs:76:9:76:19 | ... ...; | Finally.cs:76:17:76:18 | 10 | -| Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:77:9:100:9 | while (...) ... | +| Finally.cs:76:9:76:19 | ... ...; | Finally.cs:76:13:76:18 | Before Int32 i = ... | +| Finally.cs:76:9:76:19 | After ... ...; | Finally.cs:77:9:100:9 | while (...) ... | +| Finally.cs:76:13:76:13 | access to local variable i | Finally.cs:76:17:76:18 | 10 | +| Finally.cs:76:13:76:18 | After Int32 i = ... | Finally.cs:76:9:76:19 | After ... ...; | +| Finally.cs:76:13:76:18 | Before Int32 i = ... | Finally.cs:76:13:76:13 | access to local variable i | +| Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:76:13:76:18 | After Int32 i = ... | | Finally.cs:76:17:76:18 | 10 | Finally.cs:76:13:76:18 | Int32 i = ... | -| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:77:16:77:16 | access to local variable i | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:75:5:101:5 | After {...} | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:16:77:20 | Before ... > ... | +| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:20:77:20 | 0 | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:74:10:74:11 | exit M4 (normal) | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:78:9:100:9 | {...} | +| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:78:9:100:9 | {...} | +| Finally.cs:77:16:77:20 | Before ... > ... | Finally.cs:77:16:77:16 | access to local variable i | | Finally.cs:77:20:77:20 | 0 | Finally.cs:77:16:77:20 | ... > ... | | Finally.cs:78:9:100:9 | {...} | Finally.cs:79:13:99:13 | try {...} ... | +| Finally.cs:79:13:99:13 | After try {...} ... | Finally.cs:78:9:100:9 | After {...} | | Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:80:13:87:13 | {...} | | Finally.cs:80:13:87:13 | {...} | Finally.cs:81:17:82:27 | if (...) ... | -| Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:81:21:81:21 | access to local variable i | +| Finally.cs:81:17:82:27 | After if (...) ... | Finally.cs:83:17:84:29 | if (...) ... | +| Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:81:21:81:26 | Before ... == ... | | Finally.cs:81:21:81:21 | access to local variable i | Finally.cs:81:26:81:26 | 0 | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:83:17:84:29 | if (...) ... | +| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:81:17:82:27 | After if (...) ... | +| Finally.cs:81:21:81:26 | After ... == ... [true] | Finally.cs:82:21:82:27 | Before return ...; | +| Finally.cs:81:21:81:26 | Before ... == ... | Finally.cs:81:21:81:21 | access to local variable i | | Finally.cs:81:26:81:26 | 0 | Finally.cs:81:21:81:26 | ... == ... | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:21 | access to local variable i | +| Finally.cs:82:21:82:27 | Before return ...; | Finally.cs:82:21:82:27 | return ...; | +| Finally.cs:83:17:84:29 | After if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:26 | Before ... == ... | | Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:83:26:83:26 | 1 | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:85:17:86:26 | if (...) ... | +| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:83:17:84:29 | After if (...) ... | +| Finally.cs:83:21:83:26 | After ... == ... [true] | Finally.cs:84:21:84:29 | Before continue; | +| Finally.cs:83:21:83:26 | Before ... == ... | Finally.cs:83:21:83:21 | access to local variable i | | Finally.cs:83:26:83:26 | 1 | Finally.cs:83:21:83:26 | ... == ... | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:21 | access to local variable i | +| Finally.cs:84:21:84:29 | Before continue; | Finally.cs:84:21:84:29 | continue; | +| Finally.cs:85:17:86:26 | After if (...) ... | Finally.cs:80:13:87:13 | After {...} | +| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:26 | Before ... == ... | | Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:26:85:26 | 2 | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:86:21:86:26 | break; | +| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:85:21:85:26 | After ... == ... [false] | Finally.cs:85:17:86:26 | After if (...) ... | +| Finally.cs:85:21:85:26 | After ... == ... [true] | Finally.cs:86:21:86:26 | Before break; | +| Finally.cs:85:21:85:26 | Before ... == ... | Finally.cs:85:21:85:21 | access to local variable i | | Finally.cs:85:26:85:26 | 2 | Finally.cs:85:21:85:26 | ... == ... | +| Finally.cs:86:21:86:26 | Before break; | Finally.cs:86:21:86:26 | break; | +| Finally.cs:89:13:99:13 | After {...} | Finally.cs:79:13:99:13 | After try {...} ... | | Finally.cs:89:13:99:13 | {...} | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:89:13:99:13 | After {...} | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:91:17:94:17 | {...} | | Finally.cs:91:17:94:17 | {...} | Finally.cs:92:21:93:46 | if (...) ... | -| Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:92:25:92:25 | access to local variable i | +| Finally.cs:92:21:93:46 | After if (...) ... | Finally.cs:91:17:94:17 | After {...} | +| Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:92:25:92:30 | Before ... == ... | | Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:30:92:30 | 3 | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:96:17:98:17 | {...} | +| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:92:25:92:30 | After ... == ... [false] | Finally.cs:92:21:93:46 | After if (...) ... | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:93:25:93:46 | Before throw ...; | +| Finally.cs:92:25:92:30 | Before ... == ... | Finally.cs:92:25:92:25 | access to local variable i | | Finally.cs:92:30:92:30 | 3 | Finally.cs:92:25:92:30 | ... == ... | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | +| Finally.cs:93:25:93:46 | Before throw ...; | Finally.cs:93:31:93:45 | Before object creation of type Exception | +| Finally.cs:93:31:93:45 | After object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | +| Finally.cs:93:31:93:45 | Before object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | +| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:96:17:98:17 | After {...} | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:96:17:98:17 | After {...} | Finally.cs:90:17:98:17 | After try {...} ... | | Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:24 | ...; | | Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:23 | ...-- | -| Finally.cs:97:21:97:23 | ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | -| Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:21 | access to local variable i | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:104:5:119:5 | {...} | +| Finally.cs:97:21:97:23 | ...-- | Finally.cs:97:21:97:23 | After ...-- | +| Finally.cs:97:21:97:23 | After ...-- | Finally.cs:97:21:97:24 | After ...; | +| Finally.cs:97:21:97:23 | Before ...-- | Finally.cs:97:21:97:21 | access to local variable i | +| Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:23 | Before ...-- | +| Finally.cs:97:21:97:24 | After ...; | Finally.cs:96:17:98:17 | After {...} | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:104:5:119:5 | {...} | | Finally.cs:104:5:119:5 | {...} | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:105:9:118:9 | After try {...} ... | Finally.cs:104:5:119:5 | After {...} | | Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:106:9:111:9 | {...} | | Finally.cs:106:9:111:9 | {...} | Finally.cs:107:13:108:23 | if (...) ... | -| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:21 | this access | -| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:28 | access to property Length | +| Finally.cs:107:13:108:23 | After if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | +| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:33 | Before ... == ... | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:28 | access to property Length | +| Finally.cs:107:17:107:21 | Before access to field Field | Finally.cs:107:17:107:21 | this access | +| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:21 | After access to field Field | | Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | {...} | | Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | access to field Field | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:33:107:33 | 0 | +| Finally.cs:107:17:107:28 | Before access to property Length | Finally.cs:107:17:107:21 | Before access to field Field | +| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:107:13:108:23 | After if (...) ... | +| Finally.cs:107:17:107:33 | After ... == ... [true] | Finally.cs:108:17:108:23 | Before return ...; | +| Finally.cs:107:17:107:33 | Before ... == ... | Finally.cs:107:17:107:28 | Before access to property Length | | Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | this access | -| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:28 | access to property Length | +| Finally.cs:108:17:108:23 | Before return ...; | Finally.cs:108:17:108:23 | return ...; | +| Finally.cs:109:13:110:49 | After if (...) ... | Finally.cs:106:9:111:9 | After {...} | +| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:33 | Before ... == ... | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:28 | access to property Length | +| Finally.cs:109:17:109:21 | Before access to field Field | Finally.cs:109:17:109:21 | this access | +| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:21 | After access to field Field | | Finally.cs:109:17:109:21 | this access | Finally.cs:109:17:109:21 | access to field Field | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:33:109:33 | 1 | +| Finally.cs:109:17:109:28 | Before access to property Length | Finally.cs:109:17:109:21 | Before access to field Field | +| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:109:17:109:33 | After ... == ... [false] | Finally.cs:109:13:110:49 | After if (...) ... | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:110:17:110:49 | Before throw ...; | +| Finally.cs:109:17:109:33 | Before ... == ... | Finally.cs:109:17:109:28 | Before access to property Length | | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | +| Finally.cs:110:17:110:49 | Before throw ...; | Finally.cs:110:23:110:48 | Before object creation of type OutOfMemoryException | +| Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | +| Finally.cs:110:23:110:48 | Before object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | +| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:103:10:103:11 | Exceptional Exit | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:103:10:103:11 | Normal Exit | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:105:9:118:9 | After try {...} ... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | if (...) ... | -| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:19:114:23 | this access | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:30 | access to property Length | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:13:117:37 | if (...) ... | +| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:17:114:36 | !... | +| Finally.cs:114:17:114:36 | !... | Finally.cs:114:19:114:35 | Before ... == ... | +| Finally.cs:114:17:114:36 | After !... [true] | Finally.cs:115:17:115:41 | ...; | +| Finally.cs:114:19:114:23 | After access to field Field | Finally.cs:114:19:114:30 | access to property Length | +| Finally.cs:114:19:114:23 | Before access to field Field | Finally.cs:114:19:114:23 | this access | +| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:23 | After access to field Field | | Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | access to field Field | -| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:35:114:35 | 0 | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | +| Finally.cs:114:19:114:30 | After access to property Length | Finally.cs:114:35:114:35 | 0 | +| Finally.cs:114:19:114:30 | Before access to property Length | Finally.cs:114:19:114:23 | Before access to field Field | +| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:30 | After access to property Length | +| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:114:17:114:36 | After !... [true] | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:114:17:114:36 | After !... [false] | +| Finally.cs:114:19:114:35 | Before ... == ... | Finally.cs:114:19:114:30 | Before access to property Length | | Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:35 | ... == ... | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:35:115:39 | this access | -| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine | +| Finally.cs:115:17:115:40 | After call to method WriteLine | Finally.cs:115:17:115:41 | After ...; | +| Finally.cs:115:17:115:40 | Before call to method WriteLine | Finally.cs:115:35:115:39 | Before access to field Field | +| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:115:17:115:40 | After call to method WriteLine | +| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:40 | Before call to method WriteLine | +| Finally.cs:115:35:115:39 | After access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine | +| Finally.cs:115:35:115:39 | Before access to field Field | Finally.cs:115:35:115:39 | this access | +| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:35:115:39 | After access to field Field | | Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | access to field Field | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:21 | this access | -| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:28 | access to property Length | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:113:9:118:9 | After {...} | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:32 | Before ... > ... | +| Finally.cs:116:17:116:21 | After access to field Field | Finally.cs:116:17:116:28 | access to property Length | +| Finally.cs:116:17:116:21 | Before access to field Field | Finally.cs:116:17:116:21 | this access | +| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:21 | After access to field Field | | Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | access to field Field | -| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:32:116:32 | 0 | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | +| Finally.cs:116:17:116:28 | After access to property Length | Finally.cs:116:32:116:32 | 0 | +| Finally.cs:116:17:116:28 | Before access to property Length | Finally.cs:116:17:116:21 | Before access to field Field | +| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:17:116:28 | After access to property Length | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:116:17:116:32 | After ... > ... [true] | Finally.cs:117:17:117:37 | ...; | +| Finally.cs:116:17:116:32 | Before ... > ... | Finally.cs:116:17:116:28 | Before access to property Length | | Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:32 | ... > ... | -| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:35:117:35 | 1 | +| Finally.cs:117:17:117:36 | After call to method WriteLine | Finally.cs:117:17:117:37 | After ...; | +| Finally.cs:117:17:117:36 | Before call to method WriteLine | Finally.cs:117:35:117:35 | 1 | +| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:117:17:117:36 | After call to method WriteLine | +| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:36 | Before call to method WriteLine | | Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:36 | call to method WriteLine | -| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:122:5:131:5 | {...} | -| Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | exit M6 | +| Finally.cs:121:10:121:11 | Entry | Finally.cs:122:5:131:5 | {...} | +| Finally.cs:121:10:121:11 | Normal Exit | Finally.cs:121:10:121:11 | Exit | +| Finally.cs:122:5:131:5 | After {...} | Finally.cs:121:10:121:11 | Normal Exit | | Finally.cs:122:5:131:5 | {...} | Finally.cs:123:9:130:9 | try {...} ... | +| Finally.cs:123:9:130:9 | After try {...} ... | Finally.cs:122:5:131:5 | After {...} | | Finally.cs:123:9:130:9 | try {...} ... | Finally.cs:124:9:126:9 | {...} | +| Finally.cs:124:9:126:9 | After {...} | Finally.cs:123:9:130:9 | After try {...} ... | | Finally.cs:124:9:126:9 | {...} | Finally.cs:125:13:125:41 | ... ...; | -| Finally.cs:125:13:125:41 | ... ...; | Finally.cs:125:24:125:24 | 0 | -| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:121:10:121:11 | exit M6 (normal) | +| Finally.cs:125:13:125:41 | ... ...; | Finally.cs:125:17:125:40 | Before Double temp = ... | +| Finally.cs:125:13:125:41 | After ... ...; | Finally.cs:124:9:126:9 | After {...} | +| Finally.cs:125:17:125:20 | access to local variable temp | Finally.cs:125:24:125:40 | Before ... / ... | +| Finally.cs:125:17:125:40 | After Double temp = ... | Finally.cs:125:13:125:41 | After ... ...; | +| Finally.cs:125:17:125:40 | Before Double temp = ... | Finally.cs:125:17:125:20 | access to local variable temp | +| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:125:17:125:40 | After Double temp = ... | | Finally.cs:125:24:125:24 | 0 | Finally.cs:125:24:125:24 | (...) ... | -| Finally.cs:125:24:125:24 | (...) ... | Finally.cs:125:28:125:40 | access to constant E | -| Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:17:125:40 | Double temp = ... | +| Finally.cs:125:24:125:24 | (...) ... | Finally.cs:125:24:125:24 | After (...) ... | +| Finally.cs:125:24:125:24 | After (...) ... | Finally.cs:125:28:125:40 | access to constant E | +| Finally.cs:125:24:125:24 | Before (...) ... | Finally.cs:125:24:125:24 | 0 | +| Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:24:125:40 | After ... / ... | +| Finally.cs:125:24:125:40 | After ... / ... | Finally.cs:125:17:125:40 | Double temp = ... | +| Finally.cs:125:24:125:40 | Before ... / ... | Finally.cs:125:24:125:24 | Before (...) ... | | Finally.cs:125:28:125:40 | access to constant E | Finally.cs:125:24:125:40 | ... / ... | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:134:5:145:5 | {...} | -| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:134:5:145:5 | {...} | +| Finally.cs:133:10:133:11 | Exceptional Exit | Finally.cs:133:10:133:11 | Exit | | Finally.cs:134:5:145:5 | {...} | Finally.cs:135:9:143:9 | try {...} ... | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:136:9:138:9 | {...} | | Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:37 | ...; | +| Finally.cs:137:13:137:36 | After call to method WriteLine | Finally.cs:137:13:137:37 | After ...; | +| Finally.cs:137:13:137:36 | Before call to method WriteLine | Finally.cs:137:31:137:35 | "Try" | +| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:137:13:137:36 | After call to method WriteLine | | Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} | -| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:31:137:35 | "Try" | +| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:13:137:36 | Before call to method WriteLine | +| Finally.cs:137:13:137:37 | After ...; | Finally.cs:136:9:138:9 | After {...} | | Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:36 | call to method WriteLine | -| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:41:141:42 | "" | -| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | -| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; | +| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:13:141:44 | Before throw ...; | +| Finally.cs:141:13:141:44 | Before throw ...; | Finally.cs:141:19:141:43 | Before object creation of type ArgumentException | +| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | Exceptional Exit | +| Finally.cs:141:19:141:43 | After object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; | +| Finally.cs:141:19:141:43 | Before object creation of type ArgumentException | Finally.cs:141:41:141:42 | "" | +| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:19:141:43 | After object creation of type ArgumentException | | Finally.cs:141:41:141:42 | "" | Finally.cs:141:19:141:43 | object creation of type ArgumentException | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:148:5:170:5 | {...} | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:148:5:170:5 | {...} | +| Finally.cs:148:5:170:5 | After {...} | Finally.cs:147:10:147:11 | Normal Exit | | Finally.cs:148:5:170:5 | {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:148:5:170:5 | After {...} | | Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:150:9:153:9 | {...} | | Finally.cs:150:9:153:9 | {...} | Finally.cs:151:13:152:50 | if (...) ... | -| Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:151:17:151:20 | access to parameter args | +| Finally.cs:151:13:152:50 | After if (...) ... | Finally.cs:150:9:153:9 | After {...} | +| Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:151:17:151:28 | Before ... == ... | | Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:151:25:151:28 | null | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | +| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | After ... == ... [false] | +| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:151:17:151:28 | After ... == ... [false] | Finally.cs:151:13:152:50 | After if (...) ... | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:152:17:152:50 | Before throw ...; | +| Finally.cs:151:17:151:28 | Before ... == ... | Finally.cs:151:17:151:20 | access to parameter args | | Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:28 | ... == ... | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | +| Finally.cs:152:17:152:50 | Before throw ...; | Finally.cs:152:23:152:49 | Before object creation of type ArgumentNullException | +| Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | +| Finally.cs:152:23:152:49 | Before object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:155:9:169:9 | After {...} | Finally.cs:147:10:147:11 | Exceptional Exit | +| Finally.cs:155:9:169:9 | After {...} | Finally.cs:149:9:169:9 | After try {...} ... | | Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | try {...} ... | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:155:9:169:9 | After {...} | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:157:13:160:13 | {...} | | Finally.cs:157:13:160:13 | {...} | Finally.cs:158:17:159:45 | if (...) ... | -| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:24 | access to parameter args | +| Finally.cs:158:17:159:45 | After if (...) ... | Finally.cs:157:13:160:13 | After {...} | +| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:36 | Before ... == ... | | Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:31 | access to property Length | -| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:36:158:36 | 1 | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:36:158:36 | 1 | +| Finally.cs:158:21:158:31 | Before access to property Length | Finally.cs:158:21:158:24 | access to parameter args | +| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:31 | After access to property Length | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | catch (...) {...} | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | +| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:158:21:158:36 | After ... == ... [false] | Finally.cs:158:17:159:45 | After if (...) ... | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:159:21:159:45 | Before throw ...; | +| Finally.cs:158:21:158:36 | Before ... == ... | Finally.cs:158:21:158:31 | Before access to property Length | | Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | -| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | +| Finally.cs:159:21:159:45 | Before throw ...; | Finally.cs:159:27:159:44 | Before object creation of type Exception | +| Finally.cs:159:27:159:44 | After object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | +| Finally.cs:159:27:159:44 | Before object creation of type Exception | Finally.cs:159:41:159:43 | "1" | +| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:27:159:44 | After object creation of type Exception | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:39 | access to local variable e | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:30:161:30 | Exception e | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:165:13:168:13 | catch {...} | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:54 | Before ... == ... | | Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:39:161:47 | access to property Message | -| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:52:161:54 | "1" | -| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:162:13:164:13 | {...} | +| Finally.cs:161:39:161:47 | After access to property Message | Finally.cs:161:52:161:54 | "1" | +| Finally.cs:161:39:161:47 | Before access to property Message | Finally.cs:161:39:161:39 | access to local variable e | +| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:39:161:47 | After access to property Message | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:161:39:161:54 | After ... == ... [true] | Finally.cs:162:13:164:13 | {...} | +| Finally.cs:161:39:161:54 | Before ... == ... | Finally.cs:161:39:161:47 | Before access to property Message | | Finally.cs:161:52:161:54 | "1" | Finally.cs:161:39:161:54 | ... == ... | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:43 | ...; | -| Finally.cs:163:17:163:43 | ...; | Finally.cs:163:35:163:38 | access to parameter args | +| Finally.cs:163:17:163:42 | After call to method WriteLine | Finally.cs:163:17:163:43 | After ...; | +| Finally.cs:163:17:163:42 | Before call to method WriteLine | Finally.cs:163:35:163:41 | Before access to array element | +| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:163:17:163:42 | After call to method WriteLine | +| Finally.cs:163:17:163:43 | ...; | Finally.cs:163:17:163:42 | Before call to method WriteLine | +| Finally.cs:163:17:163:43 | After ...; | Finally.cs:162:13:164:13 | After {...} | | Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:40:163:40 | 0 | -| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:17:163:42 | call to method WriteLine | +| Finally.cs:163:35:163:41 | After access to array element | Finally.cs:163:17:163:42 | call to method WriteLine | +| Finally.cs:163:35:163:41 | Before access to array element | Finally.cs:163:35:163:38 | access to parameter args | +| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:35:163:41 | After access to array element | | Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:41 | access to array element | -| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:166:13:168:13 | {...} | +| Finally.cs:165:13:168:13 | After catch {...} [match] | Finally.cs:166:13:168:13 | {...} | +| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | After catch {...} [match] | | Finally.cs:166:13:168:13 | {...} | Finally.cs:167:17:167:38 | ...; | -| Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | +| Finally.cs:167:17:167:37 | After call to method WriteLine | Finally.cs:167:17:167:38 | After ...; | +| Finally.cs:167:17:167:37 | Before call to method WriteLine | Finally.cs:167:35:167:36 | "" | +| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:167:17:167:37 | After call to method WriteLine | +| Finally.cs:167:17:167:38 | ...; | Finally.cs:167:17:167:37 | Before call to method WriteLine | +| Finally.cs:167:17:167:38 | After ...; | Finally.cs:166:13:168:13 | After {...} | | 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 | 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 | After call to constructor Exception | Finally.cs:172:11:172:20 | {...} | +| Finally.cs:172:11:172:20 | After call to method | Finally.cs:172:11:172:20 | Before call to constructor Exception | +| Finally.cs:172:11:172:20 | Before call to constructor Exception | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | Before call to method | Finally.cs:172:11:172:20 | this access | +| Finally.cs:172:11:172:20 | Entry | Finally.cs:172:11:172:20 | Before call to method | +| Finally.cs:172:11:172:20 | Normal Exit | Finally.cs:172:11:172:20 | Exit | +| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | After call to constructor Exception | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | After call to method | | 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 | 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:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | Normal Exit | +| Finally.cs:173:11:173:20 | After call to constructor Exception | Finally.cs:173:11:173:20 | {...} | +| Finally.cs:173:11:173:20 | After call to method | Finally.cs:173:11:173:20 | Before call to constructor Exception | +| Finally.cs:173:11:173:20 | Before call to constructor Exception | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | Before call to method | Finally.cs:173:11:173:20 | this access | +| Finally.cs:173:11:173:20 | Entry | Finally.cs:173:11:173:20 | Before call to method | +| Finally.cs:173:11:173:20 | Normal Exit | Finally.cs:173:11:173:20 | Exit | +| Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | After call to constructor Exception | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | After call to method | | 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 | 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:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | Normal Exit | +| Finally.cs:174:11:174:20 | After call to constructor Exception | Finally.cs:174:11:174:20 | {...} | +| Finally.cs:174:11:174:20 | After call to method | Finally.cs:174:11:174:20 | Before call to constructor Exception | +| Finally.cs:174:11:174:20 | Before call to constructor Exception | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | Before call to method | Finally.cs:174:11:174:20 | this access | +| Finally.cs:174:11:174:20 | Entry | Finally.cs:174:11:174:20 | Before call to method | +| Finally.cs:174:11:174:20 | Normal Exit | Finally.cs:174:11:174:20 | Exit | +| Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | After call to constructor Exception | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | After call to method | | 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:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | Normal Exit | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:177:5:193:5 | {...} | +| Finally.cs:177:5:193:5 | After {...} | Finally.cs:176:10:176:11 | Normal Exit | | Finally.cs:177:5:193:5 | {...} | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:177:5:193:5 | After {...} | | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:179:9:181:9 | {...} | | Finally.cs:179:9:181:9 | {...} | Finally.cs:180:13:180:43 | if (...) ... | +| Finally.cs:180:13:180:43 | After if (...) ... | Finally.cs:179:9:181:9 | After {...} | | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:17:180:18 | access to parameter b1 | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | {...} | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:180:17:180:18 | After access to parameter b1 [false] | Finally.cs:180:13:180:43 | After if (...) ... | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:180:21:180:43 | Before throw ...; | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:180:21:180:43 | Before throw ...; | Finally.cs:180:27:180:42 | Before object creation of type ExceptionA | +| Finally.cs:180:27:180:42 | After object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:180:27:180:42 | Before object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:183:9:192:9 | After {...} | Finally.cs:178:9:192:9 | After try {...} ... | | Finally.cs:183:9:192:9 | {...} | Finally.cs:184:13:191:13 | try {...} ... | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:183:9:192:9 | After {...} | | Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:185:13:187:13 | {...} | | Finally.cs:185:13:187:13 | {...} | Finally.cs:186:17:186:47 | if (...) ... | +| Finally.cs:186:17:186:47 | After if (...) ... | Finally.cs:185:13:187:13 | After {...} | | Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:186:21:186:22 | access to parameter b2 | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:186:21:186:22 | After access to parameter b2 [false] | Finally.cs:186:17:186:47 | After if (...) ... | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:186:25:186:47 | Before throw ...; | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:186:25:186:47 | Before throw ...; | Finally.cs:186:31:186:46 | Before object creation of type ExceptionB | +| Finally.cs:186:31:186:46 | After object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:186:31:186:46 | Before object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | | Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | | Finally.cs:189:13:191:13 | {...} | Finally.cs:190:17:190:47 | if (...) ... | +| Finally.cs:190:17:190:47 | After if (...) ... | Finally.cs:189:13:191:13 | After {...} | | Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:190:21:190:22 | access to parameter b1 | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:25:190:47 | throw ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:196:5:214:5 | {...} | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:190:17:190:47 | After if (...) ... | +| Finally.cs:190:21:190:22 | After access to parameter b1 [true] | Finally.cs:190:25:190:47 | Before throw ...; | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:190:25:190:47 | Before throw ...; | Finally.cs:190:31:190:46 | Before object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | After object creation of type ExceptionC | Finally.cs:190:25:190:47 | throw ...; | +| Finally.cs:190:31:190:46 | Before object creation of type ExceptionC | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | After object creation of type ExceptionC | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:196:5:214:5 | {...} | +| Finally.cs:196:5:214:5 | After {...} | Finally.cs:195:10:195:12 | Normal Exit | | Finally.cs:196:5:214:5 | {...} | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:213:9:213:25 | ...; | | Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:198:9:200:9 | {...} | | Finally.cs:198:9:200:9 | {...} | Finally.cs:199:13:199:43 | if (...) ... | +| Finally.cs:199:13:199:43 | After if (...) ... | Finally.cs:198:9:200:9 | After {...} | | Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:17:199:18 | access to parameter b1 | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | +| Finally.cs:199:17:199:18 | After access to parameter b1 [false] | Finally.cs:199:13:199:43 | After if (...) ... | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:199:21:199:43 | Before throw ...; | +| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:199:21:199:43 | Before throw ...; | Finally.cs:199:27:199:42 | Before object creation of type ExceptionA | +| Finally.cs:199:27:199:42 | After object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | +| Finally.cs:199:27:199:42 | Before object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:202:9:212:9 | After {...} | Finally.cs:197:9:212:9 | After try {...} ... | | Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:211:13:211:29 | ...; | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:204:13:206:13 | {...} | | Finally.cs:204:13:206:13 | {...} | Finally.cs:205:17:205:47 | if (...) ... | +| Finally.cs:205:17:205:47 | After if (...) ... | Finally.cs:204:13:206:13 | After {...} | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:21:205:22 | access to parameter b2 | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | +| Finally.cs:205:21:205:22 | After access to parameter b2 [false] | Finally.cs:205:17:205:47 | After if (...) ... | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:205:25:205:47 | Before throw ...; | +| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:205:25:205:47 | Before throw ...; | Finally.cs:205:31:205:46 | Before object creation of type ExceptionB | +| Finally.cs:205:31:205:46 | After object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | +| Finally.cs:205:31:205:46 | Before object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | +| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:208:13:210:13 | After {...} | Finally.cs:203:13:210:13 | After try {...} ... | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:17:209:47 | if (...) ... | +| Finally.cs:209:17:209:47 | After if (...) ... | Finally.cs:208:13:210:13 | After {...} | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:21:209:22 | access to parameter b3 | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | -| Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | -| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:28 | ... = ... | -| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | -| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:22 | access to field Field | -| Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | -| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:24 | ... = ... | -| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:18 | access to field Field | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:217:5:231:5 | {...} | -| Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:216:10:216:12 | exit M11 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:209:17:209:47 | After if (...) ... | +| Finally.cs:209:21:209:22 | After access to parameter b3 [true] | Finally.cs:209:25:209:47 | Before throw ...; | +| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | +| Finally.cs:209:25:209:47 | Before throw ...; | Finally.cs:209:31:209:46 | Before object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | After object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | +| Finally.cs:209:31:209:46 | Before object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | After object creation of type ExceptionC | +| Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:22 | access to field Field | +| Finally.cs:211:13:211:22 | After access to field Field | Finally.cs:211:26:211:28 | "0" | +| Finally.cs:211:13:211:22 | Before access to field Field | Finally.cs:211:13:211:16 | this access | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:22 | After access to field Field | +| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:13:211:28 | After ... = ... | +| Finally.cs:211:13:211:28 | After ... = ... | Finally.cs:211:13:211:29 | After ...; | +| Finally.cs:211:13:211:28 | Before ... = ... | Finally.cs:211:13:211:22 | Before access to field Field | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | Before ... = ... | +| Finally.cs:211:13:211:29 | After ...; | Finally.cs:202:9:212:9 | After {...} | +| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | +| Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:18 | access to field Field | +| Finally.cs:213:9:213:18 | After access to field Field | Finally.cs:213:22:213:24 | "1" | +| Finally.cs:213:9:213:18 | Before access to field Field | Finally.cs:213:9:213:12 | this access | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:18 | After access to field Field | +| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:9:213:24 | After ... = ... | +| Finally.cs:213:9:213:24 | After ... = ... | Finally.cs:213:9:213:25 | After ...; | +| Finally.cs:213:9:213:24 | Before ... = ... | Finally.cs:213:9:213:18 | Before access to field Field | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:24 | Before ... = ... | +| Finally.cs:213:9:213:25 | After ...; | Finally.cs:196:5:214:5 | After {...} | +| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:24 | ... = ... | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:217:5:231:5 | {...} | +| Finally.cs:216:10:216:12 | Normal Exit | Finally.cs:216:10:216:12 | Exit | +| Finally.cs:217:5:231:5 | After {...} | Finally.cs:216:10:216:12 | Normal Exit | | Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | +| Finally.cs:218:9:229:9 | After try {...} ... | Finally.cs:230:9:230:34 | ...; | | Finally.cs:218:9:229:9 | try {...} ... | Finally.cs:219:9:221:9 | {...} | | Finally.cs:219:9:221:9 | {...} | Finally.cs:220:13:220:37 | ...; | +| Finally.cs:220:13:220:36 | After call to method WriteLine | Finally.cs:220:13:220:37 | After ...; | +| Finally.cs:220:13:220:36 | Before call to method WriteLine | Finally.cs:220:31:220:35 | "Try" | +| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:220:13:220:36 | After call to method WriteLine | | Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:222:9:225:9 | catch {...} | -| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:227:9:229:9 | {...} | -| Finally.cs:220:13:220:37 | ...; | Finally.cs:220:31:220:35 | "Try" | +| Finally.cs:220:13:220:37 | ...; | Finally.cs:220:13:220:36 | Before call to method WriteLine | +| Finally.cs:220:13:220:37 | After ...; | Finally.cs:219:9:221:9 | After {...} | | Finally.cs:220:31:220:35 | "Try" | Finally.cs:220:13:220:36 | call to method WriteLine | -| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:223:9:225:9 | {...} | +| Finally.cs:222:9:225:9 | After catch {...} [match] | Finally.cs:223:9:225:9 | {...} | +| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:222:9:225:9 | After catch {...} [match] | | Finally.cs:223:9:225:9 | {...} | Finally.cs:224:13:224:39 | ...; | -| Finally.cs:224:13:224:39 | ...; | Finally.cs:224:31:224:37 | "Catch" | +| Finally.cs:224:13:224:38 | After call to method WriteLine | Finally.cs:224:13:224:39 | After ...; | +| Finally.cs:224:13:224:38 | Before call to method WriteLine | Finally.cs:224:31:224:37 | "Catch" | +| Finally.cs:224:13:224:38 | call to method WriteLine | Finally.cs:224:13:224:38 | After call to method WriteLine | +| Finally.cs:224:13:224:39 | ...; | Finally.cs:224:13:224:38 | Before call to method WriteLine | +| Finally.cs:224:13:224:39 | After ...; | Finally.cs:223:9:225:9 | After {...} | | Finally.cs:224:31:224:37 | "Catch" | Finally.cs:224:13:224:38 | call to method WriteLine | +| Finally.cs:227:9:229:9 | After {...} | Finally.cs:218:9:229:9 | After try {...} ... | | Finally.cs:227:9:229:9 | {...} | Finally.cs:228:13:228:41 | ...; | -| Finally.cs:228:13:228:40 | call to method WriteLine | Finally.cs:230:9:230:34 | ...; | -| Finally.cs:228:13:228:41 | ...; | Finally.cs:228:31:228:39 | "Finally" | +| Finally.cs:228:13:228:40 | After call to method WriteLine | Finally.cs:228:13:228:41 | After ...; | +| Finally.cs:228:13:228:40 | Before call to method WriteLine | Finally.cs:228:31:228:39 | "Finally" | +| Finally.cs:228:13:228:40 | call to method WriteLine | Finally.cs:228:13:228:40 | After call to method WriteLine | +| Finally.cs:228:13:228:41 | ...; | Finally.cs:228:13:228:40 | Before call to method WriteLine | +| Finally.cs:228:13:228:41 | After ...; | Finally.cs:227:9:229:9 | After {...} | | Finally.cs:228:31:228:39 | "Finally" | Finally.cs:228:13:228:40 | call to method WriteLine | -| Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:216:10:216:12 | exit M11 (normal) | -| Finally.cs:230:9:230:34 | ...; | Finally.cs:230:27:230:32 | "Done" | +| Finally.cs:230:9:230:33 | After call to method WriteLine | Finally.cs:230:9:230:34 | After ...; | +| Finally.cs:230:9:230:33 | Before call to method WriteLine | Finally.cs:230:27:230:32 | "Done" | +| Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:230:9:230:33 | After call to method WriteLine | +| Finally.cs:230:9:230:34 | ...; | Finally.cs:230:9:230:33 | Before call to method WriteLine | +| Finally.cs:230:9:230:34 | After ...; | Finally.cs:217:5:231:5 | After {...} | | Finally.cs:230:27:230:32 | "Done" | Finally.cs:230:9:230:33 | call to method WriteLine | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:234:5:261:5 | {...} | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:234:5:261:5 | {...} | +| Finally.cs:234:5:261:5 | After {...} | Finally.cs:233:10:233:12 | Normal Exit | | Finally.cs:234:5:261:5 | {...} | Finally.cs:235:9:259:9 | try {...} ... | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:260:9:260:34 | ...; | | Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:236:9:255:9 | {...} | | Finally.cs:236:9:255:9 | {...} | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:254:13:254:45 | ...; | | Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:238:13:241:13 | {...} | | Finally.cs:238:13:241:13 | {...} | Finally.cs:239:17:240:43 | if (...) ... | +| Finally.cs:239:17:240:43 | After if (...) ... | Finally.cs:238:13:241:13 | After {...} | | Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:239:21:239:22 | access to parameter b1 | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | +| Finally.cs:239:21:239:22 | After access to parameter b1 [false] | Finally.cs:239:17:240:43 | After if (...) ... | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:240:21:240:43 | Before throw ...; | +| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:240:21:240:43 | Before throw ...; | Finally.cs:240:27:240:42 | Before object creation of type ExceptionA | +| Finally.cs:240:27:240:42 | After object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | +| Finally.cs:240:27:240:42 | Before object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | +| Finally.cs:243:13:253:13 | After {...} | Finally.cs:237:13:253:13 | After try {...} ... | | Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:243:13:253:13 | After {...} | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:245:17:248:17 | {...} | | Finally.cs:245:17:248:17 | {...} | Finally.cs:246:21:247:47 | if (...) ... | +| Finally.cs:246:21:247:47 | After if (...) ... | Finally.cs:245:17:248:17 | After {...} | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:246:25:246:26 | access to parameter b2 | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | +| Finally.cs:246:25:246:26 | After access to parameter b2 [false] | Finally.cs:246:21:247:47 | After if (...) ... | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:247:25:247:47 | Before throw ...; | +| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:247:25:247:47 | Before throw ...; | Finally.cs:247:31:247:46 | Before object creation of type ExceptionA | +| Finally.cs:247:31:247:46 | After object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | +| Finally.cs:247:31:247:46 | Before object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | +| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | +| Finally.cs:250:17:252:17 | After {...} | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:250:17:252:17 | After {...} | Finally.cs:257:9:259:9 | {...} | | Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:55 | ...; | -| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:254:13:254:45 | ...; | -| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "Inner finally" | +| Finally.cs:251:21:251:54 | After call to method WriteLine | Finally.cs:251:21:251:55 | After ...; | +| Finally.cs:251:21:251:54 | Before call to method WriteLine | Finally.cs:251:39:251:53 | "Inner finally" | +| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:251:21:251:54 | After call to method WriteLine | +| Finally.cs:251:21:251:55 | ...; | Finally.cs:251:21:251:54 | Before call to method WriteLine | +| Finally.cs:251:21:251:55 | After ...; | Finally.cs:250:17:252:17 | After {...} | | Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:54 | call to method WriteLine | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:31:254:43 | "Mid finally" | +| Finally.cs:254:13:254:44 | After call to method WriteLine | Finally.cs:254:13:254:45 | After ...; | +| Finally.cs:254:13:254:44 | Before call to method WriteLine | Finally.cs:254:31:254:43 | "Mid finally" | +| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:44 | Before call to method WriteLine | +| Finally.cs:254:13:254:45 | After ...; | Finally.cs:236:9:255:9 | After {...} | | Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:44 | call to method WriteLine | +| Finally.cs:257:9:259:9 | After {...} | Finally.cs:233:10:233:12 | Exceptional Exit | +| Finally.cs:257:9:259:9 | After {...} | Finally.cs:235:9:259:9 | After try {...} ... | | Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:47 | ...; | -| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | -| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:258:13:258:47 | ...; | Finally.cs:258:31:258:45 | "Outer finally" | +| Finally.cs:258:13:258:46 | After call to method WriteLine | Finally.cs:258:13:258:47 | After ...; | +| Finally.cs:258:13:258:46 | Before call to method WriteLine | Finally.cs:258:31:258:45 | "Outer finally" | +| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:258:13:258:46 | After call to method WriteLine | +| Finally.cs:258:13:258:47 | ...; | Finally.cs:258:13:258:46 | Before call to method WriteLine | +| Finally.cs:258:13:258:47 | After ...; | Finally.cs:257:9:259:9 | After {...} | | Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:46 | call to method WriteLine | -| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (normal) | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:27:260:32 | "Done" | +| Finally.cs:260:9:260:33 | After call to method WriteLine | Finally.cs:260:9:260:34 | After ...; | +| Finally.cs:260:9:260:33 | Before call to method WriteLine | Finally.cs:260:27:260:32 | "Done" | +| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:260:9:260:33 | After call to method WriteLine | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:9:260:33 | Before call to method WriteLine | +| Finally.cs:260:9:260:34 | After ...; | Finally.cs:234:5:261:5 | After {...} | | Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:33 | call to method WriteLine | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:264:5:274:5 | {...} | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:264:5:274:5 | {...} | +| Finally.cs:264:5:274:5 | After {...} | Finally.cs:263:10:263:12 | Normal Exit | | Finally.cs:264:5:274:5 | {...} | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:264:5:274:5 | After {...} | | Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:266:9:268:9 | {...} | | Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:35 | ...; | +| Finally.cs:267:13:267:34 | After call to method WriteLine | Finally.cs:267:13:267:35 | After ...; | +| Finally.cs:267:13:267:34 | Before call to method WriteLine | Finally.cs:267:31:267:33 | "1" | +| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:267:13:267:34 | After call to method WriteLine | | Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} | -| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:31:267:33 | "1" | +| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:13:267:34 | Before call to method WriteLine | +| Finally.cs:267:13:267:35 | After ...; | Finally.cs:266:9:268:9 | After {...} | | Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:34 | call to method WriteLine | +| Finally.cs:270:9:273:9 | After {...} | Finally.cs:263:10:263:12 | Exceptional Exit | +| Finally.cs:270:9:273:9 | After {...} | Finally.cs:265:9:273:9 | After try {...} ... | | Finally.cs:270:9:273:9 | {...} | Finally.cs:271:13:271:35 | ...; | -| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:272:13:272:19 | ...; | -| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" | +| Finally.cs:271:13:271:34 | After call to method WriteLine | Finally.cs:271:13:271:35 | After ...; | +| Finally.cs:271:13:271:34 | Before call to method WriteLine | Finally.cs:271:31:271:33 | "3" | +| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:271:13:271:34 | After call to method WriteLine | +| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:13:271:34 | Before call to method WriteLine | +| Finally.cs:271:13:271:35 | After ...; | Finally.cs:272:13:272:19 | ...; | | Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:34 | call to method WriteLine | | Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:18:272:18 | 3 | -| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | -| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:263:10:263:12 | exit M13 (normal) | -| Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | +| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:272:13:272:18 | After ... += ... | +| Finally.cs:272:13:272:18 | After ... += ... | Finally.cs:272:13:272:19 | After ...; | +| Finally.cs:272:13:272:18 | Before ... += ... | Finally.cs:272:13:272:13 | access to parameter i | +| Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:18 | Before ... += ... | +| Finally.cs:272:13:272:19 | After ...; | Finally.cs:270:9:273:9 | After {...} | | 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 | 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 | After call to constructor Object | Foreach.cs:4:7:4:13 | {...} | +| Foreach.cs:4:7:4:13 | After call to method | Foreach.cs:4:7:4:13 | Before call to constructor Object | +| Foreach.cs:4:7:4:13 | Before call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | Before call to method | Foreach.cs:4:7:4:13 | this access | +| Foreach.cs:4:7:4:13 | Entry | Foreach.cs:4:7:4:13 | Before call to method | +| Foreach.cs:4:7:4:13 | Normal Exit | Foreach.cs:4:7:4:13 | Exit | +| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | After call to constructor Object | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | After call to method | | 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 | -| Foreach.cs:7:5:10:5 | {...} | Foreach.cs:8:29:8:32 | access to parameter args | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | exit M1 (normal) | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | +| Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | Normal Exit | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:7:5:10:5 | {...} | +| Foreach.cs:6:10:6:11 | Normal Exit | Foreach.cs:6:10:6:11 | Exit | +| Foreach.cs:7:5:10:5 | After {...} | Foreach.cs:6:10:6:11 | Normal Exit | +| Foreach.cs:7:5:10:5 | {...} | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:7:5:10:5 | After {...} | +| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | access to parameter args | | Foreach.cs:8:22:8:24 | String arg | Foreach.cs:9:13:9:13 | ; | -| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:13:5:16:5 | {...} | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | exit M2 | -| Foreach.cs:13:5:16:5 | {...} | Foreach.cs:14:27:14:30 | access to parameter args | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | exit M2 (normal) | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:22:14:22 | String _ | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:8:22:8:24 | String arg | +| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | +| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | +| Foreach.cs:9:13:9:13 | ; | Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:13:5:16:5 | {...} | +| Foreach.cs:12:10:12:11 | Normal Exit | Foreach.cs:12:10:12:11 | Exit | +| Foreach.cs:13:5:16:5 | After {...} | Foreach.cs:12:10:12:11 | Normal Exit | +| Foreach.cs:13:5:16:5 | {...} | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:13:5:16:5 | After {...} | +| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:27:14:30 | access to parameter args | | Foreach.cs:14:22:14:22 | String _ | Foreach.cs:15:13:15:13 | ; | -| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:19:5:22:5 | {...} | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | exit M3 | -| Foreach.cs:19:5:22:5 | {...} | Foreach.cs:20:27:20:27 | access to parameter e | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | exit M3 (normal) | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:14:22:14:22 | String _ | +| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | +| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | +| Foreach.cs:15:13:15:13 | ; | Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:19:5:22:5 | {...} | +| Foreach.cs:18:10:18:11 | Normal Exit | Foreach.cs:18:10:18:11 | Exit | +| Foreach.cs:19:5:22:5 | After {...} | Foreach.cs:18:10:18:11 | Normal Exit | +| Foreach.cs:19:5:22:5 | {...} | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:19:5:22:5 | After {...} | +| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:27:20:68 | ... ?? ... | | Foreach.cs:20:22:20:22 | String x | Foreach.cs:21:11:21:11 | ; | -| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:43:20:68 | call to method Empty | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:25:5:28:5 | {...} | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | exit M4 | -| Foreach.cs:25:5:28:5 | {...} | Foreach.cs:26:36:26:39 | access to parameter args | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | exit M4 (normal) | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:27:11:27:11 | ; | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:20:27:20:38 | call to method ToArray | +| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | +| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:27 | After access to parameter e [null] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:43:20:68 | Before call to method Empty | +| Foreach.cs:20:27:20:38 | Before call to method ToArray | Foreach.cs:20:27:20:27 | access to parameter e | +| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | +| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:38 | Before call to method ToArray | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:22:20:22 | String x | +| Foreach.cs:20:43:20:68 | Before call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty | +| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:21:11:21:11 | ; | Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:25:5:28:5 | {...} | +| Foreach.cs:24:10:24:11 | Normal Exit | Foreach.cs:24:10:24:11 | Exit | +| Foreach.cs:25:5:28:5 | After {...} | Foreach.cs:24:10:24:11 | Normal Exit | +| Foreach.cs:25:5:28:5 | {...} | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:25:5:28:5 | After {...} | +| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:36:26:39 | access to parameter args | +| Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:26:18:26:31 | After (..., ...) | +| Foreach.cs:26:18:26:31 | After (..., ...) | Foreach.cs:27:11:27:11 | ; | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:26:23:26:23 | String x | | Foreach.cs:26:23:26:23 | String x | Foreach.cs:26:30:26:30 | Int32 y | | Foreach.cs:26:30:26:30 | Int32 y | Foreach.cs:26:18:26:31 | (..., ...) | -| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:31:5:34:5 | {...} | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | exit M5 | -| Foreach.cs:31:5:34:5 | {...} | Foreach.cs:32:32:32:35 | access to parameter args | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | exit M5 (normal) | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:33:11:33:11 | ; | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:26:18:26:31 | Before (..., ...) | +| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | +| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | +| Foreach.cs:27:11:27:11 | ; | Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:31:5:34:5 | {...} | +| Foreach.cs:30:10:30:11 | Normal Exit | Foreach.cs:30:10:30:11 | Exit | +| Foreach.cs:31:5:34:5 | After {...} | Foreach.cs:30:10:30:11 | Normal Exit | +| Foreach.cs:31:5:34:5 | {...} | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:31:5:34:5 | After {...} | +| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:32:32:35 | access to parameter args | +| Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:32:18:32:27 | After (..., ...) | +| Foreach.cs:32:18:32:27 | After (..., ...) | Foreach.cs:33:11:33:11 | ; | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:32:23:32:23 | String x | | Foreach.cs:32:23:32:23 | String x | Foreach.cs:32:26:32:26 | Int32 y | | Foreach.cs:32:26:32:26 | Int32 y | Foreach.cs:32:18:32:27 | (..., ...) | -| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:37:5:40:5 | {...} | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | exit M6 | -| Foreach.cs:37:5:40:5 | {...} | Foreach.cs:38:39:38:42 | access to parameter args | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | exit M6 (normal) | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | -| Foreach.cs:38:18:38:34 | (..., ...) | Foreach.cs:39:11:39:11 | ; | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:32:18:32:27 | Before (..., ...) | +| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | +| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | +| Foreach.cs:33:11:33:11 | ; | Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:37:5:40:5 | {...} | +| Foreach.cs:36:10:36:11 | Normal Exit | Foreach.cs:36:10:36:11 | Exit | +| Foreach.cs:37:5:40:5 | After {...} | Foreach.cs:36:10:36:11 | Normal Exit | +| Foreach.cs:37:5:40:5 | {...} | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:37:5:40:5 | After {...} | +| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:39:38:42 | access to parameter args | +| Foreach.cs:38:18:38:34 | (..., ...) | Foreach.cs:38:18:38:34 | After (..., ...) | +| Foreach.cs:38:18:38:34 | After (..., ...) | Foreach.cs:39:11:39:11 | ; | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:38:26:38:26 | String x | | 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 | access to field F | Initializers.cs:5:9:5:17 | ... = ... | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | Foreach.cs:38:18:38:34 | Before (..., ...) | +| Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | +| Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | +| Foreach.cs:39:11:39:11 | ; | Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:5:9:5:17 | Before ... = ... | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:18:16:18:20 | Before ... = ... | +| Initializers.cs:3:7:3:18 | Normal Exit | Initializers.cs:3:7:3:18 | Exit | +| Initializers.cs:3:7:3:18 | Normal Exit | Initializers.cs:3:7:3:18 | Exit | +| Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | Normal Exit | +| Initializers.cs:5:9:5:9 | After access to field F | Initializers.cs:5:13:5:17 | Before ... + ... | +| Initializers.cs:5:9:5:9 | Before access to field F | Initializers.cs:5:9:5:9 | this access | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:9 | After access to field F | +| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:9:5:9 | access to field F | +| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:9:5:17 | After ... = ... | +| Initializers.cs:5:9:5:17 | After ... = ... | Initializers.cs:6:25:6:31 | Before ... = ... | +| Initializers.cs:5:9:5:17 | Before ... = ... | Initializers.cs:5:9:5:9 | Before access to field F | | 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:9 | access to field F | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:13:5:17 | After ... + ... | +| Initializers.cs:5:13:5:17 | After ... + ... | Initializers.cs:5:9:5:17 | ... = ... | +| Initializers.cs:5:13:5:17 | Before ... + ... | 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: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:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | exit (normal) | +| Initializers.cs:6:9:6:9 | After access to property G | Initializers.cs:6:27:6:31 | Before ... + ... | +| Initializers.cs:6:9:6:9 | Before access to property G | Initializers.cs:6:9:6:9 | this access | +| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:9:6:9 | After access to property G | +| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:9:6:9 | access to property G | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:25:6:31 | After ... = ... | +| Initializers.cs:6:25:6:31 | After ... = ... | Initializers.cs:3:7:3:18 | Normal Exit | +| Initializers.cs:6:25:6:31 | Before ... = ... | Initializers.cs:6:9:6:9 | Before access to property G | | 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:27:6:31 | After ... + ... | +| Initializers.cs:6:27:6:31 | After ... + ... | Initializers.cs:6:25:6:31 | ... = ... | +| Initializers.cs:6:27:6:31 | Before ... + ... | 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: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 | After call to constructor Object | Initializers.cs:8:20:8:22 | {...} | +| Initializers.cs:8:5:8:16 | After call to method | Initializers.cs:8:5:8:16 | Before call to constructor Object | +| Initializers.cs:8:5:8:16 | Before call to constructor Object | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | Before call to method | Initializers.cs:8:5:8:16 | this access | +| Initializers.cs:8:5:8:16 | Entry | Initializers.cs:8:5:8:16 | Before call to method | +| Initializers.cs:8:5:8:16 | Normal Exit | Initializers.cs:8:5:8:16 | Exit | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | After call to constructor Object | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | After call to method | | 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: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:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | Normal Exit | +| Initializers.cs:10:5:10:16 | After call to constructor Object | Initializers.cs:10:28:10:30 | {...} | +| Initializers.cs:10:5:10:16 | After call to method | Initializers.cs:10:5:10:16 | Before call to constructor Object | +| Initializers.cs:10:5:10:16 | Before call to constructor Object | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | Before call to method | Initializers.cs:10:5:10:16 | this access | +| Initializers.cs:10:5:10:16 | Entry | Initializers.cs:10:5:10:16 | Before call to method | +| Initializers.cs:10:5:10:16 | Normal Exit | Initializers.cs:10:5:10:16 | Exit | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | After call to constructor Object | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | After call to method | | 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 | +| Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | Normal Exit | +| Initializers.cs:12:10:12:10 | Entry | Initializers.cs:13:5:16:5 | {...} | +| Initializers.cs:12:10:12:10 | Normal Exit | Initializers.cs:12:10:12:10 | Exit | +| Initializers.cs:13:5:16:5 | After {...} | Initializers.cs:12:10:12:10 | Normal Exit | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:14:9:14:54 | ... ...; | -| Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:34:14:35 | "" | -| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:15:9:15:64 | ... ...; | -| Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:13:14:53 | Before Initializers i = ... | +| Initializers.cs:14:9:14:54 | After ... ...; | Initializers.cs:15:9:15:64 | ... ...; | +| Initializers.cs:14:13:14:13 | access to local variable i | Initializers.cs:14:17:14:53 | Before object creation of type Initializers | +| Initializers.cs:14:13:14:53 | After Initializers i = ... | Initializers.cs:14:9:14:54 | After ... ...; | +| Initializers.cs:14:13:14:53 | Before Initializers i = ... | Initializers.cs:14:13:14:13 | access to local variable i | +| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:14:13:14:53 | After Initializers i = ... | +| Initializers.cs:14:17:14:53 | After object creation of type Initializers | Initializers.cs:14:13:14:53 | Initializers i = ... | +| Initializers.cs:14:17:14:53 | Before object creation of type Initializers | Initializers.cs:14:34:14:35 | "" | +| Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:38:14:53 | Before { ..., ... } | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:17:14:53 | object creation of type Initializers | -| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:13:14:53 | Initializers i = ... | -| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:44 | ... = ... | -| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:51:14:51 | 1 | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:40 | access to field F | -| Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:51 | ... = ... | -| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | -| Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:47 | access to property G | -| Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:15:18:15:63 | 2 | -| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:12:10:12:10 | exit M (normal) | +| Initializers.cs:14:38:14:53 | After { ..., ... } | Initializers.cs:14:17:14:53 | After object creation of type Initializers | +| Initializers.cs:14:38:14:53 | Before { ..., ... } | Initializers.cs:14:40:14:44 | Before ... = ... | +| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:38:14:53 | After { ..., ... } | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:40:14:44 | After ... = ... | +| Initializers.cs:14:40:14:44 | After ... = ... | Initializers.cs:14:47:14:51 | Before ... = ... | +| Initializers.cs:14:40:14:44 | Before ... = ... | Initializers.cs:14:40:14:40 | access to field F | +| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:44 | ... = ... | +| Initializers.cs:14:47:14:47 | After access to property G | Initializers.cs:14:51:14:51 | 1 | +| Initializers.cs:14:47:14:47 | Before access to property G | Initializers.cs:14:47:14:47 | access to property G | +| Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:47 | After access to property G | +| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:47:14:51 | After ... = ... | +| Initializers.cs:14:47:14:51 | After ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | +| Initializers.cs:14:47:14:51 | Before ... = ... | Initializers.cs:14:47:14:47 | Before access to property G | +| Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:51 | ... = ... | +| Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:15:13:15:63 | Before Initializers[] iz = ... | +| Initializers.cs:15:9:15:64 | After ... ...; | Initializers.cs:13:5:16:5 | After {...} | +| Initializers.cs:15:13:15:14 | access to local variable iz | Initializers.cs:15:18:15:63 | Before array creation of type Initializers[] | +| Initializers.cs:15:13:15:63 | After Initializers[] iz = ... | Initializers.cs:15:9:15:64 | After ... ...; | +| Initializers.cs:15:13:15:63 | Before Initializers[] iz = ... | Initializers.cs:15:13:15:14 | access to local variable iz | +| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:15:13:15:63 | After Initializers[] iz = ... | | Initializers.cs:15:18:15:63 | 2 | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | -| Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:39:15:39 | access to local variable i | -| Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | -| Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:59:15:60 | "" | -| Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | +| Initializers.cs:15:18:15:63 | After array creation of type Initializers[] | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | +| Initializers.cs:15:18:15:63 | Before array creation of type Initializers[] | Initializers.cs:15:37:15:63 | Before { ..., ... } | +| Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:18:15:63 | After array creation of type Initializers[] | +| Initializers.cs:15:37:15:63 | After { ..., ... } | Initializers.cs:15:18:15:63 | 2 | +| Initializers.cs:15:37:15:63 | Before { ..., ... } | Initializers.cs:15:39:15:39 | access to local variable i | +| Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:37:15:63 | After { ..., ... } | +| Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:42:15:61 | Before object creation of type Initializers | +| Initializers.cs:15:42:15:61 | After object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | +| Initializers.cs:15:42:15:61 | Before object creation of type Initializers | Initializers.cs:15:59:15:60 | "" | +| Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:42:15:61 | After object creation of type Initializers | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:42:15:61 | object creation of type Initializers | -| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:20 | ... = ... | -| Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:20:18:20 | 1 | -| Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | -| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | -| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | access to field H | -| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | -| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | -| Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | -| 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:18:16:18:16 | access to field H | Initializers.cs:18:20:18:20 | 1 | +| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:20 | After ... = ... | +| Initializers.cs:18:16:18:20 | After ... = ... | Initializers.cs:3:7:3:18 | {...} | +| Initializers.cs:18:16:18:20 | Before ... = ... | Initializers.cs:18:16:18:16 | access to field H | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | +| Initializers.cs:20:11:20:23 | After call to constructor Object | Initializers.cs:20:11:20:23 | {...} | +| Initializers.cs:20:11:20:23 | After call to method | Initializers.cs:20:11:20:23 | Before call to constructor Object | +| Initializers.cs:20:11:20:23 | Before call to constructor Object | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:20:11:20:23 | Before call to method | Initializers.cs:20:11:20:23 | this access | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Before call to method | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:22:23:22:27 | Before ... = ... | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:20:11:20:23 | Exit | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:20:11:20:23 | Exit | +| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | After call to constructor Object | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | After call to method | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | -| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | -| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:27 | ... = ... | -| Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | access to field F | -| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:27 | ... = ... | -| Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | access to field G | -| Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | -| Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | -| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:17 | ... = ... | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | access to field H | -| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | -| Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | +| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | Normal Exit | +| Initializers.cs:22:23:22:23 | After access to field F | Initializers.cs:22:27:22:27 | 0 | +| Initializers.cs:22:23:22:23 | Before access to field F | Initializers.cs:22:23:22:23 | this access | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:23 | After access to field F | +| Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:23:22:23 | access to field F | +| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:23:22:27 | After ... = ... | +| Initializers.cs:22:23:22:27 | After ... = ... | Initializers.cs:23:23:23:27 | Before ... = ... | +| Initializers.cs:22:23:22:27 | Before ... = ... | Initializers.cs:22:23:22:23 | Before access to field F | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | +| Initializers.cs:23:23:23:23 | After access to field G | Initializers.cs:23:27:23:27 | 1 | +| Initializers.cs:23:23:23:23 | Before access to field G | Initializers.cs:23:23:23:23 | this access | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:23 | After access to field G | +| Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:23:23:23 | access to field G | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:23:23:27 | After ... = ... | +| Initializers.cs:23:23:23:27 | After ... = ... | Initializers.cs:20:11:20:23 | Normal Exit | +| Initializers.cs:23:23:23:27 | Before ... = ... | Initializers.cs:23:23:23:23 | Before access to field G | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | +| Initializers.cs:26:11:26:13 | Entry | Initializers.cs:28:13:28:17 | Before ... = ... | +| Initializers.cs:26:11:26:13 | Normal Exit | Initializers.cs:26:11:26:13 | Exit | +| Initializers.cs:28:13:28:13 | After access to field H | Initializers.cs:28:17:28:17 | 2 | +| Initializers.cs:28:13:28:13 | Before access to field H | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:13 | After access to field H | +| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:13:28:13 | access to field H | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:17 | After ... = ... | +| Initializers.cs:28:13:28:17 | After ... = ... | Initializers.cs:26:11:26:13 | Normal Exit | +| Initializers.cs:28:13:28:17 | Before ... = ... | Initializers.cs:28:13:28:13 | Before access to field H | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:31:9:31:11 | After call to method | Initializers.cs:31:17:31:20 | Before call to constructor NoConstructor | +| Initializers.cs:31:9:31:11 | Before call to method | Initializers.cs:31:9:31:11 | this access | +| Initializers.cs:31:9:31:11 | Entry | Initializers.cs:31:9:31:11 | Before call to method | +| Initializers.cs:31:9:31:11 | Normal Exit | Initializers.cs:31:9:31:11 | Exit | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | After call to method | | 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:17:31:20 | After call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | +| Initializers.cs:31:17:31:20 | Before call to constructor NoConstructor | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:17:31:20 | After call to constructor NoConstructor | +| Initializers.cs:31:24:31:33 | After {...} | Initializers.cs:31:9:31:11 | Normal Exit | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | -| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:30 | ... = ... | -| Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | -| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | -| Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:26 | this access | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | access to field I | -| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | -| Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | exit Sub | -| Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | +| Initializers.cs:31:26:31:26 | After access to field I | Initializers.cs:31:30:31:30 | 3 | +| Initializers.cs:31:26:31:26 | Before access to field I | Initializers.cs:31:26:31:26 | this access | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:26 | After access to field I | +| Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:26 | access to field I | +| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:26:31:30 | After ... = ... | +| Initializers.cs:31:26:31:30 | After ... = ... | Initializers.cs:31:26:31:31 | After ...; | +| Initializers.cs:31:26:31:30 | Before ... = ... | Initializers.cs:31:26:31:26 | Before access to field I | +| Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:30 | Before ... = ... | +| Initializers.cs:31:26:31:31 | After ...; | Initializers.cs:31:24:31:33 | After {...} | +| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:30 | ... = ... | +| Initializers.cs:33:9:33:11 | Entry | Initializers.cs:33:22:33:25 | Before call to constructor Sub | +| Initializers.cs:33:9:33:11 | Normal Exit | Initializers.cs:33:9:33:11 | Exit | +| Initializers.cs:33:22:33:25 | After call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | +| Initializers.cs:33:22:33:25 | Before call to constructor Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | +| Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:22:33:25 | After call to constructor Sub | +| Initializers.cs:33:29:33:38 | After {...} | Initializers.cs:33:9:33:11 | Normal Exit | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:31:33:36 | ...; | -| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:35 | ... = ... | -| Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:35:33:35 | access to parameter i | -| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | -| Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | -| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | access to field I | -| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | -| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | -| Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | +| Initializers.cs:33:31:33:31 | After access to field I | Initializers.cs:33:35:33:35 | access to parameter i | +| Initializers.cs:33:31:33:31 | Before access to field I | Initializers.cs:33:31:33:31 | this access | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:31 | After access to field I | +| Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:31:33:31 | access to field I | +| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:31:33:35 | After ... = ... | +| Initializers.cs:33:31:33:35 | After ... = ... | Initializers.cs:33:31:33:36 | After ...; | +| Initializers.cs:33:31:33:35 | Before ... = ... | Initializers.cs:33:31:33:31 | Before access to field I | +| Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:35 | Before ... = ... | +| Initializers.cs:33:31:33:36 | After ...; | Initializers.cs:33:29:33:38 | After {...} | +| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | +| Initializers.cs:35:9:35:11 | After call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | +| Initializers.cs:35:9:35:11 | After call to method | Initializers.cs:35:9:35:11 | Before call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | Before call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | Before call to method | Initializers.cs:35:9:35:11 | this access | +| Initializers.cs:35:9:35:11 | Entry | Initializers.cs:35:9:35:11 | Before call to method | +| Initializers.cs:35:9:35:11 | Normal Exit | Initializers.cs:35:9:35:11 | Exit | +| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | After call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | After call to method | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | +| Initializers.cs:35:27:35:40 | After {...} | Initializers.cs:35:9:35:11 | Normal Exit | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | -| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:37 | ... = ... | -| Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | -| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | -| Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:29 | this access | +| Initializers.cs:35:29:35:29 | After access to field I | Initializers.cs:35:33:35:37 | Before ... + ... | +| Initializers.cs:35:29:35:29 | Before access to field I | Initializers.cs:35:29:35:29 | this access | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:29 | After access to field I | +| Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:29 | access to field I | +| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:29:35:37 | After ... = ... | +| Initializers.cs:35:29:35:37 | After ... = ... | Initializers.cs:35:29:35:38 | After ...; | +| Initializers.cs:35:29:35:37 | Before ... = ... | Initializers.cs:35:29:35:29 | Before access to field I | +| Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:37 | Before ... = ... | +| Initializers.cs:35:29:35:38 | After ...; | Initializers.cs:35:27:35:40 | After {...} | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:37:35:37 | access to parameter j | -| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:29 | access to field I | +| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:33:35:37 | After ... + ... | +| Initializers.cs:35:33:35:37 | After ... + ... | Initializers.cs:35:29:35:37 | ... = ... | +| Initializers.cs:35:33:35:37 | Before ... + ... | Initializers.cs:35:33:35:33 | access to parameter i | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | -| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | -| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | -| 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 | After call to constructor Object | Initializers.cs:39:7:39:23 | {...} | +| Initializers.cs:39:7:39:23 | After call to method | Initializers.cs:39:7:39:23 | Before call to constructor Object | +| Initializers.cs:39:7:39:23 | Before call to constructor Object | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | Before call to method | Initializers.cs:39:7:39:23 | this access | +| Initializers.cs:39:7:39:23 | Entry | Initializers.cs:39:7:39:23 | Before call to method | +| Initializers.cs:39:7:39:23 | Normal Exit | Initializers.cs:39:7:39:23 | Exit | +| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | After call to constructor Object | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | After call to method | | 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 | 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:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | Normal Exit | +| Initializers.cs:41:11:41:18 | After call to constructor Object | Initializers.cs:41:11:41:18 | {...} | +| Initializers.cs:41:11:41:18 | After call to method | Initializers.cs:41:11:41:18 | Before call to constructor Object | +| Initializers.cs:41:11:41:18 | Before call to constructor Object | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | Before call to method | Initializers.cs:41:11:41:18 | this access | +| Initializers.cs:41:11:41:18 | Entry | Initializers.cs:41:11:41:18 | Before call to method | +| Initializers.cs:41:11:41:18 | Normal Exit | Initializers.cs:41:11:41:18 | Exit | +| Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | After call to constructor Object | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | After call to method | | 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 | +| Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | Normal Exit | +| Initializers.cs:51:10:51:13 | Entry | Initializers.cs:52:5:66:5 | {...} | +| Initializers.cs:51:10:51:13 | Normal Exit | Initializers.cs:51:10:51:13 | Exit | +| Initializers.cs:52:5:66:5 | After {...} | Initializers.cs:51:10:51:13 | Normal Exit | | Initializers.cs:52:5:66:5 | {...} | Initializers.cs:54:9:54:96 | ... ...; | -| Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:20:54:95 | object creation of type Dictionary | -| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:57:9:65:10 | ... ...; | -| Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:53:54:53 | 0 | -| Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:13:54:95 | Dictionary dict = ... | -| Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:52:54:63 | ... = ... | -| Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:54:67:54:67 | 1 | -| Initializers.cs:54:53:54:53 | 0 | Initializers.cs:54:58:54:63 | "Zero" | -| Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:54:52:54:54 | access to indexer | -| Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:54:66:54:76 | ... = ... | -| Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:54:80:54:80 | access to parameter i | -| Initializers.cs:54:67:54:67 | 1 | Initializers.cs:54:72:54:76 | "One" | -| Initializers.cs:54:72:54:76 | "One" | Initializers.cs:54:66:54:68 | access to indexer | -| Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:54:79:54:93 | ... = ... | -| Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:54:50:54:95 | { ..., ... } | +| Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:13:54:95 | Before Dictionary dict = ... | +| Initializers.cs:54:9:54:96 | After ... ...; | Initializers.cs:57:9:65:10 | ... ...; | +| Initializers.cs:54:13:54:16 | access to local variable dict | Initializers.cs:54:20:54:95 | Before object creation of type Dictionary | +| Initializers.cs:54:13:54:95 | After Dictionary dict = ... | Initializers.cs:54:9:54:96 | After ... ...; | +| Initializers.cs:54:13:54:95 | Before Dictionary dict = ... | Initializers.cs:54:13:54:16 | access to local variable dict | +| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:54:13:54:95 | After Dictionary dict = ... | +| Initializers.cs:54:20:54:95 | After object creation of type Dictionary | Initializers.cs:54:13:54:95 | Dictionary dict = ... | +| Initializers.cs:54:20:54:95 | Before object creation of type Dictionary | Initializers.cs:54:20:54:95 | object creation of type Dictionary | +| Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:50:54:95 | Before { ..., ... } | +| Initializers.cs:54:50:54:95 | After { ..., ... } | Initializers.cs:54:20:54:95 | After object creation of type Dictionary | +| Initializers.cs:54:50:54:95 | Before { ..., ... } | Initializers.cs:54:52:54:63 | Before ... = ... | +| Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:50:54:95 | After { ..., ... } | +| Initializers.cs:54:52:54:54 | After access to indexer | Initializers.cs:54:58:54:63 | "Zero" | +| Initializers.cs:54:52:54:54 | Before access to indexer | Initializers.cs:54:53:54:53 | 0 | +| Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:52:54:54 | After access to indexer | +| Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:54:52:54:63 | After ... = ... | +| Initializers.cs:54:52:54:63 | After ... = ... | Initializers.cs:54:66:54:76 | Before ... = ... | +| Initializers.cs:54:52:54:63 | Before ... = ... | Initializers.cs:54:52:54:54 | Before access to indexer | +| Initializers.cs:54:53:54:53 | 0 | Initializers.cs:54:52:54:54 | access to indexer | +| Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:54:52:54:63 | ... = ... | +| Initializers.cs:54:66:54:68 | After access to indexer | Initializers.cs:54:72:54:76 | "One" | +| Initializers.cs:54:66:54:68 | Before access to indexer | Initializers.cs:54:67:54:67 | 1 | +| Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:54:66:54:68 | After access to indexer | +| Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:54:66:54:76 | After ... = ... | +| Initializers.cs:54:66:54:76 | After ... = ... | Initializers.cs:54:79:54:93 | Before ... = ... | +| Initializers.cs:54:66:54:76 | Before ... = ... | Initializers.cs:54:66:54:68 | Before access to indexer | +| Initializers.cs:54:67:54:67 | 1 | Initializers.cs:54:66:54:68 | access to indexer | +| Initializers.cs:54:72:54:76 | "One" | Initializers.cs:54:66:54:76 | ... = ... | +| Initializers.cs:54:79:54:85 | After access to indexer | Initializers.cs:54:89:54:93 | "Two" | +| Initializers.cs:54:79:54:85 | Before access to indexer | Initializers.cs:54:80:54:84 | Before ... + ... | +| Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:54:79:54:85 | After access to indexer | +| Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:54:79:54:93 | After ... = ... | +| Initializers.cs:54:79:54:93 | After ... = ... | Initializers.cs:54:50:54:95 | { ..., ... } | +| Initializers.cs:54:79:54:93 | Before ... = ... | Initializers.cs:54:79:54:85 | Before access to indexer | | Initializers.cs:54:80:54:80 | access to parameter i | Initializers.cs:54:84:54:84 | 2 | -| Initializers.cs:54:80:54:84 | ... + ... | Initializers.cs:54:89:54:93 | "Two" | +| Initializers.cs:54:80:54:84 | ... + ... | Initializers.cs:54:80:54:84 | After ... + ... | +| Initializers.cs:54:80:54:84 | After ... + ... | Initializers.cs:54:79:54:85 | access to indexer | +| Initializers.cs:54:80:54:84 | Before ... + ... | Initializers.cs:54:80:54:80 | access to parameter i | | Initializers.cs:54:84:54:84 | 2 | Initializers.cs:54:80:54:84 | ... + ... | -| Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:79:54:85 | access to indexer | -| Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:57:24:65:9 | object creation of type Compound | -| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | exit Test (normal) | -| Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:59:34:59:34 | 0 | -| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:57:13:65:9 | Compound compound = ... | -| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:76 | ... = ... | -| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:60:37:60:37 | 3 | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | -| Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:44 | ... = ... | -| Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:48:59:48 | 1 | -| Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:39:59:44 | "Zero" | -| Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:59:33:59:35 | access to indexer | -| Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:59:47:59:57 | ... = ... | -| Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:59:61:59:61 | access to parameter i | -| Initializers.cs:59:48:59:48 | 1 | Initializers.cs:59:53:59:57 | "One" | -| Initializers.cs:59:53:59:57 | "One" | Initializers.cs:59:47:59:49 | access to indexer | -| Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:59:60:59:74 | ... = ... | -| Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:59:31:59:76 | { ..., ... } | +| Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:79:54:93 | ... = ... | +| Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:57:13:65:9 | Before Compound compound = ... | +| Initializers.cs:57:9:65:10 | After ... ...; | Initializers.cs:52:5:66:5 | After {...} | +| Initializers.cs:57:13:57:20 | access to local variable compound | Initializers.cs:57:24:65:9 | Before object creation of type Compound | +| Initializers.cs:57:13:65:9 | After Compound compound = ... | Initializers.cs:57:9:65:10 | After ... ...; | +| Initializers.cs:57:13:65:9 | Before Compound compound = ... | Initializers.cs:57:13:57:20 | access to local variable compound | +| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:57:13:65:9 | After Compound compound = ... | +| Initializers.cs:57:24:65:9 | After object creation of type Compound | Initializers.cs:57:13:65:9 | Compound compound = ... | +| Initializers.cs:57:24:65:9 | Before object creation of type Compound | Initializers.cs:57:24:65:9 | object creation of type Compound | +| Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:58:9:65:9 | Before { ..., ... } | +| Initializers.cs:58:9:65:9 | After { ..., ... } | Initializers.cs:57:24:65:9 | After object creation of type Compound | +| Initializers.cs:58:9:65:9 | Before { ..., ... } | Initializers.cs:59:13:59:76 | Before ... = ... | +| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:58:9:65:9 | After { ..., ... } | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:31:59:76 | Before { ..., ... } | +| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:13:59:76 | After ... = ... | +| Initializers.cs:59:13:59:76 | After ... = ... | Initializers.cs:60:13:60:80 | Before ... = ... | +| Initializers.cs:59:13:59:76 | Before ... = ... | Initializers.cs:59:13:59:27 | access to field DictionaryField | +| Initializers.cs:59:31:59:76 | After { ..., ... } | Initializers.cs:59:13:59:76 | ... = ... | +| Initializers.cs:59:31:59:76 | Before { ..., ... } | Initializers.cs:59:33:59:44 | Before ... = ... | +| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:31:59:76 | After { ..., ... } | +| Initializers.cs:59:33:59:35 | After access to indexer | Initializers.cs:59:39:59:44 | "Zero" | +| Initializers.cs:59:33:59:35 | Before access to indexer | Initializers.cs:59:34:59:34 | 0 | +| Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:35 | After access to indexer | +| Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:33:59:44 | After ... = ... | +| Initializers.cs:59:33:59:44 | After ... = ... | Initializers.cs:59:47:59:57 | Before ... = ... | +| Initializers.cs:59:33:59:44 | Before ... = ... | Initializers.cs:59:33:59:35 | Before access to indexer | +| Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:33:59:35 | access to indexer | +| Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:59:33:59:44 | ... = ... | +| Initializers.cs:59:47:59:49 | After access to indexer | Initializers.cs:59:53:59:57 | "One" | +| Initializers.cs:59:47:59:49 | Before access to indexer | Initializers.cs:59:48:59:48 | 1 | +| Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:59:47:59:49 | After access to indexer | +| Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:59:47:59:57 | After ... = ... | +| Initializers.cs:59:47:59:57 | After ... = ... | Initializers.cs:59:60:59:74 | Before ... = ... | +| Initializers.cs:59:47:59:57 | Before ... = ... | Initializers.cs:59:47:59:49 | Before access to indexer | +| Initializers.cs:59:48:59:48 | 1 | Initializers.cs:59:47:59:49 | access to indexer | +| Initializers.cs:59:53:59:57 | "One" | Initializers.cs:59:47:59:57 | ... = ... | +| Initializers.cs:59:60:59:66 | After access to indexer | Initializers.cs:59:70:59:74 | "Two" | +| Initializers.cs:59:60:59:66 | Before access to indexer | Initializers.cs:59:61:59:65 | Before ... + ... | +| Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:59:60:59:66 | After access to indexer | +| Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:59:60:59:74 | After ... = ... | +| Initializers.cs:59:60:59:74 | After ... = ... | Initializers.cs:59:31:59:76 | { ..., ... } | +| Initializers.cs:59:60:59:74 | Before ... = ... | Initializers.cs:59:60:59:66 | Before access to indexer | | Initializers.cs:59:61:59:61 | access to parameter i | Initializers.cs:59:65:59:65 | 2 | -| Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:59:70:59:74 | "Two" | +| Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:59:61:59:65 | After ... + ... | +| Initializers.cs:59:61:59:65 | After ... + ... | Initializers.cs:59:60:59:66 | access to indexer | +| Initializers.cs:59:61:59:65 | Before ... + ... | Initializers.cs:59:61:59:61 | access to parameter i | | Initializers.cs:59:65:59:65 | 2 | Initializers.cs:59:61:59:65 | ... + ... | -| Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:60:59:66 | access to indexer | -| Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:60:13:60:80 | ... = ... | -| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:61:29:61:29 | 0 | -| Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | -| Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:36:60:48 | ... = ... | -| Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:52:60:52 | 2 | -| Initializers.cs:60:37:60:37 | 3 | Initializers.cs:60:42:60:48 | "Three" | -| Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:60:36:60:38 | access to indexer | -| Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:60:51:60:61 | ... = ... | -| Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:60:65:60:65 | access to parameter i | -| Initializers.cs:60:52:60:52 | 2 | Initializers.cs:60:57:60:61 | "Two" | -| Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:60:51:60:53 | access to indexer | -| Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:60:64:60:78 | ... = ... | -| Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:60:34:60:80 | { ..., ... } | +| Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:60:59:74 | ... = ... | +| Initializers.cs:60:13:60:30 | After access to property DictionaryProperty | Initializers.cs:60:34:60:80 | Before { ..., ... } | +| Initializers.cs:60:13:60:30 | Before access to property DictionaryProperty | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | +| Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:60:13:60:30 | After access to property DictionaryProperty | +| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:60:13:60:80 | After ... = ... | +| Initializers.cs:60:13:60:80 | After ... = ... | Initializers.cs:61:13:61:58 | Before ... = ... | +| Initializers.cs:60:13:60:80 | Before ... = ... | Initializers.cs:60:13:60:30 | Before access to property DictionaryProperty | +| Initializers.cs:60:34:60:80 | After { ..., ... } | Initializers.cs:60:13:60:80 | ... = ... | +| Initializers.cs:60:34:60:80 | Before { ..., ... } | Initializers.cs:60:36:60:48 | Before ... = ... | +| Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:34:60:80 | After { ..., ... } | +| Initializers.cs:60:36:60:38 | After access to indexer | Initializers.cs:60:42:60:48 | "Three" | +| Initializers.cs:60:36:60:38 | Before access to indexer | Initializers.cs:60:37:60:37 | 3 | +| Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:36:60:38 | After access to indexer | +| Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:36:60:48 | After ... = ... | +| Initializers.cs:60:36:60:48 | After ... = ... | Initializers.cs:60:51:60:61 | Before ... = ... | +| Initializers.cs:60:36:60:48 | Before ... = ... | Initializers.cs:60:36:60:38 | Before access to indexer | +| Initializers.cs:60:37:60:37 | 3 | Initializers.cs:60:36:60:38 | access to indexer | +| Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:60:36:60:48 | ... = ... | +| Initializers.cs:60:51:60:53 | After access to indexer | Initializers.cs:60:57:60:61 | "Two" | +| Initializers.cs:60:51:60:53 | Before access to indexer | Initializers.cs:60:52:60:52 | 2 | +| Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:60:51:60:53 | After access to indexer | +| Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:60:51:60:61 | After ... = ... | +| Initializers.cs:60:51:60:61 | After ... = ... | Initializers.cs:60:64:60:78 | Before ... = ... | +| Initializers.cs:60:51:60:61 | Before ... = ... | Initializers.cs:60:51:60:53 | Before access to indexer | +| Initializers.cs:60:52:60:52 | 2 | Initializers.cs:60:51:60:53 | access to indexer | +| Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:60:51:60:61 | ... = ... | +| Initializers.cs:60:64:60:70 | After access to indexer | Initializers.cs:60:74:60:78 | "One" | +| Initializers.cs:60:64:60:70 | Before access to indexer | Initializers.cs:60:65:60:69 | Before ... + ... | +| Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:60:64:60:70 | After access to indexer | +| Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:60:64:60:78 | After ... = ... | +| Initializers.cs:60:64:60:78 | After ... = ... | Initializers.cs:60:34:60:80 | { ..., ... } | +| Initializers.cs:60:64:60:78 | Before ... = ... | Initializers.cs:60:64:60:70 | Before access to indexer | | Initializers.cs:60:65:60:65 | access to parameter i | Initializers.cs:60:69:60:69 | 1 | -| Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:74:60:78 | "One" | +| Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:65:60:69 | After ... + ... | +| Initializers.cs:60:65:60:69 | After ... + ... | Initializers.cs:60:64:60:70 | access to indexer | +| Initializers.cs:60:65:60:69 | Before ... + ... | Initializers.cs:60:65:60:65 | access to parameter i | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:69 | ... + ... | -| Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:70 | access to indexer | -| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:58 | ... = ... | -| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:62:30:62:30 | 0 | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:22 | access to field ArrayField | -| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:39 | ... = ... | -| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:43:61:43 | access to parameter i | -| Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:34:61:39 | "Zero" | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:30 | access to array element | -| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:56 | ... = ... | -| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | +| Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:78 | ... = ... | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:26:61:58 | Before { ..., ... } | +| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:13:61:58 | After ... = ... | +| Initializers.cs:61:13:61:58 | After ... = ... | Initializers.cs:62:13:62:60 | Before ... = ... | +| Initializers.cs:61:13:61:58 | Before ... = ... | Initializers.cs:61:13:61:22 | access to field ArrayField | +| Initializers.cs:61:26:61:58 | After { ..., ... } | Initializers.cs:61:13:61:58 | ... = ... | +| Initializers.cs:61:26:61:58 | Before { ..., ... } | Initializers.cs:61:28:61:39 | Before ... = ... | +| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:26:61:58 | After { ..., ... } | +| Initializers.cs:61:28:61:30 | After access to array element | Initializers.cs:61:34:61:39 | "Zero" | +| Initializers.cs:61:28:61:30 | Before access to array element | Initializers.cs:61:29:61:29 | 0 | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:30 | After access to array element | +| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:28:61:39 | After ... = ... | +| Initializers.cs:61:28:61:39 | After ... = ... | Initializers.cs:61:42:61:56 | Before ... = ... | +| Initializers.cs:61:28:61:39 | Before ... = ... | Initializers.cs:61:28:61:30 | Before access to array element | +| Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:28:61:30 | access to array element | +| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:39 | ... = ... | +| Initializers.cs:61:42:61:48 | After access to array element | Initializers.cs:61:52:61:56 | "One" | +| Initializers.cs:61:42:61:48 | Before access to array element | Initializers.cs:61:43:61:47 | Before ... + ... | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:48 | After access to array element | +| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:42:61:56 | After ... = ... | +| Initializers.cs:61:42:61:56 | After ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | +| Initializers.cs:61:42:61:56 | Before ... = ... | Initializers.cs:61:42:61:48 | Before access to array element | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:47:61:47 | 1 | -| Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:52:61:56 | "One" | +| Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:43:61:47 | After ... + ... | +| Initializers.cs:61:43:61:47 | After ... + ... | Initializers.cs:61:42:61:48 | access to array element | +| Initializers.cs:61:43:61:47 | Before ... + ... | Initializers.cs:61:43:61:43 | access to parameter i | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:47 | ... + ... | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:48 | access to array element | -| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:60 | ... = ... | -| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:63:32:63:32 | 1 | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:23 | access to field ArrayField2 | -| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:40 | ... = ... | -| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:44:62:44 | 1 | +| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:56 | ... = ... | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:27:62:60 | Before { ..., ... } | +| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:13:62:60 | After ... = ... | +| Initializers.cs:62:13:62:60 | After ... = ... | Initializers.cs:63:13:63:60 | Before ... = ... | +| Initializers.cs:62:13:62:60 | Before ... = ... | Initializers.cs:62:13:62:23 | access to field ArrayField2 | +| Initializers.cs:62:27:62:60 | After { ..., ... } | Initializers.cs:62:13:62:60 | ... = ... | +| Initializers.cs:62:27:62:60 | Before { ..., ... } | Initializers.cs:62:29:62:40 | Before ... = ... | +| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:27:62:60 | After { ..., ... } | +| Initializers.cs:62:29:62:34 | After access to array element | Initializers.cs:62:38:62:40 | "i" | +| Initializers.cs:62:29:62:34 | Before access to array element | Initializers.cs:62:30:62:30 | 0 | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:34 | After access to array element | +| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:29:62:40 | After ... = ... | +| Initializers.cs:62:29:62:40 | After ... = ... | Initializers.cs:62:43:62:58 | Before ... = ... | +| Initializers.cs:62:29:62:40 | Before ... = ... | Initializers.cs:62:29:62:34 | Before access to array element | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:33:62:33 | 1 | -| Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:38:62:40 | "i" | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:34 | access to array element | -| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:58 | ... = ... | -| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | -| Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:47 | access to parameter i | +| Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:29:62:34 | access to array element | +| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:40 | ... = ... | +| Initializers.cs:62:43:62:52 | After access to array element | Initializers.cs:62:56:62:58 | "1" | +| Initializers.cs:62:43:62:52 | Before access to array element | Initializers.cs:62:44:62:44 | 1 | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:52 | After access to array element | +| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:43:62:58 | After ... = ... | +| Initializers.cs:62:43:62:58 | After ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | +| Initializers.cs:62:43:62:58 | Before ... = ... | Initializers.cs:62:43:62:52 | Before access to array element | +| Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:51 | Before ... + ... | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:51:62:51 | 0 | -| Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:56:62:58 | "1" | +| Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:47:62:51 | After ... + ... | +| Initializers.cs:62:47:62:51 | After ... + ... | Initializers.cs:62:43:62:52 | access to array element | +| Initializers.cs:62:47:62:51 | Before ... + ... | Initializers.cs:62:47:62:47 | access to parameter i | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:47:62:51 | ... + ... | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:52 | access to array element | -| Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:60 | ... = ... | -| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:64:33:64:33 | 0 | -| Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:13:63:25 | access to property ArrayProperty | -| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:41 | ... = ... | -| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:45:63:45 | access to parameter i | -| Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:37:63:41 | "One" | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:33 | access to array element | -| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:58 | ... = ... | -| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | +| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:58 | ... = ... | +| Initializers.cs:63:13:63:25 | After access to property ArrayProperty | Initializers.cs:63:29:63:60 | Before { ..., ... } | +| Initializers.cs:63:13:63:25 | Before access to property ArrayProperty | Initializers.cs:63:13:63:25 | access to property ArrayProperty | +| Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:25 | After access to property ArrayProperty | +| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:13:63:60 | After ... = ... | +| Initializers.cs:63:13:63:60 | After ... = ... | Initializers.cs:64:13:64:63 | Before ... = ... | +| Initializers.cs:63:13:63:60 | Before ... = ... | Initializers.cs:63:13:63:25 | Before access to property ArrayProperty | +| Initializers.cs:63:29:63:60 | After { ..., ... } | Initializers.cs:63:13:63:60 | ... = ... | +| Initializers.cs:63:29:63:60 | Before { ..., ... } | Initializers.cs:63:31:63:41 | Before ... = ... | +| Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:29:63:60 | After { ..., ... } | +| Initializers.cs:63:31:63:33 | After access to array element | Initializers.cs:63:37:63:41 | "One" | +| Initializers.cs:63:31:63:33 | Before access to array element | Initializers.cs:63:32:63:32 | 1 | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:33 | After access to array element | +| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:31:63:41 | After ... = ... | +| Initializers.cs:63:31:63:41 | After ... = ... | Initializers.cs:63:44:63:58 | Before ... = ... | +| Initializers.cs:63:31:63:41 | Before ... = ... | Initializers.cs:63:31:63:33 | Before access to array element | +| Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:31:63:33 | access to array element | +| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:41 | ... = ... | +| Initializers.cs:63:44:63:50 | After access to array element | Initializers.cs:63:54:63:58 | "Two" | +| Initializers.cs:63:44:63:50 | Before access to array element | Initializers.cs:63:45:63:49 | Before ... + ... | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:50 | After access to array element | +| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:44:63:58 | After ... = ... | +| Initializers.cs:63:44:63:58 | After ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | +| Initializers.cs:63:44:63:58 | Before ... = ... | Initializers.cs:63:44:63:50 | Before access to array element | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:49:63:49 | 2 | -| Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:54:63:58 | "Two" | +| Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:45:63:49 | After ... + ... | +| Initializers.cs:63:45:63:49 | After ... + ... | Initializers.cs:63:44:63:50 | access to array element | +| Initializers.cs:63:45:63:49 | Before ... + ... | Initializers.cs:63:45:63:45 | access to parameter i | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:49 | ... + ... | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:50 | access to array element | -| Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:63 | ... = ... | -| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | -| Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | -| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:43 | ... = ... | -| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:47:64:47 | 1 | +| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:58 | ... = ... | +| Initializers.cs:64:13:64:26 | After access to property ArrayProperty2 | Initializers.cs:64:30:64:63 | Before { ..., ... } | +| Initializers.cs:64:13:64:26 | Before access to property ArrayProperty2 | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | +| Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:26 | After access to property ArrayProperty2 | +| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:13:64:63 | After ... = ... | +| Initializers.cs:64:13:64:63 | After ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | +| Initializers.cs:64:13:64:63 | Before ... = ... | Initializers.cs:64:13:64:26 | Before access to property ArrayProperty2 | +| Initializers.cs:64:30:64:63 | After { ..., ... } | Initializers.cs:64:13:64:63 | ... = ... | +| Initializers.cs:64:30:64:63 | Before { ..., ... } | Initializers.cs:64:32:64:43 | Before ... = ... | +| Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:30:64:63 | After { ..., ... } | +| Initializers.cs:64:32:64:37 | After access to array element | Initializers.cs:64:41:64:43 | "i" | +| Initializers.cs:64:32:64:37 | Before access to array element | Initializers.cs:64:33:64:33 | 0 | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:37 | After access to array element | +| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:32:64:43 | After ... = ... | +| Initializers.cs:64:32:64:43 | After ... = ... | Initializers.cs:64:46:64:61 | Before ... = ... | +| Initializers.cs:64:32:64:43 | Before ... = ... | Initializers.cs:64:32:64:37 | Before access to array element | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:36:64:36 | 1 | -| Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:41:64:43 | "i" | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:37 | access to array element | -| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:61 | ... = ... | -| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | -| Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:50 | access to parameter i | +| Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:32:64:37 | access to array element | +| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:43 | ... = ... | +| Initializers.cs:64:46:64:55 | After access to array element | Initializers.cs:64:59:64:61 | "1" | +| Initializers.cs:64:46:64:55 | Before access to array element | Initializers.cs:64:47:64:47 | 1 | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:55 | After access to array element | +| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:46:64:61 | After ... = ... | +| Initializers.cs:64:46:64:61 | After ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | +| Initializers.cs:64:46:64:61 | Before ... = ... | Initializers.cs:64:46:64:55 | Before access to array element | +| Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:54 | Before ... + ... | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:54:64:54 | 0 | -| Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:59:64:61 | "1" | +| Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:50:64:54 | After ... + ... | +| Initializers.cs:64:50:64:54 | After ... + ... | Initializers.cs:64:46:64:55 | access to array element | +| Initializers.cs:64:50:64:54 | Before ... + ... | Initializers.cs:64:50:64:50 | access to parameter i | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | -| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:55 | access to array element | -| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | -| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | -| LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | +| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | +| LoopUnrolling.cs:5:7:5:19 | After call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | +| LoopUnrolling.cs:5:7:5:19 | After call to method | LoopUnrolling.cs:5:7:5:19 | Before call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | Before call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | Before call to method | LoopUnrolling.cs:5:7:5:19 | this access | +| LoopUnrolling.cs:5:7:5:19 | Entry | LoopUnrolling.cs:5:7:5:19 | Before call to method | +| LoopUnrolling.cs:5:7:5:19 | Normal Exit | LoopUnrolling.cs:5:7:5:19 | Exit | +| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | After call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | After call to method | | 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 | +| LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | Normal Exit | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:8:5:13:5 | {...} | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | Exit | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:9:9:10:19 | if (...) ... | -| LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:9:13:9:16 | access to parameter args | +| LoopUnrolling.cs:9:9:10:19 | After if (...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:9:13:9:28 | Before ... == ... | | LoopUnrolling.cs:9:13:9:16 | access to parameter args | LoopUnrolling.cs:9:13:9:23 | access to property Length | -| LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:9:28:9:28 | 0 | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:10:13:10:19 | return ...; | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | +| LoopUnrolling.cs:9:13:9:23 | After access to property Length | LoopUnrolling.cs:9:28:9:28 | 0 | +| LoopUnrolling.cs:9:13:9:23 | Before access to property Length | LoopUnrolling.cs:9:13:9:16 | access to parameter args | +| LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:9:13:9:23 | After access to property Length | +| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | +| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:9:9:10:19 | After if (...) ... | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | LoopUnrolling.cs:10:13:10:19 | Before return ...; | +| LoopUnrolling.cs:9:13:9:28 | Before ... == ... | LoopUnrolling.cs:9:13:9:23 | Before access to property Length | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:13:9:28 | ... == ... | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:10:13:10:19 | Before return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:8:5:13:5 | After {...} | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:12:13:12:35 | ...; | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:12:13:12:34 | After call to method WriteLine | LoopUnrolling.cs:12:13:12:35 | After ...; | +| LoopUnrolling.cs:12:13:12:34 | Before call to method WriteLine | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | +| LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:12:13:12:34 | After call to method WriteLine | +| LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:12:13:12:34 | Before call to method WriteLine | +| LoopUnrolling.cs:12:13:12:35 | After ...; | LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:16:5:20:5 | {...} | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:16:5:20:5 | {...} | +| LoopUnrolling.cs:15:10:15:11 | Normal Exit | LoopUnrolling.cs:15:10:15:11 | Exit | +| LoopUnrolling.cs:16:5:20:5 | After {...} | LoopUnrolling.cs:15:10:15:11 | Normal Exit | | LoopUnrolling.cs:16:5:20:5 | {...} | LoopUnrolling.cs:17:9:17:48 | ... ...; | -| LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:17:18:17:47 | 3 | -| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | +| LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:17:13:17:47 | Before String[] xs = ... | +| LoopUnrolling.cs:17:9:17:48 | After ... ...; | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:17:13:17:14 | access to local variable xs | LoopUnrolling.cs:17:18:17:47 | Before array creation of type String[] | +| LoopUnrolling.cs:17:13:17:47 | After String[] xs = ... | LoopUnrolling.cs:17:9:17:48 | After ... ...; | +| LoopUnrolling.cs:17:13:17:47 | Before String[] xs = ... | LoopUnrolling.cs:17:13:17:14 | access to local variable xs | +| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:17:13:17:47 | After String[] xs = ... | | LoopUnrolling.cs:17:18:17:47 | 3 | LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | -| LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:33:17:35 | "a" | -| LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | +| LoopUnrolling.cs:17:18:17:47 | After array creation of type String[] | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | +| LoopUnrolling.cs:17:18:17:47 | Before array creation of type String[] | LoopUnrolling.cs:17:31:17:47 | Before { ..., ... } | +| LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:18:17:47 | After array creation of type String[] | +| LoopUnrolling.cs:17:31:17:47 | After { ..., ... } | LoopUnrolling.cs:17:18:17:47 | 3 | +| LoopUnrolling.cs:17:31:17:47 | Before { ..., ... } | LoopUnrolling.cs:17:33:17:35 | "a" | +| LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:17:31:17:47 | After { ..., ... } | | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:38:17:40 | "b" | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:43:17:45 | "c" | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:16:5:20:5 | After {...} | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:19:13:19:33 | ...; | -| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:31:19:31 | access to local variable x | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:18:22:18:22 | String x | +| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:19:13:19:32 | After call to method WriteLine | LoopUnrolling.cs:19:13:19:33 | After ...; | +| LoopUnrolling.cs:19:13:19:32 | Before call to method WriteLine | LoopUnrolling.cs:19:31:19:31 | access to local variable x | +| LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:19:13:19:32 | After call to method WriteLine | +| LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:13:19:32 | Before call to method WriteLine | +| LoopUnrolling.cs:19:13:19:33 | After ...; | LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:23:5:27:5 | {...} | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 | -| LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:24:29:24:32 | access to parameter args | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | access to parameter args | -| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:23:5:27:5 | {...} | +| LoopUnrolling.cs:22:10:22:11 | Normal Exit | LoopUnrolling.cs:22:10:22:11 | Exit | +| LoopUnrolling.cs:23:5:27:5 | After {...} | LoopUnrolling.cs:22:10:22:11 | Normal Exit | +| LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:23:5:27:5 | After {...} | +| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | access to parameter args | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | access to parameter args | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:26:17:26:40 | ...; | -| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:26:17:26:39 | After call to method WriteLine | LoopUnrolling.cs:26:17:26:40 | After ...; | +| LoopUnrolling.cs:26:17:26:39 | Before call to method WriteLine | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | +| LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:26:17:26:39 | After call to method WriteLine | +| LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:26:17:26:39 | Before call to method WriteLine | +| LoopUnrolling.cs:26:17:26:40 | After ...; | LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:30:5:34:5 | {...} | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:30:5:34:5 | {...} | +| LoopUnrolling.cs:29:10:29:11 | Normal Exit | LoopUnrolling.cs:29:10:29:11 | Exit | +| LoopUnrolling.cs:30:5:34:5 | After {...} | LoopUnrolling.cs:29:10:29:11 | Normal Exit | | LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:31:9:31:31 | ... ...; | -| LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:31:29:31:29 | 0 | -| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | -| LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | +| LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:31:13:31:30 | Before String[] xs = ... | +| LoopUnrolling.cs:31:9:31:31 | After ... ...; | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:31:13:31:14 | access to local variable xs | LoopUnrolling.cs:31:18:31:30 | Before array creation of type String[] | +| LoopUnrolling.cs:31:13:31:30 | After String[] xs = ... | LoopUnrolling.cs:31:9:31:31 | After ... ...; | +| LoopUnrolling.cs:31:13:31:30 | Before String[] xs = ... | LoopUnrolling.cs:31:13:31:14 | access to local variable xs | +| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:13:31:30 | After String[] xs = ... | +| LoopUnrolling.cs:31:18:31:30 | After array creation of type String[] | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | +| LoopUnrolling.cs:31:18:31:30 | Before array creation of type String[] | LoopUnrolling.cs:31:29:31:29 | 0 | +| LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:18:31:30 | After array creation of type String[] | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:30:5:34:5 | After {...} | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | | LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:33:13:33:33 | ...; | -| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:33:31:33:31 | access to local variable x | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:33:13:33:32 | After call to method WriteLine | LoopUnrolling.cs:33:13:33:33 | After ...; | +| LoopUnrolling.cs:33:13:33:32 | Before call to method WriteLine | LoopUnrolling.cs:33:31:33:31 | access to local variable x | +| LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:33:13:33:32 | After call to method WriteLine | +| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:33:13:33:32 | Before call to method WriteLine | +| LoopUnrolling.cs:33:13:33:33 | After ...; | LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:37:5:43:5 | {...} | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:37:5:43:5 | {...} | +| LoopUnrolling.cs:36:10:36:11 | Normal Exit | LoopUnrolling.cs:36:10:36:11 | Exit | +| LoopUnrolling.cs:37:5:43:5 | After {...} | LoopUnrolling.cs:36:10:36:11 | Normal Exit | | LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:38:9:38:48 | ... ...; | -| LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:38:18:38:47 | 3 | -| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:39:9:39:48 | ... ...; | +| LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:38:13:38:47 | Before String[] xs = ... | +| LoopUnrolling.cs:38:9:38:48 | After ... ...; | LoopUnrolling.cs:39:9:39:48 | ... ...; | +| LoopUnrolling.cs:38:13:38:14 | access to local variable xs | LoopUnrolling.cs:38:18:38:47 | Before array creation of type String[] | +| LoopUnrolling.cs:38:13:38:47 | After String[] xs = ... | LoopUnrolling.cs:38:9:38:48 | After ... ...; | +| LoopUnrolling.cs:38:13:38:47 | Before String[] xs = ... | LoopUnrolling.cs:38:13:38:14 | access to local variable xs | +| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:38:13:38:47 | After String[] xs = ... | | LoopUnrolling.cs:38:18:38:47 | 3 | LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | -| LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:33:38:35 | "a" | -| LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | +| LoopUnrolling.cs:38:18:38:47 | After array creation of type String[] | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | +| LoopUnrolling.cs:38:18:38:47 | Before array creation of type String[] | LoopUnrolling.cs:38:31:38:47 | Before { ..., ... } | +| LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:18:38:47 | After array creation of type String[] | +| LoopUnrolling.cs:38:31:38:47 | After { ..., ... } | LoopUnrolling.cs:38:18:38:47 | 3 | +| LoopUnrolling.cs:38:31:38:47 | Before { ..., ... } | LoopUnrolling.cs:38:33:38:35 | "a" | +| LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:38:31:38:47 | After { ..., ... } | | LoopUnrolling.cs:38:33:38:35 | "a" | LoopUnrolling.cs:38:38:38:40 | "b" | | LoopUnrolling.cs:38:38:38:40 | "b" | LoopUnrolling.cs:38:43:38:45 | "c" | | LoopUnrolling.cs:38:43:38:45 | "c" | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | -| LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:39:18:39:47 | 3 | -| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | +| LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:39:13:39:47 | Before String[] ys = ... | +| LoopUnrolling.cs:39:9:39:48 | After ... ...; | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:39:13:39:14 | access to local variable ys | LoopUnrolling.cs:39:18:39:47 | Before array creation of type String[] | +| LoopUnrolling.cs:39:13:39:47 | After String[] ys = ... | LoopUnrolling.cs:39:9:39:48 | After ... ...; | +| LoopUnrolling.cs:39:13:39:47 | Before String[] ys = ... | LoopUnrolling.cs:39:13:39:14 | access to local variable ys | +| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:39:13:39:47 | After String[] ys = ... | | LoopUnrolling.cs:39:18:39:47 | 3 | LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | -| LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:33:39:35 | "0" | -| LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | +| LoopUnrolling.cs:39:18:39:47 | After array creation of type String[] | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | +| LoopUnrolling.cs:39:18:39:47 | Before array creation of type String[] | LoopUnrolling.cs:39:31:39:47 | Before { ..., ... } | +| LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:18:39:47 | After array creation of type String[] | +| LoopUnrolling.cs:39:31:39:47 | After { ..., ... } | LoopUnrolling.cs:39:18:39:47 | 3 | +| LoopUnrolling.cs:39:31:39:47 | Before { ..., ... } | LoopUnrolling.cs:39:33:39:35 | "0" | +| LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:39:31:39:47 | After { ..., ... } | | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:38:39:40 | "1" | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:43:39:45 | "2" | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | -| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:37:5:43:5 | After {...} | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:42:17:42:41 | ...; | -| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:42:35:42:35 | access to local variable x | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:42:17:42:40 | After call to method WriteLine | LoopUnrolling.cs:42:17:42:41 | After ...; | +| LoopUnrolling.cs:42:17:42:40 | Before call to method WriteLine | LoopUnrolling.cs:42:35:42:39 | Before ... + ... | +| LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:42:17:42:40 | After call to method WriteLine | +| LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:42:17:42:40 | Before call to method WriteLine | +| LoopUnrolling.cs:42:17:42:41 | After ...; | LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:39:42:39 | access to local variable y | -| LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | +| LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:35:42:39 | After ... + ... | +| LoopUnrolling.cs:42:35:42:39 | After ... + ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | +| LoopUnrolling.cs:42:35:42:39 | Before ... + ... | LoopUnrolling.cs:42:35:42:35 | access to local variable x | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:35:42:39 | ... + ... | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:46:5:53:5 | {...} | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:46:5:53:5 | {...} | +| LoopUnrolling.cs:45:10:45:11 | Normal Exit | LoopUnrolling.cs:45:10:45:11 | Exit | +| LoopUnrolling.cs:46:5:53:5 | After {...} | LoopUnrolling.cs:45:10:45:11 | Normal Exit | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:47:9:47:48 | ... ...; | -| LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:18:47:47 | 3 | -| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | +| LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:13:47:47 | Before String[] xs = ... | +| LoopUnrolling.cs:47:9:47:48 | After ... ...; | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:47:13:47:14 | access to local variable xs | LoopUnrolling.cs:47:18:47:47 | Before array creation of type String[] | +| LoopUnrolling.cs:47:13:47:47 | After String[] xs = ... | LoopUnrolling.cs:47:9:47:48 | After ... ...; | +| LoopUnrolling.cs:47:13:47:47 | Before String[] xs = ... | LoopUnrolling.cs:47:13:47:14 | access to local variable xs | +| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:13:47:47 | After String[] xs = ... | | LoopUnrolling.cs:47:18:47:47 | 3 | LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | -| LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:33:47:35 | "a" | -| LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | +| LoopUnrolling.cs:47:18:47:47 | After array creation of type String[] | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | +| LoopUnrolling.cs:47:18:47:47 | Before array creation of type String[] | LoopUnrolling.cs:47:31:47:47 | Before { ..., ... } | +| LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:18:47:47 | After array creation of type String[] | +| LoopUnrolling.cs:47:31:47:47 | After { ..., ... } | LoopUnrolling.cs:47:18:47:47 | 3 | +| LoopUnrolling.cs:47:31:47:47 | Before { ..., ... } | LoopUnrolling.cs:47:33:47:35 | "a" | +| LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:47:31:47:47 | After { ..., ... } | | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:38:47:40 | "b" | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:43:47:45 | "c" | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:22:48:22 | String x | +| LoopUnrolling.cs:48:9:52:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:46:5:53:5 | After {...} | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:49:9:52:9 | {...} | -| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:48:9:52:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:48:22:48:22 | String x | +| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:50:9:50:13 | Label: | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:16:50:36 | ...; | -| LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:51:13:51:23 | goto ...; | -| LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:34:50:34 | access to local variable x | +| LoopUnrolling.cs:50:16:50:35 | After call to method WriteLine | LoopUnrolling.cs:50:16:50:36 | After ...; | +| LoopUnrolling.cs:50:16:50:35 | Before call to method WriteLine | LoopUnrolling.cs:50:34:50:34 | access to local variable x | +| LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:50:16:50:35 | After call to method WriteLine | +| LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:16:50:35 | Before call to method WriteLine | +| LoopUnrolling.cs:50:16:50:36 | After ...; | LoopUnrolling.cs:51:13:51:23 | Before goto ...; | | LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:56:5:65:5 | {...} | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 | +| LoopUnrolling.cs:51:13:51:23 | Before goto ...; | LoopUnrolling.cs:51:13:51:23 | goto ...; | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:56:5:65:5 | {...} | +| LoopUnrolling.cs:55:10:55:11 | Normal Exit | LoopUnrolling.cs:55:10:55:11 | Exit | +| LoopUnrolling.cs:56:5:65:5 | After {...} | LoopUnrolling.cs:55:10:55:11 | Normal Exit | | LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:57:9:57:48 | ... ...; | -| LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:57:18:57:47 | 3 | -| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | +| LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:57:13:57:47 | Before String[] xs = ... | +| LoopUnrolling.cs:57:9:57:48 | After ... ...; | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:57:13:57:14 | access to local variable xs | LoopUnrolling.cs:57:18:57:47 | Before array creation of type String[] | +| LoopUnrolling.cs:57:13:57:47 | After String[] xs = ... | LoopUnrolling.cs:57:9:57:48 | After ... ...; | +| LoopUnrolling.cs:57:13:57:47 | Before String[] xs = ... | LoopUnrolling.cs:57:13:57:14 | access to local variable xs | +| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:13:57:47 | After String[] xs = ... | | LoopUnrolling.cs:57:18:57:47 | 3 | LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | -| LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:33:57:35 | "a" | -| LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | +| LoopUnrolling.cs:57:18:57:47 | After array creation of type String[] | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | +| LoopUnrolling.cs:57:18:57:47 | Before array creation of type String[] | LoopUnrolling.cs:57:31:57:47 | Before { ..., ... } | +| LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:18:57:47 | After array creation of type String[] | +| LoopUnrolling.cs:57:31:57:47 | After { ..., ... } | LoopUnrolling.cs:57:18:57:47 | 3 | +| LoopUnrolling.cs:57:31:57:47 | Before { ..., ... } | LoopUnrolling.cs:57:33:57:35 | "a" | +| LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:57:31:57:47 | After { ..., ... } | | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:38:57:40 | "b" | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:43:57:45 | "c" | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:56:5:65:5 | After {...} | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:59:9:64:9 | {...} | -| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:59:9:64:9 | After {...} | LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:60:13:61:37 | if (...) ... | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:60:17:60:17 | access to parameter b | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:35:61:35 | access to local variable x | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:61:17:61:36 | After call to method WriteLine | LoopUnrolling.cs:61:17:61:37 | After ...; | +| LoopUnrolling.cs:61:17:61:36 | Before call to method WriteLine | LoopUnrolling.cs:61:35:61:35 | access to local variable x | +| LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:61:17:61:36 | After call to method WriteLine | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:36 | Before call to method WriteLine | | LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:59:9:64:9 | After {...} | | LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | -| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:35:63:35 | access to local variable x | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | LoopUnrolling.cs:63:17:63:37 | ...; | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:63:17:63:36 | After call to method WriteLine | LoopUnrolling.cs:63:17:63:37 | After ...; | +| LoopUnrolling.cs:63:17:63:36 | Before call to method WriteLine | LoopUnrolling.cs:63:35:63:35 | access to local variable x | +| LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:63:17:63:36 | After call to method WriteLine | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:36 | Before call to method WriteLine | | LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:68:5:74:5 | {...} | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:68:5:74:5 | {...} | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | Exit | | LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:69:9:70:19 | if (...) ... | -| LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:69:14:69:17 | access to parameter args | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | +| LoopUnrolling.cs:69:9:70:19 | After if (...) ... | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:69:13:69:23 | !... | +| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:69:14:69:23 | Before call to method Any | +| LoopUnrolling.cs:69:13:69:23 | After !... [false] | LoopUnrolling.cs:69:9:70:19 | After if (...) ... | +| LoopUnrolling.cs:69:13:69:23 | After !... [true] | LoopUnrolling.cs:70:13:70:19 | Before return ...; | | LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:69:14:69:23 | call to method Any | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:13:69:23 | [true] !... | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:69:13:69:23 | After !... [true] | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:69:13:69:23 | After !... [false] | +| LoopUnrolling.cs:69:14:69:23 | Before call to method Any | LoopUnrolling.cs:69:14:69:17 | access to parameter args | +| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | +| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | +| LoopUnrolling.cs:70:13:70:19 | Before return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:20 | call to method Clear | -| LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:72:29:72:32 | access to parameter args | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:12 | access to parameter args | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:71:9:71:20 | After call to method Clear | LoopUnrolling.cs:71:9:71:21 | After ...; | +| LoopUnrolling.cs:71:9:71:20 | Before call to method Clear | LoopUnrolling.cs:71:9:71:12 | access to parameter args | +| LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:71:9:71:20 | After call to method Clear | +| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:20 | Before call to method Clear | +| LoopUnrolling.cs:71:9:71:21 | After ...; | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:68:5:74:5 | After {...} | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | access to parameter args | | LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:73:13:73:35 | ...; | -| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:73:13:73:34 | After call to method WriteLine | LoopUnrolling.cs:73:13:73:35 | After ...; | +| LoopUnrolling.cs:73:13:73:34 | Before call to method WriteLine | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | +| LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:73:13:73:34 | After call to method WriteLine | +| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:73:13:73:34 | Before call to method WriteLine | +| LoopUnrolling.cs:73:13:73:35 | After ...; | LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:77:5:83:5 | {...} | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:77:5:83:5 | {...} | +| LoopUnrolling.cs:76:10:76:11 | Normal Exit | LoopUnrolling.cs:76:10:76:11 | Exit | +| LoopUnrolling.cs:77:5:83:5 | After {...} | LoopUnrolling.cs:76:10:76:11 | Normal Exit | | LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:78:9:78:34 | ... ...; | -| LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:78:29:78:29 | 2 | -| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | -| LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | +| LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:78:13:78:33 | Before String[,] xs = ... | +| LoopUnrolling.cs:78:9:78:34 | After ... ...; | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:78:13:78:14 | access to local variable xs | LoopUnrolling.cs:78:18:78:33 | Before array creation of type String[,] | +| LoopUnrolling.cs:78:13:78:33 | After String[,] xs = ... | LoopUnrolling.cs:78:9:78:34 | After ... ...; | +| LoopUnrolling.cs:78:13:78:33 | Before String[,] xs = ... | LoopUnrolling.cs:78:13:78:14 | access to local variable xs | +| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:13:78:33 | After String[,] xs = ... | +| LoopUnrolling.cs:78:18:78:33 | After array creation of type String[,] | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | +| LoopUnrolling.cs:78:18:78:33 | Before array creation of type String[,] | LoopUnrolling.cs:78:29:78:29 | 2 | +| LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:18:78:33 | After array creation of type String[,] | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:32:78:32 | 0 | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:77:5:83:5 | After {...} | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | | LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:80:9:82:9 | {...} | -| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:80:9:82:9 | After {...} | LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:81:13:81:33 | ...; | -| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:81:31:81:31 | access to local variable x | +| LoopUnrolling.cs:81:13:81:32 | After call to method WriteLine | LoopUnrolling.cs:81:13:81:33 | After ...; | +| LoopUnrolling.cs:81:13:81:32 | Before call to method WriteLine | LoopUnrolling.cs:81:31:81:31 | access to local variable x | +| LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:81:13:81:32 | After call to method WriteLine | +| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:81:13:81:32 | Before call to method WriteLine | +| LoopUnrolling.cs:81:13:81:33 | After ...; | LoopUnrolling.cs:80:9:82:9 | After {...} | | LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:86:5:92:5 | {...} | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:86:5:92:5 | {...} | +| LoopUnrolling.cs:85:10:85:12 | Normal Exit | LoopUnrolling.cs:85:10:85:12 | Exit | +| LoopUnrolling.cs:86:5:92:5 | After {...} | LoopUnrolling.cs:85:10:85:12 | Normal Exit | | LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:87:9:87:34 | ... ...; | -| LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:87:29:87:29 | 0 | -| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | -| LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | +| LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:87:13:87:33 | Before String[,] xs = ... | +| LoopUnrolling.cs:87:9:87:34 | After ... ...; | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:87:13:87:14 | access to local variable xs | LoopUnrolling.cs:87:18:87:33 | Before array creation of type String[,] | +| LoopUnrolling.cs:87:13:87:33 | After String[,] xs = ... | LoopUnrolling.cs:87:9:87:34 | After ... ...; | +| LoopUnrolling.cs:87:13:87:33 | Before String[,] xs = ... | LoopUnrolling.cs:87:13:87:14 | access to local variable xs | +| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:13:87:33 | After String[,] xs = ... | +| LoopUnrolling.cs:87:18:87:33 | After array creation of type String[,] | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | +| LoopUnrolling.cs:87:18:87:33 | Before array creation of type String[,] | LoopUnrolling.cs:87:29:87:29 | 0 | +| LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:18:87:33 | After array creation of type String[,] | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:32:87:32 | 2 | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:86:5:92:5 | After {...} | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | | LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:89:9:91:9 | {...} | -| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:89:9:91:9 | After {...} | LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:90:13:90:33 | ...; | -| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:90:31:90:31 | access to local variable x | +| LoopUnrolling.cs:90:13:90:32 | After call to method WriteLine | LoopUnrolling.cs:90:13:90:33 | After ...; | +| LoopUnrolling.cs:90:13:90:32 | Before call to method WriteLine | LoopUnrolling.cs:90:31:90:31 | access to local variable x | +| LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:90:13:90:32 | After call to method WriteLine | +| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:90:13:90:32 | Before call to method WriteLine | +| LoopUnrolling.cs:90:13:90:33 | After ...; | LoopUnrolling.cs:89:9:91:9 | After {...} | | LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:95:5:101:5 | {...} | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:95:5:101:5 | {...} | +| LoopUnrolling.cs:94:10:94:12 | Normal Exit | LoopUnrolling.cs:94:10:94:12 | Exit | +| LoopUnrolling.cs:95:5:101:5 | After {...} | LoopUnrolling.cs:94:10:94:12 | Normal Exit | | LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:96:9:96:34 | ... ...; | -| LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:96:29:96:29 | 2 | -| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | -| LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | +| LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:96:13:96:33 | Before String[,] xs = ... | +| LoopUnrolling.cs:96:9:96:34 | After ... ...; | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:96:13:96:14 | access to local variable xs | LoopUnrolling.cs:96:18:96:33 | Before array creation of type String[,] | +| LoopUnrolling.cs:96:13:96:33 | After String[,] xs = ... | LoopUnrolling.cs:96:9:96:34 | After ... ...; | +| LoopUnrolling.cs:96:13:96:33 | Before String[,] xs = ... | LoopUnrolling.cs:96:13:96:14 | access to local variable xs | +| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:96:13:96:33 | After String[,] xs = ... | +| LoopUnrolling.cs:96:18:96:33 | After array creation of type String[,] | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | +| LoopUnrolling.cs:96:18:96:33 | Before array creation of type String[,] | LoopUnrolling.cs:96:29:96:29 | 2 | +| LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:18:96:33 | After array creation of type String[,] | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:32:96:32 | 2 | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:95:5:101:5 | After {...} | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:98:9:100:9 | {...} | -| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:98:9:100:9 | After {...} | LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | | LoopUnrolling.cs:98:9:100:9 | {...} | 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:13:99:32 | After call to method WriteLine | LoopUnrolling.cs:99:13:99:33 | After ...; | +| LoopUnrolling.cs:99:13:99:32 | Before call to method WriteLine | LoopUnrolling.cs:99:31:99:31 | access to local variable x | +| LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:99:13:99:32 | After call to method WriteLine | +| LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:13:99:32 | Before call to method WriteLine | +| LoopUnrolling.cs:99:13:99:33 | After ...; | LoopUnrolling.cs:98:9:100:9 | After {...} | | 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 | 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 | After call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | +| MultiImplementationA.cs:4:7:4:8 | After call to method | MultiImplementationA.cs:4:7:4:8 | Before call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | Before call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationB.cs:1:7:1:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | Exit | +| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | After call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | After call to method | | 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) | +| MultiImplementationA.cs:6:22:6:31 | Before throw ... | MultiImplementationA.cs:6:28:6:31 | null | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | Before throw ... | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationB.cs:3:22:3:22 | 0 | +| MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | Exceptional Exit | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | throw ... | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:25:7:39 | {...} | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationB.cs:4:25:4:37 | {...} | -| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:33:7:36 | null | -| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:25:7:39 | {...} | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationB.cs:4:25:4:37 | {...} | +| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:27:7:37 | Before throw ...; | +| MultiImplementationA.cs:7:27:7:37 | Before throw ...; | MultiImplementationA.cs:7:33:7:36 | null | +| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | Exceptional Exit | | MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:27:7:37 | throw ...; | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:45:7:59 | {...} | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationB.cs:4:43:4:45 | {...} | -| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:53:7:56 | null | -| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:45:7:59 | {...} | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationB.cs:4:43:4:45 | {...} | +| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:47:7:57 | Before throw ...; | +| MultiImplementationA.cs:7:47:7:57 | Before throw ...; | MultiImplementationA.cs:7:53:7:56 | null | +| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | Exceptional Exit | | MultiImplementationA.cs:7:53:7:56 | null | MultiImplementationA.cs:7:47:7:57 | throw ...; | -| MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:29:8:32 | null | -| MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | -| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationA.cs:8:23:8:32 | Before throw ... | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationA.cs:8:23:8:32 | Before throw ... | MultiImplementationA.cs:8:29:8:32 | null | +| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | Exceptional Exit | | 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 | access to field F | MultiImplementationA.cs:13:16:13:20 | ... = ... | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | access to field F | -| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | -| MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | -| MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationB.cs:12:37:12:40 | null | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:40:15:52 | {...} | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationB.cs:13:40:13:54 | {...} | -| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:49:15:49 | access to parameter s | -| MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (normal) | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:13:16:13:20 | Before ... = ... | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationB.cs:11:16:11:20 | Before ... = ... | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | Exit | +| MultiImplementationA.cs:13:16:13:16 | After access to field F | MultiImplementationA.cs:13:20:13:20 | 0 | +| MultiImplementationA.cs:13:16:13:16 | Before access to field F | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:16 | After access to field F | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | access to field F | +| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:16:13:20 | After ... = ... | +| MultiImplementationA.cs:13:16:13:20 | After ... = ... | MultiImplementationA.cs:24:32:24:34 | Before ... = ... | +| MultiImplementationA.cs:13:16:13:20 | Before ... = ... | MultiImplementationA.cs:13:16:13:16 | Before access to field F | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | access to parameter i | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationB.cs:12:31:12:40 | Before throw ... | +| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | Normal Exit | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:40:15:52 | {...} | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationB.cs:13:40:13:54 | {...} | +| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:42:15:50 | Before return ...; | +| MultiImplementationA.cs:15:42:15:50 | Before return ...; | MultiImplementationA.cs:15:49:15:49 | access to parameter s | +| MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:36:15:38 | Normal Exit | | MultiImplementationA.cs:15:49:15:49 | access to parameter s | MultiImplementationA.cs:15:42:15:50 | return ...; | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:58:15:60 | {...} | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationB.cs:13:60:13:62 | {...} | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | exit set_Item | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:17:5:19:5 | {...} | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationB.cs:15:5:17:5 | {...} | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | exit M1 | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:58:15:60 | {...} | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationB.cs:13:60:13:62 | {...} | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | Exit | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:17:5:19:5 | {...} | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationB.cs:15:5:17:5 | {...} | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:16:17:16:18 | Exit | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:18:9:18:22 | M2(...) | -| 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: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:18:9:18:22 | Entry | MultiImplementationA.cs:18:21:18:21 | 0 | +| MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:17:5:19:5 | After {...} | +| MultiImplementationA.cs:18:9:18:22 | Normal Exit | MultiImplementationA.cs:18:9:18:22 | Exit | +| MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | Normal Exit | +| MultiImplementationA.cs:20:12:20:13 | After call to constructor Object | MultiImplementationA.cs:20:22:20:31 | {...} | +| MultiImplementationA.cs:20:12:20:13 | After call to method | MultiImplementationA.cs:20:12:20:13 | Before call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | Before call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | Before call to method | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationB.cs:18:12:18:13 | Before call to method | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | After call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | After call to method | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | +| MultiImplementationA.cs:20:22:20:31 | After {...} | MultiImplementationA.cs:20:12:20:13 | Normal Exit | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | -| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:28 | ... = ... | -| MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | -| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | -| MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:24 | this access | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | access to field F | -| MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | -| MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationB.cs:19:24:19:24 | 1 | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | -| MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | MultiImplementationA.cs:21:27:21:29 | {...} | +| MultiImplementationA.cs:20:24:20:24 | After access to field F | MultiImplementationA.cs:20:28:20:28 | access to parameter i | +| MultiImplementationA.cs:20:24:20:24 | Before access to field F | MultiImplementationA.cs:20:24:20:24 | this access | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:24 | After access to field F | +| MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:24 | access to field F | +| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:24:20:28 | After ... = ... | +| MultiImplementationA.cs:20:24:20:28 | After ... = ... | MultiImplementationA.cs:20:24:20:29 | After ...; | +| MultiImplementationA.cs:20:24:20:28 | Before ... = ... | MultiImplementationA.cs:20:24:20:24 | Before access to field F | +| MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:28 | Before ... = ... | +| MultiImplementationA.cs:20:24:20:29 | After ...; | MultiImplementationA.cs:20:22:20:31 | After {...} | +| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:28 | ... = ... | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | Exit | +| MultiImplementationA.cs:21:19:21:22 | After call to constructor C2 | MultiImplementationA.cs:21:27:21:29 | {...} | +| MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | MultiImplementationA.cs:21:24:21:24 | 0 | +| MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | MultiImplementationA.cs:21:19:21:22 | After call to constructor C2 | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:11:22:13 | {...} | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationB.cs:20:11:20:25 | {...} | -| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (normal) | -| MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:50:23:53 | null | -| MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationB.cs:21:56:21:59 | null | -| 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: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 | 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:22:6:22:7 | Entry | MultiImplementationA.cs:22:11:22:13 | {...} | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationB.cs:20:11:20:25 | {...} | +| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | Normal Exit | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationA.cs:23:50:23:53 | null | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationB.cs:21:50:21:59 | Before throw ... | +| MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | Normal Exit | +| MultiImplementationA.cs:24:16:24:16 | After access to property P | MultiImplementationA.cs:24:34:24:34 | 0 | +| MultiImplementationA.cs:24:16:24:16 | Before access to property P | MultiImplementationA.cs:24:16:24:16 | this access | +| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:16:24:16 | After access to property P | +| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:16:24:16 | access to property P | +| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:32:24:34 | After ... = ... | +| MultiImplementationA.cs:24:32:24:34 | Before ... = ... | MultiImplementationA.cs:24:16:24:16 | Before access to property P | +| MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:32:24:34 | ... = ... | +| MultiImplementationA.cs:28:7:28:8 | After call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | +| MultiImplementationA.cs:28:7:28:8 | After call to method | MultiImplementationA.cs:28:7:28:8 | Before call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | Before call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationB.cs:25:7:25:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | Exit | +| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | After call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | After call to method | | 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:21:30:23 | Entry | MultiImplementationA.cs:30:28:30:37 | Before throw ... | +| MultiImplementationA.cs:30:21:30:23 | Exceptional Exit | MultiImplementationA.cs:30:21:30:23 | Exit | +| MultiImplementationA.cs:30:28:30:37 | Before throw ... | MultiImplementationA.cs:30:34:30:37 | null | +| MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | Exceptional Exit | | 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 | 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 | After call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | +| MultiImplementationA.cs:34:15:34:16 | After call to method | MultiImplementationA.cs:34:15:34:16 | Before call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | Before call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationB.cs:30:15:30:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | Exit | +| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | After call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | After call to method | | 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 | -| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:14:36:28 | {...} | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationB.cs:32:17:32:17 | 0 | +| MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:16:36:26 | Before throw ...; | +| MultiImplementationA.cs:36:16:36:26 | Before throw ...; | MultiImplementationA.cs:36:22:36:25 | null | +| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | Exceptional Exit | | MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:16:36:26 | throw ...; | -| MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:14:37:28 | {...} | -| MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | MultiImplementationA.cs:37:9:37:10 | exit M2 | -| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:22:37:25 | null | -| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | +| MultiImplementationA.cs:37:9:37:10 | Entry | MultiImplementationA.cs:37:14:37:28 | {...} | +| MultiImplementationA.cs:37:9:37:10 | Exceptional Exit | MultiImplementationA.cs:37:9:37:10 | Exit | +| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:16:37:26 | Before throw ...; | +| MultiImplementationA.cs:37:16:37:26 | Before throw ...; | MultiImplementationA.cs:37:22:37:25 | null | +| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | Exceptional Exit | | 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 | After call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | +| MultiImplementationB.cs:1:7:1:8 | After call to method | MultiImplementationB.cs:1:7:1:8 | Before call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | Before call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | Before call to method | MultiImplementationB.cs:1:7:1:8 | this access | +| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | After call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | After call to method | | 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) | +| MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | Normal Exit | +| MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:27:4:35 | Before return ...; | +| MultiImplementationB.cs:4:27:4:35 | Before return ...; | MultiImplementationB.cs:4:34:4:34 | 1 | +| MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationA.cs:7:21:7:23 | Normal Exit | | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:27:4:35 | return ...; | -| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | -| MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | -| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:20 | ... = ... | -| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:20:11:20 | 1 | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | access to field F | -| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | +| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | Normal Exit | +| MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | Normal Exit | +| MultiImplementationB.cs:11:16:11:16 | After access to field F | MultiImplementationB.cs:11:20:11:20 | 1 | +| MultiImplementationB.cs:11:16:11:16 | Before access to field F | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:16 | After access to field F | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | access to field F | +| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:16:11:20 | After ... = ... | +| MultiImplementationB.cs:11:16:11:20 | After ... = ... | MultiImplementationB.cs:22:32:22:34 | Before ... = ... | +| MultiImplementationB.cs:11:16:11:20 | Before ... = ... | MultiImplementationB.cs:11:16:11:16 | Before access to field F | +| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:20 | ... = ... | +| MultiImplementationB.cs:12:31:12:40 | Before throw ... | MultiImplementationB.cs:12:37:12:40 | null | +| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | Exceptional Exit | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:31:12:40 | throw ... | -| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:48:13:51 | null | -| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | +| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:42:13:52 | Before throw ...; | +| MultiImplementationB.cs:13:42:13:52 | Before throw ...; | MultiImplementationB.cs:13:48:13:51 | null | +| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | Exceptional Exit | | MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:42:13:52 | throw ...; | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | -| MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:27:16:30 | null | -| MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | -| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | +| MultiImplementationB.cs:16:9:16:31 | Entry | MultiImplementationB.cs:16:21:16:30 | Before throw ... | +| MultiImplementationB.cs:16:9:16:31 | Exceptional Exit | MultiImplementationB.cs:16:9:16:31 | Exit | +| MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationB.cs:15:5:17:5 | After {...} | +| MultiImplementationB.cs:16:21:16:30 | Before throw ... | MultiImplementationB.cs:16:27:16:30 | null | +| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | Exceptional Exit | | 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: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 | After call to constructor Object | MultiImplementationB.cs:18:22:18:36 | {...} | +| MultiImplementationB.cs:18:12:18:13 | After call to method | MultiImplementationB.cs:18:12:18:13 | Before call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | Before call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | Before call to method | MultiImplementationB.cs:18:12:18:13 | this access | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | After call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | After call to method | | 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:22:18:36 | {...} | MultiImplementationB.cs:18:24:18:34 | Before throw ...; | +| MultiImplementationB.cs:18:24:18:34 | Before throw ...; | MultiImplementationB.cs:18:30:18:33 | null | +| MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | Exceptional Exit | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | -| MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:27:19:29 | {...} | +| MultiImplementationB.cs:19:19:19:22 | After call to constructor C2 | MultiImplementationB.cs:19:27:19:29 | {...} | +| MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | MultiImplementationB.cs:19:24:19:24 | 1 | +| MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:19:19:22 | After call to constructor C2 | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | -| MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:19:20:22 | null | -| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | +| MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:13:20:23 | Before throw ...; | +| MultiImplementationB.cs:20:13:20:23 | Before throw ...; | MultiImplementationB.cs:20:19:20:22 | null | +| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | Exceptional Exit | | MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationB.cs:20:13:20:23 | throw ...; | -| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | +| MultiImplementationB.cs:21:50:21:59 | Before throw ... | MultiImplementationB.cs:21:56:21:59 | null | +| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | Exceptional Exit | | 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: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:22:16:22:16 | After access to property P | MultiImplementationB.cs:22:34:22:34 | 1 | +| MultiImplementationB.cs:22:16:22:16 | Before access to property P | MultiImplementationB.cs:22:16:22:16 | this access | +| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:16:22:16 | After access to property P | +| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:16:22:16 | access to property P | +| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:32:22:34 | After ... = ... | +| MultiImplementationB.cs:22:32:22:34 | Before ... = ... | MultiImplementationB.cs:22:16:22:16 | Before access to property P | +| MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:32:22:34 | ... = ... | +| MultiImplementationB.cs:25:7:25:8 | After call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | +| MultiImplementationB.cs:25:7:25:8 | After call to method | MultiImplementationB.cs:25:7:25:8 | Before call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | Before call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | Before call to method | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | After call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | After call to method | | 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 | After call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | +| MultiImplementationB.cs:30:15:30:16 | After call to method | MultiImplementationB.cs:30:15:30:16 | Before call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | Before call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | Before call to method | MultiImplementationB.cs:30:15:30:16 | this access | +| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | After call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | After call to method | | 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 | 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 | +| MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | Normal Exit | +| NullCoalescing.cs:1:7:1:20 | After call to constructor Object | NullCoalescing.cs:1:7:1:20 | {...} | +| NullCoalescing.cs:1:7:1:20 | After call to method | NullCoalescing.cs:1:7:1:20 | Before call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | Before call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | Before call to method | NullCoalescing.cs:1:7:1:20 | this access | +| NullCoalescing.cs:1:7:1:20 | Entry | NullCoalescing.cs:1:7:1:20 | Before call to method | +| NullCoalescing.cs:1:7:1:20 | Normal Exit | NullCoalescing.cs:1:7:1:20 | Exit | +| NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | After call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | After call to method | | 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 | -| 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 | NullCoalescing.cs:3:28:3:28 | 0 | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:25:5:25 | access to parameter b | -| NullCoalescing.cs:5:9:5:10 | exit M2 (normal) | NullCoalescing.cs:5:9:5:10 | exit M2 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | exit M2 (normal) | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:43:5:43 | 1 | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:39:5:39 | 0 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | -| NullCoalescing.cs:7:12:7:13 | exit M3 (normal) | NullCoalescing.cs:7:12:7:13 | exit M3 | -| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:53 | ... ?? ... | -| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | exit M3 (normal) | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:53 | ... ?? ... | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:37:9:37 | access to parameter b | -| NullCoalescing.cs:9:12:9:13 | exit M4 (normal) | NullCoalescing.cs:9:12:9:13 | exit M4 | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | exit M4 (normal) | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:41:9:41 | access to parameter s | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:45:9:45 | access to parameter s | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | -| NullCoalescing.cs:11:9:11:10 | exit M5 (normal) | NullCoalescing.cs:11:9:11:10 | exit M5 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | exit M5 (normal) | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:68:11:68 | 1 | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:64:11:64 | 0 | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:14:5:18:5 | {...} | -| NullCoalescing.cs:13:10:13:11 | exit M6 (normal) | NullCoalescing.cs:13:10:13:11 | exit M6 | +| NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | Normal Exit | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:28 | ... ?? ... | +| NullCoalescing.cs:3:9:3:10 | Normal Exit | NullCoalescing.cs:3:9:3:10 | Exit | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | NullCoalescing.cs:3:28:3:28 | 0 | +| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | +| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | +| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:23 | access to parameter i | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:9:3:10 | Normal Exit | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | +| NullCoalescing.cs:5:9:5:10 | Normal Exit | NullCoalescing.cs:5:9:5:10 | Exit | +| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:25:5:34 | ... ?? ... | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | Normal Exit | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | NullCoalescing.cs:5:30:5:34 | false | +| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | +| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | +| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:25:5:25 | access to parameter b | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:43:5:43 | 1 | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | NullCoalescing.cs:5:39:5:39 | 0 | +| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | After false [false] | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:53 | ... ?? ... | +| NullCoalescing.cs:7:12:7:13 | Normal Exit | NullCoalescing.cs:7:12:7:13 | Exit | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:53 | ... ?? ... | +| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | +| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | +| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | Normal Exit | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | NullCoalescing.cs:7:52:7:53 | "" | +| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:36:9:58 | ... ?? ... | +| NullCoalescing.cs:9:12:9:13 | Normal Exit | NullCoalescing.cs:9:12:9:13 | Exit | +| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | Normal Exit | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:45:9:45 | access to parameter s | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:41:9:41 | access to parameter s | +| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | +| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | +| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:37:9:37 | access to parameter b | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:58 | ... ?? ... | +| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:9:51:9:52 | After "" [null] | NullCoalescing.cs:9:57:9:58 | "" | +| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:52 | "" | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | +| NullCoalescing.cs:11:9:11:10 | Normal Exit | NullCoalescing.cs:11:9:11:10 | Exit | +| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:44:11:59 | ... ?? ... | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | Normal Exit | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:58 | ... && ... | +| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | +| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | +| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:68:11:68 | 1 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:64:11:64 | 0 | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | +| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | +| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | +| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:14:5:18:5 | {...} | +| NullCoalescing.cs:13:10:13:11 | Normal Exit | NullCoalescing.cs:13:10:13:11 | Exit | +| NullCoalescing.cs:14:5:18:5 | After {...} | NullCoalescing.cs:13:10:13:11 | Normal Exit | | NullCoalescing.cs:14:5:18:5 | {...} | NullCoalescing.cs:15:9:15:32 | ... ...; | -| NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:15:23:15:26 | null | -| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:16:9:16:26 | ... ...; | -| NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:31:15:31 | 0 | -| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | +| NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:15:13:15:31 | Before Int32 j = ... | +| NullCoalescing.cs:15:9:15:32 | After ... ...; | NullCoalescing.cs:16:9:16:26 | ... ...; | +| NullCoalescing.cs:15:13:15:13 | access to local variable j | NullCoalescing.cs:15:17:15:31 | ... ?? ... | +| NullCoalescing.cs:15:13:15:31 | After Int32 j = ... | NullCoalescing.cs:15:9:15:32 | After ... ...; | +| NullCoalescing.cs:15:13:15:31 | Before Int32 j = ... | NullCoalescing.cs:15:13:15:13 | access to local variable j | +| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:15:13:15:31 | After Int32 j = ... | +| NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | NullCoalescing.cs:15:31:15:31 | 0 | +| NullCoalescing.cs:15:17:15:26 | Before (...) ... | NullCoalescing.cs:15:23:15:26 | null | +| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:17:15:26 | Before (...) ... | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | | NullCoalescing.cs:15:23:15:26 | null | NullCoalescing.cs:15:17:15:26 | (...) ... | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:17:15:31 | ... ?? ... | -| NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:16:17:16:18 | "" | -| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:17:9:17:25 | ...; | -| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:25 | ... ?? ... | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:13:16:25 | String s = ... | -| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:13:10:13:11 | exit M6 (normal) | -| NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:17:19:17:19 | access to parameter i | -| 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:16:9:16:26 | ... ...; | NullCoalescing.cs:16:13:16:25 | Before String s = ... | +| NullCoalescing.cs:16:9:16:26 | After ... ...; | NullCoalescing.cs:17:9:17:25 | ...; | +| NullCoalescing.cs:16:13:16:13 | access to local variable s | NullCoalescing.cs:16:17:16:25 | ... ?? ... | +| NullCoalescing.cs:16:13:16:25 | After String s = ... | NullCoalescing.cs:16:9:16:26 | After ... ...; | +| NullCoalescing.cs:16:13:16:25 | Before String s = ... | NullCoalescing.cs:16:13:16:13 | access to local variable s | +| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:16:13:16:25 | After String s = ... | +| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:16:17:16:18 | After "" [null] | NullCoalescing.cs:16:23:16:25 | "a" | +| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:18 | "" | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:13:16:25 | String s = ... | +| NullCoalescing.cs:17:9:17:9 | access to local variable j | NullCoalescing.cs:17:13:17:24 | ... ?? ... | +| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:17:9:17:24 | After ... = ... | +| NullCoalescing.cs:17:9:17:24 | After ... = ... | NullCoalescing.cs:17:9:17:25 | After ...; | +| NullCoalescing.cs:17:9:17:24 | Before ... = ... | NullCoalescing.cs:17:9:17:9 | access to local variable j | +| NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:17:9:17:24 | Before ... = ... | +| NullCoalescing.cs:17:9:17:25 | After ...; | NullCoalescing.cs:14:5:18:5 | After {...} | +| NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | NullCoalescing.cs:17:24:17:24 | 1 | +| NullCoalescing.cs:17:13:17:19 | Before (...) ... | NullCoalescing.cs:17:19:17:19 | access to parameter i | +| NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | Before (...) ... | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:9:17:24 | ... = ... | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:13:17:19 | (...) ... | -| 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:1:15:1:21 | Entry | PartialImplementationB.cs:3:16:3:20 | Before ... = ... | +| PartialImplementationA.cs:1:15:1:21 | Normal Exit | PartialImplementationA.cs:1:15:1:21 | Exit | +| PartialImplementationA.cs:3:12:3:18 | After call to constructor Object | PartialImplementationA.cs:3:27:3:29 | {...} | +| PartialImplementationA.cs:3:12:3:18 | After call to method | PartialImplementationA.cs:3:12:3:18 | Before call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | Before call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | Before call to method | PartialImplementationA.cs:3:12:3:18 | this access | +| PartialImplementationA.cs:3:12:3:18 | Entry | PartialImplementationA.cs:3:12:3:18 | Before call to method | +| PartialImplementationA.cs:3:12:3:18 | Normal Exit | PartialImplementationA.cs:3:12:3:18 | Exit | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | After call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | After call to method | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | -| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | -| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:20 | ... = ... | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | access to field F | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | -| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | -| PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | exit Partial | +| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | Normal Exit | +| PartialImplementationB.cs:3:16:3:16 | After access to field F | PartialImplementationB.cs:3:20:3:20 | 0 | +| PartialImplementationB.cs:3:16:3:16 | Before access to field F | PartialImplementationB.cs:3:16:3:16 | this access | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:16 | After access to field F | +| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:16:3:16 | access to field F | +| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:20 | After ... = ... | +| PartialImplementationB.cs:3:16:3:20 | After ... = ... | PartialImplementationB.cs:5:32:5:34 | Before ... = ... | +| PartialImplementationB.cs:3:16:3:20 | Before ... = ... | PartialImplementationB.cs:3:16:3:16 | Before access to field F | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | +| PartialImplementationB.cs:4:12:4:18 | After call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | +| PartialImplementationB.cs:4:12:4:18 | After call to method | PartialImplementationB.cs:4:12:4:18 | Before call to constructor Object | +| PartialImplementationB.cs:4:12:4:18 | Before call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | +| PartialImplementationB.cs:4:12:4:18 | Before call to method | PartialImplementationB.cs:4:12:4:18 | this access | +| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Before call to method | +| PartialImplementationB.cs:4:12:4:18 | Normal Exit | PartialImplementationB.cs:4:12:4:18 | Exit | +| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | After call to constructor Object | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | After call to method | | 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 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | -| 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 | 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 | +| PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | Normal Exit | +| PartialImplementationB.cs:5:16:5:16 | After access to property P | PartialImplementationB.cs:5:34:5:34 | 0 | +| PartialImplementationB.cs:5:16:5:16 | Before access to property P | PartialImplementationB.cs:5:16:5:16 | this access | +| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:16:5:16 | After access to property P | +| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:16:5:16 | access to property P | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:32:5:34 | After ... = ... | +| PartialImplementationB.cs:5:32:5:34 | After ... = ... | PartialImplementationA.cs:1:15:1:21 | Normal Exit | +| PartialImplementationB.cs:5:32:5:34 | Before ... = ... | PartialImplementationB.cs:5:16:5:16 | Before access to property P | +| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:32:5:34 | ... = ... | +| Patterns.cs:3:7:3:14 | After call to constructor Object | Patterns.cs:3:7:3:14 | {...} | +| Patterns.cs:3:7:3:14 | After call to method | Patterns.cs:3:7:3:14 | Before call to constructor Object | +| Patterns.cs:3:7:3:14 | Before call to constructor Object | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | Before call to method | Patterns.cs:3:7:3:14 | this access | +| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Before call to method | +| Patterns.cs:3:7:3:14 | Normal Exit | Patterns.cs:3:7:3:14 | Exit | +| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | After call to constructor Object | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | After call to method | | 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 | +| Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | Normal Exit | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:6:5:43:5 | {...} | +| Patterns.cs:5:10:5:11 | Normal Exit | Patterns.cs:5:10:5:11 | Exit | +| Patterns.cs:6:5:43:5 | After {...} | Patterns.cs:5:10:5:11 | Normal Exit | | Patterns.cs:6:5:43:5 | {...} | Patterns.cs:7:9:7:24 | ... ...; | -| Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:20:7:23 | null | -| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:8:9:18:9 | if (...) ... | +| Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:16:7:23 | Before Object o = ... | +| Patterns.cs:7:9:7:24 | After ... ...; | Patterns.cs:8:9:18:9 | if (...) ... | +| Patterns.cs:7:16:7:16 | access to local variable o | Patterns.cs:7:20:7:23 | null | +| Patterns.cs:7:16:7:23 | After Object o = ... | Patterns.cs:7:9:7:24 | After ... ...; | +| Patterns.cs:7:16:7:23 | Before Object o = ... | Patterns.cs:7:16:7:16 | access to local variable o | +| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:16:7:23 | After Object o = ... | | Patterns.cs:7:20:7:23 | null | Patterns.cs:7:16:7:23 | Object o = ... | -| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:8:13:8:13 | access to local variable o | -| Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:18:8:23 | Int32 i1 | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | [true] ... is ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:20:9:38:9 | switch (...) {...} | +| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:8:13:8:23 | Before ... is ... | +| Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:13:8:23 | ... is ... | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:14:18:9 | if (...) ... | +| Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:9:9:11:9 | {...} | +| Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:8:13:8:13 | access to local variable o | +| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:18:8:23 | Int32 i1 | +| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | After ... is ... [true] | | Patterns.cs:9:9:11:9 | {...} | Patterns.cs:10:13:10:43 | ...; | -| Patterns.cs:10:13:10:43 | ...; | Patterns.cs:10:33:10:36 | "int " | -| Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:10:13:10:42 | call to method WriteLine | -| Patterns.cs:10:33:10:36 | "int " | Patterns.cs:10:38:10:39 | access to local variable i1 | -| Patterns.cs:10:37:10:40 | {...} | Patterns.cs:10:31:10:41 | $"..." | +| Patterns.cs:10:13:10:42 | After call to method WriteLine | Patterns.cs:10:13:10:43 | After ...; | +| Patterns.cs:10:13:10:42 | Before call to method WriteLine | Patterns.cs:10:31:10:41 | Before $"..." | +| Patterns.cs:10:13:10:42 | call to method WriteLine | Patterns.cs:10:13:10:42 | After call to method WriteLine | +| Patterns.cs:10:13:10:43 | ...; | Patterns.cs:10:13:10:42 | Before call to method WriteLine | +| Patterns.cs:10:13:10:43 | After ...; | Patterns.cs:9:9:11:9 | After {...} | +| Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:10:31:10:41 | After $"..." | +| Patterns.cs:10:31:10:41 | After $"..." | Patterns.cs:10:13:10:42 | call to method WriteLine | +| Patterns.cs:10:31:10:41 | Before $"..." | Patterns.cs:10:33:10:36 | "int " | +| Patterns.cs:10:33:10:36 | "int " | Patterns.cs:10:37:10:40 | Before {...} | +| Patterns.cs:10:37:10:40 | After {...} | Patterns.cs:10:31:10:41 | $"..." | +| Patterns.cs:10:37:10:40 | Before {...} | Patterns.cs:10:38:10:39 | access to local variable i1 | +| Patterns.cs:10:37:10:40 | {...} | Patterns.cs:10:37:10:40 | After {...} | | Patterns.cs:10:38:10:39 | access to local variable i1 | Patterns.cs:10:37:10:40 | {...} | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:18 | access to local variable o | -| Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:23:12:31 | String s1 | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | [true] ... is ... | +| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | Before ... is ... | +| Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:18:12:31 | ... is ... | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:14:18:9 | if (...) ... | +| Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:13:9:15:9 | {...} | +| Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:12:18:12:18 | access to local variable o | +| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:23:12:31 | String s1 | +| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | After ... is ... [true] | | Patterns.cs:13:9:15:9 | {...} | Patterns.cs:14:13:14:46 | ...; | -| Patterns.cs:14:13:14:46 | ...; | Patterns.cs:14:33:14:39 | "string " | -| Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:14:13:14:45 | call to method WriteLine | -| Patterns.cs:14:33:14:39 | "string " | Patterns.cs:14:41:14:42 | access to local variable s1 | -| Patterns.cs:14:40:14:43 | {...} | Patterns.cs:14:31:14:44 | $"..." | +| Patterns.cs:14:13:14:45 | After call to method WriteLine | Patterns.cs:14:13:14:46 | After ...; | +| Patterns.cs:14:13:14:45 | Before call to method WriteLine | Patterns.cs:14:31:14:44 | Before $"..." | +| Patterns.cs:14:13:14:45 | call to method WriteLine | Patterns.cs:14:13:14:45 | After call to method WriteLine | +| Patterns.cs:14:13:14:46 | ...; | Patterns.cs:14:13:14:45 | Before call to method WriteLine | +| Patterns.cs:14:13:14:46 | After ...; | Patterns.cs:13:9:15:9 | After {...} | +| Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:14:31:14:44 | After $"..." | +| Patterns.cs:14:31:14:44 | After $"..." | Patterns.cs:14:13:14:45 | call to method WriteLine | +| Patterns.cs:14:31:14:44 | Before $"..." | Patterns.cs:14:33:14:39 | "string " | +| Patterns.cs:14:33:14:39 | "string " | Patterns.cs:14:40:14:43 | Before {...} | +| Patterns.cs:14:40:14:43 | After {...} | Patterns.cs:14:31:14:44 | $"..." | +| Patterns.cs:14:40:14:43 | Before {...} | Patterns.cs:14:41:14:42 | access to local variable s1 | +| Patterns.cs:14:40:14:43 | {...} | Patterns.cs:14:40:14:43 | After {...} | | Patterns.cs:14:41:14:42 | access to local variable s1 | Patterns.cs:14:40:14:43 | {...} | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:18 | access to local variable o | -| Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:23:16:28 | Object v1 | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | [true] ... is ... | +| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | Before ... is ... | +| Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:18:16:28 | ... is ... | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:17:9:18:9 | {...} | +| Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:16:18:16:18 | access to local variable o | +| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:23:16:28 | Object v1 | +| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | After ... is ... [true] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | | Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:20:17:20:17 | access to local variable o | | Patterns.cs:20:17:20:17 | access to local variable o | Patterns.cs:22:13:22:23 | case ...: | -| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:18:22:22 | "xyz" | -| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:23:17:23:22 | break; | -| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:24:13:24:36 | case ...: | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:18:24:23 | Int32 i2 | -| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:27:13:27:24 | case ...: | +| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:22:18:22:22 | "xyz" | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | case ...: | +| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:13:22:23 | After case ...: [match] | +| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:13:22:23 | After case ...: [no-match] | +| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:23:17:23:22 | Before break; | +| Patterns.cs:23:17:23:22 | Before break; | Patterns.cs:23:17:23:22 | break; | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:18:24:23 | Int32 i2 | +| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:30:24:35 | Before ... > ... | | Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:35:24:35 | 0 | -| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:25:17:25:52 | ...; | +| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:25:17:25:52 | ...; | +| Patterns.cs:24:30:24:35 | Before ... > ... | Patterns.cs:24:30:24:31 | access to local variable i2 | | Patterns.cs:24:35:24:35 | 0 | Patterns.cs:24:30:24:35 | ... > ... | -| Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:26:17:26:22 | break; | -| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:25:37:25:45 | "positive " | -| Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:25:17:25:51 | call to method WriteLine | -| Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:25:47:25:48 | access to local variable i2 | -| Patterns.cs:25:46:25:49 | {...} | Patterns.cs:25:35:25:50 | $"..." | +| Patterns.cs:25:17:25:51 | After call to method WriteLine | Patterns.cs:25:17:25:52 | After ...; | +| Patterns.cs:25:17:25:51 | Before call to method WriteLine | Patterns.cs:25:35:25:50 | Before $"..." | +| Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:25:17:25:51 | After call to method WriteLine | +| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:25:17:25:51 | Before call to method WriteLine | +| Patterns.cs:25:17:25:52 | After ...; | Patterns.cs:26:17:26:22 | Before break; | +| Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:25:35:25:50 | After $"..." | +| Patterns.cs:25:35:25:50 | After $"..." | Patterns.cs:25:17:25:51 | call to method WriteLine | +| Patterns.cs:25:35:25:50 | Before $"..." | Patterns.cs:25:37:25:45 | "positive " | +| Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:25:46:25:49 | Before {...} | +| Patterns.cs:25:46:25:49 | After {...} | Patterns.cs:25:35:25:50 | $"..." | +| Patterns.cs:25:46:25:49 | Before {...} | Patterns.cs:25:47:25:48 | access to local variable i2 | +| Patterns.cs:25:46:25:49 | {...} | Patterns.cs:25:46:25:49 | After {...} | | Patterns.cs:25:47:25:48 | access to local variable i2 | Patterns.cs:25:46:25:49 | {...} | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | Int32 i3 | +| Patterns.cs:26:17:26:22 | Before break; | Patterns.cs:26:17:26:22 | break; | +| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:27:18:27:23 | Int32 i3 | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | case ...: | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [no-match] | | Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:29:17:29:22 | break; | -| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:28:37:28:40 | "int " | -| Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:28:17:28:46 | call to method WriteLine | -| Patterns.cs:28:37:28:40 | "int " | Patterns.cs:28:42:28:43 | access to local variable i3 | -| Patterns.cs:28:41:28:44 | {...} | Patterns.cs:28:35:28:45 | $"..." | +| Patterns.cs:28:17:28:46 | After call to method WriteLine | Patterns.cs:28:17:28:47 | After ...; | +| Patterns.cs:28:17:28:46 | Before call to method WriteLine | Patterns.cs:28:35:28:45 | Before $"..." | +| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:28:17:28:46 | After call to method WriteLine | +| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:28:17:28:46 | Before call to method WriteLine | +| Patterns.cs:28:17:28:47 | After ...; | Patterns.cs:29:17:29:22 | Before break; | +| Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:28:35:28:45 | After $"..." | +| Patterns.cs:28:35:28:45 | After $"..." | Patterns.cs:28:17:28:46 | call to method WriteLine | +| Patterns.cs:28:35:28:45 | Before $"..." | Patterns.cs:28:37:28:40 | "int " | +| Patterns.cs:28:37:28:40 | "int " | Patterns.cs:28:41:28:44 | Before {...} | +| Patterns.cs:28:41:28:44 | After {...} | Patterns.cs:28:35:28:45 | $"..." | +| Patterns.cs:28:41:28:44 | Before {...} | Patterns.cs:28:42:28:43 | access to local variable i3 | +| Patterns.cs:28:41:28:44 | {...} | Patterns.cs:28:41:28:44 | After {...} | | Patterns.cs:28:42:28:43 | access to local variable i3 | Patterns.cs:28:41:28:44 | {...} | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:18:30:26 | String s2 | +| Patterns.cs:29:17:29:22 | Before break; | Patterns.cs:29:17:29:22 | break; | +| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:30:18:30:26 | String s2 | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | case ...: | +| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [no-match] | | Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:32:17:32:22 | break; | -| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:31:37:31:43 | "string " | -| Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:31:17:31:49 | call to method WriteLine | -| Patterns.cs:31:37:31:43 | "string " | Patterns.cs:31:45:31:46 | access to local variable s2 | -| Patterns.cs:31:44:31:47 | {...} | Patterns.cs:31:35:31:48 | $"..." | +| Patterns.cs:31:17:31:49 | After call to method WriteLine | Patterns.cs:31:17:31:50 | After ...; | +| Patterns.cs:31:17:31:49 | Before call to method WriteLine | Patterns.cs:31:35:31:48 | Before $"..." | +| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:31:17:31:49 | After call to method WriteLine | +| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:31:17:31:49 | Before call to method WriteLine | +| Patterns.cs:31:17:31:50 | After ...; | Patterns.cs:32:17:32:22 | Before break; | +| Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:31:35:31:48 | After $"..." | +| Patterns.cs:31:35:31:48 | After $"..." | Patterns.cs:31:17:31:49 | call to method WriteLine | +| Patterns.cs:31:35:31:48 | Before $"..." | Patterns.cs:31:37:31:43 | "string " | +| Patterns.cs:31:37:31:43 | "string " | Patterns.cs:31:44:31:47 | Before {...} | +| Patterns.cs:31:44:31:47 | After {...} | Patterns.cs:31:35:31:48 | $"..." | +| Patterns.cs:31:44:31:47 | Before {...} | Patterns.cs:31:45:31:46 | access to local variable s2 | +| Patterns.cs:31:44:31:47 | {...} | Patterns.cs:31:44:31:47 | After {...} | | Patterns.cs:31:45:31:46 | access to local variable s2 | Patterns.cs:31:44:31:47 | {...} | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:18:33:23 | Object v2 | -| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:35:13:35:20 | default: | Patterns.cs:36:17:36:52 | ...; | -| Patterns.cs:36:17:36:51 | call to method WriteLine | Patterns.cs:37:17:37:22 | break; | -| Patterns.cs:36:17:36:52 | ...; | Patterns.cs:36:35:36:50 | "Something else" | +| Patterns.cs:32:17:32:22 | Before break; | Patterns.cs:32:17:32:22 | break; | +| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:33:18:33:23 | Object v2 | +| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:35:13:35:20 | default: | +| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:34:17:34:22 | Before break; | +| Patterns.cs:34:17:34:22 | Before break; | Patterns.cs:34:17:34:22 | break; | +| Patterns.cs:35:13:35:20 | After default: [match] | Patterns.cs:36:17:36:52 | ...; | +| Patterns.cs:35:13:35:20 | default: | Patterns.cs:35:13:35:20 | After default: [match] | +| Patterns.cs:36:17:36:51 | After call to method WriteLine | Patterns.cs:36:17:36:52 | After ...; | +| Patterns.cs:36:17:36:51 | Before call to method WriteLine | Patterns.cs:36:35:36:50 | "Something else" | +| Patterns.cs:36:17:36:51 | call to method WriteLine | Patterns.cs:36:17:36:51 | After call to method WriteLine | +| Patterns.cs:36:17:36:52 | ...; | Patterns.cs:36:17:36:51 | Before call to method WriteLine | +| Patterns.cs:36:17:36:52 | After ...; | Patterns.cs:37:17:37:22 | Before break; | | Patterns.cs:36:35:36:50 | "Something else" | Patterns.cs:36:17:36:51 | call to method WriteLine | +| Patterns.cs:37:17:37:22 | Before break; | Patterns.cs:37:17:37:22 | break; | +| Patterns.cs:40:9:42:9 | After switch (...) {...} | Patterns.cs:6:5:43:5 | After {...} | | Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:40:17:40:17 | access to local variable o | -| Patterns.cs:40:17:40:17 | access to local variable o | Patterns.cs:5:10:5:11 | exit M1 (normal) | -| Patterns.cs:47:24:47:25 | enter M2 | Patterns.cs:48:9:48:9 | access to parameter c | -| Patterns.cs:47:24:47:25 | exit M2 (normal) | Patterns.cs:47:24:47:25 | exit M2 | -| Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:18:48:20 | a | -| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:47:24:47:25 | exit M2 (normal) | -| Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:9:48:20 | ... is ... | +| Patterns.cs:40:17:40:17 | access to local variable o | Patterns.cs:40:9:42:9 | After switch (...) {...} | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | Before ... is ... | +| Patterns.cs:47:24:47:25 | Normal Exit | Patterns.cs:47:24:47:25 | Exit | +| Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:9:48:20 | ... is ... | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Normal Exit | +| Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:48:9:48:9 | access to parameter c | +| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:14:48:20 | Before not ... | +| Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:48:18:48:20 | a | +| Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:14:48:20 | After not ... | | Patterns.cs:48:18:48:20 | a | Patterns.cs:48:14:48:20 | not ... | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:9:51:9 | access to parameter c | -| Patterns.cs:50:24:50:25 | exit M3 (normal) | Patterns.cs:50:24:50:25 | exit M3 | -| Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:18:51:21 | null | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | exit M3 (normal) | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:30:51:30 | 1 | -| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:30 | ... is ... | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:39:51:39 | 2 | -| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:39 | ... is ... | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:9:54:9 | access to parameter c | -| Patterns.cs:53:24:53:25 | exit M4 (normal) | Patterns.cs:53:24:53:25 | exit M4 | -| Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:18:54:37 | Patterns u | -| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:53:24:53:25 | exit M4 (normal) | -| Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:9:54:37 | ... is ... | -| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:18:54:37 | { ... } | -| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:33:54:33 | 1 | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:14:54:37 | not ... | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [match] { ... } | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [no-match] { ... } | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:57:5:63:5 | {...} | -| Patterns.cs:56:26:56:27 | exit M5 (normal) | Patterns.cs:56:26:56:27 | exit M5 | -| Patterns.cs:57:5:63:5 | {...} | Patterns.cs:58:16:58:16 | access to parameter i | -| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:56:26:56:27 | exit M5 (normal) | -| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:60:17:60:17 | 1 | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:9:62:10 | return ...; | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:60:22:60:28 | "not 1" | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | [match] not ... | -| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:13:60:28 | ... => ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:39 | ... ? ... : ... | +| Patterns.cs:50:24:50:25 | Normal Exit | Patterns.cs:50:24:50:25 | Exit | +| Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:9:51:21 | ... is ... | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | Before ... is ... | +| Patterns.cs:51:9:51:21 | After ... is ... [true] | Patterns.cs:51:25:51:30 | Before ... is ... | +| Patterns.cs:51:9:51:21 | Before ... is ... | Patterns.cs:51:9:51:9 | access to parameter c | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:14:51:21 | Before not ... | +| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:21 | Before ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Normal Exit | +| Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | +| Patterns.cs:51:14:51:21 | Before not ... | Patterns.cs:51:18:51:21 | null | +| Patterns.cs:51:14:51:21 | not ... | Patterns.cs:51:14:51:21 | After not ... | +| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | not ... | +| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:30 | ... is ... | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | +| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:30:51:30 | 1 | +| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:39 | ... is ... | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | +| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:39:51:39 | 2 | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | Before ... is ... | +| Patterns.cs:53:24:53:25 | Normal Exit | Patterns.cs:53:24:53:25 | Exit | +| Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:9:54:37 | ... is ... | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Normal Exit | +| Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:54:9:54:9 | access to parameter c | +| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:14:54:37 | Before not ... | +| Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:54:18:54:37 | Before { ... } | +| Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:14:54:37 | After not ... | +| Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:54:27:54:35 | Before { ... } | +| Patterns.cs:54:18:54:37 | After { ... } | Patterns.cs:54:14:54:37 | not ... | +| Patterns.cs:54:18:54:37 | Before { ... } | Patterns.cs:54:18:54:37 | Patterns u | +| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:18:54:25 | access to type Patterns | +| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:18:54:37 | After { ... } | +| Patterns.cs:54:27:54:35 | After { ... } | Patterns.cs:54:18:54:37 | { ... } | +| Patterns.cs:54:27:54:35 | Before { ... } | Patterns.cs:54:33:54:33 | 1 | +| Patterns.cs:54:27:54:35 | { ... } | Patterns.cs:54:27:54:35 | After { ... } | +| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | { ... } | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:57:5:63:5 | {...} | +| Patterns.cs:56:26:56:27 | Normal Exit | Patterns.cs:56:26:56:27 | Exit | +| Patterns.cs:57:5:63:5 | {...} | Patterns.cs:58:9:62:10 | Before return ...; | +| Patterns.cs:58:9:62:10 | Before return ...; | Patterns.cs:58:16:62:9 | ... switch { ... } | +| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:56:26:56:27 | Normal Exit | +| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:60:13:60:28 | ... => ... | +| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:58:16 | access to parameter i | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:58:9:62:10 | return ...; | +| Patterns.cs:60:13:60:17 | After not ... | Patterns.cs:60:22:60:28 | "not 1" | +| Patterns.cs:60:13:60:17 | Before not ... | Patterns.cs:60:17:60:17 | 1 | +| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:13:60:17 | After not ... | +| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | After ... => ... [match] | +| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | +| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:13:60:17 | Before not ... | +| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:61:13:61:24 | ... => ... | +| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | not ... | | Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:18:61:24 | "other" | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:13:61:24 | ... => ... | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:66:5:72:5 | {...} | -| Patterns.cs:65:26:65:27 | exit M6 (normal) | Patterns.cs:65:26:65:27 | exit M6 | -| Patterns.cs:66:5:72:5 | {...} | Patterns.cs:67:16:67:16 | 2 | -| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:65:26:65:27 | exit M6 (normal) | -| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:69:17:69:17 | 2 | -| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:9:71:10 | return ...; | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:13:69:17 | [no-match] not ... | +| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:13:61:24 | After ... => ... [match] | +| Patterns.cs:61:13:61:24 | After ... => ... [match] | Patterns.cs:61:13:61:13 | _ | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:66:5:72:5 | {...} | +| Patterns.cs:65:26:65:27 | Normal Exit | Patterns.cs:65:26:65:27 | Exit | +| Patterns.cs:66:5:72:5 | {...} | Patterns.cs:67:9:71:10 | Before return ...; | +| Patterns.cs:67:9:71:10 | Before return ...; | Patterns.cs:67:16:71:9 | ... switch { ... } | +| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:65:26:65:27 | Normal Exit | +| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:69:13:69:33 | ... => ... | +| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:16:67:16 | 2 | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:67:9:71:10 | return ...; | +| Patterns.cs:69:13:69:17 | After not ... | Patterns.cs:69:22:69:33 | "impossible" | +| Patterns.cs:69:13:69:17 | Before not ... | Patterns.cs:69:17:69:17 | 2 | +| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:13:69:17 | After not ... | +| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | After ... => ... [match] | +| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | +| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:13:69:17 | Before not ... | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | ... => ... | +| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:13:69:17 | not ... | | Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:18:70:27 | "possible" | -| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:67:16:71:9 | ... switch { ... } | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:13:70:27 | ... => ... | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:75:5:83:5 | {...} | -| Patterns.cs:74:26:74:27 | exit M7 (normal) | Patterns.cs:74:26:74:27 | exit M7 | -| Patterns.cs:75:5:83:5 | {...} | Patterns.cs:76:16:76:16 | access to parameter i | -| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:74:26:74:27 | exit M7 (normal) | -| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:78:15:78:15 | 1 | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:9:82:10 | return ...; | -| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:20:78:24 | "> 1" | -| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:79:15:79:15 | 0 | +| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | After ... => ... [match] | +| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | +| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:13:70:13 | 2 | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:75:5:83:5 | {...} | +| Patterns.cs:74:26:74:27 | Normal Exit | Patterns.cs:74:26:74:27 | Exit | +| Patterns.cs:75:5:83:5 | {...} | Patterns.cs:76:9:82:10 | Before return ...; | +| Patterns.cs:76:9:82:10 | Before return ...; | Patterns.cs:76:16:82:9 | ... switch { ... } | +| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:74:26:74:27 | Normal Exit | +| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:78:13:78:24 | ... => ... | +| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:76:16 | access to parameter i | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:76:9:82:10 | return ...; | +| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:13:78:15 | After > ... | +| Patterns.cs:78:13:78:15 | After > ... | Patterns.cs:78:20:78:24 | "> 1" | +| Patterns.cs:78:13:78:15 | Before > ... | Patterns.cs:78:15:78:15 | 1 | +| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | After ... => ... [match] | +| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | +| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:13:78:15 | Before > ... | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | ... => ... | | Patterns.cs:78:15:78:15 | 1 | Patterns.cs:78:13:78:15 | > ... | -| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:13:78:24 | ... => ... | -| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:20:79:24 | "< 0" | -| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:80:13:80:13 | 1 | +| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:13:79:15 | After < ... | +| Patterns.cs:79:13:79:15 | After < ... | Patterns.cs:79:20:79:24 | "< 0" | +| Patterns.cs:79:13:79:15 | Before < ... | Patterns.cs:79:15:79:15 | 0 | +| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | After ... => ... [match] | +| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | +| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:13:79:15 | Before < ... | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | ... => ... | | Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:13:79:15 | < ... | -| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:13:79:24 | ... => ... | | Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:13:80:20 | ... => ... | +| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:13:80:13 | 1 | +| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:81:13:81:20 | ... => ... | | Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:13:81:20 | ... => ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:39:85:39 | access to parameter i | -| Patterns.cs:85:26:85:27 | exit M8 (normal) | Patterns.cs:85:26:85:27 | exit M8 | -| Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:44:85:44 | 1 | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | exit M8 (normal) | -| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:53:85:53 | 2 | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:39:87:39 | access to parameter i | -| Patterns.cs:87:26:87:27 | exit M9 (normal) | Patterns.cs:87:26:87:27 | exit M9 | -| Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:44:87:44 | 1 | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | exit M9 (normal) | -| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:54:87:54 | 2 | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:94:5:99:5 | {...} | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | exit M10 | +| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:13:81:20 | After ... => ... [match] | +| Patterns.cs:81:13:81:20 | After ... => ... [match] | Patterns.cs:81:13:81:13 | _ | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:69 | ... ? ... : ... | +| Patterns.cs:85:26:85:27 | Normal Exit | Patterns.cs:85:26:85:27 | Exit | +| Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:39:85:53 | ... is ... | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:67:85:69 | "2" | +| Patterns.cs:85:39:85:53 | After ... is ... [true] | Patterns.cs:85:57:85:63 | "not 2" | +| Patterns.cs:85:39:85:53 | Before ... is ... | Patterns.cs:85:39:85:39 | access to parameter i | +| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:44:85:53 | Before ... or ... | +| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:53 | Before ... is ... | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Normal Exit | +| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:49:85:53 | Before not ... | +| Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:44:85:53 | After ... or ... | +| Patterns.cs:85:44:85:53 | After ... or ... | Patterns.cs:85:39:85:53 | After ... is ... [true] | +| Patterns.cs:85:44:85:53 | Before ... or ... | Patterns.cs:85:44:85:44 | 1 | +| Patterns.cs:85:49:85:53 | After not ... | Patterns.cs:85:44:85:53 | ... or ... | +| Patterns.cs:85:49:85:53 | Before not ... | Patterns.cs:85:53:85:53 | 2 | +| Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:49:85:53 | After not ... | +| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | not ... | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:70 | ... ? ... : ... | +| Patterns.cs:87:26:87:27 | Normal Exit | Patterns.cs:87:26:87:27 | Exit | +| Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:39:87:54 | ... is ... | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:64:87:70 | "not 1" | +| Patterns.cs:87:39:87:54 | After ... is ... [true] | Patterns.cs:87:58:87:60 | "1" | +| Patterns.cs:87:39:87:54 | Before ... is ... | Patterns.cs:87:39:87:39 | access to parameter i | +| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:44:87:54 | Before ... and ... | +| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:54 | Before ... is ... | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Normal Exit | +| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:50:87:54 | Before not ... | +| Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:44:87:54 | After ... and ... | +| Patterns.cs:87:44:87:54 | After ... and ... | Patterns.cs:87:39:87:54 | After ... is ... [true] | +| Patterns.cs:87:44:87:54 | Before ... and ... | Patterns.cs:87:44:87:44 | 1 | +| Patterns.cs:87:50:87:54 | After not ... | Patterns.cs:87:44:87:54 | ... and ... | +| Patterns.cs:87:50:87:54 | Before not ... | Patterns.cs:87:54:87:54 | 2 | +| Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:50:87:54 | After not ... | +| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | not ... | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:94:5:99:5 | {...} | +| Patterns.cs:93:17:93:19 | Normal Exit | Patterns.cs:93:17:93:19 | Exit | +| Patterns.cs:94:5:99:5 | After {...} | Patterns.cs:93:17:93:19 | Normal Exit | | Patterns.cs:94:5:99:5 | {...} | Patterns.cs:95:9:98:9 | if (...) ... | -| Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:95:13:95:16 | this access | -| Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:29:95:31 | access to constant A | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:96:9:98:9 | {...} | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:29:95:38 | [match] ... or ... | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:94:5:99:5 | After {...} | +| Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:95:13:95:40 | Before ... is ... | +| Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:13:95:40 | ... is ... | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:13:95:40 | After ... is ... [true] | Patterns.cs:96:9:98:9 | {...} | +| Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:95:13:95:16 | this access | +| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:21:95:40 | Before { ... } | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:13:95:40 | After ... is ... [true] | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:21:95:40 | Before { ... } | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:29:95:38 | Before ... or ... | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | After { ... } | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | After { ... } | | Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:36:95:38 | access to constant B | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:38 | [no-match] ... or ... | +| Patterns.cs:95:29:95:38 | ... or ... | Patterns.cs:95:29:95:38 | After ... or ... | +| Patterns.cs:95:29:95:38 | After ... or ... | Patterns.cs:95:21:95:40 | { ... } | +| Patterns.cs:95:29:95:38 | Before ... or ... | Patterns.cs:95:29:95:31 | access to constant A | +| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:38 | ... or ... | | Patterns.cs:96:9:98:9 | {...} | Patterns.cs:97:13:97:39 | ...; | -| Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:31:97:37 | "not C" | +| Patterns.cs:97:13:97:38 | After call to method WriteLine | Patterns.cs:97:13:97:39 | After ...; | +| Patterns.cs:97:13:97:38 | Before call to method WriteLine | Patterns.cs:97:31:97:37 | "not C" | +| Patterns.cs:97:13:97:38 | call to method WriteLine | Patterns.cs:97:13:97:38 | After call to method WriteLine | +| Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:13:97:38 | Before call to method WriteLine | +| Patterns.cs:97:13:97:39 | After ...; | Patterns.cs:96:9:98:9 | After {...} | | 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 | 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 | After call to constructor Object | PostDominance.cs:3:7:3:19 | {...} | +| PostDominance.cs:3:7:3:19 | After call to method | PostDominance.cs:3:7:3:19 | Before call to constructor Object | +| PostDominance.cs:3:7:3:19 | Before call to constructor Object | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | Before call to method | PostDominance.cs:3:7:3:19 | this access | +| PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Before call to method | +| PostDominance.cs:3:7:3:19 | Normal Exit | PostDominance.cs:3:7:3:19 | Exit | +| PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | After call to constructor Object | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | After call to method | | 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 | +| PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | Normal Exit | +| PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:6:5:8:5 | {...} | +| PostDominance.cs:5:10:5:11 | Normal Exit | PostDominance.cs:5:10:5:11 | Exit | +| PostDominance.cs:6:5:8:5 | After {...} | PostDominance.cs:5:10:5:11 | Normal Exit | | PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:7:9:7:29 | ...; | -| PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:5:10:5:11 | exit M1 (normal) | -| PostDominance.cs:7:9:7:29 | ...; | PostDominance.cs:7:27:7:27 | access to parameter s | +| PostDominance.cs:7:9:7:28 | After call to method WriteLine | PostDominance.cs:7:9:7:29 | After ...; | +| PostDominance.cs:7:9:7:28 | Before call to method WriteLine | PostDominance.cs:7:27:7:27 | access to parameter s | +| PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:7:9:7:28 | After call to method WriteLine | +| PostDominance.cs:7:9:7:29 | ...; | PostDominance.cs:7:9:7:28 | Before call to method WriteLine | +| PostDominance.cs:7:9:7:29 | After ...; | PostDominance.cs:6:5:8:5 | After {...} | | PostDominance.cs:7:27:7:27 | access to parameter s | PostDominance.cs:7:9:7:28 | call to method WriteLine | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:11:5:15:5 | {...} | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | exit M2 | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:11:5:15:5 | {...} | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Exit | | PostDominance.cs:11:5:15:5 | {...} | PostDominance.cs:12:9:13:19 | if (...) ... | -| PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:12:13:12:13 | access to parameter s | -| PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:18:12:21 | null | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:14:9:14:29 | ...; | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | [false] ... is ... | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | [true] ... is ... | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:27:14:27 | access to parameter s | +| PostDominance.cs:12:9:13:19 | After if (...) ... | PostDominance.cs:14:9:14:29 | ...; | +| PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:12:13:12:21 | Before ... is ... | +| PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:13:12:21 | ... is ... | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | After ... is ... [false] | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:9:13:19 | After if (...) ... | +| PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:13:13:13:19 | Before return ...; | +| PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:12:13:12:13 | access to parameter s | +| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:18:12:21 | null | +| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | After ... is ... [true] | +| PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:13:13:13:19 | return ...; | +| PostDominance.cs:14:9:14:28 | After call to method WriteLine | PostDominance.cs:14:9:14:29 | After ...; | +| PostDominance.cs:14:9:14:28 | Before call to method WriteLine | PostDominance.cs:14:27:14:27 | access to parameter s | +| PostDominance.cs:14:9:14:28 | call to method WriteLine | PostDominance.cs:14:9:14:28 | After call to method WriteLine | +| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:9:14:28 | Before call to method WriteLine | +| PostDominance.cs:14:9:14:29 | After ...; | PostDominance.cs:11:5:15:5 | After {...} | | PostDominance.cs:14:27:14:27 | access to parameter s | PostDominance.cs:14:9:14:28 | call to method WriteLine | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:18:5:22:5 | {...} | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:18:5:22:5 | {...} | +| PostDominance.cs:18:5:22:5 | After {...} | PostDominance.cs:17:10:17:11 | Normal Exit | | PostDominance.cs:18:5:22:5 | {...} | PostDominance.cs:19:9:20:55 | if (...) ... | -| PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:19:13:19:13 | access to parameter s | -| PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:18:19:21 | null | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:21:9:21:29 | ...; | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:20:45:20:53 | nameof(...) | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [false] ... is ... | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [true] ... is ... | -| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | -| PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:13:20:55 | throw ...; | +| PostDominance.cs:19:9:20:55 | After if (...) ... | PostDominance.cs:21:9:21:29 | ...; | +| PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:19:13:19:21 | Before ... is ... | +| PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:13:19:21 | ... is ... | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | After ... is ... [false] | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:9:20:55 | After if (...) ... | +| PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:20:13:20:55 | Before throw ...; | +| PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:19:13:19:13 | access to parameter s | +| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:18:19:21 | null | +| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | After ... is ... [true] | +| PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | +| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | Exceptional Exit | +| PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | PostDominance.cs:20:13:20:55 | throw ...; | +| PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | PostDominance.cs:20:45:20:53 | nameof(...) | +| PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | | PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | -| PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:17:10:17:11 | exit M3 (normal) | -| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:27:21:27 | access to parameter s | +| PostDominance.cs:21:9:21:28 | After call to method WriteLine | PostDominance.cs:21:9:21:29 | After ...; | +| PostDominance.cs:21:9:21:28 | Before call to method WriteLine | PostDominance.cs:21:27:21:27 | access to parameter s | +| PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:21:9:21:28 | After call to method WriteLine | +| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:28 | Before call to method WriteLine | +| PostDominance.cs:21:9:21:29 | After ...; | PostDominance.cs:18:5:22:5 | After {...} | | 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 | 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 | After call to constructor Object | Qualifiers.cs:1:7:1:16 | {...} | +| Qualifiers.cs:1:7:1:16 | After call to method | Qualifiers.cs:1:7:1:16 | Before call to constructor Object | +| Qualifiers.cs:1:7:1:16 | Before call to constructor Object | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | Before call to method | Qualifiers.cs:1:7:1:16 | this access | +| Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Before call to method | +| Qualifiers.cs:1:7:1:16 | Normal Exit | Qualifiers.cs:1:7:1:16 | Exit | +| Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | After call to constructor Object | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | After call to method | | 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 | -| Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:16:7:21 | exit Method (normal) | -| Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:41:8:44 | null | -| Qualifiers.cs:8:23:8:34 | exit StaticMethod (normal) | Qualifiers.cs:8:23:8:34 | exit StaticMethod | -| Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:23:8:34 | exit StaticMethod (normal) | -| Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:11:5:31:5 | {...} | -| Qualifiers.cs:10:10:10:10 | exit M (normal) | Qualifiers.cs:10:10:10:10 | exit M | +| Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | Normal Exit | +| Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:28:7:31 | null | +| Qualifiers.cs:7:16:7:21 | Normal Exit | Qualifiers.cs:7:16:7:21 | Exit | +| Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:16:7:21 | Normal Exit | +| Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:41:8:44 | null | +| Qualifiers.cs:8:23:8:34 | Normal Exit | Qualifiers.cs:8:23:8:34 | Exit | +| Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:23:8:34 | Normal Exit | +| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:11:5:31:5 | {...} | +| Qualifiers.cs:10:10:10:10 | Normal Exit | Qualifiers.cs:10:10:10:10 | Exit | +| Qualifiers.cs:11:5:31:5 | After {...} | Qualifiers.cs:10:10:10:10 | Normal Exit | | Qualifiers.cs:11:5:31:5 | {...} | Qualifiers.cs:12:9:12:22 | ... ...; | -| Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:12:17:12:21 | this access | -| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:13:9:13:21 | ...; | -| Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | +| Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:12:13:12:21 | Before Qualifiers q = ... | +| Qualifiers.cs:12:9:12:22 | After ... ...; | Qualifiers.cs:13:9:13:21 | ...; | +| Qualifiers.cs:12:13:12:13 | access to local variable q | Qualifiers.cs:12:17:12:21 | Before access to field Field | +| Qualifiers.cs:12:13:12:21 | After Qualifiers q = ... | Qualifiers.cs:12:9:12:22 | After ... ...; | +| Qualifiers.cs:12:13:12:21 | Before Qualifiers q = ... | Qualifiers.cs:12:13:12:13 | access to local variable q | +| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:12:13:12:21 | After Qualifiers q = ... | +| Qualifiers.cs:12:17:12:21 | After access to field Field | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | +| Qualifiers.cs:12:17:12:21 | Before access to field Field | Qualifiers.cs:12:17:12:21 | this access | +| Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:12:17:12:21 | After access to field Field | | Qualifiers.cs:12:17:12:21 | this access | Qualifiers.cs:12:17:12:21 | access to field Field | -| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:14:9:14:21 | ...; | -| Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:13:13:13:20 | this access | -| Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:13:9:13:20 | ... = ... | +| Qualifiers.cs:13:9:13:9 | access to local variable q | Qualifiers.cs:13:13:13:20 | Before access to property Property | +| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:13:9:13:20 | After ... = ... | +| Qualifiers.cs:13:9:13:20 | After ... = ... | Qualifiers.cs:13:9:13:21 | After ...; | +| Qualifiers.cs:13:9:13:20 | Before ... = ... | Qualifiers.cs:13:9:13:9 | access to local variable q | +| Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:13:9:13:20 | Before ... = ... | +| Qualifiers.cs:13:9:13:21 | After ...; | Qualifiers.cs:14:9:14:21 | ...; | +| Qualifiers.cs:13:13:13:20 | After access to property Property | Qualifiers.cs:13:9:13:20 | ... = ... | +| Qualifiers.cs:13:13:13:20 | Before access to property Property | Qualifiers.cs:13:13:13:20 | this access | +| Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:13:13:13:20 | After access to property Property | | Qualifiers.cs:13:13:13:20 | this access | Qualifiers.cs:13:13:13:20 | access to property Property | -| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:16:9:16:23 | ...; | -| Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:14:13:14:20 | this access | -| Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:14:9:14:20 | ... = ... | +| Qualifiers.cs:14:9:14:9 | access to local variable q | Qualifiers.cs:14:13:14:20 | Before call to method Method | +| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:14:9:14:20 | After ... = ... | +| Qualifiers.cs:14:9:14:20 | After ... = ... | Qualifiers.cs:14:9:14:21 | After ...; | +| Qualifiers.cs:14:9:14:20 | Before ... = ... | Qualifiers.cs:14:9:14:9 | access to local variable q | +| Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:14:9:14:20 | Before ... = ... | +| Qualifiers.cs:14:9:14:21 | After ...; | Qualifiers.cs:16:9:16:23 | ...; | +| Qualifiers.cs:14:13:14:20 | After call to method Method | Qualifiers.cs:14:9:14:20 | ... = ... | +| Qualifiers.cs:14:13:14:20 | Before call to method Method | Qualifiers.cs:14:13:14:20 | this access | +| Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:14:13:14:20 | After call to method Method | | Qualifiers.cs:14:13:14:20 | this access | Qualifiers.cs:14:13:14:20 | call to method Method | -| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:17:9:17:26 | ...; | -| Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:16:13:16:16 | this access | +| Qualifiers.cs:16:9:16:9 | access to local variable q | Qualifiers.cs:16:13:16:22 | Before access to field Field | +| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:16:9:16:22 | After ... = ... | +| Qualifiers.cs:16:9:16:22 | After ... = ... | Qualifiers.cs:16:9:16:23 | After ...; | +| Qualifiers.cs:16:9:16:22 | Before ... = ... | Qualifiers.cs:16:9:16:9 | access to local variable q | +| Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:16:9:16:22 | Before ... = ... | +| Qualifiers.cs:16:9:16:23 | After ...; | Qualifiers.cs:17:9:17:26 | ...; | | Qualifiers.cs:16:13:16:16 | this access | Qualifiers.cs:16:13:16:22 | access to field Field | -| Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:16:9:16:22 | ... = ... | -| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:18:9:18:26 | ...; | -| Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:17:13:17:16 | this access | +| Qualifiers.cs:16:13:16:22 | After access to field Field | Qualifiers.cs:16:9:16:22 | ... = ... | +| Qualifiers.cs:16:13:16:22 | Before access to field Field | Qualifiers.cs:16:13:16:16 | this access | +| Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:16:13:16:22 | After access to field Field | +| Qualifiers.cs:17:9:17:9 | access to local variable q | Qualifiers.cs:17:13:17:25 | Before access to property Property | +| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:17:9:17:25 | After ... = ... | +| Qualifiers.cs:17:9:17:25 | After ... = ... | Qualifiers.cs:17:9:17:26 | After ...; | +| Qualifiers.cs:17:9:17:25 | Before ... = ... | Qualifiers.cs:17:9:17:9 | access to local variable q | +| Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:17:9:17:25 | Before ... = ... | +| Qualifiers.cs:17:9:17:26 | After ...; | Qualifiers.cs:18:9:18:26 | ...; | | Qualifiers.cs:17:13:17:16 | this access | Qualifiers.cs:17:13:17:25 | access to property Property | -| Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:17:9:17:25 | ... = ... | -| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:20:9:20:24 | ...; | -| Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:18:13:18:16 | this access | +| Qualifiers.cs:17:13:17:25 | After access to property Property | Qualifiers.cs:17:9:17:25 | ... = ... | +| Qualifiers.cs:17:13:17:25 | Before access to property Property | Qualifiers.cs:17:13:17:16 | this access | +| Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:17:13:17:25 | After access to property Property | +| Qualifiers.cs:18:9:18:9 | access to local variable q | Qualifiers.cs:18:13:18:25 | Before call to method Method | +| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:18:9:18:25 | After ... = ... | +| Qualifiers.cs:18:9:18:25 | After ... = ... | Qualifiers.cs:18:9:18:26 | After ...; | +| Qualifiers.cs:18:9:18:25 | Before ... = ... | Qualifiers.cs:18:9:18:9 | access to local variable q | +| Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:18:9:18:25 | Before ... = ... | +| Qualifiers.cs:18:9:18:26 | After ...; | Qualifiers.cs:20:9:20:24 | ...; | | Qualifiers.cs:18:13:18:16 | this access | Qualifiers.cs:18:13:18:25 | call to method Method | -| Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:18:9:18:25 | ... = ... | -| Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:21:9:21:27 | ...; | -| Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:20:13:20:23 | access to field StaticField | +| Qualifiers.cs:18:13:18:25 | After call to method Method | Qualifiers.cs:18:9:18:25 | ... = ... | +| Qualifiers.cs:18:13:18:25 | Before call to method Method | Qualifiers.cs:18:13:18:16 | this access | +| Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:18:13:18:25 | After call to method Method | +| Qualifiers.cs:20:9:20:9 | access to local variable q | Qualifiers.cs:20:13:20:23 | access to field StaticField | +| Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:20:9:20:23 | After ... = ... | +| Qualifiers.cs:20:9:20:23 | After ... = ... | Qualifiers.cs:20:9:20:24 | After ...; | +| Qualifiers.cs:20:9:20:23 | Before ... = ... | Qualifiers.cs:20:9:20:9 | access to local variable q | +| Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:20:9:20:23 | Before ... = ... | +| Qualifiers.cs:20:9:20:24 | After ...; | Qualifiers.cs:21:9:21:27 | ...; | | Qualifiers.cs:20:13:20:23 | access to field StaticField | Qualifiers.cs:20:9:20:23 | ... = ... | -| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:22:9:22:27 | ...; | -| Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | -| Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:9:21:26 | ... = ... | -| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:24:9:24:35 | ...; | -| Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | -| Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:9:22:26 | ... = ... | -| Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:25:9:25:38 | ...; | -| Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:24:13:24:34 | access to field StaticField | +| Qualifiers.cs:21:9:21:9 | access to local variable q | Qualifiers.cs:21:13:21:26 | Before access to property StaticProperty | +| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:21:9:21:26 | After ... = ... | +| Qualifiers.cs:21:9:21:26 | After ... = ... | Qualifiers.cs:21:9:21:27 | After ...; | +| Qualifiers.cs:21:9:21:26 | Before ... = ... | Qualifiers.cs:21:9:21:9 | access to local variable q | +| Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:21:9:21:26 | Before ... = ... | +| Qualifiers.cs:21:9:21:27 | After ...; | Qualifiers.cs:22:9:22:27 | ...; | +| Qualifiers.cs:21:13:21:26 | After access to property StaticProperty | Qualifiers.cs:21:9:21:26 | ... = ... | +| Qualifiers.cs:21:13:21:26 | Before access to property StaticProperty | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | +| Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:13:21:26 | After access to property StaticProperty | +| Qualifiers.cs:22:9:22:9 | access to local variable q | Qualifiers.cs:22:13:22:26 | Before call to method StaticMethod | +| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:22:9:22:26 | After ... = ... | +| Qualifiers.cs:22:9:22:26 | After ... = ... | Qualifiers.cs:22:9:22:27 | After ...; | +| Qualifiers.cs:22:9:22:26 | Before ... = ... | Qualifiers.cs:22:9:22:9 | access to local variable q | +| Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:22:9:22:26 | Before ... = ... | +| Qualifiers.cs:22:9:22:27 | After ...; | Qualifiers.cs:24:9:24:35 | ...; | +| Qualifiers.cs:22:13:22:26 | After call to method StaticMethod | Qualifiers.cs:22:9:22:26 | ... = ... | +| Qualifiers.cs:22:13:22:26 | Before call to method StaticMethod | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | +| Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:13:22:26 | After call to method StaticMethod | +| Qualifiers.cs:24:9:24:9 | access to local variable q | Qualifiers.cs:24:13:24:34 | access to field StaticField | +| Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:24:9:24:34 | After ... = ... | +| Qualifiers.cs:24:9:24:34 | After ... = ... | Qualifiers.cs:24:9:24:35 | After ...; | +| Qualifiers.cs:24:9:24:34 | Before ... = ... | Qualifiers.cs:24:9:24:9 | access to local variable q | +| Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:24:9:24:34 | Before ... = ... | +| Qualifiers.cs:24:9:24:35 | After ...; | Qualifiers.cs:25:9:25:38 | ...; | | Qualifiers.cs:24:13:24:34 | access to field StaticField | Qualifiers.cs:24:9:24:34 | ... = ... | -| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:26:9:26:38 | ...; | -| Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | -| Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:9:25:37 | ... = ... | -| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:28:9:28:41 | ...; | -| Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | -| Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:9:26:37 | ... = ... | -| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:29:9:29:47 | ...; | -| Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:28:13:28:34 | access to field StaticField | +| Qualifiers.cs:25:9:25:9 | access to local variable q | Qualifiers.cs:25:13:25:37 | Before access to property StaticProperty | +| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:25:9:25:37 | After ... = ... | +| Qualifiers.cs:25:9:25:37 | After ... = ... | Qualifiers.cs:25:9:25:38 | After ...; | +| Qualifiers.cs:25:9:25:37 | Before ... = ... | Qualifiers.cs:25:9:25:9 | access to local variable q | +| Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:25:9:25:37 | Before ... = ... | +| Qualifiers.cs:25:9:25:38 | After ...; | Qualifiers.cs:26:9:26:38 | ...; | +| Qualifiers.cs:25:13:25:37 | After access to property StaticProperty | Qualifiers.cs:25:9:25:37 | ... = ... | +| Qualifiers.cs:25:13:25:37 | Before access to property StaticProperty | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | +| Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:13:25:37 | After access to property StaticProperty | +| Qualifiers.cs:26:9:26:9 | access to local variable q | Qualifiers.cs:26:13:26:37 | Before call to method StaticMethod | +| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:26:9:26:37 | After ... = ... | +| Qualifiers.cs:26:9:26:37 | After ... = ... | Qualifiers.cs:26:9:26:38 | After ...; | +| Qualifiers.cs:26:9:26:37 | Before ... = ... | Qualifiers.cs:26:9:26:9 | access to local variable q | +| Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:26:9:26:37 | Before ... = ... | +| Qualifiers.cs:26:9:26:38 | After ...; | Qualifiers.cs:28:9:28:41 | ...; | +| Qualifiers.cs:26:13:26:37 | After call to method StaticMethod | Qualifiers.cs:26:9:26:37 | ... = ... | +| Qualifiers.cs:26:13:26:37 | Before call to method StaticMethod | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | +| Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:13:26:37 | After call to method StaticMethod | +| Qualifiers.cs:28:9:28:9 | access to local variable q | Qualifiers.cs:28:13:28:40 | Before access to field Field | +| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:28:9:28:40 | After ... = ... | +| Qualifiers.cs:28:9:28:40 | After ... = ... | Qualifiers.cs:28:9:28:41 | After ...; | +| Qualifiers.cs:28:9:28:40 | Before ... = ... | Qualifiers.cs:28:9:28:9 | access to local variable q | +| Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:28:9:28:40 | Before ... = ... | +| Qualifiers.cs:28:9:28:41 | After ...; | Qualifiers.cs:29:9:29:47 | ...; | | Qualifiers.cs:28:13:28:34 | access to field StaticField | Qualifiers.cs:28:13:28:40 | access to field Field | -| Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:28:9:28:40 | ... = ... | -| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:30:9:30:47 | ...; | -| Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | -| Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:13:29:46 | access to property Property | -| Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:9:29:46 | ... = ... | -| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:10:10:10:10 | exit M (normal) | -| Qualifiers.cs:30:9:30:47 | ...; | 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: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 | 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 | +| Qualifiers.cs:28:13:28:40 | After access to field Field | Qualifiers.cs:28:9:28:40 | ... = ... | +| Qualifiers.cs:28:13:28:40 | Before access to field Field | Qualifiers.cs:28:13:28:34 | access to field StaticField | +| Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:28:13:28:40 | After access to field Field | +| Qualifiers.cs:29:9:29:9 | access to local variable q | Qualifiers.cs:29:13:29:46 | Before access to property Property | +| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:29:9:29:46 | After ... = ... | +| Qualifiers.cs:29:9:29:46 | After ... = ... | Qualifiers.cs:29:9:29:47 | After ...; | +| Qualifiers.cs:29:9:29:46 | Before ... = ... | Qualifiers.cs:29:9:29:9 | access to local variable q | +| Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:29:9:29:46 | Before ... = ... | +| Qualifiers.cs:29:9:29:47 | After ...; | Qualifiers.cs:30:9:30:47 | ...; | +| Qualifiers.cs:29:13:29:37 | After access to property StaticProperty | Qualifiers.cs:29:13:29:46 | access to property Property | +| Qualifiers.cs:29:13:29:37 | Before access to property StaticProperty | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | +| Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:13:29:37 | After access to property StaticProperty | +| Qualifiers.cs:29:13:29:46 | After access to property Property | Qualifiers.cs:29:9:29:46 | ... = ... | +| Qualifiers.cs:29:13:29:46 | Before access to property Property | Qualifiers.cs:29:13:29:37 | Before access to property StaticProperty | +| Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:13:29:46 | After access to property Property | +| Qualifiers.cs:30:9:30:9 | access to local variable q | Qualifiers.cs:30:13:30:46 | Before call to method Method | +| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:30:9:30:46 | After ... = ... | +| Qualifiers.cs:30:9:30:46 | After ... = ... | Qualifiers.cs:30:9:30:47 | After ...; | +| Qualifiers.cs:30:9:30:46 | Before ... = ... | Qualifiers.cs:30:9:30:9 | access to local variable q | +| Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:30:9:30:46 | Before ... = ... | +| Qualifiers.cs:30:9:30:47 | After ...; | Qualifiers.cs:11:5:31:5 | After {...} | +| Qualifiers.cs:30:13:30:37 | After call to method StaticMethod | Qualifiers.cs:30:13:30:46 | call to method Method | +| Qualifiers.cs:30:13:30:37 | Before call to method StaticMethod | 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:37 | After call to method StaticMethod | +| Qualifiers.cs:30:13:30:46 | After call to method Method | Qualifiers.cs:30:9:30:46 | ... = ... | +| Qualifiers.cs:30:13:30:46 | Before call to method Method | Qualifiers.cs:30:13:30:37 | Before call to method StaticMethod | +| Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:46 | After call to method Method | +| Switch.cs:3:7:3:12 | After call to constructor Object | Switch.cs:3:7:3:12 | {...} | +| Switch.cs:3:7:3:12 | After call to method | Switch.cs:3:7:3:12 | Before call to constructor Object | +| Switch.cs:3:7:3:12 | Before call to constructor Object | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | Before call to method | Switch.cs:3:7:3:12 | this access | +| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Before call to method | +| Switch.cs:3:7:3:12 | Normal Exit | Switch.cs:3:7:3:12 | Exit | +| Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | After call to constructor Object | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | After call to method | | 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 | +| Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | Normal Exit | +| Switch.cs:5:10:5:11 | Entry | Switch.cs:6:5:8:5 | {...} | +| Switch.cs:5:10:5:11 | Normal Exit | Switch.cs:5:10:5:11 | Exit | +| Switch.cs:6:5:8:5 | After {...} | Switch.cs:5:10:5:11 | Normal Exit | | Switch.cs:6:5:8:5 | {...} | Switch.cs:7:9:7:22 | switch (...) {...} | +| Switch.cs:7:9:7:22 | After switch (...) {...} | Switch.cs:6:5:8:5 | After {...} | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:7:17:7:17 | access to parameter o | -| Switch.cs:7:17:7:17 | access to parameter o | Switch.cs:5:10:5:11 | exit M1 (normal) | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:11:5:33:5 | {...} | +| Switch.cs:7:17:7:17 | access to parameter o | Switch.cs:7:9:7:22 | After switch (...) {...} | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:11:5:33:5 | {...} | | Switch.cs:11:5:33:5 | {...} | Switch.cs:12:9:32:9 | switch (...) {...} | | Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:12:17:12:17 | access to parameter o | | Switch.cs:12:17:12:17 | access to parameter o | Switch.cs:14:13:14:21 | case ...: | -| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:18:14:20 | "a" | -| Switch.cs:14:18:14:20 | "a" | Switch.cs:15:17:15:23 | return ...; | -| Switch.cs:14:18:14:20 | "a" | Switch.cs:16:13:16:19 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:18:16:18 | 0 | -| Switch.cs:16:18:16:18 | 0 | Switch.cs:17:23:17:37 | object creation of type Exception | -| Switch.cs:16:18:16:18 | 0 | Switch.cs:18:13:18:22 | case ...: | -| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:18:18:21 | null | -| Switch.cs:18:18:18:21 | null | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:18:18:18:21 | null | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:18:20:22 | Int32 i | +| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:14:18:14:20 | "a" | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | case ...: | +| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:13:14:21 | After case ...: [match] | +| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:13:14:21 | After case ...: [no-match] | +| Switch.cs:14:18:14:20 | "a" | Switch.cs:15:17:15:23 | Before return ...; | +| Switch.cs:15:17:15:23 | Before return ...; | Switch.cs:15:17:15:23 | return ...; | +| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:16:18:16:18 | 0 | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | case ...: | +| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | After case ...: [match] | +| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | After case ...: [no-match] | +| Switch.cs:16:18:16:18 | 0 | Switch.cs:17:17:17:38 | Before throw ...; | +| Switch.cs:17:17:17:38 | Before throw ...; | Switch.cs:17:23:17:37 | Before object creation of type Exception | +| Switch.cs:17:23:17:37 | After object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | +| Switch.cs:17:23:17:37 | Before object creation of type Exception | Switch.cs:17:23:17:37 | object creation of type Exception | +| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:23:17:37 | After object creation of type Exception | +| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:18:18:18:21 | null | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | case ...: | +| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:18:18:18:21 | null | Switch.cs:19:17:19:29 | Before goto default; | +| Switch.cs:19:17:19:29 | Before goto default; | Switch.cs:19:17:19:29 | goto default; | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:20:18:20:22 | Int32 i | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | case ...: | +| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | After case ...: [no-match] | | Switch.cs:20:18:20:22 | Int32 i | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:21:21:21 | access to parameter o | +| Switch.cs:21:17:22:27 | After if (...) ... | Switch.cs:23:17:23:28 | Before goto case ...; | +| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:21:21:29 | Before ... == ... | | Switch.cs:21:21:21:21 | access to parameter o | Switch.cs:21:26:21:29 | null | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:23:27:23:27 | 0 | +| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:21:17:22:27 | After if (...) ... | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:22:21:22:27 | Before return ...; | +| Switch.cs:21:21:21:29 | Before ... == ... | Switch.cs:21:21:21:21 | access to parameter o | | Switch.cs:21:26:21:29 | null | Switch.cs:21:21:21:29 | ... == ... | +| Switch.cs:22:21:22:27 | Before return ...; | Switch.cs:22:21:22:27 | return ...; | +| Switch.cs:23:17:23:28 | Before goto case ...; | Switch.cs:23:27:23:27 | 0 | | Switch.cs:23:27:23:27 | 0 | Switch.cs:23:17:23:28 | goto case ...; | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:18:24:25 | String s | -| Switch.cs:24:18:24:25 | String s | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:24:18:24:25 | String s | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:18:24:25 | String s | +| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:24:18:24:25 | String s | Switch.cs:24:32:24:55 | ... && ... | | Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:39 | access to property Length | -| Switch.cs:24:32:24:39 | access to property Length | Switch.cs:24:43:24:43 | 0 | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:25:17:25:37 | ...; | +| Switch.cs:24:32:24:39 | After access to property Length | Switch.cs:24:43:24:43 | 0 | +| Switch.cs:24:32:24:39 | Before access to property Length | Switch.cs:24:32:24:32 | access to local variable s | +| Switch.cs:24:32:24:39 | access to property Length | Switch.cs:24:32:24:39 | After access to property Length | +| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | Before ... != ... | +| Switch.cs:24:32:24:43 | Before ... > ... | Switch.cs:24:32:24:39 | Before access to property Length | +| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:24:32:24:43 | Before ... > ... | +| Switch.cs:24:32:24:55 | After ... && ... [true] | Switch.cs:25:17:25:37 | ...; | | Switch.cs:24:43:24:43 | 0 | Switch.cs:24:32:24:43 | ... > ... | | Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:53:24:55 | "a" | -| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:32:24:55 | [true] ... && ... | +| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:24:32:24:55 | After ... && ... [true] | +| Switch.cs:24:48:24:55 | Before ... != ... | Switch.cs:24:48:24:48 | access to local variable s | | Switch.cs:24:53:24:55 | "a" | Switch.cs:24:48:24:55 | ... != ... | -| Switch.cs:25:17:25:36 | call to method WriteLine | Switch.cs:26:17:26:23 | return ...; | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:25:35:25:35 | access to local variable s | +| Switch.cs:25:17:25:36 | After call to method WriteLine | Switch.cs:25:17:25:37 | After ...; | +| Switch.cs:25:17:25:36 | Before call to method WriteLine | Switch.cs:25:35:25:35 | access to local variable s | +| Switch.cs:25:17:25:36 | call to method WriteLine | Switch.cs:25:17:25:36 | After call to method WriteLine | +| Switch.cs:25:17:25:37 | ...; | Switch.cs:25:17:25:36 | Before call to method WriteLine | +| Switch.cs:25:17:25:37 | After ...; | Switch.cs:26:17:26:23 | Before return ...; | | Switch.cs:25:35:25:35 | access to local variable s | Switch.cs:25:17:25:36 | call to method WriteLine | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | -| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:28:13:28:17 | Label: | Switch.cs:29:17:29:23 | return ...; | -| Switch.cs:30:13:30:20 | default: | Switch.cs:31:17:31:27 | goto ...; | +| Switch.cs:26:17:26:23 | Before return ...; | Switch.cs:26:17:26:23 | return ...; | +| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:18:27:25 | Double d | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:30:13:30:20 | default: | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:32:27:38 | Before call to method Throw | +| Switch.cs:27:32:27:38 | Before call to method Throw | Switch.cs:27:32:27:38 | call to method Throw | +| Switch.cs:28:13:28:17 | Label: | Switch.cs:29:17:29:23 | Before return ...; | +| Switch.cs:29:17:29:23 | Before return ...; | Switch.cs:29:17:29:23 | return ...; | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:31:17:31:27 | Before goto ...; | +| Switch.cs:31:17:31:27 | Before goto ...; | Switch.cs:31:17:31:27 | goto ...; | | Switch.cs:31:17:31:27 | goto ...; | Switch.cs:28:13:28:17 | Label: | -| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:36:5:42:5 | {...} | -| Switch.cs:35:10:35:11 | exit M3 (abnormal) | Switch.cs:35:10:35:11 | exit M3 | +| Switch.cs:35:10:35:11 | Entry | Switch.cs:36:5:42:5 | {...} | +| Switch.cs:35:10:35:11 | Exceptional Exit | Switch.cs:35:10:35:11 | Exit | | Switch.cs:36:5:42:5 | {...} | Switch.cs:37:9:41:9 | switch (...) {...} | -| Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:17:37:23 | call to method Throw | -| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | exit M3 (abnormal) | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:45:5:53:5 | {...} | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | exit M4 | +| Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:17:37:23 | Before call to method Throw | +| Switch.cs:37:17:37:23 | Before call to method Throw | Switch.cs:37:17:37:23 | call to method Throw | +| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | Exceptional Exit | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:45:5:53:5 | {...} | +| Switch.cs:44:10:44:11 | Normal Exit | Switch.cs:44:10:44:11 | Exit | +| Switch.cs:45:5:53:5 | After {...} | Switch.cs:44:10:44:11 | Normal Exit | | Switch.cs:45:5:53:5 | {...} | Switch.cs:46:9:52:9 | switch (...) {...} | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:45:5:53:5 | After {...} | | Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:46:17:46:17 | access to parameter o | | Switch.cs:46:17:46:17 | access to parameter o | Switch.cs:48:13:48:23 | case ...: | -| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:18:48:20 | access to type Int32 | -| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:49:17:49:22 | break; | -| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:50:13:50:39 | case ...: | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:18:50:21 | access to type Boolean | -| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:30:50:30 | access to parameter o | +| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:48:18:48:20 | access to type Int32 | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | case ...: | +| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:13:48:23 | After case ...: [match] | +| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:13:48:23 | After case ...: [no-match] | +| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:49:17:49:22 | Before break; | +| Switch.cs:49:17:49:22 | Before break; | Switch.cs:49:17:49:22 | break; | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:18:50:21 | access to type Boolean | +| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | After case ...: [match] | +| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | After case ...: [no-match] | +| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:30:50:38 | Before ... != ... | | Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:35:50:38 | null | -| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:51:17:51:22 | break; | +| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:51:17:51:22 | Before break; | +| Switch.cs:50:30:50:38 | Before ... != ... | Switch.cs:50:30:50:30 | access to parameter o | | Switch.cs:50:35:50:38 | null | Switch.cs:50:30:50:38 | ... != ... | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:56:5:64:5 | {...} | -| Switch.cs:55:10:55:11 | exit M5 (normal) | Switch.cs:55:10:55:11 | exit M5 | +| Switch.cs:51:17:51:22 | Before break; | Switch.cs:51:17:51:22 | break; | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:56:5:64:5 | {...} | +| Switch.cs:55:10:55:11 | Normal Exit | Switch.cs:55:10:55:11 | Exit | +| Switch.cs:56:5:64:5 | After {...} | Switch.cs:55:10:55:11 | Normal Exit | | Switch.cs:56:5:64:5 | {...} | Switch.cs:57:9:63:9 | switch (...) {...} | -| Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:57:17:57:17 | 1 | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:56:5:64:5 | After {...} | +| Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:57:17:57:21 | Before ... + ... | | Switch.cs:57:17:57:17 | 1 | Switch.cs:57:21:57:21 | 2 | -| Switch.cs:57:17:57:21 | ... + ... | Switch.cs:59:13:59:19 | case ...: | +| Switch.cs:57:17:57:21 | ... + ... | Switch.cs:57:17:57:21 | After ... + ... | +| Switch.cs:57:17:57:21 | After ... + ... | Switch.cs:59:13:59:19 | case ...: | +| Switch.cs:57:17:57:21 | Before ... + ... | Switch.cs:57:17:57:17 | 1 | | Switch.cs:57:21:57:21 | 2 | Switch.cs:57:17:57:21 | ... + ... | -| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:18:59:18 | 2 | -| Switch.cs:59:18:59:18 | 2 | Switch.cs:61:13:61:19 | case ...: | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:18:61:18 | 3 | -| Switch.cs:61:18:61:18 | 3 | Switch.cs:62:17:62:22 | break; | -| Switch.cs:62:17:62:22 | break; | Switch.cs:55:10:55:11 | exit M5 (normal) | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:67:5:75:5 | {...} | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | exit M6 | +| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:59:18:59:18 | 2 | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | case ...: | +| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:13:59:19 | After case ...: [match] | +| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:13:59:19 | After case ...: [no-match] | +| Switch.cs:59:18:59:18 | 2 | Switch.cs:60:17:60:22 | Before break; | +| Switch.cs:60:17:60:22 | Before break; | Switch.cs:60:17:60:22 | break; | +| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:61:18:61:18 | 3 | +| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | After case ...: [match] | +| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | After case ...: [no-match] | +| Switch.cs:61:18:61:18 | 3 | Switch.cs:62:17:62:22 | Before break; | +| Switch.cs:62:17:62:22 | Before break; | Switch.cs:62:17:62:22 | break; | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:67:5:75:5 | {...} | +| Switch.cs:66:10:66:11 | Normal Exit | Switch.cs:66:10:66:11 | Exit | +| Switch.cs:67:5:75:5 | After {...} | Switch.cs:66:10:66:11 | Normal Exit | | Switch.cs:67:5:75:5 | {...} | Switch.cs:68:9:74:9 | switch (...) {...} | -| Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:68:25:68:25 | access to parameter s | -| Switch.cs:68:17:68:25 | (...) ... | Switch.cs:70:13:70:23 | case ...: | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:67:5:75:5 | After {...} | +| Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:68:17:68:25 | Before (...) ... | +| Switch.cs:68:17:68:25 | (...) ... | Switch.cs:68:17:68:25 | After (...) ... | +| Switch.cs:68:17:68:25 | After (...) ... | Switch.cs:70:13:70:23 | case ...: | +| Switch.cs:68:17:68:25 | Before (...) ... | Switch.cs:68:25:68:25 | access to parameter s | | Switch.cs:68:25:68:25 | access to parameter s | Switch.cs:68:17:68:25 | (...) ... | -| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:18:70:20 | access to type Int32 | -| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:72:13:72:20 | case ...: | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:18:72:19 | "" | -| Switch.cs:72:18:72:19 | "" | Switch.cs:66:10:66:11 | exit M6 (normal) | -| Switch.cs:72:18:72:19 | "" | Switch.cs:73:17:73:22 | break; | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:78:5:89:5 | {...} | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | exit M7 | +| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:70:18:70:20 | access to type Int32 | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | case ...: | +| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:13:70:23 | After case ...: [match] | +| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:13:70:23 | After case ...: [no-match] | +| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:71:17:71:22 | Before break; | +| Switch.cs:71:17:71:22 | Before break; | Switch.cs:71:17:71:22 | break; | +| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:72:18:72:19 | "" | +| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | After case ...: [match] | +| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | After case ...: [no-match] | +| Switch.cs:72:18:72:19 | "" | Switch.cs:73:17:73:22 | Before break; | +| Switch.cs:73:17:73:22 | Before break; | Switch.cs:73:17:73:22 | break; | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:78:5:89:5 | {...} | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | Exit | | Switch.cs:78:5:89:5 | {...} | Switch.cs:79:9:87:9 | switch (...) {...} | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:88:9:88:21 | Before return ...; | | Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:79:17:79:17 | access to parameter i | | Switch.cs:79:17:79:17 | access to parameter i | Switch.cs:81:13:81:19 | case ...: | -| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:18:81:18 | 1 | -| Switch.cs:81:18:81:18 | 1 | Switch.cs:82:24:82:27 | true | -| Switch.cs:81:18:81:18 | 1 | Switch.cs:83:13:83:19 | case ...: | +| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:81:18:81:18 | 1 | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | case ...: | +| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:13:81:19 | After case ...: [match] | +| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:13:81:19 | After case ...: [no-match] | +| Switch.cs:81:18:81:18 | 1 | Switch.cs:82:17:82:28 | Before return ...; | +| Switch.cs:82:17:82:28 | Before return ...; | Switch.cs:82:24:82:27 | true | | Switch.cs:82:24:82:27 | true | Switch.cs:82:17:82:28 | return ...; | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:18:83:18 | 2 | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:83:18:83:18 | 2 | +| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | After case ...: [match] | +| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | After case ...: [no-match] | | Switch.cs:83:18:83:18 | 2 | Switch.cs:84:17:85:26 | if (...) ... | -| Switch.cs:83:18:83:18 | 2 | Switch.cs:88:16:88:20 | false | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:21:84:21 | access to parameter j | +| Switch.cs:84:17:85:26 | After if (...) ... | Switch.cs:86:17:86:28 | Before return ...; | +| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:21:84:25 | Before ... > ... | | Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:84:25:84:25 | 2 | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:85:21:85:26 | break; | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:86:24:86:27 | true | +| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:84:17:85:26 | After if (...) ... | +| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:85:21:85:26 | Before break; | +| Switch.cs:84:21:84:25 | Before ... > ... | Switch.cs:84:21:84:21 | access to parameter j | | Switch.cs:84:25:84:25 | 2 | Switch.cs:84:21:84:25 | ... > ... | +| Switch.cs:85:21:85:26 | Before break; | Switch.cs:85:21:85:26 | break; | +| Switch.cs:86:17:86:28 | Before return ...; | Switch.cs:86:24:86:27 | true | | Switch.cs:86:24:86:27 | true | Switch.cs:86:17:86:28 | return ...; | +| Switch.cs:88:9:88:21 | Before return ...; | Switch.cs:88:16:88:20 | false | | Switch.cs:88:16:88:20 | false | Switch.cs:88:9:88:21 | return ...; | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:92:5:99:5 | {...} | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | exit M8 | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:92:5:99:5 | {...} | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | Exit | | Switch.cs:92:5:99:5 | {...} | Switch.cs:93:9:97:9 | switch (...) {...} | +| Switch.cs:93:9:97:9 | After switch (...) {...} | Switch.cs:98:9:98:21 | Before return ...; | | Switch.cs:93:9:97:9 | switch (...) {...} | Switch.cs:93:17:93:17 | access to parameter o | | Switch.cs:93:17:93:17 | access to parameter o | Switch.cs:95:13:95:23 | case ...: | -| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:18:95:20 | access to type Int32 | -| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:96:24:96:27 | true | -| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:98:16:98:20 | false | +| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:95:18:95:20 | access to type Int32 | +| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:93:9:97:9 | After switch (...) {...} | +| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:13:95:23 | After case ...: [match] | +| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:13:95:23 | After case ...: [no-match] | +| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:96:17:96:28 | Before return ...; | +| Switch.cs:96:17:96:28 | Before return ...; | Switch.cs:96:24:96:27 | true | | Switch.cs:96:24:96:27 | true | Switch.cs:96:17:96:28 | return ...; | +| Switch.cs:98:9:98:21 | Before return ...; | Switch.cs:98:16:98:20 | false | | Switch.cs:98:16:98:20 | false | Switch.cs:98:9:98:21 | return ...; | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:102:5:109:5 | {...} | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | exit M9 | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:102:5:109:5 | {...} | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | Exit | | Switch.cs:102:5:109:5 | {...} | Switch.cs:103:9:107:9 | switch (...) {...} | -| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:103:17:103:17 | access to parameter s | -| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:25 | access to property Length | -| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:105:13:105:19 | case ...: | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:18:105:18 | 0 | -| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:28:105:28 | 0 | -| Switch.cs:105:18:105:18 | 0 | Switch.cs:106:13:106:19 | case ...: | +| Switch.cs:103:9:107:9 | After switch (...) {...} | Switch.cs:108:9:108:18 | Before return ...; | +| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:103:17:103:25 | Before access to property Length | +| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:103:17:103:25 | access to property Length | +| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | +| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:17 | After access to parameter s [null] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | case ...: | +| Switch.cs:103:17:103:25 | Before access to property Length | Switch.cs:103:17:103:17 | access to parameter s | +| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:18:105:18 | 0 | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | case ...: | +| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | After case ...: [match] | +| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | After case ...: [no-match] | +| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:21:105:29 | Before return ...; | +| Switch.cs:105:21:105:29 | Before return ...; | Switch.cs:105:28:105:28 | 0 | | Switch.cs:105:28:105:28 | 0 | Switch.cs:105:21:105:29 | return ...; | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:18:106:18 | 1 | -| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:106:18:106:18 | 1 | Switch.cs:108:17:108:17 | 1 | +| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:18:106:18 | 1 | +| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:103:9:107:9 | After switch (...) {...} | +| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | After case ...: [no-match] | +| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:21:106:29 | Before return ...; | +| Switch.cs:106:21:106:29 | Before return ...; | Switch.cs:106:28:106:28 | 1 | | Switch.cs:106:28:106:28 | 1 | Switch.cs:106:21:106:29 | return ...; | -| Switch.cs:108:16:108:17 | -... | Switch.cs:108:9:108:18 | return ...; | +| Switch.cs:108:9:108:18 | Before return ...; | Switch.cs:108:16:108:17 | Before -... | +| Switch.cs:108:16:108:17 | -... | Switch.cs:108:16:108:17 | After -... | +| Switch.cs:108:16:108:17 | After -... | Switch.cs:108:9:108:18 | return ...; | +| Switch.cs:108:16:108:17 | Before -... | Switch.cs:108:17:108:17 | 1 | | Switch.cs:108:17:108:17 | 1 | Switch.cs:108:16:108:17 | -... | -| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:34:111:48 | object creation of type Exception | -| Switch.cs:111:17:111:21 | exit Throw (abnormal) | Switch.cs:111:17:111:21 | exit Throw | -| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | exit Throw (abnormal) | -| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:28:111:48 | throw ... | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:114:5:121:5 | {...} | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | exit M10 | +| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:28:111:48 | Before throw ... | +| Switch.cs:111:17:111:21 | Exceptional Exit | Switch.cs:111:17:111:21 | Exit | +| Switch.cs:111:28:111:48 | Before throw ... | Switch.cs:111:34:111:48 | Before object creation of type Exception | +| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | Exceptional Exit | +| Switch.cs:111:34:111:48 | After object creation of type Exception | Switch.cs:111:28:111:48 | throw ... | +| Switch.cs:111:34:111:48 | Before object creation of type Exception | Switch.cs:111:34:111:48 | object creation of type Exception | +| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:34:111:48 | After object creation of type Exception | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:114:5:121:5 | {...} | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | Exit | | Switch.cs:114:5:121:5 | {...} | Switch.cs:115:9:119:9 | switch (...) {...} | -| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:115:17:115:17 | access to parameter s | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:120:9:120:18 | Before return ...; | +| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:115:17:115:24 | Before access to property Length | | Switch.cs:115:17:115:17 | access to parameter s | Switch.cs:115:17:115:24 | access to property Length | -| Switch.cs:115:17:115:24 | access to property Length | Switch.cs:117:13:117:35 | case ...: | -| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:18:117:18 | 3 | -| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:25:117:25 | access to parameter s | -| Switch.cs:117:18:117:18 | 3 | Switch.cs:118:13:118:34 | case ...: | +| Switch.cs:115:17:115:24 | After access to property Length | Switch.cs:117:13:117:35 | case ...: | +| Switch.cs:115:17:115:24 | Before access to property Length | Switch.cs:115:17:115:17 | access to parameter s | +| Switch.cs:115:17:115:24 | access to property Length | Switch.cs:115:17:115:24 | After access to property Length | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:18:117:18 | 3 | +| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:13:117:35 | After case ...: [match] | +| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:13:117:35 | After case ...: [no-match] | +| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:25:117:34 | Before ... == ... | | Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:30:117:34 | "foo" | -| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:44:117:44 | 1 | +| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [false] | +| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [true] | +| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:117:37:117:45 | Before return ...; | +| Switch.cs:117:25:117:34 | Before ... == ... | Switch.cs:117:25:117:25 | access to parameter s | | Switch.cs:117:30:117:34 | "foo" | Switch.cs:117:25:117:34 | ... == ... | +| Switch.cs:117:37:117:45 | Before return ...; | Switch.cs:117:44:117:44 | 1 | | Switch.cs:117:44:117:44 | 1 | Switch.cs:117:37:117:45 | return ...; | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | 2 | -| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:25:118:25 | access to parameter s | -| Switch.cs:118:18:118:18 | 2 | Switch.cs:120:17:120:17 | 1 | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:18:118:18 | 2 | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [match] | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [no-match] | +| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:25:118:33 | Before ... == ... | | Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:30:118:33 | "fu" | -| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:43:118:43 | 2 | +| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [true] | +| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:118:36:118:44 | Before return ...; | +| Switch.cs:118:25:118:33 | Before ... == ... | Switch.cs:118:25:118:25 | access to parameter s | | Switch.cs:118:30:118:33 | "fu" | Switch.cs:118:25:118:33 | ... == ... | +| Switch.cs:118:36:118:44 | Before return ...; | Switch.cs:118:43:118:43 | 2 | | Switch.cs:118:43:118:43 | 2 | Switch.cs:118:36:118:44 | return ...; | -| Switch.cs:120:16:120:17 | -... | Switch.cs:120:9:120:18 | return ...; | +| Switch.cs:120:9:120:18 | Before return ...; | Switch.cs:120:16:120:17 | Before -... | +| Switch.cs:120:16:120:17 | -... | Switch.cs:120:16:120:17 | After -... | +| Switch.cs:120:16:120:17 | After -... | Switch.cs:120:9:120:18 | return ...; | +| Switch.cs:120:16:120:17 | Before -... | Switch.cs:120:17:120:17 | 1 | | Switch.cs:120:17:120:17 | 1 | Switch.cs:120:16:120:17 | -... | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:124:5:127:5 | {...} | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | exit M11 | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:124:5:127:5 | {...} | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | Exit | | Switch.cs:124:5:127:5 | {...} | Switch.cs:125:9:126:19 | if (...) ... | -| Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:125:13:125:13 | access to parameter o | -| Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:24:125:29 | Boolean b | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:126:13:126:19 | return ...; | +| Switch.cs:125:9:126:19 | After if (...) ... | Switch.cs:124:5:127:5 | After {...} | +| Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:125:13:125:48 | ... switch { ... } | +| Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:24:125:34 | ... => ... | +| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:13:125:13 | access to parameter o | +| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:125:9:126:19 | After if (...) ... | +| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:126:13:126:19 | Before return ...; | | Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:34:125:34 | access to local variable b | -| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:37:125:37 | _ | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [true] ... => ... | +| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | After ... => ... [match] | +| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | After ... => ... [no-match] | +| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:24:125:29 | Boolean b | +| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:125:37:125:46 | ... => ... | | Switch.cs:125:37:125:37 | _ | Switch.cs:125:42:125:46 | false | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:130:5:132:5 | {...} | -| Switch.cs:129:12:129:14 | exit M12 (normal) | Switch.cs:129:12:129:14 | exit M12 | -| Switch.cs:130:5:132:5 | {...} | Switch.cs:131:17:131:17 | access to parameter o | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | exit M12 (normal) | -| Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:131:28:131:35 | String s | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:16:131:66 | call to method ToString | +| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:46 | After ... => ... [match] | +| Switch.cs:125:37:125:46 | After ... => ... [match] | Switch.cs:125:37:125:37 | _ | +| Switch.cs:126:13:126:19 | Before return ...; | Switch.cs:126:13:126:19 | return ...; | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:130:5:132:5 | {...} | +| Switch.cs:129:12:129:14 | Normal Exit | Switch.cs:129:12:129:14 | Exit | +| Switch.cs:130:5:132:5 | {...} | Switch.cs:131:9:131:67 | Before return ...; | +| Switch.cs:131:9:131:67 | Before return ...; | Switch.cs:131:16:131:66 | Before call to method ToString | +| Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | Normal Exit | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:9:131:67 | return ...; | +| Switch.cs:131:16:131:66 | Before call to method ToString | Switch.cs:131:17:131:53 | ... switch { ... } | +| Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:131:28:131:40 | ... => ... | +| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:17:131:17 | access to parameter o | +| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:131:16:131:66 | call to method ToString | | Switch.cs:131:28:131:35 | String s | Switch.cs:131:40:131:40 | access to local variable s | -| Switch.cs:131:28:131:35 | String s | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [null] ... => ... | +| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | After ... => ... [match] | +| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | After ... => ... [no-match] | +| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:28:131:35 | String s | +| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:131:43:131:51 | ... => ... | | Switch.cs:131:43:131:43 | _ | Switch.cs:131:48:131:51 | null | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:135:5:142:5 | {...} | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | exit M13 | +| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:51 | After ... => ... [match] | +| Switch.cs:131:43:131:51 | After ... => ... [match] | Switch.cs:131:43:131:43 | _ | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:135:5:142:5 | {...} | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | Exit | | Switch.cs:135:5:142:5 | {...} | Switch.cs:136:9:141:9 | switch (...) {...} | | Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:136:17:136:17 | access to parameter i | | Switch.cs:136:17:136:17 | access to parameter i | Switch.cs:139:13:139:19 | case ...: | -| Switch.cs:138:13:138:20 | default: | Switch.cs:138:30:138:30 | 1 | -| Switch.cs:138:29:138:30 | -... | Switch.cs:138:22:138:31 | return ...; | +| Switch.cs:138:13:138:20 | After default: [match] | Switch.cs:138:22:138:31 | Before return ...; | +| Switch.cs:138:13:138:20 | default: | Switch.cs:138:13:138:20 | After default: [match] | +| Switch.cs:138:22:138:31 | Before return ...; | Switch.cs:138:29:138:30 | Before -... | +| Switch.cs:138:29:138:30 | -... | Switch.cs:138:29:138:30 | After -... | +| Switch.cs:138:29:138:30 | After -... | Switch.cs:138:22:138:31 | return ...; | +| Switch.cs:138:29:138:30 | Before -... | Switch.cs:138:30:138:30 | 1 | | Switch.cs:138:30:138:30 | 1 | Switch.cs:138:29:138:30 | -... | -| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:18:139:18 | 1 | -| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:28:139:28 | 1 | -| Switch.cs:139:18:139:18 | 1 | Switch.cs:140:13:140:19 | case ...: | +| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:18:139:18 | 1 | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | case ...: | +| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:13:139:19 | After case ...: [match] | +| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:13:139:19 | After case ...: [no-match] | +| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:21:139:29 | Before return ...; | +| Switch.cs:139:21:139:29 | Before return ...; | Switch.cs:139:28:139:28 | 1 | | Switch.cs:139:28:139:28 | 1 | Switch.cs:139:21:139:29 | return ...; | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:18:140:18 | 2 | -| Switch.cs:140:18:140:18 | 2 | Switch.cs:138:13:138:20 | default: | -| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:28:140:28 | 2 | +| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:18:140:18 | 2 | +| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:138:13:138:20 | default: | +| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | After case ...: [match] | +| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | After case ...: [no-match] | +| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:21:140:29 | Before return ...; | +| Switch.cs:140:21:140:29 | Before return ...; | Switch.cs:140:28:140:28 | 2 | | Switch.cs:140:28:140:28 | 2 | Switch.cs:140:21:140:29 | return ...; | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:145:5:152:5 | {...} | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | exit M14 | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:145:5:152:5 | {...} | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | Exit | | Switch.cs:145:5:152:5 | {...} | Switch.cs:146:9:151:9 | switch (...) {...} | | Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:146:17:146:17 | access to parameter i | | Switch.cs:146:17:146:17 | access to parameter i | Switch.cs:148:13:148:19 | case ...: | -| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:18:148:18 | 1 | -| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:28:148:28 | 1 | -| Switch.cs:148:18:148:18 | 1 | Switch.cs:150:13:150:19 | case ...: | +| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:18:148:18 | 1 | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | case ...: | +| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:13:148:19 | After case ...: [match] | +| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:13:148:19 | After case ...: [no-match] | +| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:21:148:29 | Before return ...; | +| Switch.cs:148:21:148:29 | Before return ...; | Switch.cs:148:28:148:28 | 1 | | Switch.cs:148:28:148:28 | 1 | Switch.cs:148:21:148:29 | return ...; | -| Switch.cs:149:13:149:20 | default: | Switch.cs:149:30:149:30 | 1 | -| Switch.cs:149:29:149:30 | -... | Switch.cs:149:22:149:31 | return ...; | +| Switch.cs:149:13:149:20 | After default: [match] | Switch.cs:149:22:149:31 | Before return ...; | +| Switch.cs:149:13:149:20 | default: | Switch.cs:149:13:149:20 | After default: [match] | +| Switch.cs:149:22:149:31 | Before return ...; | Switch.cs:149:29:149:30 | Before -... | +| Switch.cs:149:29:149:30 | -... | Switch.cs:149:29:149:30 | After -... | +| Switch.cs:149:29:149:30 | After -... | Switch.cs:149:22:149:31 | return ...; | +| Switch.cs:149:29:149:30 | Before -... | Switch.cs:149:30:149:30 | 1 | | Switch.cs:149:30:149:30 | 1 | Switch.cs:149:29:149:30 | -... | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:18:150:18 | 2 | -| Switch.cs:150:18:150:18 | 2 | Switch.cs:149:13:149:20 | default: | -| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:28:150:28 | 2 | +| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:18:150:18 | 2 | +| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:149:13:149:20 | default: | +| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | After case ...: [match] | +| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | After case ...: [no-match] | +| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:21:150:29 | Before return ...; | +| Switch.cs:150:21:150:29 | Before return ...; | Switch.cs:150:28:150:28 | 2 | | Switch.cs:150:28:150:28 | 2 | Switch.cs:150:21:150:29 | return ...; | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:155:5:161:5 | {...} | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:155:5:161:5 | {...} | +| Switch.cs:154:10:154:12 | Normal Exit | Switch.cs:154:10:154:12 | Exit | +| Switch.cs:155:5:161:5 | After {...} | Switch.cs:154:10:154:12 | Normal Exit | | Switch.cs:155:5:161:5 | {...} | Switch.cs:156:9:156:55 | ... ...; | -| Switch.cs:156:9:156:55 | ... ...; | Switch.cs:156:17:156:17 | access to parameter b | -| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:157:9:160:49 | if (...) ... | -| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:28:156:31 | true | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:13:156:54 | String s = ... | +| Switch.cs:156:9:156:55 | ... ...; | Switch.cs:156:13:156:54 | Before String s = ... | +| Switch.cs:156:9:156:55 | After ... ...; | Switch.cs:157:9:160:49 | if (...) ... | +| Switch.cs:156:13:156:13 | access to local variable s | Switch.cs:156:17:156:54 | ... switch { ... } | +| Switch.cs:156:13:156:54 | After String s = ... | Switch.cs:156:9:156:55 | After ... ...; | +| Switch.cs:156:13:156:54 | Before String s = ... | Switch.cs:156:13:156:13 | access to local variable s | +| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:13:156:54 | After String s = ... | +| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:28:156:38 | ... => ... | +| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:17 | access to parameter b | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:13:156:54 | String s = ... | | Switch.cs:156:28:156:31 | true | Switch.cs:156:36:156:38 | "a" | -| Switch.cs:156:28:156:31 | true | Switch.cs:156:41:156:45 | false | -| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:28:156:38 | ... => ... | -| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | exit M15 (abnormal) | +| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | After ... => ... [match] | +| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | After ... => ... [no-match] | +| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:28:156:31 | true | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | ... => ... | | Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:41:156:52 | ... => ... | +| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:41:156:45 | false | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:155:5:161:5 | After {...} | | Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:157:13:157:13 | access to parameter b | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:158:13:158:49 | ...; | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:160:13:160:49 | ...; | -| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:40:158:43 | "a = " | -| Switch.cs:158:38:158:47 | $"..." | Switch.cs:158:13:158:48 | call to method WriteLine | -| Switch.cs:158:40:158:43 | "a = " | Switch.cs:158:45:158:45 | access to local variable s | -| Switch.cs:158:44:158:46 | {...} | Switch.cs:158:38:158:47 | $"..." | +| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:160:13:160:49 | ...; | +| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:158:13:158:49 | ...; | +| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [false] | +| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [true] | +| Switch.cs:158:13:158:48 | After call to method WriteLine | Switch.cs:158:13:158:49 | After ...; | +| Switch.cs:158:13:158:48 | Before call to method WriteLine | Switch.cs:158:38:158:47 | Before $"..." | +| Switch.cs:158:13:158:48 | call to method WriteLine | Switch.cs:158:13:158:48 | After call to method WriteLine | +| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:13:158:48 | Before call to method WriteLine | +| Switch.cs:158:38:158:47 | $"..." | Switch.cs:158:38:158:47 | After $"..." | +| Switch.cs:158:38:158:47 | After $"..." | Switch.cs:158:13:158:48 | call to method WriteLine | +| Switch.cs:158:38:158:47 | Before $"..." | Switch.cs:158:40:158:43 | "a = " | +| Switch.cs:158:40:158:43 | "a = " | Switch.cs:158:44:158:46 | Before {...} | +| Switch.cs:158:44:158:46 | After {...} | Switch.cs:158:38:158:47 | $"..." | +| Switch.cs:158:44:158:46 | Before {...} | Switch.cs:158:45:158:45 | access to local variable s | +| Switch.cs:158:44:158:46 | {...} | Switch.cs:158:44:158:46 | After {...} | | Switch.cs:158:45:158:45 | access to local variable s | Switch.cs:158:44:158:46 | {...} | -| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:40:160:43 | "b = " | -| Switch.cs:160:38:160:47 | $"..." | Switch.cs:160:13:160:48 | call to method WriteLine | -| Switch.cs:160:40:160:43 | "b = " | Switch.cs:160:45:160:45 | access to local variable s | -| Switch.cs:160:44:160:46 | {...} | Switch.cs:160:38:160:47 | $"..." | +| Switch.cs:160:13:160:48 | After call to method WriteLine | Switch.cs:160:13:160:49 | After ...; | +| Switch.cs:160:13:160:48 | Before call to method WriteLine | Switch.cs:160:38:160:47 | Before $"..." | +| Switch.cs:160:13:160:48 | call to method WriteLine | Switch.cs:160:13:160:48 | After call to method WriteLine | +| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:13:160:48 | Before call to method WriteLine | +| Switch.cs:160:38:160:47 | $"..." | Switch.cs:160:38:160:47 | After $"..." | +| Switch.cs:160:38:160:47 | After $"..." | Switch.cs:160:13:160:48 | call to method WriteLine | +| Switch.cs:160:38:160:47 | Before $"..." | Switch.cs:160:40:160:43 | "b = " | +| Switch.cs:160:40:160:43 | "b = " | Switch.cs:160:44:160:46 | Before {...} | +| Switch.cs:160:44:160:46 | After {...} | Switch.cs:160:38:160:47 | $"..." | +| Switch.cs:160:44:160:46 | Before {...} | Switch.cs:160:45:160:45 | access to local variable s | +| Switch.cs:160:44:160:46 | {...} | Switch.cs:160:44:160:46 | After {...} | | Switch.cs:160:45:160:45 | access to local variable s | Switch.cs:160:44:160:46 | {...} | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:164:5:178:5 | {...} | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | exit M16 | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:164:5:178:5 | {...} | +| Switch.cs:163:10:163:12 | Normal Exit | Switch.cs:163:10:163:12 | Exit | +| Switch.cs:164:5:178:5 | After {...} | Switch.cs:163:10:163:12 | Normal Exit | | Switch.cs:164:5:178:5 | {...} | Switch.cs:165:9:177:9 | switch (...) {...} | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:164:5:178:5 | After {...} | | Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:165:17:165:17 | access to parameter i | | Switch.cs:165:17:165:17 | access to parameter i | Switch.cs:167:13:167:19 | case ...: | -| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:18:167:18 | 1 | -| Switch.cs:167:18:167:18 | 1 | Switch.cs:168:13:168:19 | case ...: | -| Switch.cs:167:18:167:18 | 1 | Switch.cs:169:17:169:51 | ...; | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:18:168:18 | 2 | -| Switch.cs:168:18:168:18 | 2 | Switch.cs:171:13:171:19 | case ...: | -| Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:170:17:170:22 | break; | -| Switch.cs:169:17:169:51 | ...; | Switch.cs:169:42:169:49 | "1 or 2" | +| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:167:18:167:18 | 1 | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | case ...: | +| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:13:167:19 | After case ...: [match] | +| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:13:167:19 | After case ...: [no-match] | +| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:168:18:168:18 | 2 | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | case ...: | +| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | After case ...: [match] | +| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | After case ...: [no-match] | +| Switch.cs:169:17:169:50 | After call to method WriteLine | Switch.cs:169:17:169:51 | After ...; | +| Switch.cs:169:17:169:50 | Before call to method WriteLine | Switch.cs:169:42:169:49 | "1 or 2" | +| Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:169:17:169:50 | After call to method WriteLine | +| Switch.cs:169:17:169:51 | ...; | Switch.cs:169:17:169:50 | Before call to method WriteLine | +| Switch.cs:169:17:169:51 | After ...; | Switch.cs:170:17:170:22 | Before break; | | Switch.cs:169:42:169:49 | "1 or 2" | Switch.cs:169:17:169:50 | call to method WriteLine | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:18:171:18 | 3 | +| Switch.cs:170:17:170:22 | Before break; | Switch.cs:170:17:170:22 | break; | +| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:171:18:171:18 | 3 | +| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:174:13:174:20 | default: | +| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | After case ...: [no-match] | | Switch.cs:171:18:171:18 | 3 | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:171:18:171:18 | 3 | Switch.cs:174:13:174:20 | default: | -| Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:173:17:173:22 | break; | -| Switch.cs:172:17:172:46 | ...; | Switch.cs:172:42:172:44 | "3" | +| Switch.cs:172:17:172:45 | After call to method WriteLine | Switch.cs:172:17:172:46 | After ...; | +| Switch.cs:172:17:172:45 | Before call to method WriteLine | Switch.cs:172:42:172:44 | "3" | +| Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:172:17:172:45 | After call to method WriteLine | +| Switch.cs:172:17:172:46 | ...; | Switch.cs:172:17:172:45 | Before call to method WriteLine | +| Switch.cs:172:17:172:46 | After ...; | Switch.cs:173:17:173:22 | Before break; | | Switch.cs:172:42:172:44 | "3" | Switch.cs:172:17:172:45 | call to method WriteLine | -| Switch.cs:174:13:174:20 | default: | Switch.cs:175:17:175:48 | ...; | -| Switch.cs:175:17:175:47 | call to method WriteLine | Switch.cs:176:17:176:22 | break; | -| Switch.cs:175:17:175:48 | ...; | Switch.cs:175:42:175:46 | "def" | +| Switch.cs:173:17:173:22 | Before break; | Switch.cs:173:17:173:22 | break; | +| Switch.cs:174:13:174:20 | After default: [match] | Switch.cs:175:17:175:48 | ...; | +| Switch.cs:174:13:174:20 | default: | Switch.cs:174:13:174:20 | After default: [match] | +| Switch.cs:175:17:175:47 | After call to method WriteLine | Switch.cs:175:17:175:48 | After ...; | +| Switch.cs:175:17:175:47 | Before call to method WriteLine | Switch.cs:175:42:175:46 | "def" | +| Switch.cs:175:17:175:47 | call to method WriteLine | Switch.cs:175:17:175:47 | After call to method WriteLine | +| Switch.cs:175:17:175:48 | ...; | Switch.cs:175:17:175:47 | Before call to method WriteLine | +| Switch.cs:175:17:175:48 | After ...; | Switch.cs:176:17:176:22 | Before break; | | 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 | 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 | +| Switch.cs:176:17:176:22 | Before break; | Switch.cs:176:17:176:22 | break; | +| TypeAccesses.cs:1:7:1:18 | After call to constructor Object | TypeAccesses.cs:1:7:1:18 | {...} | +| TypeAccesses.cs:1:7:1:18 | After call to method | TypeAccesses.cs:1:7:1:18 | Before call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | Before call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | Before call to method | TypeAccesses.cs:1:7:1:18 | this access | +| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | Before call to method | +| TypeAccesses.cs:1:7:1:18 | Normal Exit | TypeAccesses.cs:1:7:1:18 | Exit | +| TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | After call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | After call to method | | 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 | +| TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | Normal Exit | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:4:5:9:5 | {...} | +| TypeAccesses.cs:3:10:3:10 | Normal Exit | TypeAccesses.cs:3:10:3:10 | Exit | +| TypeAccesses.cs:4:5:9:5 | After {...} | TypeAccesses.cs:3:10:3:10 | Normal Exit | | TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:5:9:5:26 | ... ...; | -| TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:25:5:25 | access to parameter o | -| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:6:9:6:24 | ...; | -| TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:5:13:5:25 | String s = ... | +| TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:13:5:25 | Before String s = ... | +| TypeAccesses.cs:5:9:5:26 | After ... ...; | TypeAccesses.cs:6:9:6:24 | ...; | +| TypeAccesses.cs:5:13:5:13 | access to local variable s | TypeAccesses.cs:5:17:5:25 | Before (...) ... | +| TypeAccesses.cs:5:13:5:25 | After String s = ... | TypeAccesses.cs:5:9:5:26 | After ... ...; | +| TypeAccesses.cs:5:13:5:25 | Before String s = ... | TypeAccesses.cs:5:13:5:13 | access to local variable s | +| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:5:13:5:25 | After String s = ... | +| TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:5:17:5:25 | After (...) ... | +| TypeAccesses.cs:5:17:5:25 | After (...) ... | TypeAccesses.cs:5:13:5:25 | String s = ... | +| TypeAccesses.cs:5:17:5:25 | Before (...) ... | TypeAccesses.cs:5:25:5:25 | access to parameter o | | TypeAccesses.cs:5:25:5:25 | access to parameter o | TypeAccesses.cs:5:17:5:25 | (...) ... | -| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:7:9:7:25 | if (...) ... | -| TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:6:13:6:13 | access to parameter o | +| TypeAccesses.cs:6:9:6:9 | access to local variable s | TypeAccesses.cs:6:13:6:23 | Before ... as ... | +| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:6:9:6:23 | After ... = ... | +| TypeAccesses.cs:6:9:6:23 | After ... = ... | TypeAccesses.cs:6:9:6:24 | After ...; | +| TypeAccesses.cs:6:9:6:23 | Before ... = ... | TypeAccesses.cs:6:9:6:9 | access to local variable s | +| TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:6:9:6:23 | Before ... = ... | +| TypeAccesses.cs:6:9:6:24 | After ...; | TypeAccesses.cs:7:9:7:25 | if (...) ... | | TypeAccesses.cs:6:13:6:13 | access to parameter o | TypeAccesses.cs:6:13:6:23 | ... as ... | -| TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:6:9:6:23 | ... = ... | -| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | -| TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:18:7:22 | Int32 j | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:17:8:27 | typeof(...) | -| TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | exit M (normal) | +| TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:6:13:6:23 | After ... as ... | +| TypeAccesses.cs:6:13:6:23 | After ... as ... | TypeAccesses.cs:6:9:6:23 | ... = ... | +| TypeAccesses.cs:6:13:6:23 | Before ... as ... | TypeAccesses.cs:6:13:6:13 | access to parameter o | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:8:9:8:28 | ... ...; | +| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:13:7:22 | Before ... is ... | +| TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:13:7:22 | ... is ... | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:7:25:7:25 | ; | +| TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | +| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:18:7:22 | Int32 j | +| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | +| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:13:8:27 | Before Type t = ... | +| TypeAccesses.cs:8:9:8:28 | After ... ...; | TypeAccesses.cs:4:5:9:5 | After {...} | +| TypeAccesses.cs:8:13:8:13 | access to local variable t | TypeAccesses.cs:8:17:8:27 | typeof(...) | +| TypeAccesses.cs:8:13:8:27 | After Type t = ... | TypeAccesses.cs:8:9:8:28 | After ... ...; | +| TypeAccesses.cs:8:13:8:27 | Before Type t = ... | TypeAccesses.cs:8:13:8:13 | access to local variable t | +| TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:13:8:27 | After Type t = ... | | 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 | 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 | After call to constructor Object | VarDecls.cs:3:7:3:14 | {...} | +| VarDecls.cs:3:7:3:14 | After call to method | VarDecls.cs:3:7:3:14 | Before call to constructor Object | +| VarDecls.cs:3:7:3:14 | Before call to constructor Object | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | Before call to method | VarDecls.cs:3:7:3:14 | this access | +| VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Before call to method | +| VarDecls.cs:3:7:3:14 | Normal Exit | VarDecls.cs:3:7:3:14 | Exit | +| VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | After call to constructor Object | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | After call to method | | 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 | +| VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | Normal Exit | +| VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:6:5:11:5 | {...} | +| VarDecls.cs:5:18:5:19 | Normal Exit | VarDecls.cs:5:18:5:19 | Exit | | VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | -| VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:7:27:7:33 | access to parameter strings | -| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:44:7:50 | access to parameter strings | +| VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:7:22:7:36 | Before Char* c1 = ... | +| VarDecls.cs:7:22:7:23 | access to local variable c1 | VarDecls.cs:7:27:7:36 | Before (...) ... | +| VarDecls.cs:7:22:7:36 | After Char* c1 = ... | VarDecls.cs:7:39:7:53 | Before Char* c2 = ... | +| VarDecls.cs:7:22:7:36 | Before Char* c1 = ... | VarDecls.cs:7:22:7:23 | access to local variable c1 | +| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:22:7:36 | After Char* c1 = ... | | VarDecls.cs:7:27:7:33 | access to parameter strings | VarDecls.cs:7:35:7:35 | 0 | -| VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:22:7:36 | Char* c1 = ... | -| VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:7:27:7:36 | (...) ... | +| VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:27:7:36 | After (...) ... | +| VarDecls.cs:7:27:7:36 | After (...) ... | VarDecls.cs:7:22:7:36 | Char* c1 = ... | +| VarDecls.cs:7:27:7:36 | After access to array element | VarDecls.cs:7:27:7:36 | (...) ... | +| VarDecls.cs:7:27:7:36 | Before (...) ... | VarDecls.cs:7:27:7:36 | Before access to array element | +| VarDecls.cs:7:27:7:36 | Before access to array element | VarDecls.cs:7:27:7:33 | access to parameter strings | +| VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:7:27:7:36 | After access to array element | | VarDecls.cs:7:35:7:35 | 0 | VarDecls.cs:7:27:7:36 | access to array element | -| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:8:9:10:9 | {...} | +| VarDecls.cs:7:39:7:40 | access to local variable c2 | VarDecls.cs:7:44:7:53 | Before (...) ... | +| VarDecls.cs:7:39:7:53 | After Char* c2 = ... | VarDecls.cs:8:9:10:9 | {...} | +| VarDecls.cs:7:39:7:53 | Before Char* c2 = ... | VarDecls.cs:7:39:7:40 | access to local variable c2 | +| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:7:39:7:53 | After Char* c2 = ... | | VarDecls.cs:7:44:7:50 | access to parameter strings | VarDecls.cs:7:52:7:52 | 1 | -| VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:39:7:53 | Char* c2 = ... | -| VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:7:44:7:53 | (...) ... | +| VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:44:7:53 | After (...) ... | +| VarDecls.cs:7:44:7:53 | After (...) ... | VarDecls.cs:7:39:7:53 | Char* c2 = ... | +| VarDecls.cs:7:44:7:53 | After access to array element | VarDecls.cs:7:44:7:53 | (...) ... | +| VarDecls.cs:7:44:7:53 | Before (...) ... | VarDecls.cs:7:44:7:53 | Before access to array element | +| VarDecls.cs:7:44:7:53 | Before access to array element | VarDecls.cs:7:44:7:50 | access to parameter strings | +| VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:7:44:7:53 | After access to array element | | VarDecls.cs:7:52:7:52 | 1 | VarDecls.cs:7:44:7:53 | access to array element | -| VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:9:27:9:28 | access to local variable c1 | -| VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:5:18:5:19 | exit M1 (normal) | -| VarDecls.cs:9:20:9:28 | (...) ... | VarDecls.cs:9:13:9:29 | return ...; | +| VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:9:13:9:29 | Before return ...; | +| VarDecls.cs:9:13:9:29 | Before return ...; | VarDecls.cs:9:20:9:28 | Before (...) ... | +| VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:5:18:5:19 | Normal Exit | +| VarDecls.cs:9:20:9:28 | (...) ... | VarDecls.cs:9:20:9:28 | After (...) ... | +| VarDecls.cs:9:20:9:28 | After (...) ... | VarDecls.cs:9:13:9:29 | return ...; | +| VarDecls.cs:9:20:9:28 | Before (...) ... | VarDecls.cs:9:27:9:28 | access to local variable c1 | | VarDecls.cs:9:27:9:28 | access to local variable c1 | VarDecls.cs:9:20:9:28 | (...) ... | -| VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:14:5:17:5 | {...} | -| VarDecls.cs:13:12:13:13 | exit M2 (normal) | VarDecls.cs:13:12:13:13 | exit M2 | +| VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:14:5:17:5 | {...} | +| VarDecls.cs:13:12:13:13 | Normal Exit | VarDecls.cs:13:12:13:13 | Exit | | VarDecls.cs:14:5:17:5 | {...} | VarDecls.cs:15:9:15:30 | ... ...; | -| VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:15:21:15:21 | access to parameter s | -| VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:29:15:29 | access to parameter s | +| VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:15:16:15:21 | Before String s1 = ... | +| VarDecls.cs:15:9:15:30 | After ... ...; | VarDecls.cs:16:9:16:23 | Before return ...; | +| VarDecls.cs:15:16:15:17 | access to local variable s1 | VarDecls.cs:15:21:15:21 | access to parameter s | +| VarDecls.cs:15:16:15:21 | After String s1 = ... | VarDecls.cs:15:24:15:29 | Before String s2 = ... | +| VarDecls.cs:15:16:15:21 | Before String s1 = ... | VarDecls.cs:15:16:15:17 | access to local variable s1 | +| VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:16:15:21 | After String s1 = ... | | VarDecls.cs:15:21:15:21 | access to parameter s | VarDecls.cs:15:16:15:21 | String s1 = ... | -| VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:16:16:16:17 | access to local variable s1 | +| VarDecls.cs:15:24:15:25 | access to local variable s2 | VarDecls.cs:15:29:15:29 | access to parameter s | +| VarDecls.cs:15:24:15:29 | After String s2 = ... | VarDecls.cs:15:9:15:30 | After ... ...; | +| VarDecls.cs:15:24:15:29 | Before String s2 = ... | VarDecls.cs:15:24:15:25 | access to local variable s2 | +| VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:15:24:15:29 | After String s2 = ... | | VarDecls.cs:15:29:15:29 | access to parameter s | VarDecls.cs:15:24:15:29 | String s2 = ... | -| VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:13:12:13:13 | exit M2 (normal) | +| VarDecls.cs:16:9:16:23 | Before return ...; | VarDecls.cs:16:16:16:22 | Before ... + ... | +| VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:13:12:13:13 | Normal Exit | | VarDecls.cs:16:16:16:17 | access to local variable s1 | VarDecls.cs:16:21:16:22 | access to local variable s2 | -| VarDecls.cs:16:16:16:22 | ... + ... | VarDecls.cs:16:9:16:23 | return ...; | +| VarDecls.cs:16:16:16:22 | ... + ... | VarDecls.cs:16:16:16:22 | After ... + ... | +| VarDecls.cs:16:16:16:22 | After ... + ... | VarDecls.cs:16:9:16:23 | return ...; | +| VarDecls.cs:16:16:16:22 | Before ... + ... | VarDecls.cs:16:16:16:17 | access to local variable s1 | | VarDecls.cs:16:21:16:22 | access to local variable s2 | VarDecls.cs:16:16:16:22 | ... + ... | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:20:5:26:5 | {...} | -| VarDecls.cs:19:7:19:8 | exit M3 (normal) | VarDecls.cs:19:7:19:8 | exit M3 | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:20:5:26:5 | {...} | +| VarDecls.cs:19:7:19:8 | Normal Exit | VarDecls.cs:19:7:19:8 | Exit | | VarDecls.cs:20:5:26:5 | {...} | VarDecls.cs:21:9:22:13 | using (...) {...} | -| VarDecls.cs:21:9:22:13 | using (...) {...} | VarDecls.cs:21:16:21:22 | object creation of type C | -| VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:22:13:22:13 | ; | -| VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:24:9:25:29 | using (...) {...} | -| VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:24:22:24:28 | object creation of type C | -| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:35:24:41 | object creation of type C | -| VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:18:24:28 | C x = ... | -| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:25:20:25:20 | access to parameter b | -| VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:31:24:41 | C y = ... | -| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:19:7:19:8 | exit M3 (normal) | -| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:24:25:24 | access to local variable x | -| 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 | 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:21:9:22:13 | After using (...) {...} | VarDecls.cs:24:9:25:29 | using (...) {...} | +| VarDecls.cs:21:9:22:13 | using (...) {...} | VarDecls.cs:21:16:21:22 | Before object creation of type C | +| VarDecls.cs:21:16:21:22 | After object creation of type C | VarDecls.cs:22:13:22:13 | ; | +| VarDecls.cs:21:16:21:22 | Before object creation of type C | VarDecls.cs:21:16:21:22 | object creation of type C | +| VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:21:16:21:22 | After object creation of type C | +| VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:21:9:22:13 | After using (...) {...} | +| VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:24:18:24:28 | Before C x = ... | +| VarDecls.cs:24:18:24:18 | access to local variable x | VarDecls.cs:24:22:24:28 | Before object creation of type C | +| VarDecls.cs:24:18:24:28 | After C x = ... | VarDecls.cs:24:31:24:41 | Before C y = ... | +| VarDecls.cs:24:18:24:28 | Before C x = ... | VarDecls.cs:24:18:24:18 | access to local variable x | +| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:18:24:28 | After C x = ... | +| VarDecls.cs:24:22:24:28 | After object creation of type C | VarDecls.cs:24:18:24:28 | C x = ... | +| VarDecls.cs:24:22:24:28 | Before object creation of type C | VarDecls.cs:24:22:24:28 | object creation of type C | +| VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:22:24:28 | After object creation of type C | +| VarDecls.cs:24:31:24:31 | access to local variable y | VarDecls.cs:24:35:24:41 | Before object creation of type C | +| VarDecls.cs:24:31:24:41 | After C y = ... | VarDecls.cs:25:13:25:29 | Before return ...; | +| VarDecls.cs:24:31:24:41 | Before C y = ... | VarDecls.cs:24:31:24:31 | access to local variable y | +| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:24:31:24:41 | After C y = ... | +| VarDecls.cs:24:35:24:41 | After object creation of type C | VarDecls.cs:24:31:24:41 | C y = ... | +| VarDecls.cs:24:35:24:41 | Before object creation of type C | VarDecls.cs:24:35:24:41 | object creation of type C | +| VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:35:24:41 | After object creation of type C | +| VarDecls.cs:25:13:25:29 | Before return ...; | VarDecls.cs:25:20:25:28 | ... ? ... : ... | +| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:19:7:19:8 | Normal Exit | +| VarDecls.cs:25:20:25:20 | After access to parameter b [false] | VarDecls.cs:25:28:25:28 | access to local variable y | +| VarDecls.cs:25:20:25:20 | After access to parameter b [true] | VarDecls.cs:25:24:25:24 | access to local variable x | +| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | +| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | +| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:20:25:20 | access to parameter b | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:13:25:29 | return ...; | +| VarDecls.cs:28:11:28:11 | After call to constructor Object | VarDecls.cs:28:11:28:11 | {...} | +| VarDecls.cs:28:11:28:11 | After call to method | VarDecls.cs:28:11:28:11 | Before call to constructor Object | +| VarDecls.cs:28:11:28:11 | Before call to constructor Object | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | Before call to method | VarDecls.cs:28:11:28:11 | this access | +| VarDecls.cs:28:11:28:11 | Entry | VarDecls.cs:28:11:28:11 | Before call to method | +| VarDecls.cs:28:11:28:11 | Normal Exit | VarDecls.cs:28:11:28:11 | Exit | +| VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | After call to constructor Object | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | After call to method | | 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 | -| VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:6:5:35:5 | {...} | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | exit Main | +| VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | Normal Exit | +| VarDecls.cs:28:41:28:47 | Entry | VarDecls.cs:28:51:28:53 | {...} | +| VarDecls.cs:28:41:28:47 | Normal Exit | VarDecls.cs:28:41:28:47 | Exit | +| VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:41:28:47 | Normal Exit | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:6:5:35:5 | {...} | +| cflow.cs:5:17:5:20 | Normal Exit | cflow.cs:5:17:5:20 | Exit | +| cflow.cs:6:5:35:5 | After {...} | cflow.cs:5:17:5:20 | Normal Exit | | cflow.cs:6:5:35:5 | {...} | cflow.cs:7:9:7:28 | ... ...; | -| cflow.cs:7:9:7:28 | ... ...; | cflow.cs:7:17:7:20 | access to parameter args | -| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:9:9:9:40 | ...; | +| cflow.cs:7:9:7:28 | ... ...; | cflow.cs:7:13:7:27 | Before Int32 a = ... | +| cflow.cs:7:9:7:28 | After ... ...; | cflow.cs:9:9:9:40 | ...; | +| cflow.cs:7:13:7:13 | access to local variable a | cflow.cs:7:17:7:27 | Before access to property Length | +| cflow.cs:7:13:7:27 | After Int32 a = ... | cflow.cs:7:9:7:28 | After ... ...; | +| cflow.cs:7:13:7:27 | Before Int32 a = ... | cflow.cs:7:13:7:13 | access to local variable a | +| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:7:13:7:27 | After Int32 a = ... | | cflow.cs:7:17:7:20 | access to parameter args | cflow.cs:7:17:7:27 | access to property Length | -| cflow.cs:7:17:7:27 | access to property Length | cflow.cs:7:13:7:27 | Int32 a = ... | -| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:11:9:12:49 | if (...) ... | -| cflow.cs:9:9:9:40 | ...; | cflow.cs:9:13:9:29 | object creation of type ControlFlow | -| cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:38:9:38 | access to local variable a | -| cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:9:9:9:39 | ... = ... | +| cflow.cs:7:17:7:27 | After access to property Length | cflow.cs:7:13:7:27 | Int32 a = ... | +| cflow.cs:7:17:7:27 | Before access to property Length | cflow.cs:7:17:7:20 | access to parameter args | +| cflow.cs:7:17:7:27 | access to property Length | cflow.cs:7:17:7:27 | After access to property Length | +| cflow.cs:9:9:9:9 | access to local variable a | cflow.cs:9:13:9:39 | Before call to method Switch | +| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:9:9:9:39 | After ... = ... | +| cflow.cs:9:9:9:39 | After ... = ... | cflow.cs:9:9:9:40 | After ...; | +| cflow.cs:9:9:9:39 | Before ... = ... | cflow.cs:9:9:9:9 | access to local variable a | +| cflow.cs:9:9:9:40 | ...; | cflow.cs:9:9:9:39 | Before ... = ... | +| cflow.cs:9:9:9:40 | After ...; | cflow.cs:11:9:12:49 | if (...) ... | +| cflow.cs:9:13:9:29 | After object creation of type ControlFlow | cflow.cs:9:38:9:38 | access to local variable a | +| cflow.cs:9:13:9:29 | Before object creation of type ControlFlow | cflow.cs:9:13:9:29 | object creation of type ControlFlow | +| cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:13:9:29 | After object creation of type ControlFlow | +| cflow.cs:9:13:9:39 | After call to method Switch | cflow.cs:9:9:9:39 | ... = ... | +| cflow.cs:9:13:9:39 | Before call to method Switch | cflow.cs:9:13:9:29 | Before object creation of type ControlFlow | +| cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:9:13:9:39 | After call to method Switch | | cflow.cs:9:38:9:38 | access to local variable a | cflow.cs:9:13:9:39 | call to method Switch | -| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:11:13:11:13 | access to local variable a | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:14:9:17:9 | while (...) ... | +| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:11:13:11:17 | Before ... > ... | | cflow.cs:11:13:11:13 | access to local variable a | cflow.cs:11:17:11:17 | 3 | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:14:9:17:9 | while (...) ... | +| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:11:13:11:17 | After ... > ... [true] | cflow.cs:12:13:12:49 | ...; | +| cflow.cs:11:13:11:17 | Before ... > ... | cflow.cs:11:13:11:13 | access to local variable a | | cflow.cs:11:17:11:17 | 3 | cflow.cs:11:13:11:17 | ... > ... | -| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:31:12:47 | "more than a few" | +| cflow.cs:12:13:12:48 | After call to method WriteLine | cflow.cs:12:13:12:49 | After ...; | +| cflow.cs:12:13:12:48 | Before call to method WriteLine | cflow.cs:12:31:12:47 | "more than a few" | +| cflow.cs:12:13:12:48 | call to method WriteLine | cflow.cs:12:13:12:48 | After call to method WriteLine | +| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:13:12:48 | Before call to method WriteLine | | cflow.cs:12:31:12:47 | "more than a few" | cflow.cs:12:13:12:48 | call to method WriteLine | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:16:14:16 | access to local variable a | +| cflow.cs:14:9:17:9 | After while (...) ... | cflow.cs:19:9:22:25 | do ... while (...); | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | Before ... > ... | +| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | | cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:20:14:20 | 0 | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:19:9:22:25 | do ... while (...); | +| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:14:9:17:9 | After while (...) ... | +| cflow.cs:14:16:14:20 | After ... > ... [true] | cflow.cs:15:9:17:9 | {...} | +| cflow.cs:14:16:14:20 | Before ... > ... | cflow.cs:14:16:14:16 | access to local variable a | | cflow.cs:14:20:14:20 | 0 | cflow.cs:14:16:14:20 | ... > ... | | cflow.cs:15:9:17:9 | {...} | cflow.cs:16:13:16:41 | ...; | -| cflow.cs:16:13:16:41 | ...; | cflow.cs:16:31:16:31 | access to local variable a | +| cflow.cs:16:13:16:40 | After call to method WriteLine | cflow.cs:16:13:16:41 | After ...; | +| cflow.cs:16:13:16:40 | Before call to method WriteLine | cflow.cs:16:31:16:39 | Before ... * ... | +| cflow.cs:16:13:16:40 | call to method WriteLine | cflow.cs:16:13:16:40 | After call to method WriteLine | +| cflow.cs:16:13:16:41 | ...; | cflow.cs:16:13:16:40 | Before call to method WriteLine | +| cflow.cs:16:13:16:41 | After ...; | cflow.cs:15:9:17:9 | After {...} | | cflow.cs:16:31:16:31 | access to local variable a | cflow.cs:16:31:16:33 | ...-- | -| cflow.cs:16:31:16:33 | ...-- | cflow.cs:16:37:16:39 | 100 | -| cflow.cs:16:31:16:39 | ... * ... | cflow.cs:16:13:16:40 | call to method WriteLine | +| cflow.cs:16:31:16:33 | ...-- | cflow.cs:16:31:16:33 | After ...-- | +| cflow.cs:16:31:16:33 | After ...-- | cflow.cs:16:37:16:39 | 100 | +| cflow.cs:16:31:16:33 | Before ...-- | cflow.cs:16:31:16:31 | access to local variable a | +| cflow.cs:16:31:16:39 | ... * ... | cflow.cs:16:31:16:39 | After ... * ... | +| cflow.cs:16:31:16:39 | After ... * ... | cflow.cs:16:13:16:40 | call to method WriteLine | +| cflow.cs:16:31:16:39 | Before ... * ... | cflow.cs:16:31:16:33 | Before ...-- | | cflow.cs:16:37:16:39 | 100 | cflow.cs:16:31:16:39 | ... * ... | +| cflow.cs:19:9:22:25 | After do ... while (...); | cflow.cs:24:9:34:9 | for (...;...;...) ... | +| cflow.cs:19:9:22:25 | [LoopHeader] do ... while (...); | cflow.cs:22:18:22:23 | Before ... < ... | | cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:20:9:22:9 | After {...} | cflow.cs:19:9:22:25 | [LoopHeader] do ... while (...); | | cflow.cs:20:9:22:9 | {...} | cflow.cs:21:13:21:36 | ...; | -| cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:22:18:22:18 | access to local variable a | -| cflow.cs:21:13:21:36 | ...; | cflow.cs:21:32:21:32 | access to local variable a | -| cflow.cs:21:31:21:34 | -... | cflow.cs:21:13:21:35 | call to method WriteLine | +| cflow.cs:21:13:21:35 | After call to method WriteLine | cflow.cs:21:13:21:36 | After ...; | +| cflow.cs:21:13:21:35 | Before call to method WriteLine | cflow.cs:21:31:21:34 | Before -... | +| cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:21:13:21:35 | After call to method WriteLine | +| cflow.cs:21:13:21:36 | ...; | cflow.cs:21:13:21:35 | Before call to method WriteLine | +| cflow.cs:21:13:21:36 | After ...; | cflow.cs:20:9:22:9 | After {...} | +| cflow.cs:21:31:21:34 | -... | cflow.cs:21:31:21:34 | After -... | +| cflow.cs:21:31:21:34 | After -... | cflow.cs:21:13:21:35 | call to method WriteLine | +| cflow.cs:21:31:21:34 | Before -... | cflow.cs:21:32:21:34 | Before ...++ | | cflow.cs:21:32:21:32 | access to local variable a | cflow.cs:21:32:21:34 | ...++ | -| cflow.cs:21:32:21:34 | ...++ | cflow.cs:21:31:21:34 | -... | +| cflow.cs:21:32:21:34 | ...++ | cflow.cs:21:32:21:34 | After ...++ | +| cflow.cs:21:32:21:34 | After ...++ | cflow.cs:21:31:21:34 | -... | +| cflow.cs:21:32:21:34 | Before ...++ | cflow.cs:21:32:21:32 | access to local variable a | | cflow.cs:22:18:22:18 | access to local variable a | cflow.cs:22:22:22:23 | 10 | -| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | +| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:19:9:22:25 | After do ... while (...); | +| cflow.cs:22:18:22:23 | Before ... < ... | cflow.cs:22:18:22:18 | access to local variable a | | cflow.cs:22:22:22:23 | 10 | cflow.cs:22:18:22:23 | ... < ... | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:22:24:22 | 1 | -| cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:25:24:25 | access to local variable i | +| cflow.cs:24:9:34:9 | After for (...;...;...) ... | cflow.cs:6:5:35:5 | After {...} | +| cflow.cs:24:9:34:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:24:34:24:36 | Before ...++ | +| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:18:24:22 | Before Int32 i = ... | +| cflow.cs:24:18:24:18 | access to local variable i | cflow.cs:24:22:24:22 | 1 | +| cflow.cs:24:18:24:22 | After Int32 i = ... | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:24:18:24:22 | Before Int32 i = ... | cflow.cs:24:18:24:18 | access to local variable i | +| cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:18:24:22 | After Int32 i = ... | | cflow.cs:24:22:24:22 | 1 | cflow.cs:24:18:24:22 | Int32 i = ... | | cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:30:24:31 | 20 | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:25:9:34:9 | {...} | +| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:24:9:34:9 | After for (...;...;...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:25:9:34:9 | {...} | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:25 | access to local variable i | | cflow.cs:24:30:24:31 | 20 | cflow.cs:24:25:24:31 | ... <= ... | | cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:24:34:24:36 | ...++ | +| cflow.cs:24:34:24:36 | ...++ | cflow.cs:24:34:24:36 | After ...++ | +| cflow.cs:24:34:24:36 | Before ...++ | cflow.cs:24:34:24:34 | access to local variable i | +| cflow.cs:25:9:34:9 | After {...} | cflow.cs:24:9:34:9 | [LoopHeader] for (...;...;...) ... | | cflow.cs:25:9:34:9 | {...} | cflow.cs:26:13:33:37 | if (...) ... | -| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:26:17:26:17 | access to local variable i | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:25:9:34:9 | After {...} | +| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:26:17:26:40 | ... && ... | | cflow.cs:26:17:26:17 | access to local variable i | cflow.cs:26:21:26:21 | 3 | -| cflow.cs:26:17:26:21 | ... % ... | cflow.cs:26:26:26:26 | 0 | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:27:17:27:46 | ...; | +| cflow.cs:26:17:26:21 | ... % ... | cflow.cs:26:17:26:21 | After ... % ... | +| cflow.cs:26:17:26:21 | After ... % ... | cflow.cs:26:26:26:26 | 0 | +| cflow.cs:26:17:26:21 | Before ... % ... | cflow.cs:26:17:26:17 | access to local variable i | +| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:31:26:40 | Before ... == ... | +| cflow.cs:26:17:26:26 | Before ... == ... | cflow.cs:26:17:26:21 | Before ... % ... | +| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:26:17:26:26 | Before ... == ... | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:18:33:37 | if (...) ... | +| cflow.cs:26:17:26:40 | After ... && ... [true] | cflow.cs:27:17:27:46 | ...; | | cflow.cs:26:21:26:21 | 3 | cflow.cs:26:17:26:21 | ... % ... | | cflow.cs:26:26:26:26 | 0 | cflow.cs:26:17:26:26 | ... == ... | | cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:35:26:35 | 5 | -| cflow.cs:26:31:26:35 | ... % ... | cflow.cs:26:40:26:40 | 0 | -| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:17:26:40 | [true] ... && ... | +| cflow.cs:26:31:26:35 | ... % ... | cflow.cs:26:31:26:35 | After ... % ... | +| cflow.cs:26:31:26:35 | After ... % ... | cflow.cs:26:40:26:40 | 0 | +| cflow.cs:26:31:26:35 | Before ... % ... | cflow.cs:26:31:26:31 | access to local variable i | +| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:26:17:26:40 | After ... && ... [true] | +| cflow.cs:26:31:26:40 | Before ... == ... | cflow.cs:26:31:26:35 | Before ... % ... | | cflow.cs:26:35:26:35 | 5 | cflow.cs:26:31:26:35 | ... % ... | | cflow.cs:26:40:26:40 | 0 | cflow.cs:26:31:26:40 | ... == ... | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:35:27:44 | "FizzBuzz" | +| cflow.cs:27:17:27:45 | After call to method WriteLine | cflow.cs:27:17:27:46 | After ...; | +| cflow.cs:27:17:27:45 | Before call to method WriteLine | cflow.cs:27:35:27:44 | "FizzBuzz" | +| cflow.cs:27:17:27:45 | call to method WriteLine | cflow.cs:27:17:27:45 | After call to method WriteLine | +| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:17:27:45 | Before call to method WriteLine | | cflow.cs:27:35:27:44 | "FizzBuzz" | cflow.cs:27:17:27:45 | call to method WriteLine | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:28:22:28:22 | access to local variable i | +| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:28:22:28:31 | Before ... == ... | | cflow.cs:28:22:28:22 | access to local variable i | cflow.cs:28:26:28:26 | 3 | -| cflow.cs:28:22:28:26 | ... % ... | cflow.cs:28:31:28:31 | 0 | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:30:18:33:37 | if (...) ... | +| cflow.cs:28:22:28:26 | ... % ... | cflow.cs:28:22:28:26 | After ... % ... | +| cflow.cs:28:22:28:26 | After ... % ... | cflow.cs:28:31:28:31 | 0 | +| cflow.cs:28:22:28:26 | Before ... % ... | cflow.cs:28:22:28:22 | access to local variable i | +| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:18:33:37 | if (...) ... | +| cflow.cs:28:22:28:31 | After ... == ... [true] | cflow.cs:29:17:29:42 | ...; | +| cflow.cs:28:22:28:31 | Before ... == ... | cflow.cs:28:22:28:26 | Before ... % ... | | cflow.cs:28:26:28:26 | 3 | cflow.cs:28:22:28:26 | ... % ... | | cflow.cs:28:31:28:31 | 0 | cflow.cs:28:22:28:31 | ... == ... | -| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:35:29:40 | "Fizz" | +| cflow.cs:29:17:29:41 | After call to method WriteLine | cflow.cs:29:17:29:42 | After ...; | +| cflow.cs:29:17:29:41 | Before call to method WriteLine | cflow.cs:29:35:29:40 | "Fizz" | +| cflow.cs:29:17:29:41 | call to method WriteLine | cflow.cs:29:17:29:41 | After call to method WriteLine | +| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:17:29:41 | Before call to method WriteLine | | cflow.cs:29:35:29:40 | "Fizz" | cflow.cs:29:17:29:41 | call to method WriteLine | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:30:22:30:22 | access to local variable i | +| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:30:22:30:31 | Before ... == ... | | cflow.cs:30:22:30:22 | access to local variable i | cflow.cs:30:26:30:26 | 5 | -| cflow.cs:30:22:30:26 | ... % ... | cflow.cs:30:31:30:31 | 0 | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:33:17:33:37 | ...; | +| cflow.cs:30:22:30:26 | ... % ... | cflow.cs:30:22:30:26 | After ... % ... | +| cflow.cs:30:22:30:26 | After ... % ... | cflow.cs:30:31:30:31 | 0 | +| cflow.cs:30:22:30:26 | Before ... % ... | cflow.cs:30:22:30:22 | access to local variable i | +| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:33:17:33:37 | ...; | +| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:31:17:31:42 | ...; | +| cflow.cs:30:22:30:31 | Before ... == ... | cflow.cs:30:22:30:26 | Before ... % ... | | cflow.cs:30:26:30:26 | 5 | cflow.cs:30:22:30:26 | ... % ... | | cflow.cs:30:31:30:31 | 0 | cflow.cs:30:22:30:31 | ... == ... | -| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:35:31:40 | "Buzz" | +| cflow.cs:31:17:31:41 | After call to method WriteLine | cflow.cs:31:17:31:42 | After ...; | +| cflow.cs:31:17:31:41 | Before call to method WriteLine | cflow.cs:31:35:31:40 | "Buzz" | +| cflow.cs:31:17:31:41 | call to method WriteLine | cflow.cs:31:17:31:41 | After call to method WriteLine | +| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:17:31:41 | Before call to method WriteLine | | cflow.cs:31:35:31:40 | "Buzz" | cflow.cs:31:17:31:41 | call to method WriteLine | -| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:35:33:35 | access to local variable i | +| cflow.cs:33:17:33:36 | After call to method WriteLine | cflow.cs:33:17:33:37 | After ...; | +| cflow.cs:33:17:33:36 | Before call to method WriteLine | cflow.cs:33:35:33:35 | access to local variable i | +| cflow.cs:33:17:33:36 | call to method WriteLine | cflow.cs:33:17:33:36 | After call to method WriteLine | +| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:17:33:36 | Before call to method WriteLine | | cflow.cs:33:35:33:35 | access to local variable i | cflow.cs:33:17:33:36 | call to method WriteLine | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:38:5:68:5 | {...} | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:38:5:68:5 | {...} | | cflow.cs:38:5:68:5 | {...} | cflow.cs:39:9:50:9 | switch (...) {...} | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} | | cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:39:17:39:17 | access to parameter a | | cflow.cs:39:17:39:17 | access to parameter a | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:18:41:18 | 1 | +| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:41:18:41:18 | 1 | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | case ...: | +| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | After case ...: [match] | +| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | After case ...: [no-match] | | cflow.cs:41:18:41:18 | 1 | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:41:18:41:18 | 1 | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:43:27:43:27 | 2 | -| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:35:42:37 | "1" | +| cflow.cs:42:17:42:38 | After call to method WriteLine | cflow.cs:42:17:42:39 | After ...; | +| cflow.cs:42:17:42:38 | Before call to method WriteLine | cflow.cs:42:35:42:37 | "1" | +| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:42:17:42:38 | After call to method WriteLine | +| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:17:42:38 | Before call to method WriteLine | +| cflow.cs:42:17:42:39 | After ...; | cflow.cs:43:17:43:28 | Before goto case ...; | | cflow.cs:42:35:42:37 | "1" | cflow.cs:42:17:42:38 | call to method WriteLine | +| cflow.cs:43:17:43:28 | Before goto case ...; | cflow.cs:43:27:43:27 | 2 | | cflow.cs:43:27:43:27 | 2 | cflow.cs:43:17:43:28 | goto case ...; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | +| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:44:18:44:18 | 2 | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | case ...: | +| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | After case ...: [no-match] | | cflow.cs:44:18:44:18 | 2 | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:44:18:44:18 | 2 | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:46:27:46:27 | 1 | -| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:35:45:37 | "2" | +| cflow.cs:45:17:45:38 | After call to method WriteLine | cflow.cs:45:17:45:39 | After ...; | +| cflow.cs:45:17:45:38 | Before call to method WriteLine | cflow.cs:45:35:45:37 | "2" | +| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:45:17:45:38 | After call to method WriteLine | +| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:17:45:38 | Before call to method WriteLine | +| cflow.cs:45:17:45:39 | After ...; | cflow.cs:46:17:46:28 | Before goto case ...; | | cflow.cs:45:35:45:37 | "2" | cflow.cs:45:17:45:38 | call to method WriteLine | +| cflow.cs:46:17:46:28 | Before goto case ...; | cflow.cs:46:27:46:27 | 1 | | cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | +| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:47:18:47:18 | 3 | +| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | After case ...: [no-match] | | cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:47:18:47:18 | 3 | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:49:17:49:22 | break; | -| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:35:48:37 | "3" | +| cflow.cs:48:17:48:38 | After call to method WriteLine | cflow.cs:48:17:48:39 | After ...; | +| cflow.cs:48:17:48:38 | Before call to method WriteLine | cflow.cs:48:35:48:37 | "3" | +| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:48:17:48:38 | After call to method WriteLine | +| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:17:48:38 | Before call to method WriteLine | +| cflow.cs:48:17:48:39 | After ...; | cflow.cs:49:17:49:22 | Before break; | | cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:38 | call to method WriteLine | +| cflow.cs:49:17:49:22 | Before break; | cflow.cs:49:17:49:22 | break; | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} | | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:17:51:17 | access to parameter a | | cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:53:13:53:20 | case ...: | -| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:18:53:19 | 42 | +| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:53:18:53:19 | 42 | +| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:56:13:56:20 | default: | +| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:13:53:20 | After case ...: [no-match] | | cflow.cs:53:18:53:19 | 42 | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:53:18:53:19 | 42 | cflow.cs:56:13:56:20 | default: | -| cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:55:17:55:22 | break; | -| cflow.cs:54:17:54:48 | ...; | cflow.cs:54:35:54:46 | "The answer" | +| cflow.cs:54:17:54:47 | After call to method WriteLine | cflow.cs:54:17:54:48 | After ...; | +| cflow.cs:54:17:54:47 | Before call to method WriteLine | cflow.cs:54:35:54:46 | "The answer" | +| cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:54:17:54:47 | After call to method WriteLine | +| cflow.cs:54:17:54:48 | ...; | cflow.cs:54:17:54:47 | Before call to method WriteLine | +| cflow.cs:54:17:54:48 | After ...; | cflow.cs:55:17:55:22 | Before break; | | cflow.cs:54:35:54:46 | "The answer" | cflow.cs:54:17:54:47 | call to method WriteLine | -| cflow.cs:56:13:56:20 | default: | cflow.cs:57:17:57:52 | ...; | -| cflow.cs:57:17:57:51 | call to method WriteLine | cflow.cs:58:17:58:22 | break; | -| cflow.cs:57:17:57:52 | ...; | cflow.cs:57:35:57:50 | "Not the answer" | +| cflow.cs:55:17:55:22 | Before break; | cflow.cs:55:17:55:22 | break; | +| cflow.cs:56:13:56:20 | After default: [match] | cflow.cs:57:17:57:52 | ...; | +| cflow.cs:56:13:56:20 | default: | cflow.cs:56:13:56:20 | After default: [match] | +| cflow.cs:57:17:57:51 | After call to method WriteLine | cflow.cs:57:17:57:52 | After ...; | +| cflow.cs:57:17:57:51 | Before call to method WriteLine | cflow.cs:57:35:57:50 | "Not the answer" | +| cflow.cs:57:17:57:51 | call to method WriteLine | cflow.cs:57:17:57:51 | After call to method WriteLine | +| cflow.cs:57:17:57:52 | ...; | cflow.cs:57:17:57:51 | Before call to method WriteLine | +| cflow.cs:57:17:57:52 | After ...; | cflow.cs:58:17:58:22 | Before break; | | cflow.cs:57:35:57:50 | "Not the answer" | cflow.cs:57:17:57:51 | call to method WriteLine | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:27:60:31 | this access | -| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:62:13:62:19 | case ...: | -| cflow.cs:60:27:60:31 | access to field Field | cflow.cs:60:17:60:32 | call to method Parse | +| cflow.cs:58:17:58:22 | Before break; | cflow.cs:58:17:58:22 | break; | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:67:9:67:17 | Before return ...; | +| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:17:60:32 | Before call to method Parse | +| cflow.cs:60:17:60:32 | After call to method Parse | cflow.cs:62:13:62:19 | case ...: | +| cflow.cs:60:17:60:32 | Before call to method Parse | cflow.cs:60:27:60:31 | Before access to field Field | +| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:60:17:60:32 | After call to method Parse | +| cflow.cs:60:27:60:31 | After access to field Field | cflow.cs:60:17:60:32 | call to method Parse | +| cflow.cs:60:27:60:31 | Before access to field Field | cflow.cs:60:27:60:31 | this access | +| cflow.cs:60:27:60:31 | access to field Field | cflow.cs:60:27:60:31 | After access to field Field | | cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | access to field Field | -| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:18:62:18 | 0 | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:62:18:62:18 | 0 | +| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:13:62:19 | After case ...: [no-match] | | cflow.cs:62:18:62:18 | 0 | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:62:18:62:18 | 0 | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:23:63:27 | this access | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:65:17:65:22 | break; | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:32:63:33 | "" | +| cflow.cs:63:17:64:55 | After if (...) ... | cflow.cs:65:17:65:22 | Before break; | +| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | !... | +| cflow.cs:63:21:63:34 | !... | cflow.cs:63:23:63:33 | Before ... == ... | +| cflow.cs:63:21:63:34 | After !... [false] | cflow.cs:63:17:64:55 | After if (...) ... | +| cflow.cs:63:21:63:34 | After !... [true] | cflow.cs:64:21:64:55 | Before throw ...; | +| cflow.cs:63:23:63:27 | After access to field Field | cflow.cs:63:32:63:33 | "" | +| cflow.cs:63:23:63:27 | Before access to field Field | cflow.cs:63:23:63:27 | this access | +| cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:23:63:27 | After access to field Field | | cflow.cs:63:23:63:27 | this access | cflow.cs:63:23:63:27 | access to field Field | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [true] !... | +| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:63:21:63:34 | After !... [true] | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:63:21:63:34 | After !... [false] | +| cflow.cs:63:23:63:33 | Before ... == ... | cflow.cs:63:23:63:27 | Before access to field Field | | cflow.cs:63:32:63:33 | "" | cflow.cs:63:23:63:33 | ... == ... | -| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | exit Switch (abnormal) | -| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; | -| cflow.cs:67:9:67:17 | return ...; | cflow.cs:37:17:37:22 | exit Switch (normal) | +| cflow.cs:64:21:64:55 | Before throw ...; | cflow.cs:64:27:64:54 | Before object creation of type NullReferenceException | +| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | Exceptional Exit | +| cflow.cs:64:27:64:54 | After object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; | +| cflow.cs:64:27:64:54 | Before object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | +| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | After object creation of type NullReferenceException | +| cflow.cs:65:17:65:22 | Before break; | cflow.cs:65:17:65:22 | break; | +| cflow.cs:67:9:67:17 | Before return ...; | cflow.cs:67:16:67:16 | access to parameter a | +| cflow.cs:67:9:67:17 | return ...; | cflow.cs:37:17:37:22 | Normal Exit | | cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:9:67:17 | return ...; | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:71:5:82:5 | {...} | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | exit M | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:71:5:82:5 | {...} | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | Exit | | cflow.cs:71:5:82:5 | {...} | cflow.cs:72:9:73:19 | if (...) ... | -| cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:72:13:72:13 | access to parameter s | +| cflow.cs:72:9:73:19 | After if (...) ... | cflow.cs:74:9:81:9 | if (...) ... | +| cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:72:13:72:21 | Before ... == ... | | cflow.cs:72:13:72:13 | access to parameter s | cflow.cs:72:18:72:21 | null | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:73:13:73:19 | return ...; | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:74:9:81:9 | if (...) ... | +| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | After ... == ... [false] | +| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | After ... == ... [true] | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:72:9:73:19 | After if (...) ... | +| cflow.cs:72:13:72:21 | After ... == ... [true] | cflow.cs:73:13:73:19 | Before return ...; | +| cflow.cs:72:13:72:21 | Before ... == ... | cflow.cs:72:13:72:13 | access to parameter s | | cflow.cs:72:18:72:21 | null | cflow.cs:72:13:72:21 | ... == ... | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:74:13:74:13 | access to parameter s | +| cflow.cs:73:13:73:19 | Before return ...; | cflow.cs:73:13:73:19 | return ...; | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:71:5:82:5 | After {...} | +| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:74:13:74:24 | Before ... > ... | | cflow.cs:74:13:74:13 | access to parameter s | cflow.cs:74:13:74:20 | access to property Length | -| cflow.cs:74:13:74:20 | access to property Length | cflow.cs:74:24:74:24 | 0 | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:75:9:77:9 | {...} | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:79:9:81:9 | {...} | +| cflow.cs:74:13:74:20 | After access to property Length | cflow.cs:74:24:74:24 | 0 | +| cflow.cs:74:13:74:20 | Before access to property Length | cflow.cs:74:13:74:13 | access to parameter s | +| cflow.cs:74:13:74:20 | access to property Length | cflow.cs:74:13:74:20 | After access to property Length | +| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:74:13:74:24 | After ... > ... [false] | cflow.cs:79:9:81:9 | {...} | +| cflow.cs:74:13:74:24 | After ... > ... [true] | cflow.cs:75:9:77:9 | {...} | +| cflow.cs:74:13:74:24 | Before ... > ... | cflow.cs:74:13:74:20 | Before access to property Length | | cflow.cs:74:24:74:24 | 0 | cflow.cs:74:13:74:24 | ... > ... | | cflow.cs:75:9:77:9 | {...} | cflow.cs:76:13:76:33 | ...; | -| cflow.cs:76:13:76:33 | ...; | cflow.cs:76:31:76:31 | access to parameter s | +| cflow.cs:76:13:76:32 | After call to method WriteLine | cflow.cs:76:13:76:33 | After ...; | +| cflow.cs:76:13:76:32 | Before call to method WriteLine | cflow.cs:76:31:76:31 | access to parameter s | +| cflow.cs:76:13:76:32 | call to method WriteLine | cflow.cs:76:13:76:32 | After call to method WriteLine | +| cflow.cs:76:13:76:33 | ...; | cflow.cs:76:13:76:32 | Before call to method WriteLine | +| cflow.cs:76:13:76:33 | After ...; | cflow.cs:75:9:77:9 | After {...} | | cflow.cs:76:31:76:31 | access to parameter s | cflow.cs:76:13:76:32 | call to method WriteLine | | cflow.cs:79:9:81:9 | {...} | cflow.cs:80:13:80:48 | ...; | -| cflow.cs:80:13:80:48 | ...; | cflow.cs:80:31:80:46 | "" | +| cflow.cs:80:13:80:47 | After call to method WriteLine | cflow.cs:80:13:80:48 | After ...; | +| cflow.cs:80:13:80:47 | Before call to method WriteLine | cflow.cs:80:31:80:46 | "" | +| cflow.cs:80:13:80:47 | call to method WriteLine | cflow.cs:80:13:80:47 | After call to method WriteLine | +| cflow.cs:80:13:80:48 | ...; | cflow.cs:80:13:80:47 | Before call to method WriteLine | +| cflow.cs:80:13:80:48 | After ...; | cflow.cs:79:9:81:9 | After {...} | | cflow.cs:80:31:80:46 | "" | cflow.cs:80:13:80:47 | call to method WriteLine | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:85:5:88:5 | {...} | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | exit M2 | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:85:5:88:5 | {...} | +| cflow.cs:84:18:84:19 | Normal Exit | cflow.cs:84:18:84:19 | Exit | +| cflow.cs:85:5:88:5 | After {...} | cflow.cs:84:18:84:19 | Normal Exit | | cflow.cs:85:5:88:5 | {...} | cflow.cs:86:9:87:33 | if (...) ... | -| cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:86:13:86:13 | access to parameter s | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:85:5:88:5 | After {...} | +| cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:86:13:86:37 | ... && ... | | cflow.cs:86:13:86:13 | access to parameter s | cflow.cs:86:18:86:21 | null | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:37 | [false] ... && ... | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:26:86:26 | access to parameter s | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:87:13:87:33 | ...; | +| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | After ... != ... [false] | +| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | After ... != ... [true] | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:26:86:37 | Before ... > ... | +| cflow.cs:86:13:86:21 | Before ... != ... | cflow.cs:86:13:86:13 | access to parameter s | +| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:86:13:86:21 | Before ... != ... | +| cflow.cs:86:13:86:37 | After ... && ... [true] | cflow.cs:87:13:87:33 | ...; | | cflow.cs:86:18:86:21 | null | cflow.cs:86:13:86:21 | ... != ... | | cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:33 | access to property Length | -| cflow.cs:86:26:86:33 | access to property Length | cflow.cs:86:37:86:37 | 0 | -| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:13:86:37 | [true] ... && ... | +| cflow.cs:86:26:86:33 | After access to property Length | cflow.cs:86:37:86:37 | 0 | +| cflow.cs:86:26:86:33 | Before access to property Length | cflow.cs:86:26:86:26 | access to parameter s | +| cflow.cs:86:26:86:33 | access to property Length | cflow.cs:86:26:86:33 | After access to property Length | +| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | After ... > ... [true] | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:86:13:86:37 | After ... && ... [true] | +| cflow.cs:86:26:86:37 | Before ... > ... | cflow.cs:86:26:86:33 | Before access to property Length | | cflow.cs:86:37:86:37 | 0 | cflow.cs:86:26:86:37 | ... > ... | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:31:87:31 | access to parameter s | +| cflow.cs:87:13:87:32 | After call to method WriteLine | cflow.cs:87:13:87:33 | After ...; | +| cflow.cs:87:13:87:32 | Before call to method WriteLine | cflow.cs:87:31:87:31 | access to parameter s | +| cflow.cs:87:13:87:32 | call to method WriteLine | cflow.cs:87:13:87:32 | After call to method WriteLine | +| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:13:87:32 | Before call to method WriteLine | | cflow.cs:87:31:87:31 | access to parameter s | cflow.cs:87:13:87:32 | call to method WriteLine | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:91:5:104:5 | {...} | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:91:5:104:5 | {...} | +| cflow.cs:91:5:104:5 | After {...} | cflow.cs:90:18:90:19 | Normal Exit | | cflow.cs:91:5:104:5 | {...} | cflow.cs:92:9:93:49 | if (...) ... | -| cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:92:20:92:20 | access to parameter s | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:93:45:93:47 | "s" | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:94:9:94:29 | ...; | +| cflow.cs:92:9:93:49 | After if (...) ... | cflow.cs:94:9:94:29 | ...; | +| cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:92:13:92:27 | Before call to method Equals | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:92:9:93:49 | After if (...) ... | +| cflow.cs:92:13:92:27 | After call to method Equals [true] | cflow.cs:93:13:93:49 | Before throw ...; | +| cflow.cs:92:13:92:27 | Before call to method Equals | cflow.cs:92:20:92:20 | access to parameter s | +| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | After call to method Equals [false] | +| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | After call to method Equals [true] | | cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:92:23:92:26 | null | | cflow.cs:92:23:92:26 | null | cflow.cs:92:13:92:27 | call to method Equals | -| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | exit M3 (abnormal) | -| cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:13:93:49 | throw ...; | +| cflow.cs:93:13:93:49 | Before throw ...; | cflow.cs:93:19:93:48 | Before object creation of type ArgumentNullException | +| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | Exceptional Exit | +| cflow.cs:93:19:93:48 | After object creation of type ArgumentNullException | cflow.cs:93:13:93:49 | throw ...; | +| cflow.cs:93:19:93:48 | Before object creation of type ArgumentNullException | cflow.cs:93:45:93:47 | "s" | +| cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:19:93:48 | After object creation of type ArgumentNullException | | cflow.cs:93:45:93:47 | "s" | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | -| cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:96:9:97:55 | if (...) ... | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:94:27:94:27 | access to parameter s | +| cflow.cs:94:9:94:28 | After call to method WriteLine | cflow.cs:94:9:94:29 | After ...; | +| cflow.cs:94:9:94:28 | Before call to method WriteLine | cflow.cs:94:27:94:27 | access to parameter s | +| cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:94:9:94:28 | After call to method WriteLine | +| cflow.cs:94:9:94:29 | ...; | cflow.cs:94:9:94:28 | Before call to method WriteLine | +| cflow.cs:94:9:94:29 | After ...; | cflow.cs:96:9:97:55 | if (...) ... | | cflow.cs:94:27:94:27 | access to parameter s | cflow.cs:94:9:94:28 | call to method WriteLine | -| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:96:13:96:17 | this access | -| cflow.cs:96:13:96:17 | access to field Field | cflow.cs:96:22:96:25 | null | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:9:100:42 | if (...) ... | +| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:96:13:96:25 | Before ... != ... | +| cflow.cs:96:13:96:17 | After access to field Field | cflow.cs:96:22:96:25 | null | +| cflow.cs:96:13:96:17 | Before access to field Field | cflow.cs:96:13:96:17 | this access | +| cflow.cs:96:13:96:17 | access to field Field | cflow.cs:96:13:96:17 | After access to field Field | | cflow.cs:96:13:96:17 | this access | cflow.cs:96:13:96:17 | access to field Field | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:99:9:100:42 | if (...) ... | +| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:96:13:96:25 | After ... != ... [true] | cflow.cs:97:13:97:55 | ...; | +| cflow.cs:96:13:96:25 | Before ... != ... | cflow.cs:96:13:96:17 | Before access to field Field | | cflow.cs:96:22:96:25 | null | cflow.cs:96:13:96:25 | ... != ... | -| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:31:97:47 | object creation of type ControlFlow | -| cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:97:31:97:53 | access to field Field | -| cflow.cs:97:31:97:53 | access to field Field | cflow.cs:97:13:97:54 | call to method WriteLine | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:13:99:17 | this access | -| cflow.cs:99:13:99:17 | access to field Field | cflow.cs:99:22:99:25 | null | +| cflow.cs:97:13:97:54 | After call to method WriteLine | cflow.cs:97:13:97:55 | After ...; | +| cflow.cs:97:13:97:54 | Before call to method WriteLine | cflow.cs:97:31:97:53 | Before access to field Field | +| cflow.cs:97:13:97:54 | call to method WriteLine | cflow.cs:97:13:97:54 | After call to method WriteLine | +| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:13:97:54 | Before call to method WriteLine | +| cflow.cs:97:31:97:47 | After object creation of type ControlFlow | cflow.cs:97:31:97:53 | access to field Field | +| cflow.cs:97:31:97:47 | Before object creation of type ControlFlow | cflow.cs:97:31:97:47 | object creation of type ControlFlow | +| cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:97:31:97:47 | After object creation of type ControlFlow | +| cflow.cs:97:31:97:53 | After access to field Field | cflow.cs:97:13:97:54 | call to method WriteLine | +| cflow.cs:97:31:97:53 | Before access to field Field | cflow.cs:97:31:97:47 | Before object creation of type ControlFlow | +| cflow.cs:97:31:97:53 | access to field Field | cflow.cs:97:31:97:53 | After access to field Field | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:9:103:36 | if (...) ... | +| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:13:99:25 | Before ... != ... | +| cflow.cs:99:13:99:17 | After access to field Field | cflow.cs:99:22:99:25 | null | +| cflow.cs:99:13:99:17 | Before access to field Field | cflow.cs:99:13:99:17 | this access | +| cflow.cs:99:13:99:17 | access to field Field | cflow.cs:99:13:99:17 | After access to field Field | | cflow.cs:99:13:99:17 | this access | cflow.cs:99:13:99:17 | access to field Field | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:102:9:103:36 | if (...) ... | +| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:99:13:99:25 | After ... != ... [true] | cflow.cs:100:13:100:42 | ...; | +| cflow.cs:99:13:99:25 | Before ... != ... | cflow.cs:99:13:99:17 | Before access to field Field | | cflow.cs:99:22:99:25 | null | cflow.cs:99:13:99:25 | ... != ... | -| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:31:100:34 | this access | +| cflow.cs:100:13:100:41 | After call to method WriteLine | cflow.cs:100:13:100:42 | After ...; | +| cflow.cs:100:13:100:41 | Before call to method WriteLine | cflow.cs:100:31:100:40 | Before access to field Field | +| cflow.cs:100:13:100:41 | call to method WriteLine | cflow.cs:100:13:100:41 | After call to method WriteLine | +| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:13:100:41 | Before call to method WriteLine | | cflow.cs:100:31:100:34 | this access | cflow.cs:100:31:100:40 | access to field Field | -| cflow.cs:100:31:100:40 | access to field Field | cflow.cs:100:13:100:41 | call to method WriteLine | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:13:102:16 | this access | +| cflow.cs:100:31:100:40 | After access to field Field | cflow.cs:100:13:100:41 | call to method WriteLine | +| cflow.cs:100:31:100:40 | Before access to field Field | cflow.cs:100:31:100:34 | this access | +| cflow.cs:100:31:100:40 | access to field Field | cflow.cs:100:31:100:40 | After access to field Field | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:91:5:104:5 | After {...} | +| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:13:102:29 | Before ... != ... | | cflow.cs:102:13:102:16 | this access | cflow.cs:102:13:102:21 | access to property Prop | -| cflow.cs:102:13:102:21 | access to property Prop | cflow.cs:102:26:102:29 | null | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:90:18:90:19 | exit M3 (normal) | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:103:13:103:36 | ...; | +| cflow.cs:102:13:102:21 | After access to property Prop | cflow.cs:102:26:102:29 | null | +| cflow.cs:102:13:102:21 | Before access to property Prop | cflow.cs:102:13:102:16 | this access | +| cflow.cs:102:13:102:21 | access to property Prop | cflow.cs:102:13:102:21 | After access to property Prop | +| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:102:13:102:29 | After ... != ... [true] | cflow.cs:103:13:103:36 | ...; | +| cflow.cs:102:13:102:29 | Before ... != ... | cflow.cs:102:13:102:21 | Before access to property Prop | | cflow.cs:102:26:102:29 | null | cflow.cs:102:13:102:29 | ... != ... | -| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:31:103:34 | this access | -| cflow.cs:103:31:103:34 | access to property Prop | cflow.cs:103:13:103:35 | call to method WriteLine | +| cflow.cs:103:13:103:35 | After call to method WriteLine | cflow.cs:103:13:103:36 | After ...; | +| cflow.cs:103:13:103:35 | Before call to method WriteLine | cflow.cs:103:31:103:34 | Before access to property Prop | +| cflow.cs:103:13:103:35 | call to method WriteLine | cflow.cs:103:13:103:35 | After call to method WriteLine | +| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:13:103:35 | Before call to method WriteLine | +| cflow.cs:103:31:103:34 | After access to property Prop | cflow.cs:103:13:103:35 | call to method WriteLine | +| cflow.cs:103:31:103:34 | Before access to property Prop | cflow.cs:103:31:103:34 | this access | +| cflow.cs:103:31:103:34 | access to property Prop | cflow.cs:103:31:103:34 | After access to property Prop | | cflow.cs:103:31:103:34 | this access | cflow.cs:103:31:103:34 | access to property Prop | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:107:5:117:5 | {...} | -| cflow.cs:106:18:106:19 | exit M4 (normal) | cflow.cs:106:18:106:19 | exit M4 | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:107:5:117:5 | {...} | +| cflow.cs:106:18:106:19 | Normal Exit | cflow.cs:106:18:106:19 | Exit | +| cflow.cs:107:5:117:5 | After {...} | cflow.cs:106:18:106:19 | Normal Exit | | cflow.cs:107:5:117:5 | {...} | cflow.cs:108:9:115:9 | if (...) ... | -| cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:108:13:108:13 | access to parameter s | +| cflow.cs:108:9:115:9 | After if (...) ... | cflow.cs:116:9:116:29 | ...; | +| cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:108:13:108:21 | Before ... != ... | | cflow.cs:108:13:108:13 | access to parameter s | cflow.cs:108:18:108:21 | null | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:109:9:115:9 | {...} | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:116:9:116:29 | ...; | +| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | After ... != ... [false] | +| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | After ... != ... [true] | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:108:9:115:9 | After if (...) ... | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:109:9:115:9 | {...} | +| cflow.cs:108:13:108:21 | Before ... != ... | cflow.cs:108:13:108:13 | access to parameter s | | cflow.cs:108:18:108:21 | null | cflow.cs:108:13:108:21 | ... != ... | | cflow.cs:109:9:115:9 | {...} | cflow.cs:110:13:113:13 | while (...) ... | -| cflow.cs:110:13:113:13 | while (...) ... | cflow.cs:110:20:110:23 | true | -| cflow.cs:110:20:110:23 | true | cflow.cs:111:13:113:13 | {...} | +| cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | cflow.cs:110:20:110:23 | true | +| cflow.cs:110:13:113:13 | while (...) ... | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | +| cflow.cs:110:20:110:23 | After true [true] | cflow.cs:111:13:113:13 | {...} | +| cflow.cs:110:20:110:23 | true | cflow.cs:110:20:110:23 | After true [true] | | cflow.cs:111:13:113:13 | {...} | cflow.cs:112:17:112:37 | ...; | -| cflow.cs:112:17:112:37 | ...; | cflow.cs:112:35:112:35 | access to parameter s | +| cflow.cs:112:17:112:36 | After call to method WriteLine | cflow.cs:112:17:112:37 | After ...; | +| cflow.cs:112:17:112:36 | Before call to method WriteLine | cflow.cs:112:35:112:35 | access to parameter s | +| cflow.cs:112:17:112:36 | call to method WriteLine | cflow.cs:112:17:112:36 | After call to method WriteLine | +| cflow.cs:112:17:112:37 | ...; | cflow.cs:112:17:112:36 | Before call to method WriteLine | +| cflow.cs:112:17:112:37 | After ...; | cflow.cs:111:13:113:13 | After {...} | | cflow.cs:112:35:112:35 | access to parameter s | cflow.cs:112:17:112:36 | call to method WriteLine | -| cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:106:18:106:19 | exit M4 (normal) | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:116:27:116:27 | access to parameter s | +| cflow.cs:116:9:116:28 | After call to method WriteLine | cflow.cs:116:9:116:29 | After ...; | +| cflow.cs:116:9:116:28 | Before call to method WriteLine | cflow.cs:116:27:116:27 | access to parameter s | +| cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:116:9:116:28 | After call to method WriteLine | +| cflow.cs:116:9:116:29 | ...; | cflow.cs:116:9:116:28 | Before call to method WriteLine | +| cflow.cs:116:9:116:29 | After ...; | cflow.cs:107:5:117:5 | After {...} | | cflow.cs:116:27:116:27 | access to parameter s | cflow.cs:116:9:116:28 | call to method WriteLine | -| cflow.cs:119:20:119:21 | enter M5 | cflow.cs:120:5:124:5 | {...} | -| cflow.cs:119:20:119:21 | exit M5 (normal) | cflow.cs:119:20:119:21 | exit M5 | +| cflow.cs:119:20:119:21 | Entry | cflow.cs:120:5:124:5 | {...} | +| cflow.cs:119:20:119:21 | Normal Exit | cflow.cs:119:20:119:21 | Exit | | cflow.cs:120:5:124:5 | {...} | cflow.cs:121:9:121:18 | ... ...; | -| cflow.cs:121:9:121:18 | ... ...; | cflow.cs:121:17:121:17 | access to parameter s | -| cflow.cs:121:13:121:17 | String x = ... | cflow.cs:122:9:122:20 | ...; | +| cflow.cs:121:9:121:18 | ... ...; | cflow.cs:121:13:121:17 | Before String x = ... | +| cflow.cs:121:9:121:18 | After ... ...; | cflow.cs:122:9:122:20 | ...; | +| cflow.cs:121:13:121:13 | access to local variable x | cflow.cs:121:17:121:17 | access to parameter s | +| cflow.cs:121:13:121:17 | After String x = ... | cflow.cs:121:9:121:18 | After ... ...; | +| cflow.cs:121:13:121:17 | Before String x = ... | cflow.cs:121:13:121:13 | access to local variable x | +| cflow.cs:121:13:121:17 | String x = ... | cflow.cs:121:13:121:17 | After String x = ... | | cflow.cs:121:17:121:17 | access to parameter s | cflow.cs:121:13:121:17 | String x = ... | -| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:123:16:123:16 | access to local variable x | -| cflow.cs:122:9:122:20 | ...; | cflow.cs:122:13:122:13 | access to local variable x | +| cflow.cs:122:9:122:9 | access to local variable x | cflow.cs:122:13:122:19 | Before ... + ... | +| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:122:9:122:19 | After ... = ... | +| cflow.cs:122:9:122:19 | After ... = ... | cflow.cs:122:9:122:20 | After ...; | +| cflow.cs:122:9:122:19 | Before ... = ... | cflow.cs:122:9:122:9 | access to local variable x | +| cflow.cs:122:9:122:20 | ...; | cflow.cs:122:9:122:19 | Before ... = ... | +| cflow.cs:122:9:122:20 | After ...; | cflow.cs:123:9:123:17 | Before return ...; | | cflow.cs:122:13:122:13 | access to local variable x | cflow.cs:122:17:122:19 | " " | -| cflow.cs:122:13:122:19 | ... + ... | cflow.cs:122:9:122:19 | ... = ... | +| cflow.cs:122:13:122:19 | ... + ... | cflow.cs:122:13:122:19 | After ... + ... | +| cflow.cs:122:13:122:19 | After ... + ... | cflow.cs:122:9:122:19 | ... = ... | +| cflow.cs:122:13:122:19 | Before ... + ... | cflow.cs:122:13:122:13 | access to local variable x | | cflow.cs:122:17:122:19 | " " | cflow.cs:122:13:122:19 | ... + ... | -| cflow.cs:123:9:123:17 | return ...; | cflow.cs:119:20:119:21 | exit M5 (normal) | +| cflow.cs:123:9:123:17 | Before return ...; | cflow.cs:123:16:123:16 | access to local variable x | +| cflow.cs:123:9:123:17 | return ...; | cflow.cs:119:20:119:21 | Normal Exit | | cflow.cs:123:16:123:16 | access to local variable x | cflow.cs:123:9:123:17 | return ...; | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:23:127:60 | {...} | -| cflow.cs:127:19:127:21 | exit get_Prop (normal) | cflow.cs:127:19:127:21 | exit get_Prop | -| cflow.cs:127:23:127:60 | {...} | cflow.cs:127:32:127:36 | this access | -| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:19:127:21 | exit get_Prop (normal) | -| cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:41:127:44 | null | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:23:127:60 | {...} | +| cflow.cs:127:19:127:21 | Normal Exit | cflow.cs:127:19:127:21 | Exit | +| cflow.cs:127:23:127:60 | {...} | cflow.cs:127:25:127:58 | Before return ...; | +| cflow.cs:127:25:127:58 | Before return ...; | cflow.cs:127:32:127:57 | ... ? ... : ... | +| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:19:127:21 | Normal Exit | +| cflow.cs:127:32:127:36 | After access to field Field | cflow.cs:127:41:127:44 | null | +| cflow.cs:127:32:127:36 | Before access to field Field | cflow.cs:127:32:127:36 | this access | +| cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:32:127:36 | After access to field Field | | cflow.cs:127:32:127:36 | this access | cflow.cs:127:32:127:36 | access to field Field | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:48:127:49 | "" | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:53:127:57 | this access | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:25:127:58 | return ...; | +| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | After ... == ... [false] | +| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | After ... == ... [true] | +| cflow.cs:127:32:127:44 | After ... == ... [false] | cflow.cs:127:53:127:57 | Before access to field Field | +| cflow.cs:127:32:127:44 | After ... == ... [true] | cflow.cs:127:48:127:49 | "" | +| cflow.cs:127:32:127:44 | Before ... == ... | cflow.cs:127:32:127:36 | Before access to field Field | +| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:32:127:44 | Before ... == ... | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:25:127:58 | return ...; | | cflow.cs:127:41:127:44 | null | cflow.cs:127:32:127:44 | ... == ... | +| cflow.cs:127:53:127:57 | Before access to field Field | cflow.cs:127:53:127:57 | this access | +| cflow.cs:127:53:127:57 | access to field Field | cflow.cs:127:53:127:57 | After access to field Field | | cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | access to field Field | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:66:127:83 | {...} | -| cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | exit set_Prop | +| cflow.cs:127:62:127:64 | Entry | cflow.cs:127:66:127:83 | {...} | +| cflow.cs:127:62:127:64 | Normal Exit | cflow.cs:127:62:127:64 | Exit | +| cflow.cs:127:66:127:83 | After {...} | cflow.cs:127:62:127:64 | Normal Exit | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:68:127:81 | ...; | -| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:80 | ... = ... | -| cflow.cs:127:68:127:72 | this access | cflow.cs:127:76:127:80 | access to parameter value | -| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | exit set_Prop (normal) | -| cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | -| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | access to field Field | -| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | -| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | -| cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | +| cflow.cs:127:68:127:72 | After access to field Field | cflow.cs:127:76:127:80 | access to parameter value | +| cflow.cs:127:68:127:72 | Before access to field Field | cflow.cs:127:68:127:72 | this access | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:72 | After access to field Field | +| cflow.cs:127:68:127:72 | this access | cflow.cs:127:68:127:72 | access to field Field | +| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:68:127:80 | After ... = ... | +| cflow.cs:127:68:127:80 | After ... = ... | cflow.cs:127:68:127:81 | After ...; | +| cflow.cs:127:68:127:80 | Before ... = ... | cflow.cs:127:68:127:72 | Before access to field Field | +| cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:80 | Before ... = ... | +| cflow.cs:127:68:127:81 | After ...; | cflow.cs:127:66:127:83 | After {...} | +| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | +| cflow.cs:129:5:129:15 | After call to constructor Object | cflow.cs:130:5:132:5 | {...} | +| cflow.cs:129:5:129:15 | After call to method | cflow.cs:129:5:129:15 | Before call to constructor Object | +| cflow.cs:129:5:129:15 | Before call to constructor Object | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | Before call to method | cflow.cs:129:5:129:15 | this access | +| cflow.cs:129:5:129:15 | Entry | cflow.cs:129:5:129:15 | Before call to method | +| cflow.cs:129:5:129:15 | Normal Exit | cflow.cs:129:5:129:15 | Exit | +| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | After call to constructor Object | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | After call to method | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | +| cflow.cs:130:5:132:5 | After {...} | cflow.cs:129:5:129:15 | Normal Exit | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | -| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:17 | ... = ... | -| cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | -| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | -| cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:13 | this access | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | access to field Field | -| cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | -| cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:5:134:15 | exit ControlFlow | -| cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | -| cflow.cs:134:31:134:31 | (...) ... | cflow.cs:134:35:134:36 | "" | +| cflow.cs:131:9:131:13 | After access to field Field | cflow.cs:131:17:131:17 | access to parameter s | +| cflow.cs:131:9:131:13 | Before access to field Field | cflow.cs:131:9:131:13 | this access | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:13 | After access to field Field | +| cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:13 | access to field Field | +| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:9:131:17 | After ... = ... | +| cflow.cs:131:9:131:17 | After ... = ... | cflow.cs:131:9:131:18 | After ...; | +| cflow.cs:131:9:131:17 | Before ... = ... | cflow.cs:131:9:131:13 | Before access to field Field | +| cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:17 | Before ... = ... | +| cflow.cs:131:9:131:18 | After ...; | cflow.cs:130:5:132:5 | After {...} | +| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:17 | ... = ... | +| cflow.cs:134:5:134:15 | Entry | cflow.cs:134:26:134:29 | Before call to constructor ControlFlow | +| cflow.cs:134:5:134:15 | Normal Exit | cflow.cs:134:5:134:15 | Exit | +| cflow.cs:134:26:134:29 | After call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | +| cflow.cs:134:26:134:29 | Before call to constructor ControlFlow | cflow.cs:134:31:134:36 | Before ... + ... | +| cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:26:134:29 | After call to constructor ControlFlow | +| cflow.cs:134:31:134:31 | (...) ... | cflow.cs:134:31:134:31 | After (...) ... | +| cflow.cs:134:31:134:31 | After (...) ... | cflow.cs:134:35:134:36 | "" | +| cflow.cs:134:31:134:31 | Before (...) ... | cflow.cs:134:31:134:31 | access to parameter i | | cflow.cs:134:31:134:31 | access to parameter i | cflow.cs:134:31:134:31 | (...) ... | -| cflow.cs:134:31:134:36 | ... + ... | cflow.cs:134:26:134:29 | call to constructor ControlFlow | +| cflow.cs:134:31:134:36 | ... + ... | cflow.cs:134:31:134:36 | After ... + ... | +| cflow.cs:134:31:134:36 | After ... + ... | cflow.cs:134:26:134:29 | call to constructor ControlFlow | +| cflow.cs:134:31:134:36 | Before ... + ... | cflow.cs:134:31:134:31 | Before (...) ... | | cflow.cs:134:35:134:36 | "" | cflow.cs:134:31:134:36 | ... + ... | -| cflow.cs:134:39:134:41 | {...} | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | -| cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:33:136:33 | 0 | -| cflow.cs:136:12:136:22 | exit ControlFlow (normal) | cflow.cs:136:12:136:22 | exit ControlFlow | -| cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:40:136:42 | {...} | +| cflow.cs:134:39:134:41 | {...} | cflow.cs:134:5:134:15 | Normal Exit | +| cflow.cs:136:12:136:22 | Entry | cflow.cs:136:28:136:31 | Before call to constructor ControlFlow | +| cflow.cs:136:12:136:22 | Normal Exit | cflow.cs:136:12:136:22 | Exit | +| cflow.cs:136:28:136:31 | After call to constructor ControlFlow | cflow.cs:136:40:136:42 | {...} | +| cflow.cs:136:28:136:31 | Before call to constructor ControlFlow | cflow.cs:136:33:136:37 | Before ... + ... | +| cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:28:136:31 | After call to constructor ControlFlow | | cflow.cs:136:33:136:33 | 0 | cflow.cs:136:37:136:37 | 1 | -| cflow.cs:136:33:136:37 | ... + ... | cflow.cs:136:28:136:31 | call to constructor ControlFlow | +| cflow.cs:136:33:136:37 | ... + ... | cflow.cs:136:33:136:37 | After ... + ... | +| cflow.cs:136:33:136:37 | After ... + ... | cflow.cs:136:28:136:31 | call to constructor ControlFlow | +| cflow.cs:136:33:136:37 | Before ... + ... | cflow.cs:136:33:136:33 | 0 | | cflow.cs:136:37:136:37 | 1 | cflow.cs:136:33:136:37 | ... + ... | -| cflow.cs:136:40:136:42 | {...} | cflow.cs:136:12:136:22 | exit ControlFlow (normal) | -| cflow.cs:138:40:138:40 | enter + | cflow.cs:139:5:142:5 | {...} | -| cflow.cs:138:40:138:40 | exit + (normal) | cflow.cs:138:40:138:40 | exit + | +| cflow.cs:136:40:136:42 | {...} | cflow.cs:136:12:136:22 | Normal Exit | +| cflow.cs:138:40:138:40 | Entry | cflow.cs:139:5:142:5 | {...} | +| cflow.cs:138:40:138:40 | Normal Exit | cflow.cs:138:40:138:40 | Exit | | cflow.cs:139:5:142:5 | {...} | cflow.cs:140:9:140:29 | ...; | -| cflow.cs:140:9:140:28 | call to method WriteLine | cflow.cs:141:16:141:16 | access to parameter y | -| cflow.cs:140:9:140:29 | ...; | cflow.cs:140:27:140:27 | access to parameter x | +| cflow.cs:140:9:140:28 | After call to method WriteLine | cflow.cs:140:9:140:29 | After ...; | +| cflow.cs:140:9:140:28 | Before call to method WriteLine | cflow.cs:140:27:140:27 | access to parameter x | +| cflow.cs:140:9:140:28 | call to method WriteLine | cflow.cs:140:9:140:28 | After call to method WriteLine | +| cflow.cs:140:9:140:29 | ...; | cflow.cs:140:9:140:28 | Before call to method WriteLine | +| cflow.cs:140:9:140:29 | After ...; | cflow.cs:141:9:141:17 | Before return ...; | | cflow.cs:140:27:140:27 | access to parameter x | cflow.cs:140:9:140:28 | call to method WriteLine | -| cflow.cs:141:9:141:17 | return ...; | cflow.cs:138:40:138:40 | exit + (normal) | +| cflow.cs:141:9:141:17 | Before return ...; | cflow.cs:141:16:141:16 | access to parameter y | +| cflow.cs:141:9:141:17 | return ...; | cflow.cs:138:40:138:40 | Normal Exit | | cflow.cs:141:16:141:16 | access to parameter y | cflow.cs:141:9:141:17 | return ...; | -| cflow.cs:144:33:144:35 | enter get_Item | cflow.cs:144:37:144:54 | {...} | -| cflow.cs:144:33:144:35 | exit get_Item (normal) | cflow.cs:144:33:144:35 | exit get_Item | -| cflow.cs:144:37:144:54 | {...} | cflow.cs:144:46:144:46 | access to parameter i | -| cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:33:144:35 | exit get_Item (normal) | -| cflow.cs:144:46:144:46 | (...) ... | cflow.cs:144:50:144:51 | "" | +| cflow.cs:144:33:144:35 | Entry | cflow.cs:144:37:144:54 | {...} | +| cflow.cs:144:33:144:35 | Normal Exit | cflow.cs:144:33:144:35 | Exit | +| cflow.cs:144:37:144:54 | {...} | cflow.cs:144:39:144:52 | Before return ...; | +| cflow.cs:144:39:144:52 | Before return ...; | cflow.cs:144:46:144:51 | Before ... + ... | +| cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:33:144:35 | Normal Exit | +| cflow.cs:144:46:144:46 | (...) ... | cflow.cs:144:46:144:46 | After (...) ... | +| cflow.cs:144:46:144:46 | After (...) ... | cflow.cs:144:50:144:51 | "" | +| cflow.cs:144:46:144:46 | Before (...) ... | cflow.cs:144:46:144:46 | access to parameter i | | cflow.cs:144:46:144:46 | access to parameter i | cflow.cs:144:46:144:46 | (...) ... | -| cflow.cs:144:46:144:51 | ... + ... | cflow.cs:144:39:144:52 | return ...; | +| cflow.cs:144:46:144:51 | ... + ... | cflow.cs:144:46:144:51 | After ... + ... | +| cflow.cs:144:46:144:51 | After ... + ... | cflow.cs:144:39:144:52 | return ...; | +| cflow.cs:144:46:144:51 | Before ... + ... | cflow.cs:144:46:144:46 | Before (...) ... | | cflow.cs:144:50:144:51 | "" | cflow.cs:144:46:144:51 | ... + ... | -| cflow.cs:144:56:144:58 | enter set_Item | cflow.cs:144:60:144:62 | {...} | -| cflow.cs:144:56:144:58 | exit set_Item (normal) | cflow.cs:144:56:144:58 | exit set_Item | -| cflow.cs:144:60:144:62 | {...} | cflow.cs:144:56:144:58 | exit set_Item (normal) | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:147:5:177:5 | {...} | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | exit For | +| cflow.cs:144:56:144:58 | Entry | cflow.cs:144:60:144:62 | {...} | +| cflow.cs:144:56:144:58 | Normal Exit | cflow.cs:144:56:144:58 | Exit | +| cflow.cs:144:60:144:62 | {...} | cflow.cs:144:56:144:58 | Normal Exit | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:147:5:177:5 | {...} | +| cflow.cs:146:10:146:12 | Normal Exit | cflow.cs:146:10:146:12 | Exit | +| cflow.cs:147:5:177:5 | After {...} | cflow.cs:146:10:146:12 | Normal Exit | | cflow.cs:147:5:177:5 | {...} | cflow.cs:148:9:148:18 | ... ...; | -| cflow.cs:148:9:148:18 | ... ...; | cflow.cs:148:17:148:17 | 0 | -| cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:149:9:150:33 | for (...;...;...) ... | +| cflow.cs:148:9:148:18 | ... ...; | cflow.cs:148:13:148:17 | Before Int32 x = ... | +| cflow.cs:148:9:148:18 | After ... ...; | cflow.cs:149:9:150:33 | for (...;...;...) ... | +| cflow.cs:148:13:148:13 | access to local variable x | cflow.cs:148:17:148:17 | 0 | +| cflow.cs:148:13:148:17 | After Int32 x = ... | cflow.cs:148:9:148:18 | After ... ...; | +| cflow.cs:148:13:148:17 | Before Int32 x = ... | cflow.cs:148:13:148:13 | access to local variable x | +| cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:148:13:148:17 | After Int32 x = ... | | cflow.cs:148:17:148:17 | 0 | cflow.cs:148:13:148:17 | Int32 x = ... | -| cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:149:16:149:16 | access to local variable x | +| cflow.cs:149:9:150:33 | After for (...;...;...) ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | +| cflow.cs:149:9:150:33 | [LoopHeader] for (...;...;...) ... | cflow.cs:149:24:149:26 | Before ++... | +| cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:149:16:149:21 | Before ... < ... | | cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:20:149:21 | 10 | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | +| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:149:9:150:33 | After for (...;...;...) ... | +| cflow.cs:149:16:149:21 | After ... < ... [true] | cflow.cs:150:13:150:33 | ...; | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:16 | access to local variable x | | cflow.cs:149:20:149:21 | 10 | cflow.cs:149:16:149:21 | ... < ... | +| cflow.cs:149:24:149:26 | ++... | cflow.cs:149:24:149:26 | After ++... | +| cflow.cs:149:24:149:26 | Before ++... | cflow.cs:149:26:149:26 | access to local variable x | | cflow.cs:149:26:149:26 | access to local variable x | cflow.cs:149:24:149:26 | ++... | -| cflow.cs:150:13:150:32 | call to method WriteLine | cflow.cs:149:26:149:26 | access to local variable x | -| cflow.cs:150:13:150:33 | ...; | cflow.cs:150:31:150:31 | access to local variable x | +| cflow.cs:150:13:150:32 | After call to method WriteLine | cflow.cs:150:13:150:33 | After ...; | +| cflow.cs:150:13:150:32 | Before call to method WriteLine | cflow.cs:150:31:150:31 | access to local variable x | +| cflow.cs:150:13:150:32 | call to method WriteLine | cflow.cs:150:13:150:32 | After call to method WriteLine | +| cflow.cs:150:13:150:33 | ...; | cflow.cs:150:13:150:32 | Before call to method WriteLine | +| cflow.cs:150:13:150:33 | After ...; | cflow.cs:149:9:150:33 | [LoopHeader] for (...;...;...) ... | | cflow.cs:150:31:150:31 | access to local variable x | cflow.cs:150:13:150:32 | call to method WriteLine | +| cflow.cs:152:9:157:9 | After for (...;...;...) ... | cflow.cs:159:9:165:9 | for (...;...;...) ... | +| cflow.cs:152:9:157:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:152:18:152:20 | Before ...++ | | cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:153:9:157:9 | {...} | | cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:152:18:152:20 | ...++ | +| cflow.cs:152:18:152:20 | ...++ | cflow.cs:152:18:152:20 | After ...++ | +| cflow.cs:152:18:152:20 | Before ...++ | cflow.cs:152:18:152:18 | access to local variable x | +| cflow.cs:153:9:157:9 | After {...} | cflow.cs:152:9:157:9 | [LoopHeader] for (...;...;...) ... | | cflow.cs:153:9:157:9 | {...} | cflow.cs:154:13:154:33 | ...; | -| cflow.cs:154:13:154:32 | call to method WriteLine | cflow.cs:155:13:156:22 | if (...) ... | -| cflow.cs:154:13:154:33 | ...; | cflow.cs:154:31:154:31 | access to local variable x | +| cflow.cs:154:13:154:32 | After call to method WriteLine | cflow.cs:154:13:154:33 | After ...; | +| cflow.cs:154:13:154:32 | Before call to method WriteLine | cflow.cs:154:31:154:31 | access to local variable x | +| cflow.cs:154:13:154:32 | call to method WriteLine | cflow.cs:154:13:154:32 | After call to method WriteLine | +| cflow.cs:154:13:154:33 | ...; | cflow.cs:154:13:154:32 | Before call to method WriteLine | +| cflow.cs:154:13:154:33 | After ...; | cflow.cs:155:13:156:22 | if (...) ... | | cflow.cs:154:31:154:31 | access to local variable x | cflow.cs:154:13:154:32 | call to method WriteLine | -| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:155:17:155:17 | access to local variable x | +| cflow.cs:155:13:156:22 | After if (...) ... | cflow.cs:153:9:157:9 | After {...} | +| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:155:17:155:22 | Before ... > ... | | cflow.cs:155:17:155:17 | access to local variable x | cflow.cs:155:21:155:22 | 20 | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:156:17:156:22 | break; | +| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:155:17:155:22 | After ... > ... [false] | cflow.cs:155:13:156:22 | After if (...) ... | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:156:17:156:22 | Before break; | +| cflow.cs:155:17:155:22 | Before ... > ... | cflow.cs:155:17:155:17 | access to local variable x | | cflow.cs:155:21:155:22 | 20 | cflow.cs:155:17:155:22 | ... > ... | -| cflow.cs:156:17:156:22 | break; | cflow.cs:159:9:165:9 | for (...;...;...) ... | +| cflow.cs:156:17:156:22 | Before break; | cflow.cs:156:17:156:22 | break; | +| cflow.cs:156:17:156:22 | break; | cflow.cs:152:9:157:9 | After for (...;...;...) ... | +| cflow.cs:159:9:165:9 | After for (...;...;...) ... | cflow.cs:167:9:171:9 | for (...;...;...) ... | | cflow.cs:159:9:165:9 | for (...;...;...) ... | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:160:9:165:9 | After {...} | cflow.cs:159:9:165:9 | [LoopHeader] for (...;...;...) ... | | cflow.cs:160:9:165:9 | {...} | cflow.cs:161:13:161:33 | ...; | -| cflow.cs:161:13:161:32 | call to method WriteLine | cflow.cs:162:13:162:16 | ...; | -| cflow.cs:161:13:161:33 | ...; | cflow.cs:161:31:161:31 | access to local variable x | +| cflow.cs:161:13:161:32 | After call to method WriteLine | cflow.cs:161:13:161:33 | After ...; | +| cflow.cs:161:13:161:32 | Before call to method WriteLine | cflow.cs:161:31:161:31 | access to local variable x | +| cflow.cs:161:13:161:32 | call to method WriteLine | cflow.cs:161:13:161:32 | After call to method WriteLine | +| cflow.cs:161:13:161:33 | ...; | cflow.cs:161:13:161:32 | Before call to method WriteLine | +| cflow.cs:161:13:161:33 | After ...; | cflow.cs:162:13:162:16 | ...; | | cflow.cs:161:31:161:31 | access to local variable x | cflow.cs:161:13:161:32 | call to method WriteLine | | cflow.cs:162:13:162:13 | access to local variable x | cflow.cs:162:13:162:15 | ...++ | -| cflow.cs:162:13:162:15 | ...++ | cflow.cs:163:13:164:22 | if (...) ... | -| cflow.cs:162:13:162:16 | ...; | cflow.cs:162:13:162:13 | access to local variable x | -| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:163:17:163:17 | access to local variable x | +| cflow.cs:162:13:162:15 | ...++ | cflow.cs:162:13:162:15 | After ...++ | +| cflow.cs:162:13:162:15 | After ...++ | cflow.cs:162:13:162:16 | After ...; | +| cflow.cs:162:13:162:15 | Before ...++ | cflow.cs:162:13:162:13 | access to local variable x | +| cflow.cs:162:13:162:16 | ...; | cflow.cs:162:13:162:15 | Before ...++ | +| cflow.cs:162:13:162:16 | After ...; | cflow.cs:163:13:164:22 | if (...) ... | +| cflow.cs:163:13:164:22 | After if (...) ... | cflow.cs:160:9:165:9 | After {...} | +| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:163:17:163:22 | Before ... > ... | | cflow.cs:163:17:163:17 | access to local variable x | cflow.cs:163:21:163:22 | 30 | -| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:164:17:164:22 | break; | +| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:163:17:163:22 | After ... > ... [false] | cflow.cs:163:13:164:22 | After if (...) ... | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:164:17:164:22 | Before break; | +| cflow.cs:163:17:163:22 | Before ... > ... | cflow.cs:163:17:163:17 | access to local variable x | | cflow.cs:163:21:163:22 | 30 | cflow.cs:163:17:163:22 | ... > ... | -| cflow.cs:164:17:164:22 | break; | cflow.cs:167:9:171:9 | for (...;...;...) ... | -| cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:167:16:167:16 | access to local variable x | +| cflow.cs:164:17:164:22 | Before break; | cflow.cs:164:17:164:22 | break; | +| cflow.cs:164:17:164:22 | break; | cflow.cs:159:9:165:9 | After for (...;...;...) ... | +| cflow.cs:167:9:171:9 | After for (...;...;...) ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | +| cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:167:16:167:21 | Before ... < ... | | cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:20:167:21 | 40 | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | +| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:167:9:171:9 | After for (...;...;...) ... | +| cflow.cs:167:16:167:21 | After ... < ... [true] | cflow.cs:168:9:171:9 | {...} | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:16 | access to local variable x | | cflow.cs:167:20:167:21 | 40 | cflow.cs:167:16:167:21 | ... < ... | +| cflow.cs:168:9:171:9 | After {...} | cflow.cs:167:9:171:9 | [LoopHeader] for (...;...;...) ... | | cflow.cs:168:9:171:9 | {...} | cflow.cs:169:13:169:33 | ...; | -| cflow.cs:169:13:169:32 | call to method WriteLine | cflow.cs:170:13:170:16 | ...; | -| cflow.cs:169:13:169:33 | ...; | cflow.cs:169:31:169:31 | access to local variable x | +| cflow.cs:169:13:169:32 | After call to method WriteLine | cflow.cs:169:13:169:33 | After ...; | +| cflow.cs:169:13:169:32 | Before call to method WriteLine | cflow.cs:169:31:169:31 | access to local variable x | +| cflow.cs:169:13:169:32 | call to method WriteLine | cflow.cs:169:13:169:32 | After call to method WriteLine | +| cflow.cs:169:13:169:33 | ...; | cflow.cs:169:13:169:32 | Before call to method WriteLine | +| cflow.cs:169:13:169:33 | After ...; | cflow.cs:170:13:170:16 | ...; | | cflow.cs:169:31:169:31 | access to local variable x | cflow.cs:169:13:169:32 | call to method WriteLine | | cflow.cs:170:13:170:13 | access to local variable x | cflow.cs:170:13:170:15 | ...++ | -| cflow.cs:170:13:170:16 | ...; | cflow.cs:170:13:170:13 | access to local variable x | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:22:173:22 | 0 | -| cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:29:173:29 | 0 | +| cflow.cs:170:13:170:15 | ...++ | cflow.cs:170:13:170:15 | After ...++ | +| cflow.cs:170:13:170:15 | After ...++ | cflow.cs:170:13:170:16 | After ...; | +| cflow.cs:170:13:170:15 | Before ...++ | cflow.cs:170:13:170:13 | access to local variable x | +| cflow.cs:170:13:170:16 | ...; | cflow.cs:170:13:170:15 | Before ...++ | +| cflow.cs:170:13:170:16 | After ...; | cflow.cs:168:9:171:9 | After {...} | +| cflow.cs:173:9:176:9 | After for (...;...;...) ... | cflow.cs:147:5:177:5 | After {...} | +| cflow.cs:173:9:176:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:173:44:173:46 | Before ...++ | +| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:18:173:22 | Before Int32 i = ... | +| cflow.cs:173:18:173:18 | access to local variable i | cflow.cs:173:22:173:22 | 0 | +| cflow.cs:173:18:173:22 | After Int32 i = ... | cflow.cs:173:25:173:29 | Before Int32 j = ... | +| cflow.cs:173:18:173:22 | Before Int32 i = ... | cflow.cs:173:18:173:18 | access to local variable i | +| cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:18:173:22 | After Int32 i = ... | | cflow.cs:173:22:173:22 | 0 | cflow.cs:173:18:173:22 | Int32 i = ... | -| cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:32:173:32 | access to local variable i | +| cflow.cs:173:25:173:25 | access to local variable j | cflow.cs:173:29:173:29 | 0 | +| cflow.cs:173:25:173:29 | After Int32 j = ... | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:173:25:173:29 | Before Int32 j = ... | cflow.cs:173:25:173:25 | access to local variable j | +| cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:25:173:29 | After Int32 j = ... | | cflow.cs:173:29:173:29 | 0 | cflow.cs:173:25:173:29 | Int32 j = ... | | cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:36:173:36 | access to local variable j | -| cflow.cs:173:32:173:36 | ... + ... | cflow.cs:173:40:173:41 | 10 | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:174:9:176:9 | {...} | +| cflow.cs:173:32:173:36 | ... + ... | cflow.cs:173:32:173:36 | After ... + ... | +| cflow.cs:173:32:173:36 | After ... + ... | cflow.cs:173:40:173:41 | 10 | +| cflow.cs:173:32:173:36 | Before ... + ... | cflow.cs:173:32:173:32 | access to local variable i | +| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:173:9:176:9 | After for (...;...;...) ... | +| cflow.cs:173:32:173:41 | After ... < ... [true] | cflow.cs:174:9:176:9 | {...} | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:36 | Before ... + ... | | cflow.cs:173:36:173:36 | access to local variable j | cflow.cs:173:32:173:36 | ... + ... | | cflow.cs:173:40:173:41 | 10 | cflow.cs:173:32:173:41 | ... < ... | | cflow.cs:173:44:173:44 | access to local variable i | cflow.cs:173:44:173:46 | ...++ | -| cflow.cs:173:44:173:46 | ...++ | cflow.cs:173:49:173:49 | access to local variable j | +| cflow.cs:173:44:173:46 | ...++ | cflow.cs:173:44:173:46 | After ...++ | +| cflow.cs:173:44:173:46 | After ...++ | cflow.cs:173:49:173:51 | Before ...++ | +| cflow.cs:173:44:173:46 | Before ...++ | cflow.cs:173:44:173:44 | access to local variable i | | cflow.cs:173:49:173:49 | access to local variable j | cflow.cs:173:49:173:51 | ...++ | +| cflow.cs:173:49:173:51 | ...++ | cflow.cs:173:49:173:51 | After ...++ | +| cflow.cs:173:49:173:51 | Before ...++ | cflow.cs:173:49:173:49 | access to local variable j | +| cflow.cs:174:9:176:9 | After {...} | cflow.cs:173:9:176:9 | [LoopHeader] for (...;...;...) ... | | cflow.cs:174:9:176:9 | {...} | cflow.cs:175:13:175:37 | ...; | -| cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:173:44:173:44 | access to local variable i | -| cflow.cs:175:13:175:37 | ...; | cflow.cs:175:31:175:31 | access to local variable i | +| cflow.cs:175:13:175:36 | After call to method WriteLine | cflow.cs:175:13:175:37 | After ...; | +| cflow.cs:175:13:175:36 | Before call to method WriteLine | cflow.cs:175:31:175:35 | Before ... + ... | +| cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:175:13:175:36 | After call to method WriteLine | +| cflow.cs:175:13:175:37 | ...; | cflow.cs:175:13:175:36 | Before call to method WriteLine | +| cflow.cs:175:13:175:37 | After ...; | cflow.cs:174:9:176:9 | After {...} | | cflow.cs:175:31:175:31 | access to local variable i | cflow.cs:175:35:175:35 | access to local variable j | -| cflow.cs:175:31:175:35 | ... + ... | cflow.cs:175:13:175:36 | call to method WriteLine | +| cflow.cs:175:31:175:35 | ... + ... | cflow.cs:175:31:175:35 | After ... + ... | +| cflow.cs:175:31:175:35 | After ... + ... | cflow.cs:175:13:175:36 | call to method WriteLine | +| cflow.cs:175:31:175:35 | Before ... + ... | cflow.cs:175:31:175:31 | access to local variable i | | cflow.cs:175:35:175:35 | access to local variable j | cflow.cs:175:31:175:35 | ... + ... | -| cflow.cs:179:10:179:16 | enter Lambdas | cflow.cs:180:5:183:5 | {...} | -| cflow.cs:179:10:179:16 | exit Lambdas (normal) | cflow.cs:179:10:179:16 | exit Lambdas | +| cflow.cs:179:10:179:16 | Entry | cflow.cs:180:5:183:5 | {...} | +| cflow.cs:179:10:179:16 | Normal Exit | cflow.cs:179:10:179:16 | Exit | +| cflow.cs:180:5:183:5 | After {...} | cflow.cs:179:10:179:16 | Normal Exit | | cflow.cs:180:5:183:5 | {...} | cflow.cs:181:9:181:38 | ... ...; | -| cflow.cs:181:9:181:38 | ... ...; | cflow.cs:181:28:181:37 | (...) => ... | -| cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:182:9:182:62 | ... ...; | +| cflow.cs:181:9:181:38 | ... ...; | cflow.cs:181:24:181:37 | Before Func y = ... | +| cflow.cs:181:9:181:38 | After ... ...; | cflow.cs:182:9:182:62 | ... ...; | +| cflow.cs:181:24:181:24 | access to local variable y | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:181:24:181:37 | After Func y = ... | cflow.cs:181:9:181:38 | After ... ...; | +| cflow.cs:181:24:181:37 | Before Func y = ... | cflow.cs:181:24:181:24 | access to local variable y | +| cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:181:24:181:37 | After Func y = ... | | cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:181:24:181:37 | Func y = ... | -| cflow.cs:181:28:181:37 | enter (...) => ... | cflow.cs:181:33:181:33 | access to parameter x | -| cflow.cs:181:28:181:37 | exit (...) => ... (normal) | cflow.cs:181:28:181:37 | exit (...) => ... | +| cflow.cs:181:28:181:37 | Entry | cflow.cs:181:33:181:37 | Before ... + ... | +| cflow.cs:181:28:181:37 | Normal Exit | cflow.cs:181:28:181:37 | Exit | | cflow.cs:181:33:181:33 | access to parameter x | cflow.cs:181:37:181:37 | 1 | -| cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:28:181:37 | exit (...) => ... (normal) | +| cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:33:181:37 | After ... + ... | +| cflow.cs:181:33:181:37 | After ... + ... | cflow.cs:181:28:181:37 | Normal Exit | +| cflow.cs:181:33:181:37 | Before ... + ... | cflow.cs:181:33:181:33 | access to parameter x | | cflow.cs:181:37:181:37 | 1 | cflow.cs:181:33:181:37 | ... + ... | -| cflow.cs:182:9:182:62 | ... ...; | cflow.cs:182:28:182:61 | delegate(...) { ... } | -| cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:179:10:179:16 | exit Lambdas (normal) | +| cflow.cs:182:9:182:62 | ... ...; | cflow.cs:182:24:182:61 | Before Func z = ... | +| cflow.cs:182:9:182:62 | After ... ...; | cflow.cs:180:5:183:5 | After {...} | +| cflow.cs:182:24:182:24 | access to local variable z | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:182:24:182:61 | After Func z = ... | cflow.cs:182:9:182:62 | After ... ...; | +| cflow.cs:182:24:182:61 | Before Func z = ... | cflow.cs:182:24:182:24 | access to local variable z | +| cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:182:24:182:61 | After Func z = ... | +| cflow.cs:182:28:182:61 | Entry | cflow.cs:182:45:182:61 | {...} | +| cflow.cs:182:28:182:61 | Normal Exit | cflow.cs:182:28:182:61 | Exit | | cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:182:24:182:61 | Func z = ... | -| cflow.cs:182:28:182:61 | enter delegate(...) { ... } | cflow.cs:182:45:182:61 | {...} | -| cflow.cs:182:28:182:61 | exit delegate(...) { ... } (normal) | cflow.cs:182:28:182:61 | exit delegate(...) { ... } | -| cflow.cs:182:45:182:61 | {...} | cflow.cs:182:54:182:54 | access to parameter x | -| cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:28:182:61 | exit delegate(...) { ... } (normal) | +| cflow.cs:182:45:182:61 | {...} | cflow.cs:182:47:182:59 | Before return ...; | +| cflow.cs:182:47:182:59 | Before return ...; | cflow.cs:182:54:182:58 | Before ... + ... | +| cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:28:182:61 | Normal Exit | | cflow.cs:182:54:182:54 | access to parameter x | cflow.cs:182:58:182:58 | 1 | -| cflow.cs:182:54:182:58 | ... + ... | cflow.cs:182:47:182:59 | return ...; | +| cflow.cs:182:54:182:58 | ... + ... | cflow.cs:182:54:182:58 | After ... + ... | +| cflow.cs:182:54:182:58 | After ... + ... | cflow.cs:182:47:182:59 | return ...; | +| cflow.cs:182:54:182:58 | Before ... + ... | cflow.cs:182:54:182:54 | access to parameter x | | cflow.cs:182:58:182:58 | 1 | cflow.cs:182:54:182:58 | ... + ... | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:186:5:191:5 | {...} | -| cflow.cs:185:10:185:18 | exit LogicalOr (normal) | cflow.cs:185:10:185:18 | exit LogicalOr | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:186:5:191:5 | {...} | +| cflow.cs:185:10:185:18 | Normal Exit | cflow.cs:185:10:185:18 | Exit | +| cflow.cs:186:5:191:5 | After {...} | cflow.cs:185:10:185:18 | Normal Exit | | cflow.cs:186:5:191:5 | {...} | cflow.cs:187:9:190:52 | if (...) ... | -| cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:187:13:187:13 | 1 | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:186:5:191:5 | After {...} | +| cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:187:13:187:50 | ... \|\| ... | | cflow.cs:187:13:187:13 | 1 | cflow.cs:187:18:187:18 | 2 | -| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:190:13:190:52 | ...; | +| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:18 | After ... == ... [false] | +| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:23:187:28 | Before ... == ... | +| cflow.cs:187:13:187:18 | Before ... == ... | cflow.cs:187:13:187:13 | 1 | +| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:18 | Before ... == ... | +| cflow.cs:187:13:187:28 | After ... \|\| ... [false] | cflow.cs:187:34:187:49 | ... && ... | +| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | +| cflow.cs:187:13:187:50 | After ... \|\| ... [false] | cflow.cs:190:13:190:52 | ...; | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:188:13:188:55 | ...; | | cflow.cs:187:18:187:18 | 2 | cflow.cs:187:13:187:18 | ... == ... | | cflow.cs:187:23:187:23 | 2 | cflow.cs:187:28:187:28 | 3 | -| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:13:187:28 | ... \|\| ... | +| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:28 | After ... == ... [false] | +| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:13:187:28 | After ... \|\| ... [false] | +| cflow.cs:187:23:187:28 | Before ... == ... | cflow.cs:187:23:187:23 | 2 | | cflow.cs:187:28:187:28 | 3 | cflow.cs:187:23:187:28 | ... == ... | | cflow.cs:187:34:187:34 | 1 | cflow.cs:187:39:187:39 | 3 | -| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:13:187:50 | ... \|\| ... | +| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:44:187:49 | Before ... == ... | +| cflow.cs:187:34:187:39 | Before ... == ... | cflow.cs:187:34:187:34 | 1 | +| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:39 | Before ... == ... | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:13:187:50 | After ... \|\| ... [false] | | cflow.cs:187:39:187:39 | 3 | cflow.cs:187:34:187:39 | ... == ... | -| cflow.cs:190:13:190:51 | call to method WriteLine | cflow.cs:185:10:185:18 | exit LogicalOr (normal) | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:190:31:190:50 | "This should happen" | +| cflow.cs:187:44:187:44 | 3 | cflow.cs:187:49:187:49 | 1 | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:187:34:187:49 | After ... && ... [true] | +| cflow.cs:187:44:187:49 | Before ... == ... | cflow.cs:187:44:187:44 | 3 | +| cflow.cs:187:49:187:49 | 1 | cflow.cs:187:44:187:49 | ... == ... | +| cflow.cs:188:13:188:54 | After call to method WriteLine | cflow.cs:188:13:188:55 | After ...; | +| cflow.cs:188:13:188:54 | Before call to method WriteLine | cflow.cs:188:31:188:53 | "This shouldn't happen" | +| cflow.cs:188:13:188:54 | call to method WriteLine | cflow.cs:188:13:188:54 | After call to method WriteLine | +| cflow.cs:188:13:188:55 | ...; | cflow.cs:188:13:188:54 | Before call to method WriteLine | +| cflow.cs:188:31:188:53 | "This shouldn't happen" | cflow.cs:188:13:188:54 | call to method WriteLine | +| cflow.cs:190:13:190:51 | After call to method WriteLine | cflow.cs:190:13:190:52 | After ...; | +| cflow.cs:190:13:190:51 | Before call to method WriteLine | cflow.cs:190:31:190:50 | "This should happen" | +| cflow.cs:190:13:190:51 | call to method WriteLine | cflow.cs:190:13:190:51 | After call to method WriteLine | +| cflow.cs:190:13:190:52 | ...; | cflow.cs:190:13:190:51 | Before call to method WriteLine | | cflow.cs:190:31:190:50 | "This should happen" | cflow.cs:190:13:190:51 | call to method WriteLine | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:194:5:206:5 | {...} | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:194:5:206:5 | {...} | +| cflow.cs:194:5:206:5 | After {...} | cflow.cs:193:10:193:17 | Normal Exit | | cflow.cs:194:5:206:5 | {...} | cflow.cs:195:9:195:57 | ... ...; | -| cflow.cs:195:9:195:57 | ... ...; | cflow.cs:195:17:195:21 | this access | -| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:197:9:198:49 | if (...) ... | -| cflow.cs:195:17:195:21 | access to field Field | cflow.cs:195:17:195:28 | access to property Length | +| cflow.cs:195:9:195:57 | ... ...; | cflow.cs:195:13:195:56 | Before Boolean b = ... | +| cflow.cs:195:9:195:57 | After ... ...; | cflow.cs:197:9:198:49 | if (...) ... | +| cflow.cs:195:13:195:13 | access to local variable b | cflow.cs:195:17:195:56 | ... && ... | +| cflow.cs:195:13:195:56 | After Boolean b = ... | cflow.cs:195:9:195:57 | After ... ...; | +| cflow.cs:195:13:195:56 | Before Boolean b = ... | cflow.cs:195:13:195:13 | access to local variable b | +| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:195:13:195:56 | After Boolean b = ... | +| cflow.cs:195:17:195:21 | After access to field Field | cflow.cs:195:17:195:28 | access to property Length | +| cflow.cs:195:17:195:21 | Before access to field Field | cflow.cs:195:17:195:21 | this access | +| cflow.cs:195:17:195:21 | access to field Field | cflow.cs:195:17:195:21 | After access to field Field | | cflow.cs:195:17:195:21 | this access | cflow.cs:195:17:195:21 | access to field Field | -| cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:32:195:32 | 0 | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:13:195:56 | Boolean b = ... | +| cflow.cs:195:17:195:28 | After access to property Length | cflow.cs:195:32:195:32 | 0 | +| cflow.cs:195:17:195:28 | Before access to property Length | cflow.cs:195:17:195:21 | Before access to field Field | +| cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:17:195:28 | After access to property Length | +| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:195:17:195:32 | After ... > ... [true] | cflow.cs:195:37:195:56 | !... | +| cflow.cs:195:17:195:32 | Before ... > ... | cflow.cs:195:17:195:28 | Before access to property Length | +| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:32 | Before ... > ... | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:13:195:56 | Boolean b = ... | | cflow.cs:195:32:195:32 | 0 | cflow.cs:195:17:195:32 | ... > ... | -| cflow.cs:195:39:195:43 | access to field Field | cflow.cs:195:39:195:50 | access to property Length | +| cflow.cs:195:37:195:56 | !... | cflow.cs:195:39:195:55 | Before ... == ... | +| cflow.cs:195:39:195:43 | After access to field Field | cflow.cs:195:39:195:50 | access to property Length | +| cflow.cs:195:39:195:43 | Before access to field Field | cflow.cs:195:39:195:43 | this access | +| cflow.cs:195:39:195:43 | access to field Field | cflow.cs:195:39:195:43 | After access to field Field | | cflow.cs:195:39:195:43 | this access | cflow.cs:195:39:195:43 | access to field Field | -| cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:55:195:55 | 1 | -| cflow.cs:195:39:195:55 | ... == ... | cflow.cs:195:37:195:56 | !... | +| cflow.cs:195:39:195:50 | After access to property Length | cflow.cs:195:55:195:55 | 1 | +| cflow.cs:195:39:195:50 | Before access to property Length | cflow.cs:195:39:195:43 | Before access to field Field | +| cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:39:195:50 | After access to property Length | +| cflow.cs:195:39:195:55 | ... == ... | cflow.cs:195:39:195:55 | After ... == ... | +| cflow.cs:195:39:195:55 | After ... == ... | cflow.cs:195:37:195:56 | After !... | +| cflow.cs:195:39:195:55 | Before ... == ... | cflow.cs:195:39:195:50 | Before access to property Length | | cflow.cs:195:55:195:55 | 1 | cflow.cs:195:39:195:55 | ... == ... | -| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:197:15:197:19 | this access | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:197:15:197:19 | access to field Field | cflow.cs:197:15:197:26 | access to property Length | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:9:205:9 | if (...) ... | +| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:197:13:197:47 | !... | +| cflow.cs:197:13:197:47 | !... | cflow.cs:197:15:197:46 | ... ? ... : ... | +| cflow.cs:197:13:197:47 | After !... [true] | cflow.cs:198:13:198:49 | ...; | +| cflow.cs:197:15:197:19 | After access to field Field | cflow.cs:197:15:197:26 | access to property Length | +| cflow.cs:197:15:197:19 | Before access to field Field | cflow.cs:197:15:197:19 | this access | +| cflow.cs:197:15:197:19 | access to field Field | cflow.cs:197:15:197:19 | After access to field Field | | cflow.cs:197:15:197:19 | this access | cflow.cs:197:15:197:19 | access to field Field | -| cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:31:197:31 | 0 | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:43:197:46 | true | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:13:197:47 | [false] !... | +| cflow.cs:197:15:197:26 | After access to property Length | cflow.cs:197:31:197:31 | 0 | +| cflow.cs:197:15:197:26 | Before access to property Length | cflow.cs:197:15:197:19 | Before access to field Field | +| cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:15:197:26 | After access to property Length | +| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:197:15:197:31 | After ... == ... [false] | cflow.cs:197:43:197:46 | true | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:197:35:197:39 | false | +| cflow.cs:197:15:197:31 | Before ... == ... | cflow.cs:197:15:197:26 | Before access to property Length | +| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:197:15:197:31 | Before ... == ... | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | cflow.cs:197:13:197:47 | After !... [true] | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | cflow.cs:197:13:197:47 | After !... [false] | | cflow.cs:197:31:197:31 | 0 | cflow.cs:197:15:197:31 | ... == ... | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:17:198:21 | this access | -| cflow.cs:198:17:198:21 | access to field Field | cflow.cs:198:17:198:28 | access to property Length | +| cflow.cs:197:35:197:39 | After false [false] | cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | +| cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | After false [false] | +| cflow.cs:197:43:197:46 | After true [true] | cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | +| cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | After true [true] | +| cflow.cs:198:13:198:13 | access to local variable b | cflow.cs:198:17:198:48 | ... ? ... : ... | +| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:198:13:198:48 | After ... = ... | +| cflow.cs:198:13:198:48 | After ... = ... | cflow.cs:198:13:198:49 | After ...; | +| cflow.cs:198:13:198:48 | Before ... = ... | cflow.cs:198:13:198:13 | access to local variable b | +| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:13:198:48 | Before ... = ... | +| cflow.cs:198:17:198:21 | After access to field Field | cflow.cs:198:17:198:28 | access to property Length | +| cflow.cs:198:17:198:21 | Before access to field Field | cflow.cs:198:17:198:21 | this access | +| cflow.cs:198:17:198:21 | access to field Field | cflow.cs:198:17:198:21 | After access to field Field | | cflow.cs:198:17:198:21 | this access | cflow.cs:198:17:198:21 | access to field Field | -| cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:33:198:33 | 0 | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:13:198:48 | ... = ... | +| cflow.cs:198:17:198:28 | After access to property Length | cflow.cs:198:33:198:33 | 0 | +| cflow.cs:198:17:198:28 | Before access to property Length | cflow.cs:198:17:198:21 | Before access to field Field | +| cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:17:198:28 | After access to property Length | +| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:198:17:198:33 | After ... == ... [false] | cflow.cs:198:45:198:48 | true | +| cflow.cs:198:17:198:33 | After ... == ... [true] | cflow.cs:198:37:198:41 | false | +| cflow.cs:198:17:198:33 | Before ... == ... | cflow.cs:198:17:198:28 | Before access to property Length | +| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:17:198:33 | Before ... == ... | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:13:198:48 | ... = ... | | cflow.cs:198:33:198:33 | 0 | cflow.cs:198:17:198:33 | ... == ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:15:200:19 | this access | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:200:15:200:19 | access to field Field | cflow.cs:200:15:200:26 | access to property Length | +| cflow.cs:200:9:205:9 | After if (...) ... | cflow.cs:194:5:206:5 | After {...} | +| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:62 | ... \|\| ... | +| cflow.cs:200:13:200:32 | !... | cflow.cs:200:15:200:31 | Before ... == ... | +| cflow.cs:200:13:200:32 | After !... [false] | cflow.cs:200:37:200:62 | !... | +| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:200:13:200:32 | !... | +| cflow.cs:200:13:200:62 | After ... \|\| ... [false] | cflow.cs:200:9:205:9 | After if (...) ... | +| cflow.cs:200:13:200:62 | After ... \|\| ... [true] | cflow.cs:201:9:205:9 | {...} | +| cflow.cs:200:15:200:19 | After access to field Field | cflow.cs:200:15:200:26 | access to property Length | +| cflow.cs:200:15:200:19 | Before access to field Field | cflow.cs:200:15:200:19 | this access | +| cflow.cs:200:15:200:19 | access to field Field | cflow.cs:200:15:200:19 | After access to field Field | | cflow.cs:200:15:200:19 | this access | cflow.cs:200:15:200:19 | access to field Field | -| cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:31:200:31 | 0 | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:13:200:32 | [true] !... | +| cflow.cs:200:15:200:26 | After access to property Length | cflow.cs:200:31:200:31 | 0 | +| cflow.cs:200:15:200:26 | Before access to property Length | cflow.cs:200:15:200:19 | Before access to field Field | +| cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:15:200:26 | After access to property Length | +| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | After ... == ... [false] | +| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:200:13:200:32 | After !... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:13:200:32 | After !... [false] | +| cflow.cs:200:15:200:31 | Before ... == ... | cflow.cs:200:15:200:26 | Before access to property Length | | cflow.cs:200:31:200:31 | 0 | cflow.cs:200:15:200:31 | ... == ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:40:200:44 | access to field Field | cflow.cs:200:40:200:51 | access to property Length | +| cflow.cs:200:37:200:62 | !... | cflow.cs:200:38:200:62 | !... | +| cflow.cs:200:37:200:62 | After !... [false] | cflow.cs:200:13:200:62 | After ... \|\| ... [false] | +| cflow.cs:200:38:200:62 | !... | cflow.cs:200:40:200:61 | ... && ... | +| cflow.cs:200:38:200:62 | After !... [false] | cflow.cs:200:37:200:62 | After !... [true] | +| cflow.cs:200:38:200:62 | After !... [true] | cflow.cs:200:37:200:62 | After !... [false] | +| cflow.cs:200:40:200:44 | After access to field Field | cflow.cs:200:40:200:51 | access to property Length | +| cflow.cs:200:40:200:44 | Before access to field Field | cflow.cs:200:40:200:44 | this access | +| cflow.cs:200:40:200:44 | access to field Field | cflow.cs:200:40:200:44 | After access to field Field | | cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:44 | access to field Field | -| cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:56:200:56 | 1 | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:38:200:62 | [false] !... | +| cflow.cs:200:40:200:51 | After access to property Length | cflow.cs:200:56:200:56 | 1 | +| cflow.cs:200:40:200:51 | Before access to property Length | cflow.cs:200:40:200:44 | Before access to field Field | +| cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:40:200:51 | After access to property Length | +| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:61:200:61 | access to local variable b | +| cflow.cs:200:40:200:56 | Before ... == ... | cflow.cs:200:40:200:51 | Before access to property Length | +| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:200:40:200:56 | Before ... == ... | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:38:200:62 | After !... [true] | +| cflow.cs:200:40:200:61 | After ... && ... [true] | cflow.cs:200:38:200:62 | After !... [false] | | cflow.cs:200:56:200:56 | 1 | cflow.cs:200:40:200:56 | ... == ... | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [true] ... && ... | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:200:40:200:61 | After ... && ... [true] | +| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | After access to local variable b [true] | | cflow.cs:201:9:205:9 | {...} | cflow.cs:202:13:204:13 | {...} | -| cflow.cs:202:13:204:13 | {...} | cflow.cs:203:23:203:37 | object creation of type Exception | -| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | -| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:17:203:38 | throw ...; | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:209:5:222:5 | {...} | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | +| cflow.cs:202:13:204:13 | {...} | cflow.cs:203:17:203:38 | Before throw ...; | +| cflow.cs:203:17:203:38 | Before throw ...; | cflow.cs:203:23:203:37 | Before object creation of type Exception | +| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | Exceptional Exit | +| cflow.cs:203:23:203:37 | After object creation of type Exception | cflow.cs:203:17:203:38 | throw ...; | +| cflow.cs:203:23:203:37 | Before object creation of type Exception | cflow.cs:203:23:203:37 | object creation of type Exception | +| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:23:203:37 | After object creation of type Exception | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:209:5:222:5 | {...} | +| cflow.cs:208:10:208:11 | Normal Exit | cflow.cs:208:10:208:11 | Exit | +| cflow.cs:209:5:222:5 | After {...} | cflow.cs:208:10:208:11 | Normal Exit | | cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:209:5:222:5 | After {...} | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:221:18:221:34 | Before ... < ... | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} | | cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; | -| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" | +| cflow.cs:212:13:212:17 | After access to field Field | cflow.cs:212:22:212:24 | "a" | +| cflow.cs:212:13:212:17 | Before access to field Field | cflow.cs:212:13:212:17 | this access | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | After access to field Field | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field | -| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:213:13:216:13 | if (...) ... | -| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access | +| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:212:13:212:24 | After ... += ... | +| cflow.cs:212:13:212:24 | After ... += ... | cflow.cs:212:13:212:25 | After ...; | +| cflow.cs:212:13:212:24 | Before ... += ... | cflow.cs:212:13:212:17 | Before access to field Field | +| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:24 | Before ... += ... | +| cflow.cs:212:13:212:25 | After ...; | cflow.cs:213:13:216:13 | if (...) ... | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... += ... | -| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:213:17:213:21 | this access | -| cflow.cs:213:17:213:21 | access to field Field | cflow.cs:213:17:213:28 | access to property Length | +| cflow.cs:213:13:216:13 | After if (...) ... | cflow.cs:217:13:220:13 | if (...) ... | +| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:213:17:213:32 | Before ... > ... | +| cflow.cs:213:17:213:21 | After access to field Field | cflow.cs:213:17:213:28 | access to property Length | +| cflow.cs:213:17:213:21 | Before access to field Field | cflow.cs:213:17:213:21 | this access | +| cflow.cs:213:17:213:21 | access to field Field | cflow.cs:213:17:213:21 | After access to field Field | | cflow.cs:213:17:213:21 | this access | cflow.cs:213:17:213:21 | access to field Field | -| cflow.cs:213:17:213:28 | access to property Length | cflow.cs:213:32:213:32 | 0 | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:214:13:216:13 | {...} | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:217:13:220:13 | if (...) ... | +| cflow.cs:213:17:213:28 | After access to property Length | cflow.cs:213:32:213:32 | 0 | +| cflow.cs:213:17:213:28 | Before access to property Length | cflow.cs:213:17:213:21 | Before access to field Field | +| cflow.cs:213:17:213:28 | access to property Length | cflow.cs:213:17:213:28 | After access to property Length | +| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | After ... > ... [false] | +| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:213:13:216:13 | After if (...) ... | +| cflow.cs:213:17:213:32 | After ... > ... [true] | cflow.cs:214:13:216:13 | {...} | +| cflow.cs:213:17:213:32 | Before ... > ... | cflow.cs:213:17:213:28 | Before access to property Length | | cflow.cs:213:32:213:32 | 0 | cflow.cs:213:17:213:32 | ... > ... | -| cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | continue; | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:21 | this access | -| cflow.cs:217:17:217:21 | access to field Field | cflow.cs:217:17:217:28 | access to property Length | +| cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | Before continue; | +| cflow.cs:215:17:215:25 | Before continue; | cflow.cs:215:17:215:25 | continue; | +| cflow.cs:217:13:220:13 | After if (...) ... | cflow.cs:211:9:221:9 | After {...} | +| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:32 | Before ... < ... | +| cflow.cs:217:17:217:21 | After access to field Field | cflow.cs:217:17:217:28 | access to property Length | +| cflow.cs:217:17:217:21 | Before access to field Field | cflow.cs:217:17:217:21 | this access | +| cflow.cs:217:17:217:21 | access to field Field | cflow.cs:217:17:217:21 | After access to field Field | | cflow.cs:217:17:217:21 | this access | cflow.cs:217:17:217:21 | access to field Field | -| cflow.cs:217:17:217:28 | access to property Length | cflow.cs:217:32:217:32 | 0 | -| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:218:13:220:13 | {...} | +| cflow.cs:217:17:217:28 | After access to property Length | cflow.cs:217:32:217:32 | 0 | +| cflow.cs:217:17:217:28 | Before access to property Length | cflow.cs:217:17:217:21 | Before access to field Field | +| cflow.cs:217:17:217:28 | access to property Length | cflow.cs:217:17:217:28 | After access to property Length | +| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:217:17:217:32 | After ... < ... [false] | cflow.cs:217:13:220:13 | After if (...) ... | +| cflow.cs:217:17:217:32 | After ... < ... [true] | cflow.cs:218:13:220:13 | {...} | +| cflow.cs:217:17:217:32 | Before ... < ... | cflow.cs:217:17:217:28 | Before access to property Length | | cflow.cs:217:32:217:32 | 0 | cflow.cs:217:17:217:32 | ... < ... | -| cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | break; | -| cflow.cs:221:18:221:22 | access to field Field | cflow.cs:221:18:221:29 | access to property Length | +| cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | Before break; | +| cflow.cs:219:17:219:22 | Before break; | cflow.cs:219:17:219:22 | break; | +| cflow.cs:221:18:221:22 | After access to field Field | cflow.cs:221:18:221:29 | access to property Length | +| cflow.cs:221:18:221:22 | Before access to field Field | cflow.cs:221:18:221:22 | this access | +| cflow.cs:221:18:221:22 | access to field Field | cflow.cs:221:18:221:22 | After access to field Field | | cflow.cs:221:18:221:22 | this access | cflow.cs:221:18:221:22 | access to field Field | -| cflow.cs:221:18:221:29 | access to property Length | cflow.cs:221:33:221:34 | 10 | +| cflow.cs:221:18:221:29 | After access to property Length | cflow.cs:221:33:221:34 | 10 | +| cflow.cs:221:18:221:29 | Before access to property Length | cflow.cs:221:18:221:22 | Before access to field Field | +| cflow.cs:221:18:221:29 | access to property Length | cflow.cs:221:18:221:29 | After access to property Length | +| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:221:18:221:34 | Before ... < ... | cflow.cs:221:18:221:29 | Before access to property Length | | cflow.cs:221:33:221:34 | 10 | cflow.cs:221:18:221:34 | ... < ... | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:225:5:238:5 | {...} | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | exit Foreach | -| cflow.cs:225:5:238:5 | {...} | cflow.cs:226:57:226:59 | "a" | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | exit Foreach (normal) | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:22:226:22 | String x | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:225:5:238:5 | {...} | +| cflow.cs:224:10:224:16 | Normal Exit | cflow.cs:224:10:224:16 | Exit | +| cflow.cs:225:5:238:5 | After {...} | cflow.cs:224:10:224:16 | Normal Exit | +| cflow.cs:225:5:238:5 | {...} | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:225:5:238:5 | After {...} | +| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:27:226:64 | Before call to method Repeat | | cflow.cs:226:22:226:22 | String x | cflow.cs:227:9:237:9 | {...} | -| cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:226:22:226:22 | String x | +| cflow.cs:226:27:226:64 | Before call to method Repeat | cflow.cs:226:57:226:59 | "a" | +| cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | +| cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | | cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 | | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat | | cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; | -| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x | +| cflow.cs:228:13:228:17 | After access to field Field | cflow.cs:228:22:228:22 | access to local variable x | +| cflow.cs:228:13:228:17 | Before access to field Field | cflow.cs:228:13:228:17 | this access | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | After access to field Field | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field | -| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:229:13:232:13 | if (...) ... | -| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access | +| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:228:13:228:22 | After ... += ... | +| cflow.cs:228:13:228:22 | After ... += ... | cflow.cs:228:13:228:23 | After ...; | +| cflow.cs:228:13:228:22 | Before ... += ... | cflow.cs:228:13:228:17 | Before access to field Field | +| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:22 | Before ... += ... | +| cflow.cs:228:13:228:23 | After ...; | cflow.cs:229:13:232:13 | if (...) ... | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... += ... | -| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:229:17:229:21 | this access | -| cflow.cs:229:17:229:21 | access to field Field | cflow.cs:229:17:229:28 | access to property Length | +| cflow.cs:229:13:232:13 | After if (...) ... | cflow.cs:233:13:236:13 | if (...) ... | +| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:229:17:229:32 | Before ... > ... | +| cflow.cs:229:17:229:21 | After access to field Field | cflow.cs:229:17:229:28 | access to property Length | +| cflow.cs:229:17:229:21 | Before access to field Field | cflow.cs:229:17:229:21 | this access | +| cflow.cs:229:17:229:21 | access to field Field | cflow.cs:229:17:229:21 | After access to field Field | | cflow.cs:229:17:229:21 | this access | cflow.cs:229:17:229:21 | access to field Field | -| cflow.cs:229:17:229:28 | access to property Length | cflow.cs:229:32:229:32 | 0 | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:230:13:232:13 | {...} | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:233:13:236:13 | if (...) ... | +| cflow.cs:229:17:229:28 | After access to property Length | cflow.cs:229:32:229:32 | 0 | +| cflow.cs:229:17:229:28 | Before access to property Length | cflow.cs:229:17:229:21 | Before access to field Field | +| cflow.cs:229:17:229:28 | access to property Length | cflow.cs:229:17:229:28 | After access to property Length | +| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:229:13:232:13 | After if (...) ... | +| cflow.cs:229:17:229:32 | After ... > ... [true] | cflow.cs:230:13:232:13 | {...} | +| cflow.cs:229:17:229:32 | Before ... > ... | cflow.cs:229:17:229:28 | Before access to property Length | | cflow.cs:229:32:229:32 | 0 | cflow.cs:229:17:229:32 | ... > ... | -| cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | continue; | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:21 | this access | -| cflow.cs:233:17:233:21 | access to field Field | cflow.cs:233:17:233:28 | access to property Length | +| cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | Before continue; | +| cflow.cs:231:17:231:25 | Before continue; | cflow.cs:231:17:231:25 | continue; | +| cflow.cs:233:13:236:13 | After if (...) ... | cflow.cs:227:9:237:9 | After {...} | +| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:32 | Before ... < ... | +| cflow.cs:233:17:233:21 | After access to field Field | cflow.cs:233:17:233:28 | access to property Length | +| cflow.cs:233:17:233:21 | Before access to field Field | cflow.cs:233:17:233:21 | this access | +| cflow.cs:233:17:233:21 | access to field Field | cflow.cs:233:17:233:21 | After access to field Field | | cflow.cs:233:17:233:21 | this access | cflow.cs:233:17:233:21 | access to field Field | -| cflow.cs:233:17:233:28 | access to property Length | cflow.cs:233:32:233:32 | 0 | -| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:234:13:236:13 | {...} | +| cflow.cs:233:17:233:28 | After access to property Length | cflow.cs:233:32:233:32 | 0 | +| cflow.cs:233:17:233:28 | Before access to property Length | cflow.cs:233:17:233:21 | Before access to field Field | +| cflow.cs:233:17:233:28 | access to property Length | cflow.cs:233:17:233:28 | After access to property Length | +| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:233:17:233:32 | After ... < ... [false] | cflow.cs:233:13:236:13 | After if (...) ... | +| cflow.cs:233:17:233:32 | After ... < ... [true] | cflow.cs:234:13:236:13 | {...} | +| cflow.cs:233:17:233:32 | Before ... < ... | cflow.cs:233:17:233:28 | Before access to property Length | | cflow.cs:233:32:233:32 | 0 | cflow.cs:233:17:233:32 | ... < ... | -| cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | break; | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:241:5:259:5 | {...} | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | exit Goto | +| cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | Before break; | +| cflow.cs:235:17:235:22 | Before break; | cflow.cs:235:17:235:22 | break; | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:241:5:259:5 | {...} | +| cflow.cs:240:10:240:13 | Normal Exit | cflow.cs:240:10:240:13 | Exit | +| cflow.cs:241:5:259:5 | After {...} | cflow.cs:240:10:240:13 | Normal Exit | | cflow.cs:241:5:259:5 | {...} | cflow.cs:242:5:242:9 | Label: | | cflow.cs:242:5:242:9 | Label: | cflow.cs:242:12:242:41 | if (...) ... | -| cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:19:242:23 | this access | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:242:19:242:23 | access to field Field | cflow.cs:242:19:242:30 | access to property Length | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:9:244:41 | if (...) ... | +| cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:16:242:36 | !... | +| cflow.cs:242:16:242:36 | !... | cflow.cs:242:17:242:36 | !... | +| cflow.cs:242:16:242:36 | After !... [true] | cflow.cs:242:39:242:41 | {...} | +| cflow.cs:242:17:242:36 | !... | cflow.cs:242:19:242:35 | Before ... == ... | +| cflow.cs:242:17:242:36 | After !... [false] | cflow.cs:242:16:242:36 | After !... [true] | +| cflow.cs:242:17:242:36 | After !... [true] | cflow.cs:242:16:242:36 | After !... [false] | +| cflow.cs:242:19:242:23 | After access to field Field | cflow.cs:242:19:242:30 | access to property Length | +| cflow.cs:242:19:242:23 | Before access to field Field | cflow.cs:242:19:242:23 | this access | +| cflow.cs:242:19:242:23 | access to field Field | cflow.cs:242:19:242:23 | After access to field Field | | cflow.cs:242:19:242:23 | this access | cflow.cs:242:19:242:23 | access to field Field | -| cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:35:242:35 | 0 | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:17:242:36 | [true] !... | +| cflow.cs:242:19:242:30 | After access to property Length | cflow.cs:242:35:242:35 | 0 | +| cflow.cs:242:19:242:30 | Before access to property Length | cflow.cs:242:19:242:23 | Before access to field Field | +| cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:19:242:30 | After access to property Length | +| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:242:17:242:36 | After !... [true] | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:242:17:242:36 | After !... [false] | +| cflow.cs:242:19:242:35 | Before ... == ... | cflow.cs:242:19:242:30 | Before access to property Length | | cflow.cs:242:35:242:35 | 0 | cflow.cs:242:19:242:35 | ... == ... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:13:244:17 | this access | -| cflow.cs:244:13:244:17 | access to field Field | cflow.cs:244:13:244:24 | access to property Length | +| cflow.cs:244:9:244:41 | After if (...) ... | cflow.cs:246:9:258:9 | switch (...) {...} | +| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:13:244:28 | Before ... > ... | +| cflow.cs:244:13:244:17 | After access to field Field | cflow.cs:244:13:244:24 | access to property Length | +| cflow.cs:244:13:244:17 | Before access to field Field | cflow.cs:244:13:244:17 | this access | +| cflow.cs:244:13:244:17 | access to field Field | cflow.cs:244:13:244:17 | After access to field Field | | cflow.cs:244:13:244:17 | this access | cflow.cs:244:13:244:17 | access to field Field | -| cflow.cs:244:13:244:24 | access to property Length | cflow.cs:244:28:244:28 | 0 | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:246:9:258:9 | switch (...) {...} | +| cflow.cs:244:13:244:24 | After access to property Length | cflow.cs:244:28:244:28 | 0 | +| cflow.cs:244:13:244:24 | Before access to property Length | cflow.cs:244:13:244:17 | Before access to field Field | +| cflow.cs:244:13:244:24 | access to property Length | cflow.cs:244:13:244:24 | After access to property Length | +| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:244:9:244:41 | After if (...) ... | +| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:244:31:244:41 | Before goto ...; | +| cflow.cs:244:13:244:28 | Before ... > ... | cflow.cs:244:13:244:24 | Before access to property Length | | cflow.cs:244:28:244:28 | 0 | cflow.cs:244:13:244:28 | ... > ... | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:17:246:21 | this access | -| cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:28 | access to property Length | +| cflow.cs:244:31:244:41 | Before goto ...; | cflow.cs:244:31:244:41 | goto ...; | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:241:5:259:5 | After {...} | +| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:17:246:32 | Before ... + ... | +| cflow.cs:246:17:246:21 | After access to field Field | cflow.cs:246:17:246:28 | access to property Length | +| cflow.cs:246:17:246:21 | Before access to field Field | cflow.cs:246:17:246:21 | this access | +| cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:21 | After access to field Field | | cflow.cs:246:17:246:21 | this access | cflow.cs:246:17:246:21 | access to field Field | -| cflow.cs:246:17:246:28 | access to property Length | cflow.cs:246:32:246:32 | 3 | -| cflow.cs:246:17:246:32 | ... + ... | cflow.cs:248:13:248:19 | case ...: | +| cflow.cs:246:17:246:28 | After access to property Length | cflow.cs:246:32:246:32 | 3 | +| cflow.cs:246:17:246:28 | Before access to property Length | cflow.cs:246:17:246:21 | Before access to field Field | +| cflow.cs:246:17:246:28 | access to property Length | cflow.cs:246:17:246:28 | After access to property Length | +| cflow.cs:246:17:246:32 | ... + ... | cflow.cs:246:17:246:32 | After ... + ... | +| cflow.cs:246:17:246:32 | After ... + ... | cflow.cs:248:13:248:19 | case ...: | +| cflow.cs:246:17:246:32 | Before ... + ... | cflow.cs:246:17:246:28 | Before access to property Length | | cflow.cs:246:32:246:32 | 3 | cflow.cs:246:17:246:32 | ... + ... | -| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:18:248:18 | 0 | -| cflow.cs:248:18:248:18 | 0 | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:248:18:248:18 | 0 | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:18:250:18 | 1 | +| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:248:18:248:18 | 0 | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | case ...: | +| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:248:18:248:18 | 0 | cflow.cs:249:17:249:29 | Before goto default; | +| cflow.cs:249:17:249:29 | Before goto default; | cflow.cs:249:17:249:29 | goto default; | +| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:250:18:250:18 | 1 | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | case ...: | +| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | After case ...: [no-match] | | cflow.cs:250:18:250:18 | 1 | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:250:18:250:18 | 1 | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:252:17:252:22 | break; | -| cflow.cs:251:17:251:37 | ...; | cflow.cs:251:35:251:35 | 1 | +| cflow.cs:251:17:251:36 | After call to method WriteLine | cflow.cs:251:17:251:37 | After ...; | +| cflow.cs:251:17:251:36 | Before call to method WriteLine | cflow.cs:251:35:251:35 | 1 | +| cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:251:17:251:36 | After call to method WriteLine | +| cflow.cs:251:17:251:37 | ...; | cflow.cs:251:17:251:36 | Before call to method WriteLine | +| cflow.cs:251:17:251:37 | After ...; | cflow.cs:252:17:252:22 | Before break; | | cflow.cs:251:35:251:35 | 1 | cflow.cs:251:17:251:36 | call to method WriteLine | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:18:253:18 | 2 | -| cflow.cs:253:18:253:18 | 2 | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:255:13:255:20 | default: | cflow.cs:256:17:256:37 | ...; | -| cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:257:17:257:22 | break; | -| cflow.cs:256:17:256:37 | ...; | cflow.cs:256:35:256:35 | 0 | +| cflow.cs:252:17:252:22 | Before break; | cflow.cs:252:17:252:22 | break; | +| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:253:18:253:18 | 2 | +| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:255:13:255:20 | default: | +| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:253:18:253:18 | 2 | cflow.cs:254:17:254:27 | Before goto ...; | +| cflow.cs:254:17:254:27 | Before goto ...; | cflow.cs:254:17:254:27 | goto ...; | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:256:17:256:37 | ...; | +| cflow.cs:256:17:256:36 | After call to method WriteLine | cflow.cs:256:17:256:37 | After ...; | +| cflow.cs:256:17:256:36 | Before call to method WriteLine | cflow.cs:256:35:256:35 | 0 | +| cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:256:17:256:36 | After call to method WriteLine | +| cflow.cs:256:17:256:37 | ...; | cflow.cs:256:17:256:36 | Before call to method WriteLine | +| cflow.cs:256:17:256:37 | After ...; | cflow.cs:257:17:257:22 | Before break; | | cflow.cs:256:35:256:35 | 0 | cflow.cs:256:17:256:36 | call to method WriteLine | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:262:5:277:5 | {...} | -| cflow.cs:262:5:277:5 | {...} | cflow.cs:263:22:263:22 | 0 | -| cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:264:9:267:9 | for (...;...;...) ... | +| cflow.cs:257:17:257:22 | Before break; | cflow.cs:257:17:257:22 | break; | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:262:5:277:5 | {...} | +| cflow.cs:262:5:277:5 | {...} | cflow.cs:263:9:263:23 | Before yield return ...; | +| cflow.cs:263:9:263:23 | After yield return ...; | cflow.cs:264:9:267:9 | for (...;...;...) ... | +| cflow.cs:263:9:263:23 | Before yield return ...; | cflow.cs:263:22:263:22 | 0 | +| cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:263:9:263:23 | After yield return ...; | | cflow.cs:263:22:263:22 | 0 | cflow.cs:263:9:263:23 | yield return ...; | -| cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:264:22:264:22 | 1 | -| cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:25:264:25 | access to local variable i | +| cflow.cs:264:9:267:9 | After for (...;...;...) ... | cflow.cs:268:9:276:9 | try {...} ... | +| cflow.cs:264:9:267:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:264:33:264:35 | Before ...++ | +| cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:264:18:264:22 | Before Int32 i = ... | +| cflow.cs:264:18:264:18 | access to local variable i | cflow.cs:264:22:264:22 | 1 | +| cflow.cs:264:18:264:22 | After Int32 i = ... | cflow.cs:264:25:264:30 | Before ... < ... | +| cflow.cs:264:18:264:22 | Before Int32 i = ... | cflow.cs:264:18:264:18 | access to local variable i | +| cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:18:264:22 | After Int32 i = ... | | cflow.cs:264:22:264:22 | 1 | cflow.cs:264:18:264:22 | Int32 i = ... | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:29:264:30 | 10 | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:268:9:276:9 | try {...} ... | +| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | After ... < ... [false] | +| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:264:9:267:9 | After for (...;...;...) ... | +| cflow.cs:264:25:264:30 | After ... < ... [true] | cflow.cs:265:9:267:9 | {...} | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:25 | access to local variable i | | cflow.cs:264:29:264:30 | 10 | cflow.cs:264:25:264:30 | ... < ... | | cflow.cs:264:33:264:33 | access to local variable i | cflow.cs:264:33:264:35 | ...++ | -| cflow.cs:265:9:267:9 | {...} | cflow.cs:266:26:266:26 | access to local variable i | -| cflow.cs:266:13:266:27 | yield return ...; | cflow.cs:264:33:264:33 | access to local variable i | +| cflow.cs:264:33:264:35 | ...++ | cflow.cs:264:33:264:35 | After ...++ | +| cflow.cs:264:33:264:35 | Before ...++ | cflow.cs:264:33:264:33 | access to local variable i | +| cflow.cs:265:9:267:9 | After {...} | cflow.cs:264:9:267:9 | [LoopHeader] for (...;...;...) ... | +| cflow.cs:265:9:267:9 | {...} | cflow.cs:266:13:266:27 | Before yield return ...; | +| cflow.cs:266:13:266:27 | After yield return ...; | cflow.cs:265:9:267:9 | After {...} | +| cflow.cs:266:13:266:27 | Before yield return ...; | cflow.cs:266:26:266:26 | access to local variable i | +| cflow.cs:266:13:266:27 | yield return ...; | cflow.cs:266:13:266:27 | After yield return ...; | | cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:266:13:266:27 | yield return ...; | +| cflow.cs:268:9:276:9 | After try {...} ... | cflow.cs:262:5:277:5 | After {...} | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:269:9:272:9 | {...} | -| cflow.cs:269:9:272:9 | {...} | cflow.cs:270:13:270:24 | yield break; | +| cflow.cs:269:9:272:9 | {...} | cflow.cs:270:13:270:24 | Before yield break; | +| cflow.cs:270:13:270:24 | Before yield break; | cflow.cs:270:13:270:24 | yield break; | | cflow.cs:270:13:270:24 | yield break; | cflow.cs:274:9:276:9 | {...} | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:261:49:261:53 | Exceptional Exit | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:261:49:261:53 | Normal Exit | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:268:9:276:9 | After try {...} ... | | cflow.cs:274:9:276:9 | {...} | cflow.cs:275:13:275:42 | ...; | -| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (abnormal) | -| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | +| cflow.cs:275:13:275:41 | After call to method WriteLine | cflow.cs:275:13:275:42 | After ...; | +| cflow.cs:275:13:275:41 | Before call to method WriteLine | cflow.cs:275:31:275:40 | "not dead" | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:13:275:41 | After call to method WriteLine | +| cflow.cs:275:13:275:42 | ...; | cflow.cs:275:13:275:41 | Before call to method WriteLine | +| cflow.cs:275:13:275:42 | After ...; | cflow.cs:274:9:276:9 | After {...} | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | -| 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 | After call to method | cflow.cs:282:24:282:27 | Before call to constructor ControlFlow | +| cflow.cs:282:5:282:18 | Before call to method | cflow.cs:282:5:282:18 | this access | +| cflow.cs:282:5:282:18 | Entry | cflow.cs:282:5:282:18 | Before call to method | +| cflow.cs:282:5:282:18 | Normal Exit | cflow.cs:282:5:282:18 | Exit | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | After call to method | | 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 | -| cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | cflow.cs:284:5:284:18 | exit ControlFlowSub | -| cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:39:284:41 | {...} | -| cflow.cs:284:39:284:41 | {...} | cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | -| cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:34:286:34 | access to parameter i | -| cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | cflow.cs:286:5:286:18 | exit ControlFlowSub | -| cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:48:286:50 | {...} | +| cflow.cs:282:24:282:27 | After call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | +| cflow.cs:282:24:282:27 | Before call to constructor ControlFlow | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:24:282:27 | After call to constructor ControlFlow | +| cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | Normal Exit | +| cflow.cs:284:5:284:18 | Entry | cflow.cs:284:32:284:35 | Before call to constructor ControlFlowSub | +| cflow.cs:284:5:284:18 | Normal Exit | cflow.cs:284:5:284:18 | Exit | +| cflow.cs:284:32:284:35 | After call to constructor ControlFlowSub | cflow.cs:284:39:284:41 | {...} | +| cflow.cs:284:32:284:35 | Before call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | +| cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | After call to constructor ControlFlowSub | +| cflow.cs:284:39:284:41 | {...} | cflow.cs:284:5:284:18 | Normal Exit | +| cflow.cs:286:5:286:18 | Entry | cflow.cs:286:29:286:32 | Before call to constructor ControlFlowSub | +| cflow.cs:286:5:286:18 | Normal Exit | cflow.cs:286:5:286:18 | Exit | +| cflow.cs:286:29:286:32 | After call to constructor ControlFlowSub | cflow.cs:286:48:286:50 | {...} | +| cflow.cs:286:29:286:32 | Before call to constructor ControlFlowSub | cflow.cs:286:34:286:45 | Before call to method ToString | +| cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:29:286:32 | After call to constructor ControlFlowSub | | cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:34:286:45 | call to method ToString | -| 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 | 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:286:34:286:45 | After call to method ToString | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | +| cflow.cs:286:34:286:45 | Before call to method ToString | cflow.cs:286:34:286:34 | access to parameter i | +| cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:45 | After call to method ToString | +| cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | Normal Exit | +| cflow.cs:289:7:289:18 | After call to constructor Object | cflow.cs:289:7:289:18 | {...} | +| cflow.cs:289:7:289:18 | After call to method | cflow.cs:289:7:289:18 | Before call to constructor Object | +| cflow.cs:289:7:289:18 | Before call to constructor Object | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | Before call to method | cflow.cs:289:7:289:18 | this access | +| cflow.cs:289:7:289:18 | Entry | cflow.cs:289:7:289:18 | Before call to method | +| cflow.cs:289:7:289:18 | Normal Exit | cflow.cs:289:7:289:18 | Exit | +| cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | After call to constructor Object | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | After call to method | | 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 | +| cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | Normal Exit | +| cflow.cs:291:12:291:12 | Entry | cflow.cs:291:38:291:41 | Before delegate call | +| cflow.cs:291:12:291:12 | Normal Exit | cflow.cs:291:12:291:12 | Exit | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:40:291:40 | 0 | -| cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | exit M (normal) | +| cflow.cs:291:38:291:41 | After delegate call | cflow.cs:291:12:291:12 | Normal Exit | +| cflow.cs:291:38:291:41 | Before delegate call | cflow.cs:291:38:291:38 | access to parameter f | +| cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:38:291:41 | After delegate call | | 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 | 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 | After call to constructor Object | cflow.cs:296:52:296:54 | {...} | +| cflow.cs:296:5:296:25 | After call to method | cflow.cs:296:5:296:25 | Before call to constructor Object | +| cflow.cs:296:5:296:25 | Before call to constructor Object | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | Before call to method | cflow.cs:296:5:296:25 | this access | +| cflow.cs:296:5:296:25 | Entry | cflow.cs:296:5:296:25 | Before call to method | +| cflow.cs:296:5:296:25 | Normal Exit | cflow.cs:296:5:296:25 | Exit | +| cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | After call to constructor Object | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | After call to method | | 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 | +| cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | Normal Exit | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:299:5:301:5 | {...} | +| cflow.cs:298:10:298:10 | Normal Exit | cflow.cs:298:10:298:10 | Exit | +| cflow.cs:299:5:301:5 | After {...} | cflow.cs:298:10:298:10 | Normal Exit | | cflow.cs:299:5:301:5 | {...} | cflow.cs:300:9:300:73 | ...; | -| cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:298:10:298:10 | exit M (normal) | -| cflow.cs:300:9:300:73 | ...; | cflow.cs:300:38:300:38 | 0 | -| cflow.cs:300:38:300:38 | 0 | cflow.cs:300:46:300:46 | access to parameter i | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:56:300:56 | access to parameter s | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:70:300:71 | "" | +| cflow.cs:300:9:300:72 | After object creation of type NegationInConstructor | cflow.cs:300:9:300:73 | After ...; | +| cflow.cs:300:9:300:72 | Before object creation of type NegationInConstructor | cflow.cs:300:38:300:38 | 0 | +| cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:9:300:72 | After object creation of type NegationInConstructor | +| cflow.cs:300:9:300:73 | ...; | cflow.cs:300:9:300:72 | Before object creation of type NegationInConstructor | +| cflow.cs:300:9:300:73 | After ...; | cflow.cs:299:5:301:5 | After {...} | +| cflow.cs:300:38:300:38 | 0 | cflow.cs:300:44:300:64 | ... && ... | +| cflow.cs:300:44:300:51 | !... | cflow.cs:300:46:300:50 | Before ... > ... | +| cflow.cs:300:44:300:51 | After !... [true] | cflow.cs:300:56:300:64 | Before ... != ... | +| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:51 | !... | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:70:300:71 | "" | | cflow.cs:300:46:300:46 | access to parameter i | cflow.cs:300:50:300:50 | 0 | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:44:300:51 | [false] !... | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:44:300:51 | [true] !... | +| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | After ... > ... [false] | +| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | After ... > ... [true] | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:300:44:300:51 | After !... [true] | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:300:44:300:51 | After !... [false] | +| cflow.cs:300:46:300:50 | Before ... > ... | cflow.cs:300:46:300:46 | access to parameter i | | cflow.cs:300:50:300:50 | 0 | cflow.cs:300:46:300:50 | ... > ... | | cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:61:300:64 | null | +| cflow.cs:300:56:300:64 | ... != ... | cflow.cs:300:56:300:64 | After ... != ... | +| cflow.cs:300:56:300:64 | Before ... != ... | cflow.cs:300:56:300:56 | access to parameter s | | 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 | 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 | After call to constructor Object | cflow.cs:304:7:304:18 | {...} | +| cflow.cs:304:7:304:18 | After call to method | cflow.cs:304:7:304:18 | Before call to constructor Object | +| cflow.cs:304:7:304:18 | Before call to constructor Object | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | Before call to method | cflow.cs:304:7:304:18 | this access | +| cflow.cs:304:7:304:18 | Entry | cflow.cs:304:7:304:18 | Before call to method | +| cflow.cs:304:7:304:18 | Normal Exit | cflow.cs:304:7:304:18 | Exit | +| cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | After call to constructor Object | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | After call to method | | 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 | {...} | -| cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | (...) => ... | -| cflow.cs:306:60:310:5 | exit (...) => ... (normal) | cflow.cs:306:60:310:5 | exit (...) => ... | -| cflow.cs:306:60:310:5 | exit get__getter (normal) | cflow.cs:306:60:310:5 | exit get__getter | +| cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | Normal Exit | +| cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | Normal Exit | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:307:5:310:5 | {...} | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:306:60:310:5 | Exit | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:306:60:310:5 | Exit | | cflow.cs:307:5:310:5 | {...} | cflow.cs:308:9:308:21 | ... ...; | -| cflow.cs:308:9:308:21 | ... ...; | cflow.cs:308:20:308:20 | access to parameter o | -| cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:309:16:309:16 | access to local variable x | +| cflow.cs:308:9:308:21 | ... ...; | cflow.cs:308:16:308:20 | Before Object x = ... | +| cflow.cs:308:9:308:21 | After ... ...; | cflow.cs:309:9:309:17 | Before return ...; | +| cflow.cs:308:16:308:16 | access to local variable x | cflow.cs:308:20:308:20 | access to parameter o | +| cflow.cs:308:16:308:20 | After Object x = ... | cflow.cs:308:9:308:21 | After ... ...; | +| cflow.cs:308:16:308:20 | Before Object x = ... | cflow.cs:308:16:308:16 | access to local variable x | +| cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:308:16:308:20 | After Object x = ... | | cflow.cs:308:20:308:20 | access to parameter o | cflow.cs:308:16:308:20 | Object x = ... | -| cflow.cs:309:9:309:17 | return ...; | cflow.cs:306:60:310:5 | exit (...) => ... (normal) | +| cflow.cs:309:9:309:17 | Before return ...; | cflow.cs:309:16:309:16 | access to local variable x | +| cflow.cs:309:9:309:17 | return ...; | cflow.cs:306:60:310:5 | Normal Exit | | 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 | call to method | +| AccessorCalls.cs:1:7:1:19 | After call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | After call to method | AccessorCalls.cs:1:7:1:19 | call to method | +| AccessorCalls.cs:1:7:1:19 | Before call to constructor Object | AccessorCalls.cs:1:7:1:19 | After call to method | +| AccessorCalls.cs:1:7:1:19 | Before call to method | AccessorCalls.cs:1:7:1:19 | Entry | +| AccessorCalls.cs:1:7:1:19 | Exit | AccessorCalls.cs:1:7:1:19 | Normal Exit | +| AccessorCalls.cs:1:7:1:19 | Normal Exit | AccessorCalls.cs:1:7:1:19 | {...} | +| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | Before 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 | 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 | -| AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:23:5:25 | enter get_Item | -| AccessorCalls.cs:5:33:5:35 | exit set_Item | AccessorCalls.cs:5:33:5:35 | exit set_Item (normal) | -| AccessorCalls.cs:5:33:5:35 | exit set_Item (normal) | AccessorCalls.cs:5:37:5:39 | {...} | -| AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:33:5:35 | enter set_Item | -| AccessorCalls.cs:7:32:7:34 | exit add_Event | AccessorCalls.cs:7:32:7:34 | exit add_Event (normal) | -| AccessorCalls.cs:7:32:7:34 | exit add_Event (normal) | AccessorCalls.cs:7:36:7:38 | {...} | -| AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:32:7:34 | enter add_Event | -| AccessorCalls.cs:7:40:7:45 | exit remove_Event | AccessorCalls.cs:7:40:7:45 | exit remove_Event (normal) | -| AccessorCalls.cs:7:40:7:45 | exit remove_Event (normal) | AccessorCalls.cs:7:47:7:49 | {...} | -| AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:40:7:45 | enter remove_Event | -| AccessorCalls.cs:10:10:10:11 | exit M1 | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | -| AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:16:9:16:23 | ... -= ... | -| AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:10:10:10:11 | enter M1 | -| AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:9:12:32 | ...; | -| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:22:12:31 | access to field Field | -| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:9:12:18 | access to field Field | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | Before call to method | +| AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | After call to constructor Object | +| AccessorCalls.cs:5:23:5:25 | Exit | AccessorCalls.cs:5:23:5:25 | Normal Exit | +| AccessorCalls.cs:5:23:5:25 | Normal Exit | AccessorCalls.cs:5:30:5:30 | access to parameter i | +| AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:23:5:25 | Entry | +| AccessorCalls.cs:5:33:5:35 | Exit | AccessorCalls.cs:5:33:5:35 | Normal Exit | +| AccessorCalls.cs:5:33:5:35 | Normal Exit | AccessorCalls.cs:5:37:5:39 | {...} | +| AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:33:5:35 | Entry | +| AccessorCalls.cs:7:32:7:34 | Exit | AccessorCalls.cs:7:32:7:34 | Normal Exit | +| AccessorCalls.cs:7:32:7:34 | Normal Exit | AccessorCalls.cs:7:36:7:38 | {...} | +| AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:32:7:34 | Entry | +| AccessorCalls.cs:7:40:7:45 | Exit | AccessorCalls.cs:7:40:7:45 | Normal Exit | +| AccessorCalls.cs:7:40:7:45 | Normal Exit | AccessorCalls.cs:7:47:7:49 | {...} | +| AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:40:7:45 | Entry | +| AccessorCalls.cs:10:10:10:11 | Exit | AccessorCalls.cs:10:10:10:11 | Normal Exit | +| AccessorCalls.cs:10:10:10:11 | Normal Exit | AccessorCalls.cs:11:5:17:5 | After {...} | +| AccessorCalls.cs:11:5:17:5 | After {...} | AccessorCalls.cs:16:9:16:24 | After ...; | +| AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:10:10:10:11 | Entry | +| AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:9:12:18 | Before access to field Field | +| AccessorCalls.cs:12:9:12:18 | After access to field Field | AccessorCalls.cs:12:9:12:18 | access to field Field | +| AccessorCalls.cs:12:9:12:18 | Before access to field Field | AccessorCalls.cs:12:9:12:31 | Before ... = ... | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:12 | this access | +| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:22:12:31 | After access to field Field | +| AccessorCalls.cs:12:9:12:31 | After ... = ... | AccessorCalls.cs:12:9:12:31 | ... = ... | +| AccessorCalls.cs:12:9:12:31 | Before ... = ... | AccessorCalls.cs:12:9:12:32 | ...; | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:11:5:17:5 | {...} | -| AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:9:12:12 | this access | +| AccessorCalls.cs:12:9:12:32 | After ...; | AccessorCalls.cs:12:9:12:31 | After ... = ... | +| AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:31 | Before access to field Field | +| AccessorCalls.cs:12:22:12:31 | After access to field Field | AccessorCalls.cs:12:22:12:31 | access to field Field | +| AccessorCalls.cs:12:22:12:31 | Before access to field Field | AccessorCalls.cs:12:9:12:18 | After access to field Field | | AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:22:12:25 | this access | -| AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:9:13:30 | ...; | -| AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:21:13:29 | access to property Prop | -| AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:13:9:13:17 | access to property Prop | -| AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:12:9:12:31 | ... = ... | -| AccessorCalls.cs:13:21:13:24 | this access | AccessorCalls.cs:13:9:13:12 | this access | +| AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:9:13:17 | Before access to property Prop | +| AccessorCalls.cs:13:9:13:17 | After access to property Prop | AccessorCalls.cs:13:9:13:17 | access to property Prop | +| AccessorCalls.cs:13:9:13:17 | Before access to property Prop | AccessorCalls.cs:13:9:13:29 | Before ... = ... | +| AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:12 | this access | +| AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:13:21:13:29 | After access to property Prop | +| AccessorCalls.cs:13:9:13:29 | After ... = ... | AccessorCalls.cs:13:9:13:29 | ... = ... | +| AccessorCalls.cs:13:9:13:29 | Before ... = ... | AccessorCalls.cs:13:9:13:30 | ...; | +| AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:12:9:12:32 | After ...; | +| AccessorCalls.cs:13:9:13:30 | After ...; | AccessorCalls.cs:13:9:13:29 | After ... = ... | +| AccessorCalls.cs:13:21:13:24 | this access | AccessorCalls.cs:13:21:13:29 | Before access to property Prop | +| AccessorCalls.cs:13:21:13:29 | After access to property Prop | AccessorCalls.cs:13:21:13:29 | access to property Prop | +| AccessorCalls.cs:13:21:13:29 | Before access to property Prop | AccessorCalls.cs:13:9:13:17 | After access to property Prop | | AccessorCalls.cs:13:21:13:29 | access to property Prop | AccessorCalls.cs:13:21:13:24 | this access | -| AccessorCalls.cs:14:9:14:12 | this access | AccessorCalls.cs:14:9:14:26 | ...; | -| AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:14:19:14:25 | access to indexer | -| AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:14:9:14:15 | access to indexer | -| AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:13:9:13:29 | ... = ... | +| AccessorCalls.cs:14:9:14:12 | this access | AccessorCalls.cs:14:9:14:15 | Before access to indexer | +| AccessorCalls.cs:14:9:14:15 | After access to indexer | AccessorCalls.cs:14:9:14:15 | access to indexer | +| AccessorCalls.cs:14:9:14:15 | Before access to indexer | AccessorCalls.cs:14:9:14:25 | Before ... = ... | +| AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:14:14:14:14 | 0 | +| AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:14:19:14:25 | After access to indexer | +| AccessorCalls.cs:14:9:14:25 | After ... = ... | AccessorCalls.cs:14:9:14:25 | ... = ... | +| AccessorCalls.cs:14:9:14:25 | Before ... = ... | AccessorCalls.cs:14:9:14:26 | ...; | +| AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:13:9:13:30 | After ...; | +| AccessorCalls.cs:14:9:14:26 | After ...; | AccessorCalls.cs:14:9:14:25 | After ... = ... | | AccessorCalls.cs:14:14:14:14 | 0 | AccessorCalls.cs:14:9:14:12 | this access | -| AccessorCalls.cs:14:19:14:22 | this access | AccessorCalls.cs:14:14:14:14 | 0 | +| AccessorCalls.cs:14:19:14:22 | this access | AccessorCalls.cs:14:19:14:25 | Before access to indexer | +| AccessorCalls.cs:14:19:14:25 | After access to indexer | AccessorCalls.cs:14:19:14:25 | access to indexer | +| AccessorCalls.cs:14:19:14:25 | Before access to indexer | AccessorCalls.cs:14:9:14:15 | After access to indexer | | AccessorCalls.cs:14:19:14:25 | access to indexer | AccessorCalls.cs:14:24:14:24 | 1 | | AccessorCalls.cs:14:24:14:24 | 1 | AccessorCalls.cs:14:19:14:22 | this access | -| AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:15:9:15:24 | ...; | -| AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:15:23:15:23 | access to parameter e | -| AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:15:9:15:18 | access to event Event | -| AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:14:9:14:25 | ... = ... | -| AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:15:9:15:12 | this access | -| AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:16:9:16:24 | ...; | -| AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:16:23:16:23 | access to parameter e | -| AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:16:9:16:18 | access to event Event | -| AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:15:9:15:23 | ... += ... | -| AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:16:9:16:12 | this access | -| AccessorCalls.cs:19:10:19:11 | exit M2 | AccessorCalls.cs:19:10:19:11 | exit M2 (normal) | -| AccessorCalls.cs:19:10:19:11 | exit M2 (normal) | AccessorCalls.cs:25:9:25:25 | ... -= ... | -| AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:19:10:19:11 | enter M2 | -| AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:36 | ...; | +| AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:15:9:15:18 | Before access to event Event | +| AccessorCalls.cs:15:9:15:18 | After access to event Event | AccessorCalls.cs:15:9:15:18 | access to event Event | +| AccessorCalls.cs:15:9:15:18 | Before access to event Event | AccessorCalls.cs:15:9:15:23 | Before ... += ... | +| AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:15:9:15:12 | this access | +| AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:15:23:15:23 | access to parameter e | +| AccessorCalls.cs:15:9:15:23 | After ... += ... | AccessorCalls.cs:15:9:15:23 | ... += ... | +| AccessorCalls.cs:15:9:15:23 | Before ... += ... | AccessorCalls.cs:15:9:15:24 | ...; | +| AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:14:9:14:26 | After ...; | +| AccessorCalls.cs:15:9:15:24 | After ...; | AccessorCalls.cs:15:9:15:23 | After ... += ... | +| AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:15:9:15:18 | After access to event Event | +| AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:16:9:16:18 | Before access to event Event | +| AccessorCalls.cs:16:9:16:18 | After access to event Event | AccessorCalls.cs:16:9:16:18 | access to event Event | +| AccessorCalls.cs:16:9:16:18 | Before access to event Event | AccessorCalls.cs:16:9:16:23 | Before ... -= ... | +| AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:16:9:16:12 | this access | +| AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:16:23:16:23 | access to parameter e | +| AccessorCalls.cs:16:9:16:23 | After ... -= ... | AccessorCalls.cs:16:9:16:23 | ... -= ... | +| AccessorCalls.cs:16:9:16:23 | Before ... -= ... | AccessorCalls.cs:16:9:16:24 | ...; | +| AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:15:9:15:24 | After ...; | +| AccessorCalls.cs:16:9:16:24 | After ...; | AccessorCalls.cs:16:9:16:23 | After ... -= ... | +| AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:16:9:16:18 | After access to event Event | +| AccessorCalls.cs:19:10:19:11 | Exit | AccessorCalls.cs:19:10:19:11 | Normal Exit | +| AccessorCalls.cs:19:10:19:11 | Normal Exit | AccessorCalls.cs:20:5:26:5 | After {...} | +| AccessorCalls.cs:20:5:26:5 | After {...} | AccessorCalls.cs:25:9:25:26 | After ...; | +| AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:19:10:19:11 | Entry | +| AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:14 | Before access to field x | +| AccessorCalls.cs:21:9:21:14 | After access to field x | AccessorCalls.cs:21:9:21:14 | access to field x | +| AccessorCalls.cs:21:9:21:14 | Before access to field x | AccessorCalls.cs:21:9:21:20 | Before access to field Field | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:9:21:12 | this access | -| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:24:21:35 | access to field Field | -| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:9:21:20 | access to field Field | +| AccessorCalls.cs:21:9:21:20 | After access to field Field | AccessorCalls.cs:21:9:21:20 | access to field Field | +| AccessorCalls.cs:21:9:21:20 | Before access to field Field | AccessorCalls.cs:21:9:21:35 | Before ... = ... | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:14 | After access to field x | +| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:24:21:35 | After access to field Field | +| AccessorCalls.cs:21:9:21:35 | After ... = ... | AccessorCalls.cs:21:9:21:35 | ... = ... | +| AccessorCalls.cs:21:9:21:35 | Before ... = ... | AccessorCalls.cs:21:9:21:36 | ...; | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:20:5:26:5 | {...} | -| AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | +| AccessorCalls.cs:21:9:21:36 | After ...; | AccessorCalls.cs:21:9:21:35 | After ... = ... | +| AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:29 | Before access to field x | +| AccessorCalls.cs:21:24:21:29 | After access to field x | AccessorCalls.cs:21:24:21:29 | access to field x | +| AccessorCalls.cs:21:24:21:29 | Before access to field x | AccessorCalls.cs:21:24:21:35 | Before access to field Field | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:24:21:29 | access to field x | -| AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:34 | ...; | +| AccessorCalls.cs:21:24:21:35 | After access to field Field | AccessorCalls.cs:21:24:21:35 | access to field Field | +| AccessorCalls.cs:21:24:21:35 | Before access to field Field | AccessorCalls.cs:21:9:21:20 | After access to field Field | +| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:24:21:29 | After access to field x | +| AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:14 | Before access to field x | +| AccessorCalls.cs:22:9:22:14 | After access to field x | AccessorCalls.cs:22:9:22:14 | access to field x | +| AccessorCalls.cs:22:9:22:14 | Before access to field x | AccessorCalls.cs:22:9:22:19 | Before access to property Prop | | AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:9:22:12 | this access | -| AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:23:22:33 | access to property Prop | -| AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:22:9:22:19 | access to property Prop | -| AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:21:9:21:35 | ... = ... | -| AccessorCalls.cs:22:23:22:26 | this access | AccessorCalls.cs:22:9:22:14 | access to field x | +| AccessorCalls.cs:22:9:22:19 | After access to property Prop | AccessorCalls.cs:22:9:22:19 | access to property Prop | +| AccessorCalls.cs:22:9:22:19 | Before access to property Prop | AccessorCalls.cs:22:9:22:33 | Before ... = ... | +| AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:14 | After access to field x | +| AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:22:23:22:33 | After access to property Prop | +| AccessorCalls.cs:22:9:22:33 | After ... = ... | AccessorCalls.cs:22:9:22:33 | ... = ... | +| AccessorCalls.cs:22:9:22:33 | Before ... = ... | AccessorCalls.cs:22:9:22:34 | ...; | +| AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:21:9:21:36 | After ...; | +| AccessorCalls.cs:22:9:22:34 | After ...; | AccessorCalls.cs:22:9:22:33 | After ... = ... | +| AccessorCalls.cs:22:23:22:26 | this access | AccessorCalls.cs:22:23:22:28 | Before access to field x | +| AccessorCalls.cs:22:23:22:28 | After access to field x | AccessorCalls.cs:22:23:22:28 | access to field x | +| AccessorCalls.cs:22:23:22:28 | Before access to field x | AccessorCalls.cs:22:23:22:33 | Before access to property Prop | | AccessorCalls.cs:22:23:22:28 | access to field x | AccessorCalls.cs:22:23:22:26 | this access | -| AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:22:23:22:28 | access to field x | -| AccessorCalls.cs:23:9:23:12 | this access | AccessorCalls.cs:23:9:23:30 | ...; | +| AccessorCalls.cs:22:23:22:33 | After access to property Prop | AccessorCalls.cs:22:23:22:33 | access to property Prop | +| AccessorCalls.cs:22:23:22:33 | Before access to property Prop | AccessorCalls.cs:22:9:22:19 | After access to property Prop | +| AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:22:23:22:28 | After access to field x | +| AccessorCalls.cs:23:9:23:12 | this access | AccessorCalls.cs:23:9:23:14 | Before access to field x | +| AccessorCalls.cs:23:9:23:14 | After access to field x | AccessorCalls.cs:23:9:23:14 | access to field x | +| AccessorCalls.cs:23:9:23:14 | Before access to field x | AccessorCalls.cs:23:9:23:17 | Before access to indexer | | AccessorCalls.cs:23:9:23:14 | access to field x | AccessorCalls.cs:23:9:23:12 | this access | -| AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:23:21:23:29 | access to indexer | -| AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:23:9:23:17 | access to indexer | -| AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:22:9:22:33 | ... = ... | -| AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:23:9:23:14 | access to field x | -| AccessorCalls.cs:23:21:23:24 | this access | AccessorCalls.cs:23:16:23:16 | 0 | +| AccessorCalls.cs:23:9:23:17 | After access to indexer | AccessorCalls.cs:23:9:23:17 | access to indexer | +| AccessorCalls.cs:23:9:23:17 | Before access to indexer | AccessorCalls.cs:23:9:23:29 | Before ... = ... | +| AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:23:16:23:16 | 0 | +| AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:23:21:23:29 | After access to indexer | +| AccessorCalls.cs:23:9:23:29 | After ... = ... | AccessorCalls.cs:23:9:23:29 | ... = ... | +| AccessorCalls.cs:23:9:23:29 | Before ... = ... | AccessorCalls.cs:23:9:23:30 | ...; | +| AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:22:9:22:34 | After ...; | +| AccessorCalls.cs:23:9:23:30 | After ...; | AccessorCalls.cs:23:9:23:29 | After ... = ... | +| AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:23:9:23:14 | After access to field x | +| AccessorCalls.cs:23:21:23:24 | this access | AccessorCalls.cs:23:21:23:26 | Before access to field x | +| AccessorCalls.cs:23:21:23:26 | After access to field x | AccessorCalls.cs:23:21:23:26 | access to field x | +| AccessorCalls.cs:23:21:23:26 | Before access to field x | AccessorCalls.cs:23:21:23:29 | Before access to indexer | | AccessorCalls.cs:23:21:23:26 | access to field x | AccessorCalls.cs:23:21:23:24 | this access | +| AccessorCalls.cs:23:21:23:29 | After access to indexer | AccessorCalls.cs:23:21:23:29 | access to indexer | +| AccessorCalls.cs:23:21:23:29 | Before access to indexer | AccessorCalls.cs:23:9:23:17 | After access to indexer | | AccessorCalls.cs:23:21:23:29 | access to indexer | AccessorCalls.cs:23:28:23:28 | 1 | -| AccessorCalls.cs:23:28:23:28 | 1 | AccessorCalls.cs:23:21:23:26 | access to field x | -| AccessorCalls.cs:24:9:24:12 | this access | AccessorCalls.cs:24:9:24:26 | ...; | +| AccessorCalls.cs:23:28:23:28 | 1 | AccessorCalls.cs:23:21:23:26 | After access to field x | +| AccessorCalls.cs:24:9:24:12 | this access | AccessorCalls.cs:24:9:24:14 | Before access to field x | +| AccessorCalls.cs:24:9:24:14 | After access to field x | AccessorCalls.cs:24:9:24:14 | access to field x | +| AccessorCalls.cs:24:9:24:14 | Before access to field x | AccessorCalls.cs:24:9:24:20 | Before access to event Event | | AccessorCalls.cs:24:9:24:14 | access to field x | AccessorCalls.cs:24:9:24:12 | this access | -| AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:24:25:24:25 | access to parameter e | -| AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:24:9:24:20 | access to event Event | -| AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:23:9:23:29 | ... = ... | -| AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:24:9:24:14 | access to field x | -| AccessorCalls.cs:25:9:25:12 | this access | AccessorCalls.cs:25:9:25:26 | ...; | +| AccessorCalls.cs:24:9:24:20 | After access to event Event | AccessorCalls.cs:24:9:24:20 | access to event Event | +| AccessorCalls.cs:24:9:24:20 | Before access to event Event | AccessorCalls.cs:24:9:24:25 | Before ... += ... | +| AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:24:9:24:14 | After access to field x | +| AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:24:25:24:25 | access to parameter e | +| AccessorCalls.cs:24:9:24:25 | After ... += ... | AccessorCalls.cs:24:9:24:25 | ... += ... | +| AccessorCalls.cs:24:9:24:25 | Before ... += ... | AccessorCalls.cs:24:9:24:26 | ...; | +| AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:23:9:23:30 | After ...; | +| AccessorCalls.cs:24:9:24:26 | After ...; | AccessorCalls.cs:24:9:24:25 | After ... += ... | +| AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:24:9:24:20 | After access to event Event | +| AccessorCalls.cs:25:9:25:12 | this access | AccessorCalls.cs:25:9:25:14 | Before access to field x | +| AccessorCalls.cs:25:9:25:14 | After access to field x | AccessorCalls.cs:25:9:25:14 | access to field x | +| AccessorCalls.cs:25:9:25:14 | Before access to field x | AccessorCalls.cs:25:9:25:20 | Before access to event Event | | AccessorCalls.cs:25:9:25:14 | access to field x | AccessorCalls.cs:25:9:25:12 | this access | -| AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:25:25:25:25 | access to parameter e | -| AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:25:9:25:20 | access to event Event | -| AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:24:9:24:25 | ... += ... | -| AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:25:9:25:14 | access to field x | -| AccessorCalls.cs:28:10:28:11 | exit M3 | AccessorCalls.cs:28:10:28:11 | exit M3 (normal) | -| AccessorCalls.cs:28:10:28:11 | exit M3 (normal) | AccessorCalls.cs:32:9:32:17 | ...++ | -| AccessorCalls.cs:29:5:33:5 | {...} | AccessorCalls.cs:28:10:28:11 | enter M3 | -| AccessorCalls.cs:30:9:30:12 | this access | AccessorCalls.cs:30:9:30:21 | ...; | +| AccessorCalls.cs:25:9:25:20 | After access to event Event | AccessorCalls.cs:25:9:25:20 | access to event Event | +| AccessorCalls.cs:25:9:25:20 | Before access to event Event | AccessorCalls.cs:25:9:25:25 | Before ... -= ... | +| AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:25:9:25:14 | After access to field x | +| AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:25:25:25:25 | access to parameter e | +| AccessorCalls.cs:25:9:25:25 | After ... -= ... | AccessorCalls.cs:25:9:25:25 | ... -= ... | +| AccessorCalls.cs:25:9:25:25 | Before ... -= ... | AccessorCalls.cs:25:9:25:26 | ...; | +| AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:24:9:24:26 | After ...; | +| AccessorCalls.cs:25:9:25:26 | After ...; | AccessorCalls.cs:25:9:25:25 | After ... -= ... | +| AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:25:9:25:20 | After access to event Event | +| AccessorCalls.cs:28:10:28:11 | Exit | AccessorCalls.cs:28:10:28:11 | Normal Exit | +| AccessorCalls.cs:28:10:28:11 | Normal Exit | AccessorCalls.cs:29:5:33:5 | After {...} | +| AccessorCalls.cs:29:5:33:5 | After {...} | AccessorCalls.cs:32:9:32:18 | After ...; | +| AccessorCalls.cs:29:5:33:5 | {...} | AccessorCalls.cs:28:10:28:11 | Entry | +| AccessorCalls.cs:30:9:30:12 | this access | AccessorCalls.cs:30:9:30:18 | Before access to field Field | +| AccessorCalls.cs:30:9:30:18 | After access to field Field | AccessorCalls.cs:30:9:30:18 | access to field Field | +| AccessorCalls.cs:30:9:30:18 | Before access to field Field | AccessorCalls.cs:30:9:30:20 | Before ...++ | | AccessorCalls.cs:30:9:30:18 | access to field Field | AccessorCalls.cs:30:9:30:12 | this access | -| AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:30:9:30:18 | access to field Field | +| AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:30:9:30:18 | After access to field Field | +| AccessorCalls.cs:30:9:30:20 | After ...++ | AccessorCalls.cs:30:9:30:20 | ...++ | +| AccessorCalls.cs:30:9:30:20 | Before ...++ | AccessorCalls.cs:30:9:30:21 | ...; | | AccessorCalls.cs:30:9:30:21 | ...; | AccessorCalls.cs:29:5:33:5 | {...} | -| AccessorCalls.cs:31:9:31:12 | this access | AccessorCalls.cs:31:9:31:20 | ...; | +| AccessorCalls.cs:30:9:30:21 | After ...; | AccessorCalls.cs:30:9:30:20 | After ...++ | +| AccessorCalls.cs:31:9:31:12 | this access | AccessorCalls.cs:31:9:31:17 | Before access to property Prop | +| AccessorCalls.cs:31:9:31:17 | After access to property Prop | AccessorCalls.cs:31:9:31:17 | access to property Prop | +| AccessorCalls.cs:31:9:31:17 | Before access to property Prop | AccessorCalls.cs:31:9:31:19 | Before ...++ | | AccessorCalls.cs:31:9:31:17 | access to property Prop | AccessorCalls.cs:31:9:31:12 | this access | -| AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:31:9:31:17 | access to property Prop | -| AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:30:9:30:20 | ...++ | -| AccessorCalls.cs:32:9:32:12 | this access | AccessorCalls.cs:32:9:32:18 | ...; | +| AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:31:9:31:17 | After access to property Prop | +| AccessorCalls.cs:31:9:31:19 | After ...++ | AccessorCalls.cs:31:9:31:19 | ...++ | +| AccessorCalls.cs:31:9:31:19 | Before ...++ | AccessorCalls.cs:31:9:31:20 | ...; | +| AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:30:9:30:21 | After ...; | +| AccessorCalls.cs:31:9:31:20 | After ...; | AccessorCalls.cs:31:9:31:19 | After ...++ | +| AccessorCalls.cs:32:9:32:12 | this access | AccessorCalls.cs:32:9:32:15 | Before access to indexer | +| AccessorCalls.cs:32:9:32:15 | After access to indexer | AccessorCalls.cs:32:9:32:15 | access to indexer | +| AccessorCalls.cs:32:9:32:15 | Before access to indexer | AccessorCalls.cs:32:9:32:17 | Before ...++ | | AccessorCalls.cs:32:9:32:15 | access to indexer | AccessorCalls.cs:32:14:32:14 | 0 | -| AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:32:9:32:15 | access to indexer | -| AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:31:9:31:19 | ...++ | +| AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:32:9:32:15 | After access to indexer | +| AccessorCalls.cs:32:9:32:17 | After ...++ | AccessorCalls.cs:32:9:32:17 | ...++ | +| AccessorCalls.cs:32:9:32:17 | Before ...++ | AccessorCalls.cs:32:9:32:18 | ...; | +| AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:31:9:31:20 | After ...; | +| AccessorCalls.cs:32:9:32:18 | After ...; | AccessorCalls.cs:32:9:32:17 | After ...++ | | AccessorCalls.cs:32:14:32:14 | 0 | AccessorCalls.cs:32:9:32:12 | this access | -| AccessorCalls.cs:35:10:35:11 | exit M4 | AccessorCalls.cs:35:10:35:11 | exit M4 (normal) | -| AccessorCalls.cs:35:10:35:11 | exit M4 (normal) | AccessorCalls.cs:39:9:39:19 | ...++ | -| AccessorCalls.cs:36:5:40:5 | {...} | AccessorCalls.cs:35:10:35:11 | enter M4 | -| AccessorCalls.cs:37:9:37:12 | this access | AccessorCalls.cs:37:9:37:23 | ...; | +| AccessorCalls.cs:35:10:35:11 | Exit | AccessorCalls.cs:35:10:35:11 | Normal Exit | +| AccessorCalls.cs:35:10:35:11 | Normal Exit | AccessorCalls.cs:36:5:40:5 | After {...} | +| AccessorCalls.cs:36:5:40:5 | After {...} | AccessorCalls.cs:39:9:39:20 | After ...; | +| AccessorCalls.cs:36:5:40:5 | {...} | AccessorCalls.cs:35:10:35:11 | Entry | +| AccessorCalls.cs:37:9:37:12 | this access | AccessorCalls.cs:37:9:37:14 | Before access to field x | +| AccessorCalls.cs:37:9:37:14 | After access to field x | AccessorCalls.cs:37:9:37:14 | access to field x | +| AccessorCalls.cs:37:9:37:14 | Before access to field x | AccessorCalls.cs:37:9:37:20 | Before access to field Field | | AccessorCalls.cs:37:9:37:14 | access to field x | AccessorCalls.cs:37:9:37:12 | this access | -| AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:37:9:37:14 | access to field x | -| AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:37:9:37:20 | access to field Field | +| AccessorCalls.cs:37:9:37:20 | After access to field Field | AccessorCalls.cs:37:9:37:20 | access to field Field | +| AccessorCalls.cs:37:9:37:20 | Before access to field Field | AccessorCalls.cs:37:9:37:22 | Before ...++ | +| AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:37:9:37:14 | After access to field x | +| AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:37:9:37:20 | After access to field Field | +| AccessorCalls.cs:37:9:37:22 | After ...++ | AccessorCalls.cs:37:9:37:22 | ...++ | +| AccessorCalls.cs:37:9:37:22 | Before ...++ | AccessorCalls.cs:37:9:37:23 | ...; | | AccessorCalls.cs:37:9:37:23 | ...; | AccessorCalls.cs:36:5:40:5 | {...} | -| AccessorCalls.cs:38:9:38:12 | this access | AccessorCalls.cs:38:9:38:22 | ...; | +| AccessorCalls.cs:37:9:37:23 | After ...; | AccessorCalls.cs:37:9:37:22 | After ...++ | +| AccessorCalls.cs:38:9:38:12 | this access | AccessorCalls.cs:38:9:38:14 | Before access to field x | +| AccessorCalls.cs:38:9:38:14 | After access to field x | AccessorCalls.cs:38:9:38:14 | access to field x | +| AccessorCalls.cs:38:9:38:14 | Before access to field x | AccessorCalls.cs:38:9:38:19 | Before access to property Prop | | AccessorCalls.cs:38:9:38:14 | access to field x | AccessorCalls.cs:38:9:38:12 | this access | -| AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:38:9:38:14 | access to field x | -| AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:38:9:38:19 | access to property Prop | -| AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:37:9:37:22 | ...++ | -| AccessorCalls.cs:39:9:39:12 | this access | AccessorCalls.cs:39:9:39:20 | ...; | +| AccessorCalls.cs:38:9:38:19 | After access to property Prop | AccessorCalls.cs:38:9:38:19 | access to property Prop | +| AccessorCalls.cs:38:9:38:19 | Before access to property Prop | AccessorCalls.cs:38:9:38:21 | Before ...++ | +| AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:38:9:38:14 | After access to field x | +| AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:38:9:38:19 | After access to property Prop | +| AccessorCalls.cs:38:9:38:21 | After ...++ | AccessorCalls.cs:38:9:38:21 | ...++ | +| AccessorCalls.cs:38:9:38:21 | Before ...++ | AccessorCalls.cs:38:9:38:22 | ...; | +| AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:37:9:37:23 | After ...; | +| AccessorCalls.cs:38:9:38:22 | After ...; | AccessorCalls.cs:38:9:38:21 | After ...++ | +| AccessorCalls.cs:39:9:39:12 | this access | AccessorCalls.cs:39:9:39:14 | Before access to field x | +| AccessorCalls.cs:39:9:39:14 | After access to field x | AccessorCalls.cs:39:9:39:14 | access to field x | +| AccessorCalls.cs:39:9:39:14 | Before access to field x | AccessorCalls.cs:39:9:39:17 | Before access to indexer | | AccessorCalls.cs:39:9:39:14 | access to field x | AccessorCalls.cs:39:9:39:12 | this access | +| AccessorCalls.cs:39:9:39:17 | After access to indexer | AccessorCalls.cs:39:9:39:17 | access to indexer | +| AccessorCalls.cs:39:9:39:17 | Before access to indexer | AccessorCalls.cs:39:9:39:19 | Before ...++ | | AccessorCalls.cs:39:9:39:17 | access to indexer | AccessorCalls.cs:39:16:39:16 | 0 | -| AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:39:9:39:17 | access to indexer | -| AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:38:9:38:21 | ...++ | -| AccessorCalls.cs:39:16:39:16 | 0 | AccessorCalls.cs:39:9:39:14 | access to field x | -| AccessorCalls.cs:42:10:42:11 | exit M5 | AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | -| AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | AccessorCalls.cs:46:9:46:26 | ... += ... | -| AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:42:10:42:11 | enter M5 | -| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:33 | ...; | +| AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:39:9:39:17 | After access to indexer | +| AccessorCalls.cs:39:9:39:19 | After ...++ | AccessorCalls.cs:39:9:39:19 | ...++ | +| AccessorCalls.cs:39:9:39:19 | Before ...++ | AccessorCalls.cs:39:9:39:20 | ...; | +| AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:38:9:38:22 | After ...; | +| AccessorCalls.cs:39:9:39:20 | After ...; | AccessorCalls.cs:39:9:39:19 | After ...++ | +| AccessorCalls.cs:39:16:39:16 | 0 | AccessorCalls.cs:39:9:39:14 | After access to field x | +| AccessorCalls.cs:42:10:42:11 | Exit | AccessorCalls.cs:42:10:42:11 | Normal Exit | +| AccessorCalls.cs:42:10:42:11 | Normal Exit | AccessorCalls.cs:43:5:47:5 | After {...} | +| AccessorCalls.cs:43:5:47:5 | After {...} | AccessorCalls.cs:46:9:46:27 | After ...; | +| AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:42:10:42:11 | Entry | +| AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | Before access to field Field | +| AccessorCalls.cs:44:9:44:18 | After access to field Field | AccessorCalls.cs:44:9:44:18 | access to field Field | +| AccessorCalls.cs:44:9:44:18 | Before access to field Field | AccessorCalls.cs:44:9:44:32 | Before ... += ... | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:12 | this access | -| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:44:23:44:32 | access to field Field | +| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:44:23:44:32 | After access to field Field | +| AccessorCalls.cs:44:9:44:32 | After ... += ... | AccessorCalls.cs:44:9:44:32 | ... += ... | +| AccessorCalls.cs:44:9:44:32 | Before ... += ... | AccessorCalls.cs:44:9:44:33 | ...; | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:43:5:47:5 | {...} | -| AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | +| AccessorCalls.cs:44:9:44:33 | After ...; | AccessorCalls.cs:44:9:44:32 | After ... += ... | +| AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | Before access to field Field | +| AccessorCalls.cs:44:23:44:32 | After access to field Field | AccessorCalls.cs:44:23:44:32 | access to field Field | +| AccessorCalls.cs:44:23:44:32 | Before access to field Field | AccessorCalls.cs:44:9:44:18 | After access to field Field | | AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | -| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:31 | ...; | +| AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:17 | Before access to property Prop | +| AccessorCalls.cs:45:9:45:17 | After access to property Prop | AccessorCalls.cs:45:9:45:17 | access to property Prop | +| AccessorCalls.cs:45:9:45:17 | Before access to property Prop | AccessorCalls.cs:45:9:45:30 | Before ... += ... | | AccessorCalls.cs:45:9:45:17 | access to property Prop | AccessorCalls.cs:45:9:45:12 | this access | -| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:45:22:45:30 | access to property Prop | -| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:44:9:44:32 | ... += ... | -| AccessorCalls.cs:45:22:45:25 | this access | AccessorCalls.cs:45:9:45:17 | access to property Prop | +| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:45:22:45:30 | After access to property Prop | +| AccessorCalls.cs:45:9:45:30 | After ... += ... | AccessorCalls.cs:45:9:45:30 | ... += ... | +| AccessorCalls.cs:45:9:45:30 | Before ... += ... | AccessorCalls.cs:45:9:45:31 | ...; | +| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:44:9:44:33 | After ...; | +| AccessorCalls.cs:45:9:45:31 | After ...; | AccessorCalls.cs:45:9:45:30 | After ... += ... | +| AccessorCalls.cs:45:22:45:25 | this access | AccessorCalls.cs:45:22:45:30 | Before access to property Prop | +| AccessorCalls.cs:45:22:45:30 | After access to property Prop | AccessorCalls.cs:45:22:45:30 | access to property Prop | +| AccessorCalls.cs:45:22:45:30 | Before access to property Prop | AccessorCalls.cs:45:9:45:17 | After access to property Prop | | AccessorCalls.cs:45:22:45:30 | access to property Prop | AccessorCalls.cs:45:22:45:25 | this access | -| AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:9:46:27 | ...; | +| AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:9:46:15 | Before access to indexer | +| AccessorCalls.cs:46:9:46:15 | After access to indexer | AccessorCalls.cs:46:9:46:15 | access to indexer | +| AccessorCalls.cs:46:9:46:15 | Before access to indexer | AccessorCalls.cs:46:9:46:26 | Before ... += ... | | AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:46:14:46:14 | 0 | -| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:46:20:46:26 | access to indexer | -| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:45:9:45:30 | ... += ... | +| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:46:20:46:26 | After access to indexer | +| AccessorCalls.cs:46:9:46:26 | After ... += ... | AccessorCalls.cs:46:9:46:26 | ... += ... | +| AccessorCalls.cs:46:9:46:26 | Before ... += ... | AccessorCalls.cs:46:9:46:27 | ...; | +| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:45:9:45:31 | After ...; | +| AccessorCalls.cs:46:9:46:27 | After ...; | AccessorCalls.cs:46:9:46:26 | After ... += ... | | AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:46:9:46:12 | this access | -| AccessorCalls.cs:46:20:46:23 | this access | AccessorCalls.cs:46:9:46:15 | access to indexer | +| AccessorCalls.cs:46:20:46:23 | this access | AccessorCalls.cs:46:20:46:26 | Before access to indexer | +| AccessorCalls.cs:46:20:46:26 | After access to indexer | AccessorCalls.cs:46:20:46:26 | access to indexer | +| AccessorCalls.cs:46:20:46:26 | Before access to indexer | AccessorCalls.cs:46:9:46:15 | After access to indexer | | AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:46:25:46:25 | 0 | | AccessorCalls.cs:46:25:46:25 | 0 | AccessorCalls.cs:46:20:46:23 | this access | -| AccessorCalls.cs:49:10:49:11 | exit M6 | AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | -| AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | AccessorCalls.cs:53:9:53:30 | ... += ... | -| AccessorCalls.cs:50:5:54:5 | {...} | AccessorCalls.cs:49:10:49:11 | enter M6 | -| AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:37 | ...; | +| AccessorCalls.cs:49:10:49:11 | Exit | AccessorCalls.cs:49:10:49:11 | Normal Exit | +| AccessorCalls.cs:49:10:49:11 | Normal Exit | AccessorCalls.cs:50:5:54:5 | After {...} | +| AccessorCalls.cs:50:5:54:5 | After {...} | AccessorCalls.cs:53:9:53:31 | After ...; | +| AccessorCalls.cs:50:5:54:5 | {...} | AccessorCalls.cs:49:10:49:11 | Entry | +| AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:14 | Before access to field x | +| AccessorCalls.cs:51:9:51:14 | After access to field x | AccessorCalls.cs:51:9:51:14 | access to field x | +| AccessorCalls.cs:51:9:51:14 | Before access to field x | AccessorCalls.cs:51:9:51:20 | Before access to field Field | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | -| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:14 | access to field x | -| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:51:25:51:36 | access to field Field | +| AccessorCalls.cs:51:9:51:20 | After access to field Field | AccessorCalls.cs:51:9:51:20 | access to field Field | +| AccessorCalls.cs:51:9:51:20 | Before access to field Field | AccessorCalls.cs:51:9:51:36 | Before ... += ... | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:14 | After access to field x | +| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:51:25:51:36 | After access to field Field | +| AccessorCalls.cs:51:9:51:36 | After ... += ... | AccessorCalls.cs:51:9:51:36 | ... += ... | +| AccessorCalls.cs:51:9:51:36 | Before ... += ... | AccessorCalls.cs:51:9:51:37 | ...; | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:50:5:54:5 | {...} | -| AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:9:51:20 | access to field Field | +| AccessorCalls.cs:51:9:51:37 | After ...; | AccessorCalls.cs:51:9:51:36 | After ... += ... | +| AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | Before access to field x | +| AccessorCalls.cs:51:25:51:30 | After access to field x | AccessorCalls.cs:51:25:51:30 | access to field x | +| AccessorCalls.cs:51:25:51:30 | Before access to field x | AccessorCalls.cs:51:25:51:36 | Before access to field Field | | AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:28 | this access | -| AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:51:25:51:30 | access to field x | -| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:35 | ...; | +| AccessorCalls.cs:51:25:51:36 | After access to field Field | AccessorCalls.cs:51:25:51:36 | access to field Field | +| AccessorCalls.cs:51:25:51:36 | Before access to field Field | AccessorCalls.cs:51:9:51:20 | After access to field Field | +| AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:51:25:51:30 | After access to field x | +| AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:14 | Before access to field x | +| AccessorCalls.cs:52:9:52:14 | After access to field x | AccessorCalls.cs:52:9:52:14 | access to field x | +| AccessorCalls.cs:52:9:52:14 | Before access to field x | AccessorCalls.cs:52:9:52:19 | Before access to property Prop | | AccessorCalls.cs:52:9:52:14 | access to field x | AccessorCalls.cs:52:9:52:12 | this access | -| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:14 | access to field x | -| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:52:24:52:34 | access to property Prop | -| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:51:9:51:36 | ... += ... | -| AccessorCalls.cs:52:24:52:27 | this access | AccessorCalls.cs:52:9:52:19 | access to property Prop | +| AccessorCalls.cs:52:9:52:19 | After access to property Prop | AccessorCalls.cs:52:9:52:19 | access to property Prop | +| AccessorCalls.cs:52:9:52:19 | Before access to property Prop | AccessorCalls.cs:52:9:52:34 | Before ... += ... | +| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:14 | After access to field x | +| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:52:24:52:34 | After access to property Prop | +| AccessorCalls.cs:52:9:52:34 | After ... += ... | AccessorCalls.cs:52:9:52:34 | ... += ... | +| AccessorCalls.cs:52:9:52:34 | Before ... += ... | AccessorCalls.cs:52:9:52:35 | ...; | +| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:51:9:51:37 | After ...; | +| AccessorCalls.cs:52:9:52:35 | After ...; | AccessorCalls.cs:52:9:52:34 | After ... += ... | +| AccessorCalls.cs:52:24:52:27 | this access | AccessorCalls.cs:52:24:52:29 | Before access to field x | +| AccessorCalls.cs:52:24:52:29 | After access to field x | AccessorCalls.cs:52:24:52:29 | access to field x | +| AccessorCalls.cs:52:24:52:29 | Before access to field x | AccessorCalls.cs:52:24:52:34 | Before access to property Prop | | AccessorCalls.cs:52:24:52:29 | access to field x | AccessorCalls.cs:52:24:52:27 | this access | -| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:24:52:29 | access to field x | -| AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:31 | ...; | +| AccessorCalls.cs:52:24:52:34 | After access to property Prop | AccessorCalls.cs:52:24:52:34 | access to property Prop | +| AccessorCalls.cs:52:24:52:34 | Before access to property Prop | AccessorCalls.cs:52:9:52:19 | After access to property Prop | +| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:24:52:29 | After access to field x | +| AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:14 | Before access to field x | +| AccessorCalls.cs:53:9:53:14 | After access to field x | AccessorCalls.cs:53:9:53:14 | access to field x | +| AccessorCalls.cs:53:9:53:14 | Before access to field x | AccessorCalls.cs:53:9:53:17 | Before access to indexer | | AccessorCalls.cs:53:9:53:14 | access to field x | AccessorCalls.cs:53:9:53:12 | this access | +| AccessorCalls.cs:53:9:53:17 | After access to indexer | AccessorCalls.cs:53:9:53:17 | access to indexer | +| AccessorCalls.cs:53:9:53:17 | Before access to indexer | AccessorCalls.cs:53:9:53:30 | Before ... += ... | | AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:16:53:16 | 0 | -| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:53:22:53:30 | access to indexer | -| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:52:9:52:34 | ... += ... | -| AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:53:9:53:14 | access to field x | -| AccessorCalls.cs:53:22:53:25 | this access | AccessorCalls.cs:53:9:53:17 | access to indexer | +| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:53:22:53:30 | After access to indexer | +| AccessorCalls.cs:53:9:53:30 | After ... += ... | AccessorCalls.cs:53:9:53:30 | ... += ... | +| AccessorCalls.cs:53:9:53:30 | Before ... += ... | AccessorCalls.cs:53:9:53:31 | ...; | +| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:52:9:52:35 | After ...; | +| AccessorCalls.cs:53:9:53:31 | After ...; | AccessorCalls.cs:53:9:53:30 | After ... += ... | +| AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:53:9:53:14 | After access to field x | +| AccessorCalls.cs:53:22:53:25 | this access | AccessorCalls.cs:53:22:53:27 | Before access to field x | +| AccessorCalls.cs:53:22:53:27 | After access to field x | AccessorCalls.cs:53:22:53:27 | access to field x | +| AccessorCalls.cs:53:22:53:27 | Before access to field x | AccessorCalls.cs:53:22:53:30 | Before access to indexer | | AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:53:22:53:25 | this access | +| AccessorCalls.cs:53:22:53:30 | After access to indexer | AccessorCalls.cs:53:22:53:30 | access to indexer | +| AccessorCalls.cs:53:22:53:30 | Before access to indexer | AccessorCalls.cs:53:9:53:17 | After access to indexer | | AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:53:29:53:29 | 0 | -| AccessorCalls.cs:53:29:53:29 | 0 | AccessorCalls.cs:53:22:53:27 | access to field x | -| AccessorCalls.cs:56:10:56:11 | exit M7 | AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | -| AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | AccessorCalls.cs:58:9:58:85 | ... = ... | -| AccessorCalls.cs:57:5:59:5 | {...} | AccessorCalls.cs:56:10:56:11 | enter M7 | -| AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:58:33:58:44 | (..., ...) | -| AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:58:37:58:43 | access to indexer | +| AccessorCalls.cs:53:29:53:29 | 0 | AccessorCalls.cs:53:22:53:27 | After access to field x | +| AccessorCalls.cs:56:10:56:11 | Exit | AccessorCalls.cs:56:10:56:11 | Normal Exit | +| AccessorCalls.cs:56:10:56:11 | Normal Exit | AccessorCalls.cs:57:5:59:5 | After {...} | +| AccessorCalls.cs:57:5:59:5 | After {...} | AccessorCalls.cs:58:9:58:86 | After ...; | +| AccessorCalls.cs:57:5:59:5 | {...} | AccessorCalls.cs:56:10:56:11 | Entry | +| AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:58:33:58:44 | After (..., ...) | +| AccessorCalls.cs:58:9:58:45 | After (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | +| AccessorCalls.cs:58:9:58:45 | Before (..., ...) | AccessorCalls.cs:58:9:58:85 | Before ... = ... | +| AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:58:49:58:85 | After (..., ...) | +| AccessorCalls.cs:58:9:58:85 | After ... = ... | AccessorCalls.cs:58:9:58:85 | ... = ... | +| AccessorCalls.cs:58:9:58:85 | Before ... = ... | AccessorCalls.cs:58:9:58:86 | ...; | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:57:5:59:5 | {...} | -| AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:9:58:86 | ...; | -| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:49:58:85 | (..., ...) | -| AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:10:58:13 | this access | -| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:10:58:19 | access to field Field | -| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:42:58:42 | 0 | -| AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:22:58:25 | this access | -| AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:22:58:30 | access to property Prop | +| AccessorCalls.cs:58:9:58:86 | After ...; | AccessorCalls.cs:58:9:58:85 | After ... = ... | +| AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:10:58:19 | Before access to field Field | +| AccessorCalls.cs:58:10:58:19 | After access to field Field | AccessorCalls.cs:58:10:58:19 | access to field Field | +| AccessorCalls.cs:58:10:58:19 | Before access to field Field | AccessorCalls.cs:58:9:58:45 | Before (..., ...) | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:10:58:13 | this access | +| AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:22:58:30 | Before access to property Prop | +| AccessorCalls.cs:58:22:58:30 | After access to property Prop | AccessorCalls.cs:58:22:58:30 | access to property Prop | +| AccessorCalls.cs:58:22:58:30 | Before access to property Prop | AccessorCalls.cs:58:10:58:19 | After access to field Field | +| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:22:58:25 | this access | +| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:37:58:43 | After access to indexer | +| AccessorCalls.cs:58:33:58:44 | After (..., ...) | AccessorCalls.cs:58:33:58:44 | (..., ...) | +| AccessorCalls.cs:58:33:58:44 | Before (..., ...) | AccessorCalls.cs:58:22:58:30 | After access to property Prop | +| AccessorCalls.cs:58:34:58:34 | access to parameter i | AccessorCalls.cs:58:33:58:44 | Before (..., ...) | +| AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:37:58:43 | Before access to indexer | +| AccessorCalls.cs:58:37:58:43 | After access to indexer | AccessorCalls.cs:58:37:58:43 | access to indexer | +| AccessorCalls.cs:58:37:58:43 | Before access to indexer | AccessorCalls.cs:58:34:58:34 | access to parameter i | +| AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:42:58:42 | 0 | | AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:37:58:40 | this access | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:73:58:84 | (..., ...) | -| AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:9:58:45 | (..., ...) | +| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:73:58:84 | After (..., ...) | +| AccessorCalls.cs:58:49:58:85 | After (..., ...) | AccessorCalls.cs:58:49:58:85 | (..., ...) | +| AccessorCalls.cs:58:49:58:85 | Before (..., ...) | AccessorCalls.cs:58:9:58:45 | After (..., ...) | +| AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:59 | Before access to field Field | +| AccessorCalls.cs:58:50:58:59 | After access to field Field | AccessorCalls.cs:58:50:58:59 | access to field Field | +| AccessorCalls.cs:58:50:58:59 | Before access to field Field | AccessorCalls.cs:58:49:58:85 | Before (..., ...) | | AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:50:58:53 | this access | -| AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:50:58:59 | access to field Field | +| AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:70 | Before access to property Prop | +| AccessorCalls.cs:58:62:58:70 | After access to property Prop | AccessorCalls.cs:58:62:58:70 | access to property Prop | +| AccessorCalls.cs:58:62:58:70 | Before access to property Prop | AccessorCalls.cs:58:50:58:59 | After access to field Field | | AccessorCalls.cs:58:62:58:70 | access to property Prop | AccessorCalls.cs:58:62:58:65 | this access | -| AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:58:77:58:83 | access to indexer | -| AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:58:62:58:70 | access to property Prop | -| AccessorCalls.cs:58:77:58:80 | this access | AccessorCalls.cs:58:74:58:74 | 0 | +| AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:58:77:58:83 | After access to indexer | +| AccessorCalls.cs:58:73:58:84 | After (..., ...) | AccessorCalls.cs:58:73:58:84 | (..., ...) | +| AccessorCalls.cs:58:73:58:84 | Before (..., ...) | AccessorCalls.cs:58:62:58:70 | After access to property Prop | +| AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:58:73:58:84 | Before (..., ...) | +| AccessorCalls.cs:58:77:58:80 | this access | AccessorCalls.cs:58:77:58:83 | Before access to indexer | +| AccessorCalls.cs:58:77:58:83 | After access to indexer | AccessorCalls.cs:58:77:58:83 | access to indexer | +| AccessorCalls.cs:58:77:58:83 | Before access to indexer | AccessorCalls.cs:58:74:58:74 | 0 | | AccessorCalls.cs:58:77:58:83 | access to indexer | AccessorCalls.cs:58:82:58:82 | 1 | | AccessorCalls.cs:58:82:58:82 | 1 | AccessorCalls.cs:58:77:58:80 | this access | -| AccessorCalls.cs:61:10:61:11 | exit M8 | AccessorCalls.cs:61:10:61:11 | exit M8 (normal) | -| AccessorCalls.cs:61:10:61:11 | exit M8 (normal) | AccessorCalls.cs:63:9:63:97 | ... = ... | -| AccessorCalls.cs:62:5:64:5 | {...} | AccessorCalls.cs:61:10:61:11 | enter M8 | -| AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:63:37:63:50 | (..., ...) | -| AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:63:41:63:49 | access to indexer | +| AccessorCalls.cs:61:10:61:11 | Exit | AccessorCalls.cs:61:10:61:11 | Normal Exit | +| AccessorCalls.cs:61:10:61:11 | Normal Exit | AccessorCalls.cs:62:5:64:5 | After {...} | +| AccessorCalls.cs:62:5:64:5 | After {...} | AccessorCalls.cs:63:9:63:98 | After ...; | +| AccessorCalls.cs:62:5:64:5 | {...} | AccessorCalls.cs:61:10:61:11 | Entry | +| AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:63:37:63:50 | After (..., ...) | +| AccessorCalls.cs:63:9:63:51 | After (..., ...) | AccessorCalls.cs:63:9:63:51 | (..., ...) | +| AccessorCalls.cs:63:9:63:51 | Before (..., ...) | AccessorCalls.cs:63:9:63:97 | Before ... = ... | +| AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:63:55:63:97 | After (..., ...) | +| AccessorCalls.cs:63:9:63:97 | After ... = ... | AccessorCalls.cs:63:9:63:97 | ... = ... | +| AccessorCalls.cs:63:9:63:97 | Before ... = ... | AccessorCalls.cs:63:9:63:98 | ...; | | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:62:5:64:5 | {...} | -| AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:9:63:98 | ...; | +| AccessorCalls.cs:63:9:63:98 | After ...; | AccessorCalls.cs:63:9:63:97 | After ... = ... | +| AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:15 | Before access to field x | +| AccessorCalls.cs:63:10:63:15 | After access to field x | AccessorCalls.cs:63:10:63:15 | access to field x | +| AccessorCalls.cs:63:10:63:15 | Before access to field x | AccessorCalls.cs:63:10:63:21 | Before access to field Field | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:10:63:13 | this access | -| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:55:63:97 | (..., ...) | -| AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | +| AccessorCalls.cs:63:10:63:21 | After access to field Field | AccessorCalls.cs:63:10:63:21 | access to field Field | +| AccessorCalls.cs:63:10:63:21 | Before access to field Field | AccessorCalls.cs:63:9:63:51 | Before (..., ...) | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:10:63:15 | After access to field x | +| AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:29 | Before access to field x | +| AccessorCalls.cs:63:24:63:29 | After access to field x | AccessorCalls.cs:63:24:63:29 | access to field x | +| AccessorCalls.cs:63:24:63:29 | Before access to field x | AccessorCalls.cs:63:24:63:34 | Before access to property Prop | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | -| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:10:63:21 | access to field Field | -| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:48:63:48 | 0 | -| AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | +| AccessorCalls.cs:63:24:63:34 | After access to property Prop | AccessorCalls.cs:63:24:63:34 | access to property Prop | +| AccessorCalls.cs:63:24:63:34 | Before access to property Prop | AccessorCalls.cs:63:10:63:21 | After access to field Field | +| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:24:63:29 | After access to field x | +| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:41:63:49 | After access to indexer | +| AccessorCalls.cs:63:37:63:50 | After (..., ...) | AccessorCalls.cs:63:37:63:50 | (..., ...) | +| AccessorCalls.cs:63:37:63:50 | Before (..., ...) | AccessorCalls.cs:63:24:63:34 | After access to property Prop | +| AccessorCalls.cs:63:38:63:38 | access to parameter i | AccessorCalls.cs:63:37:63:50 | Before (..., ...) | +| AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:41:63:46 | Before access to field x | +| AccessorCalls.cs:63:41:63:46 | After access to field x | AccessorCalls.cs:63:41:63:46 | access to field x | +| AccessorCalls.cs:63:41:63:46 | Before access to field x | AccessorCalls.cs:63:41:63:49 | Before access to indexer | | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | -| AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:24:63:34 | access to property Prop | -| AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:41:63:46 | access to field x | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:83:63:96 | (..., ...) | -| AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:9:63:51 | (..., ...) | +| AccessorCalls.cs:63:41:63:49 | After access to indexer | AccessorCalls.cs:63:41:63:49 | access to indexer | +| AccessorCalls.cs:63:41:63:49 | Before access to indexer | AccessorCalls.cs:63:38:63:38 | access to parameter i | +| AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:48:63:48 | 0 | +| AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:41:63:46 | After access to field x | +| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:83:63:96 | After (..., ...) | +| AccessorCalls.cs:63:55:63:97 | After (..., ...) | AccessorCalls.cs:63:55:63:97 | (..., ...) | +| AccessorCalls.cs:63:55:63:97 | Before (..., ...) | AccessorCalls.cs:63:9:63:51 | After (..., ...) | +| AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:61 | Before access to field x | +| AccessorCalls.cs:63:56:63:61 | After access to field x | AccessorCalls.cs:63:56:63:61 | access to field x | +| AccessorCalls.cs:63:56:63:61 | Before access to field x | AccessorCalls.cs:63:56:63:67 | Before access to field Field | | AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:59 | this access | -| AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:56:63:61 | access to field x | -| AccessorCalls.cs:63:70:63:73 | this access | AccessorCalls.cs:63:56:63:67 | access to field Field | +| AccessorCalls.cs:63:56:63:67 | After access to field Field | AccessorCalls.cs:63:56:63:67 | access to field Field | +| AccessorCalls.cs:63:56:63:67 | Before access to field Field | AccessorCalls.cs:63:55:63:97 | Before (..., ...) | +| AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:56:63:61 | After access to field x | +| AccessorCalls.cs:63:70:63:73 | this access | AccessorCalls.cs:63:70:63:75 | Before access to field x | +| AccessorCalls.cs:63:70:63:75 | After access to field x | AccessorCalls.cs:63:70:63:75 | access to field x | +| AccessorCalls.cs:63:70:63:75 | Before access to field x | AccessorCalls.cs:63:70:63:80 | Before access to property Prop | | AccessorCalls.cs:63:70:63:75 | access to field x | AccessorCalls.cs:63:70:63:73 | this access | -| AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:63:70:63:75 | access to field x | -| AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:63:87:63:95 | access to indexer | -| AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:63:70:63:80 | access to property Prop | -| AccessorCalls.cs:63:87:63:90 | this access | AccessorCalls.cs:63:84:63:84 | 0 | +| AccessorCalls.cs:63:70:63:80 | After access to property Prop | AccessorCalls.cs:63:70:63:80 | access to property Prop | +| AccessorCalls.cs:63:70:63:80 | Before access to property Prop | AccessorCalls.cs:63:56:63:67 | After access to field Field | +| AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:63:70:63:75 | After access to field x | +| AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:63:87:63:95 | After access to indexer | +| AccessorCalls.cs:63:83:63:96 | After (..., ...) | AccessorCalls.cs:63:83:63:96 | (..., ...) | +| AccessorCalls.cs:63:83:63:96 | Before (..., ...) | AccessorCalls.cs:63:70:63:80 | After access to property Prop | +| AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:63:83:63:96 | Before (..., ...) | +| AccessorCalls.cs:63:87:63:90 | this access | AccessorCalls.cs:63:87:63:92 | Before access to field x | +| AccessorCalls.cs:63:87:63:92 | After access to field x | AccessorCalls.cs:63:87:63:92 | access to field x | +| AccessorCalls.cs:63:87:63:92 | Before access to field x | AccessorCalls.cs:63:87:63:95 | Before access to indexer | | AccessorCalls.cs:63:87:63:92 | access to field x | AccessorCalls.cs:63:87:63:90 | this access | +| AccessorCalls.cs:63:87:63:95 | After access to indexer | AccessorCalls.cs:63:87:63:95 | access to indexer | +| AccessorCalls.cs:63:87:63:95 | Before access to indexer | AccessorCalls.cs:63:84:63:84 | 0 | | AccessorCalls.cs:63:87:63:95 | access to indexer | AccessorCalls.cs:63:94:63:94 | 1 | -| AccessorCalls.cs:63:94:63:94 | 1 | AccessorCalls.cs:63:87:63:92 | access to field x | -| AccessorCalls.cs:66:10:66:11 | exit M9 | AccessorCalls.cs:66:10:66:11 | exit M9 (normal) | -| AccessorCalls.cs:66:10:66:11 | exit M9 (normal) | AccessorCalls.cs:73:9:73:83 | ... = ... | -| AccessorCalls.cs:67:5:74:5 | {...} | AccessorCalls.cs:66:10:66:11 | enter M9 | +| AccessorCalls.cs:63:94:63:94 | 1 | AccessorCalls.cs:63:87:63:92 | After access to field x | +| AccessorCalls.cs:66:10:66:11 | Exit | AccessorCalls.cs:66:10:66:11 | Normal Exit | +| AccessorCalls.cs:66:10:66:11 | Normal Exit | AccessorCalls.cs:67:5:74:5 | After {...} | +| AccessorCalls.cs:67:5:74:5 | After {...} | AccessorCalls.cs:73:9:73:84 | After ...; | +| AccessorCalls.cs:67:5:74:5 | {...} | AccessorCalls.cs:66:10:66:11 | Entry | | AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:67:5:74:5 | {...} | +| AccessorCalls.cs:68:9:68:22 | After ... ...; | AccessorCalls.cs:68:17:68:21 | After dynamic d = ... | +| AccessorCalls.cs:68:17:68:17 | access to local variable d | AccessorCalls.cs:68:17:68:21 | Before dynamic d = ... | +| AccessorCalls.cs:68:17:68:21 | After dynamic d = ... | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | +| AccessorCalls.cs:68:17:68:21 | Before dynamic d = ... | AccessorCalls.cs:68:9:68:22 | ... ...; | | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:68:21:68:21 | access to parameter o | -| AccessorCalls.cs:68:21:68:21 | access to parameter o | AccessorCalls.cs:68:9:68:22 | ... ...; | -| AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:9:69:36 | ...; | -| AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | -| AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | -| AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | -| AccessorCalls.cs:69:24:69:24 | access to local variable d | AccessorCalls.cs:69:9:69:9 | access to local variable d | +| AccessorCalls.cs:68:21:68:21 | access to parameter o | AccessorCalls.cs:68:17:68:17 | access to local variable d | +| AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:9:69:20 | Before dynamic access to member MaybeProp1 | +| AccessorCalls.cs:69:9:69:20 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:69:9:69:20 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:35 | Before ... = ... | +| AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:9 | access to local variable d | +| AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:69:24:69:35 | After dynamic access to member MaybeProp2 | +| AccessorCalls.cs:69:9:69:35 | After ... = ... | AccessorCalls.cs:69:9:69:35 | ... = ... | +| AccessorCalls.cs:69:9:69:35 | Before ... = ... | AccessorCalls.cs:69:9:69:36 | ...; | +| AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:68:9:68:22 | After ... ...; | +| AccessorCalls.cs:69:9:69:36 | After ...; | AccessorCalls.cs:69:9:69:35 | After ... = ... | +| AccessorCalls.cs:69:24:69:24 | access to local variable d | AccessorCalls.cs:69:24:69:35 | Before dynamic access to member MaybeProp2 | +| AccessorCalls.cs:69:24:69:35 | After dynamic access to member MaybeProp2 | AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | +| AccessorCalls.cs:69:24:69:35 | Before dynamic access to member MaybeProp2 | AccessorCalls.cs:69:9:69:20 | After dynamic access to member MaybeProp1 | | AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | AccessorCalls.cs:69:24:69:24 | access to local variable d | -| AccessorCalls.cs:70:9:70:9 | access to local variable d | AccessorCalls.cs:70:9:70:22 | ...; | +| AccessorCalls.cs:70:9:70:9 | access to local variable d | AccessorCalls.cs:70:9:70:19 | Before dynamic access to member MaybeProp | +| AccessorCalls.cs:70:9:70:19 | After dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | +| AccessorCalls.cs:70:9:70:19 | Before dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:21 | Before dynamic call to operator ++ | | AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:9 | access to local variable d | -| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | -| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:69:9:69:35 | ... = ... | -| AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:26 | ...; | +| AccessorCalls.cs:70:9:70:21 | After dynamic call to operator ++ | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | +| AccessorCalls.cs:70:9:70:21 | Before dynamic call to operator ++ | AccessorCalls.cs:70:9:70:22 | ...; | +| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:70:9:70:19 | After dynamic access to member MaybeProp | +| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:69:9:69:36 | After ...; | +| AccessorCalls.cs:70:9:70:22 | After ...; | AccessorCalls.cs:70:9:70:21 | After dynamic call to operator ++ | +| AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:20 | Before dynamic access to member MaybeEvent | +| AccessorCalls.cs:71:9:71:20 | After dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | +| AccessorCalls.cs:71:9:71:20 | Before dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:25 | Before ... += ... | | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:9 | access to local variable d | | AccessorCalls.cs:71:9:71:25 | ... += ... | AccessorCalls.cs:71:25:71:25 | access to parameter e | -| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | -| AccessorCalls.cs:71:25:71:25 | access to parameter e | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | -| AccessorCalls.cs:72:9:72:9 | access to local variable d | AccessorCalls.cs:72:9:72:21 | ...; | +| AccessorCalls.cs:71:9:71:25 | After ... += ... | AccessorCalls.cs:71:9:71:25 | ... += ... | +| AccessorCalls.cs:71:9:71:25 | Before ... += ... | AccessorCalls.cs:71:9:71:26 | ...; | +| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:70:9:70:22 | After ...; | +| AccessorCalls.cs:71:9:71:26 | After ...; | AccessorCalls.cs:71:9:71:25 | After ... += ... | +| AccessorCalls.cs:71:25:71:25 | access to parameter e | AccessorCalls.cs:71:9:71:20 | After dynamic access to member MaybeEvent | +| AccessorCalls.cs:72:9:72:9 | access to local variable d | AccessorCalls.cs:72:9:72:12 | Before dynamic access to element | +| AccessorCalls.cs:72:9:72:12 | After dynamic access to element | AccessorCalls.cs:72:9:72:12 | dynamic access to element | +| AccessorCalls.cs:72:9:72:12 | Before dynamic access to element | AccessorCalls.cs:72:9:72:20 | Before ... += ... | | AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:72:11:72:11 | 0 | -| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:72:17:72:20 | dynamic access to element | -| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:71:9:71:25 | ... += ... | +| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:72:17:72:20 | After dynamic access to element | +| AccessorCalls.cs:72:9:72:20 | After ... += ... | AccessorCalls.cs:72:9:72:20 | ... += ... | +| AccessorCalls.cs:72:9:72:20 | Before ... += ... | AccessorCalls.cs:72:9:72:21 | ...; | +| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:71:9:71:26 | After ...; | +| AccessorCalls.cs:72:9:72:21 | After ...; | AccessorCalls.cs:72:9:72:20 | After ... += ... | | AccessorCalls.cs:72:11:72:11 | 0 | AccessorCalls.cs:72:9:72:9 | access to local variable d | -| AccessorCalls.cs:72:17:72:17 | access to local variable d | AccessorCalls.cs:72:9:72:12 | dynamic access to element | +| AccessorCalls.cs:72:17:72:17 | access to local variable d | AccessorCalls.cs:72:17:72:20 | Before dynamic access to element | +| AccessorCalls.cs:72:17:72:20 | After dynamic access to element | AccessorCalls.cs:72:17:72:20 | dynamic access to element | +| AccessorCalls.cs:72:17:72:20 | Before dynamic access to element | AccessorCalls.cs:72:9:72:12 | After dynamic access to element | | AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:19:72:19 | 1 | | AccessorCalls.cs:72:19:72:19 | 1 | AccessorCalls.cs:72:17:72:17 | access to local variable d | -| AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:73:35:73:43 | (..., ...) | -| AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:73:39:73:42 | dynamic access to element | -| AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:72:9:72:20 | ... += ... | -| AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:73:9:73:84 | ...; | -| AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:48:73:83 | (..., ...) | -| AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:10:73:10 | access to local variable d | -| AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | -| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:41:73:41 | 0 | -| AccessorCalls.cs:73:39:73:39 | access to local variable d | AccessorCalls.cs:73:24:73:27 | this access | -| AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:24:73:32 | access to property Prop | +| AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:73:35:73:43 | After (..., ...) | +| AccessorCalls.cs:73:9:73:44 | After (..., ...) | AccessorCalls.cs:73:9:73:44 | (..., ...) | +| AccessorCalls.cs:73:9:73:44 | Before (..., ...) | AccessorCalls.cs:73:9:73:83 | Before ... = ... | +| AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:73:48:73:83 | After (..., ...) | +| AccessorCalls.cs:73:9:73:83 | After ... = ... | AccessorCalls.cs:73:9:73:83 | ... = ... | +| AccessorCalls.cs:73:9:73:83 | Before ... = ... | AccessorCalls.cs:73:9:73:84 | ...; | +| AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:72:9:72:21 | After ...; | +| AccessorCalls.cs:73:9:73:84 | After ...; | AccessorCalls.cs:73:9:73:83 | After ... = ... | +| AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:73:10:73:21 | Before dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:10:73:21 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:10:73:21 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:73:9:73:44 | Before (..., ...) | +| AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:10 | access to local variable d | +| AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:24:73:32 | Before access to property Prop | +| AccessorCalls.cs:73:24:73:32 | After access to property Prop | AccessorCalls.cs:73:24:73:32 | access to property Prop | +| AccessorCalls.cs:73:24:73:32 | Before access to property Prop | AccessorCalls.cs:73:10:73:21 | After dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:24:73:27 | this access | +| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:39:73:42 | After dynamic access to element | +| AccessorCalls.cs:73:35:73:43 | After (..., ...) | AccessorCalls.cs:73:35:73:43 | (..., ...) | +| AccessorCalls.cs:73:35:73:43 | Before (..., ...) | AccessorCalls.cs:73:24:73:32 | After access to property Prop | +| AccessorCalls.cs:73:36:73:36 | access to parameter i | AccessorCalls.cs:73:35:73:43 | Before (..., ...) | +| AccessorCalls.cs:73:39:73:39 | access to local variable d | AccessorCalls.cs:73:39:73:42 | Before dynamic access to element | +| AccessorCalls.cs:73:39:73:42 | After dynamic access to element | AccessorCalls.cs:73:39:73:42 | dynamic access to element | +| AccessorCalls.cs:73:39:73:42 | Before dynamic access to element | AccessorCalls.cs:73:36:73:36 | access to parameter i | +| AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:41:73:41 | 0 | | AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:73:39:73:39 | access to local variable d | -| AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:73:74:73:82 | (..., ...) | -| AccessorCalls.cs:73:49:73:49 | access to local variable d | AccessorCalls.cs:73:9:73:44 | (..., ...) | +| AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:73:74:73:82 | After (..., ...) | +| AccessorCalls.cs:73:48:73:83 | After (..., ...) | AccessorCalls.cs:73:48:73:83 | (..., ...) | +| AccessorCalls.cs:73:48:73:83 | Before (..., ...) | AccessorCalls.cs:73:9:73:44 | After (..., ...) | +| AccessorCalls.cs:73:49:73:49 | access to local variable d | AccessorCalls.cs:73:49:73:60 | Before dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:49:73:60 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:49:73:60 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:73:48:73:83 | Before (..., ...) | | AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:49:73:49 | access to local variable d | -| AccessorCalls.cs:73:63:73:66 | this access | AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | +| AccessorCalls.cs:73:63:73:66 | this access | AccessorCalls.cs:73:63:73:71 | Before access to property Prop | +| AccessorCalls.cs:73:63:73:71 | After access to property Prop | AccessorCalls.cs:73:63:73:71 | access to property Prop | +| AccessorCalls.cs:73:63:73:71 | Before access to property Prop | AccessorCalls.cs:73:49:73:60 | After dynamic access to member MaybeProp1 | | AccessorCalls.cs:73:63:73:71 | access to property Prop | AccessorCalls.cs:73:63:73:66 | this access | -| AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:73:78:73:81 | dynamic access to element | -| AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:73:63:73:71 | access to property Prop | -| AccessorCalls.cs:73:78:73:78 | access to local variable d | AccessorCalls.cs:73:75:73:75 | 0 | +| AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:73:78:73:81 | After dynamic access to element | +| AccessorCalls.cs:73:74:73:82 | After (..., ...) | AccessorCalls.cs:73:74:73:82 | (..., ...) | +| AccessorCalls.cs:73:74:73:82 | Before (..., ...) | AccessorCalls.cs:73:63:73:71 | After access to property Prop | +| AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:73:74:73:82 | Before (..., ...) | +| AccessorCalls.cs:73:78:73:78 | access to local variable d | AccessorCalls.cs:73:78:73:81 | Before dynamic access to element | +| AccessorCalls.cs:73:78:73:81 | After dynamic access to element | AccessorCalls.cs:73:78:73:81 | dynamic access to element | +| AccessorCalls.cs:73:78:73:81 | Before dynamic access to element | 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 | call to method | +| ArrayCreation.cs:1:7:1:19 | After call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | After call to method | ArrayCreation.cs:1:7:1:19 | call to method | +| ArrayCreation.cs:1:7:1:19 | Before call to constructor Object | ArrayCreation.cs:1:7:1:19 | After call to method | +| ArrayCreation.cs:1:7:1:19 | Before call to method | ArrayCreation.cs:1:7:1:19 | Entry | +| ArrayCreation.cs:1:7:1:19 | Exit | ArrayCreation.cs:1:7:1:19 | Normal Exit | +| ArrayCreation.cs:1:7:1:19 | Normal Exit | ArrayCreation.cs:1:7:1:19 | {...} | +| ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | Before 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 | 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[] | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | Before call to method | +| ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | After call to constructor Object | +| ArrayCreation.cs:3:11:3:12 | Exit | ArrayCreation.cs:3:11:3:12 | Normal Exit | +| ArrayCreation.cs:3:11:3:12 | Normal Exit | ArrayCreation.cs:3:19:3:28 | After array creation of type Int32[] | +| ArrayCreation.cs:3:19:3:28 | After array creation of type Int32[] | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | +| ArrayCreation.cs:3:19:3:28 | Before array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | Entry | | 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:11:3:12 | enter M1 | -| ArrayCreation.cs:5:12:5:13 | exit M2 | ArrayCreation.cs:5:12:5:13 | exit M2 (normal) | -| ArrayCreation.cs:5:12:5:13 | exit M2 (normal) | ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | +| ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:19:3:28 | Before array creation of type Int32[] | +| ArrayCreation.cs:5:12:5:13 | Exit | ArrayCreation.cs:5:12:5:13 | Normal Exit | +| ArrayCreation.cs:5:12:5:13 | Normal Exit | ArrayCreation.cs:5:20:5:32 | After array creation of type Int32[,] | +| ArrayCreation.cs:5:20:5:32 | After array creation of type Int32[,] | ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | +| ArrayCreation.cs:5:20:5:32 | Before array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | Entry | | ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | ArrayCreation.cs:5:31:5:31 | 1 | -| ArrayCreation.cs:5:28:5:28 | 0 | ArrayCreation.cs:5:12:5:13 | enter M2 | +| ArrayCreation.cs:5:28:5:28 | 0 | ArrayCreation.cs:5:20:5:32 | Before array creation of type Int32[,] | | ArrayCreation.cs:5:31:5:31 | 1 | ArrayCreation.cs:5:28:5:28 | 0 | -| ArrayCreation.cs:7:11:7:12 | exit M3 | ArrayCreation.cs:7:11:7:12 | exit M3 (normal) | -| ArrayCreation.cs:7:11:7:12 | exit M3 (normal) | ArrayCreation.cs:7:29:7:36 | { ..., ... } | -| ArrayCreation.cs:7:19:7:36 | 2 | ArrayCreation.cs:7:11:7:12 | enter M3 | +| ArrayCreation.cs:7:11:7:12 | Exit | ArrayCreation.cs:7:11:7:12 | Normal Exit | +| ArrayCreation.cs:7:11:7:12 | Normal Exit | ArrayCreation.cs:7:19:7:36 | After array creation of type Int32[] | +| ArrayCreation.cs:7:19:7:36 | 2 | ArrayCreation.cs:7:29:7:36 | After { ..., ... } | +| ArrayCreation.cs:7:19:7:36 | After array creation of type Int32[] | ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | +| ArrayCreation.cs:7:19:7:36 | Before array creation of type Int32[] | ArrayCreation.cs:7:11:7:12 | Entry | | ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:19:7:36 | 2 | +| ArrayCreation.cs:7:29:7:36 | After { ..., ... } | ArrayCreation.cs:7:29:7:36 | { ..., ... } | +| ArrayCreation.cs:7:29:7:36 | Before { ..., ... } | ArrayCreation.cs:7:19:7:36 | Before array creation of type Int32[] | | ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:34:7:34 | 1 | -| ArrayCreation.cs:7:31:7:31 | 0 | ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | +| ArrayCreation.cs:7:31:7:31 | 0 | ArrayCreation.cs:7:29:7:36 | Before { ..., ... } | | ArrayCreation.cs:7:34:7:34 | 1 | ArrayCreation.cs:7:31:7:31 | 0 | -| ArrayCreation.cs:9:12:9:13 | exit M4 | ArrayCreation.cs:9:12:9:13 | exit M4 (normal) | -| ArrayCreation.cs:9:12:9:13 | exit M4 (normal) | ArrayCreation.cs:9:31:9:52 | { ..., ... } | -| ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:12:9:13 | enter M4 | +| ArrayCreation.cs:9:12:9:13 | Exit | ArrayCreation.cs:9:12:9:13 | Normal Exit | +| ArrayCreation.cs:9:12:9:13 | Normal Exit | ArrayCreation.cs:9:20:9:52 | After array creation of type Int32[,] | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | 2 | +| ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:31:9:52 | After { ..., ... } | +| ArrayCreation.cs:9:20:9:52 | After array creation of type Int32[,] | ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | +| ArrayCreation.cs:9:20:9:52 | Before array creation of type Int32[,] | ArrayCreation.cs:9:12:9:13 | Entry | | ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:20:9:52 | 2 | -| ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:43:9:50 | { ..., ... } | +| ArrayCreation.cs:9:31:9:52 | After { ..., ... } | ArrayCreation.cs:9:31:9:52 | { ..., ... } | +| ArrayCreation.cs:9:31:9:52 | Before { ..., ... } | ArrayCreation.cs:9:20:9:52 | Before array creation of type Int32[,] | +| ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:43:9:50 | After { ..., ... } | +| ArrayCreation.cs:9:33:9:40 | After { ..., ... } | ArrayCreation.cs:9:33:9:40 | { ..., ... } | +| ArrayCreation.cs:9:33:9:40 | Before { ..., ... } | ArrayCreation.cs:9:31:9:52 | Before { ..., ... } | | ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:38:9:38 | 1 | -| ArrayCreation.cs:9:35:9:35 | 0 | ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | +| ArrayCreation.cs:9:35:9:35 | 0 | ArrayCreation.cs:9:33:9:40 | Before { ..., ... } | | ArrayCreation.cs:9:38:9:38 | 1 | ArrayCreation.cs:9:35:9:35 | 0 | +| ArrayCreation.cs:9:43:9:50 | After { ..., ... } | ArrayCreation.cs:9:43:9:50 | { ..., ... } | +| ArrayCreation.cs:9:43:9:50 | Before { ..., ... } | ArrayCreation.cs:9:33:9:40 | After { ..., ... } | | 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:45:9:45 | 2 | ArrayCreation.cs:9:43:9:50 | Before { ..., ... } | | 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 | call to method | +| Assert.cs:5:7:5:17 | After call to constructor Object | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | After call to method | Assert.cs:5:7:5:17 | call to method | +| Assert.cs:5:7:5:17 | Before call to constructor Object | Assert.cs:5:7:5:17 | After call to method | +| Assert.cs:5:7:5:17 | Before call to method | Assert.cs:5:7:5:17 | Entry | +| Assert.cs:5:7:5:17 | Exit | Assert.cs:5:7:5:17 | Normal Exit | +| Assert.cs:5:7:5:17 | Normal Exit | Assert.cs:5:7:5:17 | {...} | +| Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | Before 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 | 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 | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | Before call to method | +| Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | After call to constructor Object | +| Assert.cs:7:10:7:11 | Normal Exit | Assert.cs:8:5:12:5 | After {...} | +| Assert.cs:8:5:12:5 | After {...} | Assert.cs:11:9:11:36 | After ...; | +| Assert.cs:8:5:12:5 | {...} | Assert.cs:7:10:7:11 | Entry | | Assert.cs:9:9:9:33 | ... ...; | Assert.cs:8:5:12:5 | {...} | -| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:9:20:9:32 | ... ? ... : ... | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:9:9:33 | ... ...; | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:24:9:27 | null | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:31:9:32 | "" | -| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:22:10:30 | ... != ... | -| Assert.cs:10:9:10:32 | ...; | Assert.cs:9:16:9:32 | String s = ... | -| Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:9:10:32 | ...; | +| Assert.cs:9:9:9:33 | After ... ...; | Assert.cs:9:16:9:32 | After String s = ... | +| Assert.cs:9:16:9:16 | access to local variable s | Assert.cs:9:16:9:32 | Before String s = ... | +| Assert.cs:9:16:9:32 | After String s = ... | Assert.cs:9:16:9:32 | String s = ... | +| Assert.cs:9:16:9:32 | Before String s = ... | Assert.cs:9:9:9:33 | ... ...; | +| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:9:20:9:32 | After ... ? ... : ... | +| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:32 | ... ? ... : ... | +| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:16:9:16 | access to local variable s | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:24:9:27 | null | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:31:9:32 | "" | +| Assert.cs:9:24:9:27 | null | Assert.cs:9:20:9:20 | After access to parameter b [true] | +| Assert.cs:9:31:9:32 | "" | Assert.cs:9:20:9:20 | After access to parameter b [false] | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:10:9:10:31 | call to method Assert | +| Assert.cs:10:9:10:31 | Before call to method Assert | Assert.cs:10:9:10:32 | ...; | +| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:22:10:30 | After ... != ... | +| Assert.cs:10:9:10:32 | ...; | Assert.cs:9:9:9:33 | After ... ...; | +| Assert.cs:10:9:10:32 | After ...; | Assert.cs:10:9:10:31 | After call to method Assert | +| Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:22:10:30 | Before ... != ... | | Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:27:10:30 | null | +| Assert.cs:10:22:10:30 | After ... != ... | Assert.cs:10:22:10:30 | ... != ... | +| Assert.cs:10:22:10:30 | Before ... != ... | Assert.cs:10:9:10:31 | Before call to method Assert | | Assert.cs:10:27:10:30 | null | Assert.cs:10:22:10:22 | access to local variable s | -| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:11:27:11:34 | access to property Length | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:10:9:10:31 | call to method Assert | -| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:11:9:11:36 | ...; | +| Assert.cs:11:9:11:35 | After call to method WriteLine | Assert.cs:11:9:11:35 | call to method WriteLine | +| Assert.cs:11:9:11:35 | Before call to method WriteLine | Assert.cs:11:9:11:36 | ...; | +| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:11:27:11:34 | After access to property Length | +| Assert.cs:11:9:11:36 | ...; | Assert.cs:10:9:10:32 | After ...; | +| Assert.cs:11:9:11:36 | After ...; | Assert.cs:11:9:11:35 | After call to method WriteLine | +| Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:11:27:11:34 | Before access to property Length | +| Assert.cs:11:27:11:34 | After access to property Length | Assert.cs:11:27:11:34 | access to property Length | +| Assert.cs:11:27:11:34 | Before access to property Length | Assert.cs:11:9:11:35 | Before call to method WriteLine | | Assert.cs:11:27:11:34 | access to property Length | Assert.cs:11:27:11:27 | access to local variable s | -| Assert.cs:14:10:14:11 | exit M2 (normal) | Assert.cs:18:9:18:35 | call to method WriteLine | -| Assert.cs:15:5:19:5 | {...} | Assert.cs:14:10:14:11 | enter M2 | +| Assert.cs:14:10:14:11 | Normal Exit | Assert.cs:15:5:19:5 | After {...} | +| Assert.cs:15:5:19:5 | After {...} | Assert.cs:18:9:18:36 | After ...; | +| Assert.cs:15:5:19:5 | {...} | Assert.cs:14:10:14:11 | Entry | | Assert.cs:16:9:16:33 | ... ...; | Assert.cs:15:5:19:5 | {...} | -| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:16:20:16:32 | ... ? ... : ... | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:9:16:33 | ... ...; | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:24:16:27 | null | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:31:16:32 | "" | +| Assert.cs:16:9:16:33 | After ... ...; | Assert.cs:16:16:16:32 | After String s = ... | +| Assert.cs:16:16:16:16 | access to local variable s | Assert.cs:16:16:16:32 | Before String s = ... | +| Assert.cs:16:16:16:32 | After String s = ... | Assert.cs:16:16:16:32 | String s = ... | +| Assert.cs:16:16:16:32 | Before String s = ... | Assert.cs:16:9:16:33 | ... ...; | +| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:16:20:16:32 | After ... ? ... : ... | +| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:32 | ... ? ... : ... | +| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:16:16:16 | access to local variable s | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:24:16:27 | null | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:31:16:32 | "" | +| Assert.cs:16:24:16:27 | null | Assert.cs:16:20:16:20 | After access to parameter b [true] | +| Assert.cs:16:31:16:32 | "" | Assert.cs:16:20:16:20 | After access to parameter b [false] | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:17:9:17:24 | call to method IsNull | +| Assert.cs:17:9:17:24 | Before call to method IsNull | Assert.cs:17:9:17:25 | ...; | | Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:23:17:23 | access to local variable s | -| Assert.cs:17:9:17:25 | ...; | Assert.cs:16:16:16:32 | String s = ... | -| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:25 | ...; | -| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:18:27:18:34 | access to property Length | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:17:9:17:24 | call to method IsNull | -| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:18:9:18:36 | ...; | +| Assert.cs:17:9:17:25 | ...; | Assert.cs:16:9:16:33 | After ... ...; | +| Assert.cs:17:9:17:25 | After ...; | Assert.cs:17:9:17:24 | After call to method IsNull | +| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | Before call to method IsNull | +| Assert.cs:18:9:18:35 | After call to method WriteLine | Assert.cs:18:9:18:35 | call to method WriteLine | +| Assert.cs:18:9:18:35 | Before call to method WriteLine | Assert.cs:18:9:18:36 | ...; | +| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:18:27:18:34 | After access to property Length | +| Assert.cs:18:9:18:36 | ...; | Assert.cs:17:9:17:25 | After ...; | +| Assert.cs:18:9:18:36 | After ...; | Assert.cs:18:9:18:35 | After call to method WriteLine | +| Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:18:27:18:34 | Before access to property Length | +| Assert.cs:18:27:18:34 | After access to property Length | Assert.cs:18:27:18:34 | access to property Length | +| Assert.cs:18:27:18:34 | Before access to property Length | Assert.cs:18:9:18:35 | Before call to method WriteLine | | Assert.cs:18:27:18:34 | access to property Length | Assert.cs:18:27:18:27 | access to local variable s | -| Assert.cs:21:10:21:11 | exit M3 (normal) | Assert.cs:25:9:25:35 | call to method WriteLine | -| Assert.cs:22:5:26:5 | {...} | Assert.cs:21:10:21:11 | enter M3 | +| Assert.cs:21:10:21:11 | Normal Exit | Assert.cs:22:5:26:5 | After {...} | +| Assert.cs:22:5:26:5 | After {...} | Assert.cs:25:9:25:36 | After ...; | +| Assert.cs:22:5:26:5 | {...} | Assert.cs:21:10:21:11 | Entry | | Assert.cs:23:9:23:33 | ... ...; | Assert.cs:22:5:26:5 | {...} | -| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:23:20:23:32 | ... ? ... : ... | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:9:23:33 | ... ...; | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:24:23:27 | null | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:31:23:32 | "" | +| Assert.cs:23:9:23:33 | After ... ...; | Assert.cs:23:16:23:32 | After String s = ... | +| Assert.cs:23:16:23:16 | access to local variable s | Assert.cs:23:16:23:32 | Before String s = ... | +| Assert.cs:23:16:23:32 | After String s = ... | Assert.cs:23:16:23:32 | String s = ... | +| Assert.cs:23:16:23:32 | Before String s = ... | Assert.cs:23:9:23:33 | ... ...; | +| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:23:20:23:32 | After ... ? ... : ... | +| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:32 | ... ? ... : ... | +| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:16:23:16 | access to local variable s | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:24:23:27 | null | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:31:23:32 | "" | +| Assert.cs:23:24:23:27 | null | Assert.cs:23:20:23:20 | After access to parameter b [true] | +| Assert.cs:23:31:23:32 | "" | Assert.cs:23:20:23:20 | After access to parameter b [false] | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:24:9:24:27 | call to method IsNotNull | +| Assert.cs:24:9:24:27 | Before call to method IsNotNull | Assert.cs:24:9:24:28 | ...; | | Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:26:24:26 | access to local variable s | -| Assert.cs:24:9:24:28 | ...; | Assert.cs:23:16:23:32 | String s = ... | -| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:28 | ...; | -| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:25:27:25:34 | access to property Length | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:24:9:24:27 | call to method IsNotNull | -| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:25:9:25:36 | ...; | +| Assert.cs:24:9:24:28 | ...; | Assert.cs:23:9:23:33 | After ... ...; | +| Assert.cs:24:9:24:28 | After ...; | Assert.cs:24:9:24:27 | After call to method IsNotNull | +| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | Before call to method IsNotNull | +| Assert.cs:25:9:25:35 | After call to method WriteLine | Assert.cs:25:9:25:35 | call to method WriteLine | +| Assert.cs:25:9:25:35 | Before call to method WriteLine | Assert.cs:25:9:25:36 | ...; | +| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:25:27:25:34 | After access to property Length | +| Assert.cs:25:9:25:36 | ...; | Assert.cs:24:9:24:28 | After ...; | +| Assert.cs:25:9:25:36 | After ...; | Assert.cs:25:9:25:35 | After call to method WriteLine | +| Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:25:27:25:34 | Before access to property Length | +| Assert.cs:25:27:25:34 | After access to property Length | Assert.cs:25:27:25:34 | access to property Length | +| Assert.cs:25:27:25:34 | Before access to property Length | Assert.cs:25:9:25:35 | Before call to method WriteLine | | Assert.cs:25:27:25:34 | access to property Length | Assert.cs:25:27:25:27 | access to local variable s | -| Assert.cs:28:10:28:11 | exit M4 (normal) | Assert.cs:32:9:32:35 | call to method WriteLine | -| Assert.cs:29:5:33:5 | {...} | Assert.cs:28:10:28:11 | enter M4 | +| Assert.cs:28:10:28:11 | Normal Exit | Assert.cs:29:5:33:5 | After {...} | +| Assert.cs:29:5:33:5 | After {...} | Assert.cs:32:9:32:36 | After ...; | +| Assert.cs:29:5:33:5 | {...} | Assert.cs:28:10:28:11 | Entry | | Assert.cs:30:9:30:33 | ... ...; | Assert.cs:29:5:33:5 | {...} | -| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:30:20:30:32 | ... ? ... : ... | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:9:30:33 | ... ...; | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:24:30:27 | null | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:31:30:32 | "" | -| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:23:31:31 | ... == ... | -| Assert.cs:31:9:31:33 | ...; | Assert.cs:30:16:30:32 | String s = ... | -| Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:9:31:33 | ...; | +| Assert.cs:30:9:30:33 | After ... ...; | Assert.cs:30:16:30:32 | After String s = ... | +| Assert.cs:30:16:30:16 | access to local variable s | Assert.cs:30:16:30:32 | Before String s = ... | +| Assert.cs:30:16:30:32 | After String s = ... | Assert.cs:30:16:30:32 | String s = ... | +| Assert.cs:30:16:30:32 | Before String s = ... | Assert.cs:30:9:30:33 | ... ...; | +| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:30:20:30:32 | After ... ? ... : ... | +| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:32 | ... ? ... : ... | +| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:16:30:16 | access to local variable s | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:24:30:27 | null | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:31:30:32 | "" | +| Assert.cs:30:24:30:27 | null | Assert.cs:30:20:30:20 | After access to parameter b [true] | +| Assert.cs:30:31:30:32 | "" | Assert.cs:30:20:30:20 | After access to parameter b [false] | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:31:9:31:32 | call to method IsTrue | +| Assert.cs:31:9:31:32 | Before call to method IsTrue | Assert.cs:31:9:31:33 | ...; | +| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:23:31:31 | After ... == ... | +| Assert.cs:31:9:31:33 | ...; | Assert.cs:30:9:30:33 | After ... ...; | +| Assert.cs:31:9:31:33 | After ...; | Assert.cs:31:9:31:32 | After call to method IsTrue | +| Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:23:31:31 | Before ... == ... | | Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:28:31:31 | null | +| Assert.cs:31:23:31:31 | After ... == ... | Assert.cs:31:23:31:31 | ... == ... | +| Assert.cs:31:23:31:31 | Before ... == ... | Assert.cs:31:9:31:32 | Before call to method IsTrue | | Assert.cs:31:28:31:31 | null | Assert.cs:31:23:31:23 | access to local variable s | -| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:32:27:32:34 | access to property Length | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:31:9:31:32 | call to method IsTrue | -| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:32:9:32:36 | ...; | +| Assert.cs:32:9:32:35 | After call to method WriteLine | Assert.cs:32:9:32:35 | call to method WriteLine | +| Assert.cs:32:9:32:35 | Before call to method WriteLine | Assert.cs:32:9:32:36 | ...; | +| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:32:27:32:34 | After access to property Length | +| Assert.cs:32:9:32:36 | ...; | Assert.cs:31:9:31:33 | After ...; | +| Assert.cs:32:9:32:36 | After ...; | Assert.cs:32:9:32:35 | After call to method WriteLine | +| Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:32:27:32:34 | Before access to property Length | +| Assert.cs:32:27:32:34 | After access to property Length | Assert.cs:32:27:32:34 | access to property Length | +| Assert.cs:32:27:32:34 | Before access to property Length | Assert.cs:32:9:32:35 | Before call to method WriteLine | | Assert.cs:32:27:32:34 | access to property Length | Assert.cs:32:27:32:27 | access to local variable s | -| Assert.cs:35:10:35:11 | exit M5 (normal) | Assert.cs:39:9:39:35 | call to method WriteLine | -| Assert.cs:36:5:40:5 | {...} | Assert.cs:35:10:35:11 | enter M5 | +| Assert.cs:35:10:35:11 | Normal Exit | Assert.cs:36:5:40:5 | After {...} | +| Assert.cs:36:5:40:5 | After {...} | Assert.cs:39:9:39:36 | After ...; | +| Assert.cs:36:5:40:5 | {...} | Assert.cs:35:10:35:11 | Entry | | Assert.cs:37:9:37:33 | ... ...; | Assert.cs:36:5:40:5 | {...} | -| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:37:20:37:32 | ... ? ... : ... | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:9:37:33 | ... ...; | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:24:37:27 | null | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:31:37:32 | "" | -| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:23:38:31 | ... != ... | -| Assert.cs:38:9:38:33 | ...; | Assert.cs:37:16:37:32 | String s = ... | -| Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:9:38:33 | ...; | +| Assert.cs:37:9:37:33 | After ... ...; | Assert.cs:37:16:37:32 | After String s = ... | +| Assert.cs:37:16:37:16 | access to local variable s | Assert.cs:37:16:37:32 | Before String s = ... | +| Assert.cs:37:16:37:32 | After String s = ... | Assert.cs:37:16:37:32 | String s = ... | +| Assert.cs:37:16:37:32 | Before String s = ... | Assert.cs:37:9:37:33 | ... ...; | +| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:37:20:37:32 | After ... ? ... : ... | +| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:32 | ... ? ... : ... | +| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:16:37:16 | access to local variable s | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:24:37:27 | null | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:31:37:32 | "" | +| Assert.cs:37:24:37:27 | null | Assert.cs:37:20:37:20 | After access to parameter b [true] | +| Assert.cs:37:31:37:32 | "" | Assert.cs:37:20:37:20 | After access to parameter b [false] | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:38:9:38:32 | call to method IsTrue | +| Assert.cs:38:9:38:32 | Before call to method IsTrue | Assert.cs:38:9:38:33 | ...; | +| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:23:38:31 | After ... != ... | +| Assert.cs:38:9:38:33 | ...; | Assert.cs:37:9:37:33 | After ... ...; | +| Assert.cs:38:9:38:33 | After ...; | Assert.cs:38:9:38:32 | After call to method IsTrue | +| Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:23:38:31 | Before ... != ... | | Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:28:38:31 | null | +| Assert.cs:38:23:38:31 | After ... != ... | Assert.cs:38:23:38:31 | ... != ... | +| Assert.cs:38:23:38:31 | Before ... != ... | Assert.cs:38:9:38:32 | Before call to method IsTrue | | Assert.cs:38:28:38:31 | null | Assert.cs:38:23:38:23 | access to local variable s | -| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:39:27:39:34 | access to property Length | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:38:9:38:32 | call to method IsTrue | -| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:39:9:39:36 | ...; | +| Assert.cs:39:9:39:35 | After call to method WriteLine | Assert.cs:39:9:39:35 | call to method WriteLine | +| Assert.cs:39:9:39:35 | Before call to method WriteLine | Assert.cs:39:9:39:36 | ...; | +| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:39:27:39:34 | After access to property Length | +| Assert.cs:39:9:39:36 | ...; | Assert.cs:38:9:38:33 | After ...; | +| Assert.cs:39:9:39:36 | After ...; | Assert.cs:39:9:39:35 | After call to method WriteLine | +| Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:39:27:39:34 | Before access to property Length | +| Assert.cs:39:27:39:34 | After access to property Length | Assert.cs:39:27:39:34 | access to property Length | +| Assert.cs:39:27:39:34 | Before access to property Length | Assert.cs:39:9:39:35 | Before call to method WriteLine | | Assert.cs:39:27:39:34 | access to property Length | Assert.cs:39:27:39:27 | access to local variable s | -| Assert.cs:42:10:42:11 | exit M6 (normal) | Assert.cs:46:9:46:35 | call to method WriteLine | -| Assert.cs:43:5:47:5 | {...} | Assert.cs:42:10:42:11 | enter M6 | +| Assert.cs:42:10:42:11 | Normal Exit | Assert.cs:43:5:47:5 | After {...} | +| Assert.cs:43:5:47:5 | After {...} | Assert.cs:46:9:46:36 | After ...; | +| Assert.cs:43:5:47:5 | {...} | Assert.cs:42:10:42:11 | Entry | | Assert.cs:44:9:44:33 | ... ...; | Assert.cs:43:5:47:5 | {...} | -| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:44:20:44:32 | ... ? ... : ... | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:9:44:33 | ... ...; | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:24:44:27 | null | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:31:44:32 | "" | -| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:24:45:32 | ... != ... | -| Assert.cs:45:9:45:34 | ...; | Assert.cs:44:16:44:32 | String s = ... | -| Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:9:45:34 | ...; | +| Assert.cs:44:9:44:33 | After ... ...; | Assert.cs:44:16:44:32 | After String s = ... | +| Assert.cs:44:16:44:16 | access to local variable s | Assert.cs:44:16:44:32 | Before String s = ... | +| Assert.cs:44:16:44:32 | After String s = ... | Assert.cs:44:16:44:32 | String s = ... | +| Assert.cs:44:16:44:32 | Before String s = ... | Assert.cs:44:9:44:33 | ... ...; | +| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:44:20:44:32 | After ... ? ... : ... | +| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:32 | ... ? ... : ... | +| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:16:44:16 | access to local variable s | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:24:44:27 | null | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:31:44:32 | "" | +| Assert.cs:44:24:44:27 | null | Assert.cs:44:20:44:20 | After access to parameter b [true] | +| Assert.cs:44:31:44:32 | "" | Assert.cs:44:20:44:20 | After access to parameter b [false] | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:45:9:45:33 | call to method IsFalse | +| Assert.cs:45:9:45:33 | Before call to method IsFalse | Assert.cs:45:9:45:34 | ...; | +| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:24:45:32 | After ... != ... | +| Assert.cs:45:9:45:34 | ...; | Assert.cs:44:9:44:33 | After ... ...; | +| Assert.cs:45:9:45:34 | After ...; | Assert.cs:45:9:45:33 | After call to method IsFalse | +| Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:24:45:32 | Before ... != ... | | Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:29:45:32 | null | +| Assert.cs:45:24:45:32 | After ... != ... | Assert.cs:45:24:45:32 | ... != ... | +| Assert.cs:45:24:45:32 | Before ... != ... | Assert.cs:45:9:45:33 | Before call to method IsFalse | | Assert.cs:45:29:45:32 | null | Assert.cs:45:24:45:24 | access to local variable s | -| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:46:27:46:34 | access to property Length | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:45:9:45:33 | call to method IsFalse | -| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:46:9:46:36 | ...; | +| Assert.cs:46:9:46:35 | After call to method WriteLine | Assert.cs:46:9:46:35 | call to method WriteLine | +| Assert.cs:46:9:46:35 | Before call to method WriteLine | Assert.cs:46:9:46:36 | ...; | +| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:46:27:46:34 | After access to property Length | +| Assert.cs:46:9:46:36 | ...; | Assert.cs:45:9:45:34 | After ...; | +| Assert.cs:46:9:46:36 | After ...; | Assert.cs:46:9:46:35 | After call to method WriteLine | +| Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:46:27:46:34 | Before access to property Length | +| Assert.cs:46:27:46:34 | After access to property Length | Assert.cs:46:27:46:34 | access to property Length | +| Assert.cs:46:27:46:34 | Before access to property Length | Assert.cs:46:9:46:35 | Before call to method WriteLine | | Assert.cs:46:27:46:34 | access to property Length | Assert.cs:46:27:46:27 | access to local variable s | -| Assert.cs:49:10:49:11 | exit M7 (normal) | Assert.cs:53:9:53:35 | call to method WriteLine | -| Assert.cs:50:5:54:5 | {...} | Assert.cs:49:10:49:11 | enter M7 | +| Assert.cs:49:10:49:11 | Normal Exit | Assert.cs:50:5:54:5 | After {...} | +| Assert.cs:50:5:54:5 | After {...} | Assert.cs:53:9:53:36 | After ...; | +| Assert.cs:50:5:54:5 | {...} | Assert.cs:49:10:49:11 | Entry | | Assert.cs:51:9:51:33 | ... ...; | Assert.cs:50:5:54:5 | {...} | -| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:51:20:51:32 | ... ? ... : ... | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:9:51:33 | ... ...; | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:24:51:27 | null | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:31:51:32 | "" | -| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:24:52:32 | ... == ... | -| Assert.cs:52:9:52:34 | ...; | Assert.cs:51:16:51:32 | String s = ... | -| Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:9:52:34 | ...; | +| Assert.cs:51:9:51:33 | After ... ...; | Assert.cs:51:16:51:32 | After String s = ... | +| Assert.cs:51:16:51:16 | access to local variable s | Assert.cs:51:16:51:32 | Before String s = ... | +| Assert.cs:51:16:51:32 | After String s = ... | Assert.cs:51:16:51:32 | String s = ... | +| Assert.cs:51:16:51:32 | Before String s = ... | Assert.cs:51:9:51:33 | ... ...; | +| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:51:20:51:32 | After ... ? ... : ... | +| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:32 | ... ? ... : ... | +| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:16:51:16 | access to local variable s | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:24:51:27 | null | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:31:51:32 | "" | +| Assert.cs:51:24:51:27 | null | Assert.cs:51:20:51:20 | After access to parameter b [true] | +| Assert.cs:51:31:51:32 | "" | Assert.cs:51:20:51:20 | After access to parameter b [false] | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:52:9:52:33 | call to method IsFalse | +| Assert.cs:52:9:52:33 | Before call to method IsFalse | Assert.cs:52:9:52:34 | ...; | +| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:24:52:32 | After ... == ... | +| Assert.cs:52:9:52:34 | ...; | Assert.cs:51:9:51:33 | After ... ...; | +| Assert.cs:52:9:52:34 | After ...; | Assert.cs:52:9:52:33 | After call to method IsFalse | +| Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:32 | Before ... == ... | | Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:29:52:32 | null | +| Assert.cs:52:24:52:32 | After ... == ... | Assert.cs:52:24:52:32 | ... == ... | +| Assert.cs:52:24:52:32 | Before ... == ... | Assert.cs:52:9:52:33 | Before call to method IsFalse | | Assert.cs:52:29:52:32 | null | Assert.cs:52:24:52:24 | access to local variable s | -| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:53:27:53:34 | access to property Length | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:52:9:52:33 | call to method IsFalse | -| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:53:9:53:36 | ...; | +| Assert.cs:53:9:53:35 | After call to method WriteLine | Assert.cs:53:9:53:35 | call to method WriteLine | +| Assert.cs:53:9:53:35 | Before call to method WriteLine | Assert.cs:53:9:53:36 | ...; | +| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:53:27:53:34 | After access to property Length | +| Assert.cs:53:9:53:36 | ...; | Assert.cs:52:9:52:34 | After ...; | +| Assert.cs:53:9:53:36 | After ...; | Assert.cs:53:9:53:35 | After call to method WriteLine | +| Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:53:27:53:34 | Before access to property Length | +| Assert.cs:53:27:53:34 | After access to property Length | Assert.cs:53:27:53:34 | access to property Length | +| Assert.cs:53:27:53:34 | Before access to property Length | Assert.cs:53:9:53:35 | Before call to method WriteLine | | Assert.cs:53:27:53:34 | access to property Length | Assert.cs:53:27:53:27 | access to local variable s | -| Assert.cs:56:10:56:11 | exit M8 (normal) | Assert.cs:60:9:60:35 | call to method WriteLine | -| Assert.cs:57:5:61:5 | {...} | Assert.cs:56:10:56:11 | enter M8 | +| Assert.cs:56:10:56:11 | Normal Exit | Assert.cs:57:5:61:5 | After {...} | +| Assert.cs:57:5:61:5 | After {...} | Assert.cs:60:9:60:36 | After ...; | +| Assert.cs:57:5:61:5 | {...} | Assert.cs:56:10:56:11 | Entry | | Assert.cs:58:9:58:33 | ... ...; | Assert.cs:57:5:61:5 | {...} | -| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:20:58:32 | ... ? ... : ... | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:9:58:33 | ... ...; | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:24:58:27 | null | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:31:58:32 | "" | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:23:59:36 | ... && ... | -| Assert.cs:59:9:59:38 | ...; | Assert.cs:58:16:58:32 | String s = ... | -| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:9:59:38 | ...; | +| Assert.cs:58:9:58:33 | After ... ...; | Assert.cs:58:16:58:32 | After String s = ... | +| Assert.cs:58:16:58:16 | access to local variable s | Assert.cs:58:16:58:32 | Before String s = ... | +| Assert.cs:58:16:58:32 | After String s = ... | Assert.cs:58:16:58:32 | String s = ... | +| Assert.cs:58:16:58:32 | Before String s = ... | Assert.cs:58:9:58:33 | ... ...; | +| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:20:58:32 | After ... ? ... : ... | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:16:58:16 | access to local variable s | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:24:58:27 | null | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:31:58:32 | "" | +| Assert.cs:58:24:58:27 | null | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:58:31:58:32 | "" | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:9:59:37 | call to method IsTrue | +| Assert.cs:59:9:59:37 | Before call to method IsTrue | Assert.cs:59:9:59:38 | ...; | +| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:23:59:36 | After ... && ... | +| Assert.cs:59:9:59:38 | ...; | Assert.cs:58:9:58:33 | After ... ...; | +| Assert.cs:59:9:59:38 | After ...; | Assert.cs:59:9:59:37 | After call to method IsTrue | +| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:31 | Before ... != ... | | Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:28:59:31 | null | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:31 | ... != ... | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:36:59:36 | access to parameter b | +| Assert.cs:59:23:59:31 | Before ... != ... | Assert.cs:59:23:59:36 | ... && ... | +| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:9:59:37 | Before call to method IsTrue | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:36:59:36 | access to parameter b | | Assert.cs:59:28:59:31 | null | Assert.cs:59:23:59:23 | access to local variable s | -| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:27:60:34 | access to property Length | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:59:9:59:37 | call to method IsTrue | -| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:9:60:36 | ...; | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:60:9:60:35 | After call to method WriteLine | Assert.cs:60:9:60:35 | call to method WriteLine | +| Assert.cs:60:9:60:35 | Before call to method WriteLine | Assert.cs:60:9:60:36 | ...; | +| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:27:60:34 | After access to property Length | +| Assert.cs:60:9:60:36 | ...; | Assert.cs:59:9:59:38 | After ...; | +| Assert.cs:60:9:60:36 | After ...; | Assert.cs:60:9:60:35 | After call to method WriteLine | +| Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:34 | Before access to property Length | +| Assert.cs:60:27:60:34 | After access to property Length | Assert.cs:60:27:60:34 | access to property Length | +| Assert.cs:60:27:60:34 | Before access to property Length | Assert.cs:60:9:60:35 | Before call to method WriteLine | | Assert.cs:60:27:60:34 | access to property Length | Assert.cs:60:27:60:27 | access to local variable s | -| Assert.cs:63:10:63:11 | exit M9 (normal) | Assert.cs:67:9:67:35 | call to method WriteLine | -| Assert.cs:64:5:68:5 | {...} | Assert.cs:63:10:63:11 | enter M9 | +| Assert.cs:63:10:63:11 | Normal Exit | Assert.cs:64:5:68:5 | After {...} | +| Assert.cs:64:5:68:5 | After {...} | Assert.cs:67:9:67:36 | After ...; | +| Assert.cs:64:5:68:5 | {...} | Assert.cs:63:10:63:11 | Entry | | Assert.cs:65:9:65:33 | ... ...; | Assert.cs:64:5:68:5 | {...} | -| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:20:65:32 | ... ? ... : ... | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:9:65:33 | ... ...; | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:24:65:27 | null | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:31:65:32 | "" | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:24:66:37 | ... \|\| ... | -| Assert.cs:66:9:66:39 | ...; | Assert.cs:65:16:65:32 | String s = ... | -| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:9:66:39 | ...; | +| Assert.cs:65:9:65:33 | After ... ...; | Assert.cs:65:16:65:32 | After String s = ... | +| Assert.cs:65:16:65:16 | access to local variable s | Assert.cs:65:16:65:32 | Before String s = ... | +| Assert.cs:65:16:65:32 | After String s = ... | Assert.cs:65:16:65:32 | String s = ... | +| Assert.cs:65:16:65:32 | Before String s = ... | Assert.cs:65:9:65:33 | ... ...; | +| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:20:65:32 | After ... ? ... : ... | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:16:65:16 | access to local variable s | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:24:65:27 | null | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:31:65:32 | "" | +| Assert.cs:65:24:65:27 | null | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:65:31:65:32 | "" | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:9:66:38 | call to method IsFalse | +| Assert.cs:66:9:66:38 | Before call to method IsFalse | Assert.cs:66:9:66:39 | ...; | +| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:24:66:37 | After ... \|\| ... | +| Assert.cs:66:9:66:39 | ...; | Assert.cs:65:9:65:33 | After ... ...; | +| Assert.cs:66:9:66:39 | After ...; | Assert.cs:66:9:66:38 | After call to method IsFalse | +| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:32 | Before ... == ... | | Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:29:66:32 | null | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:32 | ... == ... | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:37:66:37 | access to parameter b | +| Assert.cs:66:24:66:32 | Before ... == ... | Assert.cs:66:24:66:37 | ... \|\| ... | +| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:9:66:38 | Before call to method IsFalse | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:66:29:66:32 | null | Assert.cs:66:24:66:24 | access to local variable s | -| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:27:67:34 | access to property Length | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:66:9:66:38 | call to method IsFalse | -| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:9:67:36 | ...; | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:67:9:67:35 | After call to method WriteLine | Assert.cs:67:9:67:35 | call to method WriteLine | +| Assert.cs:67:9:67:35 | Before call to method WriteLine | Assert.cs:67:9:67:36 | ...; | +| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:27:67:34 | After access to property Length | +| Assert.cs:67:9:67:36 | ...; | Assert.cs:66:9:66:39 | After ...; | +| Assert.cs:67:9:67:36 | After ...; | Assert.cs:67:9:67:35 | After call to method WriteLine | +| Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:34 | Before access to property Length | +| Assert.cs:67:27:67:34 | After access to property Length | Assert.cs:67:27:67:34 | access to property Length | +| Assert.cs:67:27:67:34 | Before access to property Length | Assert.cs:67:9:67:35 | Before call to method WriteLine | | Assert.cs:67:27:67:34 | access to property Length | Assert.cs:67:27:67:27 | access to local variable s | -| Assert.cs:70:10:70:12 | exit M10 (normal) | Assert.cs:74:9:74:35 | call to method WriteLine | -| Assert.cs:71:5:75:5 | {...} | Assert.cs:70:10:70:12 | enter M10 | +| Assert.cs:70:10:70:12 | Normal Exit | Assert.cs:71:5:75:5 | After {...} | +| Assert.cs:71:5:75:5 | After {...} | Assert.cs:74:9:74:36 | After ...; | +| Assert.cs:71:5:75:5 | {...} | Assert.cs:70:10:70:12 | Entry | | Assert.cs:72:9:72:33 | ... ...; | Assert.cs:71:5:75:5 | {...} | -| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:20:72:32 | ... ? ... : ... | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:9:72:33 | ... ...; | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:24:72:27 | null | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:31:72:32 | "" | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:23:73:36 | ... && ... | -| Assert.cs:73:9:73:38 | ...; | Assert.cs:72:16:72:32 | String s = ... | -| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:9:73:38 | ...; | +| Assert.cs:72:9:72:33 | After ... ...; | Assert.cs:72:16:72:32 | After String s = ... | +| Assert.cs:72:16:72:16 | access to local variable s | Assert.cs:72:16:72:32 | Before String s = ... | +| Assert.cs:72:16:72:32 | After String s = ... | Assert.cs:72:16:72:32 | String s = ... | +| Assert.cs:72:16:72:32 | Before String s = ... | Assert.cs:72:9:72:33 | ... ...; | +| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:20:72:32 | After ... ? ... : ... | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:16:72:16 | access to local variable s | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:24:72:27 | null | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:31:72:32 | "" | +| Assert.cs:72:24:72:27 | null | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:72:31:72:32 | "" | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:9:73:37 | call to method IsTrue | +| Assert.cs:73:9:73:37 | Before call to method IsTrue | Assert.cs:73:9:73:38 | ...; | +| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:23:73:36 | After ... && ... | +| Assert.cs:73:9:73:38 | ...; | Assert.cs:72:9:72:33 | After ... ...; | +| Assert.cs:73:9:73:38 | After ...; | Assert.cs:73:9:73:37 | After call to method IsTrue | +| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:23:73:31 | Before ... == ... | | Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:28:73:31 | null | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:31 | ... == ... | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:36:73:36 | access to parameter b | +| Assert.cs:73:23:73:31 | Before ... == ... | Assert.cs:73:23:73:36 | ... && ... | +| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:9:73:37 | Before call to method IsTrue | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:36:73:36 | access to parameter b | | Assert.cs:73:28:73:31 | null | Assert.cs:73:23:73:23 | access to local variable s | -| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:27:74:34 | access to property Length | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:73:9:73:37 | call to method IsTrue | -| Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:9:74:36 | ...; | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:74:9:74:35 | After call to method WriteLine | Assert.cs:74:9:74:35 | call to method WriteLine | +| Assert.cs:74:9:74:35 | Before call to method WriteLine | Assert.cs:74:9:74:36 | ...; | +| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:27:74:34 | After access to property Length | +| Assert.cs:74:9:74:36 | ...; | Assert.cs:73:9:73:38 | After ...; | +| Assert.cs:74:9:74:36 | After ...; | Assert.cs:74:9:74:35 | After call to method WriteLine | +| Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:34 | Before access to property Length | +| Assert.cs:74:27:74:34 | After access to property Length | Assert.cs:74:27:74:34 | access to property Length | +| Assert.cs:74:27:74:34 | Before access to property Length | Assert.cs:74:9:74:35 | Before call to method WriteLine | | Assert.cs:74:27:74:34 | access to property Length | Assert.cs:74:27:74:27 | access to local variable s | -| Assert.cs:77:10:77:12 | exit M11 (normal) | Assert.cs:81:9:81:35 | call to method WriteLine | -| Assert.cs:78:5:82:5 | {...} | Assert.cs:77:10:77:12 | enter M11 | +| Assert.cs:77:10:77:12 | Normal Exit | Assert.cs:78:5:82:5 | After {...} | +| Assert.cs:78:5:82:5 | After {...} | Assert.cs:81:9:81:36 | After ...; | +| Assert.cs:78:5:82:5 | {...} | Assert.cs:77:10:77:12 | Entry | | Assert.cs:79:9:79:33 | ... ...; | Assert.cs:78:5:82:5 | {...} | -| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:20:79:32 | ... ? ... : ... | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:9:79:33 | ... ...; | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:24:79:27 | null | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:31:79:32 | "" | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:24:80:37 | ... \|\| ... | -| Assert.cs:80:9:80:39 | ...; | Assert.cs:79:16:79:32 | String s = ... | -| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:9:80:39 | ...; | +| Assert.cs:79:9:79:33 | After ... ...; | Assert.cs:79:16:79:32 | After String s = ... | +| Assert.cs:79:16:79:16 | access to local variable s | Assert.cs:79:16:79:32 | Before String s = ... | +| Assert.cs:79:16:79:32 | After String s = ... | Assert.cs:79:16:79:32 | String s = ... | +| Assert.cs:79:16:79:32 | Before String s = ... | Assert.cs:79:9:79:33 | ... ...; | +| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:20:79:32 | After ... ? ... : ... | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:16:79:16 | access to local variable s | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:24:79:27 | null | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:31:79:32 | "" | +| Assert.cs:79:24:79:27 | null | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:79:31:79:32 | "" | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:9:80:38 | call to method IsFalse | +| Assert.cs:80:9:80:38 | Before call to method IsFalse | Assert.cs:80:9:80:39 | ...; | +| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:24:80:37 | After ... \|\| ... | +| Assert.cs:80:9:80:39 | ...; | Assert.cs:79:9:79:33 | After ... ...; | +| Assert.cs:80:9:80:39 | After ...; | Assert.cs:80:9:80:38 | After call to method IsFalse | +| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:24:80:32 | Before ... != ... | | Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:29:80:32 | null | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:32 | ... != ... | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:37:80:37 | access to parameter b | +| Assert.cs:80:24:80:32 | Before ... != ... | Assert.cs:80:24:80:37 | ... \|\| ... | +| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:9:80:38 | Before call to method IsFalse | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:80:29:80:32 | null | Assert.cs:80:24:80:24 | access to local variable s | -| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:27:81:34 | access to property Length | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:80:9:80:38 | call to method IsFalse | -| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:9:81:36 | ...; | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:81:9:81:35 | After call to method WriteLine | Assert.cs:81:9:81:35 | call to method WriteLine | +| Assert.cs:81:9:81:35 | Before call to method WriteLine | Assert.cs:81:9:81:36 | ...; | +| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:27:81:34 | After access to property Length | +| Assert.cs:81:9:81:36 | ...; | Assert.cs:80:9:80:39 | After ...; | +| Assert.cs:81:9:81:36 | After ...; | Assert.cs:81:9:81:35 | After call to method WriteLine | +| Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:34 | Before access to property Length | +| Assert.cs:81:27:81:34 | After access to property Length | Assert.cs:81:27:81:34 | access to property Length | +| Assert.cs:81:27:81:34 | Before access to property Length | Assert.cs:81:9:81:35 | Before call to method WriteLine | | Assert.cs:81:27:81:34 | access to property Length | Assert.cs:81:27:81:27 | access to local variable s | -| Assert.cs:84:10:84:12 | exit M12 (normal) | Assert.cs:128:9:128:35 | call to method WriteLine | -| Assert.cs:85:5:129:5 | {...} | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:84:10:84:12 | Normal Exit | Assert.cs:85:5:129:5 | After {...} | +| Assert.cs:85:5:129:5 | After {...} | Assert.cs:128:9:128:36 | After ...; | +| Assert.cs:85:5:129:5 | {...} | Assert.cs:84:10:84:12 | Entry | | Assert.cs:86:9:86:33 | ... ...; | Assert.cs:85:5:129:5 | {...} | -| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:9:86:33 | ... ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:87:22:87:30 | ... != ... | -| Assert.cs:87:9:87:32 | ...; | Assert.cs:86:16:86:32 | String s = ... | -| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:9:87:32 | ...; | +| Assert.cs:86:9:86:33 | After ... ...; | Assert.cs:86:16:86:32 | After String s = ... | +| Assert.cs:86:16:86:16 | access to local variable s | Assert.cs:86:16:86:32 | Before String s = ... | +| Assert.cs:86:16:86:32 | After String s = ... | Assert.cs:86:16:86:32 | String s = ... | +| Assert.cs:86:16:86:32 | Before String s = ... | Assert.cs:86:9:86:33 | ... ...; | +| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:16:86:16 | access to local variable s | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:86:24:86:27 | null | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:86:31:86:32 | "" | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:87:9:87:31 | call to method Assert | +| Assert.cs:87:9:87:31 | Before call to method Assert | Assert.cs:87:9:87:32 | ...; | +| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:87:22:87:30 | After ... != ... | +| Assert.cs:87:9:87:32 | ...; | Assert.cs:86:9:86:33 | After ... ...; | +| Assert.cs:87:9:87:32 | After ...; | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:22:87:30 | Before ... != ... | | Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:27:87:30 | null | +| Assert.cs:87:22:87:30 | After ... != ... | Assert.cs:87:22:87:30 | ... != ... | +| Assert.cs:87:22:87:30 | Before ... != ... | Assert.cs:87:9:87:31 | Before call to method Assert | | Assert.cs:87:27:87:30 | null | Assert.cs:87:22:87:22 | access to local variable s | -| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:88:27:88:34 | access to property Length | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:87:9:87:31 | call to method Assert | -| Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:9:88:36 | ...; | +| Assert.cs:88:9:88:35 | After call to method WriteLine | Assert.cs:88:9:88:35 | call to method WriteLine | +| Assert.cs:88:9:88:35 | Before call to method WriteLine | Assert.cs:88:9:88:36 | ...; | +| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:88:27:88:34 | After access to property Length | +| Assert.cs:88:9:88:36 | ...; | Assert.cs:87:9:87:32 | After ...; | +| Assert.cs:88:9:88:36 | After ...; | Assert.cs:88:9:88:35 | After call to method WriteLine | +| Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:27:88:34 | Before access to property Length | +| Assert.cs:88:27:88:34 | After access to property Length | Assert.cs:88:27:88:34 | access to property Length | +| Assert.cs:88:27:88:34 | Before access to property Length | Assert.cs:88:9:88:35 | Before call to method WriteLine | | Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:27:88:27 | access to local variable s | -| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:90:9:90:26 | ...; | Assert.cs:88:9:88:35 | call to method WriteLine | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:9:90:26 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:90:9:90:9 | access to local variable s | Assert.cs:90:9:90:25 | Before ... = ... | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:90:9:90:25 | After ... = ... | Assert.cs:90:9:90:25 | ... = ... | +| Assert.cs:90:9:90:25 | Before ... = ... | Assert.cs:90:9:90:26 | ...; | +| Assert.cs:90:9:90:26 | ...; | Assert.cs:88:9:88:36 | After ...; | +| Assert.cs:90:9:90:26 | After ...; | Assert.cs:90:9:90:25 | After ... = ... | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:9:90:9 | access to local variable s | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:90:17:90:20 | null | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:90:24:90:25 | "" | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:91:9:91:24 | call to method IsNull | +| Assert.cs:91:9:91:24 | Before call to method IsNull | Assert.cs:91:9:91:25 | ...; | | Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:91:23:91:23 | access to local variable s | -| Assert.cs:91:9:91:25 | ...; | Assert.cs:90:9:90:25 | ... = ... | -| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:25 | ...; | -| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:92:27:92:34 | access to property Length | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:91:9:91:24 | call to method IsNull | -| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:9:92:36 | ...; | +| Assert.cs:91:9:91:25 | ...; | Assert.cs:90:9:90:26 | After ...; | +| Assert.cs:91:9:91:25 | After ...; | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | Before call to method IsNull | +| Assert.cs:92:9:92:35 | After call to method WriteLine | Assert.cs:92:9:92:35 | call to method WriteLine | +| Assert.cs:92:9:92:35 | Before call to method WriteLine | Assert.cs:92:9:92:36 | ...; | +| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:92:27:92:34 | After access to property Length | +| Assert.cs:92:9:92:36 | ...; | Assert.cs:91:9:91:25 | After ...; | +| Assert.cs:92:9:92:36 | After ...; | Assert.cs:92:9:92:35 | After call to method WriteLine | +| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:34 | Before access to property Length | +| Assert.cs:92:27:92:34 | After access to property Length | Assert.cs:92:27:92:34 | access to property Length | +| Assert.cs:92:27:92:34 | Before access to property Length | Assert.cs:92:9:92:35 | Before call to method WriteLine | | Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:27:92:27 | access to local variable s | -| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:94:9:94:26 | ...; | Assert.cs:92:9:92:35 | call to method WriteLine | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:9:94:26 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:94:9:94:9 | access to local variable s | Assert.cs:94:9:94:25 | Before ... = ... | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:94:9:94:25 | After ... = ... | Assert.cs:94:9:94:25 | ... = ... | +| Assert.cs:94:9:94:25 | Before ... = ... | Assert.cs:94:9:94:26 | ...; | +| Assert.cs:94:9:94:26 | ...; | Assert.cs:92:9:92:36 | After ...; | +| Assert.cs:94:9:94:26 | After ...; | Assert.cs:94:9:94:25 | After ... = ... | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:9:94:9 | access to local variable s | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:94:17:94:20 | null | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:94:24:94:25 | "" | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:95:9:95:27 | call to method IsNotNull | +| Assert.cs:95:9:95:27 | Before call to method IsNotNull | Assert.cs:95:9:95:28 | ...; | | Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:95:26:95:26 | access to local variable s | -| Assert.cs:95:9:95:28 | ...; | Assert.cs:94:9:94:25 | ... = ... | -| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:28 | ...; | -| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:96:27:96:34 | access to property Length | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:95:9:95:27 | call to method IsNotNull | -| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:9:96:36 | ...; | +| Assert.cs:95:9:95:28 | ...; | Assert.cs:94:9:94:26 | After ...; | +| Assert.cs:95:9:95:28 | After ...; | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | Before call to method IsNotNull | +| Assert.cs:96:9:96:35 | After call to method WriteLine | Assert.cs:96:9:96:35 | call to method WriteLine | +| Assert.cs:96:9:96:35 | Before call to method WriteLine | Assert.cs:96:9:96:36 | ...; | +| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:96:27:96:34 | After access to property Length | +| Assert.cs:96:9:96:36 | ...; | Assert.cs:95:9:95:28 | After ...; | +| Assert.cs:96:9:96:36 | After ...; | Assert.cs:96:9:96:35 | After call to method WriteLine | +| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:34 | Before access to property Length | +| Assert.cs:96:27:96:34 | After access to property Length | Assert.cs:96:27:96:34 | access to property Length | +| Assert.cs:96:27:96:34 | Before access to property Length | Assert.cs:96:9:96:35 | Before call to method WriteLine | | Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:27:96:27 | access to local variable s | -| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:98:9:98:26 | ...; | Assert.cs:96:9:96:35 | call to method WriteLine | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:9:98:26 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:99:23:99:31 | ... == ... | -| Assert.cs:99:9:99:33 | ...; | Assert.cs:98:9:98:25 | ... = ... | -| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:9:99:33 | ...; | +| Assert.cs:98:9:98:9 | access to local variable s | Assert.cs:98:9:98:25 | Before ... = ... | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:98:9:98:25 | After ... = ... | Assert.cs:98:9:98:25 | ... = ... | +| Assert.cs:98:9:98:25 | Before ... = ... | Assert.cs:98:9:98:26 | ...; | +| Assert.cs:98:9:98:26 | ...; | Assert.cs:96:9:96:36 | After ...; | +| Assert.cs:98:9:98:26 | After ...; | Assert.cs:98:9:98:25 | After ... = ... | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:9:98:9 | access to local variable s | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:98:17:98:20 | null | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:98:24:98:25 | "" | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:99:9:99:32 | call to method IsTrue | +| Assert.cs:99:9:99:32 | Before call to method IsTrue | Assert.cs:99:9:99:33 | ...; | +| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:99:23:99:31 | After ... == ... | +| Assert.cs:99:9:99:33 | ...; | Assert.cs:98:9:98:26 | After ...; | +| Assert.cs:99:9:99:33 | After ...; | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:23:99:31 | Before ... == ... | | Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:28:99:31 | null | +| Assert.cs:99:23:99:31 | After ... == ... | Assert.cs:99:23:99:31 | ... == ... | +| Assert.cs:99:23:99:31 | Before ... == ... | Assert.cs:99:9:99:32 | Before call to method IsTrue | | Assert.cs:99:28:99:31 | null | Assert.cs:99:23:99:23 | access to local variable s | -| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:100:27:100:34 | access to property Length | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:99:9:99:32 | call to method IsTrue | -| Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:9:100:36 | ...; | +| Assert.cs:100:9:100:35 | After call to method WriteLine | Assert.cs:100:9:100:35 | call to method WriteLine | +| Assert.cs:100:9:100:35 | Before call to method WriteLine | Assert.cs:100:9:100:36 | ...; | +| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:100:27:100:34 | After access to property Length | +| Assert.cs:100:9:100:36 | ...; | Assert.cs:99:9:99:33 | After ...; | +| Assert.cs:100:9:100:36 | After ...; | Assert.cs:100:9:100:35 | After call to method WriteLine | +| Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:27:100:34 | Before access to property Length | +| Assert.cs:100:27:100:34 | After access to property Length | Assert.cs:100:27:100:34 | access to property Length | +| Assert.cs:100:27:100:34 | Before access to property Length | Assert.cs:100:9:100:35 | Before call to method WriteLine | | Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:27:100:27 | access to local variable s | -| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:102:9:102:26 | ...; | Assert.cs:100:9:100:35 | call to method WriteLine | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:9:102:26 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:103:23:103:31 | ... != ... | -| Assert.cs:103:9:103:33 | ...; | Assert.cs:102:9:102:25 | ... = ... | -| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:9:103:33 | ...; | +| Assert.cs:102:9:102:9 | access to local variable s | Assert.cs:102:9:102:25 | Before ... = ... | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:102:9:102:25 | After ... = ... | Assert.cs:102:9:102:25 | ... = ... | +| Assert.cs:102:9:102:25 | Before ... = ... | Assert.cs:102:9:102:26 | ...; | +| Assert.cs:102:9:102:26 | ...; | Assert.cs:100:9:100:36 | After ...; | +| Assert.cs:102:9:102:26 | After ...; | Assert.cs:102:9:102:25 | After ... = ... | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:9:102:9 | access to local variable s | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:102:17:102:20 | null | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:102:24:102:25 | "" | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:103:9:103:32 | call to method IsTrue | +| Assert.cs:103:9:103:32 | Before call to method IsTrue | Assert.cs:103:9:103:33 | ...; | +| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:103:23:103:31 | After ... != ... | +| Assert.cs:103:9:103:33 | ...; | Assert.cs:102:9:102:26 | After ...; | +| Assert.cs:103:9:103:33 | After ...; | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:23:103:31 | Before ... != ... | | Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:28:103:31 | null | +| Assert.cs:103:23:103:31 | After ... != ... | Assert.cs:103:23:103:31 | ... != ... | +| Assert.cs:103:23:103:31 | Before ... != ... | Assert.cs:103:9:103:32 | Before call to method IsTrue | | Assert.cs:103:28:103:31 | null | Assert.cs:103:23:103:23 | access to local variable s | -| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:104:27:104:34 | access to property Length | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:103:9:103:32 | call to method IsTrue | -| Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:9:104:36 | ...; | +| Assert.cs:104:9:104:35 | After call to method WriteLine | Assert.cs:104:9:104:35 | call to method WriteLine | +| Assert.cs:104:9:104:35 | Before call to method WriteLine | Assert.cs:104:9:104:36 | ...; | +| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:104:27:104:34 | After access to property Length | +| Assert.cs:104:9:104:36 | ...; | Assert.cs:103:9:103:33 | After ...; | +| Assert.cs:104:9:104:36 | After ...; | Assert.cs:104:9:104:35 | After call to method WriteLine | +| Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:27:104:34 | Before access to property Length | +| Assert.cs:104:27:104:34 | After access to property Length | Assert.cs:104:27:104:34 | access to property Length | +| Assert.cs:104:27:104:34 | Before access to property Length | Assert.cs:104:9:104:35 | Before call to method WriteLine | | Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:27:104:27 | access to local variable s | -| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:106:9:106:26 | ...; | Assert.cs:104:9:104:35 | call to method WriteLine | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:9:106:26 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:107:24:107:32 | ... != ... | -| Assert.cs:107:9:107:34 | ...; | Assert.cs:106:9:106:25 | ... = ... | -| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:9:107:34 | ...; | +| Assert.cs:106:9:106:9 | access to local variable s | Assert.cs:106:9:106:25 | Before ... = ... | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:106:9:106:25 | After ... = ... | Assert.cs:106:9:106:25 | ... = ... | +| Assert.cs:106:9:106:25 | Before ... = ... | Assert.cs:106:9:106:26 | ...; | +| Assert.cs:106:9:106:26 | ...; | Assert.cs:104:9:104:36 | After ...; | +| Assert.cs:106:9:106:26 | After ...; | Assert.cs:106:9:106:25 | After ... = ... | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:9:106:9 | access to local variable s | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:106:17:106:20 | null | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:106:24:106:25 | "" | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:107:9:107:33 | call to method IsFalse | +| Assert.cs:107:9:107:33 | Before call to method IsFalse | Assert.cs:107:9:107:34 | ...; | +| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:107:24:107:32 | After ... != ... | +| Assert.cs:107:9:107:34 | ...; | Assert.cs:106:9:106:26 | After ...; | +| Assert.cs:107:9:107:34 | After ...; | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:24:107:32 | Before ... != ... | | Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:29:107:32 | null | +| Assert.cs:107:24:107:32 | After ... != ... | Assert.cs:107:24:107:32 | ... != ... | +| Assert.cs:107:24:107:32 | Before ... != ... | Assert.cs:107:9:107:33 | Before call to method IsFalse | | Assert.cs:107:29:107:32 | null | Assert.cs:107:24:107:24 | access to local variable s | -| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:108:27:108:34 | access to property Length | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:107:9:107:33 | call to method IsFalse | -| Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:9:108:36 | ...; | +| Assert.cs:108:9:108:35 | After call to method WriteLine | Assert.cs:108:9:108:35 | call to method WriteLine | +| Assert.cs:108:9:108:35 | Before call to method WriteLine | Assert.cs:108:9:108:36 | ...; | +| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:108:27:108:34 | After access to property Length | +| Assert.cs:108:9:108:36 | ...; | Assert.cs:107:9:107:34 | After ...; | +| Assert.cs:108:9:108:36 | After ...; | Assert.cs:108:9:108:35 | After call to method WriteLine | +| Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:27:108:34 | Before access to property Length | +| Assert.cs:108:27:108:34 | After access to property Length | Assert.cs:108:27:108:34 | access to property Length | +| Assert.cs:108:27:108:34 | Before access to property Length | Assert.cs:108:9:108:35 | Before call to method WriteLine | | Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:27:108:27 | access to local variable s | -| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:110:9:110:26 | ...; | Assert.cs:108:9:108:35 | call to method WriteLine | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:9:110:26 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:111:24:111:32 | ... == ... | -| Assert.cs:111:9:111:34 | ...; | Assert.cs:110:9:110:25 | ... = ... | -| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:9:111:34 | ...; | +| Assert.cs:110:9:110:9 | access to local variable s | Assert.cs:110:9:110:25 | Before ... = ... | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:110:9:110:25 | After ... = ... | Assert.cs:110:9:110:25 | ... = ... | +| Assert.cs:110:9:110:25 | Before ... = ... | Assert.cs:110:9:110:26 | ...; | +| Assert.cs:110:9:110:26 | ...; | Assert.cs:108:9:108:36 | After ...; | +| Assert.cs:110:9:110:26 | After ...; | Assert.cs:110:9:110:25 | After ... = ... | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:9:110:9 | access to local variable s | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:110:17:110:20 | null | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:110:24:110:25 | "" | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:111:9:111:33 | call to method IsFalse | +| Assert.cs:111:9:111:33 | Before call to method IsFalse | Assert.cs:111:9:111:34 | ...; | +| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:111:24:111:32 | After ... == ... | +| Assert.cs:111:9:111:34 | ...; | Assert.cs:110:9:110:26 | After ...; | +| Assert.cs:111:9:111:34 | After ...; | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:24:111:32 | Before ... == ... | | Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:29:111:32 | null | +| Assert.cs:111:24:111:32 | After ... == ... | Assert.cs:111:24:111:32 | ... == ... | +| Assert.cs:111:24:111:32 | Before ... == ... | Assert.cs:111:9:111:33 | Before call to method IsFalse | | Assert.cs:111:29:111:32 | null | Assert.cs:111:24:111:24 | access to local variable s | -| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:112:27:112:34 | access to property Length | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:111:9:111:33 | call to method IsFalse | -| Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:9:112:36 | ...; | +| Assert.cs:112:9:112:35 | After call to method WriteLine | Assert.cs:112:9:112:35 | call to method WriteLine | +| Assert.cs:112:9:112:35 | Before call to method WriteLine | Assert.cs:112:9:112:36 | ...; | +| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:112:27:112:34 | After access to property Length | +| Assert.cs:112:9:112:36 | ...; | Assert.cs:111:9:111:34 | After ...; | +| Assert.cs:112:9:112:36 | After ...; | Assert.cs:112:9:112:35 | After call to method WriteLine | +| Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:27:112:34 | Before access to property Length | +| Assert.cs:112:27:112:34 | After access to property Length | Assert.cs:112:27:112:34 | access to property Length | +| Assert.cs:112:27:112:34 | Before access to property Length | Assert.cs:112:9:112:35 | Before call to method WriteLine | | Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:27:112:27 | access to local variable s | -| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:114:9:114:26 | ...; | Assert.cs:112:9:112:35 | call to method WriteLine | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:9:114:26 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:115:9:115:38 | ...; | Assert.cs:114:9:114:25 | ... = ... | -| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:9:115:38 | ...; | +| Assert.cs:114:9:114:9 | access to local variable s | Assert.cs:114:9:114:25 | Before ... = ... | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:114:9:114:25 | After ... = ... | Assert.cs:114:9:114:25 | ... = ... | +| Assert.cs:114:9:114:25 | Before ... = ... | Assert.cs:114:9:114:26 | ...; | +| Assert.cs:114:9:114:26 | ...; | Assert.cs:112:9:112:36 | After ...; | +| Assert.cs:114:9:114:26 | After ...; | Assert.cs:114:9:114:25 | After ... = ... | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:9:114:9 | access to local variable s | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:114:17:114:20 | null | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:114:24:114:25 | "" | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:9:115:37 | call to method IsTrue | +| Assert.cs:115:9:115:37 | Before call to method IsTrue | Assert.cs:115:9:115:38 | ...; | +| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:115:9:115:38 | ...; | Assert.cs:114:9:114:26 | After ...; | +| Assert.cs:115:9:115:38 | After ...; | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:23:115:31 | Before ... != ... | | Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:28:115:31 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:31 | ... != ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:115:23:115:31 | Before ... != ... | Assert.cs:115:23:115:36 | ... && ... | +| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:9:115:37 | Before call to method IsTrue | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:36:115:36 | access to parameter b | | Assert.cs:115:28:115:31 | null | Assert.cs:115:23:115:23 | access to local variable s | -| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:27:116:34 | access to property Length | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:115:9:115:37 | call to method IsTrue | -| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:9:116:36 | ...; | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:116:9:116:35 | After call to method WriteLine | Assert.cs:116:9:116:35 | call to method WriteLine | +| Assert.cs:116:9:116:35 | Before call to method WriteLine | Assert.cs:116:9:116:36 | ...; | +| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:27:116:34 | After access to property Length | +| Assert.cs:116:9:116:36 | ...; | Assert.cs:115:9:115:38 | After ...; | +| Assert.cs:116:9:116:36 | After ...; | Assert.cs:116:9:116:35 | After call to method WriteLine | +| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:34 | Before access to property Length | +| Assert.cs:116:27:116:34 | After access to property Length | Assert.cs:116:27:116:34 | access to property Length | +| Assert.cs:116:27:116:34 | Before access to property Length | Assert.cs:116:9:116:35 | Before call to method WriteLine | | Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:27:116:27 | access to local variable s | -| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:118:9:118:26 | ...; | Assert.cs:116:9:116:35 | call to method WriteLine | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:9:118:26 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:119:9:119:40 | ...; | Assert.cs:118:9:118:25 | ... = ... | -| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:9:119:40 | ...; | +| Assert.cs:118:9:118:9 | access to local variable s | Assert.cs:118:9:118:25 | Before ... = ... | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:118:9:118:25 | After ... = ... | Assert.cs:118:9:118:25 | ... = ... | +| Assert.cs:118:9:118:25 | Before ... = ... | Assert.cs:118:9:118:26 | ...; | +| Assert.cs:118:9:118:26 | ...; | Assert.cs:116:9:116:36 | After ...; | +| Assert.cs:118:9:118:26 | After ...; | Assert.cs:118:9:118:25 | After ... = ... | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:9:118:9 | access to local variable s | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:118:17:118:20 | null | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:118:24:118:25 | "" | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:9:119:39 | call to method IsFalse | +| Assert.cs:119:9:119:39 | Before call to method IsFalse | Assert.cs:119:9:119:40 | ...; | +| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:119:9:119:40 | ...; | Assert.cs:118:9:118:26 | After ...; | +| Assert.cs:119:9:119:40 | After ...; | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:24:119:32 | Before ... == ... | | Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:29:119:32 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:32 | ... == ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:37:119:38 | !... | +| Assert.cs:119:24:119:32 | Before ... == ... | Assert.cs:119:24:119:38 | ... \|\| ... | +| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:9:119:39 | Before call to method IsFalse | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:37:119:38 | After !... | | Assert.cs:119:29:119:32 | null | Assert.cs:119:24:119:24 | access to local variable s | -| Assert.cs:119:37:119:38 | !... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:27:120:34 | access to property Length | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:119:9:119:39 | call to method IsFalse | -| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:9:120:36 | ...; | +| Assert.cs:119:37:119:38 | !... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:119:37:119:38 | After !... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | !... | +| Assert.cs:120:9:120:35 | After call to method WriteLine | Assert.cs:120:9:120:35 | call to method WriteLine | +| Assert.cs:120:9:120:35 | Before call to method WriteLine | Assert.cs:120:9:120:36 | ...; | +| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:27:120:34 | After access to property Length | +| Assert.cs:120:9:120:36 | ...; | Assert.cs:119:9:119:40 | After ...; | +| Assert.cs:120:9:120:36 | After ...; | Assert.cs:120:9:120:35 | After call to method WriteLine | +| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:34 | Before access to property Length | +| Assert.cs:120:27:120:34 | After access to property Length | Assert.cs:120:27:120:34 | access to property Length | +| Assert.cs:120:27:120:34 | Before access to property Length | Assert.cs:120:9:120:35 | Before call to method WriteLine | | Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:27:120:27 | access to local variable s | -| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:122:9:122:26 | ...; | Assert.cs:120:9:120:35 | call to method WriteLine | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:9:122:26 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:123:9:123:38 | ...; | Assert.cs:122:9:122:25 | ... = ... | -| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:9:123:38 | ...; | +| Assert.cs:122:9:122:9 | access to local variable s | Assert.cs:122:9:122:25 | Before ... = ... | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:122:9:122:25 | After ... = ... | Assert.cs:122:9:122:25 | ... = ... | +| Assert.cs:122:9:122:25 | Before ... = ... | Assert.cs:122:9:122:26 | ...; | +| Assert.cs:122:9:122:26 | ...; | Assert.cs:120:9:120:36 | After ...; | +| Assert.cs:122:9:122:26 | After ...; | Assert.cs:122:9:122:25 | After ... = ... | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:9:122:9 | access to local variable s | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:122:17:122:20 | null | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:122:24:122:25 | "" | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:9:123:37 | call to method IsTrue | +| Assert.cs:123:9:123:37 | Before call to method IsTrue | Assert.cs:123:9:123:38 | ...; | +| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:123:9:123:38 | ...; | Assert.cs:122:9:122:26 | After ...; | +| Assert.cs:123:9:123:38 | After ...; | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:23:123:31 | Before ... == ... | | Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:28:123:31 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:31 | ... == ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:123:23:123:31 | Before ... == ... | Assert.cs:123:23:123:36 | ... && ... | +| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:9:123:37 | Before call to method IsTrue | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:36:123:36 | access to parameter b | | Assert.cs:123:28:123:31 | null | Assert.cs:123:23:123:23 | access to local variable s | -| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:27:124:34 | access to property Length | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:123:9:123:37 | call to method IsTrue | -| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:9:124:36 | ...; | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:124:9:124:35 | After call to method WriteLine | Assert.cs:124:9:124:35 | call to method WriteLine | +| Assert.cs:124:9:124:35 | Before call to method WriteLine | Assert.cs:124:9:124:36 | ...; | +| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:27:124:34 | After access to property Length | +| Assert.cs:124:9:124:36 | ...; | Assert.cs:123:9:123:38 | After ...; | +| Assert.cs:124:9:124:36 | After ...; | Assert.cs:124:9:124:35 | After call to method WriteLine | +| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:34 | Before access to property Length | +| Assert.cs:124:27:124:34 | After access to property Length | Assert.cs:124:27:124:34 | access to property Length | +| Assert.cs:124:27:124:34 | Before access to property Length | Assert.cs:124:9:124:35 | Before call to method WriteLine | | Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:27:124:27 | access to local variable s | -| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:126:9:126:26 | ...; | Assert.cs:124:9:124:35 | call to method WriteLine | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:9:126:26 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:127:9:127:40 | ...; | Assert.cs:126:9:126:25 | ... = ... | -| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:9:127:40 | ...; | +| Assert.cs:126:9:126:9 | access to local variable s | Assert.cs:126:9:126:25 | Before ... = ... | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:126:9:126:25 | After ... = ... | Assert.cs:126:9:126:25 | ... = ... | +| Assert.cs:126:9:126:25 | Before ... = ... | Assert.cs:126:9:126:26 | ...; | +| Assert.cs:126:9:126:26 | ...; | Assert.cs:124:9:124:36 | After ...; | +| Assert.cs:126:9:126:26 | After ...; | Assert.cs:126:9:126:25 | After ... = ... | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:9:126:9 | access to local variable s | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:126:17:126:20 | null | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:126:24:126:25 | "" | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:9:127:39 | call to method IsFalse | +| Assert.cs:127:9:127:39 | Before call to method IsFalse | Assert.cs:127:9:127:40 | ...; | +| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:127:9:127:40 | ...; | Assert.cs:126:9:126:26 | After ...; | +| Assert.cs:127:9:127:40 | After ...; | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:24:127:32 | Before ... != ... | | Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:29:127:32 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:32 | ... != ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:37:127:38 | !... | +| Assert.cs:127:24:127:32 | Before ... != ... | Assert.cs:127:24:127:38 | ... \|\| ... | +| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:9:127:39 | Before call to method IsFalse | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:37:127:38 | After !... | | Assert.cs:127:29:127:32 | null | Assert.cs:127:24:127:24 | access to local variable s | -| Assert.cs:127:37:127:38 | !... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:27:128:34 | access to property Length | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:127:9:127:39 | call to method IsFalse | -| Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:9:128:36 | ...; | +| Assert.cs:127:37:127:38 | !... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:127:37:127:38 | After !... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | !... | +| Assert.cs:128:9:128:35 | After call to method WriteLine | Assert.cs:128:9:128:35 | call to method WriteLine | +| Assert.cs:128:9:128:35 | Before call to method WriteLine | Assert.cs:128:9:128:36 | ...; | +| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:27:128:34 | After access to property Length | +| Assert.cs:128:9:128:36 | ...; | Assert.cs:127:9:127:40 | After ...; | +| Assert.cs:128:9:128:36 | After ...; | Assert.cs:128:9:128:35 | After call to method WriteLine | +| Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:34 | Before access to property Length | +| Assert.cs:128:27:128:34 | After access to property Length | Assert.cs:128:27:128:34 | access to property Length | +| Assert.cs:128:27:128:34 | Before access to property Length | Assert.cs:128:9:128:35 | Before call to method WriteLine | | Assert.cs:128:27:128:34 | access to property Length | Assert.cs:128:27:128:27 | access to local variable s | -| Assert.cs:131:18:131:32 | exit AssertTrueFalse | Assert.cs:131:18:131:32 | exit AssertTrueFalse (normal) | -| Assert.cs:131:18:131:32 | exit AssertTrueFalse (normal) | Assert.cs:135:5:136:5 | {...} | -| Assert.cs:135:5:136:5 | {...} | Assert.cs:131:18:131:32 | enter AssertTrueFalse | -| Assert.cs:138:10:138:12 | exit M13 (normal) | Assert.cs:141:9:141:15 | return ...; | -| Assert.cs:139:5:142:5 | {...} | Assert.cs:138:10:138:12 | enter M13 | +| Assert.cs:131:18:131:32 | Exit | Assert.cs:131:18:131:32 | Normal Exit | +| Assert.cs:131:18:131:32 | Normal Exit | Assert.cs:135:5:136:5 | {...} | +| Assert.cs:135:5:136:5 | {...} | Assert.cs:131:18:131:32 | Entry | +| Assert.cs:138:10:138:12 | Normal Exit | Assert.cs:141:9:141:15 | return ...; | +| Assert.cs:139:5:142:5 | {...} | Assert.cs:138:10:138:12 | Entry | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | +| Assert.cs:140:9:140:35 | Before call to method AssertTrueFalse | Assert.cs:140:9:140:36 | ...; | | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:140:33:140:34 | access to parameter b3 | -| Assert.cs:140:9:140:35 | this access | Assert.cs:140:9:140:36 | ...; | +| Assert.cs:140:9:140:35 | this access | Assert.cs:140:9:140:35 | Before call to method AssertTrueFalse | | Assert.cs:140:9:140:36 | ...; | Assert.cs:139:5:142:5 | {...} | +| Assert.cs:140:9:140:36 | After ...; | Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | | Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:9:140:35 | this access | | 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 | call to method | +| Assert.cs:141:9:141:15 | Before return ...; | Assert.cs:140:9:140:36 | After ...; | +| Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | Before return ...; | +| Assignments.cs:1:7:1:17 | After call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | After call to method | Assignments.cs:1:7:1:17 | call to method | +| Assignments.cs:1:7:1:17 | Before call to constructor Object | Assignments.cs:1:7:1:17 | After call to method | +| Assignments.cs:1:7:1:17 | Before call to method | Assignments.cs:1:7:1:17 | Entry | +| Assignments.cs:1:7:1:17 | Exit | Assignments.cs:1:7:1:17 | Normal Exit | +| Assignments.cs:1:7:1:17 | Normal Exit | Assignments.cs:1:7:1:17 | {...} | +| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | Before 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 | 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 | ... += ... | -| Assignments.cs:4:5:15:5 | {...} | Assignments.cs:3:10:3:10 | enter M | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | Before call to method | +| Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | After call to constructor Object | +| Assignments.cs:3:10:3:10 | Exit | Assignments.cs:3:10:3:10 | Normal Exit | +| Assignments.cs:3:10:3:10 | Normal Exit | Assignments.cs:4:5:15:5 | After {...} | +| Assignments.cs:4:5:15:5 | After {...} | Assignments.cs:14:9:14:36 | After ...; | +| Assignments.cs:4:5:15:5 | {...} | Assignments.cs:3:10:3:10 | Entry | | Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:4:5:15:5 | {...} | +| Assignments.cs:5:9:5:18 | After ... ...; | Assignments.cs:5:13:5:17 | After Int32 x = ... | +| Assignments.cs:5:13:5:13 | access to local variable x | Assignments.cs:5:13:5:17 | Before Int32 x = ... | +| Assignments.cs:5:13:5:17 | After Int32 x = ... | Assignments.cs:5:13:5:17 | Int32 x = ... | +| Assignments.cs:5:13:5:17 | Before Int32 x = ... | Assignments.cs:5:9:5:18 | ... ...; | | Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:5:17:5:17 | 0 | -| Assignments.cs:5:17:5:17 | 0 | Assignments.cs:5:9:5:18 | ... ...; | -| Assignments.cs:6:9:6:9 | access to local variable x | Assignments.cs:6:9:6:15 | ...; | +| Assignments.cs:5:17:5:17 | 0 | Assignments.cs:5:13:5:13 | access to local variable x | +| Assignments.cs:6:9:6:9 | access to local variable x | Assignments.cs:6:9:6:14 | Before ... += ... | | Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:6:14:6:14 | 1 | -| Assignments.cs:6:9:6:15 | ...; | Assignments.cs:5:13:5:17 | Int32 x = ... | +| Assignments.cs:6:9:6:14 | After ... += ... | Assignments.cs:6:9:6:14 | ... += ... | +| Assignments.cs:6:9:6:14 | Before ... += ... | Assignments.cs:6:9:6:15 | ...; | +| Assignments.cs:6:9:6:15 | ...; | Assignments.cs:5:9:5:18 | After ... ...; | +| Assignments.cs:6:9:6:15 | After ...; | Assignments.cs:6:9:6:14 | After ... += ... | | Assignments.cs:6:14:6:14 | 1 | Assignments.cs:6:9:6:9 | access to local variable x | -| Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:6:9:6:14 | ... += ... | -| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:8:21:8:21 | (...) ... | -| Assignments.cs:8:21:8:21 | 0 | Assignments.cs:8:9:8:22 | ... ...; | +| Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:6:9:6:15 | After ...; | +| Assignments.cs:8:9:8:22 | After ... ...; | Assignments.cs:8:17:8:21 | After dynamic d = ... | +| Assignments.cs:8:17:8:17 | access to local variable d | Assignments.cs:8:17:8:21 | Before dynamic d = ... | +| Assignments.cs:8:17:8:21 | After dynamic d = ... | Assignments.cs:8:17:8:21 | dynamic d = ... | +| Assignments.cs:8:17:8:21 | Before dynamic d = ... | Assignments.cs:8:9:8:22 | ... ...; | +| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:8:21:8:21 | After (...) ... | +| Assignments.cs:8:21:8:21 | 0 | Assignments.cs:8:21:8:21 | Before (...) ... | | Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:8:21:8:21 | 0 | -| Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:9:9:15 | ...; | +| Assignments.cs:8:21:8:21 | After (...) ... | Assignments.cs:8:21:8:21 | (...) ... | +| Assignments.cs:8:21:8:21 | Before (...) ... | Assignments.cs:8:17:8:17 | access to local variable d | +| Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:9:9:14 | Before ... -= ... | | Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:9:14:9:14 | 2 | -| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:8:17:8:21 | dynamic d = ... | +| Assignments.cs:9:9:9:14 | After ... -= ... | Assignments.cs:9:9:9:14 | ... -= ... | +| Assignments.cs:9:9:9:14 | Before ... -= ... | Assignments.cs:9:9:9:15 | ...; | +| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:8:9:8:22 | After ... ...; | +| Assignments.cs:9:9:9:15 | After ...; | Assignments.cs:9:9:9:14 | After ... -= ... | | Assignments.cs:9:14:9:14 | 2 | Assignments.cs:9:9:9:9 | access to local variable d | -| Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:9:9:9:14 | ... -= ... | -| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:11:17:11:33 | object creation of type Assignments | -| Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:9:11:34 | ... ...; | -| Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:9:12:18 | ...; | +| Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:9:9:9:15 | After ...; | +| Assignments.cs:11:9:11:34 | After ... ...; | Assignments.cs:11:13:11:33 | After Assignments a = ... | +| Assignments.cs:11:13:11:13 | access to local variable a | Assignments.cs:11:13:11:33 | Before Assignments a = ... | +| Assignments.cs:11:13:11:33 | After Assignments a = ... | Assignments.cs:11:13:11:33 | Assignments a = ... | +| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:11:17:11:33 | After object creation of type Assignments | +| Assignments.cs:11:13:11:33 | Before Assignments a = ... | Assignments.cs:11:9:11:34 | ... ...; | +| Assignments.cs:11:17:11:33 | After object creation of type Assignments | Assignments.cs:11:17:11:33 | object creation of type Assignments | +| Assignments.cs:11:17:11:33 | Before object creation of type Assignments | Assignments.cs:11:13:11:13 | access to local variable a | +| Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:17:11:33 | Before object creation of type Assignments | +| Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:9:12:17 | Before ... += ... | | Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:12:14:12:17 | this access | -| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:11:13:11:33 | Assignments a = ... | +| Assignments.cs:12:9:12:17 | After ... += ... | Assignments.cs:12:9:12:17 | ... += ... | +| Assignments.cs:12:9:12:17 | Before ... += ... | Assignments.cs:12:9:12:18 | ...; | +| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:11:9:11:34 | After ... ...; | +| Assignments.cs:12:9:12:18 | After ...; | Assignments.cs:12:9:12:17 | After ... += ... | | Assignments.cs:12:14:12:17 | this access | Assignments.cs:12:9:12:9 | access to local variable a | -| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:18:14:35 | (...) => ... | -| Assignments.cs:14:9:14:13 | this access | Assignments.cs:14:9:14:36 | ...; | -| Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:14:9:14:13 | access to event Event | -| Assignments.cs:14:9:14:36 | ...; | Assignments.cs:12:9:12:17 | ... += ... | -| Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:9:14:13 | this access | -| Assignments.cs:14:18:14:35 | exit (...) => ... | Assignments.cs:14:18:14:35 | exit (...) => ... (normal) | -| Assignments.cs:14:18:14:35 | exit (...) => ... (normal) | Assignments.cs:14:33:14:35 | {...} | -| Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:18:14:35 | enter (...) => ... | -| Assignments.cs:17:40:17:40 | exit + | Assignments.cs:17:40:17:40 | exit + (normal) | -| Assignments.cs:17:40:17:40 | exit + (normal) | Assignments.cs:19:9:19:17 | return ...; | -| Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | enter + | +| Assignments.cs:14:9:14:13 | After access to event Event | Assignments.cs:14:9:14:13 | access to event Event | +| Assignments.cs:14:9:14:13 | Before access to event Event | Assignments.cs:14:9:14:35 | Before ... += ... | +| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:9:14:13 | this access | +| Assignments.cs:14:9:14:13 | this access | Assignments.cs:14:9:14:13 | Before access to event Event | +| Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:14:18:14:35 | (...) => ... | +| Assignments.cs:14:9:14:35 | After ... += ... | Assignments.cs:14:9:14:35 | ... += ... | +| Assignments.cs:14:9:14:35 | Before ... += ... | Assignments.cs:14:9:14:36 | ...; | +| Assignments.cs:14:9:14:36 | ...; | Assignments.cs:12:9:12:18 | After ...; | +| Assignments.cs:14:9:14:36 | After ...; | Assignments.cs:14:9:14:35 | After ... += ... | +| Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:9:14:13 | After access to event Event | +| Assignments.cs:14:18:14:35 | Exit | Assignments.cs:14:18:14:35 | Normal Exit | +| Assignments.cs:14:18:14:35 | Normal Exit | Assignments.cs:14:33:14:35 | {...} | +| Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:18:14:35 | Entry | +| Assignments.cs:17:40:17:40 | Exit | Assignments.cs:17:40:17:40 | Normal Exit | +| Assignments.cs:17:40:17:40 | Normal Exit | Assignments.cs:19:9:19:17 | return ...; | +| Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | Entry | +| Assignments.cs:19:9:19:17 | Before return ...; | Assignments.cs:18:5:20:5 | {...} | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | -| Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:18:5:20:5 | {...} | -| Assignments.cs:27:10:27:23 | exit SetParamSingle | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | -| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:29:9:29:14 | ... = ... | -| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:27:10:27:23 | enter SetParamSingle | +| Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | Before return ...; | +| Assignments.cs:27:10:27:23 | Exit | Assignments.cs:27:10:27:23 | Normal Exit | +| Assignments.cs:27:10:27:23 | Normal Exit | Assignments.cs:28:5:30:5 | After {...} | +| Assignments.cs:28:5:30:5 | After {...} | Assignments.cs:29:9:29:15 | After ...; | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:27:10:27:23 | Entry | +| Assignments.cs:29:9:29:9 | access to parameter x | Assignments.cs:29:9:29:14 | Before ... = ... | | Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:14 | After ... = ... | Assignments.cs:29:9:29:14 | ... = ... | +| Assignments.cs:29:9:29:14 | Before ... = ... | Assignments.cs:29:9:29:15 | ...; | | Assignments.cs:29:9:29:15 | ...; | Assignments.cs:28:5:30:5 | {...} | -| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:15 | ...; | -| Assignments.cs:32:10:32:22 | exit SetParamMulti | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | -| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:35:9:35:19 | ... = ... | -| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:32:10:32:22 | enter SetParamMulti | +| Assignments.cs:29:9:29:15 | After ...; | Assignments.cs:29:9:29:14 | After ... = ... | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:9 | access to parameter x | +| Assignments.cs:32:10:32:22 | Exit | Assignments.cs:32:10:32:22 | Normal Exit | +| Assignments.cs:32:10:32:22 | Normal Exit | Assignments.cs:33:5:36:5 | After {...} | +| Assignments.cs:33:5:36:5 | After {...} | Assignments.cs:35:9:35:20 | After ...; | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:32:10:32:22 | Entry | +| Assignments.cs:34:9:34:9 | access to parameter x | Assignments.cs:34:9:34:14 | Before ... = ... | | Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:14 | After ... = ... | Assignments.cs:34:9:34:14 | ... = ... | +| Assignments.cs:34:9:34:14 | Before ... = ... | Assignments.cs:34:9:34:15 | ...; | | Assignments.cs:34:9:34:15 | ...; | Assignments.cs:33:5:36:5 | {...} | -| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:15 | ...; | +| Assignments.cs:34:9:34:15 | After ...; | Assignments.cs:34:9:34:14 | After ... = ... | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:9 | access to parameter x | +| Assignments.cs:35:9:35:9 | access to parameter y | Assignments.cs:35:9:35:19 | Before ... = ... | | Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:13:35:19 | "Hello" | -| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:34:9:34:14 | ... = ... | -| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:20 | ...; | -| Assignments.cs:38:10:38:11 | exit M2 | Assignments.cs:38:10:38:11 | exit M2 (normal) | -| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:44:9:44:58 | call to method SetParamMulti | -| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | enter M2 | +| Assignments.cs:35:9:35:19 | After ... = ... | Assignments.cs:35:9:35:19 | ... = ... | +| Assignments.cs:35:9:35:19 | Before ... = ... | Assignments.cs:35:9:35:20 | ...; | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:34:9:34:15 | After ...; | +| Assignments.cs:35:9:35:20 | After ...; | Assignments.cs:35:9:35:19 | After ... = ... | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:9 | access to parameter y | +| Assignments.cs:38:10:38:11 | Exit | Assignments.cs:38:10:38:11 | Normal Exit | +| Assignments.cs:38:10:38:11 | Normal Exit | Assignments.cs:39:5:45:5 | After {...} | +| Assignments.cs:39:5:45:5 | After {...} | Assignments.cs:44:9:44:59 | After ...; | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | Entry | | Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:40:9:40:15 | After ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | | Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:9:40:15 | ... ...; | -| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | -| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:31 | ...; | -| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:40:13:40:14 | Int32 x1 | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | -| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:37 | ...; | -| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | +| Assignments.cs:41:9:41:30 | After call to method SetParamSingle | Assignments.cs:41:9:41:30 | call to method SetParamSingle | +| Assignments.cs:41:9:41:30 | Before call to method SetParamSingle | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:28:41:29 | access to local variable x1 | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | Before call to method SetParamSingle | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:40:9:40:15 | After ... ...; | +| Assignments.cs:41:9:41:31 | After ...; | Assignments.cs:41:9:41:30 | After call to method SetParamSingle | +| Assignments.cs:41:28:41:29 | access to local variable x1 | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:42:9:42:36 | After call to method SetParamSingle | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:42:9:42:36 | Before call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | After access to field IntField | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | Before call to method SetParamSingle | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:41:9:41:31 | After ...; | +| Assignments.cs:42:9:42:37 | After ...; | Assignments.cs:42:9:42:36 | After call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | After access to field IntField | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:42:28:42:35 | Before access to field IntField | Assignments.cs:42:9:42:36 | this access | | Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | this access | -| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | this access | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | -| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:56 | ...; | -| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:42:9:42:36 | call to method SetParamSingle | -| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | Before access to field IntField | +| Assignments.cs:43:9:43:55 | After call to method SetParamMulti | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:9:43:55 | Before call to method SetParamMulti | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | After access to field StringField | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | Before call to method SetParamMulti | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:42:9:42:37 | After ...; | +| Assignments.cs:43:9:43:56 | After ...; | Assignments.cs:43:9:43:55 | After call to method SetParamMulti | +| Assignments.cs:43:31:43:31 | Int32 y | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:31:43:31 | Int32 y | +| Assignments.cs:43:44:43:54 | After access to field StringField | Assignments.cs:43:44:43:54 | access to field StringField | +| Assignments.cs:43:44:43:54 | Before access to field StringField | Assignments.cs:43:34:43:37 | null | | Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | -| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:34:43:37 | null | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | access to field StringField | -| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:59 | ...; | -| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | Before access to field StringField | +| Assignments.cs:44:9:44:58 | After call to method SetParamMulti | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:9:44:58 | Before call to method SetParamMulti | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | After access to field StringField | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:58 | Before call to method SetParamMulti | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:43:9:43:56 | After ...; | +| Assignments.cs:44:9:44:59 | After ...; | Assignments.cs:44:9:44:58 | After call to method SetParamMulti | +| Assignments.cs:44:27:44:34 | After access to field IntField | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:27:44:34 | Before access to field IntField | Assignments.cs:44:9:44:58 | this access | | Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | this access | -| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:9:44:58 | this access | -| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | Before access to field IntField | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:27:44:34 | After access to field IntField | +| Assignments.cs:44:47:44:57 | After access to field StringField | Assignments.cs:44:47:44:57 | access to field StringField | +| Assignments.cs:44:47:44:57 | Before access to field StringField | Assignments.cs:44:37:44:40 | null | | Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | this access | -| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:37:44:40 | null | -| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to method | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | Before access to field StringField | +| BreakInTry.cs:1:7:1:16 | After call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | +| BreakInTry.cs:1:7:1:16 | After call to method | BreakInTry.cs:1:7:1:16 | call to method | +| BreakInTry.cs:1:7:1:16 | Before call to constructor Object | BreakInTry.cs:1:7:1:16 | After call to method | +| BreakInTry.cs:1:7:1:16 | Before call to method | BreakInTry.cs:1:7:1:16 | Entry | +| BreakInTry.cs:1:7:1:16 | Exit | BreakInTry.cs:1:7:1:16 | Normal Exit | +| BreakInTry.cs:1:7:1:16 | Normal Exit | BreakInTry.cs:1:7:1:16 | {...} | +| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | Before 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 | 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 | ... == ... | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:16:17:16:17 | ; | -| BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:3:10:3:11 | enter M1 | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | Before call to method | +| BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | After call to constructor Object | +| BreakInTry.cs:3:10:3:11 | Exit | BreakInTry.cs:3:10:3:11 | Normal Exit | +| BreakInTry.cs:3:10:3:11 | Normal Exit | BreakInTry.cs:4:5:18:5 | After {...} | +| BreakInTry.cs:4:5:18:5 | After {...} | BreakInTry.cs:5:9:17:9 | After try {...} ... | +| BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:3:10:3:11 | Entry | +| BreakInTry.cs:5:9:17:9 | After try {...} ... | BreakInTry.cs:14:9:17:9 | After {...} | | BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:4:5:18:5 | {...} | +| BreakInTry.cs:6:9:12:9 | After {...} | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | | BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:5:9:17:9 | try {...} ... | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:33:7:36 | access to parameter args | -| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:6:9:12:9 | {...} | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:10:21:10:26 | break; | +| BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:8:13:11:13 | After {...} | +| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:6:9:12:9 | {...} | +| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:8:13:11:13 | After {...} | BreakInTry.cs:9:17:10:26 | After if (...) ... | | BreakInTry.cs:8:13:11:13 | {...} | BreakInTry.cs:7:26:7:28 | String arg | +| BreakInTry.cs:9:17:10:26 | After if (...) ... | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | | BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:8:13:11:13 | {...} | -| BreakInTry.cs:9:21:9:23 | access to local variable arg | BreakInTry.cs:9:17:10:26 | if (...) ... | +| BreakInTry.cs:9:21:9:23 | access to local variable arg | BreakInTry.cs:9:21:9:31 | Before ... == ... | | BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:28:9:31 | null | +| BreakInTry.cs:9:21:9:31 | Before ... == ... | BreakInTry.cs:9:17:10:26 | if (...) ... | | BreakInTry.cs:9:28:9:31 | null | BreakInTry.cs:9:21:9:23 | access to local variable arg | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:10:21:10:26 | break; | +| BreakInTry.cs:10:21:10:26 | Before break; | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:10:21:10:26 | Before break; | +| BreakInTry.cs:14:9:17:9 | After {...} | BreakInTry.cs:15:13:16:17 | After if (...) ... | +| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:6:9:12:9 | After {...} | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:16:17:16:17 | ; | | BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:14:9:17:9 | {...} | -| BreakInTry.cs:15:17:15:20 | access to parameter args | BreakInTry.cs:15:13:16:17 | if (...) ... | +| BreakInTry.cs:15:17:15:20 | access to parameter args | BreakInTry.cs:15:17:15:28 | Before ... == ... | | BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:25:15:28 | null | +| BreakInTry.cs:15:17:15:28 | Before ... == ... | BreakInTry.cs:15:13:16:17 | if (...) ... | | BreakInTry.cs:15:25:15:28 | null | BreakInTry.cs:15:17:15:20 | access to parameter args | -| BreakInTry.cs:20:10:20:11 | exit M2 | BreakInTry.cs:20:10:20:11 | exit M2 (normal) | -| BreakInTry.cs:20:10:20:11 | exit M2 (normal) | BreakInTry.cs:35:7:35:7 | ; | -| BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:20:10:20:11 | enter M2 | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | access to parameter args | -| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:21:5:36:5 | {...} | +| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | +| BreakInTry.cs:20:10:20:11 | Exit | BreakInTry.cs:20:10:20:11 | Normal Exit | +| BreakInTry.cs:20:10:20:11 | Normal Exit | BreakInTry.cs:21:5:36:5 | After {...} | +| BreakInTry.cs:21:5:36:5 | After {...} | BreakInTry.cs:35:7:35:7 | ; | +| BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:20:10:20:11 | Entry | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:30:13:33:13 | After {...} | +| BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:23:9:34:9 | After {...} | +| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:21:5:36:5 | {...} | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | +| BreakInTry.cs:23:9:34:9 | After {...} | BreakInTry.cs:24:13:33:13 | After try {...} ... | | BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:22:22:22:24 | String arg | | BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:23:9:34:9 | {...} | +| BreakInTry.cs:25:13:28:13 | After {...} | BreakInTry.cs:26:17:27:26 | After if (...) ... | | BreakInTry.cs:25:13:28:13 | {...} | BreakInTry.cs:24:13:33:13 | try {...} ... | +| BreakInTry.cs:26:17:27:26 | After if (...) ... | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | | BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:25:13:28:13 | {...} | -| BreakInTry.cs:26:21:26:23 | access to local variable arg | BreakInTry.cs:26:17:27:26 | if (...) ... | +| BreakInTry.cs:26:21:26:23 | access to local variable arg | BreakInTry.cs:26:21:26:31 | Before ... == ... | | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:28:26:31 | null | +| BreakInTry.cs:26:21:26:31 | Before ... == ... | BreakInTry.cs:26:17:27:26 | if (...) ... | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:26:21:26:23 | access to local variable arg | -| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:26:21:26:31 | ... == ... | +| BreakInTry.cs:27:21:27:26 | Before break; | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | +| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | Before break; | +| BreakInTry.cs:30:13:33:13 | After {...} | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:25:13:28:13 | After {...} | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:27:21:27:26 | break; | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:32:21:32:21 | ; | | BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:17:32:21 | if (...) ... | +| BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:21:31:32 | Before ... == ... | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:29:31:32 | null | +| BreakInTry.cs:31:21:31:32 | Before ... == ... | BreakInTry.cs:31:17:32:21 | if (...) ... | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:31:21:31:24 | access to parameter args | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:31:21:31:32 | ... == ... | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:38:10:38:11 | exit M3 | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:53:7:53:7 | ; | -| BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:38:10:38:11 | enter M3 | +| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | +| BreakInTry.cs:38:10:38:11 | Exit | BreakInTry.cs:38:10:38:11 | Normal Exit | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:39:5:54:5 | After {...} | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:46:9:52:9 | After {...} | +| BreakInTry.cs:39:5:54:5 | After {...} | BreakInTry.cs:53:7:53:7 | ; | +| BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:38:10:38:11 | Entry | | BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:39:5:54:5 | {...} | +| BreakInTry.cs:41:9:44:9 | After {...} | BreakInTry.cs:42:13:43:23 | After if (...) ... | | BreakInTry.cs:41:9:44:9 | {...} | BreakInTry.cs:40:9:52:9 | try {...} ... | +| BreakInTry.cs:42:13:43:23 | After if (...) ... | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | | BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:41:9:44:9 | {...} | -| BreakInTry.cs:42:17:42:20 | access to parameter args | BreakInTry.cs:42:13:43:23 | if (...) ... | +| BreakInTry.cs:42:17:42:20 | access to parameter args | BreakInTry.cs:42:17:42:28 | Before ... == ... | | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:25:42:28 | null | +| BreakInTry.cs:42:17:42:28 | Before ... == ... | BreakInTry.cs:42:13:43:23 | if (...) ... | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:17:42:20 | access to parameter args | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:42:17:42:28 | ... == ... | +| BreakInTry.cs:43:17:43:23 | Before return ...; | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | +| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | Before return ...; | +| BreakInTry.cs:46:9:52:9 | After {...} | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:41:9:44:9 | After {...} | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | access to parameter args | -| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:46:9:52:9 | {...} | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | break; | +| BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:48:13:51:13 | After {...} | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:46:9:52:9 | {...} | +| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:48:13:51:13 | After {...} | BreakInTry.cs:49:17:50:26 | After if (...) ... | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:47:26:47:28 | String arg | +| BreakInTry.cs:49:17:50:26 | After if (...) ... | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | | BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:48:13:51:13 | {...} | -| BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:17:50:26 | if (...) ... | +| BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:21:49:31 | Before ... == ... | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:28:49:31 | null | +| BreakInTry.cs:49:21:49:31 | Before ... == ... | BreakInTry.cs:49:17:50:26 | if (...) ... | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:49:21:49:23 | access to local variable arg | -| BreakInTry.cs:56:10:56:11 | exit M4 | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:56:10:56:11 | enter M4 | +| BreakInTry.cs:50:21:50:26 | Before break; | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | Before break; | +| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:40:9:52:9 | After try {...} ... | +| BreakInTry.cs:56:10:56:11 | Exit | BreakInTry.cs:56:10:56:11 | Normal Exit | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:57:5:71:5 | After {...} | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:64:9:70:9 | After {...} | +| BreakInTry.cs:57:5:71:5 | After {...} | BreakInTry.cs:58:9:70:9 | After try {...} ... | +| BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:56:10:56:11 | Entry | | BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:57:5:71:5 | {...} | +| BreakInTry.cs:59:9:62:9 | After {...} | BreakInTry.cs:60:13:61:23 | After if (...) ... | | BreakInTry.cs:59:9:62:9 | {...} | BreakInTry.cs:58:9:70:9 | try {...} ... | +| BreakInTry.cs:60:13:61:23 | After if (...) ... | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | | BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:59:9:62:9 | {...} | -| BreakInTry.cs:60:17:60:20 | access to parameter args | BreakInTry.cs:60:13:61:23 | if (...) ... | +| BreakInTry.cs:60:17:60:20 | access to parameter args | BreakInTry.cs:60:17:60:28 | Before ... == ... | | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:25:60:28 | null | +| BreakInTry.cs:60:17:60:28 | Before ... == ... | BreakInTry.cs:60:13:61:23 | if (...) ... | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:17:60:20 | access to parameter args | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:60:17:60:28 | ... == ... | +| BreakInTry.cs:61:17:61:23 | Before return ...; | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | +| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | Before return ...; | +| BreakInTry.cs:64:9:70:9 | After {...} | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:59:9:62:9 | After {...} | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | access to parameter args | -| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:64:9:70:9 | {...} | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | break; | +| BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:66:13:69:13 | After {...} | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:64:9:70:9 | {...} | +| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:66:13:69:13 | After {...} | BreakInTry.cs:67:17:68:26 | After if (...) ... | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:65:26:65:28 | String arg | +| BreakInTry.cs:67:17:68:26 | After if (...) ... | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | | BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:66:13:69:13 | {...} | -| BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:17:68:26 | if (...) ... | +| BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:21:67:31 | Before ... == ... | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:28:67:31 | null | +| BreakInTry.cs:67:21:67:31 | Before ... == ... | BreakInTry.cs:67:17:68:26 | if (...) ... | | 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 | call to method | +| BreakInTry.cs:68:21:68:26 | Before break; | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | Before break; | +| CompileTimeOperators.cs:3:7:3:26 | After call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | After call to method | CompileTimeOperators.cs:3:7:3:26 | call to method | +| CompileTimeOperators.cs:3:7:3:26 | Before call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | After call to method | +| CompileTimeOperators.cs:3:7:3:26 | Before call to method | CompileTimeOperators.cs:3:7:3:26 | Entry | +| CompileTimeOperators.cs:3:7:3:26 | Exit | CompileTimeOperators.cs:3:7:3:26 | Normal Exit | +| CompileTimeOperators.cs:3:7:3:26 | Normal Exit | CompileTimeOperators.cs:3:7:3:26 | {...} | +| CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | Before 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 | 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 ...; | -| CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:5:9:5:15 | enter Default | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | Before call to method | +| CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | After call to constructor Object | +| CompileTimeOperators.cs:5:9:5:15 | Exit | CompileTimeOperators.cs:5:9:5:15 | Normal Exit | +| CompileTimeOperators.cs:5:9:5:15 | Normal Exit | CompileTimeOperators.cs:7:9:7:28 | return ...; | +| CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:5:9:5:15 | Entry | +| CompileTimeOperators.cs:7:9:7:28 | Before return ...; | CompileTimeOperators.cs:6:5:8:5 | {...} | | CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:7:16:7:27 | default(...) | -| CompileTimeOperators.cs:7:16:7:27 | default(...) | CompileTimeOperators.cs:6:5:8:5 | {...} | -| CompileTimeOperators.cs:10:9:10:14 | exit Sizeof | CompileTimeOperators.cs:10:9:10:14 | exit Sizeof (normal) | -| CompileTimeOperators.cs:10:9:10:14 | exit Sizeof (normal) | CompileTimeOperators.cs:12:9:12:27 | return ...; | -| CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | +| CompileTimeOperators.cs:7:16:7:27 | default(...) | CompileTimeOperators.cs:7:9:7:28 | Before return ...; | +| CompileTimeOperators.cs:10:9:10:14 | Exit | CompileTimeOperators.cs:10:9:10:14 | Normal Exit | +| CompileTimeOperators.cs:10:9:10:14 | Normal Exit | CompileTimeOperators.cs:12:9:12:27 | return ...; | +| CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:10:9:10:14 | Entry | +| CompileTimeOperators.cs:12:9:12:27 | Before return ...; | CompileTimeOperators.cs:11:5:13:5 | {...} | | CompileTimeOperators.cs:12:9:12:27 | return ...; | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | -| CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | CompileTimeOperators.cs:11:5:13:5 | {...} | -| CompileTimeOperators.cs:15:10:15:15 | exit Typeof | CompileTimeOperators.cs:15:10:15:15 | exit Typeof (normal) | -| CompileTimeOperators.cs:15:10:15:15 | exit Typeof (normal) | CompileTimeOperators.cs:17:9:17:27 | return ...; | -| CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:15:10:15:15 | enter Typeof | +| CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | CompileTimeOperators.cs:12:9:12:27 | Before return ...; | +| CompileTimeOperators.cs:15:10:15:15 | Exit | CompileTimeOperators.cs:15:10:15:15 | Normal Exit | +| CompileTimeOperators.cs:15:10:15:15 | Normal Exit | CompileTimeOperators.cs:17:9:17:27 | return ...; | +| CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:15:10:15:15 | Entry | +| CompileTimeOperators.cs:17:9:17:27 | Before return ...; | CompileTimeOperators.cs:16:5:18:5 | {...} | | CompileTimeOperators.cs:17:9:17:27 | return ...; | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | -| CompileTimeOperators.cs:17:16:17:26 | typeof(...) | CompileTimeOperators.cs:16:5:18:5 | {...} | -| CompileTimeOperators.cs:20:12:20:17 | exit Nameof | CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | -| CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | CompileTimeOperators.cs:22:9:22:25 | return ...; | -| CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | +| CompileTimeOperators.cs:17:16:17:26 | typeof(...) | CompileTimeOperators.cs:17:9:17:27 | Before return ...; | +| CompileTimeOperators.cs:20:12:20:17 | Exit | CompileTimeOperators.cs:20:12:20:17 | Normal Exit | +| CompileTimeOperators.cs:20:12:20:17 | Normal Exit | CompileTimeOperators.cs:22:9:22:25 | return ...; | +| CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:20:12:20:17 | Entry | +| CompileTimeOperators.cs:22:9:22:25 | Before return ...; | CompileTimeOperators.cs:21:5:23:5 | {...} | | 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 | call to method | +| CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:9:22:25 | Before return ...; | +| CompileTimeOperators.cs:26:7:26:22 | After call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | After call to method | CompileTimeOperators.cs:26:7:26:22 | call to method | +| CompileTimeOperators.cs:26:7:26:22 | Before call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | After call to method | +| CompileTimeOperators.cs:26:7:26:22 | Before call to method | CompileTimeOperators.cs:26:7:26:22 | Entry | +| CompileTimeOperators.cs:26:7:26:22 | Exit | CompileTimeOperators.cs:26:7:26:22 | Normal Exit | +| CompileTimeOperators.cs:26:7:26:22 | Normal Exit | CompileTimeOperators.cs:26:7:26:22 | {...} | +| CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | Before 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 | 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 | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | Before call to method | +| CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | After call to constructor Object | +| CompileTimeOperators.cs:28:10:28:10 | Normal Exit | CompileTimeOperators.cs:29:5:41:5 | After {...} | +| CompileTimeOperators.cs:29:5:41:5 | After {...} | CompileTimeOperators.cs:40:14:40:38 | After ...; | +| CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:28:10:28:10 | Entry | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:29:5:41:5 | {...} | | CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | -| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:31:9:34:9 | {...} | +| CompileTimeOperators.cs:32:13:32:21 | Before goto ...; | CompileTimeOperators.cs:31:9:34:9 | {...} | +| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:32:13:32:21 | Before goto ...; | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:37:13:37:41 | After ...; | | CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | +| CompileTimeOperators.cs:37:13:37:40 | After call to method WriteLine | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | +| CompileTimeOperators.cs:37:13:37:40 | Before call to method WriteLine | CompileTimeOperators.cs:37:13:37:41 | ...; | | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | "Finally" | | CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:36:9:38:9 | {...} | -| CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:13:37:41 | ...; | +| CompileTimeOperators.cs:37:13:37:41 | After ...; | CompileTimeOperators.cs:37:13:37:40 | After call to method WriteLine | +| CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:13:37:40 | Before call to method WriteLine | +| CompileTimeOperators.cs:39:9:39:33 | After call to method WriteLine | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | +| CompileTimeOperators.cs:39:9:39:33 | Before call to method WriteLine | CompileTimeOperators.cs:39:9:39:34 | ...; | | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:39:27:39:32 | "Dead" | -| CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:9:39:34 | ...; | -| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | -| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | +| CompileTimeOperators.cs:39:9:39:34 | After ...; | CompileTimeOperators.cs:39:9:39:33 | After call to method WriteLine | +| CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:9:39:33 | Before call to method WriteLine | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:36:9:38:9 | After {...} | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:39:9:39:34 | After ...; | +| CompileTimeOperators.cs:40:14:40:37 | After call to method WriteLine | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | +| CompileTimeOperators.cs:40:14:40:37 | Before call to method WriteLine | CompileTimeOperators.cs:40:14:40:38 | ...; | | 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 | call to method | +| CompileTimeOperators.cs:40:14:40:38 | After ...; | CompileTimeOperators.cs:40:14:40:37 | After call to method WriteLine | +| CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:37 | Before call to method WriteLine | +| ConditionalAccess.cs:1:7:1:23 | After call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | After call to method | ConditionalAccess.cs:1:7:1:23 | call to method | +| ConditionalAccess.cs:1:7:1:23 | Before call to constructor Object | ConditionalAccess.cs:1:7:1:23 | After call to method | +| ConditionalAccess.cs:1:7:1:23 | Before call to method | ConditionalAccess.cs:1:7:1:23 | Entry | +| ConditionalAccess.cs:1:7:1:23 | Exit | ConditionalAccess.cs:1:7:1:23 | Normal Exit | +| ConditionalAccess.cs:1:7:1:23 | Normal Exit | ConditionalAccess.cs:1:7:1:23 | {...} | +| ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | Before 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 | 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 | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:26:3:38 | call to method ToString | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | -| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:12:3:13 | enter M1 | -| ConditionalAccess.cs:5:10:5:11 | exit M2 | ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:26:5:26 | access to parameter s | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:26:5:34 | access to property Length | -| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:10:5:11 | enter M2 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 | ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:38:7:55 | access to property Length | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:10:7:11 | enter M3 | -| ConditionalAccess.cs:9:9:9:10 | exit M4 | ConditionalAccess.cs:9:9:9:10 | exit M4 (normal) | -| ConditionalAccess.cs:9:9:9:10 | exit M4 (normal) | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | -| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:9:9:10 | enter M4 | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:33 | access to property Length | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:38:9:38 | 0 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 | ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:14:13:14:21 | return ...; | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:16:13:16:21 | return ...; | -| ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:11:9:11:10 | enter M5 | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | Before call to method | +| ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | After call to constructor Object | +| ConditionalAccess.cs:3:12:3:13 | Exit | ConditionalAccess.cs:3:12:3:13 | Normal Exit | +| ConditionalAccess.cs:3:12:3:13 | Normal Exit | ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | +| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:38 | Before call to method ToString | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | +| ConditionalAccess.cs:3:26:3:38 | Before call to method ToString | ConditionalAccess.cs:3:26:3:49 | Before call to method ToLower | +| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | +| ConditionalAccess.cs:3:26:3:49 | Before call to method ToLower | ConditionalAccess.cs:3:12:3:13 | Entry | +| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | +| ConditionalAccess.cs:5:10:5:11 | Exit | ConditionalAccess.cs:5:10:5:11 | Normal Exit | +| ConditionalAccess.cs:5:10:5:11 | Normal Exit | ConditionalAccess.cs:5:26:5:34 | After access to property Length | +| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:34 | Before access to property Length | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:26:5:34 | access to property Length | +| ConditionalAccess.cs:5:26:5:34 | Before access to property Length | ConditionalAccess.cs:5:10:5:11 | Entry | +| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | +| ConditionalAccess.cs:7:10:7:11 | Exit | ConditionalAccess.cs:7:10:7:11 | Normal Exit | +| ConditionalAccess.cs:7:10:7:11 | Normal Exit | ConditionalAccess.cs:7:38:7:55 | After access to property Length | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:38:7:55 | access to property Length | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [null] | +| ConditionalAccess.cs:7:38:7:55 | Before access to property Length | ConditionalAccess.cs:7:10:7:11 | Entry | +| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | +| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | +| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:38:7:55 | Before access to property Length | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | +| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | +| ConditionalAccess.cs:9:9:9:10 | Exit | ConditionalAccess.cs:9:9:9:10 | Normal Exit | +| ConditionalAccess.cs:9:9:9:10 | Normal Exit | ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | +| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:33 | Before access to property Length | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | +| ConditionalAccess.cs:9:25:9:33 | Before access to property Length | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | +| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | +| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:9:9:10 | Entry | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:38:9:38 | 0 | +| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | +| ConditionalAccess.cs:11:9:11:10 | Exit | ConditionalAccess.cs:11:9:11:10 | Normal Exit | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:14:13:14:21 | return ...; | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:16:13:16:21 | return ...; | +| ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:11:9:11:10 | Entry | | ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:12:5:17:5 | {...} | -| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:9:16:21 | if (...) ... | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:25:13:25 | (...) ... | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:13:13:13 | access to parameter s | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:13:13:21 | access to property Length | +| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:21 | Before access to property Length | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:21 | access to property Length | +| ConditionalAccess.cs:13:13:13:21 | Before access to property Length | ConditionalAccess.cs:13:13:13:25 | Before ... > ... | +| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | +| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:25:13:25 | After (...) ... | +| ConditionalAccess.cs:13:13:13:25 | Before ... > ... | ConditionalAccess.cs:13:9:16:21 | if (...) ... | +| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:25:13:25 | Before (...) ... | | ConditionalAccess.cs:13:25:13:25 | (...) ... | ConditionalAccess.cs:13:25:13:25 | 0 | +| ConditionalAccess.cs:13:25:13:25 | After (...) ... | ConditionalAccess.cs:13:25:13:25 | (...) ... | +| ConditionalAccess.cs:13:25:13:25 | Before (...) ... | ConditionalAccess.cs:13:13:13:21 | After access to property Length | +| ConditionalAccess.cs:14:13:14:21 | Before return ...; | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | | ConditionalAccess.cs:14:13:14:21 | return ...; | ConditionalAccess.cs:14:20:14:20 | 0 | +| ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:14:13:14:21 | Before return ...; | +| ConditionalAccess.cs:16:13:16:21 | Before return ...; | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | | ConditionalAccess.cs:16:13:16:21 | return ...; | ConditionalAccess.cs:16:20:16:20 | 1 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 | ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | -| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:12:19:13 | enter M6 | +| ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:16:13:16:21 | Before return ...; | +| ConditionalAccess.cs:19:12:19:13 | Exit | ConditionalAccess.cs:19:12:19:13 | Normal Exit | +| ConditionalAccess.cs:19:12:19:13 | Normal Exit | ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | +| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:40:19:60 | Before call to method CommaJoinWith | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | +| ConditionalAccess.cs:19:40:19:60 | Before call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | Entry | | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | -| ConditionalAccess.cs:21:10:21:11 | exit M7 | ConditionalAccess.cs:21:10:21:11 | exit M7 (normal) | -| ConditionalAccess.cs:21:10:21:11 | exit M7 (normal) | ConditionalAccess.cs:25:9:25:32 | ... = ... | -| ConditionalAccess.cs:22:5:26:5 | {...} | ConditionalAccess.cs:21:10:21:11 | enter M7 | +| ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:21:10:21:11 | Exit | ConditionalAccess.cs:21:10:21:11 | Normal Exit | +| ConditionalAccess.cs:21:10:21:11 | Normal Exit | ConditionalAccess.cs:22:5:26:5 | After {...} | +| ConditionalAccess.cs:22:5:26:5 | After {...} | ConditionalAccess.cs:25:9:25:33 | After ...; | +| ConditionalAccess.cs:22:5:26:5 | {...} | ConditionalAccess.cs:21:10:21:11 | Entry | | ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:22:5:26:5 | {...} | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:18:23:29 | (...) ... | +| ConditionalAccess.cs:23:9:23:39 | After ... ...; | ConditionalAccess.cs:23:13:23:38 | After Nullable j = ... | +| ConditionalAccess.cs:23:13:23:13 | access to local variable j | ConditionalAccess.cs:23:13:23:38 | Before Nullable j = ... | +| ConditionalAccess.cs:23:13:23:38 | After Nullable j = ... | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | +| ConditionalAccess.cs:23:13:23:38 | Before Nullable j = ... | ConditionalAccess.cs:23:9:23:39 | ... ...; | +| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:17:23:38 | After access to property Length | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:17:23:38 | access to property Length | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:23:17:23:38 | Before access to property Length | ConditionalAccess.cs:23:13:23:13 | access to local variable j | +| ConditionalAccess.cs:23:17:23:38 | access to property Length | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | | ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:26:23:29 | null | -| ConditionalAccess.cs:23:26:23:29 | null | ConditionalAccess.cs:23:9:23:39 | ... ...; | -| ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | -| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:24:17:24:37 | call to method ToString | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:18:24:24 | (...) ... | +| ConditionalAccess.cs:23:18:23:29 | Before (...) ... | ConditionalAccess.cs:23:17:23:38 | Before access to property Length | +| ConditionalAccess.cs:23:26:23:29 | null | ConditionalAccess.cs:23:18:23:29 | Before (...) ... | +| ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:23:9:23:39 | After ... ...; | +| ConditionalAccess.cs:24:9:24:38 | After ... ...; | ConditionalAccess.cs:24:13:24:37 | After String s = ... | +| ConditionalAccess.cs:24:13:24:13 | access to local variable s | ConditionalAccess.cs:24:13:24:37 | Before String s = ... | +| ConditionalAccess.cs:24:13:24:37 | After String s = ... | ConditionalAccess.cs:24:13:24:37 | String s = ... | +| ConditionalAccess.cs:24:13:24:37 | Before String s = ... | ConditionalAccess.cs:24:9:24:38 | ... ...; | +| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:17:24:37 | call to method ToString | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:24:17:24:37 | Before call to method ToString | ConditionalAccess.cs:24:13:24:13 | access to local variable s | +| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | | ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:24:24:24 | access to parameter i | -| ConditionalAccess.cs:24:24:24:24 | access to parameter i | ConditionalAccess.cs:24:9:24:38 | ... ...; | -| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | -| ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:24:13:24:37 | String s = ... | -| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:9:25:33 | ...; | +| ConditionalAccess.cs:24:18:24:24 | Before (...) ... | ConditionalAccess.cs:24:17:24:37 | Before call to method ToString | +| ConditionalAccess.cs:24:24:24:24 | access to parameter i | ConditionalAccess.cs:24:18:24:24 | Before (...) ... | +| ConditionalAccess.cs:25:9:25:9 | access to local variable s | ConditionalAccess.cs:25:9:25:32 | Before ... = ... | +| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | +| ConditionalAccess.cs:25:9:25:32 | After ... = ... | ConditionalAccess.cs:25:9:25:32 | ... = ... | +| ConditionalAccess.cs:25:9:25:32 | Before ... = ... | ConditionalAccess.cs:25:9:25:33 | ...; | +| ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:24:9:24:38 | After ... ...; | +| ConditionalAccess.cs:25:9:25:33 | After ...; | ConditionalAccess.cs:25:9:25:32 | After ... = ... | +| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:13:25:32 | Before call to method CommaJoinWith | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | +| ConditionalAccess.cs:25:13:25:32 | Before call to method CommaJoinWith | ConditionalAccess.cs:25:9:25:9 | access to local variable s | | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:13:25:14 | "" | -| ConditionalAccess.cs:30:10:30:12 | exit Out | ConditionalAccess.cs:30:10:30:12 | exit Out (normal) | -| ConditionalAccess.cs:30:10:30:12 | exit Out (normal) | ConditionalAccess.cs:30:28:30:32 | ... = ... | +| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:30:10:30:12 | Exit | ConditionalAccess.cs:30:10:30:12 | Normal Exit | +| ConditionalAccess.cs:30:10:30:12 | Normal Exit | ConditionalAccess.cs:30:28:30:32 | After ... = ... | +| ConditionalAccess.cs:30:28:30:28 | access to parameter i | ConditionalAccess.cs:30:28:30:32 | Before ... = ... | | ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:32:30:32 | 0 | -| ConditionalAccess.cs:30:32:30:32 | 0 | ConditionalAccess.cs:30:10:30:12 | enter Out | -| ConditionalAccess.cs:32:10:32:11 | exit M8 | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:35:9:35:12 | access to property Prop | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:32:10:32:11 | enter M8 | +| ConditionalAccess.cs:30:28:30:32 | After ... = ... | ConditionalAccess.cs:30:28:30:32 | ... = ... | +| ConditionalAccess.cs:30:28:30:32 | Before ... = ... | ConditionalAccess.cs:30:10:30:12 | Entry | +| ConditionalAccess.cs:30:32:30:32 | 0 | ConditionalAccess.cs:30:28:30:28 | access to parameter i | +| ConditionalAccess.cs:32:10:32:11 | Exit | ConditionalAccess.cs:32:10:32:11 | Normal Exit | +| ConditionalAccess.cs:32:10:32:11 | Normal Exit | ConditionalAccess.cs:33:5:36:5 | After {...} | +| ConditionalAccess.cs:33:5:36:5 | After {...} | ConditionalAccess.cs:35:9:35:25 | After ...; | +| ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:32:10:32:11 | Entry | +| ConditionalAccess.cs:34:9:34:9 | access to parameter i | ConditionalAccess.cs:34:9:34:13 | Before ... = ... | | ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:34:13:34:13 | 0 | +| ConditionalAccess.cs:34:9:34:13 | After ... = ... | ConditionalAccess.cs:34:9:34:13 | ... = ... | +| ConditionalAccess.cs:34:9:34:13 | Before ... = ... | ConditionalAccess.cs:34:9:34:14 | ...; | | ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:33:5:36:5 | {...} | -| ConditionalAccess.cs:34:13:34:13 | 0 | ConditionalAccess.cs:34:9:34:14 | ...; | +| ConditionalAccess.cs:34:9:34:14 | After ...; | ConditionalAccess.cs:34:9:34:13 | After ... = ... | +| ConditionalAccess.cs:34:13:34:13 | 0 | ConditionalAccess.cs:34:9:34:9 | access to parameter i | +| ConditionalAccess.cs:35:9:35:12 | Before access to property Prop | ConditionalAccess.cs:35:9:35:24 | Before call to method Out | | ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | this access | -| ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:25 | ...; | -| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:34:9:34:13 | ... = ... | -| ConditionalAccess.cs:42:9:42:11 | exit get_Item | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | -| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:15:42:26 | return ...; | -| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:9:42:11 | enter get_Item | +| ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | Before access to property Prop | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | +| ConditionalAccess.cs:35:9:35:24 | Before call to method Out | ConditionalAccess.cs:35:9:35:25 | ...; | +| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:23:35:23 | access to parameter i | +| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:34:9:34:14 | After ...; | +| ConditionalAccess.cs:35:9:35:25 | After ...; | ConditionalAccess.cs:35:9:35:24 | After call to method Out | +| ConditionalAccess.cs:35:23:35:23 | access to parameter i | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | +| ConditionalAccess.cs:42:9:42:11 | Exit | ConditionalAccess.cs:42:9:42:11 | Normal Exit | +| ConditionalAccess.cs:42:9:42:11 | Normal Exit | ConditionalAccess.cs:42:15:42:26 | return ...; | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:9:42:11 | Entry | +| ConditionalAccess.cs:42:15:42:26 | Before return ...; | ConditionalAccess.cs:42:13:42:28 | {...} | | ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:22:42:25 | null | -| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:13:42:28 | {...} | -| ConditionalAccess.cs:43:9:43:11 | exit set_Item | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | -| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:13:43:15 | {...} | -| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | enter set_Item | -| ConditionalAccess.cs:46:10:46:11 | exit M9 | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | -| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:12:54:29 | ... += ... | -| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:26 | ...; | -| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:15:42:26 | Before return ...; | +| ConditionalAccess.cs:43:9:43:11 | Exit | ConditionalAccess.cs:43:9:43:11 | Normal Exit | +| ConditionalAccess.cs:43:9:43:11 | Normal Exit | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | Entry | +| ConditionalAccess.cs:46:10:46:11 | Exit | ConditionalAccess.cs:46:10:46:11 | Normal Exit | +| ConditionalAccess.cs:46:10:46:11 | Normal Exit | ConditionalAccess.cs:47:5:55:5 | After {...} | +| ConditionalAccess.cs:47:5:55:5 | After {...} | ConditionalAccess.cs:54:9:54:30 | After ...; | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:20 | Before access to field IntField | +| ConditionalAccess.cs:48:9:48:20 | After access to field IntField | ConditionalAccess.cs:48:9:48:20 | access to field IntField | +| ConditionalAccess.cs:48:9:48:20 | Before access to field IntField | ConditionalAccess.cs:48:12:48:25 | Before ... = ... | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | | ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:47:5:55:5 | {...} | -| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:20 | access to field IntField | -| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:12:48:25 | ... = ... | -| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | -| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:18:50:23 | "Set0" | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:12:49:32 | ... = ... | -| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:14 | access to indexer | -| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:12:50:23 | ... = ... | -| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:26 | access to field IntField | -| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:18:51:31 | ... = ... | -| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | -| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:18:52:38 | ... = ... | +| ConditionalAccess.cs:48:9:48:26 | After ...; | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:12:48:25 | ... = ... | +| ConditionalAccess.cs:48:12:48:25 | Before ... = ... | ConditionalAccess.cs:48:9:48:26 | ...; | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:9:48:20 | After access to field IntField | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:22 | Before access to property StringProp | +| ConditionalAccess.cs:49:9:49:22 | After access to property StringProp | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | +| ConditionalAccess.cs:49:9:49:22 | Before access to property StringProp | ConditionalAccess.cs:49:12:49:32 | Before ... = ... | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:9:48:26 | After ...; | +| ConditionalAccess.cs:49:9:49:33 | After ...; | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:12:49:32 | ... = ... | +| ConditionalAccess.cs:49:12:49:32 | Before ... = ... | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:9:49:22 | After access to property StringProp | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:14 | Before access to indexer | +| ConditionalAccess.cs:50:9:50:14 | After access to indexer | ConditionalAccess.cs:50:9:50:14 | access to indexer | +| ConditionalAccess.cs:50:9:50:14 | Before access to indexer | ConditionalAccess.cs:50:12:50:23 | Before ... = ... | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:9:49:33 | After ...; | +| ConditionalAccess.cs:50:9:50:24 | After ...; | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:12:50:23 | ... = ... | +| ConditionalAccess.cs:50:12:50:23 | Before ... = ... | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:9:50:14 | After access to indexer | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:16 | Before access to property Prop | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:9:51:16 | Before access to property Prop | ConditionalAccess.cs:51:9:51:26 | Before access to field IntField | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:9:51:26 | After access to field IntField | ConditionalAccess.cs:51:9:51:26 | access to field IntField | +| ConditionalAccess.cs:51:9:51:26 | Before access to field IntField | ConditionalAccess.cs:51:18:51:31 | Before ... = ... | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:9:50:24 | After ...; | +| ConditionalAccess.cs:51:9:51:32 | After ...; | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:18:51:31 | ... = ... | +| ConditionalAccess.cs:51:18:51:31 | Before ... = ... | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:9:51:26 | After access to field IntField | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:16 | Before access to property Prop | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:9:52:16 | Before access to property Prop | ConditionalAccess.cs:52:9:52:28 | Before access to property StringProp | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:9:52:28 | After access to property StringProp | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | +| ConditionalAccess.cs:52:9:52:28 | Before access to property StringProp | ConditionalAccess.cs:52:18:52:38 | Before ... = ... | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:32 | After ...; | +| ConditionalAccess.cs:52:9:52:39 | After ...; | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:18:52:38 | ... = ... | +| ConditionalAccess.cs:52:18:52:38 | Before ... = ... | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | After access to property StringProp | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | Before access to field IntField | +| ConditionalAccess.cs:53:9:53:20 | After access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:20 | Before access to field IntField | ConditionalAccess.cs:53:12:53:25 | Before ... -= ... | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:39 | After ...; | +| ConditionalAccess.cs:53:9:53:26 | After ...; | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | | ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | -| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:12:53:25 | ... -= ... | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:12:53:25 | ... -= ... | +| ConditionalAccess.cs:53:12:53:25 | Before ... -= ... | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:20 | After access to field IntField | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | Before access to property StringProp | +| ConditionalAccess.cs:54:9:54:22 | After access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:22 | Before access to property StringProp | ConditionalAccess.cs:54:12:54:29 | Before ... += ... | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:26 | After ...; | +| ConditionalAccess.cs:54:9:54:30 | After ...; | ConditionalAccess.cs:54:12:54:29 | After ... += ... | | ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | -| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:70:60:83 | ... + ... | -| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:12:54:29 | ... += ... | +| ConditionalAccess.cs:54:12:54:29 | Before ... += ... | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:22 | After access to property StringProp | +| ConditionalAccess.cs:60:26:60:38 | Exit | ConditionalAccess.cs:60:26:60:38 | Normal Exit | +| ConditionalAccess.cs:60:26:60:38 | Normal Exit | ConditionalAccess.cs:60:70:60:83 | After ... + ... | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:70:60:78 | Before ... + ... | | ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:75:60:78 | ", " | +| ConditionalAccess.cs:60:70:60:78 | After ... + ... | ConditionalAccess.cs:60:70:60:78 | ... + ... | +| ConditionalAccess.cs:60:70:60:78 | Before ... + ... | ConditionalAccess.cs:60:70:60:83 | Before ... + ... | | ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | +| ConditionalAccess.cs:60:70:60:83 | After ... + ... | ConditionalAccess.cs:60:70:60:83 | ... + ... | +| ConditionalAccess.cs:60:70:60:83 | Before ... + ... | ConditionalAccess.cs:60:26:60:38 | Entry | | ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | -| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:78 | ... + ... | -| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to method | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:78 | After ... + ... | +| Conditions.cs:1:7:1:16 | After call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | +| Conditions.cs:1:7:1:16 | After call to method | Conditions.cs:1:7:1:16 | call to method | +| Conditions.cs:1:7:1:16 | Before call to constructor Object | Conditions.cs:1:7:1:16 | After call to method | +| Conditions.cs:1:7:1:16 | Before call to method | Conditions.cs:1:7:1:16 | Entry | +| Conditions.cs:1:7:1:16 | Exit | Conditions.cs:1:7:1:16 | Normal Exit | +| Conditions.cs:1:7:1:16 | Normal Exit | Conditions.cs:1:7:1:16 | {...} | +| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | Before 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 | 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] !... | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:8:13:8:15 | ...-- | -| Conditions.cs:4:5:9:5 | {...} | Conditions.cs:3:10:3:19 | enter IncrOrDecr | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | Before call to method | +| Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | After call to constructor Object | +| Conditions.cs:3:10:3:19 | Exit | Conditions.cs:3:10:3:19 | Normal Exit | +| Conditions.cs:3:10:3:19 | Normal Exit | Conditions.cs:4:5:9:5 | After {...} | +| Conditions.cs:4:5:9:5 | After {...} | Conditions.cs:7:9:8:16 | After if (...) ... | +| Conditions.cs:4:5:9:5 | {...} | Conditions.cs:3:10:3:19 | Entry | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:6:13:6:16 | After ...; | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:9:6:16 | if (...) ... | -| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:15 | Before ...++ | | Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:13 | access to parameter x | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:6:13:6:15 | ...++ | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | -| Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:16 | ...; | +| Conditions.cs:6:13:6:15 | After ...++ | Conditions.cs:6:13:6:15 | ...++ | +| Conditions.cs:6:13:6:15 | Before ...++ | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | +| Conditions.cs:6:13:6:16 | After ...; | Conditions.cs:6:13:6:15 | After ...++ | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:7:13:7:16 | After !... [false] | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:8:13:8:16 | After ...; | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:5:9:6:16 | After if (...) ... | +| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:9:8:16 | if (...) ... | +| Conditions.cs:7:13:7:16 | After !... [false] | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | +| Conditions.cs:7:13:7:16 | After !... [true] | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | !... | +| Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | Before ...-- | | Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:13 | access to parameter x | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:11:9:11:10 | exit M1 | Conditions.cs:11:9:11:10 | exit M1 (normal) | -| Conditions.cs:11:9:11:10 | exit M1 (normal) | Conditions.cs:19:9:19:17 | return ...; | -| Conditions.cs:12:5:20:5 | {...} | Conditions.cs:11:9:11:10 | enter M1 | +| Conditions.cs:8:13:8:15 | After ...-- | Conditions.cs:8:13:8:15 | ...-- | +| Conditions.cs:8:13:8:15 | Before ...-- | Conditions.cs:8:13:8:16 | ...; | +| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:7:13:7:16 | After !... [true] | +| Conditions.cs:8:13:8:16 | After ...; | Conditions.cs:8:13:8:15 | After ...-- | +| Conditions.cs:11:9:11:10 | Exit | Conditions.cs:11:9:11:10 | Normal Exit | +| Conditions.cs:11:9:11:10 | Normal Exit | Conditions.cs:19:9:19:17 | return ...; | +| Conditions.cs:12:5:20:5 | {...} | Conditions.cs:11:9:11:10 | Entry | | Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:12:5:20:5 | {...} | +| Conditions.cs:13:9:13:18 | After ... ...; | Conditions.cs:13:13:13:17 | After Int32 x = ... | +| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:13:13:17 | Before Int32 x = ... | +| Conditions.cs:13:13:13:17 | After Int32 x = ... | Conditions.cs:13:13:13:17 | Int32 x = ... | +| Conditions.cs:13:13:13:17 | Before Int32 x = ... | Conditions.cs:13:9:13:18 | ... ...; | | Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:17:13:17 | 0 | -| Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:9:13:18 | ... ...; | -| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:13:13:13:17 | Int32 x = ... | +| Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:13 | access to local variable x | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:14:13:14:13 | After access to parameter b [false] | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:15:13:15:16 | After ...; | +| Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:13:9:13:18 | After ... ...; | | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:9:15:16 | if (...) ... | -| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:15 | Before ...++ | | Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:15:13:15:13 | access to local variable x | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:15:13:15:15 | ...++ | -| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:15:13:15:15 | After ...++ | Conditions.cs:15:13:15:15 | ...++ | +| Conditions.cs:15:13:15:15 | Before ...++ | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:14:13:14:13 | After access to parameter b [true] | +| Conditions.cs:15:13:15:16 | After ...; | Conditions.cs:15:13:15:15 | After ...++ | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [false] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:17:13:18:20 | After if (...) ... | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:14:9:15:16 | After if (...) ... | +| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:13:16:17 | Before ... > ... | | Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:17:16:17 | 0 | +| Conditions.cs:16:13:16:17 | Before ... > ... | Conditions.cs:16:9:18:20 | if (...) ... | | Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:13:16:13 | access to local variable x | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:20 | ...; | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:17:17:17:18 | After !... [false] | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:18:17:18:20 | After ...; | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:13:18:20 | if (...) ... | +| Conditions.cs:17:17:17:18 | After !... [false] | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:17:17:17:18 | After !... [true] | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | !... | +| Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | Before ...-- | | Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:17 | access to local variable x | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:17:17:17:18 | [true] !... | +| Conditions.cs:18:17:18:19 | After ...-- | Conditions.cs:18:17:18:19 | ...-- | +| Conditions.cs:18:17:18:19 | Before ...-- | Conditions.cs:18:17:18:20 | ...; | +| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:17:17:17:18 | After !... [true] | +| Conditions.cs:18:17:18:20 | After ...; | Conditions.cs:18:17:18:19 | After ...-- | +| Conditions.cs:19:9:19:17 | Before return ...; | Conditions.cs:16:9:18:20 | After if (...) ... | | Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:19:16:19:16 | access to local variable x | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:13:16:17 | ... > ... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | -| Conditions.cs:22:9:22:10 | exit M2 | Conditions.cs:22:9:22:10 | exit M2 (normal) | -| Conditions.cs:22:9:22:10 | exit M2 (normal) | Conditions.cs:30:9:30:17 | return ...; | -| Conditions.cs:23:5:31:5 | {...} | Conditions.cs:22:9:22:10 | enter M2 | +| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:9:19:17 | Before return ...; | +| Conditions.cs:22:9:22:10 | Exit | Conditions.cs:22:9:22:10 | Normal Exit | +| Conditions.cs:22:9:22:10 | Normal Exit | Conditions.cs:30:9:30:17 | return ...; | +| Conditions.cs:23:5:31:5 | {...} | Conditions.cs:22:9:22:10 | Entry | | Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:23:5:31:5 | {...} | +| Conditions.cs:24:9:24:18 | After ... ...; | Conditions.cs:24:13:24:17 | After Int32 x = ... | +| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:13:24:17 | Before Int32 x = ... | +| Conditions.cs:24:13:24:17 | After Int32 x = ... | Conditions.cs:24:13:24:17 | Int32 x = ... | +| Conditions.cs:24:13:24:17 | Before Int32 x = ... | Conditions.cs:24:9:24:18 | ... ...; | | Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:17:24:17 | 0 | -| Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:9:24:18 | ... ...; | -| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:24:13:24:17 | Int32 x = ... | +| Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:13:24:13 | access to local variable x | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:26:13:27:20 | After if (...) ... | +| Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:24:9:24:18 | After ... ...; | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:9:27:20 | if (...) ... | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:27:17:27:20 | After ...; | +| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | | Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:19 | Before ...++ | | Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:27:17:27:17 | access to local variable x | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:27:17:27:19 | ...++ | +| Conditions.cs:27:17:27:19 | After ...++ | Conditions.cs:27:17:27:19 | ...++ | +| Conditions.cs:27:17:27:19 | Before ...++ | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:27:17:27:20 | After ...; | Conditions.cs:27:17:27:19 | After ...++ | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:29:13:29:16 | After ...; | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:25:9:27:20 | After if (...) ... | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... | -| Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:16 | ...; | +| Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | Before ...++ | | Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:13 | access to local variable x | +| Conditions.cs:29:13:29:15 | After ...++ | Conditions.cs:29:13:29:15 | ...++ | +| Conditions.cs:29:13:29:15 | Before ...++ | Conditions.cs:29:13:29:16 | ...; | +| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | +| Conditions.cs:29:13:29:16 | After ...; | Conditions.cs:29:13:29:15 | After ...++ | +| Conditions.cs:30:9:30:17 | Before return ...; | Conditions.cs:28:9:29:16 | After if (...) ... | | Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:30:16:30:16 | access to local variable x | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:13:28:14 | access to parameter b2 | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | -| Conditions.cs:33:9:33:10 | exit M3 | Conditions.cs:33:9:33:10 | exit M3 (normal) | -| Conditions.cs:33:9:33:10 | exit M3 (normal) | Conditions.cs:43:9:43:17 | return ...; | -| Conditions.cs:34:5:44:5 | {...} | Conditions.cs:33:9:33:10 | enter M3 | +| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:9:30:17 | Before return ...; | +| Conditions.cs:33:9:33:10 | Exit | Conditions.cs:33:9:33:10 | Normal Exit | +| Conditions.cs:33:9:33:10 | Normal Exit | Conditions.cs:43:9:43:17 | return ...; | +| Conditions.cs:34:5:44:5 | {...} | Conditions.cs:33:9:33:10 | Entry | | Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:34:5:44:5 | {...} | +| Conditions.cs:35:9:35:18 | After ... ...; | Conditions.cs:35:13:35:17 | After Int32 x = ... | +| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:13:35:17 | Before Int32 x = ... | +| Conditions.cs:35:13:35:17 | After Int32 x = ... | Conditions.cs:35:13:35:17 | Int32 x = ... | +| Conditions.cs:35:13:35:17 | Before Int32 x = ... | Conditions.cs:35:9:35:18 | ... ...; | | Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:17:35:17 | 0 | -| Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:9:35:18 | ... ...; | -| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:35:13:35:17 | Int32 x = ... | +| Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:13:35:13 | access to local variable x | +| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:35:9:35:18 | After ... ...; | +| Conditions.cs:36:9:36:23 | After ... ...; | Conditions.cs:36:13:36:22 | After Boolean b2 = ... | +| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:13:36:22 | Before Boolean b2 = ... | +| Conditions.cs:36:13:36:22 | After Boolean b2 = ... | Conditions.cs:36:13:36:22 | Boolean b2 = ... | +| Conditions.cs:36:13:36:22 | Before Boolean b2 = ... | Conditions.cs:36:9:36:23 | ... ...; | | Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:18:36:22 | false | -| Conditions.cs:36:18:36:22 | false | Conditions.cs:36:9:36:23 | ... ...; | -| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:36:13:36:22 | Boolean b2 = ... | +| Conditions.cs:36:18:36:22 | false | Conditions.cs:36:13:36:14 | access to local variable b2 | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:38:13:38:20 | After ...; | +| Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:36:9:36:23 | After ... ...; | | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:9:38:20 | if (...) ... | +| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:13:38:19 | Before ... = ... | | Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:18:38:19 | access to parameter b1 | -| Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:38:13:38:19 | ... = ... | +| Conditions.cs:38:13:38:19 | After ... = ... | Conditions.cs:38:13:38:19 | ... = ... | +| Conditions.cs:38:13:38:19 | Before ... = ... | Conditions.cs:38:13:38:20 | ...; | +| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:38:13:38:20 | After ...; | Conditions.cs:38:13:38:19 | After ... = ... | +| Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:14 | access to local variable b2 | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:40:13:40:16 | After ...; | +| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:37:9:38:20 | After if (...) ... | | Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:15 | Before ...++ | | Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:40:13:40:13 | access to local variable x | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:40:13:40:15 | ...++ | +| Conditions.cs:40:13:40:15 | After ...++ | Conditions.cs:40:13:40:15 | ...++ | +| Conditions.cs:40:13:40:15 | Before ...++ | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | +| Conditions.cs:40:13:40:16 | After ...; | Conditions.cs:40:13:40:15 | After ...++ | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:42:13:42:16 | After ...; | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:39:9:40:16 | After if (...) ... | | Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | -| Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:16 | ...; | +| Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | Before ...++ | | Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:13 | access to local variable x | +| Conditions.cs:42:13:42:15 | After ...++ | Conditions.cs:42:13:42:15 | ...++ | +| Conditions.cs:42:13:42:15 | Before ...++ | Conditions.cs:42:13:42:16 | ...; | +| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | +| Conditions.cs:42:13:42:16 | After ...; | Conditions.cs:42:13:42:15 | After ...++ | +| Conditions.cs:43:9:43:17 | Before return ...; | Conditions.cs:41:9:42:16 | After if (...) ... | | Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:13:41:14 | access to local variable b2 | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | -| Conditions.cs:46:9:46:10 | exit M4 | Conditions.cs:46:9:46:10 | exit M4 (normal) | -| Conditions.cs:46:9:46:10 | exit M4 (normal) | Conditions.cs:54:9:54:17 | return ...; | -| Conditions.cs:47:5:55:5 | {...} | Conditions.cs:46:9:46:10 | enter M4 | +| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:9:43:17 | Before return ...; | +| Conditions.cs:46:9:46:10 | Exit | Conditions.cs:46:9:46:10 | Normal Exit | +| Conditions.cs:46:9:46:10 | Normal Exit | Conditions.cs:54:9:54:17 | return ...; | +| Conditions.cs:47:5:55:5 | {...} | Conditions.cs:46:9:46:10 | Entry | | Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:47:5:55:5 | {...} | +| Conditions.cs:48:9:48:18 | After ... ...; | Conditions.cs:48:13:48:17 | After Int32 y = ... | +| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:13:48:17 | Before Int32 y = ... | +| Conditions.cs:48:13:48:17 | After Int32 y = ... | Conditions.cs:48:13:48:17 | Int32 y = ... | +| Conditions.cs:48:13:48:17 | Before Int32 y = ... | Conditions.cs:48:9:48:18 | ... ...; | | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:17:48:17 | 0 | -| Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:9:48:18 | ... ...; | -| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:48:13:48:17 | Int32 y = ... | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:9:53:9 | while (...) ... | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:51:17:51:17 | access to parameter b | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:19 | ...++ | +| Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:13 | access to local variable y | +| Conditions.cs:49:9:53:9 | After while (...) ... | Conditions.cs:49:16:49:22 | After ... > ... [false] | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:9:53:9 | while (...) ... | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:50:9:53:9 | After {...} | +| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:48:9:48:18 | After ... ...; | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | Before ...-- | | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:16 | access to parameter x | +| Conditions.cs:49:16:49:18 | After ...-- | Conditions.cs:49:16:49:18 | ...-- | +| Conditions.cs:49:16:49:18 | Before ...-- | Conditions.cs:49:16:49:22 | Before ... > ... | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:22:49:22 | 0 | -| Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:18 | ...-- | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:49:16:49:22 | ... > ... | +| Conditions.cs:49:16:49:22 | Before ... > ... | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | +| Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:18 | After ...-- | +| Conditions.cs:50:9:53:9 | After {...} | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:52:17:52:20 | After ...; | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:50:9:53:9 | {...} | | Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:13:52:20 | if (...) ... | -| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:19 | Before ...++ | | Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:52:17:52:17 | access to local variable y | +| Conditions.cs:52:17:52:19 | After ...++ | Conditions.cs:52:17:52:19 | ...++ | +| Conditions.cs:52:17:52:19 | Before ...++ | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:52:17:52:20 | After ...; | Conditions.cs:52:17:52:19 | After ...++ | +| Conditions.cs:54:9:54:17 | Before return ...; | Conditions.cs:49:9:53:9 | After while (...) ... | | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:54:16:54:16 | access to local variable y | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:22 | ... > ... | -| Conditions.cs:57:9:57:10 | exit M5 | Conditions.cs:57:9:57:10 | exit M5 (normal) | -| Conditions.cs:57:9:57:10 | exit M5 (normal) | Conditions.cs:67:9:67:17 | return ...; | -| Conditions.cs:58:5:68:5 | {...} | Conditions.cs:57:9:57:10 | enter M5 | +| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | Before return ...; | +| Conditions.cs:57:9:57:10 | Exit | Conditions.cs:57:9:57:10 | Normal Exit | +| Conditions.cs:57:9:57:10 | Normal Exit | Conditions.cs:67:9:67:17 | return ...; | +| Conditions.cs:58:5:68:5 | {...} | Conditions.cs:57:9:57:10 | Entry | | Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:58:5:68:5 | {...} | +| Conditions.cs:59:9:59:18 | After ... ...; | Conditions.cs:59:13:59:17 | After Int32 y = ... | +| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:13:59:17 | Before Int32 y = ... | +| Conditions.cs:59:13:59:17 | After Int32 y = ... | Conditions.cs:59:13:59:17 | Int32 y = ... | +| Conditions.cs:59:13:59:17 | Before Int32 y = ... | Conditions.cs:59:9:59:18 | ... ...; | | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:17:59:17 | 0 | -| Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:9:59:18 | ... ...; | -| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:59:13:59:17 | Int32 y = ... | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:9:64:9 | while (...) ... | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:62:17:62:17 | access to parameter b | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:19 | ...++ | +| Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:13 | access to local variable y | +| Conditions.cs:60:9:64:9 | After while (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [false] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:9:64:9 | while (...) ... | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:61:9:64:9 | After {...} | +| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:59:9:59:18 | After ... ...; | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | Before ...-- | | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:16 | access to parameter x | +| Conditions.cs:60:16:60:18 | After ...-- | Conditions.cs:60:16:60:18 | ...-- | +| Conditions.cs:60:16:60:18 | Before ...-- | Conditions.cs:60:16:60:22 | Before ... > ... | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:22:60:22 | 0 | -| Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:18 | ...-- | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:60:16:60:22 | ... > ... | +| Conditions.cs:60:16:60:22 | Before ... > ... | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | +| Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:18 | After ...-- | +| Conditions.cs:61:9:64:9 | After {...} | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:63:17:63:20 | After ...; | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:61:9:64:9 | {...} | | Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:13:63:20 | if (...) ... | -| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:19 | Before ...++ | | Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:63:17:63:17 | access to local variable y | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:60:16:60:22 | ... > ... | +| Conditions.cs:63:17:63:19 | After ...++ | Conditions.cs:63:17:63:19 | ...++ | +| Conditions.cs:63:17:63:19 | Before ...++ | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:63:17:63:20 | After ...; | Conditions.cs:63:17:63:19 | After ...++ | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:66:13:66:16 | After ...; | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:60:9:64:9 | After while (...) ... | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:16 | ...; | +| Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | Before ...++ | | Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:13 | access to local variable y | +| Conditions.cs:66:13:66:15 | After ...++ | Conditions.cs:66:13:66:15 | ...++ | +| Conditions.cs:66:13:66:15 | Before ...++ | Conditions.cs:66:13:66:16 | ...; | +| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:65:13:65:13 | After access to parameter b [true] | +| Conditions.cs:66:13:66:16 | After ...; | Conditions.cs:66:13:66:15 | After ...++ | +| Conditions.cs:67:9:67:17 | Before return ...; | Conditions.cs:65:9:66:16 | After if (...) ... | | Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:13:65:13 | access to parameter b | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | -| Conditions.cs:70:9:70:10 | exit M6 | Conditions.cs:70:9:70:10 | exit M6 (normal) | -| Conditions.cs:70:9:70:10 | exit M6 (normal) | Conditions.cs:83:9:83:17 | return ...; | -| Conditions.cs:71:5:84:5 | {...} | Conditions.cs:70:9:70:10 | enter M6 | +| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:9:67:17 | Before return ...; | +| Conditions.cs:70:9:70:10 | Exit | Conditions.cs:70:9:70:10 | Normal Exit | +| Conditions.cs:70:9:70:10 | Normal Exit | Conditions.cs:83:9:83:17 | return ...; | +| Conditions.cs:71:5:84:5 | {...} | Conditions.cs:70:9:70:10 | Entry | | Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:71:5:84:5 | {...} | -| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:17:72:29 | ... > ... | -| Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:9:72:30 | ... ...; | +| Conditions.cs:72:9:72:30 | After ... ...; | Conditions.cs:72:13:72:29 | After Boolean b = ... | +| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:13:72:29 | Before Boolean b = ... | +| Conditions.cs:72:13:72:29 | After Boolean b = ... | Conditions.cs:72:13:72:29 | Boolean b = ... | +| Conditions.cs:72:13:72:29 | Before Boolean b = ... | Conditions.cs:72:9:72:30 | ... ...; | +| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:17:72:29 | After ... > ... | +| Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:25 | Before access to property Length | +| Conditions.cs:72:17:72:25 | After access to property Length | Conditions.cs:72:17:72:25 | access to property Length | +| Conditions.cs:72:17:72:25 | Before access to property Length | Conditions.cs:72:17:72:29 | Before ... > ... | | Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:18 | access to parameter ss | | Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:29:72:29 | 0 | -| Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:25 | access to property Length | -| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:72:13:72:29 | Boolean b = ... | +| Conditions.cs:72:17:72:29 | After ... > ... | Conditions.cs:72:17:72:29 | ... > ... | +| Conditions.cs:72:17:72:29 | Before ... > ... | Conditions.cs:72:13:72:13 | access to local variable b | +| Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:25 | After access to property Length | +| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:72:9:72:30 | After ... ...; | +| Conditions.cs:73:9:73:18 | After ... ...; | Conditions.cs:73:13:73:17 | After Int32 x = ... | +| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:13:73:17 | Before Int32 x = ... | +| Conditions.cs:73:13:73:17 | After Int32 x = ... | Conditions.cs:73:13:73:17 | Int32 x = ... | +| Conditions.cs:73:13:73:17 | Before Int32 x = ... | Conditions.cs:73:9:73:18 | ... ...; | | Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:17:73:17 | 0 | -| Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:9:73:18 | ... ...; | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | access to parameter ss | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:17:78:21 | ... > ... | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:79:17:79:25 | ... = ... | -| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:73:13:73:17 | Int32 x = ... | +| Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:13:73:13 | access to local variable x | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | +| Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:75:9:80:9 | After {...} | +| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:73:9:73:18 | After ... ...; | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | +| Conditions.cs:75:9:80:9 | After {...} | Conditions.cs:78:13:79:26 | After if (...) ... | | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:77:17:77:20 | After ...; | | Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:75:9:80:9 | {...} | | Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:13:77:20 | if (...) ... | -| Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:20 | ...; | +| Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:19 | Before ...++ | | Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:77:17:77:17 | access to local variable x | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:77:17:77:19 | ...++ | -| Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:13:79:26 | if (...) ... | +| Conditions.cs:77:17:77:19 | After ...++ | Conditions.cs:77:17:77:19 | ...++ | +| Conditions.cs:77:17:77:19 | Before ...++ | Conditions.cs:77:17:77:20 | ...; | +| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:77:17:77:20 | After ...; | Conditions.cs:77:17:77:19 | After ...++ | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:79:17:79:26 | After ...; | +| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:17:78:21 | Before ... > ... | | Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:21:78:21 | 0 | +| Conditions.cs:78:17:78:21 | Before ... > ... | Conditions.cs:78:13:79:26 | if (...) ... | | Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:17:78:17 | access to local variable x | +| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:17:79:25 | Before ... = ... | | Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:21:79:25 | false | -| Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | +| Conditions.cs:79:17:79:25 | After ... = ... | Conditions.cs:79:17:79:25 | ... = ... | +| Conditions.cs:79:17:79:25 | Before ... = ... | Conditions.cs:79:17:79:26 | ...; | +| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:79:17:79:26 | After ...; | Conditions.cs:79:17:79:25 | After ... = ... | +| Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:17 | access to local variable b | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:81:13:81:13 | After access to local variable b [false] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:82:13:82:16 | After ...; | +| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | | Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:9:82:16 | if (...) ... | -| Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:16 | ...; | +| Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:15 | Before ...++ | | Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:82:13:82:13 | access to local variable x | +| Conditions.cs:82:13:82:15 | After ...++ | Conditions.cs:82:13:82:15 | ...++ | +| Conditions.cs:82:13:82:15 | Before ...++ | Conditions.cs:82:13:82:16 | ...; | +| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:81:13:81:13 | After access to local variable b [true] | +| Conditions.cs:82:13:82:16 | After ...; | Conditions.cs:82:13:82:15 | After ...++ | +| Conditions.cs:83:9:83:17 | Before return ...; | Conditions.cs:81:9:82:16 | After if (...) ... | | Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:83:16:83:16 | access to local variable x | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:81:13:81:13 | access to local variable b | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:82:13:82:15 | ...++ | -| Conditions.cs:86:9:86:10 | exit M7 | Conditions.cs:86:9:86:10 | exit M7 (normal) | -| Conditions.cs:86:9:86:10 | exit M7 (normal) | Conditions.cs:99:9:99:17 | return ...; | -| Conditions.cs:87:5:100:5 | {...} | Conditions.cs:86:9:86:10 | enter M7 | +| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:9:83:17 | Before return ...; | +| Conditions.cs:86:9:86:10 | Exit | Conditions.cs:86:9:86:10 | Normal Exit | +| Conditions.cs:86:9:86:10 | Normal Exit | Conditions.cs:99:9:99:17 | return ...; | +| Conditions.cs:87:5:100:5 | {...} | Conditions.cs:86:9:86:10 | Entry | | Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:87:5:100:5 | {...} | -| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:17:88:29 | ... > ... | -| Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:9:88:30 | ... ...; | +| Conditions.cs:88:9:88:30 | After ... ...; | Conditions.cs:88:13:88:29 | After Boolean b = ... | +| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:13:88:29 | Before Boolean b = ... | +| Conditions.cs:88:13:88:29 | After Boolean b = ... | Conditions.cs:88:13:88:29 | Boolean b = ... | +| Conditions.cs:88:13:88:29 | Before Boolean b = ... | Conditions.cs:88:9:88:30 | ... ...; | +| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:17:88:29 | After ... > ... | +| Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:25 | Before access to property Length | +| Conditions.cs:88:17:88:25 | After access to property Length | Conditions.cs:88:17:88:25 | access to property Length | +| Conditions.cs:88:17:88:25 | Before access to property Length | Conditions.cs:88:17:88:29 | Before ... > ... | | Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:18 | access to parameter ss | | Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:29:88:29 | 0 | -| Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:25 | access to property Length | -| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:88:13:88:29 | Boolean b = ... | +| Conditions.cs:88:17:88:29 | After ... > ... | Conditions.cs:88:17:88:29 | ... > ... | +| Conditions.cs:88:17:88:29 | Before ... > ... | Conditions.cs:88:13:88:13 | access to local variable b | +| Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:25 | After access to property Length | +| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:88:9:88:30 | After ... ...; | +| Conditions.cs:89:9:89:18 | After ... ...; | Conditions.cs:89:13:89:17 | After Int32 x = ... | +| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:13:89:17 | Before Int32 x = ... | +| Conditions.cs:89:13:89:17 | After Int32 x = ... | Conditions.cs:89:13:89:17 | Int32 x = ... | +| Conditions.cs:89:13:89:17 | Before Int32 x = ... | Conditions.cs:89:9:89:18 | ... ...; | | Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:17:89:17 | 0 | -| Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:9:89:18 | ... ...; | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | access to parameter ss | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:96:17:96:17 | access to local variable b | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:97:17:97:19 | ...++ | -| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:89:13:89:17 | Int32 x = ... | +| Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:13:89:13 | access to local variable x | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | +| Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:91:9:98:9 | After {...} | +| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:89:9:89:18 | After ... ...; | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | +| Conditions.cs:91:9:98:9 | After {...} | Conditions.cs:96:13:97:20 | After if (...) ... | | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:93:17:93:20 | After ...; | | Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:91:9:98:9 | {...} | | Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:13:93:20 | if (...) ... | -| Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:20 | ...; | +| Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:19 | Before ...++ | | Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:93:17:93:17 | access to local variable x | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:93:17:93:19 | ...++ | -| Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:13:95:26 | if (...) ... | +| Conditions.cs:93:17:93:19 | After ...++ | Conditions.cs:93:17:93:19 | ...++ | +| Conditions.cs:93:17:93:19 | Before ...++ | Conditions.cs:93:17:93:20 | ...; | +| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:93:17:93:20 | After ...; | Conditions.cs:93:17:93:19 | After ...++ | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:95:17:95:26 | After ...; | +| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:17:94:21 | Before ... > ... | | Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:21:94:21 | 0 | +| Conditions.cs:94:17:94:21 | Before ... > ... | Conditions.cs:94:13:95:26 | if (...) ... | | Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:17:94:17 | access to local variable x | +| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:17:95:25 | Before ... = ... | | Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:21:95:25 | false | -| Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:94:17:94:21 | ... > ... | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:95:17:95:25 | ... = ... | +| Conditions.cs:95:17:95:25 | After ... = ... | Conditions.cs:95:17:95:25 | ... = ... | +| Conditions.cs:95:17:95:25 | Before ... = ... | Conditions.cs:95:17:95:26 | ...; | +| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:95:17:95:26 | After ...; | Conditions.cs:95:17:95:25 | After ... = ... | +| Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:17 | access to local variable b | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:97:17:97:20 | After ...; | +| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:94:13:95:26 | After if (...) ... | | Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:20 | ...; | +| Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:19 | Before ...++ | | Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:97:17:97:17 | access to local variable x | +| Conditions.cs:97:17:97:19 | After ...++ | Conditions.cs:97:17:97:19 | ...++ | +| Conditions.cs:97:17:97:19 | Before ...++ | Conditions.cs:97:17:97:20 | ...; | +| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:97:17:97:20 | After ...; | Conditions.cs:97:17:97:19 | After ...++ | +| Conditions.cs:99:9:99:17 | Before return ...; | Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | | Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:99:16:99:16 | access to local variable x | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | -| Conditions.cs:102:12:102:13 | exit M8 | Conditions.cs:102:12:102:13 | exit M8 (normal) | -| Conditions.cs:102:12:102:13 | exit M8 (normal) | Conditions.cs:110:9:110:17 | return ...; | -| Conditions.cs:103:5:111:5 | {...} | Conditions.cs:102:12:102:13 | enter M8 | +| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:9:99:17 | Before return ...; | +| Conditions.cs:102:12:102:13 | Exit | Conditions.cs:102:12:102:13 | Normal Exit | +| Conditions.cs:102:12:102:13 | Normal Exit | Conditions.cs:110:9:110:17 | return ...; | +| Conditions.cs:103:5:111:5 | {...} | Conditions.cs:102:12:102:13 | Entry | | Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:103:5:111:5 | {...} | -| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:17:104:28 | call to method ToString | -| Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:9:104:29 | ... ...; | +| Conditions.cs:104:9:104:29 | After ... ...; | Conditions.cs:104:13:104:28 | After String x = ... | +| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:13:104:28 | Before String x = ... | +| Conditions.cs:104:13:104:28 | After String x = ... | Conditions.cs:104:13:104:28 | String x = ... | +| Conditions.cs:104:13:104:28 | Before String x = ... | Conditions.cs:104:9:104:29 | ... ...; | +| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:17:104:28 | After call to method ToString | +| Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | Before call to method ToString | +| Conditions.cs:104:17:104:28 | After call to method ToString | Conditions.cs:104:17:104:28 | call to method ToString | +| Conditions.cs:104:17:104:28 | Before call to method ToString | Conditions.cs:104:13:104:13 | access to local variable x | | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:17 | access to parameter b | -| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:104:13:104:28 | String x = ... | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:105:13:105:13 | After access to parameter b [false] | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:106:13:106:20 | After ...; | +| Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:104:9:104:29 | After ... ...; | | Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:9:106:20 | if (...) ... | -| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:19 | Before ... += ... | | Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:18:106:19 | "" | +| Conditions.cs:106:13:106:19 | After ... += ... | Conditions.cs:106:13:106:19 | ... += ... | +| Conditions.cs:106:13:106:19 | Before ... += ... | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:105:13:105:13 | After access to parameter b [true] | +| Conditions.cs:106:13:106:20 | After ...; | Conditions.cs:106:13:106:19 | After ... += ... | | Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:13:106:13 | access to local variable x | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:106:13:106:19 | ... += ... | -| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [false] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:108:13:109:24 | After if (...) ... | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:105:9:106:20 | After if (...) ... | +| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:20 | Before access to property Length | +| Conditions.cs:107:13:107:20 | After access to property Length | Conditions.cs:107:13:107:20 | access to property Length | +| Conditions.cs:107:13:107:20 | Before access to property Length | Conditions.cs:107:13:107:24 | Before ... > ... | | Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:13:107:13 | access to local variable x | | Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:24:107:24 | 0 | -| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:20 | access to property Length | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:24 | ...; | +| Conditions.cs:107:13:107:24 | Before ... > ... | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:20 | After access to property Length | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:108:17:108:18 | After !... [false] | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:109:17:109:24 | After ...; | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:13:109:24 | if (...) ... | +| Conditions.cs:108:17:108:18 | After !... [false] | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:108:17:108:18 | After !... [true] | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | !... | +| Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:23 | Before ... += ... | | Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:109:22:109:23 | "" | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:108:17:108:18 | [true] !... | +| Conditions.cs:109:17:109:23 | After ... += ... | Conditions.cs:109:17:109:23 | ... += ... | +| Conditions.cs:109:17:109:23 | Before ... += ... | Conditions.cs:109:17:109:24 | ...; | +| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:108:17:108:18 | After !... [true] | +| Conditions.cs:109:17:109:24 | After ...; | Conditions.cs:109:17:109:23 | After ... += ... | | Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:17 | access to local variable x | +| Conditions.cs:110:9:110:17 | Before return ...; | Conditions.cs:107:9:109:24 | After if (...) ... | | Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:110:16:110:16 | access to local variable x | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:13:107:24 | ... > ... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:109:17:109:23 | ... += ... | -| Conditions.cs:113:10:113:11 | exit M9 | Conditions.cs:113:10:113:11 | exit M9 (normal) | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:116:25:116:39 | ... < ... | -| Conditions.cs:114:5:124:5 | {...} | Conditions.cs:113:10:113:11 | enter M9 | +| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:9:110:17 | Before return ...; | +| Conditions.cs:113:10:113:11 | Exit | Conditions.cs:113:10:113:11 | Normal Exit | +| Conditions.cs:113:10:113:11 | Normal Exit | Conditions.cs:114:5:124:5 | After {...} | +| Conditions.cs:114:5:124:5 | After {...} | Conditions.cs:116:9:123:9 | After for (...;...;...) ... | +| Conditions.cs:114:5:124:5 | {...} | Conditions.cs:113:10:113:11 | Entry | | Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:114:5:124:5 | {...} | +| Conditions.cs:115:9:115:24 | After ... ...; | Conditions.cs:115:16:115:23 | After String s = ... | +| Conditions.cs:115:16:115:16 | access to local variable s | Conditions.cs:115:16:115:23 | Before String s = ... | +| Conditions.cs:115:16:115:23 | After String s = ... | Conditions.cs:115:16:115:23 | String s = ... | +| Conditions.cs:115:16:115:23 | Before String s = ... | Conditions.cs:115:9:115:24 | ... ...; | | Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:115:20:115:23 | null | -| Conditions.cs:115:20:115:23 | null | Conditions.cs:115:9:115:24 | ... ...; | -| Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:115:16:115:23 | String s = ... | +| Conditions.cs:115:20:115:23 | null | Conditions.cs:115:16:115:16 | access to local variable s | +| Conditions.cs:116:9:123:9 | After for (...;...;...) ... | Conditions.cs:116:25:116:39 | After ... < ... [false] | +| Conditions.cs:116:9:123:9 | [LoopHeader] for (...;...;...) ... | Conditions.cs:117:9:123:9 | After {...} | +| Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:115:9:115:24 | After ... ...; | +| Conditions.cs:116:18:116:18 | access to local variable i | Conditions.cs:116:18:116:22 | Before Int32 i = ... | +| Conditions.cs:116:18:116:22 | After Int32 i = ... | Conditions.cs:116:18:116:22 | Int32 i = ... | +| Conditions.cs:116:18:116:22 | Before Int32 i = ... | Conditions.cs:116:9:123:9 | for (...;...;...) ... | | Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:22:116:22 | 0 | -| Conditions.cs:116:22:116:22 | 0 | Conditions.cs:116:9:123:9 | for (...;...;...) ... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:18:116:22 | Int32 i = ... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:42:116:44 | ...++ | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:29:116:39 | access to property Length | -| Conditions.cs:116:29:116:32 | access to parameter args | Conditions.cs:116:25:116:25 | access to local variable i | +| Conditions.cs:116:22:116:22 | 0 | Conditions.cs:116:18:116:18 | access to local variable i | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:39 | Before ... < ... | +| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:29:116:39 | After access to property Length | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:116:25:116:39 | ... < ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:18:116:22 | After Int32 i = ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:42:116:44 | After ...++ | +| Conditions.cs:116:29:116:32 | access to parameter args | Conditions.cs:116:29:116:39 | Before access to property Length | +| Conditions.cs:116:29:116:39 | After access to property Length | Conditions.cs:116:29:116:39 | access to property Length | +| Conditions.cs:116:29:116:39 | Before access to property Length | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:116:29:116:32 | access to parameter args | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:121:17:121:20 | access to local variable last | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:122:17:122:24 | ... = ... | +| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:44 | Before ...++ | | Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:116:42:116:42 | access to local variable i | +| Conditions.cs:116:42:116:44 | After ...++ | Conditions.cs:116:42:116:44 | ...++ | +| Conditions.cs:116:42:116:44 | Before ...++ | Conditions.cs:116:9:123:9 | [LoopHeader] for (...;...;...) ... | +| Conditions.cs:117:9:123:9 | After {...} | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:116:25:116:39 | After ... < ... [true] | | Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:118:24:118:43 | ... == ... | -| Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:13:118:44 | ... ...; | -| Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:29:118:43 | ... - ... | -| Conditions.cs:118:29:118:32 | access to parameter args | Conditions.cs:118:24:118:24 | access to local variable i | +| Conditions.cs:118:13:118:44 | After ... ...; | Conditions.cs:118:17:118:43 | After Boolean last = ... | +| Conditions.cs:118:17:118:20 | access to local variable last | Conditions.cs:118:17:118:43 | Before Boolean last = ... | +| Conditions.cs:118:17:118:43 | After Boolean last = ... | Conditions.cs:118:17:118:43 | Boolean last = ... | +| Conditions.cs:118:17:118:43 | Before Boolean last = ... | Conditions.cs:118:13:118:44 | ... ...; | +| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:118:24:118:43 | After ... == ... | +| Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:24:118:43 | Before ... == ... | +| Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:29:118:43 | After ... - ... | +| Conditions.cs:118:24:118:43 | After ... == ... | Conditions.cs:118:24:118:43 | ... == ... | +| Conditions.cs:118:24:118:43 | Before ... == ... | Conditions.cs:118:17:118:20 | access to local variable last | +| Conditions.cs:118:29:118:32 | access to parameter args | Conditions.cs:118:29:118:39 | Before access to property Length | +| Conditions.cs:118:29:118:39 | After access to property Length | Conditions.cs:118:29:118:39 | access to property Length | +| Conditions.cs:118:29:118:39 | Before access to property Length | Conditions.cs:118:29:118:43 | Before ... - ... | | Conditions.cs:118:29:118:39 | access to property Length | Conditions.cs:118:29:118:32 | access to parameter args | | Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:43:118:43 | 1 | -| Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:29:118:39 | access to property Length | -| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:118:17:118:43 | Boolean last = ... | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:13:120:23 | if (...) ... | +| Conditions.cs:118:29:118:43 | After ... - ... | Conditions.cs:118:29:118:43 | ... - ... | +| Conditions.cs:118:29:118:43 | Before ... - ... | Conditions.cs:118:24:118:24 | access to local variable i | +| Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:29:118:39 | After access to property Length | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:119:17:119:21 | After !... [false] | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:120:17:120:23 | After ...; | +| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:118:13:118:44 | After ... ...; | +| Conditions.cs:119:17:119:21 | !... | Conditions.cs:119:13:120:23 | if (...) ... | +| Conditions.cs:119:17:119:21 | After !... [false] | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:119:17:119:21 | After !... [true] | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | !... | +| Conditions.cs:120:17:120:17 | access to local variable s | Conditions.cs:120:17:120:22 | Before ... = ... | | Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:120:21:120:22 | "" | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:120:17:120:22 | ... = ... | +| Conditions.cs:120:17:120:22 | After ... = ... | Conditions.cs:120:17:120:22 | ... = ... | +| Conditions.cs:120:17:120:22 | Before ... = ... | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:119:17:119:21 | After !... [true] | +| Conditions.cs:120:17:120:23 | After ...; | Conditions.cs:120:17:120:22 | After ... = ... | +| Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:17:120:17 | access to local variable s | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:122:17:122:25 | After ...; | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:119:13:120:23 | After if (...) ... | | Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:13:122:25 | if (...) ... | +| Conditions.cs:122:17:122:17 | access to local variable s | Conditions.cs:122:17:122:24 | Before ... = ... | | Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:122:21:122:24 | null | -| Conditions.cs:122:21:122:24 | null | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:130:5:141:5 | {...} | Conditions.cs:129:10:129:12 | enter M10 | +| Conditions.cs:122:17:122:24 | After ... = ... | Conditions.cs:122:17:122:24 | ... = ... | +| Conditions.cs:122:17:122:24 | Before ... = ... | Conditions.cs:122:17:122:25 | ...; | +| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:122:17:122:25 | After ...; | Conditions.cs:122:17:122:24 | After ... = ... | +| Conditions.cs:122:21:122:24 | null | Conditions.cs:122:17:122:17 | access to local variable s | +| Conditions.cs:130:5:141:5 | {...} | Conditions.cs:129:10:129:12 | Entry | | Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:130:5:141:5 | {...} | +| Conditions.cs:131:16:131:19 | After true [true] | Conditions.cs:131:16:131:19 | true | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | +| Conditions.cs:132:9:140:9 | After {...} | Conditions.cs:133:13:139:13 | After if (...) ... | +| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:131:16:131:19 | After true [true] | | Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:132:9:140:9 | {...} | +| Conditions.cs:133:17:133:22 | Before access to field Field1 | Conditions.cs:133:13:139:13 | if (...) ... | | Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | this access | -| Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:13:139:13 | if (...) ... | +| Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:17:133:22 | Before access to field Field1 | +| Conditions.cs:134:13:139:13 | After {...} | Conditions.cs:135:17:138:17 | After if (...) ... | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | | Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:135:21:135:26 | Before access to field Field2 | Conditions.cs:135:17:138:17 | if (...) ... | | Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | this access | -| Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:17:138:17 | if (...) ... | +| Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:21:135:26 | Before access to field Field2 | +| Conditions.cs:136:17:138:17 | After {...} | Conditions.cs:137:21:137:38 | After ...; | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | +| Conditions.cs:137:21:137:26 | After access to field Field1 | Conditions.cs:137:21:137:26 | access to field Field1 | +| Conditions.cs:137:21:137:26 | Before access to field Field1 | Conditions.cs:137:21:137:37 | Before call to method ToString | | Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:26 | this access | -| Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:38 | ...; | -| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:137:21:137:26 | access to field Field1 | +| Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:26 | Before access to field Field1 | +| Conditions.cs:137:21:137:37 | After call to method ToString | Conditions.cs:137:21:137:37 | call to method ToString | +| Conditions.cs:137:21:137:37 | Before call to method ToString | Conditions.cs:137:21:137:38 | ...; | +| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:137:21:137:26 | After access to field Field1 | | Conditions.cs:137:21:137:38 | ...; | Conditions.cs:136:17:138:17 | {...} | -| Conditions.cs:143:10:143:12 | exit M11 | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:147:13:147:48 | call to method WriteLine | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:149:13:149:48 | call to method WriteLine | -| Conditions.cs:144:5:150:5 | {...} | Conditions.cs:143:10:143:12 | enter M11 | +| Conditions.cs:137:21:137:38 | After ...; | Conditions.cs:137:21:137:37 | After call to method ToString | +| Conditions.cs:143:10:143:12 | Exit | Conditions.cs:143:10:143:12 | Normal Exit | +| Conditions.cs:143:10:143:12 | Normal Exit | Conditions.cs:144:5:150:5 | After {...} | +| Conditions.cs:144:5:150:5 | After {...} | Conditions.cs:146:9:149:49 | After if (...) ... | +| Conditions.cs:144:5:150:5 | {...} | Conditions.cs:143:10:143:12 | Entry | | Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:144:5:150:5 | {...} | -| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:9:145:30 | ... ...; | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:21:145:23 | "a" | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:27:145:29 | "b" | -| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:145:13:145:29 | String s = ... | +| Conditions.cs:145:9:145:30 | After ... ...; | Conditions.cs:145:13:145:29 | After String s = ... | +| Conditions.cs:145:13:145:13 | access to local variable s | Conditions.cs:145:13:145:29 | Before String s = ... | +| Conditions.cs:145:13:145:29 | After String s = ... | Conditions.cs:145:13:145:29 | String s = ... | +| Conditions.cs:145:13:145:29 | Before String s = ... | Conditions.cs:145:9:145:30 | ... ...; | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:17:145:29 | After ... ? ... : ... | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:29 | ... ? ... : ... | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:13:145:13 | access to local variable s | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:27:145:29 | "b" | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:17:145:17 | After access to parameter b [true] | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:17:145:17 | After access to parameter b [false] | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:147:13:147:49 | After ...; | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:149:13:149:49 | After ...; | +| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:145:9:145:30 | After ... ...; | | Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:9:149:49 | if (...) ... | -| Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:147:38:147:47 | $"..." | -| Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:44:147:46 | {...} | -| Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:13:147:49 | ...; | +| Conditions.cs:147:13:147:48 | After call to method WriteLine | Conditions.cs:147:13:147:48 | call to method WriteLine | +| Conditions.cs:147:13:147:48 | Before call to method WriteLine | Conditions.cs:147:13:147:49 | ...; | +| Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:147:38:147:47 | After $"..." | +| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:146:13:146:13 | After access to parameter b [true] | +| Conditions.cs:147:13:147:49 | After ...; | Conditions.cs:147:13:147:48 | After call to method WriteLine | +| Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:44:147:46 | After {...} | +| Conditions.cs:147:38:147:47 | After $"..." | Conditions.cs:147:38:147:47 | $"..." | +| Conditions.cs:147:38:147:47 | Before $"..." | Conditions.cs:147:13:147:48 | Before call to method WriteLine | +| Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:38:147:47 | Before $"..." | +| Conditions.cs:147:44:147:46 | After {...} | Conditions.cs:147:44:147:46 | {...} | +| Conditions.cs:147:44:147:46 | Before {...} | Conditions.cs:147:40:147:43 | "a = " | | Conditions.cs:147:44:147:46 | {...} | Conditions.cs:147:45:147:45 | access to local variable s | -| Conditions.cs:147:45:147:45 | access to local variable s | Conditions.cs:147:40:147:43 | "a = " | -| Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:149:38:149:47 | $"..." | -| Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:44:149:46 | {...} | -| Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:13:149:49 | ...; | +| Conditions.cs:147:45:147:45 | access to local variable s | Conditions.cs:147:44:147:46 | Before {...} | +| Conditions.cs:149:13:149:48 | After call to method WriteLine | Conditions.cs:149:13:149:48 | call to method WriteLine | +| Conditions.cs:149:13:149:48 | Before call to method WriteLine | Conditions.cs:149:13:149:49 | ...; | +| Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:149:38:149:47 | After $"..." | +| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:146:13:146:13 | After access to parameter b [false] | +| Conditions.cs:149:13:149:49 | After ...; | Conditions.cs:149:13:149:48 | After call to method WriteLine | +| Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:44:149:46 | After {...} | +| Conditions.cs:149:38:149:47 | After $"..." | Conditions.cs:149:38:149:47 | $"..." | +| Conditions.cs:149:38:149:47 | Before $"..." | Conditions.cs:149:13:149:48 | Before call to method WriteLine | +| Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:38:149:47 | Before $"..." | +| Conditions.cs:149:44:149:46 | After {...} | Conditions.cs:149:44:149:46 | {...} | +| Conditions.cs:149:44:149:46 | Before {...} | Conditions.cs:149:40:149:43 | "b = " | | 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 | call to method | +| Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:44:149:46 | Before {...} | +| ExitMethods.cs:6:7:6:17 | After call to constructor Object | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | After call to method | ExitMethods.cs:6:7:6:17 | call to method | +| ExitMethods.cs:6:7:6:17 | Before call to constructor Object | ExitMethods.cs:6:7:6:17 | After call to method | +| ExitMethods.cs:6:7:6:17 | Before call to method | ExitMethods.cs:6:7:6:17 | Entry | +| ExitMethods.cs:6:7:6:17 | Exit | ExitMethods.cs:6:7:6:17 | Normal Exit | +| ExitMethods.cs:6:7:6:17 | Normal Exit | ExitMethods.cs:6:7:6:17 | {...} | +| ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | Before 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 | 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 ...; | -| ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:8:10:8:11 | enter M1 | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | Before call to method | +| ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | After call to constructor Object | +| ExitMethods.cs:8:10:8:11 | Exit | ExitMethods.cs:8:10:8:11 | Normal Exit | +| ExitMethods.cs:8:10:8:11 | Normal Exit | ExitMethods.cs:11:9:11:15 | return ...; | +| ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:8:10:8:11 | Entry | +| ExitMethods.cs:10:9:10:24 | After call to method ErrorMaybe | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | +| ExitMethods.cs:10:9:10:24 | Before call to method ErrorMaybe | ExitMethods.cs:10:9:10:25 | ...; | | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:10:20:10:23 | true | | ExitMethods.cs:10:9:10:25 | ...; | ExitMethods.cs:9:5:12:5 | {...} | -| ExitMethods.cs:10:20:10:23 | true | ExitMethods.cs:10:9:10:25 | ...; | -| ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | -| ExitMethods.cs:14:10:14:11 | exit M2 | ExitMethods.cs:14:10:14:11 | exit M2 (normal) | -| ExitMethods.cs:14:10:14:11 | exit M2 (normal) | ExitMethods.cs:17:9:17:15 | return ...; | -| ExitMethods.cs:15:5:18:5 | {...} | ExitMethods.cs:14:10:14:11 | enter M2 | +| ExitMethods.cs:10:9:10:25 | After ...; | ExitMethods.cs:10:9:10:24 | After call to method ErrorMaybe | +| ExitMethods.cs:10:20:10:23 | true | ExitMethods.cs:10:9:10:24 | Before call to method ErrorMaybe | +| ExitMethods.cs:11:9:11:15 | Before return ...; | ExitMethods.cs:10:9:10:25 | After ...; | +| ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:11:9:11:15 | Before return ...; | +| ExitMethods.cs:14:10:14:11 | Exit | ExitMethods.cs:14:10:14:11 | Normal Exit | +| ExitMethods.cs:14:10:14:11 | Normal Exit | ExitMethods.cs:17:9:17:15 | return ...; | +| ExitMethods.cs:15:5:18:5 | {...} | ExitMethods.cs:14:10:14:11 | Entry | +| ExitMethods.cs:16:9:16:25 | After call to method ErrorMaybe | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | +| ExitMethods.cs:16:9:16:25 | Before call to method ErrorMaybe | ExitMethods.cs:16:9:16:26 | ...; | | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | ExitMethods.cs:16:20:16:24 | false | | ExitMethods.cs:16:9:16:26 | ...; | ExitMethods.cs:15:5:18:5 | {...} | -| ExitMethods.cs:16:20:16:24 | false | ExitMethods.cs:16:9:16:26 | ...; | -| ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | -| ExitMethods.cs:20:10:20:11 | exit M3 | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | -| ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | -| ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:20:10:20:11 | enter M3 | +| ExitMethods.cs:16:9:16:26 | After ...; | ExitMethods.cs:16:9:16:25 | After call to method ErrorMaybe | +| ExitMethods.cs:16:20:16:24 | false | ExitMethods.cs:16:9:16:25 | Before call to method ErrorMaybe | +| ExitMethods.cs:17:9:17:15 | Before return ...; | ExitMethods.cs:16:9:16:26 | After ...; | +| ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:17:9:17:15 | Before return ...; | +| ExitMethods.cs:20:10:20:11 | Exceptional Exit | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | +| ExitMethods.cs:20:10:20:11 | Exit | ExitMethods.cs:20:10:20:11 | Exceptional Exit | +| ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:20:10:20:11 | Entry | +| ExitMethods.cs:22:9:22:25 | Before call to method ErrorAlways | ExitMethods.cs:22:9:22:26 | ...; | | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:22:21:22:24 | true | | ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:21:5:24:5 | {...} | -| ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:9:22:26 | ...; | -| ExitMethods.cs:26:10:26:11 | exit M4 | ExitMethods.cs:26:10:26:11 | exit M4 (abnormal) | -| ExitMethods.cs:26:10:26:11 | exit M4 (abnormal) | ExitMethods.cs:28:9:28:14 | call to method Exit | -| ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:26:10:26:11 | enter M4 | +| ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:9:22:25 | Before call to method ErrorAlways | +| ExitMethods.cs:26:10:26:11 | Exceptional Exit | ExitMethods.cs:28:9:28:14 | call to method Exit | +| ExitMethods.cs:26:10:26:11 | Exit | ExitMethods.cs:26:10:26:11 | Exceptional Exit | +| ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:26:10:26:11 | Entry | +| ExitMethods.cs:28:9:28:14 | Before call to method Exit | ExitMethods.cs:28:9:28:15 | ...; | | ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:28:9:28:14 | this access | -| ExitMethods.cs:28:9:28:14 | this access | ExitMethods.cs:28:9:28:15 | ...; | +| ExitMethods.cs:28:9:28:14 | this access | ExitMethods.cs:28:9:28:14 | Before call to method Exit | | ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:27:5:30:5 | {...} | -| ExitMethods.cs:32:10:32:11 | exit M5 | ExitMethods.cs:32:10:32:11 | exit M5 (abnormal) | -| ExitMethods.cs:32:10:32:11 | exit M5 (abnormal) | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | -| ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:32:10:32:11 | enter M5 | +| ExitMethods.cs:32:10:32:11 | Exceptional Exit | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | +| ExitMethods.cs:32:10:32:11 | Exit | ExitMethods.cs:32:10:32:11 | Exceptional Exit | +| ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:32:10:32:11 | Entry | +| ExitMethods.cs:34:9:34:25 | Before call to method ApplicationExit | ExitMethods.cs:34:9:34:26 | ...; | | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:34:9:34:25 | this access | -| ExitMethods.cs:34:9:34:25 | this access | ExitMethods.cs:34:9:34:26 | ...; | +| ExitMethods.cs:34:9:34:25 | this access | ExitMethods.cs:34:9:34:25 | Before call to method ApplicationExit | | ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:33:5:36:5 | {...} | -| ExitMethods.cs:38:10:38:11 | exit M6 | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:46:13:46:19 | return ...; | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:50:13:50:19 | return ...; | -| ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:38:10:38:11 | enter M6 | +| ExitMethods.cs:38:10:38:11 | Exceptional Exit | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:46:13:46:19 | return ...; | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:50:13:50:19 | return ...; | +| ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:38:10:38:11 | Entry | | ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:39:5:52:5 | {...} | | ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:40:9:51:9 | try {...} ... | +| ExitMethods.cs:42:13:42:30 | Before call to method ErrorAlways | ExitMethods.cs:42:13:42:31 | ...; | | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:42:25:42:29 | false | | ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:41:9:43:9 | {...} | -| ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:13:42:31 | ...; | +| ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:13:42:30 | Before call to method ErrorAlways | | ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | -| ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | -| ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:54:10:54:11 | exit M7 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | -| ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | -| ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:54:10:54:11 | enter M7 | -| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:56:9:56:23 | ...; | +| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | +| ExitMethods.cs:46:13:46:19 | Before return ...; | ExitMethods.cs:45:9:47:9 | {...} | +| ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:46:13:46:19 | Before return ...; | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:48:9:51:9 | catch (...) {...} | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | +| ExitMethods.cs:50:13:50:19 | Before return ...; | ExitMethods.cs:49:9:51:9 | {...} | +| ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:50:13:50:19 | Before return ...; | +| ExitMethods.cs:54:10:54:11 | Exceptional Exit | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | +| ExitMethods.cs:54:10:54:11 | Exit | ExitMethods.cs:54:10:54:11 | Exceptional Exit | +| ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:54:10:54:11 | Entry | +| ExitMethods.cs:56:9:56:22 | Before call to method ErrorAlways2 | ExitMethods.cs:56:9:56:23 | ...; | +| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:56:9:56:22 | Before call to method ErrorAlways2 | | ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:55:5:58:5 | {...} | -| ExitMethods.cs:60:10:60:11 | exit M8 | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | -| ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | -| ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:60:10:60:11 | enter M8 | -| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:62:9:62:23 | ...; | +| ExitMethods.cs:60:10:60:11 | Exceptional Exit | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | +| ExitMethods.cs:60:10:60:11 | Exit | ExitMethods.cs:60:10:60:11 | Exceptional Exit | +| ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:60:10:60:11 | Entry | +| ExitMethods.cs:62:9:62:22 | Before call to method ErrorAlways3 | ExitMethods.cs:62:9:62:23 | ...; | +| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:62:9:62:22 | Before call to method ErrorAlways3 | | ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:61:5:64:5 | {...} | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | ExitMethods.cs:69:13:69:34 | throw ...; | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:68:13:68:13 | access to parameter b | -| ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | +| ExitMethods.cs:66:17:66:26 | Exceptional Exit | ExitMethods.cs:69:13:69:34 | throw ...; | +| ExitMethods.cs:66:17:66:26 | Normal Exit | ExitMethods.cs:67:5:70:5 | After {...} | +| ExitMethods.cs:67:5:70:5 | After {...} | ExitMethods.cs:68:9:69:34 | After if (...) ... | +| ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:66:17:66:26 | Entry | +| ExitMethods.cs:68:9:69:34 | After if (...) ... | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | | ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:67:5:70:5 | {...} | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:68:13:68:13 | access to parameter b | | ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:9:69:34 | if (...) ... | -| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:69:19:69:33 | object creation of type Exception | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | -| ExitMethods.cs:73:5:78:5 | {...} | ExitMethods.cs:72:17:72:27 | enter ErrorAlways | +| ExitMethods.cs:69:13:69:34 | Before throw ...; | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | +| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:69:19:69:33 | After object creation of type Exception | +| ExitMethods.cs:69:19:69:33 | After object creation of type Exception | ExitMethods.cs:69:19:69:33 | object creation of type Exception | +| ExitMethods.cs:69:19:69:33 | Before object creation of type Exception | ExitMethods.cs:69:13:69:34 | Before throw ...; | +| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:19:69:33 | Before object creation of type Exception | +| ExitMethods.cs:72:17:72:27 | Exit | ExitMethods.cs:72:17:72:27 | Exceptional Exit | +| ExitMethods.cs:73:5:78:5 | {...} | ExitMethods.cs:72:17:72:27 | Entry | | ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:73:5:78:5 | {...} | | ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:9:77:45 | if (...) ... | -| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:75:19:75:33 | object creation of type Exception | -| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | +| ExitMethods.cs:75:13:75:34 | Before throw ...; | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | +| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:75:19:75:33 | After object creation of type Exception | +| ExitMethods.cs:75:19:75:33 | After object creation of type Exception | ExitMethods.cs:75:19:75:33 | object creation of type Exception | +| ExitMethods.cs:75:19:75:33 | Before object creation of type Exception | ExitMethods.cs:75:13:75:34 | Before throw ...; | +| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:19:75:33 | Before object creation of type Exception | +| ExitMethods.cs:77:13:77:45 | Before throw ...; | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | +| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:77:19:77:44 | After object creation of type ArgumentException | +| ExitMethods.cs:77:19:77:44 | After object creation of type ArgumentException | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | +| ExitMethods.cs:77:19:77:44 | Before object creation of type ArgumentException | ExitMethods.cs:77:13:77:45 | Before throw ...; | | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:41:77:43 | "b" | -| ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | -| ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | ExitMethods.cs:82:9:82:30 | throw ...; | -| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | -| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:82:15:82:29 | object creation of type Exception | -| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:81:5:83:5 | {...} | -| ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | -| ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | ExitMethods.cs:85:35:85:55 | throw ... | -| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:41:85:55 | object creation of type Exception | -| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | -| ExitMethods.cs:87:10:87:13 | exit Exit | ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | -| ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | ExitMethods.cs:89:9:89:27 | call to method Exit | -| ExitMethods.cs:88:5:90:5 | {...} | ExitMethods.cs:87:10:87:13 | enter Exit | +| ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:19:77:44 | Before object creation of type ArgumentException | +| ExitMethods.cs:80:17:80:28 | Exceptional Exit | ExitMethods.cs:82:9:82:30 | throw ...; | +| ExitMethods.cs:80:17:80:28 | Exit | ExitMethods.cs:80:17:80:28 | Exceptional Exit | +| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:80:17:80:28 | Entry | +| ExitMethods.cs:82:9:82:30 | Before throw ...; | ExitMethods.cs:81:5:83:5 | {...} | +| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:82:15:82:29 | After object creation of type Exception | +| ExitMethods.cs:82:15:82:29 | After object creation of type Exception | ExitMethods.cs:82:15:82:29 | object creation of type Exception | +| ExitMethods.cs:82:15:82:29 | Before object creation of type Exception | ExitMethods.cs:82:9:82:30 | Before throw ...; | +| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:15:82:29 | Before object creation of type Exception | +| ExitMethods.cs:85:17:85:28 | Exceptional Exit | ExitMethods.cs:85:35:85:55 | throw ... | +| ExitMethods.cs:85:17:85:28 | Exit | ExitMethods.cs:85:17:85:28 | Exceptional Exit | +| ExitMethods.cs:85:35:85:55 | Before throw ... | ExitMethods.cs:85:17:85:28 | Entry | +| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:41:85:55 | After object creation of type Exception | +| ExitMethods.cs:85:41:85:55 | After object creation of type Exception | ExitMethods.cs:85:41:85:55 | object creation of type Exception | +| ExitMethods.cs:85:41:85:55 | Before object creation of type Exception | ExitMethods.cs:85:35:85:55 | Before throw ... | +| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:41:85:55 | Before object creation of type Exception | +| ExitMethods.cs:87:10:87:13 | Exceptional Exit | ExitMethods.cs:89:9:89:27 | call to method Exit | +| ExitMethods.cs:87:10:87:13 | Exit | ExitMethods.cs:87:10:87:13 | Exceptional Exit | +| ExitMethods.cs:88:5:90:5 | {...} | ExitMethods.cs:87:10:87:13 | Entry | +| ExitMethods.cs:89:9:89:27 | Before call to method Exit | ExitMethods.cs:89:9:89:28 | ...; | | ExitMethods.cs:89:9:89:27 | call to method Exit | ExitMethods.cs:89:26:89:26 | 0 | | ExitMethods.cs:89:9:89:28 | ...; | ExitMethods.cs:88:5:90:5 | {...} | -| ExitMethods.cs:89:26:89:26 | 0 | ExitMethods.cs:89:9:89:28 | ...; | -| ExitMethods.cs:92:10:92:18 | exit ExitInTry | ExitMethods.cs:92:10:92:18 | exit ExitInTry (abnormal) | -| ExitMethods.cs:92:10:92:18 | exit ExitInTry (abnormal) | ExitMethods.cs:96:13:96:18 | call to method Exit | -| ExitMethods.cs:93:5:103:5 | {...} | ExitMethods.cs:92:10:92:18 | enter ExitInTry | +| ExitMethods.cs:89:26:89:26 | 0 | ExitMethods.cs:89:9:89:27 | Before call to method Exit | +| ExitMethods.cs:92:10:92:18 | Normal Exit | ExitMethods.cs:93:5:103:5 | After {...} | +| ExitMethods.cs:93:5:103:5 | After {...} | ExitMethods.cs:94:9:102:9 | After try {...} ... | +| ExitMethods.cs:93:5:103:5 | {...} | ExitMethods.cs:92:10:92:18 | Entry | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:99:9:102:9 | After {...} | | ExitMethods.cs:94:9:102:9 | try {...} ... | ExitMethods.cs:93:5:103:5 | {...} | | ExitMethods.cs:95:9:97:9 | {...} | ExitMethods.cs:94:9:102:9 | try {...} ... | +| ExitMethods.cs:96:13:96:18 | Before call to method Exit | ExitMethods.cs:96:13:96:19 | ...; | | ExitMethods.cs:96:13:96:18 | call to method Exit | ExitMethods.cs:96:13:96:18 | this access | -| ExitMethods.cs:96:13:96:18 | this access | ExitMethods.cs:96:13:96:19 | ...; | +| ExitMethods.cs:96:13:96:18 | this access | ExitMethods.cs:96:13:96:18 | Before call to method Exit | | ExitMethods.cs:96:13:96:19 | ...; | ExitMethods.cs:95:9:97:9 | {...} | -| ExitMethods.cs:105:10:105:24 | exit ApplicationExit | ExitMethods.cs:105:10:105:24 | exit ApplicationExit (abnormal) | -| ExitMethods.cs:105:10:105:24 | exit ApplicationExit (abnormal) | ExitMethods.cs:107:9:107:47 | call to method Exit | -| ExitMethods.cs:106:5:108:5 | {...} | ExitMethods.cs:105:10:105:24 | enter ApplicationExit | -| ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:107:9:107:48 | ...; | +| ExitMethods.cs:99:9:102:9 | After {...} | ExitMethods.cs:101:13:101:41 | After ...; | +| ExitMethods.cs:99:9:102:9 | {...} | ExitMethods.cs:96:13:96:18 | call to method Exit | +| ExitMethods.cs:101:13:101:40 | After call to method WriteLine | ExitMethods.cs:101:13:101:40 | call to method WriteLine | +| ExitMethods.cs:101:13:101:40 | Before call to method WriteLine | ExitMethods.cs:101:13:101:41 | ...; | +| ExitMethods.cs:101:13:101:40 | call to method WriteLine | ExitMethods.cs:101:38:101:39 | "" | +| ExitMethods.cs:101:13:101:41 | ...; | ExitMethods.cs:99:9:102:9 | {...} | +| ExitMethods.cs:101:13:101:41 | After ...; | ExitMethods.cs:101:13:101:40 | After call to method WriteLine | +| ExitMethods.cs:101:38:101:39 | "" | ExitMethods.cs:101:13:101:40 | Before call to method WriteLine | +| ExitMethods.cs:105:10:105:24 | Exceptional Exit | ExitMethods.cs:107:9:107:47 | call to method Exit | +| ExitMethods.cs:105:10:105:24 | Exit | ExitMethods.cs:105:10:105:24 | Exceptional Exit | +| ExitMethods.cs:106:5:108:5 | {...} | ExitMethods.cs:105:10:105:24 | Entry | +| ExitMethods.cs:107:9:107:47 | Before call to method Exit | ExitMethods.cs:107:9:107:48 | ...; | +| ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:107:9:107:47 | Before call to method Exit | | ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:106:5:108:5 | {...} | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | ExitMethods.cs:112:41:112:76 | throw ... | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr (normal) | ExitMethods.cs:112:9:112:77 | return ...; | -| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:110:13:110:21 | enter ThrowExpr | -| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | -| ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:111:5:113:5 | {...} | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:25:112:25 | (...) ... | -| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:29:112:37 | ... / ... | -| ExitMethods.cs:112:25:112:25 | 0 | ExitMethods.cs:112:16:112:20 | access to parameter input | +| ExitMethods.cs:110:13:110:21 | Exceptional Exit | ExitMethods.cs:112:41:112:76 | throw ... | +| ExitMethods.cs:110:13:110:21 | Normal Exit | ExitMethods.cs:112:9:112:77 | return ...; | +| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:110:13:110:21 | Entry | +| ExitMethods.cs:112:9:112:77 | Before return ...; | ExitMethods.cs:111:5:113:5 | {...} | +| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:112:16:112:76 | After ... ? ... : ... | +| ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:112:16:112:25 | Before ... != ... | +| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:25:112:25 | After (...) ... | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:112:16:112:25 | ... != ... | +| ExitMethods.cs:112:16:112:25 | Before ... != ... | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | +| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:9:112:77 | Before return ...; | +| ExitMethods.cs:112:16:112:76 | After ... ? ... : ... | ExitMethods.cs:112:29:112:37 | After ... / ... | +| ExitMethods.cs:112:25:112:25 | 0 | ExitMethods.cs:112:25:112:25 | Before (...) ... | | ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:112:25:112:25 | 0 | -| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:16:112:25 | ... != ... | +| ExitMethods.cs:112:25:112:25 | After (...) ... | ExitMethods.cs:112:25:112:25 | (...) ... | +| ExitMethods.cs:112:25:112:25 | Before (...) ... | ExitMethods.cs:112:16:112:20 | access to parameter input | +| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:29:112:29 | Before (...) ... | | ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:29:112:29 | 1 | +| ExitMethods.cs:112:29:112:29 | After (...) ... | ExitMethods.cs:112:29:112:29 | (...) ... | +| ExitMethods.cs:112:29:112:29 | Before (...) ... | ExitMethods.cs:112:29:112:37 | Before ... / ... | | ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:33:112:37 | access to parameter input | -| ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:112:29:112:29 | (...) ... | -| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | +| ExitMethods.cs:112:29:112:37 | After ... / ... | ExitMethods.cs:112:29:112:37 | ... / ... | +| ExitMethods.cs:112:29:112:37 | Before ... / ... | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | +| ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:112:29:112:29 | After (...) ... | +| ExitMethods.cs:112:41:112:76 | Before throw ... | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | +| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:112:47:112:76 | After object creation of type ArgumentException | +| ExitMethods.cs:112:47:112:76 | After object creation of type ArgumentException | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | +| ExitMethods.cs:112:47:112:76 | Before object creation of type ArgumentException | ExitMethods.cs:112:41:112:76 | Before throw ... | | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:69:112:75 | "input" | -| ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall | ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall (normal) | -| ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall (normal) | ExitMethods.cs:117:9:117:39 | return ...; | -| ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | -| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | -| ExitMethods.cs:117:16:117:16 | access to parameter s | ExitMethods.cs:116:5:118:5 | {...} | +| ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:47:112:76 | Before object creation of type ArgumentException | +| ExitMethods.cs:115:16:115:34 | Exit | ExitMethods.cs:115:16:115:34 | Normal Exit | +| ExitMethods.cs:115:16:115:34 | Normal Exit | ExitMethods.cs:117:9:117:39 | return ...; | +| ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:115:16:115:34 | Entry | +| ExitMethods.cs:117:9:117:39 | Before return ...; | ExitMethods.cs:116:5:118:5 | {...} | +| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | +| ExitMethods.cs:117:16:117:16 | access to parameter s | ExitMethods.cs:117:16:117:30 | Before call to method Contains | +| ExitMethods.cs:117:16:117:30 | Before call to method Contains | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | | ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:27:117:29 | - | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:34:117:34 | 0 | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:38:117:38 | 1 | +| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:9:117:39 | Before return ...; | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:34:117:34 | 0 | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:38:117:38 | 1 | | ExitMethods.cs:117:27:117:29 | - | ExitMethods.cs:117:16:117:16 | access to parameter s | -| ExitMethods.cs:120:17:120:32 | exit FailingAssertion | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | -| ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:122:9:122:28 | call to method IsTrue | -| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:120:17:120:32 | enter FailingAssertion | +| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | +| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | +| ExitMethods.cs:120:17:120:32 | Exceptional Exit | ExitMethods.cs:122:9:122:28 | call to method IsTrue | +| ExitMethods.cs:120:17:120:32 | Exit | ExitMethods.cs:120:17:120:32 | Exceptional Exit | +| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:120:17:120:32 | Entry | +| ExitMethods.cs:122:9:122:28 | Before call to method IsTrue | ExitMethods.cs:122:9:122:29 | ...; | | ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:122:23:122:27 | false | | ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:121:5:124:5 | {...} | -| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:29 | ...; | -| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | -| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | -| ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | +| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | Before call to method IsTrue | +| ExitMethods.cs:126:17:126:33 | Exceptional Exit | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | +| ExitMethods.cs:126:17:126:33 | Exit | ExitMethods.cs:126:17:126:33 | Exceptional Exit | +| ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:126:17:126:33 | Entry | +| ExitMethods.cs:128:9:128:26 | Before call to method FailingAssertion | ExitMethods.cs:128:9:128:27 | ...; | | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:128:9:128:26 | this access | -| ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:27 | ...; | +| ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:26 | Before call to method FailingAssertion | | ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:127:5:130:5 | {...} | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:33:132:49 | call to method IsFalse | +| ExitMethods.cs:132:10:132:20 | Normal Exit | ExitMethods.cs:132:33:132:49 | After call to method IsFalse | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:33:132:49 | call to method IsFalse | +| ExitMethods.cs:132:33:132:49 | Before call to method IsFalse | ExitMethods.cs:132:10:132:20 | Entry | | ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | -| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:10:132:20 | enter AssertFalse | -| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | -| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | -| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | +| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | Before call to method IsFalse | +| ExitMethods.cs:134:17:134:33 | Exceptional Exit | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | +| ExitMethods.cs:134:17:134:33 | Exit | ExitMethods.cs:134:17:134:33 | Exceptional Exit | +| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:134:17:134:33 | Entry | +| ExitMethods.cs:136:9:136:25 | Before call to method AssertFalse | ExitMethods.cs:136:9:136:26 | ...; | | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:136:21:136:24 | true | -| ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:9:136:26 | ...; | +| ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:9:136:25 | Before call to method AssertFalse | | ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:135:5:138:5 | {...} | | ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | this access | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | -| ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | +| ExitMethods.cs:140:17:140:42 | Exit | ExitMethods.cs:140:17:140:42 | Exceptional Exit | +| ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:140:17:140:42 | Entry | | ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:141:5:147:5 | {...} | | ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:9:145:53 | if (...) ... | +| ExitMethods.cs:143:13:143:42 | Before call to method Throw | ExitMethods.cs:143:13:143:43 | ...; | | ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:143:41:143:41 | access to parameter e | -| ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:143:13:143:43 | ...; | +| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | +| ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:143:13:143:42 | Before call to method Throw | +| ExitMethods.cs:145:13:145:44 | After call to method Capture | ExitMethods.cs:145:13:145:44 | call to method Capture | +| ExitMethods.cs:145:13:145:44 | Before call to method Capture | ExitMethods.cs:145:13:145:52 | Before call to method Throw | | ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:43:145:43 | access to parameter e | -| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:145:13:145:44 | call to method Capture | -| ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:13:145:53 | ...; | -| Extensions.cs:5:23:5:29 | exit ToInt32 | Extensions.cs:5:23:5:29 | exit ToInt32 (normal) | -| Extensions.cs:5:23:5:29 | exit ToInt32 (normal) | Extensions.cs:7:9:7:30 | return ...; | -| Extensions.cs:6:5:8:5 | {...} | Extensions.cs:5:23:5:29 | enter ToInt32 | -| Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:7:16:7:29 | call to method Parse | +| ExitMethods.cs:145:13:145:52 | Before call to method Throw | ExitMethods.cs:145:13:145:53 | ...; | +| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:145:13:145:44 | After call to method Capture | +| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | +| ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:13:145:44 | Before call to method Capture | +| Extensions.cs:5:23:5:29 | Exit | Extensions.cs:5:23:5:29 | Normal Exit | +| Extensions.cs:5:23:5:29 | Normal Exit | Extensions.cs:7:9:7:30 | return ...; | +| Extensions.cs:6:5:8:5 | {...} | Extensions.cs:5:23:5:29 | Entry | +| Extensions.cs:7:9:7:30 | Before return ...; | Extensions.cs:6:5:8:5 | {...} | +| Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:7:16:7:29 | After call to method Parse | +| Extensions.cs:7:16:7:29 | After call to method Parse | Extensions.cs:7:16:7:29 | call to method Parse | +| Extensions.cs:7:16:7:29 | Before call to method Parse | Extensions.cs:7:9:7:30 | Before return ...; | | Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:7:28:7:28 | access to parameter s | -| Extensions.cs:7:28:7:28 | access to parameter s | Extensions.cs:6:5:8:5 | {...} | -| Extensions.cs:10:24:10:29 | exit ToBool | Extensions.cs:10:24:10:29 | exit ToBool (normal) | -| Extensions.cs:10:24:10:29 | exit ToBool (normal) | Extensions.cs:12:9:12:20 | return ...; | -| Extensions.cs:11:5:13:5 | {...} | Extensions.cs:10:24:10:29 | enter ToBool | -| Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:12:16:12:19 | delegate call | -| Extensions.cs:12:16:12:16 | access to parameter f | Extensions.cs:11:5:13:5 | {...} | +| Extensions.cs:7:28:7:28 | access to parameter s | Extensions.cs:7:16:7:29 | Before call to method Parse | +| Extensions.cs:10:24:10:29 | Exit | Extensions.cs:10:24:10:29 | Normal Exit | +| Extensions.cs:10:24:10:29 | Normal Exit | Extensions.cs:12:9:12:20 | return ...; | +| Extensions.cs:11:5:13:5 | {...} | Extensions.cs:10:24:10:29 | Entry | +| Extensions.cs:12:9:12:20 | Before return ...; | Extensions.cs:11:5:13:5 | {...} | +| Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:12:16:12:19 | After delegate call | +| Extensions.cs:12:16:12:16 | access to parameter f | Extensions.cs:12:16:12:19 | Before delegate call | +| Extensions.cs:12:16:12:19 | After delegate call | Extensions.cs:12:16:12:19 | delegate call | +| Extensions.cs:12:16:12:19 | Before delegate call | Extensions.cs:12:9:12:20 | Before return ...; | | Extensions.cs:12:16:12:19 | delegate call | Extensions.cs:12:18:12:18 | access to parameter s | | Extensions.cs:12:18:12:18 | access to parameter s | Extensions.cs:12:16:12:16 | access to parameter f | -| Extensions.cs:15:23:15:33 | exit CallToInt32 | Extensions.cs:15:23:15:33 | exit CallToInt32 (normal) | -| Extensions.cs:15:23:15:33 | exit CallToInt32 (normal) | Extensions.cs:15:40:15:51 | call to method ToInt32 | +| Extensions.cs:15:23:15:33 | Exit | Extensions.cs:15:23:15:33 | Normal Exit | +| Extensions.cs:15:23:15:33 | Normal Exit | Extensions.cs:15:40:15:51 | After call to method ToInt32 | +| Extensions.cs:15:40:15:51 | After call to method ToInt32 | Extensions.cs:15:40:15:51 | call to method ToInt32 | +| Extensions.cs:15:40:15:51 | Before call to method ToInt32 | Extensions.cs:15:23:15:33 | Entry | | Extensions.cs:15:40:15:51 | call to method ToInt32 | Extensions.cs:15:48:15:50 | "0" | -| Extensions.cs:15:48:15:50 | "0" | Extensions.cs:15:23:15:33 | enter CallToInt32 | -| Extensions.cs:20:17:20:20 | exit Main | Extensions.cs:20:17:20:20 | exit Main (normal) | -| Extensions.cs:20:17:20:20 | exit Main (normal) | Extensions.cs:25:9:25:33 | call to method ToBool | -| Extensions.cs:21:5:26:5 | {...} | Extensions.cs:20:17:20:20 | enter Main | -| Extensions.cs:22:9:22:9 | access to parameter s | Extensions.cs:22:9:22:20 | ...; | +| Extensions.cs:15:48:15:50 | "0" | Extensions.cs:15:40:15:51 | Before call to method ToInt32 | +| Extensions.cs:20:17:20:20 | Exit | Extensions.cs:20:17:20:20 | Normal Exit | +| Extensions.cs:20:17:20:20 | Normal Exit | Extensions.cs:21:5:26:5 | After {...} | +| Extensions.cs:21:5:26:5 | After {...} | Extensions.cs:25:9:25:34 | After ...; | +| Extensions.cs:21:5:26:5 | {...} | Extensions.cs:20:17:20:20 | Entry | +| Extensions.cs:22:9:22:9 | access to parameter s | Extensions.cs:22:9:22:19 | Before call to method ToInt32 | +| Extensions.cs:22:9:22:19 | After call to method ToInt32 | Extensions.cs:22:9:22:19 | call to method ToInt32 | +| Extensions.cs:22:9:22:19 | Before call to method ToInt32 | Extensions.cs:22:9:22:20 | ...; | | Extensions.cs:22:9:22:19 | call to method ToInt32 | Extensions.cs:22:9:22:9 | access to parameter s | | Extensions.cs:22:9:22:20 | ...; | Extensions.cs:21:5:26:5 | {...} | +| Extensions.cs:22:9:22:20 | After ...; | Extensions.cs:22:9:22:19 | After call to method ToInt32 | +| Extensions.cs:23:9:23:30 | After call to method ToInt32 | Extensions.cs:23:9:23:30 | call to method ToInt32 | +| Extensions.cs:23:9:23:30 | Before call to method ToInt32 | Extensions.cs:23:9:23:31 | ...; | | Extensions.cs:23:9:23:30 | call to method ToInt32 | Extensions.cs:23:28:23:29 | "" | -| Extensions.cs:23:9:23:31 | ...; | Extensions.cs:22:9:22:19 | call to method ToInt32 | -| Extensions.cs:23:28:23:29 | "" | Extensions.cs:23:9:23:31 | ...; | -| Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:24:35:24:44 | delegate creation of type Func | -| Extensions.cs:24:9:24:46 | ...; | Extensions.cs:23:9:23:30 | call to method ToInt32 | -| Extensions.cs:24:27:24:32 | "true" | Extensions.cs:24:9:24:46 | ...; | -| Extensions.cs:24:35:24:44 | access to method Parse | Extensions.cs:24:27:24:32 | "true" | +| Extensions.cs:23:9:23:31 | ...; | Extensions.cs:22:9:22:20 | After ...; | +| Extensions.cs:23:9:23:31 | After ...; | Extensions.cs:23:9:23:30 | After call to method ToInt32 | +| Extensions.cs:23:28:23:29 | "" | Extensions.cs:23:9:23:30 | Before call to method ToInt32 | +| Extensions.cs:24:9:24:45 | After call to method ToBool | Extensions.cs:24:9:24:45 | call to method ToBool | +| Extensions.cs:24:9:24:45 | Before call to method ToBool | Extensions.cs:24:9:24:46 | ...; | +| Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:24:35:24:44 | After delegate creation of type Func | +| Extensions.cs:24:9:24:46 | ...; | Extensions.cs:23:9:23:31 | After ...; | +| Extensions.cs:24:9:24:46 | After ...; | Extensions.cs:24:9:24:45 | After call to method ToBool | +| Extensions.cs:24:27:24:32 | "true" | Extensions.cs:24:9:24:45 | Before call to method ToBool | +| Extensions.cs:24:35:24:44 | After delegate creation of type Func | Extensions.cs:24:35:24:44 | delegate creation of type Func | +| Extensions.cs:24:35:24:44 | Before delegate creation of type Func | Extensions.cs:24:27:24:32 | "true" | +| Extensions.cs:24:35:24:44 | access to method Parse | Extensions.cs:24:35:24:44 | Before delegate creation of type Func | | Extensions.cs:24:35:24:44 | delegate creation of type Func | Extensions.cs:24:35:24:44 | access to method Parse | -| Extensions.cs:25:9:25:14 | "true" | Extensions.cs:25:9:25:34 | ...; | -| Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:25:23:25:32 | delegate creation of type Func | -| 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:9:25:14 | "true" | Extensions.cs:25:9:25:33 | Before call to method ToBool | +| Extensions.cs:25:9:25:33 | After call to method ToBool | Extensions.cs:25:9:25:33 | call to method ToBool | +| Extensions.cs:25:9:25:33 | Before call to method ToBool | Extensions.cs:25:9:25:34 | ...; | +| Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:25:23:25:32 | After delegate creation of type Func | +| Extensions.cs:25:9:25:34 | ...; | Extensions.cs:24:9:24:46 | After ...; | +| Extensions.cs:25:9:25:34 | After ...; | Extensions.cs:25:9:25:33 | After call to method ToBool | +| Extensions.cs:25:23:25:32 | After delegate creation of type Func | Extensions.cs:25:23:25:32 | delegate creation of type Func | +| Extensions.cs:25:23:25:32 | Before delegate creation of type Func | Extensions.cs:25:9:25:14 | "true" | +| Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | Before delegate creation of type Func | | 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 method | +| Finally.cs:3:14:3:20 | After call to constructor Object | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | After call to method | Finally.cs:3:14:3:20 | call to method | +| Finally.cs:3:14:3:20 | Before call to constructor Object | Finally.cs:3:14:3:20 | After call to method | +| Finally.cs:3:14:3:20 | Before call to method | Finally.cs:3:14:3:20 | Entry | +| Finally.cs:3:14:3:20 | Exit | Finally.cs:3:14:3:20 | Normal Exit | +| Finally.cs:3:14:3:20 | Normal Exit | Finally.cs:3:14:3:20 | {...} | +| Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | Before 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 | 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 | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | Before call to method | +| Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | After call to constructor Object | +| Finally.cs:7:10:7:11 | Normal Exit | Finally.cs:8:5:17:5 | After {...} | +| Finally.cs:8:5:17:5 | After {...} | Finally.cs:9:9:16:9 | After try {...} ... | +| Finally.cs:8:5:17:5 | {...} | Finally.cs:7:10:7:11 | Entry | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:14:9:16:9 | After {...} | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:8:5:17:5 | {...} | +| Finally.cs:10:9:12:9 | After {...} | Finally.cs:11:13:11:38 | After ...; | | Finally.cs:10:9:12:9 | {...} | Finally.cs:9:9:16:9 | try {...} ... | +| Finally.cs:11:13:11:37 | Before call to method WriteLine | Finally.cs:11:13:11:38 | ...; | | Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:11:31:11:36 | "Try1" | | Finally.cs:11:13:11:38 | ...; | Finally.cs:10:9:12:9 | {...} | -| Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:38 | ...; | +| Finally.cs:11:13:11:38 | After ...; | Finally.cs:11:13:11:37 | After call to method WriteLine | +| Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:37 | Before call to method WriteLine | +| Finally.cs:14:9:16:9 | After {...} | Finally.cs:15:13:15:41 | After ...; | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:10:9:12:9 | After {...} | | Finally.cs:14:9:16:9 | {...} | Finally.cs:11:13:11:37 | call to method WriteLine | +| Finally.cs:15:13:15:40 | After call to method WriteLine | Finally.cs:15:13:15:40 | call to method WriteLine | +| Finally.cs:15:13:15:40 | Before call to method WriteLine | Finally.cs:15:13:15:41 | ...; | | Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:15:31:15:39 | "Finally" | | Finally.cs:15:13:15:41 | ...; | Finally.cs:14:9:16:9 | {...} | -| Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:41 | ...; | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:50:13:50:40 | call to method WriteLine | -| Finally.cs:20:5:52:5 | {...} | Finally.cs:19:10:19:11 | enter M2 | +| Finally.cs:15:13:15:41 | After ...; | Finally.cs:15:13:15:40 | After call to method WriteLine | +| Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:40 | Before call to method WriteLine | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:20:5:52:5 | After {...} | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:49:9:51:9 | After {...} | +| Finally.cs:20:5:52:5 | After {...} | Finally.cs:21:9:51:9 | After try {...} ... | +| Finally.cs:20:5:52:5 | {...} | Finally.cs:19:10:19:11 | Entry | | Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:20:5:52:5 | {...} | | Finally.cs:22:9:25:9 | {...} | Finally.cs:21:9:51:9 | try {...} ... | +| Finally.cs:23:13:23:37 | Before call to method WriteLine | Finally.cs:23:13:23:38 | ...; | | Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:23:31:23:36 | "Try2" | | Finally.cs:23:13:23:38 | ...; | Finally.cs:22:9:25:9 | {...} | -| Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:13:23:38 | ...; | +| Finally.cs:23:13:23:38 | After ...; | Finally.cs:23:13:23:37 | After call to method WriteLine | +| Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:13:23:37 | Before call to method WriteLine | +| Finally.cs:24:13:24:19 | Before return ...; | Finally.cs:23:13:23:38 | After ...; | +| Finally.cs:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | Before return ...; | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:26:48:26:51 | After true [true] | Finally.cs:26:48:26:51 | true | | Finally.cs:26:48:26:51 | true | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:26:48:26:51 | true | -| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:27:9:29:9 | {...} | +| Finally.cs:27:9:29:9 | {...} | Finally.cs:26:48:26:51 | After true [true] | +| Finally.cs:28:13:28:18 | Before throw ...; | Finally.cs:27:9:29:9 | {...} | +| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:28:13:28:18 | Before throw ...; | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | | Finally.cs:31:9:40:9 | {...} | Finally.cs:30:41:30:42 | ArgumentException ex | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:31:9:40:9 | {...} | | Finally.cs:33:13:35:13 | {...} | Finally.cs:32:13:39:13 | try {...} ... | | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:33:13:35:13 | {...} | +| Finally.cs:34:21:34:24 | After true [true] | Finally.cs:34:21:34:24 | true | | Finally.cs:34:21:34:24 | true | Finally.cs:34:17:34:32 | if (...) ... | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:21:34:24 | true | +| Finally.cs:34:27:34:32 | Before throw ...; | Finally.cs:34:21:34:24 | After true [true] | +| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:27:34:32 | Before throw ...; | | Finally.cs:37:13:39:13 | {...} | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:38:17:38:44 | throw ...; | Finally.cs:38:23:38:43 | object creation of type Exception | +| Finally.cs:38:17:38:44 | Before throw ...; | Finally.cs:37:13:39:13 | {...} | +| Finally.cs:38:17:38:44 | throw ...; | Finally.cs:38:23:38:43 | After object creation of type Exception | +| Finally.cs:38:23:38:43 | After object creation of type Exception | Finally.cs:38:23:38:43 | object creation of type Exception | +| Finally.cs:38:23:38:43 | Before object creation of type Exception | Finally.cs:38:17:38:44 | Before throw ...; | | Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:37:38:42 | "Boo!" | -| Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:37:13:39:13 | {...} | -| Finally.cs:45:9:47:9 | {...} | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:46:13:46:19 | return ...; | Finally.cs:45:9:47:9 | {...} | +| Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:38:23:38:43 | Before object creation of type Exception | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:42:9:43:9 | {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:44:9:47:9 | After catch {...} [match] | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:45:9:47:9 | {...} | Finally.cs:44:9:47:9 | After catch {...} [match] | +| Finally.cs:46:13:46:19 | Before return ...; | Finally.cs:45:9:47:9 | {...} | +| Finally.cs:46:13:46:19 | return ...; | Finally.cs:46:13:46:19 | Before return ...; | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:50:13:50:41 | After ...; | | Finally.cs:49:9:51:9 | {...} | Finally.cs:24:13:24:19 | return ...; | | Finally.cs:49:9:51:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | | Finally.cs:49:9:51:9 | {...} | Finally.cs:38:17:38:44 | throw ...; | | Finally.cs:49:9:51:9 | {...} | Finally.cs:42:9:43:9 | {...} | | Finally.cs:49:9:51:9 | {...} | Finally.cs:46:13:46:19 | return ...; | +| Finally.cs:50:13:50:40 | After call to method WriteLine | Finally.cs:50:13:50:40 | call to method WriteLine | +| Finally.cs:50:13:50:40 | Before call to method WriteLine | Finally.cs:50:13:50:41 | ...; | | Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:50:31:50:39 | "Finally" | | Finally.cs:50:13:50:41 | ...; | Finally.cs:49:9:51:9 | {...} | -| Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:41 | ...; | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:70:13:70:40 | call to method WriteLine | -| Finally.cs:55:5:72:5 | {...} | Finally.cs:54:10:54:11 | enter M3 | +| Finally.cs:50:13:50:41 | After ...; | Finally.cs:50:13:50:40 | After call to method WriteLine | +| Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:40 | Before call to method WriteLine | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:55:5:72:5 | After {...} | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:69:9:71:9 | After {...} | +| Finally.cs:55:5:72:5 | After {...} | Finally.cs:56:9:71:9 | After try {...} ... | +| Finally.cs:55:5:72:5 | {...} | Finally.cs:54:10:54:11 | Entry | | Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:55:5:72:5 | {...} | | Finally.cs:57:9:60:9 | {...} | Finally.cs:56:9:71:9 | try {...} ... | +| Finally.cs:58:13:58:37 | Before call to method WriteLine | Finally.cs:58:13:58:38 | ...; | | Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:58:31:58:36 | "Try3" | | Finally.cs:58:13:58:38 | ...; | Finally.cs:57:9:60:9 | {...} | -| Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:13:58:38 | ...; | +| Finally.cs:58:13:58:38 | After ...; | Finally.cs:58:13:58:37 | After call to method WriteLine | +| Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:13:58:37 | Before call to method WriteLine | +| Finally.cs:59:13:59:19 | Before return ...; | Finally.cs:58:13:58:38 | After ...; | +| Finally.cs:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | Before return ...; | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:61:48:61:51 | After true [true] | Finally.cs:61:48:61:51 | true | | Finally.cs:61:48:61:51 | true | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:61:48:61:51 | true | -| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:62:9:64:9 | {...} | Finally.cs:61:48:61:51 | After true [true] | +| Finally.cs:63:13:63:18 | Before throw ...; | Finally.cs:62:9:64:9 | {...} | +| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:63:13:63:18 | Before throw ...; | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:35:65:43 | Before access to property Message | +| Finally.cs:65:35:65:43 | After access to property Message | Finally.cs:65:35:65:43 | access to property Message | +| Finally.cs:65:35:65:43 | Before access to property Message | Finally.cs:65:35:65:51 | Before ... != ... | | Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:35:65:35 | access to local variable e | | Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:48:65:51 | null | -| Finally.cs:65:48:65:51 | null | Finally.cs:65:35:65:43 | access to property Message | +| Finally.cs:65:35:65:51 | Before ... != ... | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:65:48:65:51 | null | Finally.cs:65:35:65:43 | After access to property Message | +| Finally.cs:66:9:67:9 | {...} | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:70:13:70:41 | After ...; | | Finally.cs:69:9:71:9 | {...} | Finally.cs:59:13:59:19 | return ...; | | Finally.cs:69:9:71:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:9:67:9 | catch (...) {...} | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:35:65:51 | ... != ... | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | | Finally.cs:69:9:71:9 | {...} | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:70:13:70:40 | After call to method WriteLine | Finally.cs:70:13:70:40 | call to method WriteLine | +| Finally.cs:70:13:70:40 | Before call to method WriteLine | Finally.cs:70:13:70:41 | ...; | | Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:70:31:70:39 | "Finally" | | Finally.cs:70:13:70:41 | ...; | Finally.cs:69:9:71:9 | {...} | -| Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:41 | ...; | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:77:16:77:20 | ... > ... | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:97:21:97:23 | ...-- | -| Finally.cs:75:5:101:5 | {...} | Finally.cs:74:10:74:11 | enter M4 | +| Finally.cs:70:13:70:41 | After ...; | Finally.cs:70:13:70:40 | After call to method WriteLine | +| Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:40 | Before call to method WriteLine | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:75:5:101:5 | After {...} | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:89:13:99:13 | After {...} | +| Finally.cs:75:5:101:5 | After {...} | Finally.cs:77:9:100:9 | After while (...) ... | +| Finally.cs:75:5:101:5 | {...} | Finally.cs:74:10:74:11 | Entry | | Finally.cs:76:9:76:19 | ... ...; | Finally.cs:75:5:101:5 | {...} | +| Finally.cs:76:9:76:19 | After ... ...; | Finally.cs:76:13:76:18 | After Int32 i = ... | +| Finally.cs:76:13:76:13 | access to local variable i | Finally.cs:76:13:76:18 | Before Int32 i = ... | +| Finally.cs:76:13:76:18 | After Int32 i = ... | Finally.cs:76:13:76:18 | Int32 i = ... | +| Finally.cs:76:13:76:18 | Before Int32 i = ... | Finally.cs:76:9:76:19 | ... ...; | | Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:76:17:76:18 | 10 | -| Finally.cs:76:17:76:18 | 10 | Finally.cs:76:9:76:19 | ... ...; | -| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:76:13:76:18 | Int32 i = ... | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:9:100:9 | while (...) ... | +| Finally.cs:76:17:76:18 | 10 | Finally.cs:76:13:76:13 | access to local variable i | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:9:100:9 | while (...) ... | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:78:9:100:9 | After {...} | +| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:76:9:76:19 | After ... ...; | +| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:20 | Before ... > ... | | Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:20:77:20 | 0 | +| Finally.cs:77:16:77:20 | Before ... > ... | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | | Finally.cs:77:20:77:20 | 0 | Finally.cs:77:16:77:16 | access to local variable i | +| Finally.cs:78:9:100:9 | After {...} | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:78:9:100:9 | {...} | Finally.cs:77:16:77:20 | After ... > ... [true] | | Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:78:9:100:9 | {...} | +| Finally.cs:80:13:87:13 | After {...} | Finally.cs:85:17:86:26 | After if (...) ... | | Finally.cs:80:13:87:13 | {...} | Finally.cs:79:13:99:13 | try {...} ... | +| Finally.cs:81:17:82:27 | After if (...) ... | Finally.cs:81:21:81:26 | After ... == ... [false] | | Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:80:13:87:13 | {...} | -| Finally.cs:81:21:81:21 | access to local variable i | Finally.cs:81:17:82:27 | if (...) ... | +| Finally.cs:81:21:81:21 | access to local variable i | Finally.cs:81:21:81:26 | Before ... == ... | | Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:26:81:26 | 0 | +| Finally.cs:81:21:81:26 | Before ... == ... | Finally.cs:81:17:82:27 | if (...) ... | | Finally.cs:81:26:81:26 | 0 | Finally.cs:81:21:81:21 | access to local variable i | -| Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:83:17:84:29 | if (...) ... | +| Finally.cs:82:21:82:27 | Before return ...; | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | Before return ...; | +| Finally.cs:83:17:84:29 | After if (...) ... | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:81:17:82:27 | After if (...) ... | +| Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:83:21:83:26 | Before ... == ... | | Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:26:83:26 | 1 | +| Finally.cs:83:21:83:26 | Before ... == ... | Finally.cs:83:17:84:29 | if (...) ... | | Finally.cs:83:26:83:26 | 1 | Finally.cs:83:21:83:21 | access to local variable i | -| Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:17:86:26 | if (...) ... | +| Finally.cs:84:21:84:29 | Before continue; | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | Before continue; | +| Finally.cs:85:17:86:26 | After if (...) ... | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:83:17:84:29 | After if (...) ... | +| Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:21:85:26 | Before ... == ... | | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:26:85:26 | 2 | +| Finally.cs:85:21:85:26 | Before ... == ... | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:85:26:85:26 | 2 | Finally.cs:85:21:85:21 | access to local variable i | +| Finally.cs:86:21:86:26 | Before break; | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | Before break; | +| Finally.cs:89:13:99:13 | After {...} | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:80:13:87:13 | After {...} | | Finally.cs:89:13:99:13 | {...} | Finally.cs:82:21:82:27 | return ...; | | Finally.cs:89:13:99:13 | {...} | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:85:21:85:26 | ... == ... | | Finally.cs:89:13:99:13 | {...} | Finally.cs:86:21:86:26 | break; | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:96:17:98:17 | After {...} | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:89:13:99:13 | {...} | +| Finally.cs:91:17:94:17 | After {...} | Finally.cs:92:21:93:46 | After if (...) ... | | Finally.cs:91:17:94:17 | {...} | Finally.cs:90:17:98:17 | try {...} ... | +| Finally.cs:92:21:93:46 | After if (...) ... | Finally.cs:92:25:92:30 | After ... == ... [false] | | Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:91:17:94:17 | {...} | -| Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:21:93:46 | if (...) ... | +| Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:25:92:30 | Before ... == ... | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:30:92:30 | 3 | +| Finally.cs:92:25:92:30 | Before ... == ... | Finally.cs:92:21:93:46 | if (...) ... | | Finally.cs:92:30:92:30 | 3 | Finally.cs:92:25:92:25 | access to local variable i | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:92:25:92:30 | ... == ... | +| Finally.cs:93:25:93:46 | Before throw ...; | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:93:31:93:45 | Before object creation of type Exception | Finally.cs:93:25:93:46 | Before throw ...; | +| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | Before object creation of type Exception | +| Finally.cs:96:17:98:17 | After {...} | Finally.cs:97:21:97:24 | After ...; | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:91:17:94:17 | After {...} | | Finally.cs:96:17:98:17 | {...} | Finally.cs:93:25:93:46 | throw ...; | | Finally.cs:96:17:98:17 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:24 | ...; | +| Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:23 | Before ...-- | | Finally.cs:97:21:97:23 | ...-- | Finally.cs:97:21:97:21 | access to local variable i | +| Finally.cs:97:21:97:23 | After ...-- | Finally.cs:97:21:97:23 | ...-- | +| Finally.cs:97:21:97:23 | Before ...-- | Finally.cs:97:21:97:24 | ...; | | Finally.cs:97:21:97:24 | ...; | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:17:116:32 | ... > ... | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:117:17:117:36 | call to method WriteLine | -| Finally.cs:104:5:119:5 | {...} | Finally.cs:103:10:103:11 | enter M5 | +| Finally.cs:97:21:97:24 | After ...; | Finally.cs:97:21:97:23 | After ...-- | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:104:5:119:5 | After {...} | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:113:9:118:9 | After {...} | +| Finally.cs:104:5:119:5 | After {...} | Finally.cs:105:9:118:9 | After try {...} ... | +| Finally.cs:104:5:119:5 | {...} | Finally.cs:103:10:103:11 | Entry | | Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:104:5:119:5 | {...} | +| Finally.cs:106:9:111:9 | After {...} | Finally.cs:109:13:110:49 | After if (...) ... | | Finally.cs:106:9:111:9 | {...} | Finally.cs:105:9:118:9 | try {...} ... | +| Finally.cs:107:13:108:23 | After if (...) ... | Finally.cs:107:17:107:33 | After ... == ... [false] | | Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:106:9:111:9 | {...} | +| Finally.cs:107:17:107:21 | Before access to field Field | Finally.cs:107:17:107:28 | Before access to property Length | | Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:21 | this access | -| Finally.cs:107:17:107:21 | this access | Finally.cs:107:13:108:23 | if (...) ... | +| Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | Before access to field Field | +| Finally.cs:107:17:107:28 | Before access to property Length | Finally.cs:107:17:107:33 | Before ... == ... | +| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:21 | After access to field Field | | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:33:107:33 | 0 | +| Finally.cs:107:17:107:33 | Before ... == ... | Finally.cs:107:13:108:23 | if (...) ... | +| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:108:17:108:23 | Before return ...; | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | Before return ...; | +| Finally.cs:109:13:110:49 | After if (...) ... | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:107:13:108:23 | After if (...) ... | +| Finally.cs:109:17:109:21 | Before access to field Field | Finally.cs:109:17:109:28 | Before access to property Length | | Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:21 | this access | -| Finally.cs:109:17:109:21 | this access | Finally.cs:109:13:110:49 | if (...) ... | +| Finally.cs:109:17:109:21 | this access | Finally.cs:109:17:109:21 | Before access to field Field | +| Finally.cs:109:17:109:28 | Before access to property Length | Finally.cs:109:17:109:33 | Before ... == ... | +| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:21 | After access to field Field | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:33:109:33 | 1 | +| Finally.cs:109:17:109:33 | Before ... == ... | Finally.cs:109:13:110:49 | if (...) ... | +| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:110:17:110:49 | Before throw ...; | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:110:23:110:48 | Before object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | Before throw ...; | +| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | Before object creation of type OutOfMemoryException | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:116:13:117:37 | After if (...) ... | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:106:9:111:9 | After {...} | | Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:21 | access to field Field | | Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:28 | access to property Length | | Finally.cs:113:9:118:9 | {...} | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:21 | access to field Field | | Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:33 | ... == ... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:110:17:110:49 | throw ...; | | Finally.cs:113:9:118:9 | {...} | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:114:17:114:36 | After !... [false] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:115:17:115:41 | After ...; | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:113:9:118:9 | {...} | +| Finally.cs:114:17:114:36 | !... | Finally.cs:114:13:115:41 | if (...) ... | +| Finally.cs:114:17:114:36 | After !... [false] | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:114:17:114:36 | After !... [true] | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:114:19:114:23 | After access to field Field | Finally.cs:114:19:114:23 | access to field Field | +| Finally.cs:114:19:114:23 | Before access to field Field | Finally.cs:114:19:114:30 | Before access to property Length | | Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:23 | this access | -| Finally.cs:114:19:114:23 | this access | Finally.cs:114:13:115:41 | if (...) ... | -| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:23 | access to field Field | +| Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | Before access to field Field | +| Finally.cs:114:19:114:30 | After access to property Length | Finally.cs:114:19:114:30 | access to property Length | +| Finally.cs:114:19:114:30 | Before access to property Length | Finally.cs:114:19:114:35 | Before ... == ... | +| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:23 | After access to field Field | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:35:114:35 | 0 | -| Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:30 | access to property Length | -| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:115:35:115:39 | access to field Field | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:114:17:114:36 | [true] !... | +| Finally.cs:114:19:114:35 | Before ... == ... | Finally.cs:114:17:114:36 | !... | +| Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:30 | After access to property Length | +| Finally.cs:115:17:115:40 | After call to method WriteLine | Finally.cs:115:17:115:40 | call to method WriteLine | +| Finally.cs:115:17:115:40 | Before call to method WriteLine | Finally.cs:115:17:115:41 | ...; | +| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:115:35:115:39 | After access to field Field | +| Finally.cs:115:17:115:41 | ...; | Finally.cs:114:17:114:36 | After !... [true] | +| Finally.cs:115:17:115:41 | After ...; | Finally.cs:115:17:115:40 | After call to method WriteLine | +| Finally.cs:115:35:115:39 | After access to field Field | Finally.cs:115:35:115:39 | access to field Field | +| Finally.cs:115:35:115:39 | Before access to field Field | Finally.cs:115:17:115:40 | Before call to method WriteLine | | Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:35:115:39 | this access | -| Finally.cs:115:35:115:39 | this access | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:115:17:115:40 | call to method WriteLine | +| Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | Before access to field Field | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:117:17:117:37 | After ...; | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:13:115:41 | After if (...) ... | +| Finally.cs:116:17:116:21 | After access to field Field | Finally.cs:116:17:116:21 | access to field Field | +| Finally.cs:116:17:116:21 | Before access to field Field | Finally.cs:116:17:116:28 | Before access to property Length | | Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:21 | this access | -| Finally.cs:116:17:116:21 | this access | Finally.cs:116:13:117:37 | if (...) ... | -| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:17:116:21 | access to field Field | +| Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | Before access to field Field | +| Finally.cs:116:17:116:28 | After access to property Length | Finally.cs:116:17:116:28 | access to property Length | +| Finally.cs:116:17:116:28 | Before access to property Length | Finally.cs:116:17:116:32 | Before ... > ... | +| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:17:116:21 | After access to field Field | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:32:116:32 | 0 | -| Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:28 | access to property Length | +| Finally.cs:116:17:116:32 | Before ... > ... | Finally.cs:116:13:117:37 | if (...) ... | +| Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:28 | After access to property Length | +| Finally.cs:117:17:117:36 | After call to method WriteLine | Finally.cs:117:17:117:36 | call to method WriteLine | +| Finally.cs:117:17:117:36 | Before call to method WriteLine | Finally.cs:117:17:117:37 | ...; | | Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:117:35:117:35 | 1 | -| Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:121:10:121:11 | exit M6 | Finally.cs:121:10:121:11 | exit M6 (normal) | -| Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:125:17:125:40 | Double temp = ... | -| Finally.cs:122:5:131:5 | {...} | Finally.cs:121:10:121:11 | enter M6 | +| Finally.cs:117:17:117:37 | ...; | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:117:17:117:37 | After ...; | Finally.cs:117:17:117:36 | After call to method WriteLine | +| Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:36 | Before call to method WriteLine | +| Finally.cs:121:10:121:11 | Exit | Finally.cs:121:10:121:11 | Normal Exit | +| Finally.cs:121:10:121:11 | Normal Exit | Finally.cs:122:5:131:5 | After {...} | +| Finally.cs:122:5:131:5 | After {...} | Finally.cs:123:9:130:9 | After try {...} ... | +| Finally.cs:122:5:131:5 | {...} | Finally.cs:121:10:121:11 | Entry | +| Finally.cs:123:9:130:9 | After try {...} ... | Finally.cs:124:9:126:9 | After {...} | | Finally.cs:123:9:130:9 | try {...} ... | Finally.cs:122:5:131:5 | {...} | +| Finally.cs:124:9:126:9 | After {...} | Finally.cs:125:13:125:41 | After ... ...; | | Finally.cs:124:9:126:9 | {...} | Finally.cs:123:9:130:9 | try {...} ... | | Finally.cs:125:13:125:41 | ... ...; | Finally.cs:124:9:126:9 | {...} | -| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:125:24:125:40 | ... / ... | -| Finally.cs:125:24:125:24 | 0 | Finally.cs:125:13:125:41 | ... ...; | +| Finally.cs:125:13:125:41 | After ... ...; | Finally.cs:125:17:125:40 | After Double temp = ... | +| Finally.cs:125:17:125:20 | access to local variable temp | Finally.cs:125:17:125:40 | Before Double temp = ... | +| Finally.cs:125:17:125:40 | After Double temp = ... | Finally.cs:125:17:125:40 | Double temp = ... | +| Finally.cs:125:17:125:40 | Before Double temp = ... | Finally.cs:125:13:125:41 | ... ...; | +| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:125:24:125:40 | After ... / ... | +| Finally.cs:125:24:125:24 | 0 | Finally.cs:125:24:125:24 | Before (...) ... | | Finally.cs:125:24:125:24 | (...) ... | Finally.cs:125:24:125:24 | 0 | +| Finally.cs:125:24:125:24 | After (...) ... | Finally.cs:125:24:125:24 | (...) ... | +| Finally.cs:125:24:125:24 | Before (...) ... | Finally.cs:125:24:125:40 | Before ... / ... | | Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:28:125:40 | access to constant E | -| Finally.cs:125:28:125:40 | access to constant E | Finally.cs:125:24:125:24 | (...) ... | -| Finally.cs:133:10:133:11 | exit M7 | Finally.cs:133:10:133:11 | exit M7 (abnormal) | -| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:141:13:141:44 | throw ...; | -| Finally.cs:134:5:145:5 | {...} | Finally.cs:133:10:133:11 | enter M7 | +| Finally.cs:125:24:125:40 | After ... / ... | Finally.cs:125:24:125:40 | ... / ... | +| Finally.cs:125:24:125:40 | Before ... / ... | Finally.cs:125:17:125:20 | access to local variable temp | +| Finally.cs:125:28:125:40 | access to constant E | Finally.cs:125:24:125:24 | After (...) ... | +| Finally.cs:133:10:133:11 | Exceptional Exit | Finally.cs:141:13:141:44 | throw ...; | +| Finally.cs:133:10:133:11 | Exit | Finally.cs:133:10:133:11 | Exceptional Exit | +| Finally.cs:134:5:145:5 | {...} | Finally.cs:133:10:133:11 | Entry | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:134:5:145:5 | {...} | +| Finally.cs:136:9:138:9 | After {...} | Finally.cs:137:13:137:37 | After ...; | | Finally.cs:136:9:138:9 | {...} | Finally.cs:135:9:143:9 | try {...} ... | +| Finally.cs:137:13:137:36 | Before call to method WriteLine | Finally.cs:137:13:137:37 | ...; | | Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:137:31:137:35 | "Try" | | Finally.cs:137:13:137:37 | ...; | Finally.cs:136:9:138:9 | {...} | -| Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:37 | ...; | -| Finally.cs:140:9:143:9 | {...} | Finally.cs:137:13:137:36 | call to method WriteLine | -| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:141:19:141:43 | object creation of type ArgumentException | +| Finally.cs:137:13:137:37 | After ...; | Finally.cs:137:13:137:36 | After call to method WriteLine | +| Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:36 | Before call to method WriteLine | +| Finally.cs:141:13:141:44 | Before throw ...; | Finally.cs:140:9:143:9 | {...} | +| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:141:19:141:43 | After object creation of type ArgumentException | +| Finally.cs:141:19:141:43 | After object creation of type ArgumentException | Finally.cs:141:19:141:43 | object creation of type ArgumentException | +| Finally.cs:141:19:141:43 | Before object creation of type ArgumentException | Finally.cs:141:13:141:44 | Before throw ...; | | Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:41:141:42 | "" | -| Finally.cs:141:41:141:42 | "" | Finally.cs:140:9:143:9 | {...} | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:158:21:158:36 | ... == ... | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:163:17:163:42 | call to method WriteLine | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:167:17:167:37 | call to method WriteLine | -| Finally.cs:148:5:170:5 | {...} | Finally.cs:147:10:147:11 | enter M8 | +| Finally.cs:141:41:141:42 | "" | Finally.cs:141:19:141:43 | Before object creation of type ArgumentException | +| Finally.cs:147:10:147:11 | Normal Exit | Finally.cs:148:5:170:5 | After {...} | +| Finally.cs:148:5:170:5 | After {...} | Finally.cs:149:9:169:9 | After try {...} ... | +| Finally.cs:148:5:170:5 | {...} | Finally.cs:147:10:147:11 | Entry | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:155:9:169:9 | After {...} | | Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:148:5:170:5 | {...} | +| Finally.cs:150:9:153:9 | After {...} | Finally.cs:151:13:152:50 | After if (...) ... | | Finally.cs:150:9:153:9 | {...} | Finally.cs:149:9:169:9 | try {...} ... | +| Finally.cs:151:13:152:50 | After if (...) ... | Finally.cs:151:17:151:28 | After ... == ... [false] | | Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:150:9:153:9 | {...} | -| Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:151:13:152:50 | if (...) ... | +| Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:151:17:151:28 | Before ... == ... | | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:25:151:28 | null | +| Finally.cs:151:17:151:28 | Before ... == ... | Finally.cs:151:13:152:50 | if (...) ... | | Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:20 | access to parameter args | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:151:17:151:28 | ... == ... | +| Finally.cs:152:17:152:50 | Before throw ...; | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:152:23:152:49 | Before object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | Before throw ...; | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | Before object creation of type ArgumentNullException | +| Finally.cs:155:9:169:9 | After {...} | Finally.cs:156:13:168:13 | After try {...} ... | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:150:9:153:9 | After {...} | | Finally.cs:155:9:169:9 | {...} | Finally.cs:152:17:152:50 | throw ...; | | Finally.cs:155:9:169:9 | {...} | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:157:13:160:13 | After {...} | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:162:13:164:13 | After {...} | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:166:13:168:13 | After {...} | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:155:9:169:9 | {...} | +| Finally.cs:157:13:160:13 | After {...} | Finally.cs:158:17:159:45 | After if (...) ... | | Finally.cs:157:13:160:13 | {...} | Finally.cs:156:13:168:13 | try {...} ... | +| Finally.cs:158:17:159:45 | After if (...) ... | Finally.cs:158:21:158:36 | After ... == ... [false] | | Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:157:13:160:13 | {...} | -| Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:17:159:45 | if (...) ... | +| Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:31 | Before access to property Length | +| Finally.cs:158:21:158:31 | Before access to property Length | Finally.cs:158:21:158:36 | Before ... == ... | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:24 | access to parameter args | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:36:158:36 | 1 | +| Finally.cs:158:21:158:36 | Before ... == ... | Finally.cs:158:17:159:45 | if (...) ... | +| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:31 | After access to property Length | +| Finally.cs:159:21:159:45 | Before throw ...; | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:159:27:159:44 | Before object creation of type Exception | Finally.cs:159:21:159:45 | Before throw ...; | | Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:41:159:43 | "1" | +| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | Before object creation of type Exception | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:161:39:161:54 | After ... == ... [false] | | Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:159:27:159:44 | object creation of type Exception | -| Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:30:161:30 | Exception e | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:39:161:47 | Before access to property Message | +| Finally.cs:161:39:161:47 | After access to property Message | Finally.cs:161:39:161:47 | access to property Message | +| Finally.cs:161:39:161:47 | Before access to property Message | Finally.cs:161:39:161:54 | Before ... == ... | | Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:39:161:39 | access to local variable e | | Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:52:161:54 | "1" | -| Finally.cs:161:52:161:54 | "1" | Finally.cs:161:39:161:47 | access to property Message | -| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:163:35:163:41 | access to array element | +| Finally.cs:161:39:161:54 | Before ... == ... | Finally.cs:161:30:161:30 | Exception e | +| Finally.cs:161:52:161:54 | "1" | Finally.cs:161:39:161:47 | After access to property Message | +| Finally.cs:162:13:164:13 | After {...} | Finally.cs:163:17:163:43 | After ...; | +| Finally.cs:162:13:164:13 | {...} | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:163:17:163:42 | After call to method WriteLine | Finally.cs:163:17:163:42 | call to method WriteLine | +| Finally.cs:163:17:163:42 | Before call to method WriteLine | Finally.cs:163:17:163:43 | ...; | +| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:163:35:163:41 | After access to array element | | Finally.cs:163:17:163:43 | ...; | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:17:163:43 | ...; | +| Finally.cs:163:17:163:43 | After ...; | Finally.cs:163:17:163:42 | After call to method WriteLine | +| Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:35:163:41 | Before access to array element | +| Finally.cs:163:35:163:41 | After access to array element | Finally.cs:163:35:163:41 | access to array element | +| Finally.cs:163:35:163:41 | Before access to array element | Finally.cs:163:17:163:42 | Before call to method WriteLine | | Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:40:163:40 | 0 | | Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:38 | access to parameter args | -| Finally.cs:166:13:168:13 | {...} | Finally.cs:165:13:168:13 | catch {...} | +| Finally.cs:165:13:168:13 | After catch {...} [match] | Finally.cs:165:13:168:13 | catch {...} | +| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | +| Finally.cs:166:13:168:13 | After {...} | Finally.cs:167:17:167:38 | After ...; | +| Finally.cs:166:13:168:13 | {...} | Finally.cs:165:13:168:13 | After catch {...} [match] | +| Finally.cs:167:17:167:37 | After call to method WriteLine | Finally.cs:167:17:167:37 | call to method WriteLine | +| Finally.cs:167:17:167:37 | Before call to method WriteLine | Finally.cs:167:17:167:38 | ...; | | 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 | call to method | +| Finally.cs:167:17:167:38 | After ...; | Finally.cs:167:17:167:37 | After call to method WriteLine | +| Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | Before call to method WriteLine | +| Finally.cs:172:11:172:20 | After call to constructor Exception | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | After call to method | Finally.cs:172:11:172:20 | call to method | +| Finally.cs:172:11:172:20 | Before call to constructor Exception | Finally.cs:172:11:172:20 | After call to method | +| Finally.cs:172:11:172:20 | Before call to method | Finally.cs:172:11:172:20 | Entry | +| Finally.cs:172:11:172:20 | Exit | Finally.cs:172:11:172:20 | Normal Exit | +| Finally.cs:172:11:172:20 | Normal Exit | Finally.cs:172:11:172:20 | {...} | +| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | Before 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 | 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 | call to method | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | Before call to method | +| Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | After call to constructor Exception | +| Finally.cs:173:11:173:20 | After call to constructor Exception | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | After call to method | Finally.cs:173:11:173:20 | call to method | +| Finally.cs:173:11:173:20 | Before call to constructor Exception | Finally.cs:173:11:173:20 | After call to method | +| Finally.cs:173:11:173:20 | Before call to method | Finally.cs:173:11:173:20 | Entry | +| Finally.cs:173:11:173:20 | Exit | Finally.cs:173:11:173:20 | Normal Exit | +| Finally.cs:173:11:173:20 | Normal Exit | Finally.cs:173:11:173:20 | {...} | +| Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | Before 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 | 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 | call to method | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | Before call to method | +| Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | After call to constructor Exception | +| Finally.cs:174:11:174:20 | After call to constructor Exception | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | After call to method | Finally.cs:174:11:174:20 | call to method | +| Finally.cs:174:11:174:20 | Before call to constructor Exception | Finally.cs:174:11:174:20 | After call to method | +| Finally.cs:174:11:174:20 | Before call to method | Finally.cs:174:11:174:20 | Entry | +| Finally.cs:174:11:174:20 | Exit | Finally.cs:174:11:174:20 | Normal Exit | +| Finally.cs:174:11:174:20 | Normal Exit | Finally.cs:174:11:174:20 | {...} | +| Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | Before 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 | 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 | -| Finally.cs:177:5:193:5 | {...} | Finally.cs:176:10:176:11 | enter M9 | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | Before call to method | +| Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | After call to constructor Exception | +| Finally.cs:176:10:176:11 | Normal Exit | Finally.cs:177:5:193:5 | After {...} | +| Finally.cs:177:5:193:5 | After {...} | Finally.cs:178:9:192:9 | After try {...} ... | +| Finally.cs:177:5:193:5 | {...} | Finally.cs:176:10:176:11 | Entry | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:183:9:192:9 | After {...} | | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:177:5:193:5 | {...} | +| Finally.cs:179:9:181:9 | After {...} | Finally.cs:180:13:180:43 | After if (...) ... | | Finally.cs:179:9:181:9 | {...} | Finally.cs:178:9:192:9 | try {...} ... | +| Finally.cs:180:13:180:43 | After if (...) ... | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:179:9:181:9 | {...} | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:13:180:43 | if (...) ... | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:17:180:18 | access to parameter b1 | +| Finally.cs:180:21:180:43 | Before throw ...; | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:180:27:180:42 | Before object creation of type ExceptionA | Finally.cs:180:21:180:43 | Before throw ...; | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | Before object creation of type ExceptionA | +| Finally.cs:183:9:192:9 | After {...} | Finally.cs:184:13:191:13 | After try {...} ... | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:179:9:181:9 | After {...} | | Finally.cs:183:9:192:9 | {...} | Finally.cs:180:21:180:43 | throw ...; | | Finally.cs:183:9:192:9 | {...} | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:185:13:187:13 | After {...} | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:189:13:191:13 | After {...} | | Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:185:13:187:13 | After {...} | Finally.cs:186:17:186:47 | After if (...) ... | | Finally.cs:185:13:187:13 | {...} | Finally.cs:184:13:191:13 | try {...} ... | +| Finally.cs:186:17:186:47 | After if (...) ... | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | | Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:185:13:187:13 | {...} | | Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:17:186:47 | if (...) ... | +| Finally.cs:186:25:186:47 | Before throw ...; | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:186:31:186:46 | Before object creation of type ExceptionB | Finally.cs:186:25:186:47 | Before throw ...; | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | Before object creation of type ExceptionB | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:13:191:13 | catch (...) {...} | | Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:25:186:47 | throw ...; | | Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:189:13:191:13 | After {...} | Finally.cs:190:17:190:47 | After if (...) ... | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:190:17:190:47 | After if (...) ... | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | | Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:190:21:190:22 | access to parameter b1 | | Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:17:190:47 | if (...) ... | -| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | exit M10 (normal) | Finally.cs:213:9:213:24 | ... = ... | -| Finally.cs:196:5:214:5 | {...} | Finally.cs:195:10:195:12 | enter M10 | +| Finally.cs:190:25:190:47 | Before throw ...; | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:190:31:190:46 | After object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | After object creation of type ExceptionC | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | Before object creation of type ExceptionC | Finally.cs:190:25:190:47 | Before throw ...; | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | Before object creation of type ExceptionC | +| Finally.cs:195:10:195:12 | Normal Exit | Finally.cs:196:5:214:5 | After {...} | +| Finally.cs:196:5:214:5 | After {...} | Finally.cs:213:9:213:25 | After ...; | +| Finally.cs:196:5:214:5 | {...} | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:202:9:212:9 | After {...} | | Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:196:5:214:5 | {...} | +| Finally.cs:198:9:200:9 | After {...} | Finally.cs:199:13:199:43 | After if (...) ... | | Finally.cs:198:9:200:9 | {...} | Finally.cs:197:9:212:9 | try {...} ... | +| Finally.cs:199:13:199:43 | After if (...) ... | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | | Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:198:9:200:9 | {...} | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:13:199:43 | if (...) ... | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:17:199:18 | access to parameter b1 | +| Finally.cs:199:21:199:43 | Before throw ...; | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:199:27:199:42 | Before object creation of type ExceptionA | Finally.cs:199:21:199:43 | Before throw ...; | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | Before object creation of type ExceptionA | +| Finally.cs:202:9:212:9 | After {...} | Finally.cs:211:13:211:29 | After ...; | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:198:9:200:9 | After {...} | | Finally.cs:202:9:212:9 | {...} | Finally.cs:199:21:199:43 | throw ...; | | Finally.cs:202:9:212:9 | {...} | Finally.cs:199:27:199:42 | object creation of type ExceptionA | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:208:13:210:13 | After {...} | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:204:13:206:13 | After {...} | Finally.cs:205:17:205:47 | After if (...) ... | | Finally.cs:204:13:206:13 | {...} | Finally.cs:203:13:210:13 | try {...} ... | +| Finally.cs:205:17:205:47 | After if (...) ... | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:204:13:206:13 | {...} | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:17:205:47 | if (...) ... | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:21:205:22 | access to parameter b2 | +| Finally.cs:205:25:205:47 | Before throw ...; | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:205:31:205:46 | Before object creation of type ExceptionB | Finally.cs:205:25:205:47 | Before throw ...; | +| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | Before object creation of type ExceptionB | +| Finally.cs:208:13:210:13 | After {...} | Finally.cs:209:17:209:47 | After if (...) ... | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:204:13:206:13 | After {...} | | Finally.cs:208:13:210:13 | {...} | Finally.cs:205:25:205:47 | throw ...; | | Finally.cs:208:13:210:13 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | +| Finally.cs:209:17:209:47 | After if (...) ... | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:208:13:210:13 | {...} | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:209:21:209:22 | access to parameter b3 | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:17:209:47 | if (...) ... | -| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:26:211:28 | "0" | -| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:13:211:22 | access to field Field | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:209:21:209:22 | access to parameter b3 | -| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:16 | this access | -| Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:22:213:24 | "1" | -| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:9:213:18 | access to field Field | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:211:13:211:28 | ... = ... | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:12 | this access | -| Finally.cs:216:10:216:12 | exit M11 | Finally.cs:216:10:216:12 | exit M11 (normal) | -| Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:230:9:230:33 | call to method WriteLine | -| Finally.cs:217:5:231:5 | {...} | Finally.cs:216:10:216:12 | enter M11 | +| Finally.cs:209:25:209:47 | Before throw ...; | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | +| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:209:31:209:46 | After object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | After object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | +| Finally.cs:209:31:209:46 | Before object creation of type ExceptionC | Finally.cs:209:25:209:47 | Before throw ...; | +| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | Before object creation of type ExceptionC | +| Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:22 | Before access to field Field | +| Finally.cs:211:13:211:22 | After access to field Field | Finally.cs:211:13:211:22 | access to field Field | +| Finally.cs:211:13:211:22 | Before access to field Field | Finally.cs:211:13:211:28 | Before ... = ... | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:16 | this access | +| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:26:211:28 | "0" | +| Finally.cs:211:13:211:28 | After ... = ... | Finally.cs:211:13:211:28 | ... = ... | +| Finally.cs:211:13:211:28 | Before ... = ... | Finally.cs:211:13:211:29 | ...; | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:203:13:210:13 | After try {...} ... | +| Finally.cs:211:13:211:29 | After ...; | Finally.cs:211:13:211:28 | After ... = ... | +| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:22 | After access to field Field | +| Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:18 | Before access to field Field | +| Finally.cs:213:9:213:18 | After access to field Field | Finally.cs:213:9:213:18 | access to field Field | +| Finally.cs:213:9:213:18 | Before access to field Field | Finally.cs:213:9:213:24 | Before ... = ... | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:12 | this access | +| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:22:213:24 | "1" | +| Finally.cs:213:9:213:24 | After ... = ... | Finally.cs:213:9:213:24 | ... = ... | +| Finally.cs:213:9:213:24 | Before ... = ... | Finally.cs:213:9:213:25 | ...; | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:197:9:212:9 | After try {...} ... | +| Finally.cs:213:9:213:25 | After ...; | Finally.cs:213:9:213:24 | After ... = ... | +| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:18 | After access to field Field | +| Finally.cs:216:10:216:12 | Exit | Finally.cs:216:10:216:12 | Normal Exit | +| Finally.cs:216:10:216:12 | Normal Exit | Finally.cs:217:5:231:5 | After {...} | +| Finally.cs:217:5:231:5 | After {...} | Finally.cs:230:9:230:34 | After ...; | +| Finally.cs:217:5:231:5 | {...} | Finally.cs:216:10:216:12 | Entry | +| Finally.cs:218:9:229:9 | After try {...} ... | Finally.cs:227:9:229:9 | After {...} | | Finally.cs:218:9:229:9 | try {...} ... | Finally.cs:217:5:231:5 | {...} | +| Finally.cs:219:9:221:9 | After {...} | Finally.cs:220:13:220:37 | After ...; | | Finally.cs:219:9:221:9 | {...} | Finally.cs:218:9:229:9 | try {...} ... | +| Finally.cs:220:13:220:36 | Before call to method WriteLine | Finally.cs:220:13:220:37 | ...; | | Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:220:31:220:35 | "Try" | | Finally.cs:220:13:220:37 | ...; | Finally.cs:219:9:221:9 | {...} | -| Finally.cs:220:31:220:35 | "Try" | Finally.cs:220:13:220:37 | ...; | -| Finally.cs:223:9:225:9 | {...} | Finally.cs:222:9:225:9 | catch {...} | +| Finally.cs:220:13:220:37 | After ...; | Finally.cs:220:13:220:36 | After call to method WriteLine | +| Finally.cs:220:31:220:35 | "Try" | Finally.cs:220:13:220:36 | Before call to method WriteLine | +| Finally.cs:222:9:225:9 | After catch {...} [match] | Finally.cs:222:9:225:9 | catch {...} | +| Finally.cs:223:9:225:9 | After {...} | Finally.cs:224:13:224:39 | After ...; | +| Finally.cs:223:9:225:9 | {...} | Finally.cs:222:9:225:9 | After catch {...} [match] | +| Finally.cs:224:13:224:38 | After call to method WriteLine | Finally.cs:224:13:224:38 | call to method WriteLine | +| Finally.cs:224:13:224:38 | Before call to method WriteLine | Finally.cs:224:13:224:39 | ...; | | Finally.cs:224:13:224:38 | call to method WriteLine | Finally.cs:224:31:224:37 | "Catch" | | Finally.cs:224:13:224:39 | ...; | Finally.cs:223:9:225:9 | {...} | -| Finally.cs:224:31:224:37 | "Catch" | Finally.cs:224:13:224:39 | ...; | -| Finally.cs:227:9:229:9 | {...} | Finally.cs:220:13:220:36 | call to method WriteLine | -| Finally.cs:227:9:229:9 | {...} | Finally.cs:224:13:224:38 | call to method WriteLine | +| Finally.cs:224:13:224:39 | After ...; | Finally.cs:224:13:224:38 | After call to method WriteLine | +| Finally.cs:224:31:224:37 | "Catch" | Finally.cs:224:13:224:38 | Before call to method WriteLine | +| Finally.cs:227:9:229:9 | After {...} | Finally.cs:228:13:228:41 | After ...; | +| Finally.cs:227:9:229:9 | {...} | Finally.cs:219:9:221:9 | After {...} | +| Finally.cs:227:9:229:9 | {...} | Finally.cs:223:9:225:9 | After {...} | +| Finally.cs:228:13:228:40 | After call to method WriteLine | Finally.cs:228:13:228:40 | call to method WriteLine | +| Finally.cs:228:13:228:40 | Before call to method WriteLine | Finally.cs:228:13:228:41 | ...; | | Finally.cs:228:13:228:40 | call to method WriteLine | Finally.cs:228:31:228:39 | "Finally" | | Finally.cs:228:13:228:41 | ...; | Finally.cs:227:9:229:9 | {...} | -| Finally.cs:228:31:228:39 | "Finally" | Finally.cs:228:13:228:41 | ...; | +| Finally.cs:228:13:228:41 | After ...; | Finally.cs:228:13:228:40 | After call to method WriteLine | +| Finally.cs:228:31:228:39 | "Finally" | Finally.cs:228:13:228:40 | Before call to method WriteLine | +| Finally.cs:230:9:230:33 | After call to method WriteLine | Finally.cs:230:9:230:33 | call to method WriteLine | +| Finally.cs:230:9:230:33 | Before call to method WriteLine | Finally.cs:230:9:230:34 | ...; | | Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:230:27:230:32 | "Done" | -| Finally.cs:230:9:230:34 | ...; | Finally.cs:228:13:228:40 | call to method WriteLine | -| Finally.cs:230:27:230:32 | "Done" | Finally.cs:230:9:230:34 | ...; | -| Finally.cs:233:10:233:12 | exit M12 (normal) | Finally.cs:260:9:260:33 | call to method WriteLine | -| Finally.cs:234:5:261:5 | {...} | Finally.cs:233:10:233:12 | enter M12 | +| Finally.cs:230:9:230:34 | ...; | Finally.cs:218:9:229:9 | After try {...} ... | +| Finally.cs:230:9:230:34 | After ...; | Finally.cs:230:9:230:33 | After call to method WriteLine | +| Finally.cs:230:27:230:32 | "Done" | Finally.cs:230:9:230:33 | Before call to method WriteLine | +| Finally.cs:233:10:233:12 | Normal Exit | Finally.cs:234:5:261:5 | After {...} | +| Finally.cs:234:5:261:5 | After {...} | Finally.cs:260:9:260:34 | After ...; | +| Finally.cs:234:5:261:5 | {...} | Finally.cs:233:10:233:12 | Entry | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:257:9:259:9 | After {...} | | Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:234:5:261:5 | {...} | +| Finally.cs:236:9:255:9 | After {...} | Finally.cs:254:13:254:45 | After ...; | | Finally.cs:236:9:255:9 | {...} | Finally.cs:235:9:259:9 | try {...} ... | | Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:236:9:255:9 | {...} | +| Finally.cs:238:13:241:13 | After {...} | Finally.cs:239:17:240:43 | After if (...) ... | | Finally.cs:238:13:241:13 | {...} | Finally.cs:237:13:253:13 | try {...} ... | +| Finally.cs:239:17:240:43 | After if (...) ... | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | | Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:238:13:241:13 | {...} | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:17:240:43 | if (...) ... | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:239:21:239:22 | access to parameter b1 | +| Finally.cs:240:21:240:43 | Before throw ...; | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | +| Finally.cs:240:27:240:42 | Before object creation of type ExceptionA | Finally.cs:240:21:240:43 | Before throw ...; | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | Before object creation of type ExceptionA | +| Finally.cs:243:13:253:13 | After {...} | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:238:13:241:13 | After {...} | | Finally.cs:243:13:253:13 | {...} | Finally.cs:240:21:240:43 | throw ...; | | Finally.cs:243:13:253:13 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:243:13:253:13 | {...} | +| Finally.cs:245:17:248:17 | After {...} | Finally.cs:246:21:247:47 | After if (...) ... | | Finally.cs:245:17:248:17 | {...} | Finally.cs:244:17:252:17 | try {...} ... | +| Finally.cs:246:21:247:47 | After if (...) ... | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:245:17:248:17 | {...} | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:21:247:47 | if (...) ... | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:246:25:246:26 | access to parameter b2 | +| Finally.cs:247:25:247:47 | Before throw ...; | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | +| Finally.cs:247:31:247:46 | Before object creation of type ExceptionA | Finally.cs:247:25:247:47 | Before throw ...; | +| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | Before object creation of type ExceptionA | +| Finally.cs:250:17:252:17 | After {...} | Finally.cs:251:21:251:55 | After ...; | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:245:17:248:17 | After {...} | | Finally.cs:250:17:252:17 | {...} | Finally.cs:247:25:247:47 | throw ...; | | Finally.cs:250:17:252:17 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | +| Finally.cs:251:21:251:54 | After call to method WriteLine | Finally.cs:251:21:251:54 | call to method WriteLine | +| Finally.cs:251:21:251:54 | Before call to method WriteLine | Finally.cs:251:21:251:55 | ...; | | Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:251:39:251:53 | "Inner finally" | | Finally.cs:251:21:251:55 | ...; | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:55 | ...; | +| Finally.cs:251:21:251:55 | After ...; | Finally.cs:251:21:251:54 | After call to method WriteLine | +| Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:54 | Before call to method WriteLine | +| Finally.cs:254:13:254:44 | Before call to method WriteLine | Finally.cs:254:13:254:45 | ...; | | Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:254:31:254:43 | "Mid finally" | -| Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:45 | ...; | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | +| Finally.cs:254:13:254:45 | ...; | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:254:13:254:45 | After ...; | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:44 | Before call to method WriteLine | +| Finally.cs:257:9:259:9 | After {...} | Finally.cs:258:13:258:47 | After ...; | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:236:9:255:9 | After {...} | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:243:13:253:13 | After {...} | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:250:17:252:17 | After {...} | | Finally.cs:257:9:259:9 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine | +| Finally.cs:258:13:258:46 | After call to method WriteLine | Finally.cs:258:13:258:46 | call to method WriteLine | +| Finally.cs:258:13:258:46 | Before call to method WriteLine | Finally.cs:258:13:258:47 | ...; | | Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:258:31:258:45 | "Outer finally" | | Finally.cs:258:13:258:47 | ...; | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:47 | ...; | +| Finally.cs:258:13:258:47 | After ...; | Finally.cs:258:13:258:46 | After call to method WriteLine | +| Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:46 | Before call to method WriteLine | +| Finally.cs:260:9:260:33 | After call to method WriteLine | Finally.cs:260:9:260:33 | call to method WriteLine | +| Finally.cs:260:9:260:33 | Before call to method WriteLine | Finally.cs:260:9:260:34 | ...; | | Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:260:27:260:32 | "Done" | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:258:13:258:46 | call to method WriteLine | -| Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:272:13:272:18 | ... += ... | -| Finally.cs:264:5:274:5 | {...} | Finally.cs:263:10:263:12 | enter M13 | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:235:9:259:9 | After try {...} ... | +| Finally.cs:260:9:260:34 | After ...; | Finally.cs:260:9:260:33 | After call to method WriteLine | +| Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:33 | Before call to method WriteLine | +| Finally.cs:263:10:263:12 | Normal Exit | Finally.cs:264:5:274:5 | After {...} | +| Finally.cs:264:5:274:5 | After {...} | Finally.cs:265:9:273:9 | After try {...} ... | +| Finally.cs:264:5:274:5 | {...} | Finally.cs:263:10:263:12 | Entry | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:270:9:273:9 | After {...} | | Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:264:5:274:5 | {...} | +| Finally.cs:266:9:268:9 | After {...} | Finally.cs:267:13:267:35 | After ...; | | Finally.cs:266:9:268:9 | {...} | Finally.cs:265:9:273:9 | try {...} ... | +| Finally.cs:267:13:267:34 | Before call to method WriteLine | Finally.cs:267:13:267:35 | ...; | | Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:267:31:267:33 | "1" | | Finally.cs:267:13:267:35 | ...; | Finally.cs:266:9:268:9 | {...} | -| Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:35 | ...; | +| Finally.cs:267:13:267:35 | After ...; | Finally.cs:267:13:267:34 | After call to method WriteLine | +| Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:34 | Before call to method WriteLine | +| Finally.cs:270:9:273:9 | After {...} | Finally.cs:272:13:272:19 | After ...; | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:266:9:268:9 | After {...} | | Finally.cs:270:9:273:9 | {...} | Finally.cs:267:13:267:34 | call to method WriteLine | +| Finally.cs:271:13:271:34 | After call to method WriteLine | Finally.cs:271:13:271:34 | call to method WriteLine | +| Finally.cs:271:13:271:34 | Before call to method WriteLine | Finally.cs:271:13:271:35 | ...; | | Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:271:31:271:33 | "3" | | Finally.cs:271:13:271:35 | ...; | Finally.cs:270:9:273:9 | {...} | -| Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:35 | ...; | -| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:13:272:19 | ...; | +| Finally.cs:271:13:271:35 | After ...; | Finally.cs:271:13:271:34 | After call to method WriteLine | +| Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:34 | Before call to method WriteLine | +| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:13:272:18 | Before ... += ... | | Finally.cs:272:13:272:18 | ... += ... | Finally.cs:272:18:272:18 | 3 | -| Finally.cs:272:13:272:19 | ...; | Finally.cs:271:13:271:34 | call to method WriteLine | +| Finally.cs:272:13:272:18 | After ... += ... | Finally.cs:272:13:272:18 | ... += ... | +| Finally.cs:272:13:272:18 | Before ... += ... | Finally.cs:272:13:272:19 | ...; | +| Finally.cs:272:13:272:19 | ...; | Finally.cs:271:13:271:35 | After ...; | +| Finally.cs:272:13:272:19 | After ...; | Finally.cs:272:13:272:18 | After ... += ... | | 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 | call to method | +| Foreach.cs:4:7:4:13 | After call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | After call to method | Foreach.cs:4:7:4:13 | call to method | +| Foreach.cs:4:7:4:13 | Before call to constructor Object | Foreach.cs:4:7:4:13 | After call to method | +| Foreach.cs:4:7:4:13 | Before call to method | Foreach.cs:4:7:4:13 | Entry | +| Foreach.cs:4:7:4:13 | Exit | Foreach.cs:4:7:4:13 | Normal Exit | +| Foreach.cs:4:7:4:13 | Normal Exit | Foreach.cs:4:7:4:13 | {...} | +| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | Before 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 | 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 ...) ... | -| Foreach.cs:7:5:10:5 | {...} | Foreach.cs:6:10:6:11 | enter M1 | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | access to parameter args | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:9:13:9:13 | ; | -| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:7:5:10:5 | {...} | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | Before call to method | +| Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | After call to constructor Object | +| Foreach.cs:6:10:6:11 | Exit | Foreach.cs:6:10:6:11 | Normal Exit | +| Foreach.cs:6:10:6:11 | Normal Exit | Foreach.cs:7:5:10:5 | After {...} | +| Foreach.cs:7:5:10:5 | After {...} | Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | +| Foreach.cs:7:5:10:5 | {...} | Foreach.cs:6:10:6:11 | Entry | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | +| Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:9:13:9:13 | ; | +| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:7:5:10:5 | {...} | +| Foreach.cs:8:22:8:24 | String arg | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | +| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | | Foreach.cs:9:13:9:13 | ; | Foreach.cs:8:22:8:24 | String arg | -| Foreach.cs:12:10:12:11 | exit M2 | Foreach.cs:12:10:12:11 | exit M2 (normal) | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | -| Foreach.cs:13:5:16:5 | {...} | Foreach.cs:12:10:12:11 | enter M2 | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:27:14:30 | access to parameter args | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:15:13:15:13 | ; | -| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:13:5:16:5 | {...} | +| Foreach.cs:12:10:12:11 | Exit | Foreach.cs:12:10:12:11 | Normal Exit | +| Foreach.cs:12:10:12:11 | Normal Exit | Foreach.cs:13:5:16:5 | After {...} | +| Foreach.cs:13:5:16:5 | After {...} | Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | +| Foreach.cs:13:5:16:5 | {...} | Foreach.cs:12:10:12:11 | Entry | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | +| Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:15:13:15:13 | ; | +| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:13:5:16:5 | {...} | +| Foreach.cs:14:22:14:22 | String _ | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | +| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | | Foreach.cs:15:13:15:13 | ; | Foreach.cs:14:22:14:22 | String _ | -| Foreach.cs:18:10:18:11 | exit M3 | Foreach.cs:18:10:18:11 | exit M3 (normal) | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | -| Foreach.cs:19:5:22:5 | {...} | Foreach.cs:18:10:18:11 | enter M3 | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:27:20:68 | ... ?? ... | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:21:11:21:11 | ; | -| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:19:5:22:5 | {...} | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:43:20:68 | call to method Empty | +| Foreach.cs:18:10:18:11 | Exit | Foreach.cs:18:10:18:11 | Normal Exit | +| Foreach.cs:18:10:18:11 | Normal Exit | Foreach.cs:19:5:22:5 | After {...} | +| Foreach.cs:19:5:22:5 | After {...} | Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | +| Foreach.cs:19:5:22:5 | {...} | Foreach.cs:18:10:18:11 | Entry | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | +| Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:21:11:21:11 | ; | +| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:19:5:22:5 | {...} | +| Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | +| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:38 | Before call to method ToArray | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:27:20:27 | After access to parameter e [null] | +| Foreach.cs:20:27:20:38 | Before call to method ToArray | Foreach.cs:20:27:20:68 | ... ?? ... | +| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | +| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:20:43:20:68 | Before call to method Empty | Foreach.cs:20:27:20:38 | After call to method ToArray [null] | +| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | Before call to method Empty | | Foreach.cs:21:11:21:11 | ; | Foreach.cs:20:22:20:22 | String x | -| Foreach.cs:24:10:24:11 | exit M4 | Foreach.cs:24:10:24:11 | exit M4 (normal) | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | -| Foreach.cs:25:5:28:5 | {...} | Foreach.cs:24:10:24:11 | enter M4 | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:36:26:39 | access to parameter args | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:27:11:27:11 | ; | +| Foreach.cs:24:10:24:11 | Exit | Foreach.cs:24:10:24:11 | Normal Exit | +| Foreach.cs:24:10:24:11 | Normal Exit | Foreach.cs:25:5:28:5 | After {...} | +| Foreach.cs:25:5:28:5 | After {...} | Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | +| Foreach.cs:25:5:28:5 | {...} | Foreach.cs:24:10:24:11 | Entry | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | +| Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:27:11:27:11 | ; | +| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:25:5:28:5 | {...} | | Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:26:30:26:30 | Int32 y | +| Foreach.cs:26:18:26:31 | After (..., ...) | Foreach.cs:26:18:26:31 | (..., ...) | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | +| Foreach.cs:26:23:26:23 | String x | Foreach.cs:26:18:26:31 | Before (..., ...) | | Foreach.cs:26:30:26:30 | Int32 y | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:25:5:28:5 | {...} | -| Foreach.cs:27:11:27:11 | ; | Foreach.cs:26:18:26:31 | (..., ...) | -| Foreach.cs:30:10:30:11 | exit M5 | Foreach.cs:30:10:30:11 | exit M5 (normal) | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | -| Foreach.cs:31:5:34:5 | {...} | Foreach.cs:30:10:30:11 | enter M5 | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:32:32:35 | access to parameter args | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:33:11:33:11 | ; | +| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | +| Foreach.cs:27:11:27:11 | ; | Foreach.cs:26:18:26:31 | After (..., ...) | +| Foreach.cs:30:10:30:11 | Exit | Foreach.cs:30:10:30:11 | Normal Exit | +| Foreach.cs:30:10:30:11 | Normal Exit | Foreach.cs:31:5:34:5 | After {...} | +| Foreach.cs:31:5:34:5 | After {...} | Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | +| Foreach.cs:31:5:34:5 | {...} | Foreach.cs:30:10:30:11 | Entry | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | +| Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:33:11:33:11 | ; | +| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:31:5:34:5 | {...} | | Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:32:26:32:26 | Int32 y | +| Foreach.cs:32:18:32:27 | After (..., ...) | Foreach.cs:32:18:32:27 | (..., ...) | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | +| Foreach.cs:32:23:32:23 | String x | Foreach.cs:32:18:32:27 | Before (..., ...) | | Foreach.cs:32:26:32:26 | Int32 y | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:31:5:34:5 | {...} | -| Foreach.cs:33:11:33:11 | ; | Foreach.cs:32:18:32:27 | (..., ...) | -| Foreach.cs:36:10:36:11 | exit M6 | Foreach.cs:36:10:36:11 | exit M6 (normal) | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | -| Foreach.cs:37:5:40:5 | {...} | Foreach.cs:36:10:36:11 | enter M6 | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | 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:32:32:32:35 | access to parameter args | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | +| Foreach.cs:33:11:33:11 | ; | Foreach.cs:32:18:32:27 | After (..., ...) | +| Foreach.cs:36:10:36:11 | Exit | Foreach.cs:36:10:36:11 | Normal Exit | +| Foreach.cs:36:10:36:11 | Normal Exit | Foreach.cs:37:5:40:5 | After {...} | +| Foreach.cs:37:5:40:5 | After {...} | Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | +| Foreach.cs:37:5:40:5 | {...} | Foreach.cs:36:10:36:11 | Entry | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | +| Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:39:11:39:11 | ; | +| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:37:5:40:5 | {...} | | Foreach.cs:38:18:38:34 | (..., ...) | Foreach.cs:38:33:38:33 | Int32 y | +| Foreach.cs:38:18:38:34 | After (..., ...) | Foreach.cs:38:18:38:34 | (..., ...) | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | +| Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:18:38:34 | Before (..., ...) | | 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 | access to field F | Initializers.cs:5:13:5:17 | ... + ... | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | enter | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:9:5:9 | access to field F | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:9:5:9 | this access | +| 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:18:38:34 | After (..., ...) | +| Initializers.cs:3:7:3:18 | Exit | Initializers.cs:3:7:3:18 | Normal Exit | +| Initializers.cs:3:7:3:18 | Exit | Initializers.cs:3:7:3:18 | Normal Exit | +| Initializers.cs:3:7:3:18 | Normal Exit | Initializers.cs:3:7:3:18 | {...} | +| Initializers.cs:3:7:3:18 | Normal Exit | Initializers.cs:6:25:6:31 | After ... = ... | +| Initializers.cs:3:7:3:18 | {...} | Initializers.cs:18:16:18:20 | After ... = ... | +| Initializers.cs:5:9:5:9 | After access to field F | Initializers.cs:5:9:5:9 | access to field F | +| Initializers.cs:5:9:5:9 | Before access to field F | Initializers.cs:5:9:5:17 | Before ... = ... | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:9 | this access | +| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:9:5:9 | Before access to field F | +| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:13:5:17 | After ... + ... | +| Initializers.cs:5:9:5:17 | After ... = ... | Initializers.cs:5:9:5:17 | ... = ... | +| Initializers.cs:5:9:5:17 | Before ... = ... | Initializers.cs:3:7:3:18 | Entry | +| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:13:5:17 | Before ... + ... | | Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:17:5:17 | 1 | +| Initializers.cs:5:13:5:17 | After ... + ... | Initializers.cs:5:13:5:17 | ... + ... | +| Initializers.cs:5:13:5:17 | Before ... + ... | Initializers.cs:5:9:5:9 | After access to field F | | 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 | 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:27:6:27 | access to field H | Initializers.cs:6:9:6:9 | this access | +| Initializers.cs:6:9:6:9 | After access to property G | Initializers.cs:6:9:6:9 | access to property G | +| Initializers.cs:6:9:6:9 | Before access to property G | Initializers.cs:6:25:6:31 | Before ... = ... | +| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:9:6:9 | this access | +| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:9:6:9 | Before access to property G | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:27:6:31 | After ... + ... | +| Initializers.cs:6:25:6:31 | After ... = ... | Initializers.cs:6:25:6:31 | ... = ... | +| Initializers.cs:6:25:6:31 | Before ... = ... | Initializers.cs:5:9:5:17 | After ... = ... | +| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:27:6:31 | Before ... + ... | | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:31:6:31 | 2 | +| Initializers.cs:6:27:6:31 | After ... + ... | Initializers.cs:6:27:6:31 | ... + ... | +| Initializers.cs:6:27:6:31 | Before ... + ... | Initializers.cs:6:9:6:9 | After access to property G | | 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 | call to method | +| Initializers.cs:8:5:8:16 | After call to constructor Object | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | After call to method | Initializers.cs:8:5:8:16 | call to method | +| Initializers.cs:8:5:8:16 | Before call to constructor Object | Initializers.cs:8:5:8:16 | After call to method | +| Initializers.cs:8:5:8:16 | Before call to method | Initializers.cs:8:5:8:16 | Entry | +| Initializers.cs:8:5:8:16 | Exit | Initializers.cs:8:5:8:16 | Normal Exit | +| Initializers.cs:8:5:8:16 | Normal Exit | Initializers.cs:8:20:8:22 | {...} | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | Before 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 | 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: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:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | Before call to method | +| Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | After call to constructor Object | +| Initializers.cs:10:5:10:16 | After call to constructor Object | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | After call to method | Initializers.cs:10:5:10:16 | call to method | +| Initializers.cs:10:5:10:16 | Before call to constructor Object | Initializers.cs:10:5:10:16 | After call to method | +| Initializers.cs:10:5:10:16 | Before call to method | Initializers.cs:10:5:10:16 | Entry | +| Initializers.cs:10:5:10:16 | Exit | Initializers.cs:10:5:10:16 | Normal Exit | +| Initializers.cs:10:5:10:16 | Normal Exit | Initializers.cs:10:28:10:30 | {...} | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | Before 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 | 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: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 | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | Before call to method | +| Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | After call to constructor Object | +| Initializers.cs:12:10:12:10 | Exit | Initializers.cs:12:10:12:10 | Normal Exit | +| Initializers.cs:12:10:12:10 | Normal Exit | Initializers.cs:13:5:16:5 | After {...} | +| Initializers.cs:13:5:16:5 | After {...} | Initializers.cs:15:9:15:64 | After ... ...; | +| Initializers.cs:13:5:16:5 | {...} | Initializers.cs:12:10:12:10 | Entry | | Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:13:5:16:5 | {...} | -| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:14:38:14:53 | { ..., ... } | +| Initializers.cs:14:9:14:54 | After ... ...; | Initializers.cs:14:13:14:53 | After Initializers i = ... | +| Initializers.cs:14:13:14:13 | access to local variable i | Initializers.cs:14:13:14:53 | Before Initializers i = ... | +| Initializers.cs:14:13:14:53 | After Initializers i = ... | Initializers.cs:14:13:14:53 | Initializers i = ... | +| Initializers.cs:14:13:14:53 | Before Initializers i = ... | Initializers.cs:14:9:14:54 | ... ...; | +| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:14:17:14:53 | After object creation of type Initializers | +| Initializers.cs:14:17:14:53 | After object creation of type Initializers | Initializers.cs:14:38:14:53 | After { ..., ... } | +| Initializers.cs:14:17:14:53 | Before object creation of type Initializers | Initializers.cs:14:13:14:13 | access to local variable i | | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:34:14:35 | "" | -| Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:9:14:54 | ... ...; | -| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:47:14:51 | ... = ... | -| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:44:14:44 | 0 | -| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:40:14:40 | access to field F | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:17:14:53 | object creation of type Initializers | -| Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:51:14:51 | 1 | -| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:47:14:47 | access to property G | -| Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:40:14:44 | ... = ... | -| Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:14:13:14:53 | Initializers i = ... | -| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:15:37:15:63 | { ..., ... } | -| Initializers.cs:15:18:15:63 | 2 | Initializers.cs:15:9:15:64 | ... ...; | +| Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:17:14:53 | Before object creation of type Initializers | +| Initializers.cs:14:38:14:53 | After { ..., ... } | Initializers.cs:14:38:14:53 | { ..., ... } | +| Initializers.cs:14:38:14:53 | Before { ..., ... } | Initializers.cs:14:17:14:53 | object creation of type Initializers | +| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:47:14:51 | After ... = ... | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:44 | Before ... = ... | +| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:40:14:44 | After ... = ... | Initializers.cs:14:40:14:44 | ... = ... | +| Initializers.cs:14:40:14:44 | Before ... = ... | Initializers.cs:14:38:14:53 | Before { ..., ... } | +| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:40 | access to field F | +| Initializers.cs:14:47:14:47 | After access to property G | Initializers.cs:14:47:14:47 | access to property G | +| Initializers.cs:14:47:14:47 | Before access to property G | Initializers.cs:14:47:14:51 | Before ... = ... | +| Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:47 | Before access to property G | +| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:51:14:51 | 1 | +| Initializers.cs:14:47:14:51 | After ... = ... | Initializers.cs:14:47:14:51 | ... = ... | +| Initializers.cs:14:47:14:51 | Before ... = ... | Initializers.cs:14:40:14:44 | After ... = ... | +| Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:47 | After access to property G | +| Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:14:9:14:54 | After ... ...; | +| Initializers.cs:15:9:15:64 | After ... ...; | Initializers.cs:15:13:15:63 | After Initializers[] iz = ... | +| Initializers.cs:15:13:15:14 | access to local variable iz | Initializers.cs:15:13:15:63 | Before Initializers[] iz = ... | +| Initializers.cs:15:13:15:63 | After Initializers[] iz = ... | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | +| Initializers.cs:15:13:15:63 | Before Initializers[] iz = ... | Initializers.cs:15:9:15:64 | ... ...; | +| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:15:18:15:63 | After array creation of type Initializers[] | +| Initializers.cs:15:18:15:63 | 2 | Initializers.cs:15:37:15:63 | After { ..., ... } | +| Initializers.cs:15:18:15:63 | After array creation of type Initializers[] | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | +| Initializers.cs:15:18:15:63 | Before array creation of type Initializers[] | Initializers.cs:15:13:15:14 | access to local variable iz | | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:18:15:63 | 2 | -| Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:42:15:61 | object creation of type Initializers | -| Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | +| Initializers.cs:15:37:15:63 | After { ..., ... } | Initializers.cs:15:37:15:63 | { ..., ... } | +| Initializers.cs:15:37:15:63 | Before { ..., ... } | Initializers.cs:15:18:15:63 | Before array creation of type Initializers[] | +| Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:42:15:61 | After object creation of type Initializers | +| Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:37:15:63 | Before { ..., ... } | +| Initializers.cs:15:42:15:61 | After object creation of type Initializers | Initializers.cs:15:42:15:61 | object creation of type Initializers | +| Initializers.cs:15:42:15:61 | Before object creation of type Initializers | Initializers.cs:15:39:15:39 | access to local variable i | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:59:15:60 | "" | -| Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:39:15:39 | access to local variable i | -| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:20:18:20 | 1 | -| Initializers.cs:18:16:18:16 | exit H | Initializers.cs:18:16:18:16 | exit H (normal) | -| Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:20 | ... = ... | -| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | access to field H | -| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | enter H | -| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | call to method | +| Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:42:15:61 | Before object creation of type Initializers | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:20 | Before ... = ... | +| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:20:18:20 | 1 | +| Initializers.cs:18:16:18:20 | After ... = ... | Initializers.cs:18:16:18:20 | ... = ... | +| Initializers.cs:18:16:18:20 | Before ... = ... | Initializers.cs:3:7:3:18 | Entry | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | access to field H | +| Initializers.cs:20:11:20:23 | After call to constructor Object | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:20:11:20:23 | After call to method | Initializers.cs:20:11:20:23 | call to method | +| Initializers.cs:20:11:20:23 | Before call to constructor Object | Initializers.cs:20:11:20:23 | After call to method | +| Initializers.cs:20:11:20:23 | Before call to method | Initializers.cs:20:11:20:23 | Entry | +| Initializers.cs:20:11:20:23 | Exit | Initializers.cs:20:11:20:23 | Normal Exit | +| Initializers.cs:20:11:20:23 | Exit | Initializers.cs:20:11:20:23 | Normal Exit | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:20:11:20:23 | {...} | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:23:23:23:27 | After ... = ... | +| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | Before 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 | 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 | this access | Initializers.cs:20:11:20:23 | enter NoConstructor | -| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | call to constructor Object | -| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:27:22:27 | 0 | -| Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | enter | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:23:22:23 | access to field F | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | this access | -| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:27:23:27 | 1 | -| Initializers.cs:23:23:23:23 | this access | Initializers.cs:22:23:22:27 | ... = ... | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:23:23:23 | access to field G | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | this access | -| Initializers.cs:26:11:26:13 | exit | Initializers.cs:26:11:26:13 | exit (normal) | -| Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:28:13:28:17 | ... = ... | -| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:17:28:17 | 2 | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | enter | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:13 | access to field H | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | Before call to method | +| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | After call to constructor Object | +| Initializers.cs:22:23:22:23 | After access to field F | Initializers.cs:22:23:22:23 | access to field F | +| Initializers.cs:22:23:22:23 | Before access to field F | Initializers.cs:22:23:22:27 | Before ... = ... | +| 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 | Before access to field F | +| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:27:22:27 | 0 | +| Initializers.cs:22:23:22:27 | After ... = ... | Initializers.cs:22:23:22:27 | ... = ... | +| Initializers.cs:22:23:22:27 | Before ... = ... | Initializers.cs:20:11:20:23 | Entry | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | After access to field F | +| Initializers.cs:23:23:23:23 | After access to field G | Initializers.cs:23:23:23:23 | access to field G | +| Initializers.cs:23:23:23:23 | Before access to field G | Initializers.cs:23:23:23:27 | Before ... = ... | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:23 | this access | +| Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:23:23:23 | Before access to field G | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:27:23:27 | 1 | +| Initializers.cs:23:23:23:27 | After ... = ... | Initializers.cs:23:23:23:27 | ... = ... | +| Initializers.cs:23:23:23:27 | Before ... = ... | Initializers.cs:22:23:22:27 | After ... = ... | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | After access to field G | +| Initializers.cs:26:11:26:13 | Exit | Initializers.cs:26:11:26:13 | Normal Exit | +| Initializers.cs:26:11:26:13 | Normal Exit | Initializers.cs:28:13:28:17 | After ... = ... | +| Initializers.cs:28:13:28:13 | After access to field H | Initializers.cs:28:13:28:13 | access to field H | +| Initializers.cs:28:13:28:13 | Before access to field H | Initializers.cs:28:13:28:17 | Before ... = ... | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:13:28:13 | Before access to field H | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:17:28:17 | 2 | +| Initializers.cs:28:13:28:17 | After ... = ... | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:28:13:28:17 | Before ... = ... | Initializers.cs:26:11:26:13 | Entry | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | After access to field H | +| Initializers.cs:31:9:31:11 | After call to method | Initializers.cs:31:9:31:11 | call to method | +| Initializers.cs:31:9:31:11 | Before call to method | Initializers.cs:31:9:31:11 | Entry | +| Initializers.cs:31:9:31:11 | Exit | Initializers.cs:31:9:31:11 | Normal Exit | +| Initializers.cs:31:9:31:11 | Normal Exit | Initializers.cs:31:24:31:33 | After {...} | | 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:9:31:11 | this access | Initializers.cs:31:9:31:11 | enter Sub | -| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | call to method | -| Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | -| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:30:31:30 | 3 | -| Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:31 | ...; | -| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:26:31:26 | access to field I | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | Before call to method | +| Initializers.cs:31:17:31:20 | After call to constructor NoConstructor | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:31:17:31:20 | Before call to constructor NoConstructor | Initializers.cs:31:9:31:11 | After call to method | +| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:17:31:20 | Before call to constructor NoConstructor | +| Initializers.cs:31:24:31:33 | After {...} | Initializers.cs:31:26:31:31 | After ...; | +| Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:17:31:20 | After call to constructor NoConstructor | +| Initializers.cs:31:26:31:26 | After access to field I | Initializers.cs:31:26:31:26 | access to field I | +| Initializers.cs:31:26:31:26 | Before access to field I | Initializers.cs:31:26:31:30 | Before ... = ... | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:26 | this access | +| Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:26 | Before access to field I | +| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:30:31:30 | 3 | +| Initializers.cs:31:26:31:30 | After ... = ... | Initializers.cs:31:26:31:30 | ... = ... | +| Initializers.cs:31:26:31:30 | Before ... = ... | Initializers.cs:31:26:31:31 | ...; | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:24:31:33 | {...} | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | this access | -| Initializers.cs:33:9:33:11 | exit Sub | Initializers.cs:33:9:33:11 | exit Sub (normal) | -| Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:31:33:35 | ... = ... | -| Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:9:33:11 | enter Sub | -| Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:22:33:25 | call to constructor Sub | -| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:35:33:35 | access to parameter i | -| Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:31:33:36 | ...; | -| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:31:33:31 | access to field I | +| Initializers.cs:31:26:31:31 | After ...; | Initializers.cs:31:26:31:30 | After ... = ... | +| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | After access to field I | +| Initializers.cs:33:9:33:11 | Exit | Initializers.cs:33:9:33:11 | Normal Exit | +| Initializers.cs:33:9:33:11 | Normal Exit | Initializers.cs:33:29:33:38 | After {...} | +| Initializers.cs:33:22:33:25 | After call to constructor Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | +| Initializers.cs:33:22:33:25 | Before call to constructor Sub | Initializers.cs:33:9:33:11 | Entry | +| Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:22:33:25 | Before call to constructor Sub | +| Initializers.cs:33:29:33:38 | After {...} | Initializers.cs:33:31:33:36 | After ...; | +| Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:22:33:25 | After call to constructor Sub | +| Initializers.cs:33:31:33:31 | After access to field I | Initializers.cs:33:31:33:31 | access to field I | +| Initializers.cs:33:31:33:31 | Before access to field I | Initializers.cs:33:31:33:35 | Before ... = ... | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:31 | this access | +| Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:31:33:31 | Before access to field I | +| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:35:33:35 | access to parameter i | +| Initializers.cs:33:31:33:35 | After ... = ... | Initializers.cs:33:31:33:35 | ... = ... | +| Initializers.cs:33:31:33:35 | Before ... = ... | Initializers.cs:33:31:33:36 | ...; | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:29:33:38 | {...} | -| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | this access | -| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to method | +| Initializers.cs:33:31:33:36 | After ...; | Initializers.cs:33:31:33:35 | After ... = ... | +| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | After access to field I | +| Initializers.cs:35:9:35:11 | After call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | After call to method | Initializers.cs:35:9:35:11 | call to method | +| Initializers.cs:35:9:35:11 | Before call to constructor NoConstructor | Initializers.cs:35:9:35:11 | After call to method | +| Initializers.cs:35:9:35:11 | Before call to method | Initializers.cs:35:9:35:11 | Entry | +| Initializers.cs:35:9:35:11 | Exit | Initializers.cs:35:9:35:11 | Normal Exit | +| Initializers.cs:35:9:35:11 | Normal Exit | Initializers.cs:35:27:35:40 | After {...} | +| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | Before 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 | 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:9:35:11 | this access | Initializers.cs:35:9:35:11 | enter Sub | -| Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | -| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:33:35:37 | ... + ... | -| Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:38 | ...; | -| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:29:35:29 | access to field I | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | Before call to method | +| Initializers.cs:35:27:35:40 | After {...} | Initializers.cs:35:29:35:38 | After ...; | +| Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | After call to constructor NoConstructor | +| Initializers.cs:35:29:35:29 | After access to field I | Initializers.cs:35:29:35:29 | access to field I | +| Initializers.cs:35:29:35:29 | Before access to field I | Initializers.cs:35:29:35:37 | Before ... = ... | +| 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 | Before access to field I | +| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:33:35:37 | After ... + ... | +| Initializers.cs:35:29:35:37 | After ... = ... | Initializers.cs:35:29:35:37 | ... = ... | +| Initializers.cs:35:29:35:37 | Before ... = ... | Initializers.cs:35:29:35:38 | ...; | | 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:29:35:38 | After ...; | Initializers.cs:35:29:35:37 | After ... = ... | +| Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:33:35:37 | Before ... + ... | | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:37:35:37 | access to parameter j | +| Initializers.cs:35:33:35:37 | After ... + ... | Initializers.cs:35:33:35:37 | ... + ... | +| Initializers.cs:35:33:35:37 | Before ... + ... | Initializers.cs:35:29:35:29 | After access to field I | | 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 | call to method | +| Initializers.cs:39:7:39:23 | After call to constructor Object | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | After call to method | Initializers.cs:39:7:39:23 | call to method | +| Initializers.cs:39:7:39:23 | Before call to constructor Object | Initializers.cs:39:7:39:23 | After call to method | +| Initializers.cs:39:7:39:23 | Before call to method | Initializers.cs:39:7:39:23 | Entry | +| Initializers.cs:39:7:39:23 | Exit | Initializers.cs:39:7:39:23 | Normal Exit | +| Initializers.cs:39:7:39:23 | Normal Exit | Initializers.cs:39:7:39:23 | {...} | +| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | Before 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 | 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 | call to method | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | Before call to method | +| Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | After call to constructor Object | +| Initializers.cs:41:11:41:18 | After call to constructor Object | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | After call to method | Initializers.cs:41:11:41:18 | call to method | +| Initializers.cs:41:11:41:18 | Before call to constructor Object | Initializers.cs:41:11:41:18 | After call to method | +| Initializers.cs:41:11:41:18 | Before call to method | Initializers.cs:41:11:41:18 | Entry | +| Initializers.cs:41:11:41:18 | Exit | Initializers.cs:41:11:41:18 | Normal Exit | +| Initializers.cs:41:11:41:18 | Normal Exit | Initializers.cs:41:11:41:18 | {...} | +| Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | Before 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 | 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 = ... | -| Initializers.cs:52:5:66:5 | {...} | Initializers.cs:51:10:51:13 | enter Test | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | Before call to method | +| Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | After call to constructor Object | +| Initializers.cs:51:10:51:13 | Exit | Initializers.cs:51:10:51:13 | Normal Exit | +| Initializers.cs:51:10:51:13 | Normal Exit | Initializers.cs:52:5:66:5 | After {...} | +| Initializers.cs:52:5:66:5 | After {...} | Initializers.cs:57:9:65:10 | After ... ...; | +| Initializers.cs:52:5:66:5 | {...} | Initializers.cs:51:10:51:13 | Entry | | Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:52:5:66:5 | {...} | -| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:54:50:54:95 | { ..., ... } | -| Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:9:54:96 | ... ...; | -| Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:79:54:93 | ... = ... | -| Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:58:54:63 | "Zero" | -| Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:54:52:54:54 | access to indexer | -| Initializers.cs:54:53:54:53 | 0 | Initializers.cs:54:20:54:95 | object creation of type Dictionary | -| Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:54:53:54:53 | 0 | -| Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:54:72:54:76 | "One" | -| Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:54:66:54:68 | access to indexer | -| Initializers.cs:54:67:54:67 | 1 | Initializers.cs:54:52:54:63 | ... = ... | -| Initializers.cs:54:72:54:76 | "One" | Initializers.cs:54:67:54:67 | 1 | -| Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:54:89:54:93 | "Two" | -| Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:54:79:54:85 | access to indexer | -| Initializers.cs:54:80:54:80 | access to parameter i | Initializers.cs:54:66:54:76 | ... = ... | +| Initializers.cs:54:9:54:96 | After ... ...; | Initializers.cs:54:13:54:95 | After Dictionary dict = ... | +| Initializers.cs:54:13:54:16 | access to local variable dict | Initializers.cs:54:13:54:95 | Before Dictionary dict = ... | +| Initializers.cs:54:13:54:95 | After Dictionary dict = ... | Initializers.cs:54:13:54:95 | Dictionary dict = ... | +| Initializers.cs:54:13:54:95 | Before Dictionary dict = ... | Initializers.cs:54:9:54:96 | ... ...; | +| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:54:20:54:95 | After object creation of type Dictionary | +| Initializers.cs:54:20:54:95 | After object creation of type Dictionary | Initializers.cs:54:50:54:95 | After { ..., ... } | +| Initializers.cs:54:20:54:95 | Before object creation of type Dictionary | Initializers.cs:54:13:54:16 | access to local variable dict | +| Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:20:54:95 | Before object creation of type Dictionary | +| Initializers.cs:54:50:54:95 | After { ..., ... } | Initializers.cs:54:50:54:95 | { ..., ... } | +| Initializers.cs:54:50:54:95 | Before { ..., ... } | Initializers.cs:54:20:54:95 | object creation of type Dictionary | +| Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:79:54:93 | After ... = ... | +| Initializers.cs:54:52:54:54 | After access to indexer | Initializers.cs:54:52:54:54 | access to indexer | +| Initializers.cs:54:52:54:54 | Before access to indexer | Initializers.cs:54:52:54:63 | Before ... = ... | +| Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:53:54:53 | 0 | +| Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:54:58:54:63 | "Zero" | +| Initializers.cs:54:52:54:63 | After ... = ... | Initializers.cs:54:52:54:63 | ... = ... | +| Initializers.cs:54:52:54:63 | Before ... = ... | Initializers.cs:54:50:54:95 | Before { ..., ... } | +| Initializers.cs:54:53:54:53 | 0 | Initializers.cs:54:52:54:54 | Before access to indexer | +| Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:54:52:54:54 | After access to indexer | +| Initializers.cs:54:66:54:68 | After access to indexer | Initializers.cs:54:66:54:68 | access to indexer | +| Initializers.cs:54:66:54:68 | Before access to indexer | Initializers.cs:54:66:54:76 | Before ... = ... | +| Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:54:67:54:67 | 1 | +| Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:54:72:54:76 | "One" | +| Initializers.cs:54:66:54:76 | After ... = ... | Initializers.cs:54:66:54:76 | ... = ... | +| Initializers.cs:54:66:54:76 | Before ... = ... | Initializers.cs:54:52:54:63 | After ... = ... | +| Initializers.cs:54:67:54:67 | 1 | Initializers.cs:54:66:54:68 | Before access to indexer | +| Initializers.cs:54:72:54:76 | "One" | Initializers.cs:54:66:54:68 | After access to indexer | +| Initializers.cs:54:79:54:85 | After access to indexer | Initializers.cs:54:79:54:85 | access to indexer | +| Initializers.cs:54:79:54:85 | Before access to indexer | Initializers.cs:54:79:54:93 | Before ... = ... | +| Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:54:80:54:84 | After ... + ... | +| Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:54:89:54:93 | "Two" | +| Initializers.cs:54:79:54:93 | After ... = ... | Initializers.cs:54:79:54:93 | ... = ... | +| Initializers.cs:54:79:54:93 | Before ... = ... | Initializers.cs:54:66:54:76 | After ... = ... | +| Initializers.cs:54:80:54:80 | access to parameter i | Initializers.cs:54:80:54:84 | Before ... + ... | | Initializers.cs:54:80:54:84 | ... + ... | Initializers.cs:54:84:54:84 | 2 | +| Initializers.cs:54:80:54:84 | After ... + ... | Initializers.cs:54:80:54:84 | ... + ... | +| Initializers.cs:54:80:54:84 | Before ... + ... | Initializers.cs:54:79:54:85 | Before access to indexer | | Initializers.cs:54:84:54:84 | 2 | Initializers.cs:54:80:54:80 | access to parameter i | -| Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:80:54:84 | ... + ... | -| Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:54:13:54:95 | Dictionary dict = ... | -| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:58:9:65:9 | { ..., ... } | -| Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:57:9:65:10 | ... ...; | -| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:64:13:64:63 | ... = ... | -| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:31:59:76 | { ..., ... } | -| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:13:59:27 | access to field DictionaryField | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:60:59:74 | ... = ... | -| Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:39:59:44 | "Zero" | -| Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:33:59:35 | access to indexer | -| Initializers.cs:59:34:59:34 | 0 | Initializers.cs:57:24:65:9 | object creation of type Compound | -| Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:59:34:59:34 | 0 | -| Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:59:53:59:57 | "One" | -| Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:59:47:59:49 | access to indexer | -| Initializers.cs:59:48:59:48 | 1 | Initializers.cs:59:33:59:44 | ... = ... | -| Initializers.cs:59:53:59:57 | "One" | Initializers.cs:59:48:59:48 | 1 | -| Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:59:70:59:74 | "Two" | -| Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:59:60:59:66 | access to indexer | -| Initializers.cs:59:61:59:61 | access to parameter i | Initializers.cs:59:47:59:57 | ... = ... | +| Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:79:54:85 | After access to indexer | +| Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:54:9:54:96 | After ... ...; | +| Initializers.cs:57:9:65:10 | After ... ...; | Initializers.cs:57:13:65:9 | After Compound compound = ... | +| Initializers.cs:57:13:57:20 | access to local variable compound | Initializers.cs:57:13:65:9 | Before Compound compound = ... | +| Initializers.cs:57:13:65:9 | After Compound compound = ... | Initializers.cs:57:13:65:9 | Compound compound = ... | +| Initializers.cs:57:13:65:9 | Before Compound compound = ... | Initializers.cs:57:9:65:10 | ... ...; | +| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:57:24:65:9 | After object creation of type Compound | +| Initializers.cs:57:24:65:9 | After object creation of type Compound | Initializers.cs:58:9:65:9 | After { ..., ... } | +| Initializers.cs:57:24:65:9 | Before object creation of type Compound | Initializers.cs:57:13:57:20 | access to local variable compound | +| Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:57:24:65:9 | Before object creation of type Compound | +| Initializers.cs:58:9:65:9 | After { ..., ... } | Initializers.cs:58:9:65:9 | { ..., ... } | +| Initializers.cs:58:9:65:9 | Before { ..., ... } | Initializers.cs:57:24:65:9 | object creation of type Compound | +| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:64:13:64:63 | After ... = ... | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:76 | Before ... = ... | +| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:31:59:76 | After { ..., ... } | +| Initializers.cs:59:13:59:76 | After ... = ... | Initializers.cs:59:13:59:76 | ... = ... | +| Initializers.cs:59:13:59:76 | Before ... = ... | Initializers.cs:58:9:65:9 | Before { ..., ... } | +| Initializers.cs:59:31:59:76 | After { ..., ... } | Initializers.cs:59:31:59:76 | { ..., ... } | +| Initializers.cs:59:31:59:76 | Before { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | +| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:60:59:74 | After ... = ... | +| Initializers.cs:59:33:59:35 | After access to indexer | Initializers.cs:59:33:59:35 | access to indexer | +| Initializers.cs:59:33:59:35 | Before access to indexer | Initializers.cs:59:33:59:44 | Before ... = ... | +| Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:34:59:34 | 0 | +| Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:39:59:44 | "Zero" | +| Initializers.cs:59:33:59:44 | After ... = ... | Initializers.cs:59:33:59:44 | ... = ... | +| Initializers.cs:59:33:59:44 | Before ... = ... | Initializers.cs:59:31:59:76 | Before { ..., ... } | +| Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:33:59:35 | Before access to indexer | +| Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:59:33:59:35 | After access to indexer | +| Initializers.cs:59:47:59:49 | After access to indexer | Initializers.cs:59:47:59:49 | access to indexer | +| Initializers.cs:59:47:59:49 | Before access to indexer | Initializers.cs:59:47:59:57 | Before ... = ... | +| Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:59:48:59:48 | 1 | +| Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:59:53:59:57 | "One" | +| Initializers.cs:59:47:59:57 | After ... = ... | Initializers.cs:59:47:59:57 | ... = ... | +| Initializers.cs:59:47:59:57 | Before ... = ... | Initializers.cs:59:33:59:44 | After ... = ... | +| Initializers.cs:59:48:59:48 | 1 | Initializers.cs:59:47:59:49 | Before access to indexer | +| Initializers.cs:59:53:59:57 | "One" | Initializers.cs:59:47:59:49 | After access to indexer | +| Initializers.cs:59:60:59:66 | After access to indexer | Initializers.cs:59:60:59:66 | access to indexer | +| Initializers.cs:59:60:59:66 | Before access to indexer | Initializers.cs:59:60:59:74 | Before ... = ... | +| Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:59:61:59:65 | After ... + ... | +| Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:59:70:59:74 | "Two" | +| Initializers.cs:59:60:59:74 | After ... = ... | Initializers.cs:59:60:59:74 | ... = ... | +| Initializers.cs:59:60:59:74 | Before ... = ... | Initializers.cs:59:47:59:57 | After ... = ... | +| Initializers.cs:59:61:59:61 | access to parameter i | Initializers.cs:59:61:59:65 | Before ... + ... | | Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:59:65:59:65 | 2 | +| Initializers.cs:59:61:59:65 | After ... + ... | Initializers.cs:59:61:59:65 | ... + ... | +| Initializers.cs:59:61:59:65 | Before ... + ... | Initializers.cs:59:60:59:66 | Before access to indexer | | Initializers.cs:59:65:59:65 | 2 | Initializers.cs:59:61:59:61 | access to parameter i | -| Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:61:59:65 | ... + ... | -| Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:60:34:60:80 | { ..., ... } | -| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | -| Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:64:60:78 | ... = ... | -| Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:42:60:48 | "Three" | -| Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:36:60:38 | access to indexer | -| Initializers.cs:60:37:60:37 | 3 | Initializers.cs:59:13:59:76 | ... = ... | -| Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:60:37:60:37 | 3 | -| Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:60:57:60:61 | "Two" | -| Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:60:51:60:53 | access to indexer | -| Initializers.cs:60:52:60:52 | 2 | Initializers.cs:60:36:60:48 | ... = ... | -| Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:60:52:60:52 | 2 | -| Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:60:74:60:78 | "One" | -| Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:60:64:60:70 | access to indexer | -| Initializers.cs:60:65:60:65 | access to parameter i | Initializers.cs:60:51:60:61 | ... = ... | +| Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:60:59:66 | After access to indexer | +| Initializers.cs:60:13:60:30 | After access to property DictionaryProperty | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | +| Initializers.cs:60:13:60:30 | Before access to property DictionaryProperty | Initializers.cs:60:13:60:80 | Before ... = ... | +| Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:60:13:60:30 | Before access to property DictionaryProperty | +| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:60:34:60:80 | After { ..., ... } | +| Initializers.cs:60:13:60:80 | After ... = ... | Initializers.cs:60:13:60:80 | ... = ... | +| Initializers.cs:60:13:60:80 | Before ... = ... | Initializers.cs:59:13:59:76 | After ... = ... | +| Initializers.cs:60:34:60:80 | After { ..., ... } | Initializers.cs:60:34:60:80 | { ..., ... } | +| Initializers.cs:60:34:60:80 | Before { ..., ... } | Initializers.cs:60:13:60:30 | After access to property DictionaryProperty | +| Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:64:60:78 | After ... = ... | +| Initializers.cs:60:36:60:38 | After access to indexer | Initializers.cs:60:36:60:38 | access to indexer | +| Initializers.cs:60:36:60:38 | Before access to indexer | Initializers.cs:60:36:60:48 | Before ... = ... | +| Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:37:60:37 | 3 | +| Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:42:60:48 | "Three" | +| Initializers.cs:60:36:60:48 | After ... = ... | Initializers.cs:60:36:60:48 | ... = ... | +| Initializers.cs:60:36:60:48 | Before ... = ... | Initializers.cs:60:34:60:80 | Before { ..., ... } | +| Initializers.cs:60:37:60:37 | 3 | Initializers.cs:60:36:60:38 | Before access to indexer | +| Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:60:36:60:38 | After access to indexer | +| Initializers.cs:60:51:60:53 | After access to indexer | Initializers.cs:60:51:60:53 | access to indexer | +| Initializers.cs:60:51:60:53 | Before access to indexer | Initializers.cs:60:51:60:61 | Before ... = ... | +| Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:60:52:60:52 | 2 | +| Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:60:57:60:61 | "Two" | +| Initializers.cs:60:51:60:61 | After ... = ... | Initializers.cs:60:51:60:61 | ... = ... | +| Initializers.cs:60:51:60:61 | Before ... = ... | Initializers.cs:60:36:60:48 | After ... = ... | +| Initializers.cs:60:52:60:52 | 2 | Initializers.cs:60:51:60:53 | Before access to indexer | +| Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:60:51:60:53 | After access to indexer | +| Initializers.cs:60:64:60:70 | After access to indexer | Initializers.cs:60:64:60:70 | access to indexer | +| Initializers.cs:60:64:60:70 | Before access to indexer | Initializers.cs:60:64:60:78 | Before ... = ... | +| Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:60:65:60:69 | After ... + ... | +| Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:60:74:60:78 | "One" | +| Initializers.cs:60:64:60:78 | After ... = ... | Initializers.cs:60:64:60:78 | ... = ... | +| Initializers.cs:60:64:60:78 | Before ... = ... | Initializers.cs:60:51:60:61 | After ... = ... | +| Initializers.cs:60:65:60:65 | access to parameter i | Initializers.cs:60:65:60:69 | Before ... + ... | | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:69:60:69 | 1 | +| Initializers.cs:60:65:60:69 | After ... + ... | Initializers.cs:60:65:60:69 | ... + ... | +| Initializers.cs:60:65:60:69 | Before ... + ... | Initializers.cs:60:64:60:70 | Before access to indexer | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:65 | access to parameter i | -| Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:65:60:69 | ... + ... | -| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:26:61:58 | { ..., ... } | -| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:13:61:22 | access to field ArrayField | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:42:61:56 | ... = ... | -| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:34:61:39 | "Zero" | -| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:28:61:30 | access to array element | -| Initializers.cs:61:29:61:29 | 0 | Initializers.cs:60:13:60:80 | ... = ... | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:29:61:29 | 0 | -| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:52:61:56 | "One" | -| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:42:61:48 | access to array element | -| Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:28:61:39 | ... = ... | +| Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:70 | After access to indexer | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:58 | Before ... = ... | +| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:26:61:58 | After { ..., ... } | +| Initializers.cs:61:13:61:58 | After ... = ... | Initializers.cs:61:13:61:58 | ... = ... | +| Initializers.cs:61:13:61:58 | Before ... = ... | Initializers.cs:60:13:60:80 | After ... = ... | +| Initializers.cs:61:26:61:58 | After { ..., ... } | Initializers.cs:61:26:61:58 | { ..., ... } | +| Initializers.cs:61:26:61:58 | Before { ..., ... } | Initializers.cs:61:13:61:22 | access to field ArrayField | +| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:42:61:56 | After ... = ... | +| Initializers.cs:61:28:61:30 | After access to array element | Initializers.cs:61:28:61:30 | access to array element | +| Initializers.cs:61:28:61:30 | Before access to array element | Initializers.cs:61:28:61:39 | Before ... = ... | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:29:61:29 | 0 | +| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:34:61:39 | "Zero" | +| Initializers.cs:61:28:61:39 | After ... = ... | Initializers.cs:61:28:61:39 | ... = ... | +| Initializers.cs:61:28:61:39 | Before ... = ... | Initializers.cs:61:26:61:58 | Before { ..., ... } | +| Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:28:61:30 | Before access to array element | +| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:30 | After access to array element | +| Initializers.cs:61:42:61:48 | After access to array element | Initializers.cs:61:42:61:48 | access to array element | +| Initializers.cs:61:42:61:48 | Before access to array element | Initializers.cs:61:42:61:56 | Before ... = ... | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:43:61:47 | After ... + ... | +| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:52:61:56 | "One" | +| Initializers.cs:61:42:61:56 | After ... = ... | Initializers.cs:61:42:61:56 | ... = ... | +| Initializers.cs:61:42:61:56 | Before ... = ... | Initializers.cs:61:28:61:39 | After ... = ... | +| Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:43:61:47 | Before ... + ... | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:47:61:47 | 1 | +| Initializers.cs:61:43:61:47 | After ... + ... | Initializers.cs:61:43:61:47 | ... + ... | +| Initializers.cs:61:43:61:47 | Before ... + ... | Initializers.cs:61:42:61:48 | Before access to array element | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:43 | access to parameter i | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:43:61:47 | ... + ... | -| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:27:62:60 | { ..., ... } | -| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:13:62:23 | access to field ArrayField2 | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:43:62:58 | ... = ... | -| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:38:62:40 | "i" | -| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:29:62:34 | access to array element | -| Initializers.cs:62:30:62:30 | 0 | Initializers.cs:61:13:61:58 | ... = ... | +| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:48 | After access to array element | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:60 | Before ... = ... | +| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:27:62:60 | After { ..., ... } | +| Initializers.cs:62:13:62:60 | After ... = ... | Initializers.cs:62:13:62:60 | ... = ... | +| Initializers.cs:62:13:62:60 | Before ... = ... | Initializers.cs:61:13:61:58 | After ... = ... | +| Initializers.cs:62:27:62:60 | After { ..., ... } | Initializers.cs:62:27:62:60 | { ..., ... } | +| Initializers.cs:62:27:62:60 | Before { ..., ... } | Initializers.cs:62:13:62:23 | access to field ArrayField2 | +| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:43:62:58 | After ... = ... | +| Initializers.cs:62:29:62:34 | After access to array element | Initializers.cs:62:29:62:34 | access to array element | +| Initializers.cs:62:29:62:34 | Before access to array element | Initializers.cs:62:29:62:40 | Before ... = ... | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:33:62:33 | 1 | +| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:38:62:40 | "i" | +| Initializers.cs:62:29:62:40 | After ... = ... | Initializers.cs:62:29:62:40 | ... = ... | +| Initializers.cs:62:29:62:40 | Before ... = ... | Initializers.cs:62:27:62:60 | Before { ..., ... } | +| Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:29:62:34 | Before access to array element | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:30:62:30 | 0 | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:33:62:33 | 1 | -| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:56:62:58 | "1" | -| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:43:62:52 | access to array element | -| Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:29:62:40 | ... = ... | -| Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:44:62:44 | 1 | +| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:34 | After access to array element | +| Initializers.cs:62:43:62:52 | After access to array element | Initializers.cs:62:43:62:52 | access to array element | +| Initializers.cs:62:43:62:52 | Before access to array element | Initializers.cs:62:43:62:58 | Before ... = ... | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:47:62:51 | After ... + ... | +| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:56:62:58 | "1" | +| Initializers.cs:62:43:62:58 | After ... = ... | Initializers.cs:62:43:62:58 | ... = ... | +| Initializers.cs:62:43:62:58 | Before ... = ... | Initializers.cs:62:29:62:40 | After ... = ... | +| Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:43:62:52 | Before access to array element | +| Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:47:62:51 | Before ... + ... | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:51:62:51 | 0 | +| Initializers.cs:62:47:62:51 | After ... + ... | Initializers.cs:62:47:62:51 | ... + ... | +| Initializers.cs:62:47:62:51 | Before ... + ... | Initializers.cs:62:44:62:44 | 1 | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:47:62:47 | access to parameter i | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:47:62:51 | ... + ... | -| Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:29:63:60 | { ..., ... } | -| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:13:63:25 | access to property ArrayProperty | -| Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:44:63:58 | ... = ... | -| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:37:63:41 | "One" | -| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:31:63:33 | access to array element | -| Initializers.cs:63:32:63:32 | 1 | Initializers.cs:62:13:62:60 | ... = ... | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:32:63:32 | 1 | -| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:54:63:58 | "Two" | -| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:44:63:50 | access to array element | -| Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:31:63:41 | ... = ... | +| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:52 | After access to array element | +| Initializers.cs:63:13:63:25 | After access to property ArrayProperty | Initializers.cs:63:13:63:25 | access to property ArrayProperty | +| Initializers.cs:63:13:63:25 | Before access to property ArrayProperty | Initializers.cs:63:13:63:60 | Before ... = ... | +| Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:25 | Before access to property ArrayProperty | +| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:29:63:60 | After { ..., ... } | +| Initializers.cs:63:13:63:60 | After ... = ... | Initializers.cs:63:13:63:60 | ... = ... | +| Initializers.cs:63:13:63:60 | Before ... = ... | Initializers.cs:62:13:62:60 | After ... = ... | +| Initializers.cs:63:29:63:60 | After { ..., ... } | Initializers.cs:63:29:63:60 | { ..., ... } | +| Initializers.cs:63:29:63:60 | Before { ..., ... } | Initializers.cs:63:13:63:25 | After access to property ArrayProperty | +| Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:44:63:58 | After ... = ... | +| Initializers.cs:63:31:63:33 | After access to array element | Initializers.cs:63:31:63:33 | access to array element | +| Initializers.cs:63:31:63:33 | Before access to array element | Initializers.cs:63:31:63:41 | Before ... = ... | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:32:63:32 | 1 | +| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:37:63:41 | "One" | +| Initializers.cs:63:31:63:41 | After ... = ... | Initializers.cs:63:31:63:41 | ... = ... | +| Initializers.cs:63:31:63:41 | Before ... = ... | Initializers.cs:63:29:63:60 | Before { ..., ... } | +| Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:31:63:33 | Before access to array element | +| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:33 | After access to array element | +| Initializers.cs:63:44:63:50 | After access to array element | Initializers.cs:63:44:63:50 | access to array element | +| Initializers.cs:63:44:63:50 | Before access to array element | Initializers.cs:63:44:63:58 | Before ... = ... | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:45:63:49 | After ... + ... | +| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:54:63:58 | "Two" | +| Initializers.cs:63:44:63:58 | After ... = ... | Initializers.cs:63:44:63:58 | ... = ... | +| Initializers.cs:63:44:63:58 | Before ... = ... | Initializers.cs:63:31:63:41 | After ... = ... | +| Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:45:63:49 | Before ... + ... | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:49:63:49 | 2 | +| Initializers.cs:63:45:63:49 | After ... + ... | Initializers.cs:63:45:63:49 | ... + ... | +| Initializers.cs:63:45:63:49 | Before ... + ... | Initializers.cs:63:44:63:50 | Before access to array element | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:45 | access to parameter i | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:45:63:49 | ... + ... | -| Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:30:64:63 | { ..., ... } | -| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | -| Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:46:64:61 | ... = ... | -| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:41:64:43 | "i" | -| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:32:64:37 | access to array element | -| Initializers.cs:64:33:64:33 | 0 | Initializers.cs:63:13:63:60 | ... = ... | +| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:50 | After access to array element | +| Initializers.cs:64:13:64:26 | After access to property ArrayProperty2 | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | +| Initializers.cs:64:13:64:26 | Before access to property ArrayProperty2 | Initializers.cs:64:13:64:63 | Before ... = ... | +| Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:26 | Before access to property ArrayProperty2 | +| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:30:64:63 | After { ..., ... } | +| Initializers.cs:64:13:64:63 | After ... = ... | Initializers.cs:64:13:64:63 | ... = ... | +| Initializers.cs:64:13:64:63 | Before ... = ... | Initializers.cs:63:13:63:60 | After ... = ... | +| Initializers.cs:64:30:64:63 | After { ..., ... } | Initializers.cs:64:30:64:63 | { ..., ... } | +| Initializers.cs:64:30:64:63 | Before { ..., ... } | Initializers.cs:64:13:64:26 | After access to property ArrayProperty2 | +| Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:46:64:61 | After ... = ... | +| Initializers.cs:64:32:64:37 | After access to array element | Initializers.cs:64:32:64:37 | access to array element | +| Initializers.cs:64:32:64:37 | Before access to array element | Initializers.cs:64:32:64:43 | Before ... = ... | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:36:64:36 | 1 | +| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:41:64:43 | "i" | +| Initializers.cs:64:32:64:43 | After ... = ... | Initializers.cs:64:32:64:43 | ... = ... | +| Initializers.cs:64:32:64:43 | Before ... = ... | Initializers.cs:64:30:64:63 | Before { ..., ... } | +| Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:32:64:37 | Before access to array element | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:33:64:33 | 0 | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:36:64:36 | 1 | -| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:59:64:61 | "1" | -| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:46:64:55 | access to array element | -| Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:32:64:43 | ... = ... | -| Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:47:64:47 | 1 | +| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:37 | After access to array element | +| Initializers.cs:64:46:64:55 | After access to array element | Initializers.cs:64:46:64:55 | access to array element | +| Initializers.cs:64:46:64:55 | Before access to array element | Initializers.cs:64:46:64:61 | Before ... = ... | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:50:64:54 | After ... + ... | +| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:59:64:61 | "1" | +| Initializers.cs:64:46:64:61 | After ... = ... | Initializers.cs:64:46:64:61 | ... = ... | +| Initializers.cs:64:46:64:61 | Before ... = ... | Initializers.cs:64:32:64:43 | After ... = ... | +| Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:46:64:55 | Before access to array element | +| Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:50:64:54 | Before ... + ... | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:54:64:54 | 0 | +| Initializers.cs:64:50:64:54 | After ... + ... | Initializers.cs:64:50:64:54 | ... + ... | +| Initializers.cs:64:50:64:54 | Before ... + ... | Initializers.cs:64:47:64:47 | 1 | | 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 | call to method | +| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:55 | After access to array element | +| LoopUnrolling.cs:5:7:5:19 | After call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | After call to method | LoopUnrolling.cs:5:7:5:19 | call to method | +| LoopUnrolling.cs:5:7:5:19 | Before call to constructor Object | LoopUnrolling.cs:5:7:5:19 | After call to method | +| LoopUnrolling.cs:5:7:5:19 | Before call to method | LoopUnrolling.cs:5:7:5:19 | Entry | +| LoopUnrolling.cs:5:7:5:19 | Exit | LoopUnrolling.cs:5:7:5:19 | Normal Exit | +| LoopUnrolling.cs:5:7:5:19 | Normal Exit | LoopUnrolling.cs:5:7:5:19 | {...} | +| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | Before 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 | 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 ...; | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:7:10:7:11 | enter M1 | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | Before call to method | +| LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | After call to constructor Object | +| LoopUnrolling.cs:7:10:7:11 | Exit | LoopUnrolling.cs:7:10:7:11 | Normal Exit | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:8:5:13:5 | After {...} | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:10:13:10:19 | return ...; | +| LoopUnrolling.cs:8:5:13:5 | After {...} | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:7:10:7:11 | Entry | +| LoopUnrolling.cs:9:9:10:19 | After if (...) ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | | LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:8:5:13:5 | {...} | -| LoopUnrolling.cs:9:13:9:16 | access to parameter args | LoopUnrolling.cs:9:9:10:19 | if (...) ... | +| LoopUnrolling.cs:9:13:9:16 | access to parameter args | LoopUnrolling.cs:9:13:9:23 | Before access to property Length | +| LoopUnrolling.cs:9:13:9:23 | After access to property Length | LoopUnrolling.cs:9:13:9:23 | access to property Length | +| LoopUnrolling.cs:9:13:9:23 | Before access to property Length | LoopUnrolling.cs:9:13:9:28 | Before ... == ... | | LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:9:13:9:16 | access to parameter args | | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:28:9:28 | 0 | -| LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:13:9:23 | access to property Length | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | +| LoopUnrolling.cs:9:13:9:28 | Before ... == ... | LoopUnrolling.cs:9:9:10:19 | if (...) ... | +| LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:13:9:23 | After access to property Length | +| LoopUnrolling.cs:10:13:10:19 | Before return ...; | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | +| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | Before return ...; | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:12:13:12:35 | After ...; | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:9:9:10:19 | After if (...) ... | +| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:12:13:12:34 | After call to method WriteLine | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | +| LoopUnrolling.cs:12:13:12:34 | Before call to method WriteLine | LoopUnrolling.cs:12:13:12:35 | ...; | | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | | LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:13:12:35 | ...; | -| LoopUnrolling.cs:15:10:15:11 | exit M2 | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:16:5:20:5 | {...} | LoopUnrolling.cs:15:10:15:11 | enter M2 | +| LoopUnrolling.cs:12:13:12:35 | After ...; | LoopUnrolling.cs:12:13:12:34 | After call to method WriteLine | +| LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:13:12:34 | Before call to method WriteLine | +| LoopUnrolling.cs:15:10:15:11 | Exit | LoopUnrolling.cs:15:10:15:11 | Normal Exit | +| LoopUnrolling.cs:15:10:15:11 | Normal Exit | LoopUnrolling.cs:16:5:20:5 | After {...} | +| LoopUnrolling.cs:16:5:20:5 | After {...} | LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:16:5:20:5 | {...} | LoopUnrolling.cs:15:10:15:11 | Entry | | LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:16:5:20:5 | {...} | -| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | -| LoopUnrolling.cs:17:18:17:47 | 3 | LoopUnrolling.cs:17:9:17:48 | ... ...; | +| LoopUnrolling.cs:17:9:17:48 | After ... ...; | LoopUnrolling.cs:17:13:17:47 | After String[] xs = ... | +| LoopUnrolling.cs:17:13:17:14 | access to local variable xs | LoopUnrolling.cs:17:13:17:47 | Before String[] xs = ... | +| LoopUnrolling.cs:17:13:17:47 | After String[] xs = ... | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | +| LoopUnrolling.cs:17:13:17:47 | Before String[] xs = ... | LoopUnrolling.cs:17:9:17:48 | ... ...; | +| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:17:18:17:47 | After array creation of type String[] | +| LoopUnrolling.cs:17:18:17:47 | 3 | LoopUnrolling.cs:17:31:17:47 | After { ..., ... } | +| LoopUnrolling.cs:17:18:17:47 | After array creation of type String[] | LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | +| LoopUnrolling.cs:17:18:17:47 | Before array creation of type String[] | LoopUnrolling.cs:17:13:17:14 | access to local variable xs | | LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:18:17:47 | 3 | +| LoopUnrolling.cs:17:31:17:47 | After { ..., ... } | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | +| LoopUnrolling.cs:17:31:17:47 | Before { ..., ... } | LoopUnrolling.cs:17:18:17:47 | Before array creation of type String[] | | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:17:43:17:45 | "c" | -| LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | +| LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:31:17:47 | Before { ..., ... } | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:33:17:35 | "a" | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:38:17:40 | "b" | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | -| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:19:13:19:33 | After ...; | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:17:9:17:48 | After ... ...; | +| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:19:13:19:32 | After call to method WriteLine | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | +| LoopUnrolling.cs:19:13:19:32 | Before call to method WriteLine | LoopUnrolling.cs:19:13:19:33 | ...; | | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:18:22:18:22 | String x | -| LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:13:19:33 | ...; | -| LoopUnrolling.cs:22:10:22:11 | exit M3 | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:22:10:22:11 | enter M3 | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | access to parameter args | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:23:5:27:5 | {...} | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | access to parameter args | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | -| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:19:13:19:33 | After ...; | LoopUnrolling.cs:19:13:19:32 | After call to method WriteLine | +| LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:13:19:32 | Before call to method WriteLine | +| LoopUnrolling.cs:22:10:22:11 | Exit | LoopUnrolling.cs:22:10:22:11 | Normal Exit | +| LoopUnrolling.cs:22:10:22:11 | Normal Exit | LoopUnrolling.cs:23:5:27:5 | After {...} | +| LoopUnrolling.cs:23:5:27:5 | After {...} | LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:22:10:22:11 | Entry | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:23:5:27:5 | {...} | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:26:17:26:40 | After ...; | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:26:17:26:39 | After call to method WriteLine | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | +| LoopUnrolling.cs:26:17:26:39 | Before call to method WriteLine | LoopUnrolling.cs:26:17:26:40 | ...; | | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | | LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:25:26:25:29 | Char arg0 | -| LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:17:26:40 | ...; | -| LoopUnrolling.cs:29:10:29:11 | exit M4 | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:29:10:29:11 | enter M4 | +| LoopUnrolling.cs:26:17:26:40 | After ...; | LoopUnrolling.cs:26:17:26:39 | After call to method WriteLine | +| LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:17:26:39 | Before call to method WriteLine | +| LoopUnrolling.cs:29:10:29:11 | Exit | LoopUnrolling.cs:29:10:29:11 | Normal Exit | +| LoopUnrolling.cs:29:10:29:11 | Normal Exit | LoopUnrolling.cs:30:5:34:5 | After {...} | +| LoopUnrolling.cs:30:5:34:5 | After {...} | LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:29:10:29:11 | Entry | | LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:30:5:34:5 | {...} | -| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | +| LoopUnrolling.cs:31:9:31:31 | After ... ...; | LoopUnrolling.cs:31:13:31:30 | After String[] xs = ... | +| LoopUnrolling.cs:31:13:31:14 | access to local variable xs | LoopUnrolling.cs:31:13:31:30 | Before String[] xs = ... | +| LoopUnrolling.cs:31:13:31:30 | After String[] xs = ... | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | +| LoopUnrolling.cs:31:13:31:30 | Before String[] xs = ... | LoopUnrolling.cs:31:9:31:31 | ... ...; | +| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:18:31:30 | After array creation of type String[] | +| LoopUnrolling.cs:31:18:31:30 | After array creation of type String[] | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | +| LoopUnrolling.cs:31:18:31:30 | Before array creation of type String[] | LoopUnrolling.cs:31:13:31:14 | access to local variable xs | | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:29:31:29 | 0 | -| LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:9:31:31 | ... ...; | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | -| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | +| LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:18:31:30 | Before array creation of type String[] | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:33:13:33:33 | After ...; | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:31:9:31:31 | After ... ...; | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:33:13:33:32 | After call to method WriteLine | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | +| LoopUnrolling.cs:33:13:33:32 | Before call to method WriteLine | LoopUnrolling.cs:33:13:33:33 | ...; | | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:33:31:33:31 | access to local variable x | | LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:32:22:32:22 | String x | -| LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:13:33:33 | ...; | -| LoopUnrolling.cs:36:10:36:11 | exit M5 | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:36:10:36:11 | enter M5 | +| LoopUnrolling.cs:33:13:33:33 | After ...; | LoopUnrolling.cs:33:13:33:32 | After call to method WriteLine | +| LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:13:33:32 | Before call to method WriteLine | +| LoopUnrolling.cs:36:10:36:11 | Exit | LoopUnrolling.cs:36:10:36:11 | Normal Exit | +| LoopUnrolling.cs:36:10:36:11 | Normal Exit | LoopUnrolling.cs:37:5:43:5 | After {...} | +| LoopUnrolling.cs:37:5:43:5 | After {...} | LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:36:10:36:11 | Entry | | LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:37:5:43:5 | {...} | -| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | -| LoopUnrolling.cs:38:18:38:47 | 3 | LoopUnrolling.cs:38:9:38:48 | ... ...; | +| LoopUnrolling.cs:38:9:38:48 | After ... ...; | LoopUnrolling.cs:38:13:38:47 | After String[] xs = ... | +| LoopUnrolling.cs:38:13:38:14 | access to local variable xs | LoopUnrolling.cs:38:13:38:47 | Before String[] xs = ... | +| LoopUnrolling.cs:38:13:38:47 | After String[] xs = ... | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | +| LoopUnrolling.cs:38:13:38:47 | Before String[] xs = ... | LoopUnrolling.cs:38:9:38:48 | ... ...; | +| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:38:18:38:47 | After array creation of type String[] | +| LoopUnrolling.cs:38:18:38:47 | 3 | LoopUnrolling.cs:38:31:38:47 | After { ..., ... } | +| LoopUnrolling.cs:38:18:38:47 | After array creation of type String[] | LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | +| LoopUnrolling.cs:38:18:38:47 | Before array creation of type String[] | LoopUnrolling.cs:38:13:38:14 | access to local variable xs | | LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:18:38:47 | 3 | +| LoopUnrolling.cs:38:31:38:47 | After { ..., ... } | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | +| LoopUnrolling.cs:38:31:38:47 | Before { ..., ... } | LoopUnrolling.cs:38:18:38:47 | Before array creation of type String[] | | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:38:43:38:45 | "c" | -| LoopUnrolling.cs:38:33:38:35 | "a" | LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | +| LoopUnrolling.cs:38:33:38:35 | "a" | LoopUnrolling.cs:38:31:38:47 | Before { ..., ... } | | LoopUnrolling.cs:38:38:38:40 | "b" | LoopUnrolling.cs:38:33:38:35 | "a" | | LoopUnrolling.cs:38:43:38:45 | "c" | LoopUnrolling.cs:38:38:38:40 | "b" | -| LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | -| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | -| LoopUnrolling.cs:39:18:39:47 | 3 | LoopUnrolling.cs:39:9:39:48 | ... ...; | +| LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:38:9:38:48 | After ... ...; | +| LoopUnrolling.cs:39:9:39:48 | After ... ...; | LoopUnrolling.cs:39:13:39:47 | After String[] ys = ... | +| LoopUnrolling.cs:39:13:39:14 | access to local variable ys | LoopUnrolling.cs:39:13:39:47 | Before String[] ys = ... | +| LoopUnrolling.cs:39:13:39:47 | After String[] ys = ... | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | +| LoopUnrolling.cs:39:13:39:47 | Before String[] ys = ... | LoopUnrolling.cs:39:9:39:48 | ... ...; | +| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:39:18:39:47 | After array creation of type String[] | +| LoopUnrolling.cs:39:18:39:47 | 3 | LoopUnrolling.cs:39:31:39:47 | After { ..., ... } | +| LoopUnrolling.cs:39:18:39:47 | After array creation of type String[] | LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | +| LoopUnrolling.cs:39:18:39:47 | Before array creation of type String[] | LoopUnrolling.cs:39:13:39:14 | access to local variable ys | | LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:18:39:47 | 3 | +| LoopUnrolling.cs:39:31:39:47 | After { ..., ... } | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | +| LoopUnrolling.cs:39:31:39:47 | Before { ..., ... } | LoopUnrolling.cs:39:18:39:47 | Before array creation of type String[] | | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:39:43:39:45 | "2" | -| LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | +| LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:31:39:47 | Before { ..., ... } | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:33:39:35 | "0" | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:38:39:40 | "1" | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | -| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:42:35:42:39 | ... + ... | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:39:9:39:48 | After ... ...; | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:42:17:42:41 | After ...; | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:42:17:42:40 | After call to method WriteLine | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | +| LoopUnrolling.cs:42:17:42:40 | Before call to method WriteLine | LoopUnrolling.cs:42:17:42:41 | ...; | +| LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:42:35:42:39 | After ... + ... | | LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:17:42:41 | ...; | +| LoopUnrolling.cs:42:17:42:41 | After ...; | LoopUnrolling.cs:42:17:42:40 | After call to method WriteLine | +| LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:35:42:39 | Before ... + ... | | LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:39:42:39 | access to local variable y | +| LoopUnrolling.cs:42:35:42:39 | After ... + ... | LoopUnrolling.cs:42:35:42:39 | ... + ... | +| LoopUnrolling.cs:42:35:42:39 | Before ... + ... | LoopUnrolling.cs:42:17:42:40 | Before call to method WriteLine | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:35:42:35 | access to local variable x | -| LoopUnrolling.cs:45:10:45:11 | exit M6 | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:45:10:45:11 | enter M6 | +| LoopUnrolling.cs:45:10:45:11 | Exit | LoopUnrolling.cs:45:10:45:11 | Normal Exit | +| LoopUnrolling.cs:45:10:45:11 | Normal Exit | LoopUnrolling.cs:46:5:53:5 | After {...} | +| LoopUnrolling.cs:46:5:53:5 | After {...} | LoopUnrolling.cs:48:9:52:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:45:10:45:11 | Entry | | LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:46:5:53:5 | {...} | -| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | -| LoopUnrolling.cs:47:18:47:47 | 3 | LoopUnrolling.cs:47:9:47:48 | ... ...; | +| LoopUnrolling.cs:47:9:47:48 | After ... ...; | LoopUnrolling.cs:47:13:47:47 | After String[] xs = ... | +| LoopUnrolling.cs:47:13:47:14 | access to local variable xs | LoopUnrolling.cs:47:13:47:47 | Before String[] xs = ... | +| LoopUnrolling.cs:47:13:47:47 | After String[] xs = ... | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | +| LoopUnrolling.cs:47:13:47:47 | Before String[] xs = ... | LoopUnrolling.cs:47:9:47:48 | ... ...; | +| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:18:47:47 | After array creation of type String[] | +| LoopUnrolling.cs:47:18:47:47 | 3 | LoopUnrolling.cs:47:31:47:47 | After { ..., ... } | +| LoopUnrolling.cs:47:18:47:47 | After array creation of type String[] | LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | +| LoopUnrolling.cs:47:18:47:47 | Before array creation of type String[] | LoopUnrolling.cs:47:13:47:14 | access to local variable xs | | LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:18:47:47 | 3 | +| LoopUnrolling.cs:47:31:47:47 | After { ..., ... } | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | +| LoopUnrolling.cs:47:31:47:47 | Before { ..., ... } | LoopUnrolling.cs:47:18:47:47 | Before array creation of type String[] | | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:47:43:47:45 | "c" | -| LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | +| LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:31:47:47 | Before { ..., ... } | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:33:47:35 | "a" | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:38:47:40 | "b" | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | -| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | +| LoopUnrolling.cs:48:9:52:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:47:9:47:48 | After ... ...; | +| LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | +| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:48:22:48:22 | String x | +| LoopUnrolling.cs:50:16:50:35 | After call to method WriteLine | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | +| LoopUnrolling.cs:50:16:50:35 | Before call to method WriteLine | LoopUnrolling.cs:50:16:50:36 | ...; | | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:50:34:50:34 | access to local variable x | | LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:9:50:13 | Label: | -| LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:16:50:36 | ...; | -| LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | -| LoopUnrolling.cs:55:10:55:11 | exit M7 | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:55:10:55:11 | enter M7 | +| LoopUnrolling.cs:50:16:50:36 | After ...; | LoopUnrolling.cs:50:16:50:35 | After call to method WriteLine | +| LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:16:50:35 | Before call to method WriteLine | +| LoopUnrolling.cs:51:13:51:23 | Before goto ...; | LoopUnrolling.cs:50:16:50:36 | After ...; | +| LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:51:13:51:23 | Before goto ...; | +| LoopUnrolling.cs:55:10:55:11 | Exit | LoopUnrolling.cs:55:10:55:11 | Normal Exit | +| LoopUnrolling.cs:55:10:55:11 | Normal Exit | LoopUnrolling.cs:56:5:65:5 | After {...} | +| LoopUnrolling.cs:56:5:65:5 | After {...} | LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:55:10:55:11 | Entry | | LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:56:5:65:5 | {...} | -| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | -| LoopUnrolling.cs:57:18:57:47 | 3 | LoopUnrolling.cs:57:9:57:48 | ... ...; | +| LoopUnrolling.cs:57:9:57:48 | After ... ...; | LoopUnrolling.cs:57:13:57:47 | After String[] xs = ... | +| LoopUnrolling.cs:57:13:57:14 | access to local variable xs | LoopUnrolling.cs:57:13:57:47 | Before String[] xs = ... | +| LoopUnrolling.cs:57:13:57:47 | After String[] xs = ... | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | +| LoopUnrolling.cs:57:13:57:47 | Before String[] xs = ... | LoopUnrolling.cs:57:9:57:48 | ... ...; | +| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:18:57:47 | After array creation of type String[] | +| LoopUnrolling.cs:57:18:57:47 | 3 | LoopUnrolling.cs:57:31:57:47 | After { ..., ... } | +| LoopUnrolling.cs:57:18:57:47 | After array creation of type String[] | LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | +| LoopUnrolling.cs:57:18:57:47 | Before array creation of type String[] | LoopUnrolling.cs:57:13:57:14 | access to local variable xs | | LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:18:57:47 | 3 | +| LoopUnrolling.cs:57:31:57:47 | After { ..., ... } | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | +| LoopUnrolling.cs:57:31:57:47 | Before { ..., ... } | LoopUnrolling.cs:57:18:57:47 | Before array creation of type String[] | | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:57:43:57:45 | "c" | -| LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | +| LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:31:57:47 | Before { ..., ... } | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:33:57:35 | "a" | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:38:57:40 | "b" | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | -| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:59:9:64:9 | After {...} | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:57:9:57:48 | After ... ...; | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:59:9:64:9 | After {...} | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:61:17:61:37 | After ...; | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:59:9:64:9 | {...} | | LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:13:61:37 | if (...) ... | +| LoopUnrolling.cs:61:17:61:36 | After call to method WriteLine | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | +| LoopUnrolling.cs:61:17:61:36 | Before call to method WriteLine | LoopUnrolling.cs:61:17:61:37 | ...; | | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:61:35:61:35 | access to local variable x | -| LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:60:17:60:17 | access to parameter b | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:61:17:61:37 | After ...; | LoopUnrolling.cs:61:17:61:36 | After call to method WriteLine | +| LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:17:61:36 | Before call to method WriteLine | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:63:17:63:37 | After ...; | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | | LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:63:17:63:36 | After call to method WriteLine | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | +| LoopUnrolling.cs:63:17:63:36 | Before call to method WriteLine | LoopUnrolling.cs:63:17:63:37 | ...; | | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:63:35:63:35 | access to local variable x | -| LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:67:10:67:11 | exit M8 | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:70:13:70:19 | return ...; | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:67:10:67:11 | enter M8 | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:63:17:63:37 | After ...; | LoopUnrolling.cs:63:17:63:36 | After call to method WriteLine | +| LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:17:63:36 | Before call to method WriteLine | +| LoopUnrolling.cs:67:10:67:11 | Exit | LoopUnrolling.cs:67:10:67:11 | Normal Exit | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:68:5:74:5 | After {...} | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:70:13:70:19 | return ...; | +| LoopUnrolling.cs:68:5:74:5 | After {...} | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:67:10:67:11 | Entry | +| LoopUnrolling.cs:69:9:70:19 | After if (...) ... | LoopUnrolling.cs:69:13:69:23 | After !... [false] | | LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:68:5:74:5 | {...} | -| LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:69:9:70:19 | if (...) ... | +| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:69:9:70:19 | if (...) ... | +| LoopUnrolling.cs:69:13:69:23 | After !... [false] | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | +| LoopUnrolling.cs:69:13:69:23 | After !... [true] | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | +| LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:69:14:69:23 | Before call to method Any | +| LoopUnrolling.cs:69:14:69:23 | Before call to method Any | LoopUnrolling.cs:69:13:69:23 | !... | | LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:17 | access to parameter args | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:69:13:69:23 | [true] !... | -| LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:70:13:70:19 | Before return ...; | LoopUnrolling.cs:69:13:69:23 | After !... [true] | +| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | Before return ...; | +| LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:20 | Before call to method Clear | +| LoopUnrolling.cs:71:9:71:20 | After call to method Clear | LoopUnrolling.cs:71:9:71:20 | call to method Clear | +| LoopUnrolling.cs:71:9:71:20 | Before call to method Clear | LoopUnrolling.cs:71:9:71:21 | ...; | | LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:71:9:71:12 | access to parameter args | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | access to parameter args | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | -| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:71:9:71:20 | call to method Clear | +| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:69:9:70:19 | After if (...) ... | +| LoopUnrolling.cs:71:9:71:21 | After ...; | LoopUnrolling.cs:71:9:71:20 | After call to method Clear | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:73:13:73:35 | After ...; | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:71:9:71:21 | After ...; | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:73:13:73:34 | After call to method WriteLine | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | +| LoopUnrolling.cs:73:13:73:34 | Before call to method WriteLine | LoopUnrolling.cs:73:13:73:35 | ...; | | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | | LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:72:22:72:24 | String arg | -| LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:13:73:35 | ...; | -| LoopUnrolling.cs:76:10:76:11 | exit M9 | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:76:10:76:11 | enter M9 | +| LoopUnrolling.cs:73:13:73:35 | After ...; | LoopUnrolling.cs:73:13:73:34 | After call to method WriteLine | +| LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:13:73:34 | Before call to method WriteLine | +| LoopUnrolling.cs:76:10:76:11 | Exit | LoopUnrolling.cs:76:10:76:11 | Normal Exit | +| LoopUnrolling.cs:76:10:76:11 | Normal Exit | LoopUnrolling.cs:77:5:83:5 | After {...} | +| LoopUnrolling.cs:77:5:83:5 | After {...} | LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:76:10:76:11 | Entry | | LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:77:5:83:5 | {...} | -| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | +| LoopUnrolling.cs:78:9:78:34 | After ... ...; | LoopUnrolling.cs:78:13:78:33 | After String[,] xs = ... | +| LoopUnrolling.cs:78:13:78:14 | access to local variable xs | LoopUnrolling.cs:78:13:78:33 | Before String[,] xs = ... | +| LoopUnrolling.cs:78:13:78:33 | After String[,] xs = ... | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | +| LoopUnrolling.cs:78:13:78:33 | Before String[,] xs = ... | LoopUnrolling.cs:78:9:78:34 | ... ...; | +| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:18:78:33 | After array creation of type String[,] | +| LoopUnrolling.cs:78:18:78:33 | After array creation of type String[,] | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | +| LoopUnrolling.cs:78:18:78:33 | Before array creation of type String[,] | LoopUnrolling.cs:78:13:78:14 | access to local variable xs | | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:32:78:32 | 0 | -| LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:9:78:34 | ... ...; | +| LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:18:78:33 | Before array creation of type String[,] | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:29:78:29 | 2 | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | -| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:80:9:82:9 | After {...} | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:78:9:78:34 | After ... ...; | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:80:9:82:9 | After {...} | LoopUnrolling.cs:81:13:81:33 | After ...; | | LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:81:13:81:32 | After call to method WriteLine | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | +| LoopUnrolling.cs:81:13:81:32 | Before call to method WriteLine | LoopUnrolling.cs:81:13:81:33 | ...; | | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:81:31:81:31 | access to local variable x | | LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:80:9:82:9 | {...} | -| LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:13:81:33 | ...; | -| LoopUnrolling.cs:85:10:85:12 | exit M10 | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:85:10:85:12 | enter M10 | +| LoopUnrolling.cs:81:13:81:33 | After ...; | LoopUnrolling.cs:81:13:81:32 | After call to method WriteLine | +| LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:13:81:32 | Before call to method WriteLine | +| LoopUnrolling.cs:85:10:85:12 | Exit | LoopUnrolling.cs:85:10:85:12 | Normal Exit | +| LoopUnrolling.cs:85:10:85:12 | Normal Exit | LoopUnrolling.cs:86:5:92:5 | After {...} | +| LoopUnrolling.cs:86:5:92:5 | After {...} | LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:85:10:85:12 | Entry | | LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:86:5:92:5 | {...} | -| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | +| LoopUnrolling.cs:87:9:87:34 | After ... ...; | LoopUnrolling.cs:87:13:87:33 | After String[,] xs = ... | +| LoopUnrolling.cs:87:13:87:14 | access to local variable xs | LoopUnrolling.cs:87:13:87:33 | Before String[,] xs = ... | +| LoopUnrolling.cs:87:13:87:33 | After String[,] xs = ... | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | +| LoopUnrolling.cs:87:13:87:33 | Before String[,] xs = ... | LoopUnrolling.cs:87:9:87:34 | ... ...; | +| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:18:87:33 | After array creation of type String[,] | +| LoopUnrolling.cs:87:18:87:33 | After array creation of type String[,] | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | +| LoopUnrolling.cs:87:18:87:33 | Before array creation of type String[,] | LoopUnrolling.cs:87:13:87:14 | access to local variable xs | | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:32:87:32 | 2 | -| LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:9:87:34 | ... ...; | +| LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:18:87:33 | Before array creation of type String[,] | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:29:87:29 | 0 | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | -| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:89:9:91:9 | After {...} | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:87:9:87:34 | After ... ...; | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:89:9:91:9 | After {...} | LoopUnrolling.cs:90:13:90:33 | After ...; | | LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:90:13:90:32 | After call to method WriteLine | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | +| LoopUnrolling.cs:90:13:90:32 | Before call to method WriteLine | LoopUnrolling.cs:90:13:90:33 | ...; | | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:90:31:90:31 | access to local variable x | | LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:89:9:91:9 | {...} | -| LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:13:90:33 | ...; | -| LoopUnrolling.cs:94:10:94:12 | exit M11 | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:94:10:94:12 | enter M11 | +| LoopUnrolling.cs:90:13:90:33 | After ...; | LoopUnrolling.cs:90:13:90:32 | After call to method WriteLine | +| LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:13:90:32 | Before call to method WriteLine | +| LoopUnrolling.cs:94:10:94:12 | Exit | LoopUnrolling.cs:94:10:94:12 | Normal Exit | +| LoopUnrolling.cs:94:10:94:12 | Normal Exit | LoopUnrolling.cs:95:5:101:5 | After {...} | +| LoopUnrolling.cs:95:5:101:5 | After {...} | LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:94:10:94:12 | Entry | | LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:95:5:101:5 | {...} | -| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | +| LoopUnrolling.cs:96:9:96:34 | After ... ...; | LoopUnrolling.cs:96:13:96:33 | After String[,] xs = ... | +| LoopUnrolling.cs:96:13:96:14 | access to local variable xs | LoopUnrolling.cs:96:13:96:33 | Before String[,] xs = ... | +| LoopUnrolling.cs:96:13:96:33 | After String[,] xs = ... | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | +| LoopUnrolling.cs:96:13:96:33 | Before String[,] xs = ... | LoopUnrolling.cs:96:9:96:34 | ... ...; | +| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:96:18:96:33 | After array creation of type String[,] | +| LoopUnrolling.cs:96:18:96:33 | After array creation of type String[,] | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | +| LoopUnrolling.cs:96:18:96:33 | Before array creation of type String[,] | LoopUnrolling.cs:96:13:96:14 | access to local variable xs | | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:32:96:32 | 2 | -| LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:9:96:34 | ... ...; | +| LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:18:96:33 | Before array creation of type String[,] | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:29:96:29 | 2 | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | -| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:98:9:100:9 | After {...} | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:96:9:96:34 | After ... ...; | +| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:98:9:100:9 | After {...} | LoopUnrolling.cs:99:13:99:33 | After ...; | | LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:99:13:99:32 | After call to method WriteLine | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | +| LoopUnrolling.cs:99:13:99:32 | Before call to method WriteLine | LoopUnrolling.cs:99:13:99:33 | ...; | | 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 | +| LoopUnrolling.cs:99:13:99:33 | After ...; | LoopUnrolling.cs:99:13:99:32 | After call to method WriteLine | +| LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:32 | Before call to method WriteLine | +| MultiImplementationA.cs:4:7:4:8 | After call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | After call to method | MultiImplementationA.cs:4:7:4:8 | call to method | +| MultiImplementationA.cs:4:7:4:8 | Before call to constructor Object | MultiImplementationA.cs:4:7:4:8 | After call to method | +| MultiImplementationA.cs:4:7:4:8 | Exit | MultiImplementationA.cs:4:7:4:8 | Normal Exit | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | {...} | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationB.cs:1:7:1:8 | {...} | +| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | Before 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 | 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 | {...} | -| MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | -| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | MultiImplementationA.cs:6:22:6:31 | throw ... | -| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | MultiImplementationB.cs:3:22:3:22 | 0 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | After call to constructor Object | +| MultiImplementationA.cs:6:22:6:31 | Exceptional Exit | MultiImplementationA.cs:6:22:6:31 | throw ... | +| MultiImplementationA.cs:6:22:6:31 | Normal Exit | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:28:6:31 | null | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | MultiImplementationA.cs:7:27:7:37 | throw ...; | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | MultiImplementationB.cs:4:27:4:35 | return ...; | +| MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | Before throw ... | +| MultiImplementationA.cs:7:21:7:23 | Exceptional Exit | MultiImplementationA.cs:7:27:7:37 | throw ...; | +| MultiImplementationA.cs:7:21:7:23 | Normal Exit | MultiImplementationB.cs:4:27:4:35 | return ...; | +| MultiImplementationA.cs:7:27:7:37 | Before throw ...; | MultiImplementationA.cs:7:25:7:39 | {...} | | MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:33:7:36 | null | -| MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:25:7:39 | {...} | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | MultiImplementationA.cs:7:47:7:57 | throw ...; | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | MultiImplementationB.cs:4:43:4:45 | {...} | +| MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:27:7:37 | Before throw ...; | +| MultiImplementationA.cs:7:41:7:43 | Exceptional Exit | MultiImplementationA.cs:7:47:7:57 | throw ...; | +| MultiImplementationA.cs:7:41:7:43 | Normal Exit | MultiImplementationB.cs:4:43:4:45 | {...} | +| MultiImplementationA.cs:7:47:7:57 | Before throw ...; | MultiImplementationA.cs:7:45:7:59 | {...} | | MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:53:7:56 | null | -| MultiImplementationA.cs:7:53:7:56 | null | MultiImplementationA.cs:7:45:7:59 | {...} | -| 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:7:53:7:56 | null | MultiImplementationA.cs:7:47:7:57 | Before throw ...; | +| MultiImplementationA.cs:8:16:8:16 | Exceptional Exit | MultiImplementationA.cs:8:23:8:32 | throw ... | +| MultiImplementationA.cs:8:16:8:16 | Normal Exit | MultiImplementationB.cs:5:23:5:23 | 2 | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:29:8:32 | null | -| 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:16 | access to field F | MultiImplementationA.cs:13:20:13:20 | 0 | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:16:13:16 | access to field F | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | this access | -| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | enter get_Item | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | MultiImplementationB.cs:12:31:12:40 | throw ... | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | MultiImplementationA.cs:14:31:14:31 | access to parameter i | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | MultiImplementationB.cs:13:42:13:52 | throw ...; | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item (normal) | MultiImplementationA.cs:15:42:15:50 | return ...; | -| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | enter get_Item | +| MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:23:8:32 | Before throw ... | +| MultiImplementationA.cs:11:7:11:8 | Exit | MultiImplementationA.cs:11:7:11:8 | Normal Exit | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:24:32:24:34 | After ... = ... | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationB.cs:22:32:22:34 | After ... = ... | +| MultiImplementationA.cs:13:16:13:16 | After access to field F | MultiImplementationA.cs:13:16:13:16 | access to field F | +| MultiImplementationA.cs:13:16:13:16 | Before access to field F | MultiImplementationA.cs:13:16:13:20 | Before ... = ... | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | Before access to field F | +| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:20:13:20 | 0 | +| MultiImplementationA.cs:13:16:13:20 | After ... = ... | MultiImplementationA.cs:13:16:13:20 | ... = ... | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | After access to field F | +| MultiImplementationA.cs:14:31:14:31 | Exceptional Exit | MultiImplementationB.cs:12:31:12:40 | throw ... | +| MultiImplementationA.cs:14:31:14:31 | Normal Exit | 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 | Entry | +| MultiImplementationA.cs:15:36:15:38 | Exceptional Exit | MultiImplementationB.cs:13:42:13:52 | throw ...; | +| MultiImplementationA.cs:15:36:15:38 | Normal Exit | MultiImplementationA.cs:15:42:15:50 | return ...; | +| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | Entry | +| MultiImplementationA.cs:15:42:15:50 | Before return ...; | MultiImplementationA.cs:15:40:15:52 | {...} | | MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:49:15:49 | access to parameter s | -| MultiImplementationA.cs:15:49:15:49 | access to parameter s | MultiImplementationA.cs:15:40:15:52 | {...} | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:58:15:60 | {...} | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationB.cs:13:60:13:62 | {...} | -| MultiImplementationA.cs:16:17:16:18 | exit M1 | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:18:9:18:22 | M2(...) | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationB.cs:16:9:16:31 | M2(...) | +| MultiImplementationA.cs:15:49:15:49 | access to parameter s | MultiImplementationA.cs:15:42:15:50 | Before return ...; | +| MultiImplementationA.cs:15:54:15:56 | Exit | MultiImplementationA.cs:15:54:15:56 | Normal Exit | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:58:15:60 | {...} | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationB.cs:13:60:13:62 | {...} | +| MultiImplementationA.cs:16:17:16:18 | Exit | MultiImplementationA.cs:16:17:16:18 | Normal Exit | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:17:5:19:5 | After {...} | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationB.cs:15:5:17:5 | After {...} | +| MultiImplementationA.cs:17:5:19:5 | After {...} | MultiImplementationA.cs:18:9:18:22 | M2(...) | +| MultiImplementationA.cs:18:9:18:22 | Exit | MultiImplementationA.cs:18:9:18:22 | Normal Exit | | MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:17:5:19:5 | {...} | -| 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 | call to method | +| MultiImplementationA.cs:18:9:18:22 | Normal Exit | MultiImplementationA.cs:18:21:18:21 | 0 | +| MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | Entry | +| MultiImplementationA.cs:20:12:20:13 | After call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | After call to method | MultiImplementationA.cs:20:12:20:13 | call to method | +| MultiImplementationA.cs:20:12:20:13 | Before call to constructor Object | MultiImplementationA.cs:20:12:20:13 | After call to method | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | Entry | +| MultiImplementationA.cs:20:12:20:13 | Exceptional Exit | MultiImplementationB.cs:18:24:18:34 | throw ...; | +| MultiImplementationA.cs:20:12:20:13 | Normal Exit | MultiImplementationA.cs:20:22:20:31 | After {...} | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | Before 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 | 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:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | enter C2 | -| MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:28:20:28 | access to parameter i | -| MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:29 | ...; | -| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:24:20:24 | access to field F | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | Before call to method | +| MultiImplementationA.cs:20:22:20:31 | After {...} | MultiImplementationA.cs:20:24:20:29 | After ...; | +| MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | After call to constructor Object | +| MultiImplementationA.cs:20:24:20:24 | After access to field F | MultiImplementationA.cs:20:24:20:24 | access to field F | +| MultiImplementationA.cs:20:24:20:24 | Before access to field F | MultiImplementationA.cs:20:24:20:28 | Before ... = ... | +| 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 | Before access to field F | +| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:28:20:28 | access to parameter i | +| MultiImplementationA.cs:20:24:20:28 | After ... = ... | MultiImplementationA.cs:20:24:20:28 | ... = ... | +| MultiImplementationA.cs:20:24:20:28 | Before ... = ... | MultiImplementationA.cs:20:24:20:29 | ...; | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:22:20:31 | {...} | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | this access | -| MultiImplementationA.cs:21:12:21:13 | exit C2 | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:27:21:29 | {...} | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationB.cs:19:27:19:29 | {...} | +| MultiImplementationA.cs:20:24:20:29 | After ...; | MultiImplementationA.cs:20:24:20:28 | After ... = ... | +| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | After access to field F | +| MultiImplementationA.cs:21:12:21:13 | Exit | MultiImplementationA.cs:21:12:21:13 | Normal Exit | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:27:21:29 | {...} | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationB.cs:19:27:19:29 | {...} | +| MultiImplementationA.cs:21:19:21:22 | After call to constructor C2 | MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | | MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | MultiImplementationA.cs:21:24:21:24 | 0 | -| MultiImplementationA.cs:21:27:21:29 | {...} | MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | MultiImplementationB.cs:20:13:20:23 | throw ...; | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 (normal) | MultiImplementationA.cs:22:11:22:13 | {...} | -| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | enter ~C2 | -| MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | MultiImplementationB.cs:21:50:21:59 | throw ... | -| MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | MultiImplementationA.cs:23:50:23:53 | null | -| MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | -| 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: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:21:24:21:24 | 0 | MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | +| MultiImplementationA.cs:21:27:21:29 | {...} | MultiImplementationA.cs:21:19:21:22 | After call to constructor C2 | +| MultiImplementationA.cs:22:6:22:7 | Exceptional Exit | MultiImplementationB.cs:20:13:20:23 | throw ...; | +| MultiImplementationA.cs:22:6:22:7 | Normal Exit | MultiImplementationA.cs:22:11:22:13 | {...} | +| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | Entry | +| MultiImplementationA.cs:23:28:23:35 | Exceptional Exit | MultiImplementationB.cs:21:50:21:59 | throw ... | +| MultiImplementationA.cs:23:28:23:35 | Normal Exit | MultiImplementationA.cs:23:50:23:53 | null | +| MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | Entry | +| MultiImplementationA.cs:24:16:24:16 | After access to property P | MultiImplementationA.cs:24:16:24:16 | access to property P | +| MultiImplementationA.cs:24:16:24:16 | Before access to property P | MultiImplementationA.cs:24:32:24:34 | Before ... = ... | +| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:16:24:16 | this access | +| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:16:24:16 | Before access to property P | +| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:34:24:34 | 0 | +| MultiImplementationA.cs:24:32:24:34 | After ... = ... | MultiImplementationA.cs:24:32:24:34 | ... = ... | +| MultiImplementationA.cs:24:32:24:34 | Before ... = ... | MultiImplementationA.cs:13:16:13:20 | After ... = ... | +| MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:16:24:16 | After access to property P | +| MultiImplementationA.cs:28:7:28:8 | After call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | After call to method | MultiImplementationA.cs:28:7:28:8 | call to method | +| MultiImplementationA.cs:28:7:28:8 | Before call to constructor Object | MultiImplementationA.cs:28:7:28:8 | After call to method | +| MultiImplementationA.cs:28:7:28:8 | Exit | MultiImplementationA.cs:28:7:28:8 | Normal Exit | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | {...} | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationB.cs:25:7:25:8 | {...} | +| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | Before 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 | 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 | {...} | -| MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | -| MultiImplementationA.cs:30:21:30:23 | exit get_P3 | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | -| MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:28:30:37 | throw ... | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | After call to constructor Object | +| MultiImplementationA.cs:30:21:30:23 | Exceptional Exit | MultiImplementationA.cs:30:28:30:37 | throw ... | +| MultiImplementationA.cs:30:21:30:23 | Exit | MultiImplementationA.cs:30:21:30:23 | Exceptional Exit | +| MultiImplementationA.cs:30:28:30:37 | Before throw ... | MultiImplementationA.cs:30:21:30:23 | Entry | | 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:30:34:30:37 | null | MultiImplementationA.cs:30:28:30:37 | Before throw ... | +| MultiImplementationA.cs:34:15:34:16 | After call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | After call to method | MultiImplementationA.cs:34:15:34:16 | call to method | +| MultiImplementationA.cs:34:15:34:16 | Before call to constructor Object | MultiImplementationA.cs:34:15:34:16 | After call to method | +| MultiImplementationA.cs:34:15:34:16 | Exit | MultiImplementationA.cs:34:15:34:16 | Normal Exit | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | {...} | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationB.cs:30:15:30:16 | {...} | +| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | Before 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 | 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 | {...} | -| MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | -| MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | MultiImplementationA.cs:36:16:36:26 | throw ...; | -| MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | MultiImplementationB.cs:32:17:32:17 | 0 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | After call to constructor Object | +| MultiImplementationA.cs:36:9:36:10 | Exceptional Exit | MultiImplementationA.cs:36:16:36:26 | throw ...; | +| MultiImplementationA.cs:36:9:36:10 | Normal Exit | MultiImplementationB.cs:32:17:32:17 | 0 | +| MultiImplementationA.cs:36:16:36:26 | Before throw ...; | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:22:36:25 | null | -| MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:14:36:28 | {...} | -| MultiImplementationA.cs:37:9:37:10 | exit M2 | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | -| MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | MultiImplementationA.cs:37:16:37:26 | throw ...; | -| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:9:37:10 | enter M2 | +| MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:16:36:26 | Before throw ...; | +| MultiImplementationA.cs:37:9:37:10 | Exceptional Exit | MultiImplementationA.cs:37:16:37:26 | throw ...; | +| MultiImplementationA.cs:37:9:37:10 | Exit | MultiImplementationA.cs:37:9:37:10 | Exceptional Exit | +| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:9:37:10 | Entry | +| MultiImplementationA.cs:37:16:37:26 | Before throw ...; | MultiImplementationA.cs:37:14:37:28 | {...} | | 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 | +| MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:16:37:26 | Before throw ...; | +| MultiImplementationB.cs:1:7:1:8 | After call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | After call to method | MultiImplementationB.cs:1:7:1:8 | call to method | +| MultiImplementationB.cs:1:7:1:8 | Before call to constructor Object | MultiImplementationB.cs:1:7:1:8 | After call to method | +| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | Before 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 | {...} | 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 | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | Before call to method | +| MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationB.cs:1:7:1:8 | After call to constructor Object | +| MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | Entry | +| MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | Entry | +| MultiImplementationB.cs:4:27:4:35 | Before return ...; | MultiImplementationB.cs:4:25:4:37 | {...} | | MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationB.cs:4:34:4:34 | 1 | -| 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 | access to field F | MultiImplementationB.cs:11:20:11:20 | 1 | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:16:11:16 | access to field F | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:27:4:35 | Before return ...; | +| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | Entry | +| MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | Entry | +| MultiImplementationB.cs:11:16:11:16 | After access to field F | MultiImplementationB.cs:11:16:11:16 | access to field F | +| MultiImplementationB.cs:11:16:11:16 | Before access to field F | MultiImplementationB.cs:11:16:11:20 | Before ... = ... | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | Before access to field F | +| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:20:11:20 | 1 | +| MultiImplementationB.cs:11:16:11:20 | After ... = ... | MultiImplementationB.cs:11:16:11:20 | ... = ... | +| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | After access to field F | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationB.cs:12:37:12:40 | null | +| MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:31:12:40 | Before throw ... | +| MultiImplementationB.cs:13:42:13:52 | Before throw ...; | MultiImplementationB.cs:13:40:13:54 | {...} | | MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationB.cs:13:48:13:51 | null | -| MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:40:13:54 | {...} | +| MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:42:13:52 | Before throw ...; | +| MultiImplementationB.cs:15:5:17:5 | After {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | +| MultiImplementationB.cs:16:9:16:31 | Exceptional Exit | MultiImplementationB.cs:16:21:16:30 | throw ... | +| MultiImplementationB.cs:16:9:16:31 | Exit | MultiImplementationB.cs:16:9:16:31 | Exceptional Exit | | MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationB.cs:15:5:17:5 | {...} | -| MultiImplementationB.cs:16:9:16:31 | exit M2 | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | -| MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:21:16:30 | throw ... | +| MultiImplementationB.cs:16:21:16:30 | Before throw ... | MultiImplementationB.cs:16:9:16:31 | Entry | | 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:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to method | +| MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:21:16:30 | Before throw ... | +| MultiImplementationB.cs:18:12:18:13 | After call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | After call to method | MultiImplementationB.cs:18:12:18:13 | call to method | +| MultiImplementationB.cs:18:12:18:13 | Before call to constructor Object | MultiImplementationB.cs:18:12:18:13 | After call to method | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | Before call to constructor Object | | 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:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | Before call to method | +| MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:12:18:13 | After call to constructor Object | +| MultiImplementationB.cs:18:24:18:34 | Before throw ...; | 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:22:18:36 | {...} | +| MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | Before throw ...; | +| MultiImplementationB.cs:19:19:19:22 | After call to constructor C2 | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:24:19:24 | 1 | -| MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | +| MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | +| MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationB.cs:19:19:19:22 | After call to constructor C2 | +| MultiImplementationB.cs:20:13:20:23 | Before throw ...; | MultiImplementationB.cs:20:11:20:25 | {...} | | MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationB.cs:20:19:20:22 | null | -| MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationB.cs:20:11:20:25 | {...} | +| MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationB.cs:20:13:20:23 | Before throw ...; | | MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationB.cs:21:56:21:59 | null | -| 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: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:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | Before throw ... | +| MultiImplementationB.cs:22:16:22:16 | After access to property P | MultiImplementationB.cs:22:16:22:16 | access to property P | +| MultiImplementationB.cs:22:16:22:16 | Before access to property P | MultiImplementationB.cs:22:32:22:34 | Before ... = ... | +| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:16:22:16 | this access | +| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:16:22:16 | Before access to property P | +| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:34:22:34 | 1 | +| MultiImplementationB.cs:22:32:22:34 | After ... = ... | MultiImplementationB.cs:22:32:22:34 | ... = ... | +| MultiImplementationB.cs:22:32:22:34 | Before ... = ... | MultiImplementationB.cs:11:16:11:20 | After ... = ... | +| MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:16:22:16 | After access to property P | +| MultiImplementationB.cs:25:7:25:8 | After call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | After call to method | MultiImplementationB.cs:25:7:25:8 | call to method | +| MultiImplementationB.cs:25:7:25:8 | Before call to constructor Object | MultiImplementationB.cs:25:7:25:8 | After call to method | +| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | Before 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 | {...} | 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:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | Before call to method | +| MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationB.cs:25:7:25:8 | After call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | After call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | After call to method | MultiImplementationB.cs:30:15:30:16 | call to method | +| MultiImplementationB.cs:30:15:30:16 | Before call to constructor Object | MultiImplementationB.cs:30:15:30:16 | After call to method | +| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | Before 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 | {...} | 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 | call to method | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | Before call to method | +| MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationB.cs:30:15:30:16 | After call to constructor Object | +| MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | Entry | +| NullCoalescing.cs:1:7:1:20 | After call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | After call to method | NullCoalescing.cs:1:7:1:20 | call to method | +| NullCoalescing.cs:1:7:1:20 | Before call to constructor Object | NullCoalescing.cs:1:7:1:20 | After call to method | +| NullCoalescing.cs:1:7:1:20 | Before call to method | NullCoalescing.cs:1:7:1:20 | Entry | +| NullCoalescing.cs:1:7:1:20 | Exit | NullCoalescing.cs:1:7:1:20 | Normal Exit | +| NullCoalescing.cs:1:7:1:20 | Normal Exit | NullCoalescing.cs:1:7:1:20 | {...} | +| NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | Before 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 | 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 | ... ?? ... | -| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:9:3:10 | enter M1 | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:23 | access to parameter i | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:28:3:28 | 0 | -| NullCoalescing.cs:5:9:5:10 | exit M2 | NullCoalescing.cs:5:9:5:10 | exit M2 (normal) | -| NullCoalescing.cs:5:9:5:10 | exit M2 (normal) | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:39:5:39 | 0 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:43:5:43 | 1 | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:9:5:10 | enter M2 | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | -| NullCoalescing.cs:7:12:7:13 | exit M3 | NullCoalescing.cs:7:12:7:13 | exit M3 (normal) | -| NullCoalescing.cs:7:12:7:13 | exit M3 (normal) | NullCoalescing.cs:7:40:7:53 | ... ?? ... | -| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:12:7:13 | enter M3 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:53 | ... ?? ... | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:9:12:9:13 | exit M4 | NullCoalescing.cs:9:12:9:13 | exit M4 (normal) | -| NullCoalescing.cs:9:12:9:13 | exit M4 (normal) | NullCoalescing.cs:9:36:9:58 | ... ?? ... | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:12:9:13 | enter M4 | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:11:9:11:10 | exit M5 | NullCoalescing.cs:11:9:11:10 | exit M5 (normal) | -| NullCoalescing.cs:11:9:11:10 | exit M5 (normal) | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:64:11:64 | 0 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:68:11:68 | 1 | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:9:11:10 | enter M5 | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | -| NullCoalescing.cs:13:10:13:11 | exit M6 | NullCoalescing.cs:13:10:13:11 | exit M6 (normal) | -| NullCoalescing.cs:13:10:13:11 | exit M6 (normal) | NullCoalescing.cs:17:9:17:24 | ... = ... | -| NullCoalescing.cs:14:5:18:5 | {...} | NullCoalescing.cs:13:10:13:11 | enter M6 | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | Before call to method | +| NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | After call to constructor Object | +| NullCoalescing.cs:3:9:3:10 | Exit | NullCoalescing.cs:3:9:3:10 | Normal Exit | +| NullCoalescing.cs:3:9:3:10 | Normal Exit | NullCoalescing.cs:3:23:3:28 | After ... ?? ... | +| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:28 | ... ?? ... | +| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | Entry | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:28:3:28 | 0 | +| NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | +| NullCoalescing.cs:5:9:5:10 | Exit | NullCoalescing.cs:5:9:5:10 | Normal Exit | +| NullCoalescing.cs:5:9:5:10 | Normal Exit | NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | +| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | Entry | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:39:5:39 | 0 | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:43:5:43 | 1 | +| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:34 | ... ?? ... | +| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:30:5:34 | After false [false] | +| NullCoalescing.cs:5:30:5:34 | After false [false] | NullCoalescing.cs:5:30:5:34 | false | +| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | +| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | +| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | +| NullCoalescing.cs:7:12:7:13 | Exit | NullCoalescing.cs:7:12:7:13 | Normal Exit | +| NullCoalescing.cs:7:12:7:13 | Normal Exit | NullCoalescing.cs:7:40:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:53 | ... ?? ... | +| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | Entry | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:53 | ... ?? ... | +| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:52:7:53 | "" | +| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:9:12:9:13 | Exit | NullCoalescing.cs:9:12:9:13 | Normal Exit | +| NullCoalescing.cs:9:12:9:13 | Normal Exit | NullCoalescing.cs:9:36:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | Entry | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | +| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:36:9:58 | ... ?? ... | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | +| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | +| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:58 | ... ?? ... | +| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:57:9:58 | "" | +| NullCoalescing.cs:9:57:9:58 | "" | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:11:9:11:10 | Exit | NullCoalescing.cs:11:9:11:10 | Normal Exit | +| NullCoalescing.cs:11:9:11:10 | Normal Exit | NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | +| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | Entry | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:64:11:64 | 0 | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:68:11:68 | 1 | +| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:59 | ... ?? ... | +| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | +| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:58 | ... && ... | +| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | +| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | +| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | +| NullCoalescing.cs:13:10:13:11 | Exit | NullCoalescing.cs:13:10:13:11 | Normal Exit | +| NullCoalescing.cs:13:10:13:11 | Normal Exit | NullCoalescing.cs:14:5:18:5 | After {...} | +| NullCoalescing.cs:14:5:18:5 | After {...} | NullCoalescing.cs:17:9:17:25 | After ...; | +| NullCoalescing.cs:14:5:18:5 | {...} | NullCoalescing.cs:13:10:13:11 | Entry | | NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:14:5:18:5 | {...} | -| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:15:17:15:31 | ... ?? ... | +| NullCoalescing.cs:15:9:15:32 | After ... ...; | NullCoalescing.cs:15:13:15:31 | After Int32 j = ... | +| NullCoalescing.cs:15:13:15:13 | access to local variable j | NullCoalescing.cs:15:13:15:31 | Before Int32 j = ... | +| NullCoalescing.cs:15:13:15:31 | After Int32 j = ... | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | +| NullCoalescing.cs:15:13:15:31 | Before Int32 j = ... | NullCoalescing.cs:15:9:15:32 | ... ...; | +| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | | NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:23:15:26 | null | -| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:31:15:31 | 0 | -| NullCoalescing.cs:15:23:15:26 | null | NullCoalescing.cs:15:9:15:32 | ... ...; | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:17:15:26 | (...) ... | -| NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | -| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | -| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:9:16:26 | ... ...; | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:18 | "" | -| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | -| NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:16:13:16:25 | String s = ... | +| NullCoalescing.cs:15:17:15:26 | Before (...) ... | NullCoalescing.cs:15:17:15:31 | ... ?? ... | +| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:13:15:13 | access to local variable j | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:31:15:31 | 0 | +| NullCoalescing.cs:15:23:15:26 | null | NullCoalescing.cs:15:17:15:26 | Before (...) ... | +| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:15:9:15:32 | After ... ...; | +| NullCoalescing.cs:16:9:16:26 | After ... ...; | NullCoalescing.cs:16:13:16:25 | After String s = ... | +| NullCoalescing.cs:16:13:16:13 | access to local variable s | NullCoalescing.cs:16:13:16:25 | Before String s = ... | +| NullCoalescing.cs:16:13:16:25 | After String s = ... | NullCoalescing.cs:16:13:16:25 | String s = ... | +| NullCoalescing.cs:16:13:16:25 | Before String s = ... | NullCoalescing.cs:16:9:16:26 | ... ...; | +| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | +| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:25 | ... ?? ... | +| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:13:16:13 | access to local variable s | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:23:16:25 | "a" | +| NullCoalescing.cs:16:23:16:25 | "a" | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:17:9:17:9 | access to local variable j | NullCoalescing.cs:17:9:17:24 | Before ... = ... | +| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | +| NullCoalescing.cs:17:9:17:24 | After ... = ... | NullCoalescing.cs:17:9:17:24 | ... = ... | +| NullCoalescing.cs:17:9:17:24 | Before ... = ... | NullCoalescing.cs:17:9:17:25 | ...; | +| NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:16:9:16:26 | After ... ...; | +| NullCoalescing.cs:17:9:17:25 | After ...; | NullCoalescing.cs:17:9:17:24 | After ... = ... | | 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: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 | +| NullCoalescing.cs:17:13:17:19 | Before (...) ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | +| NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:9:17:9 | access to local variable j | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:24:17:24 | 1 | +| NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:13:17:19 | Before (...) ... | +| NullCoalescing.cs:17:24:17:24 | 1 | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| PartialImplementationA.cs:1:15:1:21 | Exit | PartialImplementationA.cs:1:15:1:21 | Normal Exit | +| PartialImplementationA.cs:1:15:1:21 | Normal Exit | PartialImplementationB.cs:5:32:5:34 | After ... = ... | +| PartialImplementationA.cs:3:12:3:18 | After call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | After call to method | PartialImplementationA.cs:3:12:3:18 | call to method | +| PartialImplementationA.cs:3:12:3:18 | Before call to constructor Object | PartialImplementationA.cs:3:12:3:18 | After call to method | +| PartialImplementationA.cs:3:12:3:18 | Before call to method | PartialImplementationA.cs:3:12:3:18 | Entry | +| PartialImplementationA.cs:3:12:3:18 | Exit | PartialImplementationA.cs:3:12:3:18 | Normal Exit | +| PartialImplementationA.cs:3:12:3:18 | Normal Exit | PartialImplementationA.cs:3:27:3:29 | {...} | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | Before 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 | 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:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | enter Partial | -| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | -| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:20:3:20 | 0 | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | enter | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:16 | access to field F | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | this access | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to method | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | Before call to method | +| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | After call to constructor Object | +| PartialImplementationB.cs:3:16:3:16 | After access to field F | PartialImplementationB.cs:3:16:3:16 | access to field F | +| PartialImplementationB.cs:3:16:3:16 | Before access to field F | PartialImplementationB.cs:3:16:3:20 | Before ... = ... | +| 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 | Before access to field F | +| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:20:3:20 | 0 | +| PartialImplementationB.cs:3:16:3:20 | After ... = ... | PartialImplementationB.cs:3:16:3:20 | ... = ... | +| PartialImplementationB.cs:3:16:3:20 | Before ... = ... | PartialImplementationA.cs:1:15:1:21 | Entry | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | After access to field F | +| PartialImplementationB.cs:4:12:4:18 | After call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | +| PartialImplementationB.cs:4:12:4:18 | After call to method | PartialImplementationB.cs:4:12:4:18 | call to method | +| PartialImplementationB.cs:4:12:4:18 | Before call to constructor Object | PartialImplementationB.cs:4:12:4:18 | After call to method | +| PartialImplementationB.cs:4:12:4:18 | Before call to method | PartialImplementationB.cs:4:12:4:18 | Entry | +| PartialImplementationB.cs:4:12:4:18 | Exit | PartialImplementationB.cs:4:12:4:18 | Normal Exit | +| PartialImplementationB.cs:4:12:4:18 | Normal Exit | PartialImplementationB.cs:4:22:4:24 | {...} | +| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | Before 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 | 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: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: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 | -| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | call to method | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | Before call to method | +| PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | After call to constructor Object | +| PartialImplementationB.cs:5:16:5:16 | After access to property P | PartialImplementationB.cs:5:16:5:16 | access to property P | +| PartialImplementationB.cs:5:16:5:16 | Before access to property P | PartialImplementationB.cs:5:32:5:34 | Before ... = ... | +| 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 | Before access to property P | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:34:5:34 | 0 | +| PartialImplementationB.cs:5:32:5:34 | After ... = ... | PartialImplementationB.cs:5:32:5:34 | ... = ... | +| PartialImplementationB.cs:5:32:5:34 | Before ... = ... | PartialImplementationB.cs:3:16:3:20 | After ... = ... | +| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | After access to property P | +| Patterns.cs:3:7:3:14 | After call to constructor Object | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | After call to method | Patterns.cs:3:7:3:14 | call to method | +| Patterns.cs:3:7:3:14 | Before call to constructor Object | Patterns.cs:3:7:3:14 | After call to method | +| Patterns.cs:3:7:3:14 | Before call to method | Patterns.cs:3:7:3:14 | Entry | +| Patterns.cs:3:7:3:14 | Exit | Patterns.cs:3:7:3:14 | Normal Exit | +| Patterns.cs:3:7:3:14 | Normal Exit | Patterns.cs:3:7:3:14 | {...} | +| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | Before 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 | 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 | -| Patterns.cs:6:5:43:5 | {...} | Patterns.cs:5:10:5:11 | enter M1 | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | Before call to method | +| Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | After call to constructor Object | +| Patterns.cs:5:10:5:11 | Exit | Patterns.cs:5:10:5:11 | Normal Exit | +| Patterns.cs:5:10:5:11 | Normal Exit | Patterns.cs:6:5:43:5 | After {...} | +| Patterns.cs:6:5:43:5 | After {...} | Patterns.cs:40:9:42:9 | After switch (...) {...} | +| Patterns.cs:6:5:43:5 | {...} | Patterns.cs:5:10:5:11 | Entry | | Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:6:5:43:5 | {...} | +| Patterns.cs:7:9:7:24 | After ... ...; | Patterns.cs:7:16:7:23 | After Object o = ... | +| Patterns.cs:7:16:7:16 | access to local variable o | Patterns.cs:7:16:7:23 | Before Object o = ... | +| Patterns.cs:7:16:7:23 | After Object o = ... | Patterns.cs:7:16:7:23 | Object o = ... | +| Patterns.cs:7:16:7:23 | Before Object o = ... | Patterns.cs:7:9:7:24 | ... ...; | | Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:20:7:23 | null | -| Patterns.cs:7:20:7:23 | null | Patterns.cs:7:9:7:24 | ... ...; | -| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:7:16:7:23 | Object o = ... | -| Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:9:18:9 | if (...) ... | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:13 | access to local variable o | -| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:8:13:8:23 | [true] ... is ... | -| Patterns.cs:10:13:10:42 | call to method WriteLine | Patterns.cs:10:31:10:41 | $"..." | +| Patterns.cs:7:20:7:23 | null | Patterns.cs:7:16:7:16 | access to local variable o | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:9:9:11:9 | After {...} | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | +| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:7:9:7:24 | After ... ...; | +| Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:13:8:23 | Before ... is ... | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:13 | access to local variable o | +| Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:8:18:8:23 | Int32 i1 | +| Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:8:9:18:9 | if (...) ... | +| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:9:9:11:9 | After {...} | Patterns.cs:10:13:10:43 | After ...; | +| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:8:13:8:23 | After ... is ... [true] | +| Patterns.cs:10:13:10:42 | After call to method WriteLine | Patterns.cs:10:13:10:42 | call to method WriteLine | +| Patterns.cs:10:13:10:42 | Before call to method WriteLine | Patterns.cs:10:13:10:43 | ...; | +| Patterns.cs:10:13:10:42 | call to method WriteLine | Patterns.cs:10:31:10:41 | After $"..." | | Patterns.cs:10:13:10:43 | ...; | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:10:37:10:40 | {...} | -| Patterns.cs:10:33:10:36 | "int " | Patterns.cs:10:13:10:43 | ...; | +| Patterns.cs:10:13:10:43 | After ...; | Patterns.cs:10:13:10:42 | After call to method WriteLine | +| Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:10:37:10:40 | After {...} | +| Patterns.cs:10:31:10:41 | After $"..." | Patterns.cs:10:31:10:41 | $"..." | +| Patterns.cs:10:31:10:41 | Before $"..." | Patterns.cs:10:13:10:42 | Before call to method WriteLine | +| Patterns.cs:10:33:10:36 | "int " | Patterns.cs:10:31:10:41 | Before $"..." | +| Patterns.cs:10:37:10:40 | After {...} | Patterns.cs:10:37:10:40 | {...} | +| Patterns.cs:10:37:10:40 | Before {...} | Patterns.cs:10:33:10:36 | "int " | | Patterns.cs:10:37:10:40 | {...} | Patterns.cs:10:38:10:39 | access to local variable i1 | -| Patterns.cs:10:38:10:39 | access to local variable i1 | Patterns.cs:10:33:10:36 | "int " | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:18 | access to local variable o | -| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:14:13:14:45 | call to method WriteLine | Patterns.cs:14:31:14:44 | $"..." | +| Patterns.cs:10:38:10:39 | access to local variable i1 | Patterns.cs:10:37:10:40 | Before {...} | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:13:9:15:9 | After {...} | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:18:12:31 | Before ... is ... | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:18 | access to local variable o | +| Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:12:23:12:31 | String s1 | +| Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:12:14:18:9 | if (...) ... | +| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:13:9:15:9 | After {...} | Patterns.cs:14:13:14:46 | After ...; | +| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:12:18:12:31 | After ... is ... [true] | +| Patterns.cs:14:13:14:45 | After call to method WriteLine | Patterns.cs:14:13:14:45 | call to method WriteLine | +| Patterns.cs:14:13:14:45 | Before call to method WriteLine | Patterns.cs:14:13:14:46 | ...; | +| Patterns.cs:14:13:14:45 | call to method WriteLine | Patterns.cs:14:31:14:44 | After $"..." | | Patterns.cs:14:13:14:46 | ...; | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:14:40:14:43 | {...} | -| Patterns.cs:14:33:14:39 | "string " | Patterns.cs:14:13:14:46 | ...; | +| Patterns.cs:14:13:14:46 | After ...; | Patterns.cs:14:13:14:45 | After call to method WriteLine | +| Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:14:40:14:43 | After {...} | +| Patterns.cs:14:31:14:44 | After $"..." | Patterns.cs:14:31:14:44 | $"..." | +| Patterns.cs:14:31:14:44 | Before $"..." | Patterns.cs:14:13:14:45 | Before call to method WriteLine | +| Patterns.cs:14:33:14:39 | "string " | Patterns.cs:14:31:14:44 | Before $"..." | +| Patterns.cs:14:40:14:43 | After {...} | Patterns.cs:14:40:14:43 | {...} | +| Patterns.cs:14:40:14:43 | Before {...} | Patterns.cs:14:33:14:39 | "string " | | Patterns.cs:14:40:14:43 | {...} | Patterns.cs:14:41:14:42 | access to local variable s1 | -| Patterns.cs:14:41:14:42 | access to local variable s1 | Patterns.cs:14:33:14:39 | "string " | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:18 | access to local variable o | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:10:13:10:42 | call to method WriteLine | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:14:13:14:45 | call to method WriteLine | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:17:9:18:9 | {...} | +| Patterns.cs:14:41:14:42 | access to local variable s1 | Patterns.cs:14:40:14:43 | Before {...} | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:17:9:18:9 | {...} | +| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:18:16:28 | Before ... is ... | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:18 | access to local variable o | +| Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:16:23:16:28 | Object v1 | +| Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | +| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:16:18:16:28 | After ... is ... [true] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:23:17:23:22 | break; | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:26:17:26:22 | break; | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:29:17:29:22 | break; | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:32:17:32:22 | break; | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:34:17:34:22 | break; | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:37:17:37:22 | break; | +| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:8:9:18:9 | After if (...) ... | | Patterns.cs:20:17:20:17 | access to local variable o | Patterns.cs:20:9:38:9 | switch (...) {...} | | Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:20:17:20:17 | access to local variable o | -| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:22:13:22:23 | case ...: | -| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:13:24:36 | case ...: | +| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:22:13:22:23 | After case ...: [match] | +| Patterns.cs:23:17:23:22 | Before break; | Patterns.cs:22:18:22:22 | "xyz" | +| Patterns.cs:23:17:23:22 | break; | Patterns.cs:23:17:23:22 | Before break; | +| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:22:13:22:23 | After case ...: [no-match] | +| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:30:24:35 | Before ... > ... | | Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:35:24:35 | 0 | +| Patterns.cs:24:30:24:35 | Before ... > ... | Patterns.cs:24:18:24:23 | Int32 i2 | | Patterns.cs:24:35:24:35 | 0 | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:25:35:25:50 | $"..." | -| Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:25:46:25:49 | {...} | -| Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:25:17:25:52 | ...; | +| Patterns.cs:25:17:25:51 | After call to method WriteLine | Patterns.cs:25:17:25:51 | call to method WriteLine | +| Patterns.cs:25:17:25:51 | Before call to method WriteLine | Patterns.cs:25:17:25:52 | ...; | +| Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:25:35:25:50 | After $"..." | +| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:25:17:25:52 | After ...; | Patterns.cs:25:17:25:51 | After call to method WriteLine | +| Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:25:46:25:49 | After {...} | +| Patterns.cs:25:35:25:50 | After $"..." | Patterns.cs:25:35:25:50 | $"..." | +| Patterns.cs:25:35:25:50 | Before $"..." | Patterns.cs:25:17:25:51 | Before call to method WriteLine | +| Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:25:35:25:50 | Before $"..." | +| Patterns.cs:25:46:25:49 | After {...} | Patterns.cs:25:46:25:49 | {...} | +| Patterns.cs:25:46:25:49 | Before {...} | Patterns.cs:25:37:25:45 | "positive " | | Patterns.cs:25:46:25:49 | {...} | Patterns.cs:25:47:25:48 | access to local variable i2 | -| Patterns.cs:25:47:25:48 | access to local variable i2 | Patterns.cs:25:37:25:45 | "positive " | -| Patterns.cs:26:17:26:22 | break; | Patterns.cs:25:17:25:51 | call to method WriteLine | -| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:27:13:27:24 | case ...: | -| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:28:35:28:45 | $"..." | -| Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:28:41:28:44 | {...} | -| Patterns.cs:28:37:28:40 | "int " | Patterns.cs:28:17:28:47 | ...; | +| Patterns.cs:25:47:25:48 | access to local variable i2 | Patterns.cs:25:46:25:49 | Before {...} | +| Patterns.cs:26:17:26:22 | Before break; | Patterns.cs:25:17:25:52 | After ...; | +| Patterns.cs:26:17:26:22 | break; | Patterns.cs:26:17:26:22 | Before break; | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:28:17:28:46 | After call to method WriteLine | Patterns.cs:28:17:28:46 | call to method WriteLine | +| Patterns.cs:28:17:28:46 | Before call to method WriteLine | Patterns.cs:28:17:28:47 | ...; | +| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:28:35:28:45 | After $"..." | +| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:27:18:27:23 | Int32 i3 | +| Patterns.cs:28:17:28:47 | After ...; | Patterns.cs:28:17:28:46 | After call to method WriteLine | +| Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:28:41:28:44 | After {...} | +| Patterns.cs:28:35:28:45 | After $"..." | Patterns.cs:28:35:28:45 | $"..." | +| Patterns.cs:28:35:28:45 | Before $"..." | Patterns.cs:28:17:28:46 | Before call to method WriteLine | +| Patterns.cs:28:37:28:40 | "int " | Patterns.cs:28:35:28:45 | Before $"..." | +| Patterns.cs:28:41:28:44 | After {...} | Patterns.cs:28:41:28:44 | {...} | +| Patterns.cs:28:41:28:44 | Before {...} | Patterns.cs:28:37:28:40 | "int " | | Patterns.cs:28:41:28:44 | {...} | Patterns.cs:28:42:28:43 | access to local variable i3 | -| Patterns.cs:28:42:28:43 | access to local variable i3 | Patterns.cs:28:37:28:40 | "int " | -| Patterns.cs:29:17:29:22 | break; | Patterns.cs:28:17:28:46 | call to method WriteLine | -| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:31:35:31:48 | $"..." | -| Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:31:44:31:47 | {...} | -| Patterns.cs:31:37:31:43 | "string " | Patterns.cs:31:17:31:50 | ...; | +| Patterns.cs:28:42:28:43 | access to local variable i3 | Patterns.cs:28:41:28:44 | Before {...} | +| Patterns.cs:29:17:29:22 | Before break; | Patterns.cs:28:17:28:47 | After ...; | +| Patterns.cs:29:17:29:22 | break; | Patterns.cs:29:17:29:22 | Before break; | +| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [no-match] | +| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:31:17:31:49 | After call to method WriteLine | Patterns.cs:31:17:31:49 | call to method WriteLine | +| Patterns.cs:31:17:31:49 | Before call to method WriteLine | Patterns.cs:31:17:31:50 | ...; | +| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:31:35:31:48 | After $"..." | +| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:30:18:30:26 | String s2 | +| Patterns.cs:31:17:31:50 | After ...; | Patterns.cs:31:17:31:49 | After call to method WriteLine | +| Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:31:44:31:47 | After {...} | +| Patterns.cs:31:35:31:48 | After $"..." | Patterns.cs:31:35:31:48 | $"..." | +| Patterns.cs:31:35:31:48 | Before $"..." | Patterns.cs:31:17:31:49 | Before call to method WriteLine | +| Patterns.cs:31:37:31:43 | "string " | Patterns.cs:31:35:31:48 | Before $"..." | +| Patterns.cs:31:44:31:47 | After {...} | Patterns.cs:31:44:31:47 | {...} | +| Patterns.cs:31:44:31:47 | Before {...} | Patterns.cs:31:37:31:43 | "string " | | Patterns.cs:31:44:31:47 | {...} | Patterns.cs:31:45:31:46 | access to local variable s2 | -| Patterns.cs:31:45:31:46 | access to local variable s2 | Patterns.cs:31:37:31:43 | "string " | -| Patterns.cs:32:17:32:22 | break; | Patterns.cs:31:17:31:49 | call to method WriteLine | -| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:33:13:33:24 | case ...: | +| Patterns.cs:31:45:31:46 | access to local variable s2 | Patterns.cs:31:44:31:47 | Before {...} | +| Patterns.cs:32:17:32:22 | Before break; | Patterns.cs:31:17:31:50 | After ...; | +| Patterns.cs:32:17:32:22 | break; | Patterns.cs:32:17:32:22 | Before break; | +| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:34:17:34:22 | Before break; | Patterns.cs:33:18:33:23 | Object v2 | +| Patterns.cs:34:17:34:22 | break; | Patterns.cs:34:17:34:22 | Before break; | +| Patterns.cs:35:13:35:20 | After default: [match] | Patterns.cs:35:13:35:20 | default: | +| Patterns.cs:35:13:35:20 | default: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:36:17:36:51 | After call to method WriteLine | Patterns.cs:36:17:36:51 | call to method WriteLine | +| Patterns.cs:36:17:36:51 | Before call to method WriteLine | Patterns.cs:36:17:36:52 | ...; | | Patterns.cs:36:17:36:51 | call to method WriteLine | Patterns.cs:36:35:36:50 | "Something else" | -| Patterns.cs:36:17:36:52 | ...; | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:36:35:36:50 | "Something else" | Patterns.cs:36:17:36:52 | ...; | -| Patterns.cs:37:17:37:22 | break; | Patterns.cs:36:17:36:51 | call to method WriteLine | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:23:17:23:22 | break; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:26:17:26:22 | break; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:29:17:29:22 | break; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:32:17:32:22 | break; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:37:17:37:22 | break; | +| Patterns.cs:36:17:36:52 | ...; | Patterns.cs:35:13:35:20 | After default: [match] | +| Patterns.cs:36:17:36:52 | After ...; | Patterns.cs:36:17:36:51 | After call to method WriteLine | +| Patterns.cs:36:35:36:50 | "Something else" | Patterns.cs:36:17:36:51 | Before call to method WriteLine | +| Patterns.cs:37:17:37:22 | Before break; | Patterns.cs:36:17:36:52 | After ...; | +| Patterns.cs:37:17:37:22 | break; | Patterns.cs:37:17:37:22 | Before break; | +| Patterns.cs:40:9:42:9 | After switch (...) {...} | Patterns.cs:40:17:40:17 | access to local variable o | +| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:20:9:38:9 | After switch (...) {...} | | Patterns.cs:40:17:40:17 | access to local variable o | Patterns.cs:40:9:42:9 | switch (...) {...} | -| Patterns.cs:47:24:47:25 | exit M2 | Patterns.cs:47:24:47:25 | exit M2 (normal) | -| Patterns.cs:47:24:47:25 | exit M2 (normal) | Patterns.cs:48:9:48:20 | ... is ... | -| Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:47:24:47:25 | enter M2 | -| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:14:48:20 | not ... | +| Patterns.cs:47:24:47:25 | Exit | Patterns.cs:47:24:47:25 | Normal Exit | +| Patterns.cs:47:24:47:25 | Normal Exit | Patterns.cs:48:9:48:20 | After ... is ... | +| Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:9:48:20 | Before ... is ... | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:9 | access to parameter c | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | ... is ... | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:14:48:20 | After not ... | +| Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:47:24:47:25 | Entry | +| Patterns.cs:48:14:48:20 | After not ... | Patterns.cs:48:14:48:20 | not ... | +| Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | | Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:18:48:20 | a | -| Patterns.cs:48:18:48:20 | a | Patterns.cs:48:9:48:9 | access to parameter c | -| Patterns.cs:50:24:50:25 | exit M3 | Patterns.cs:50:24:50:25 | exit M3 (normal) | -| Patterns.cs:50:24:50:25 | exit M3 (normal) | Patterns.cs:51:9:51:39 | ... ? ... : ... | -| Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:50:24:50:25 | enter M3 | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:25:51:30 | ... is ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:34:51:39 | ... is ... | -| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:9:51:9 | access to parameter c | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:30:51:30 | 1 | -| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:39:51:39 | 2 | -| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:53:24:53:25 | exit M4 | Patterns.cs:53:24:53:25 | exit M4 (normal) | -| Patterns.cs:53:24:53:25 | exit M4 (normal) | Patterns.cs:54:9:54:37 | ... is ... | -| Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:53:24:53:25 | enter M4 | -| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:14:54:37 | not ... | -| Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:18:54:37 | { ... } | -| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:9:54:9 | access to parameter c | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:18:54:37 | Patterns u | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:27:54:35 | [match] { ... } | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:27:54:35 | [no-match] { ... } | -| Patterns.cs:56:26:56:27 | exit M5 | Patterns.cs:56:26:56:27 | exit M5 (normal) | -| Patterns.cs:56:26:56:27 | exit M5 (normal) | Patterns.cs:58:9:62:10 | return ...; | -| Patterns.cs:57:5:63:5 | {...} | Patterns.cs:56:26:56:27 | enter M5 | -| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:58:16:62:9 | ... switch { ... } | -| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:57:5:63:5 | {...} | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:60:13:60:28 | ... => ... | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:61:13:61:24 | ... => ... | -| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:22:60:28 | "not 1" | -| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:58:16:58:16 | access to parameter i | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:13:60:17 | [match] not ... | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:18:61:24 | "other" | +| Patterns.cs:48:18:48:20 | a | Patterns.cs:48:14:48:20 | Before not ... | +| Patterns.cs:50:24:50:25 | Exit | Patterns.cs:50:24:50:25 | Normal Exit | +| Patterns.cs:50:24:50:25 | Normal Exit | Patterns.cs:51:9:51:39 | After ... ? ... : ... | +| Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:9:51:21 | Before ... is ... | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:9 | access to parameter c | +| Patterns.cs:51:9:51:21 | After ... is ... [true] | Patterns.cs:51:14:51:21 | After not ... | +| Patterns.cs:51:9:51:21 | Before ... is ... | Patterns.cs:51:9:51:39 | ... ? ... : ... | +| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | Entry | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:34:51:39 | After ... is ... | +| Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:14:51:21 | not ... | +| Patterns.cs:51:14:51:21 | Before not ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:14:51:21 | not ... | Patterns.cs:51:18:51:21 | null | +| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | Before not ... | +| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:30 | Before ... is ... | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | ... is ... | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:30:51:30 | 1 | +| Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | +| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:39 | Before ... is ... | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | ... is ... | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:39:51:39 | 2 | +| Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | +| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:53:24:53:25 | Exit | Patterns.cs:53:24:53:25 | Normal Exit | +| Patterns.cs:53:24:53:25 | Normal Exit | Patterns.cs:54:9:54:37 | After ... is ... | +| Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:9:54:37 | Before ... is ... | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:9 | access to parameter c | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | ... is ... | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:14:54:37 | After not ... | +| Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:53:24:53:25 | Entry | +| Patterns.cs:54:14:54:37 | After not ... | Patterns.cs:54:14:54:37 | not ... | +| Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:18:54:37 | After { ... } | +| Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:54:18:54:37 | Patterns u | +| Patterns.cs:54:18:54:37 | After { ... } | Patterns.cs:54:18:54:37 | { ... } | +| Patterns.cs:54:18:54:37 | Before { ... } | Patterns.cs:54:14:54:37 | Before not ... | +| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:18:54:37 | Before { ... } | +| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:27:54:35 | After { ... } | +| Patterns.cs:54:27:54:35 | After { ... } | Patterns.cs:54:27:54:35 | { ... } | +| Patterns.cs:54:27:54:35 | Before { ... } | Patterns.cs:54:18:54:25 | access to type Patterns | +| Patterns.cs:54:27:54:35 | { ... } | Patterns.cs:54:33:54:33 | 1 | +| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | Before { ... } | +| Patterns.cs:56:26:56:27 | Exit | Patterns.cs:56:26:56:27 | Normal Exit | +| Patterns.cs:56:26:56:27 | Normal Exit | Patterns.cs:58:9:62:10 | return ...; | +| Patterns.cs:57:5:63:5 | {...} | Patterns.cs:56:26:56:27 | Entry | +| Patterns.cs:58:9:62:10 | Before return ...; | Patterns.cs:57:5:63:5 | {...} | +| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:58:16:62:9 | After ... switch { ... } | +| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:58:16:62:9 | ... switch { ... } | +| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:9:62:10 | Before return ...; | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:60:22:60:28 | "not 1" | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:61:18:61:24 | "other" | +| Patterns.cs:60:13:60:17 | After not ... | Patterns.cs:60:13:60:17 | not ... | +| Patterns.cs:60:13:60:17 | Before not ... | Patterns.cs:60:13:60:28 | After ... => ... [match] | +| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:17:60:17 | 1 | +| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:58:16:58:16 | access to parameter i | +| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | Before not ... | +| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:13:60:17 | After not ... | +| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:13:61:24 | After ... => ... [match] | +| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | +| Patterns.cs:61:13:61:24 | After ... => ... [match] | Patterns.cs:61:13:61:24 | ... => ... | | Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:65:26:65:27 | exit M6 | Patterns.cs:65:26:65:27 | exit M6 (normal) | -| Patterns.cs:65:26:65:27 | exit M6 (normal) | Patterns.cs:67:9:71:10 | return ...; | -| Patterns.cs:66:5:72:5 | {...} | Patterns.cs:65:26:65:27 | enter M6 | -| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:67:16:71:9 | ... switch { ... } | -| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:66:5:72:5 | {...} | -| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:70:13:70:27 | ... => ... | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:69:17:69:17 | 2 | -| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:67:16:67:16 | 2 | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:69:13:69:17 | [no-match] not ... | -| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:18:70:27 | "possible" | +| Patterns.cs:65:26:65:27 | Exit | Patterns.cs:65:26:65:27 | Normal Exit | +| Patterns.cs:65:26:65:27 | Normal Exit | Patterns.cs:67:9:71:10 | return ...; | +| Patterns.cs:66:5:72:5 | {...} | Patterns.cs:65:26:65:27 | Entry | +| Patterns.cs:67:9:71:10 | Before return ...; | Patterns.cs:66:5:72:5 | {...} | +| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:67:16:71:9 | After ... switch { ... } | +| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:67:16:71:9 | ... switch { ... } | +| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:9:71:10 | Before return ...; | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:69:22:69:33 | "impossible" | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:70:18:70:27 | "possible" | +| Patterns.cs:69:13:69:17 | After not ... | Patterns.cs:69:13:69:17 | not ... | +| Patterns.cs:69:13:69:17 | Before not ... | Patterns.cs:69:13:69:33 | After ... => ... [match] | +| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:17:69:17 | 2 | +| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:67:16:67:16 | 2 | +| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:13:69:17 | Before not ... | +| Patterns.cs:69:22:69:33 | "impossible" | Patterns.cs:69:13:69:17 | After not ... | +| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:27 | After ... => ... [match] | +| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | | Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:74:26:74:27 | exit M7 | Patterns.cs:74:26:74:27 | exit M7 (normal) | -| Patterns.cs:74:26:74:27 | exit M7 (normal) | Patterns.cs:76:9:82:10 | return ...; | -| Patterns.cs:75:5:83:5 | {...} | Patterns.cs:74:26:74:27 | enter M7 | -| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:76:16:82:9 | ... switch { ... } | -| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:75:5:83:5 | {...} | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:78:13:78:24 | ... => ... | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:79:13:79:24 | ... => ... | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:80:13:80:20 | ... => ... | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:81:13:81:20 | ... => ... | +| Patterns.cs:74:26:74:27 | Exit | Patterns.cs:74:26:74:27 | Normal Exit | +| Patterns.cs:74:26:74:27 | Normal Exit | Patterns.cs:76:9:82:10 | return ...; | +| Patterns.cs:75:5:83:5 | {...} | Patterns.cs:74:26:74:27 | Entry | +| Patterns.cs:76:9:82:10 | Before return ...; | Patterns.cs:75:5:83:5 | {...} | +| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:76:16:82:9 | After ... switch { ... } | +| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:76:16:82:9 | ... switch { ... } | +| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:9:82:10 | Before return ...; | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:78:20:78:24 | "> 1" | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:79:20:79:24 | "< 0" | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:80:18:80:20 | "1" | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:81:18:81:20 | "0" | | Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:15:78:15 | 1 | -| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:20:78:24 | "> 1" | -| Patterns.cs:78:15:78:15 | 1 | Patterns.cs:76:16:76:16 | access to parameter i | +| Patterns.cs:78:13:78:15 | After > ... | Patterns.cs:78:13:78:15 | > ... | +| Patterns.cs:78:13:78:15 | Before > ... | Patterns.cs:78:13:78:24 | After ... => ... [match] | +| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:76:16:76:16 | access to parameter i | +| Patterns.cs:78:15:78:15 | 1 | Patterns.cs:78:13:78:15 | Before > ... | +| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:13:78:15 | After > ... | | Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:15:79:15 | 0 | -| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:20:79:24 | "< 0" | -| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:18:81:20 | "0" | +| Patterns.cs:79:13:79:15 | After < ... | Patterns.cs:79:13:79:15 | < ... | +| Patterns.cs:79:13:79:15 | Before < ... | Patterns.cs:79:13:79:24 | After ... => ... [match] | +| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | +| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:13:79:15 | Before < ... | +| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:13:79:15 | After < ... | +| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | +| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:13:80:13 | 1 | +| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:13:81:20 | After ... => ... [match] | +| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:81:13:81:20 | After ... => ... [match] | Patterns.cs:81:13:81:20 | ... => ... | | Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:85:26:85:27 | exit M8 | Patterns.cs:85:26:85:27 | exit M8 (normal) | -| Patterns.cs:85:26:85:27 | exit M8 (normal) | Patterns.cs:85:39:85:69 | ... ? ... : ... | -| Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:26:85:27 | enter M8 | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:39:85:39 | access to parameter i | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:87:26:87:27 | exit M9 | Patterns.cs:87:26:87:27 | exit M9 (normal) | -| Patterns.cs:87:26:87:27 | exit M9 (normal) | Patterns.cs:87:39:87:70 | ... ? ... : ... | -| Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:26:87:27 | enter M9 | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:39:87:39 | access to parameter i | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:93:17:93:19 | exit M10 | Patterns.cs:93:17:93:19 | exit M10 (normal) | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:97:13:97:38 | call to method WriteLine | -| Patterns.cs:94:5:99:5 | {...} | Patterns.cs:93:17:93:19 | enter M10 | +| Patterns.cs:85:26:85:27 | Exit | Patterns.cs:85:26:85:27 | Normal Exit | +| Patterns.cs:85:26:85:27 | Normal Exit | Patterns.cs:85:39:85:69 | After ... ? ... : ... | +| Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:39:85:53 | Before ... is ... | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:39 | access to parameter i | +| Patterns.cs:85:39:85:53 | After ... is ... [true] | Patterns.cs:85:44:85:53 | After ... or ... | +| Patterns.cs:85:39:85:53 | Before ... is ... | Patterns.cs:85:39:85:69 | ... ? ... : ... | +| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | Entry | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:57:85:63 | "not 2" | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:67:85:69 | "2" | +| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:44:85:53 | Before ... or ... | +| Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:49:85:53 | After not ... | +| Patterns.cs:85:44:85:53 | After ... or ... | Patterns.cs:85:44:85:53 | ... or ... | +| Patterns.cs:85:44:85:53 | Before ... or ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:49:85:53 | After not ... | Patterns.cs:85:49:85:53 | not ... | +| Patterns.cs:85:49:85:53 | Before not ... | Patterns.cs:85:44:85:44 | 1 | +| Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:53:85:53 | 2 | +| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | Before not ... | +| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:39:85:53 | After ... is ... [true] | +| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:39:85:53 | After ... is ... [false] | +| Patterns.cs:87:26:87:27 | Exit | Patterns.cs:87:26:87:27 | Normal Exit | +| Patterns.cs:87:26:87:27 | Normal Exit | Patterns.cs:87:39:87:70 | After ... ? ... : ... | +| Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:39:87:54 | Before ... is ... | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:39 | access to parameter i | +| Patterns.cs:87:39:87:54 | After ... is ... [true] | Patterns.cs:87:44:87:54 | After ... and ... | +| Patterns.cs:87:39:87:54 | Before ... is ... | Patterns.cs:87:39:87:70 | ... ? ... : ... | +| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | Entry | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:58:87:60 | "1" | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:64:87:70 | "not 1" | +| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:44:87:54 | Before ... and ... | +| Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:50:87:54 | After not ... | +| Patterns.cs:87:44:87:54 | After ... and ... | Patterns.cs:87:44:87:54 | ... and ... | +| Patterns.cs:87:44:87:54 | Before ... and ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:50:87:54 | After not ... | Patterns.cs:87:50:87:54 | not ... | +| Patterns.cs:87:50:87:54 | Before not ... | Patterns.cs:87:44:87:44 | 1 | +| Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:54:87:54 | 2 | +| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | Before not ... | +| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:39:87:54 | After ... is ... [true] | +| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:39:87:54 | After ... is ... [false] | +| Patterns.cs:93:17:93:19 | Exit | Patterns.cs:93:17:93:19 | Normal Exit | +| Patterns.cs:93:17:93:19 | Normal Exit | Patterns.cs:94:5:99:5 | After {...} | +| Patterns.cs:94:5:99:5 | After {...} | Patterns.cs:95:9:98:9 | After if (...) ... | +| Patterns.cs:94:5:99:5 | {...} | Patterns.cs:93:17:93:19 | Entry | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:96:9:98:9 | After {...} | | Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:94:5:99:5 | {...} | -| Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:9:98:9 | if (...) ... | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:13:95:16 | this access | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:95:13:95:40 | [true] ... is ... | +| Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:13:95:40 | Before ... is ... | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:16 | this access | +| Patterns.cs:95:13:95:40 | After ... is ... [true] | Patterns.cs:95:21:95:40 | After { ... } | +| Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:95:9:98:9 | if (...) ... | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:21:95:40 | Before { ... } | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | After { ... } | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:29:95:38 | After ... or ... | +| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:29:95:38 | Before ... or ... | +| Patterns.cs:95:29:95:38 | ... or ... | Patterns.cs:95:36:95:38 | access to constant B | +| Patterns.cs:95:29:95:38 | After ... or ... | Patterns.cs:95:29:95:38 | ... or ... | +| Patterns.cs:95:29:95:38 | Before ... or ... | Patterns.cs:95:21:95:40 | Before { ... } | +| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:31 | access to constant A | +| Patterns.cs:96:9:98:9 | After {...} | Patterns.cs:97:13:97:39 | After ...; | +| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:95:13:95:40 | After ... is ... [true] | +| Patterns.cs:97:13:97:38 | After call to method WriteLine | Patterns.cs:97:13:97:38 | call to method WriteLine | +| Patterns.cs:97:13:97:38 | Before call to method WriteLine | Patterns.cs:97:13:97:39 | ...; | | 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 | call to method | +| Patterns.cs:97:13:97:39 | After ...; | Patterns.cs:97:13:97:38 | After call to method WriteLine | +| Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:13:97:38 | Before call to method WriteLine | +| PostDominance.cs:3:7:3:19 | After call to constructor Object | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | After call to method | PostDominance.cs:3:7:3:19 | call to method | +| PostDominance.cs:3:7:3:19 | Before call to constructor Object | PostDominance.cs:3:7:3:19 | After call to method | +| PostDominance.cs:3:7:3:19 | Before call to method | PostDominance.cs:3:7:3:19 | Entry | +| PostDominance.cs:3:7:3:19 | Exit | PostDominance.cs:3:7:3:19 | Normal Exit | +| PostDominance.cs:3:7:3:19 | Normal Exit | PostDominance.cs:3:7:3:19 | {...} | +| PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | Before 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 | 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 | -| PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:5:10:5:11 | enter M1 | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | Before call to method | +| PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | After call to constructor Object | +| PostDominance.cs:5:10:5:11 | Exit | PostDominance.cs:5:10:5:11 | Normal Exit | +| PostDominance.cs:5:10:5:11 | Normal Exit | PostDominance.cs:6:5:8:5 | After {...} | +| PostDominance.cs:6:5:8:5 | After {...} | PostDominance.cs:7:9:7:29 | After ...; | +| PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:5:10:5:11 | Entry | +| PostDominance.cs:7:9:7:28 | After call to method WriteLine | PostDominance.cs:7:9:7:28 | call to method WriteLine | +| PostDominance.cs:7:9:7:28 | Before call to method WriteLine | PostDominance.cs:7:9:7:29 | ...; | | PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:7:27:7:27 | access to parameter s | | PostDominance.cs:7:9:7:29 | ...; | PostDominance.cs:6:5:8:5 | {...} | -| PostDominance.cs:7:27:7:27 | access to parameter s | PostDominance.cs:7:9:7:29 | ...; | -| PostDominance.cs:10:10:10:11 | exit M2 | PostDominance.cs:10:10:10:11 | exit M2 (normal) | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:13:13:13:19 | return ...; | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:14:9:14:28 | call to method WriteLine | -| PostDominance.cs:11:5:15:5 | {...} | PostDominance.cs:10:10:10:11 | enter M2 | +| PostDominance.cs:7:9:7:29 | After ...; | PostDominance.cs:7:9:7:28 | After call to method WriteLine | +| PostDominance.cs:7:27:7:27 | access to parameter s | PostDominance.cs:7:9:7:28 | Before call to method WriteLine | +| PostDominance.cs:10:10:10:11 | Exit | PostDominance.cs:10:10:10:11 | Normal Exit | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:11:5:15:5 | After {...} | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:13:13:13:19 | return ...; | +| PostDominance.cs:11:5:15:5 | After {...} | PostDominance.cs:14:9:14:29 | After ...; | +| PostDominance.cs:11:5:15:5 | {...} | PostDominance.cs:10:10:10:11 | Entry | +| PostDominance.cs:12:9:13:19 | After if (...) ... | PostDominance.cs:12:13:12:21 | After ... is ... [false] | | PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:11:5:15:5 | {...} | -| PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:9:13:19 | if (...) ... | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:13 | access to parameter s | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:12:13:12:21 | [true] ... is ... | +| PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:13:12:21 | Before ... is ... | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:13 | access to parameter s | +| PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:12:18:12:21 | null | +| PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:12:9:13:19 | if (...) ... | +| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:12:13:12:21 | After ... is ... [true] | +| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:13:13:13:19 | Before return ...; | +| PostDominance.cs:14:9:14:28 | After call to method WriteLine | PostDominance.cs:14:9:14:28 | call to method WriteLine | +| PostDominance.cs:14:9:14:28 | Before call to method WriteLine | PostDominance.cs:14:9:14:29 | ...; | | PostDominance.cs:14:9:14:28 | call to method WriteLine | PostDominance.cs:14:27:14:27 | access to parameter s | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:12:13:12:21 | [false] ... is ... | -| PostDominance.cs:14:27:14:27 | access to parameter s | PostDominance.cs:14:9:14:29 | ...; | -| PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | PostDominance.cs:20:13:20:55 | throw ...; | -| PostDominance.cs:17:10:17:11 | exit M3 (normal) | PostDominance.cs:21:9:21:28 | call to method WriteLine | -| PostDominance.cs:18:5:22:5 | {...} | PostDominance.cs:17:10:17:11 | enter M3 | +| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:12:9:13:19 | After if (...) ... | +| PostDominance.cs:14:9:14:29 | After ...; | PostDominance.cs:14:9:14:28 | After call to method WriteLine | +| PostDominance.cs:14:27:14:27 | access to parameter s | PostDominance.cs:14:9:14:28 | Before call to method WriteLine | +| PostDominance.cs:17:10:17:11 | Exceptional Exit | PostDominance.cs:20:13:20:55 | throw ...; | +| PostDominance.cs:17:10:17:11 | Normal Exit | PostDominance.cs:18:5:22:5 | After {...} | +| PostDominance.cs:18:5:22:5 | After {...} | PostDominance.cs:21:9:21:29 | After ...; | +| PostDominance.cs:18:5:22:5 | {...} | PostDominance.cs:17:10:17:11 | Entry | +| PostDominance.cs:19:9:20:55 | After if (...) ... | PostDominance.cs:19:13:19:21 | After ... is ... [false] | | PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:18:5:22:5 | {...} | -| PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:9:20:55 | if (...) ... | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:19:18:19:21 | null | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:13 | access to parameter s | -| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | +| PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:13:19:21 | Before ... is ... | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:13 | access to parameter s | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:13:19:21 | ... is ... | +| PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:19:18:19:21 | null | +| PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:19:9:20:55 | if (...) ... | +| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:19:13:19:21 | After ... is ... [true] | +| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | +| PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | +| PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | PostDominance.cs:20:13:20:55 | Before throw ...; | | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:45:20:53 | nameof(...) | +| PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | +| PostDominance.cs:21:9:21:28 | After call to method WriteLine | PostDominance.cs:21:9:21:28 | call to method WriteLine | +| PostDominance.cs:21:9:21:28 | Before call to method WriteLine | PostDominance.cs:21:9:21:29 | ...; | | 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 | call to method | +| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:19:9:20:55 | After if (...) ... | +| PostDominance.cs:21:9:21:29 | After ...; | PostDominance.cs:21:9:21:28 | After call to method WriteLine | +| PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:9:21:28 | Before call to method WriteLine | +| Qualifiers.cs:1:7:1:16 | After call to constructor Object | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | After call to method | Qualifiers.cs:1:7:1:16 | call to method | +| Qualifiers.cs:1:7:1:16 | Before call to constructor Object | Qualifiers.cs:1:7:1:16 | After call to method | +| Qualifiers.cs:1:7:1:16 | Before call to method | Qualifiers.cs:1:7:1:16 | Entry | +| Qualifiers.cs:1:7:1:16 | Exit | Qualifiers.cs:1:7:1:16 | Normal Exit | +| Qualifiers.cs:1:7:1:16 | Normal Exit | Qualifiers.cs:1:7:1:16 | {...} | +| Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | Before 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 | 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 | -| Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:16:7:21 | enter Method | -| Qualifiers.cs:8:23:8:34 | exit StaticMethod | Qualifiers.cs:8:23:8:34 | exit StaticMethod (normal) | -| Qualifiers.cs:8:23:8:34 | exit StaticMethod (normal) | Qualifiers.cs:8:41:8:44 | null | -| Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:23:8:34 | enter StaticMethod | -| Qualifiers.cs:10:10:10:10 | exit M | Qualifiers.cs:10:10:10:10 | exit M (normal) | -| Qualifiers.cs:10:10:10:10 | exit M (normal) | Qualifiers.cs:30:9:30:46 | ... = ... | -| Qualifiers.cs:11:5:31:5 | {...} | Qualifiers.cs:10:10:10:10 | enter M | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | Before call to method | +| Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | After call to constructor Object | +| Qualifiers.cs:7:16:7:21 | Exit | Qualifiers.cs:7:16:7:21 | Normal Exit | +| Qualifiers.cs:7:16:7:21 | Normal Exit | Qualifiers.cs:7:28:7:31 | null | +| Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:16:7:21 | Entry | +| Qualifiers.cs:8:23:8:34 | Exit | Qualifiers.cs:8:23:8:34 | Normal Exit | +| Qualifiers.cs:8:23:8:34 | Normal Exit | Qualifiers.cs:8:41:8:44 | null | +| Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:23:8:34 | Entry | +| Qualifiers.cs:10:10:10:10 | Exit | Qualifiers.cs:10:10:10:10 | Normal Exit | +| Qualifiers.cs:10:10:10:10 | Normal Exit | Qualifiers.cs:11:5:31:5 | After {...} | +| Qualifiers.cs:11:5:31:5 | After {...} | Qualifiers.cs:30:9:30:47 | After ...; | +| Qualifiers.cs:11:5:31:5 | {...} | Qualifiers.cs:10:10:10:10 | Entry | | Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:11:5:31:5 | {...} | -| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:12:17:12:21 | access to field Field | +| Qualifiers.cs:12:9:12:22 | After ... ...; | Qualifiers.cs:12:13:12:21 | After Qualifiers q = ... | +| Qualifiers.cs:12:13:12:13 | access to local variable q | Qualifiers.cs:12:13:12:21 | Before Qualifiers q = ... | +| Qualifiers.cs:12:13:12:21 | After Qualifiers q = ... | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | +| Qualifiers.cs:12:13:12:21 | Before Qualifiers q = ... | Qualifiers.cs:12:9:12:22 | ... ...; | +| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:12:17:12:21 | After access to field Field | +| Qualifiers.cs:12:17:12:21 | After access to field Field | Qualifiers.cs:12:17:12:21 | access to field Field | +| Qualifiers.cs:12:17:12:21 | Before access to field Field | Qualifiers.cs:12:13:12:13 | access to local variable q | | Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:12:17:12:21 | this access | -| Qualifiers.cs:12:17:12:21 | this access | Qualifiers.cs:12:9:12:22 | ... ...; | -| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:13:13:13:20 | access to property Property | -| Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | +| Qualifiers.cs:12:17:12:21 | this access | Qualifiers.cs:12:17:12:21 | Before access to field Field | +| Qualifiers.cs:13:9:13:9 | access to local variable q | Qualifiers.cs:13:9:13:20 | Before ... = ... | +| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:13:13:13:20 | After access to property Property | +| Qualifiers.cs:13:9:13:20 | After ... = ... | Qualifiers.cs:13:9:13:20 | ... = ... | +| Qualifiers.cs:13:9:13:20 | Before ... = ... | Qualifiers.cs:13:9:13:21 | ...; | +| Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:12:9:12:22 | After ... ...; | +| Qualifiers.cs:13:9:13:21 | After ...; | Qualifiers.cs:13:9:13:20 | After ... = ... | +| Qualifiers.cs:13:13:13:20 | After access to property Property | Qualifiers.cs:13:13:13:20 | access to property Property | +| Qualifiers.cs:13:13:13:20 | Before access to property Property | Qualifiers.cs:13:9:13:9 | access to local variable q | | Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:13:13:13:20 | this access | -| Qualifiers.cs:13:13:13:20 | this access | Qualifiers.cs:13:9:13:21 | ...; | -| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:14:13:14:20 | call to method Method | -| Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:13:9:13:20 | ... = ... | +| Qualifiers.cs:13:13:13:20 | this access | Qualifiers.cs:13:13:13:20 | Before access to property Property | +| Qualifiers.cs:14:9:14:9 | access to local variable q | Qualifiers.cs:14:9:14:20 | Before ... = ... | +| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:14:13:14:20 | After call to method Method | +| Qualifiers.cs:14:9:14:20 | After ... = ... | Qualifiers.cs:14:9:14:20 | ... = ... | +| Qualifiers.cs:14:9:14:20 | Before ... = ... | Qualifiers.cs:14:9:14:21 | ...; | +| Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:13:9:13:21 | After ...; | +| Qualifiers.cs:14:9:14:21 | After ...; | Qualifiers.cs:14:9:14:20 | After ... = ... | +| Qualifiers.cs:14:13:14:20 | After call to method Method | Qualifiers.cs:14:13:14:20 | call to method Method | +| Qualifiers.cs:14:13:14:20 | Before call to method Method | Qualifiers.cs:14:9:14:9 | access to local variable q | | Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:14:13:14:20 | this access | -| Qualifiers.cs:14:13:14:20 | this access | Qualifiers.cs:14:9:14:21 | ...; | -| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:16:13:16:22 | access to field Field | -| Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:14:9:14:20 | ... = ... | -| Qualifiers.cs:16:13:16:16 | this access | Qualifiers.cs:16:9:16:23 | ...; | +| Qualifiers.cs:14:13:14:20 | this access | Qualifiers.cs:14:13:14:20 | Before call to method Method | +| Qualifiers.cs:16:9:16:9 | access to local variable q | Qualifiers.cs:16:9:16:22 | Before ... = ... | +| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:16:13:16:22 | After access to field Field | +| Qualifiers.cs:16:9:16:22 | After ... = ... | Qualifiers.cs:16:9:16:22 | ... = ... | +| Qualifiers.cs:16:9:16:22 | Before ... = ... | Qualifiers.cs:16:9:16:23 | ...; | +| Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:14:9:14:21 | After ...; | +| Qualifiers.cs:16:9:16:23 | After ...; | Qualifiers.cs:16:9:16:22 | After ... = ... | +| Qualifiers.cs:16:13:16:16 | this access | Qualifiers.cs:16:13:16:22 | Before access to field Field | +| Qualifiers.cs:16:13:16:22 | After access to field Field | Qualifiers.cs:16:13:16:22 | access to field Field | +| Qualifiers.cs:16:13:16:22 | Before access to field Field | Qualifiers.cs:16:9:16:9 | access to local variable q | | Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:16:13:16:16 | this access | -| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:17:13:17:25 | access to property Property | -| Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:16:9:16:22 | ... = ... | -| Qualifiers.cs:17:13:17:16 | this access | Qualifiers.cs:17:9:17:26 | ...; | +| Qualifiers.cs:17:9:17:9 | access to local variable q | Qualifiers.cs:17:9:17:25 | Before ... = ... | +| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:17:13:17:25 | After access to property Property | +| Qualifiers.cs:17:9:17:25 | After ... = ... | Qualifiers.cs:17:9:17:25 | ... = ... | +| Qualifiers.cs:17:9:17:25 | Before ... = ... | Qualifiers.cs:17:9:17:26 | ...; | +| Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:16:9:16:23 | After ...; | +| Qualifiers.cs:17:9:17:26 | After ...; | Qualifiers.cs:17:9:17:25 | After ... = ... | +| Qualifiers.cs:17:13:17:16 | this access | Qualifiers.cs:17:13:17:25 | Before access to property Property | +| Qualifiers.cs:17:13:17:25 | After access to property Property | Qualifiers.cs:17:13:17:25 | access to property Property | +| Qualifiers.cs:17:13:17:25 | Before access to property Property | Qualifiers.cs:17:9:17:9 | access to local variable q | | Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:17:13:17:16 | this access | -| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:18:13:18:25 | call to method Method | -| Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:17:9:17:25 | ... = ... | -| Qualifiers.cs:18:13:18:16 | this access | Qualifiers.cs:18:9:18:26 | ...; | +| Qualifiers.cs:18:9:18:9 | access to local variable q | Qualifiers.cs:18:9:18:25 | Before ... = ... | +| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:18:13:18:25 | After call to method Method | +| Qualifiers.cs:18:9:18:25 | After ... = ... | Qualifiers.cs:18:9:18:25 | ... = ... | +| Qualifiers.cs:18:9:18:25 | Before ... = ... | Qualifiers.cs:18:9:18:26 | ...; | +| Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:17:9:17:26 | After ...; | +| Qualifiers.cs:18:9:18:26 | After ...; | Qualifiers.cs:18:9:18:25 | After ... = ... | +| Qualifiers.cs:18:13:18:16 | this access | Qualifiers.cs:18:13:18:25 | Before call to method Method | +| Qualifiers.cs:18:13:18:25 | After call to method Method | Qualifiers.cs:18:13:18:25 | call to method Method | +| Qualifiers.cs:18:13:18:25 | Before call to method Method | Qualifiers.cs:18:9:18:9 | access to local variable q | | Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:18:13:18:16 | this access | +| Qualifiers.cs:20:9:20:9 | access to local variable q | Qualifiers.cs:20:9:20:23 | Before ... = ... | | Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:20:13:20:23 | access to field StaticField | -| Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:18:9:18:25 | ... = ... | -| Qualifiers.cs:20:13:20:23 | access to field StaticField | Qualifiers.cs:20:9:20:24 | ...; | -| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | -| Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:20:9:20:23 | ... = ... | -| Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:9:21:27 | ...; | -| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | -| Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:21:9:21:26 | ... = ... | -| Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:9:22:27 | ...; | +| Qualifiers.cs:20:9:20:23 | After ... = ... | Qualifiers.cs:20:9:20:23 | ... = ... | +| Qualifiers.cs:20:9:20:23 | Before ... = ... | Qualifiers.cs:20:9:20:24 | ...; | +| Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:18:9:18:26 | After ...; | +| Qualifiers.cs:20:9:20:24 | After ...; | Qualifiers.cs:20:9:20:23 | After ... = ... | +| Qualifiers.cs:20:13:20:23 | access to field StaticField | Qualifiers.cs:20:9:20:9 | access to local variable q | +| Qualifiers.cs:21:9:21:9 | access to local variable q | Qualifiers.cs:21:9:21:26 | Before ... = ... | +| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:21:13:21:26 | After access to property StaticProperty | +| Qualifiers.cs:21:9:21:26 | After ... = ... | Qualifiers.cs:21:9:21:26 | ... = ... | +| Qualifiers.cs:21:9:21:26 | Before ... = ... | Qualifiers.cs:21:9:21:27 | ...; | +| Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:20:9:20:24 | After ...; | +| Qualifiers.cs:21:9:21:27 | After ...; | Qualifiers.cs:21:9:21:26 | After ... = ... | +| Qualifiers.cs:21:13:21:26 | After access to property StaticProperty | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | +| Qualifiers.cs:21:13:21:26 | Before access to property StaticProperty | Qualifiers.cs:21:9:21:9 | access to local variable q | +| Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:13:21:26 | Before access to property StaticProperty | +| Qualifiers.cs:22:9:22:9 | access to local variable q | Qualifiers.cs:22:9:22:26 | Before ... = ... | +| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:22:13:22:26 | After call to method StaticMethod | +| Qualifiers.cs:22:9:22:26 | After ... = ... | Qualifiers.cs:22:9:22:26 | ... = ... | +| Qualifiers.cs:22:9:22:26 | Before ... = ... | Qualifiers.cs:22:9:22:27 | ...; | +| Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:21:9:21:27 | After ...; | +| Qualifiers.cs:22:9:22:27 | After ...; | Qualifiers.cs:22:9:22:26 | After ... = ... | +| Qualifiers.cs:22:13:22:26 | After call to method StaticMethod | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | +| Qualifiers.cs:22:13:22:26 | Before call to method StaticMethod | Qualifiers.cs:22:9:22:9 | access to local variable q | +| Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:13:22:26 | Before call to method StaticMethod | +| Qualifiers.cs:24:9:24:9 | access to local variable q | Qualifiers.cs:24:9:24:34 | Before ... = ... | | Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:24:13:24:34 | access to field StaticField | -| Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:22:9:22:26 | ... = ... | -| Qualifiers.cs:24:13:24:34 | access to field StaticField | Qualifiers.cs:24:9:24:35 | ...; | -| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | -| Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:24:9:24:34 | ... = ... | -| Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:9:25:38 | ...; | -| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | -| Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:25:9:25:37 | ... = ... | -| Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:9:26:38 | ...; | -| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:28:13:28:40 | access to field Field | -| Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:26:9:26:37 | ... = ... | -| Qualifiers.cs:28:13:28:34 | access to field StaticField | Qualifiers.cs:28:9:28:41 | ...; | +| Qualifiers.cs:24:9:24:34 | After ... = ... | Qualifiers.cs:24:9:24:34 | ... = ... | +| Qualifiers.cs:24:9:24:34 | Before ... = ... | Qualifiers.cs:24:9:24:35 | ...; | +| Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:22:9:22:27 | After ...; | +| Qualifiers.cs:24:9:24:35 | After ...; | Qualifiers.cs:24:9:24:34 | After ... = ... | +| Qualifiers.cs:24:13:24:34 | access to field StaticField | Qualifiers.cs:24:9:24:9 | access to local variable q | +| Qualifiers.cs:25:9:25:9 | access to local variable q | Qualifiers.cs:25:9:25:37 | Before ... = ... | +| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:25:13:25:37 | After access to property StaticProperty | +| Qualifiers.cs:25:9:25:37 | After ... = ... | Qualifiers.cs:25:9:25:37 | ... = ... | +| Qualifiers.cs:25:9:25:37 | Before ... = ... | Qualifiers.cs:25:9:25:38 | ...; | +| Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:24:9:24:35 | After ...; | +| Qualifiers.cs:25:9:25:38 | After ...; | Qualifiers.cs:25:9:25:37 | After ... = ... | +| Qualifiers.cs:25:13:25:37 | After access to property StaticProperty | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | +| Qualifiers.cs:25:13:25:37 | Before access to property StaticProperty | Qualifiers.cs:25:9:25:9 | access to local variable q | +| Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:13:25:37 | Before access to property StaticProperty | +| Qualifiers.cs:26:9:26:9 | access to local variable q | Qualifiers.cs:26:9:26:37 | Before ... = ... | +| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:26:13:26:37 | After call to method StaticMethod | +| Qualifiers.cs:26:9:26:37 | After ... = ... | Qualifiers.cs:26:9:26:37 | ... = ... | +| Qualifiers.cs:26:9:26:37 | Before ... = ... | Qualifiers.cs:26:9:26:38 | ...; | +| Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:25:9:25:38 | After ...; | +| Qualifiers.cs:26:9:26:38 | After ...; | Qualifiers.cs:26:9:26:37 | After ... = ... | +| Qualifiers.cs:26:13:26:37 | After call to method StaticMethod | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | +| Qualifiers.cs:26:13:26:37 | Before call to method StaticMethod | Qualifiers.cs:26:9:26:9 | access to local variable q | +| Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:13:26:37 | Before call to method StaticMethod | +| Qualifiers.cs:28:9:28:9 | access to local variable q | Qualifiers.cs:28:9:28:40 | Before ... = ... | +| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:28:13:28:40 | After access to field Field | +| Qualifiers.cs:28:9:28:40 | After ... = ... | Qualifiers.cs:28:9:28:40 | ... = ... | +| Qualifiers.cs:28:9:28:40 | Before ... = ... | Qualifiers.cs:28:9:28:41 | ...; | +| Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:26:9:26:38 | After ...; | +| Qualifiers.cs:28:9:28:41 | After ...; | Qualifiers.cs:28:9:28:40 | After ... = ... | +| Qualifiers.cs:28:13:28:34 | access to field StaticField | Qualifiers.cs:28:13:28:40 | Before access to field Field | +| Qualifiers.cs:28:13:28:40 | After access to field Field | Qualifiers.cs:28:13:28:40 | access to field Field | +| Qualifiers.cs:28:13:28:40 | Before access to field Field | Qualifiers.cs:28:9:28:9 | access to local variable q | | Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:28:13:28:34 | access to field StaticField | -| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:29:13:29:46 | access to property Property | -| Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:28:9:28:40 | ... = ... | -| Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:9:29:47 | ...; | -| Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | -| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:30:13:30:46 | call to method Method | -| 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 | call to method | +| Qualifiers.cs:29:9:29:9 | access to local variable q | Qualifiers.cs:29:9:29:46 | Before ... = ... | +| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:29:13:29:46 | After access to property Property | +| Qualifiers.cs:29:9:29:46 | After ... = ... | Qualifiers.cs:29:9:29:46 | ... = ... | +| Qualifiers.cs:29:9:29:46 | Before ... = ... | Qualifiers.cs:29:9:29:47 | ...; | +| Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:28:9:28:41 | After ...; | +| Qualifiers.cs:29:9:29:47 | After ...; | Qualifiers.cs:29:9:29:46 | After ... = ... | +| Qualifiers.cs:29:13:29:37 | After access to property StaticProperty | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | +| Qualifiers.cs:29:13:29:37 | Before access to property StaticProperty | Qualifiers.cs:29:13:29:46 | Before access to property Property | +| Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:13:29:37 | Before access to property StaticProperty | +| Qualifiers.cs:29:13:29:46 | After access to property Property | Qualifiers.cs:29:13:29:46 | access to property Property | +| Qualifiers.cs:29:13:29:46 | Before access to property Property | Qualifiers.cs:29:9:29:9 | access to local variable q | +| Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:13:29:37 | After access to property StaticProperty | +| Qualifiers.cs:30:9:30:9 | access to local variable q | Qualifiers.cs:30:9:30:46 | Before ... = ... | +| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:30:13:30:46 | After call to method Method | +| Qualifiers.cs:30:9:30:46 | After ... = ... | Qualifiers.cs:30:9:30:46 | ... = ... | +| Qualifiers.cs:30:9:30:46 | Before ... = ... | Qualifiers.cs:30:9:30:47 | ...; | +| Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:29:9:29:47 | After ...; | +| Qualifiers.cs:30:9:30:47 | After ...; | Qualifiers.cs:30:9:30:46 | After ... = ... | +| Qualifiers.cs:30:13:30:37 | After call to method StaticMethod | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | +| Qualifiers.cs:30:13:30:37 | Before call to method StaticMethod | Qualifiers.cs:30:13:30:46 | Before call to method Method | +| Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:37 | Before call to method StaticMethod | +| Qualifiers.cs:30:13:30:46 | After call to method Method | Qualifiers.cs:30:13:30:46 | call to method Method | +| Qualifiers.cs:30:13:30:46 | Before call to method Method | Qualifiers.cs:30:9:30:9 | access to local variable q | +| Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:37 | After call to method StaticMethod | +| Switch.cs:3:7:3:12 | After call to constructor Object | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | After call to method | Switch.cs:3:7:3:12 | call to method | +| Switch.cs:3:7:3:12 | Before call to constructor Object | Switch.cs:3:7:3:12 | After call to method | +| Switch.cs:3:7:3:12 | Before call to method | Switch.cs:3:7:3:12 | Entry | +| Switch.cs:3:7:3:12 | Exit | Switch.cs:3:7:3:12 | Normal Exit | +| Switch.cs:3:7:3:12 | Normal Exit | Switch.cs:3:7:3:12 | {...} | +| Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | Before 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 | 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 | -| Switch.cs:6:5:8:5 | {...} | Switch.cs:5:10:5:11 | enter M1 | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | Before call to method | +| Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | After call to constructor Object | +| Switch.cs:5:10:5:11 | Exit | Switch.cs:5:10:5:11 | Normal Exit | +| Switch.cs:5:10:5:11 | Normal Exit | Switch.cs:6:5:8:5 | After {...} | +| Switch.cs:6:5:8:5 | After {...} | Switch.cs:7:9:7:22 | After switch (...) {...} | +| Switch.cs:6:5:8:5 | {...} | Switch.cs:5:10:5:11 | Entry | +| Switch.cs:7:9:7:22 | After switch (...) {...} | Switch.cs:7:17:7:17 | access to parameter o | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:6:5:8:5 | {...} | | Switch.cs:7:17:7:17 | access to parameter o | Switch.cs:7:9:7:22 | switch (...) {...} | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:15:17:15:23 | return ...; | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:26:17:26:23 | return ...; | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:29:17:29:23 | return ...; | -| Switch.cs:11:5:33:5 | {...} | Switch.cs:10:10:10:11 | enter M2 | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:15:17:15:23 | return ...; | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:22:21:22:27 | return ...; | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:26:17:26:23 | return ...; | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:29:17:29:23 | return ...; | +| Switch.cs:11:5:33:5 | {...} | Switch.cs:10:10:10:11 | Entry | | Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:11:5:33:5 | {...} | | Switch.cs:12:17:12:17 | access to parameter o | Switch.cs:12:9:32:9 | switch (...) {...} | | Switch.cs:14:13:14:21 | case ...: | Switch.cs:12:17:12:17 | access to parameter o | -| Switch.cs:14:18:14:20 | "a" | Switch.cs:14:13:14:21 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:23:17:23:28 | goto case ...; | -| Switch.cs:16:18:16:18 | 0 | Switch.cs:16:13:16:19 | case ...: | -| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:17:23:17:37 | object creation of type Exception | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:16:18:16:18 | 0 | -| Switch.cs:18:18:18:21 | null | Switch.cs:18:13:18:22 | case ...: | -| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:21:21:21:21 | access to parameter o | Switch.cs:21:17:22:27 | if (...) ... | +| Switch.cs:14:18:14:20 | "a" | Switch.cs:14:13:14:21 | After case ...: [match] | +| Switch.cs:15:17:15:23 | Before return ...; | Switch.cs:14:18:14:20 | "a" | +| Switch.cs:15:17:15:23 | return ...; | Switch.cs:15:17:15:23 | Before return ...; | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:16:13:16:19 | case ...: | +| Switch.cs:16:13:16:19 | case ...: | Switch.cs:14:13:14:21 | After case ...: [no-match] | +| Switch.cs:16:18:16:18 | 0 | Switch.cs:16:13:16:19 | After case ...: [match] | +| Switch.cs:17:17:17:38 | Before throw ...; | Switch.cs:16:18:16:18 | 0 | +| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:17:23:17:37 | After object creation of type Exception | +| Switch.cs:17:23:17:37 | After object creation of type Exception | Switch.cs:17:23:17:37 | object creation of type Exception | +| Switch.cs:17:23:17:37 | Before object creation of type Exception | Switch.cs:17:17:17:38 | Before throw ...; | +| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:23:17:37 | Before object creation of type Exception | +| Switch.cs:18:13:18:22 | case ...: | Switch.cs:16:13:16:19 | After case ...: [no-match] | +| Switch.cs:18:18:18:21 | null | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:19:17:19:29 | Before goto default; | Switch.cs:18:18:18:21 | null | +| Switch.cs:19:17:19:29 | goto default; | Switch.cs:19:17:19:29 | Before goto default; | +| Switch.cs:20:13:20:23 | case ...: | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:21:17:22:27 | After if (...) ... | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:20:18:20:22 | Int32 i | +| Switch.cs:21:21:21:21 | access to parameter o | Switch.cs:21:21:21:29 | Before ... == ... | | Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:26:21:29 | null | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:21:21:21:29 | ... == ... | +| Switch.cs:21:21:21:29 | Before ... == ... | Switch.cs:21:17:22:27 | if (...) ... | | Switch.cs:21:26:21:29 | null | Switch.cs:21:21:21:21 | access to parameter o | +| Switch.cs:22:21:22:27 | Before return ...; | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:22:21:22:27 | return ...; | Switch.cs:22:21:22:27 | Before return ...; | +| Switch.cs:23:17:23:28 | Before goto case ...; | Switch.cs:21:17:22:27 | After if (...) ... | | Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:24:18:24:25 | String s | Switch.cs:24:13:24:56 | case ...: | +| Switch.cs:23:27:23:27 | 0 | Switch.cs:23:17:23:28 | Before goto case ...; | +| Switch.cs:24:13:24:56 | case ...: | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:24:18:24:25 | String s | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:39 | Before access to property Length | +| Switch.cs:24:32:24:39 | After access to property Length | Switch.cs:24:32:24:39 | access to property Length | +| Switch.cs:24:32:24:39 | Before access to property Length | Switch.cs:24:32:24:43 | Before ... > ... | | Switch.cs:24:32:24:39 | access to property Length | Switch.cs:24:32:24:32 | access to local variable s | | Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:43:24:43 | 0 | -| Switch.cs:24:43:24:43 | 0 | Switch.cs:24:32:24:39 | access to property Length | +| Switch.cs:24:32:24:43 | Before ... > ... | Switch.cs:24:32:24:55 | ... && ... | +| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:24:18:24:25 | String s | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:24:32:24:55 | After ... && ... [true] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:24:43:24:43 | 0 | Switch.cs:24:32:24:39 | After access to property Length | +| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:48:24:55 | Before ... != ... | | Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:53:24:55 | "a" | +| Switch.cs:24:48:24:55 | Before ... != ... | Switch.cs:24:32:24:43 | After ... > ... [true] | | Switch.cs:24:53:24:55 | "a" | Switch.cs:24:48:24:48 | access to local variable s | +| Switch.cs:25:17:25:36 | After call to method WriteLine | Switch.cs:25:17:25:36 | call to method WriteLine | +| Switch.cs:25:17:25:36 | Before call to method WriteLine | Switch.cs:25:17:25:37 | ...; | | Switch.cs:25:17:25:36 | call to method WriteLine | Switch.cs:25:35:25:35 | access to local variable s | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:25:35:25:35 | access to local variable s | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:26:17:26:23 | return ...; | Switch.cs:25:17:25:36 | call to method WriteLine | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:25:17:25:37 | ...; | Switch.cs:24:32:24:55 | After ... && ... [true] | +| Switch.cs:25:17:25:37 | After ...; | Switch.cs:25:17:25:36 | After call to method WriteLine | +| Switch.cs:25:35:25:35 | access to local variable s | Switch.cs:25:17:25:36 | Before call to method WriteLine | +| Switch.cs:26:17:26:23 | Before return ...; | Switch.cs:25:17:25:37 | After ...; | +| Switch.cs:26:17:26:23 | return ...; | Switch.cs:26:17:26:23 | Before return ...; | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:27:32:27:38 | Before call to method Throw | Switch.cs:27:18:27:25 | Double d | +| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:27:32:27:38 | Before call to method Throw | | Switch.cs:28:13:28:17 | Label: | Switch.cs:31:17:31:27 | goto ...; | -| Switch.cs:29:17:29:23 | return ...; | Switch.cs:28:13:28:17 | Label: | -| Switch.cs:30:13:30:20 | default: | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:30:13:30:20 | default: | Switch.cs:27:18:27:25 | Double d | -| Switch.cs:31:17:31:27 | goto ...; | Switch.cs:30:13:30:20 | default: | -| Switch.cs:35:10:35:11 | exit M3 | Switch.cs:35:10:35:11 | exit M3 (abnormal) | -| Switch.cs:35:10:35:11 | exit M3 (abnormal) | Switch.cs:37:17:37:23 | call to method Throw | -| Switch.cs:36:5:42:5 | {...} | Switch.cs:35:10:35:11 | enter M3 | +| Switch.cs:29:17:29:23 | Before return ...; | Switch.cs:28:13:28:17 | Label: | +| Switch.cs:29:17:29:23 | return ...; | Switch.cs:29:17:29:23 | Before return ...; | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:19:17:19:29 | goto default; | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:30:13:30:20 | default: | +| Switch.cs:30:13:30:20 | default: | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:31:17:31:27 | Before goto ...; | Switch.cs:30:13:30:20 | After default: [match] | +| Switch.cs:31:17:31:27 | goto ...; | Switch.cs:31:17:31:27 | Before goto ...; | +| Switch.cs:35:10:35:11 | Exceptional Exit | Switch.cs:37:17:37:23 | call to method Throw | +| Switch.cs:35:10:35:11 | Exit | Switch.cs:35:10:35:11 | Exceptional Exit | +| Switch.cs:36:5:42:5 | {...} | Switch.cs:35:10:35:11 | Entry | | Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:36:5:42:5 | {...} | -| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:37:9:41:9 | switch (...) {...} | -| Switch.cs:44:10:44:11 | exit M4 | Switch.cs:44:10:44:11 | exit M4 (normal) | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:49:17:49:22 | break; | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:50:18:50:21 | access to type Boolean | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:50:30:50:38 | ... != ... | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:51:17:51:22 | break; | -| Switch.cs:45:5:53:5 | {...} | Switch.cs:44:10:44:11 | enter M4 | +| Switch.cs:37:17:37:23 | Before call to method Throw | Switch.cs:37:9:41:9 | switch (...) {...} | +| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:37:17:37:23 | Before call to method Throw | +| Switch.cs:44:10:44:11 | Exit | Switch.cs:44:10:44:11 | Normal Exit | +| Switch.cs:44:10:44:11 | Normal Exit | Switch.cs:45:5:53:5 | After {...} | +| Switch.cs:45:5:53:5 | After {...} | Switch.cs:46:9:52:9 | After switch (...) {...} | +| Switch.cs:45:5:53:5 | {...} | Switch.cs:44:10:44:11 | Entry | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:49:17:49:22 | break; | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:50:13:50:39 | After case ...: [no-match] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:51:17:51:22 | break; | | Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:45:5:53:5 | {...} | | Switch.cs:46:17:46:17 | access to parameter o | Switch.cs:46:9:52:9 | switch (...) {...} | | Switch.cs:48:13:48:23 | case ...: | Switch.cs:46:17:46:17 | access to parameter o | -| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:48:13:48:23 | case ...: | -| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:13:50:39 | case ...: | +| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:48:13:48:23 | After case ...: [match] | +| Switch.cs:49:17:49:22 | Before break; | Switch.cs:48:18:48:20 | access to type Int32 | +| Switch.cs:49:17:49:22 | break; | Switch.cs:49:17:49:22 | Before break; | +| Switch.cs:50:13:50:39 | case ...: | Switch.cs:48:13:48:23 | After case ...: [no-match] | +| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:13:50:39 | After case ...: [match] | +| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:30:50:38 | Before ... != ... | | Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:35:50:38 | null | +| Switch.cs:50:30:50:38 | Before ... != ... | Switch.cs:50:18:50:21 | access to type Boolean | | Switch.cs:50:35:50:38 | null | Switch.cs:50:30:50:30 | access to parameter o | -| Switch.cs:55:10:55:11 | exit M5 | Switch.cs:55:10:55:11 | exit M5 (normal) | -| Switch.cs:55:10:55:11 | exit M5 (normal) | Switch.cs:62:17:62:22 | break; | -| Switch.cs:56:5:64:5 | {...} | Switch.cs:55:10:55:11 | enter M5 | +| Switch.cs:51:17:51:22 | Before break; | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:51:17:51:22 | break; | Switch.cs:51:17:51:22 | Before break; | +| Switch.cs:55:10:55:11 | Exit | Switch.cs:55:10:55:11 | Normal Exit | +| Switch.cs:55:10:55:11 | Normal Exit | Switch.cs:56:5:64:5 | After {...} | +| Switch.cs:56:5:64:5 | After {...} | Switch.cs:57:9:63:9 | After switch (...) {...} | +| Switch.cs:56:5:64:5 | {...} | Switch.cs:55:10:55:11 | Entry | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:60:17:60:22 | break; | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:61:13:61:19 | After case ...: [no-match] | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:62:17:62:22 | break; | | Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:56:5:64:5 | {...} | -| Switch.cs:57:17:57:17 | 1 | Switch.cs:57:9:63:9 | switch (...) {...} | +| Switch.cs:57:17:57:17 | 1 | Switch.cs:57:17:57:21 | Before ... + ... | | Switch.cs:57:17:57:21 | ... + ... | Switch.cs:57:21:57:21 | 2 | +| Switch.cs:57:17:57:21 | After ... + ... | Switch.cs:57:17:57:21 | ... + ... | +| Switch.cs:57:17:57:21 | Before ... + ... | Switch.cs:57:9:63:9 | switch (...) {...} | | Switch.cs:57:21:57:21 | 2 | Switch.cs:57:17:57:17 | 1 | -| Switch.cs:59:13:59:19 | case ...: | Switch.cs:57:17:57:21 | ... + ... | -| Switch.cs:59:18:59:18 | 2 | Switch.cs:59:13:59:19 | case ...: | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:59:18:59:18 | 2 | -| Switch.cs:61:18:61:18 | 3 | Switch.cs:61:13:61:19 | case ...: | -| Switch.cs:62:17:62:22 | break; | Switch.cs:61:18:61:18 | 3 | -| Switch.cs:66:10:66:11 | exit M6 | Switch.cs:66:10:66:11 | exit M6 (normal) | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:72:18:72:19 | "" | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:73:17:73:22 | break; | -| Switch.cs:67:5:75:5 | {...} | Switch.cs:66:10:66:11 | enter M6 | +| Switch.cs:59:13:59:19 | case ...: | Switch.cs:57:17:57:21 | After ... + ... | +| Switch.cs:59:18:59:18 | 2 | Switch.cs:59:13:59:19 | After case ...: [match] | +| Switch.cs:60:17:60:22 | Before break; | Switch.cs:59:18:59:18 | 2 | +| Switch.cs:60:17:60:22 | break; | Switch.cs:60:17:60:22 | Before break; | +| Switch.cs:61:13:61:19 | case ...: | Switch.cs:59:13:59:19 | After case ...: [no-match] | +| Switch.cs:61:18:61:18 | 3 | Switch.cs:61:13:61:19 | After case ...: [match] | +| Switch.cs:62:17:62:22 | Before break; | Switch.cs:61:18:61:18 | 3 | +| Switch.cs:62:17:62:22 | break; | Switch.cs:62:17:62:22 | Before break; | +| Switch.cs:66:10:66:11 | Exit | Switch.cs:66:10:66:11 | Normal Exit | +| Switch.cs:66:10:66:11 | Normal Exit | Switch.cs:67:5:75:5 | After {...} | +| Switch.cs:67:5:75:5 | After {...} | Switch.cs:68:9:74:9 | After switch (...) {...} | +| Switch.cs:67:5:75:5 | {...} | Switch.cs:66:10:66:11 | Entry | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:71:17:71:22 | break; | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:72:13:72:20 | After case ...: [no-match] | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:73:17:73:22 | break; | | Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:67:5:75:5 | {...} | | Switch.cs:68:17:68:25 | (...) ... | Switch.cs:68:25:68:25 | access to parameter s | -| Switch.cs:68:25:68:25 | access to parameter s | Switch.cs:68:9:74:9 | switch (...) {...} | -| Switch.cs:70:13:70:23 | case ...: | Switch.cs:68:17:68:25 | (...) ... | -| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:70:13:70:23 | case ...: | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:70:18:70:20 | access to type Int32 | -| Switch.cs:72:18:72:19 | "" | Switch.cs:72:13:72:20 | case ...: | -| Switch.cs:77:10:77:11 | exit M7 | Switch.cs:77:10:77:11 | exit M7 (normal) | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:82:17:82:28 | return ...; | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:86:17:86:28 | return ...; | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:88:9:88:21 | return ...; | -| Switch.cs:78:5:89:5 | {...} | Switch.cs:77:10:77:11 | enter M7 | +| Switch.cs:68:17:68:25 | After (...) ... | Switch.cs:68:17:68:25 | (...) ... | +| Switch.cs:68:17:68:25 | Before (...) ... | Switch.cs:68:9:74:9 | switch (...) {...} | +| Switch.cs:68:25:68:25 | access to parameter s | Switch.cs:68:17:68:25 | Before (...) ... | +| Switch.cs:70:13:70:23 | case ...: | Switch.cs:68:17:68:25 | After (...) ... | +| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:70:13:70:23 | After case ...: [match] | +| Switch.cs:71:17:71:22 | Before break; | Switch.cs:70:18:70:20 | access to type Int32 | +| Switch.cs:71:17:71:22 | break; | Switch.cs:71:17:71:22 | Before break; | +| Switch.cs:72:13:72:20 | case ...: | Switch.cs:70:13:70:23 | After case ...: [no-match] | +| Switch.cs:72:18:72:19 | "" | Switch.cs:72:13:72:20 | After case ...: [match] | +| Switch.cs:73:17:73:22 | Before break; | Switch.cs:72:18:72:19 | "" | +| Switch.cs:73:17:73:22 | break; | Switch.cs:73:17:73:22 | Before break; | +| Switch.cs:77:10:77:11 | Exit | Switch.cs:77:10:77:11 | Normal Exit | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:82:17:82:28 | return ...; | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:86:17:86:28 | return ...; | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:88:9:88:21 | return ...; | +| Switch.cs:78:5:89:5 | {...} | Switch.cs:77:10:77:11 | Entry | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:83:13:83:19 | After case ...: [no-match] | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:85:21:85:26 | break; | | Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:78:5:89:5 | {...} | | Switch.cs:79:17:79:17 | access to parameter i | Switch.cs:79:9:87:9 | switch (...) {...} | | Switch.cs:81:13:81:19 | case ...: | Switch.cs:79:17:79:17 | access to parameter i | -| Switch.cs:81:18:81:18 | 1 | Switch.cs:81:13:81:19 | case ...: | +| Switch.cs:81:18:81:18 | 1 | Switch.cs:81:13:81:19 | After case ...: [match] | +| Switch.cs:82:17:82:28 | Before return ...; | Switch.cs:81:18:81:18 | 1 | | Switch.cs:82:17:82:28 | return ...; | Switch.cs:82:24:82:27 | true | -| Switch.cs:83:18:83:18 | 2 | Switch.cs:83:13:83:19 | case ...: | -| Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:84:17:85:26 | if (...) ... | +| Switch.cs:82:24:82:27 | true | Switch.cs:82:17:82:28 | Before return ...; | +| Switch.cs:83:13:83:19 | case ...: | Switch.cs:81:13:81:19 | After case ...: [no-match] | +| Switch.cs:83:18:83:18 | 2 | Switch.cs:83:13:83:19 | After case ...: [match] | +| Switch.cs:84:17:85:26 | After if (...) ... | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:83:18:83:18 | 2 | +| Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:84:21:84:25 | Before ... > ... | | Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:25:84:25 | 2 | +| Switch.cs:84:21:84:25 | Before ... > ... | Switch.cs:84:17:85:26 | if (...) ... | | Switch.cs:84:25:84:25 | 2 | Switch.cs:84:21:84:21 | access to parameter j | +| Switch.cs:85:21:85:26 | Before break; | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:85:21:85:26 | break; | Switch.cs:85:21:85:26 | Before break; | +| Switch.cs:86:17:86:28 | Before return ...; | Switch.cs:84:17:85:26 | After if (...) ... | | Switch.cs:86:17:86:28 | return ...; | Switch.cs:86:24:86:27 | true | +| Switch.cs:86:24:86:27 | true | Switch.cs:86:17:86:28 | Before return ...; | +| Switch.cs:88:9:88:21 | Before return ...; | Switch.cs:79:9:87:9 | After switch (...) {...} | | Switch.cs:88:9:88:21 | return ...; | Switch.cs:88:16:88:20 | false | -| Switch.cs:88:16:88:20 | false | Switch.cs:85:21:85:26 | break; | -| Switch.cs:91:10:91:11 | exit M8 | Switch.cs:91:10:91:11 | exit M8 (normal) | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:96:17:96:28 | return ...; | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:98:9:98:21 | return ...; | -| Switch.cs:92:5:99:5 | {...} | Switch.cs:91:10:91:11 | enter M8 | +| Switch.cs:88:16:88:20 | false | Switch.cs:88:9:88:21 | Before return ...; | +| Switch.cs:91:10:91:11 | Exit | Switch.cs:91:10:91:11 | Normal Exit | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:96:17:96:28 | return ...; | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:98:9:98:21 | return ...; | +| Switch.cs:92:5:99:5 | {...} | Switch.cs:91:10:91:11 | Entry | +| Switch.cs:93:9:97:9 | After switch (...) {...} | Switch.cs:95:13:95:23 | After case ...: [no-match] | | Switch.cs:93:9:97:9 | switch (...) {...} | Switch.cs:92:5:99:5 | {...} | | Switch.cs:93:17:93:17 | access to parameter o | Switch.cs:93:9:97:9 | switch (...) {...} | | Switch.cs:95:13:95:23 | case ...: | Switch.cs:93:17:93:17 | access to parameter o | -| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:95:13:95:23 | case ...: | +| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:95:13:95:23 | After case ...: [match] | +| Switch.cs:96:17:96:28 | Before return ...; | Switch.cs:95:18:95:20 | access to type Int32 | | Switch.cs:96:17:96:28 | return ...; | Switch.cs:96:24:96:27 | true | +| Switch.cs:96:24:96:27 | true | Switch.cs:96:17:96:28 | Before return ...; | +| Switch.cs:98:9:98:21 | Before return ...; | Switch.cs:93:9:97:9 | After switch (...) {...} | | Switch.cs:98:9:98:21 | return ...; | Switch.cs:98:16:98:20 | false | -| Switch.cs:101:9:101:10 | exit M9 | Switch.cs:101:9:101:10 | exit M9 (normal) | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:105:21:105:29 | return ...; | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:106:21:106:29 | return ...; | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:108:9:108:18 | return ...; | -| Switch.cs:102:5:109:5 | {...} | Switch.cs:101:9:101:10 | enter M9 | +| Switch.cs:98:16:98:20 | false | Switch.cs:98:9:98:21 | Before return ...; | +| Switch.cs:101:9:101:10 | Exit | Switch.cs:101:9:101:10 | Normal Exit | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:105:21:105:29 | return ...; | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:106:21:106:29 | return ...; | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:108:9:108:18 | return ...; | +| Switch.cs:102:5:109:5 | {...} | Switch.cs:101:9:101:10 | Entry | +| Switch.cs:103:9:107:9 | After switch (...) {...} | Switch.cs:106:13:106:19 | After case ...: [no-match] | | Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:102:5:109:5 | {...} | -| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:9:107:9 | switch (...) {...} | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:103:17:103:17 | access to parameter s | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:103:17:103:25 | access to property Length | -| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:13:105:19 | case ...: | +| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:25 | Before access to property Length | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:103:17:103:17 | After access to parameter s [null] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:103:17:103:25 | access to property Length | +| Switch.cs:103:17:103:25 | Before access to property Length | Switch.cs:103:9:107:9 | switch (...) {...} | +| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | +| Switch.cs:105:13:105:19 | case ...: | Switch.cs:103:17:103:25 | After access to property Length | +| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:13:105:19 | After case ...: [match] | +| Switch.cs:105:21:105:29 | Before return ...; | Switch.cs:105:18:105:18 | 0 | | Switch.cs:105:21:105:29 | return ...; | Switch.cs:105:28:105:28 | 0 | -| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:13:106:19 | case ...: | +| Switch.cs:105:28:105:28 | 0 | Switch.cs:105:21:105:29 | Before return ...; | +| Switch.cs:106:13:106:19 | case ...: | Switch.cs:105:13:105:19 | After case ...: [no-match] | +| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:106:21:106:29 | Before return ...; | Switch.cs:106:18:106:18 | 1 | | Switch.cs:106:21:106:29 | return ...; | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:108:9:108:18 | return ...; | Switch.cs:108:16:108:17 | -... | +| Switch.cs:106:28:106:28 | 1 | Switch.cs:106:21:106:29 | Before return ...; | +| Switch.cs:108:9:108:18 | Before return ...; | Switch.cs:103:9:107:9 | After switch (...) {...} | +| Switch.cs:108:9:108:18 | return ...; | Switch.cs:108:16:108:17 | After -... | | Switch.cs:108:16:108:17 | -... | Switch.cs:108:17:108:17 | 1 | -| Switch.cs:111:17:111:21 | exit Throw | Switch.cs:111:17:111:21 | exit Throw (abnormal) | -| Switch.cs:111:17:111:21 | exit Throw (abnormal) | Switch.cs:111:28:111:48 | throw ... | -| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:34:111:48 | object creation of type Exception | -| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:17:111:21 | enter Throw | -| Switch.cs:113:9:113:11 | exit M10 | Switch.cs:113:9:113:11 | exit M10 (normal) | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:117:37:117:45 | return ...; | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:118:36:118:44 | return ...; | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:120:9:120:18 | return ...; | -| Switch.cs:114:5:121:5 | {...} | Switch.cs:113:9:113:11 | enter M10 | +| Switch.cs:108:16:108:17 | After -... | Switch.cs:108:16:108:17 | -... | +| Switch.cs:108:16:108:17 | Before -... | Switch.cs:108:9:108:18 | Before return ...; | +| Switch.cs:108:17:108:17 | 1 | Switch.cs:108:16:108:17 | Before -... | +| Switch.cs:111:17:111:21 | Exceptional Exit | Switch.cs:111:28:111:48 | throw ... | +| Switch.cs:111:17:111:21 | Exit | Switch.cs:111:17:111:21 | Exceptional Exit | +| Switch.cs:111:28:111:48 | Before throw ... | Switch.cs:111:17:111:21 | Entry | +| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:34:111:48 | After object creation of type Exception | +| Switch.cs:111:34:111:48 | After object creation of type Exception | Switch.cs:111:34:111:48 | object creation of type Exception | +| Switch.cs:111:34:111:48 | Before object creation of type Exception | Switch.cs:111:28:111:48 | Before throw ... | +| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:34:111:48 | Before object creation of type Exception | +| Switch.cs:113:9:113:11 | Exit | Switch.cs:113:9:113:11 | Normal Exit | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:117:37:117:45 | return ...; | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:118:36:118:44 | return ...; | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:120:9:120:18 | return ...; | +| Switch.cs:114:5:121:5 | {...} | Switch.cs:113:9:113:11 | Entry | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:118:13:118:34 | After case ...: [no-match] | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:118:25:118:33 | After ... == ... [false] | | Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:114:5:121:5 | {...} | -| Switch.cs:115:17:115:17 | access to parameter s | Switch.cs:115:9:119:9 | switch (...) {...} | +| Switch.cs:115:17:115:17 | access to parameter s | Switch.cs:115:17:115:24 | Before access to property Length | +| Switch.cs:115:17:115:24 | After access to property Length | Switch.cs:115:17:115:24 | access to property Length | +| Switch.cs:115:17:115:24 | Before access to property Length | Switch.cs:115:9:119:9 | switch (...) {...} | | Switch.cs:115:17:115:24 | access to property Length | Switch.cs:115:17:115:17 | access to parameter s | -| Switch.cs:117:13:117:35 | case ...: | Switch.cs:115:17:115:24 | access to property Length | -| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:13:117:35 | case ...: | +| Switch.cs:117:13:117:35 | case ...: | Switch.cs:115:17:115:24 | After access to property Length | +| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:13:117:35 | After case ...: [match] | +| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:25:117:34 | Before ... == ... | | Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:30:117:34 | "foo" | +| Switch.cs:117:25:117:34 | Before ... == ... | Switch.cs:117:18:117:18 | 3 | | Switch.cs:117:30:117:34 | "foo" | Switch.cs:117:25:117:25 | access to parameter s | +| Switch.cs:117:37:117:45 | Before return ...; | Switch.cs:117:25:117:34 | After ... == ... [true] | | Switch.cs:117:37:117:45 | return ...; | Switch.cs:117:44:117:44 | 1 | -| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:13:118:34 | case ...: | +| Switch.cs:117:44:117:44 | 1 | Switch.cs:117:37:117:45 | Before return ...; | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:117:13:117:35 | After case ...: [no-match] | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:117:25:117:34 | After ... == ... [false] | +| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:13:118:34 | After case ...: [match] | +| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:25:118:33 | Before ... == ... | | Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:30:118:33 | "fu" | +| Switch.cs:118:25:118:33 | Before ... == ... | Switch.cs:118:18:118:18 | 2 | | Switch.cs:118:30:118:33 | "fu" | Switch.cs:118:25:118:25 | access to parameter s | +| Switch.cs:118:36:118:44 | Before return ...; | Switch.cs:118:25:118:33 | After ... == ... [true] | | Switch.cs:118:36:118:44 | return ...; | Switch.cs:118:43:118:43 | 2 | -| Switch.cs:120:9:120:18 | return ...; | Switch.cs:120:16:120:17 | -... | +| Switch.cs:118:43:118:43 | 2 | Switch.cs:118:36:118:44 | Before return ...; | +| Switch.cs:120:9:120:18 | Before return ...; | Switch.cs:115:9:119:9 | After switch (...) {...} | +| Switch.cs:120:9:120:18 | return ...; | Switch.cs:120:16:120:17 | After -... | | Switch.cs:120:16:120:17 | -... | Switch.cs:120:17:120:17 | 1 | -| Switch.cs:123:10:123:12 | exit M11 | Switch.cs:123:10:123:12 | exit M11 (normal) | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:13:125:48 | [false] ... switch { ... } | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:124:5:127:5 | {...} | Switch.cs:123:10:123:12 | enter M11 | +| Switch.cs:120:16:120:17 | After -... | Switch.cs:120:16:120:17 | -... | +| Switch.cs:120:16:120:17 | Before -... | Switch.cs:120:9:120:18 | Before return ...; | +| Switch.cs:120:17:120:17 | 1 | Switch.cs:120:16:120:17 | Before -... | +| Switch.cs:123:10:123:12 | Exit | Switch.cs:123:10:123:12 | Normal Exit | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:124:5:127:5 | After {...} | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:126:13:126:19 | return ...; | +| Switch.cs:124:5:127:5 | After {...} | Switch.cs:125:9:126:19 | After if (...) ... | +| Switch.cs:124:5:127:5 | {...} | Switch.cs:123:10:123:12 | Entry | +| Switch.cs:125:9:126:19 | After if (...) ... | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | | Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:124:5:127:5 | {...} | -| Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:9:126:19 | if (...) ... | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:13:125:13 | access to parameter o | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:42:125:46 | false | +| Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:13:125:48 | ... switch { ... } | +| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:9:126:19 | if (...) ... | +| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:24:125:34 | After ... => ... [match] | +| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:13:125:13 | access to parameter o | +| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:29 | Boolean b | +| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:46 | After ... => ... [match] | +| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:24:125:34 | After ... => ... [no-match] | +| Switch.cs:125:37:125:46 | After ... => ... [match] | Switch.cs:125:37:125:46 | ... => ... | | Switch.cs:125:42:125:46 | false | Switch.cs:125:37:125:37 | _ | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:129:12:129:14 | exit M12 | Switch.cs:129:12:129:14 | exit M12 (normal) | -| Switch.cs:129:12:129:14 | exit M12 (normal) | Switch.cs:131:9:131:67 | return ...; | -| Switch.cs:130:5:132:5 | {...} | Switch.cs:129:12:129:14 | enter M12 | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:17:131:53 | [null] ... switch { ... } | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:130:5:132:5 | {...} | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:28:131:40 | [null] ... => ... | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:131:28:131:35 | String s | Switch.cs:131:17:131:17 | access to parameter o | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:131:48:131:51 | null | +| Switch.cs:126:13:126:19 | Before return ...; | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | +| Switch.cs:126:13:126:19 | return ...; | Switch.cs:126:13:126:19 | Before return ...; | +| Switch.cs:129:12:129:14 | Exit | Switch.cs:129:12:129:14 | Normal Exit | +| Switch.cs:129:12:129:14 | Normal Exit | Switch.cs:131:9:131:67 | return ...; | +| Switch.cs:130:5:132:5 | {...} | Switch.cs:129:12:129:14 | Entry | +| Switch.cs:131:9:131:67 | Before return ...; | Switch.cs:130:5:132:5 | {...} | +| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:16:131:66 | After call to method ToString | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:16:131:66 | call to method ToString | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | +| Switch.cs:131:16:131:66 | Before call to method ToString | Switch.cs:131:9:131:67 | Before return ...; | +| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | +| Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:131:17:131:53 | ... switch { ... } | +| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:16:131:66 | Before call to method ToString | +| Switch.cs:131:28:131:35 | String s | Switch.cs:131:28:131:40 | After ... => ... [match] | +| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:17:131:17 | access to parameter o | +| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:35 | String s | +| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:51 | After ... => ... [match] | +| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:28:131:40 | After ... => ... [no-match] | +| Switch.cs:131:43:131:51 | After ... => ... [match] | Switch.cs:131:43:131:51 | ... => ... | | Switch.cs:131:48:131:51 | null | Switch.cs:131:43:131:43 | _ | -| Switch.cs:134:9:134:11 | exit M13 | Switch.cs:134:9:134:11 | exit M13 (normal) | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:138:22:138:31 | return ...; | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:139:21:139:29 | return ...; | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:140:21:140:29 | return ...; | -| Switch.cs:135:5:142:5 | {...} | Switch.cs:134:9:134:11 | enter M13 | +| Switch.cs:134:9:134:11 | Exit | Switch.cs:134:9:134:11 | Normal Exit | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:138:22:138:31 | return ...; | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:139:21:139:29 | return ...; | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:140:21:140:29 | return ...; | +| Switch.cs:135:5:142:5 | {...} | Switch.cs:134:9:134:11 | Entry | | Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:135:5:142:5 | {...} | | Switch.cs:136:17:136:17 | access to parameter i | Switch.cs:136:9:141:9 | switch (...) {...} | -| Switch.cs:138:22:138:31 | return ...; | Switch.cs:138:29:138:30 | -... | +| Switch.cs:138:13:138:20 | After default: [match] | Switch.cs:138:13:138:20 | default: | +| Switch.cs:138:13:138:20 | default: | Switch.cs:140:13:140:19 | After case ...: [no-match] | +| Switch.cs:138:22:138:31 | Before return ...; | Switch.cs:138:13:138:20 | After default: [match] | +| Switch.cs:138:22:138:31 | return ...; | Switch.cs:138:29:138:30 | After -... | | Switch.cs:138:29:138:30 | -... | Switch.cs:138:30:138:30 | 1 | -| Switch.cs:138:30:138:30 | 1 | Switch.cs:138:13:138:20 | default: | +| Switch.cs:138:29:138:30 | After -... | Switch.cs:138:29:138:30 | -... | +| Switch.cs:138:29:138:30 | Before -... | Switch.cs:138:22:138:31 | Before return ...; | +| Switch.cs:138:30:138:30 | 1 | Switch.cs:138:29:138:30 | Before -... | | Switch.cs:139:13:139:19 | case ...: | Switch.cs:136:17:136:17 | access to parameter i | -| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:13:139:19 | case ...: | +| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:13:139:19 | After case ...: [match] | +| Switch.cs:139:21:139:29 | Before return ...; | Switch.cs:139:18:139:18 | 1 | | Switch.cs:139:21:139:29 | return ...; | Switch.cs:139:28:139:28 | 1 | -| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:13:140:19 | case ...: | +| Switch.cs:139:28:139:28 | 1 | Switch.cs:139:21:139:29 | Before return ...; | +| Switch.cs:140:13:140:19 | case ...: | Switch.cs:139:13:139:19 | After case ...: [no-match] | +| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:13:140:19 | After case ...: [match] | +| Switch.cs:140:21:140:29 | Before return ...; | Switch.cs:140:18:140:18 | 2 | | Switch.cs:140:21:140:29 | return ...; | Switch.cs:140:28:140:28 | 2 | -| Switch.cs:144:9:144:11 | exit M14 | Switch.cs:144:9:144:11 | exit M14 (normal) | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:148:21:148:29 | return ...; | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:149:22:149:31 | return ...; | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:150:21:150:29 | return ...; | -| Switch.cs:145:5:152:5 | {...} | Switch.cs:144:9:144:11 | enter M14 | +| Switch.cs:140:28:140:28 | 2 | Switch.cs:140:21:140:29 | Before return ...; | +| Switch.cs:144:9:144:11 | Exit | Switch.cs:144:9:144:11 | Normal Exit | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:148:21:148:29 | return ...; | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:149:22:149:31 | return ...; | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:150:21:150:29 | return ...; | +| Switch.cs:145:5:152:5 | {...} | Switch.cs:144:9:144:11 | Entry | | Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:145:5:152:5 | {...} | | Switch.cs:146:17:146:17 | access to parameter i | Switch.cs:146:9:151:9 | switch (...) {...} | | Switch.cs:148:13:148:19 | case ...: | Switch.cs:146:17:146:17 | access to parameter i | -| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:13:148:19 | case ...: | +| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:13:148:19 | After case ...: [match] | +| Switch.cs:148:21:148:29 | Before return ...; | Switch.cs:148:18:148:18 | 1 | | Switch.cs:148:21:148:29 | return ...; | Switch.cs:148:28:148:28 | 1 | -| Switch.cs:149:22:149:31 | return ...; | Switch.cs:149:29:149:30 | -... | +| Switch.cs:148:28:148:28 | 1 | Switch.cs:148:21:148:29 | Before return ...; | +| Switch.cs:149:13:149:20 | After default: [match] | Switch.cs:149:13:149:20 | default: | +| Switch.cs:149:13:149:20 | default: | Switch.cs:150:13:150:19 | After case ...: [no-match] | +| Switch.cs:149:22:149:31 | Before return ...; | Switch.cs:149:13:149:20 | After default: [match] | +| Switch.cs:149:22:149:31 | return ...; | Switch.cs:149:29:149:30 | After -... | | Switch.cs:149:29:149:30 | -... | Switch.cs:149:30:149:30 | 1 | -| Switch.cs:149:30:149:30 | 1 | Switch.cs:149:13:149:20 | default: | -| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:13:150:19 | case ...: | +| Switch.cs:149:29:149:30 | After -... | Switch.cs:149:29:149:30 | -... | +| Switch.cs:149:29:149:30 | Before -... | Switch.cs:149:22:149:31 | Before return ...; | +| Switch.cs:149:30:149:30 | 1 | Switch.cs:149:29:149:30 | Before -... | +| Switch.cs:150:13:150:19 | case ...: | Switch.cs:148:13:148:19 | After case ...: [no-match] | +| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:13:150:19 | After case ...: [match] | +| Switch.cs:150:21:150:29 | Before return ...; | Switch.cs:150:18:150:18 | 2 | | Switch.cs:150:21:150:29 | return ...; | Switch.cs:150:28:150:28 | 2 | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:158:13:158:48 | call to method WriteLine | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:160:13:160:48 | call to method WriteLine | -| Switch.cs:155:5:161:5 | {...} | Switch.cs:154:10:154:12 | enter M15 | +| Switch.cs:150:28:150:28 | 2 | Switch.cs:150:21:150:29 | Before return ...; | +| Switch.cs:154:10:154:12 | Exit | Switch.cs:154:10:154:12 | Normal Exit | +| Switch.cs:154:10:154:12 | Normal Exit | Switch.cs:155:5:161:5 | After {...} | +| Switch.cs:155:5:161:5 | After {...} | Switch.cs:157:9:160:49 | After if (...) ... | +| Switch.cs:155:5:161:5 | {...} | Switch.cs:154:10:154:12 | Entry | | Switch.cs:156:9:156:55 | ... ...; | Switch.cs:155:5:161:5 | {...} | -| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:17:156:54 | ... switch { ... } | -| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:9:156:55 | ... ...; | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:28:156:38 | ... => ... | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:41:156:52 | ... => ... | -| Switch.cs:156:28:156:31 | true | Switch.cs:156:17:156:17 | access to parameter b | -| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:36:156:38 | "a" | -| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:50:156:52 | "b" | +| Switch.cs:156:9:156:55 | After ... ...; | Switch.cs:156:13:156:54 | After String s = ... | +| Switch.cs:156:13:156:13 | access to local variable s | Switch.cs:156:13:156:54 | Before String s = ... | +| Switch.cs:156:13:156:54 | After String s = ... | Switch.cs:156:13:156:54 | String s = ... | +| Switch.cs:156:13:156:54 | Before String s = ... | Switch.cs:156:9:156:55 | ... ...; | +| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:17:156:54 | After ... switch { ... } | +| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:17:156:54 | ... switch { ... } | +| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:13:156:13 | access to local variable s | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:36:156:38 | "a" | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:50:156:52 | "b" | +| Switch.cs:156:28:156:31 | true | Switch.cs:156:28:156:38 | After ... => ... [match] | +| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:17:156:17 | access to parameter b | +| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:28:156:31 | true | +| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:28:156:38 | After ... => ... [no-match] | | Switch.cs:156:50:156:52 | "b" | Switch.cs:156:41:156:45 | false | -| Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:156:13:156:54 | String s = ... | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:158:13:158:49 | After ...; | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:160:13:160:49 | After ...; | +| Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:156:9:156:55 | After ... ...; | | Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:9:160:49 | if (...) ... | -| Switch.cs:158:13:158:48 | call to method WriteLine | Switch.cs:158:38:158:47 | $"..." | -| Switch.cs:158:38:158:47 | $"..." | Switch.cs:158:44:158:46 | {...} | -| Switch.cs:158:40:158:43 | "a = " | Switch.cs:158:13:158:49 | ...; | +| Switch.cs:158:13:158:48 | After call to method WriteLine | Switch.cs:158:13:158:48 | call to method WriteLine | +| Switch.cs:158:13:158:48 | Before call to method WriteLine | Switch.cs:158:13:158:49 | ...; | +| Switch.cs:158:13:158:48 | call to method WriteLine | Switch.cs:158:38:158:47 | After $"..." | +| Switch.cs:158:13:158:49 | ...; | Switch.cs:157:13:157:13 | After access to parameter b [true] | +| Switch.cs:158:13:158:49 | After ...; | Switch.cs:158:13:158:48 | After call to method WriteLine | +| Switch.cs:158:38:158:47 | $"..." | Switch.cs:158:44:158:46 | After {...} | +| Switch.cs:158:38:158:47 | After $"..." | Switch.cs:158:38:158:47 | $"..." | +| Switch.cs:158:38:158:47 | Before $"..." | Switch.cs:158:13:158:48 | Before call to method WriteLine | +| Switch.cs:158:40:158:43 | "a = " | Switch.cs:158:38:158:47 | Before $"..." | +| Switch.cs:158:44:158:46 | After {...} | Switch.cs:158:44:158:46 | {...} | +| Switch.cs:158:44:158:46 | Before {...} | Switch.cs:158:40:158:43 | "a = " | | Switch.cs:158:44:158:46 | {...} | Switch.cs:158:45:158:45 | access to local variable s | -| Switch.cs:158:45:158:45 | access to local variable s | Switch.cs:158:40:158:43 | "a = " | -| Switch.cs:160:13:160:48 | call to method WriteLine | Switch.cs:160:38:160:47 | $"..." | -| Switch.cs:160:38:160:47 | $"..." | Switch.cs:160:44:160:46 | {...} | -| Switch.cs:160:40:160:43 | "b = " | Switch.cs:160:13:160:49 | ...; | +| Switch.cs:158:45:158:45 | access to local variable s | Switch.cs:158:44:158:46 | Before {...} | +| Switch.cs:160:13:160:48 | After call to method WriteLine | Switch.cs:160:13:160:48 | call to method WriteLine | +| Switch.cs:160:13:160:48 | Before call to method WriteLine | Switch.cs:160:13:160:49 | ...; | +| Switch.cs:160:13:160:48 | call to method WriteLine | Switch.cs:160:38:160:47 | After $"..." | +| Switch.cs:160:13:160:49 | ...; | Switch.cs:157:13:157:13 | After access to parameter b [false] | +| Switch.cs:160:13:160:49 | After ...; | Switch.cs:160:13:160:48 | After call to method WriteLine | +| Switch.cs:160:38:160:47 | $"..." | Switch.cs:160:44:160:46 | After {...} | +| Switch.cs:160:38:160:47 | After $"..." | Switch.cs:160:38:160:47 | $"..." | +| Switch.cs:160:38:160:47 | Before $"..." | Switch.cs:160:13:160:48 | Before call to method WriteLine | +| Switch.cs:160:40:160:43 | "b = " | Switch.cs:160:38:160:47 | Before $"..." | +| Switch.cs:160:44:160:46 | After {...} | Switch.cs:160:44:160:46 | {...} | +| Switch.cs:160:44:160:46 | Before {...} | Switch.cs:160:40:160:43 | "b = " | | Switch.cs:160:44:160:46 | {...} | Switch.cs:160:45:160:45 | access to local variable s | -| Switch.cs:160:45:160:45 | access to local variable s | Switch.cs:160:40:160:43 | "b = " | -| Switch.cs:163:10:163:12 | exit M16 | Switch.cs:163:10:163:12 | exit M16 (normal) | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:170:17:170:22 | break; | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:173:17:173:22 | break; | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:176:17:176:22 | break; | -| Switch.cs:164:5:178:5 | {...} | Switch.cs:163:10:163:12 | enter M16 | +| Switch.cs:160:45:160:45 | access to local variable s | Switch.cs:160:44:160:46 | Before {...} | +| Switch.cs:163:10:163:12 | Exit | Switch.cs:163:10:163:12 | Normal Exit | +| Switch.cs:163:10:163:12 | Normal Exit | Switch.cs:164:5:178:5 | After {...} | +| Switch.cs:164:5:178:5 | After {...} | Switch.cs:165:9:177:9 | After switch (...) {...} | +| Switch.cs:164:5:178:5 | {...} | Switch.cs:163:10:163:12 | Entry | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:170:17:170:22 | break; | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:173:17:173:22 | break; | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:176:17:176:22 | break; | | Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:164:5:178:5 | {...} | | Switch.cs:165:17:165:17 | access to parameter i | Switch.cs:165:9:177:9 | switch (...) {...} | | Switch.cs:167:13:167:19 | case ...: | Switch.cs:165:17:165:17 | access to parameter i | -| Switch.cs:167:18:167:18 | 1 | Switch.cs:167:13:167:19 | case ...: | -| Switch.cs:168:18:168:18 | 2 | Switch.cs:168:13:168:19 | case ...: | +| Switch.cs:167:18:167:18 | 1 | Switch.cs:167:13:167:19 | After case ...: [match] | +| Switch.cs:168:13:168:19 | case ...: | Switch.cs:167:13:167:19 | After case ...: [no-match] | +| Switch.cs:168:18:168:18 | 2 | Switch.cs:168:13:168:19 | After case ...: [match] | +| Switch.cs:169:17:169:50 | After call to method WriteLine | Switch.cs:169:17:169:50 | call to method WriteLine | +| Switch.cs:169:17:169:50 | Before call to method WriteLine | Switch.cs:169:17:169:51 | ...; | | Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:169:42:169:49 | "1 or 2" | -| Switch.cs:169:42:169:49 | "1 or 2" | Switch.cs:169:17:169:51 | ...; | -| Switch.cs:170:17:170:22 | break; | Switch.cs:169:17:169:50 | call to method WriteLine | -| Switch.cs:171:18:171:18 | 3 | Switch.cs:171:13:171:19 | case ...: | +| Switch.cs:169:17:169:51 | ...; | Switch.cs:167:18:167:18 | 1 | +| Switch.cs:169:17:169:51 | ...; | Switch.cs:168:18:168:18 | 2 | +| Switch.cs:169:17:169:51 | After ...; | Switch.cs:169:17:169:50 | After call to method WriteLine | +| Switch.cs:169:42:169:49 | "1 or 2" | Switch.cs:169:17:169:50 | Before call to method WriteLine | +| Switch.cs:170:17:170:22 | Before break; | Switch.cs:169:17:169:51 | After ...; | +| Switch.cs:170:17:170:22 | break; | Switch.cs:170:17:170:22 | Before break; | +| Switch.cs:171:13:171:19 | case ...: | Switch.cs:168:13:168:19 | After case ...: [no-match] | +| Switch.cs:171:18:171:18 | 3 | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:172:17:172:45 | After call to method WriteLine | Switch.cs:172:17:172:45 | call to method WriteLine | +| Switch.cs:172:17:172:45 | Before call to method WriteLine | Switch.cs:172:17:172:46 | ...; | | Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:172:42:172:44 | "3" | -| Switch.cs:172:42:172:44 | "3" | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:173:17:173:22 | break; | Switch.cs:172:17:172:45 | call to method WriteLine | +| Switch.cs:172:17:172:46 | ...; | Switch.cs:171:18:171:18 | 3 | +| Switch.cs:172:17:172:46 | After ...; | Switch.cs:172:17:172:45 | After call to method WriteLine | +| Switch.cs:172:42:172:44 | "3" | Switch.cs:172:17:172:45 | Before call to method WriteLine | +| Switch.cs:173:17:173:22 | Before break; | Switch.cs:172:17:172:46 | After ...; | +| Switch.cs:173:17:173:22 | break; | Switch.cs:173:17:173:22 | Before break; | +| Switch.cs:174:13:174:20 | After default: [match] | Switch.cs:174:13:174:20 | default: | +| Switch.cs:174:13:174:20 | default: | Switch.cs:171:13:171:19 | After case ...: [no-match] | +| Switch.cs:175:17:175:47 | After call to method WriteLine | Switch.cs:175:17:175:47 | call to method WriteLine | +| Switch.cs:175:17:175:47 | Before call to method WriteLine | Switch.cs:175:17:175:48 | ...; | | Switch.cs:175:17:175:47 | call to method WriteLine | Switch.cs:175:42:175:46 | "def" | -| 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 | call to method | +| Switch.cs:175:17:175:48 | ...; | Switch.cs:174:13:174:20 | After default: [match] | +| Switch.cs:175:17:175:48 | After ...; | Switch.cs:175:17:175:47 | After call to method WriteLine | +| Switch.cs:175:42:175:46 | "def" | Switch.cs:175:17:175:47 | Before call to method WriteLine | +| Switch.cs:176:17:176:22 | Before break; | Switch.cs:175:17:175:48 | After ...; | +| Switch.cs:176:17:176:22 | break; | Switch.cs:176:17:176:22 | Before break; | +| TypeAccesses.cs:1:7:1:18 | After call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | After call to method | TypeAccesses.cs:1:7:1:18 | call to method | +| TypeAccesses.cs:1:7:1:18 | Before call to constructor Object | TypeAccesses.cs:1:7:1:18 | After call to method | +| TypeAccesses.cs:1:7:1:18 | Before call to method | TypeAccesses.cs:1:7:1:18 | Entry | +| TypeAccesses.cs:1:7:1:18 | Exit | TypeAccesses.cs:1:7:1:18 | Normal Exit | +| TypeAccesses.cs:1:7:1:18 | Normal Exit | TypeAccesses.cs:1:7:1:18 | {...} | +| TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | Before 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 | 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 = ... | -| TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:3:10:3:10 | enter M | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | Before call to method | +| TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | After call to constructor Object | +| TypeAccesses.cs:3:10:3:10 | Exit | TypeAccesses.cs:3:10:3:10 | Normal Exit | +| TypeAccesses.cs:3:10:3:10 | Normal Exit | TypeAccesses.cs:4:5:9:5 | After {...} | +| TypeAccesses.cs:4:5:9:5 | After {...} | TypeAccesses.cs:8:9:8:28 | After ... ...; | +| TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:3:10:3:10 | Entry | | TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:4:5:9:5 | {...} | -| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:5:17:5:25 | (...) ... | +| TypeAccesses.cs:5:9:5:26 | After ... ...; | TypeAccesses.cs:5:13:5:25 | After String s = ... | +| TypeAccesses.cs:5:13:5:13 | access to local variable s | TypeAccesses.cs:5:13:5:25 | Before String s = ... | +| TypeAccesses.cs:5:13:5:25 | After String s = ... | TypeAccesses.cs:5:13:5:25 | String s = ... | +| TypeAccesses.cs:5:13:5:25 | Before String s = ... | TypeAccesses.cs:5:9:5:26 | ... ...; | +| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:5:17:5:25 | After (...) ... | | TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:5:25:5:25 | access to parameter o | -| TypeAccesses.cs:5:25:5:25 | access to parameter o | TypeAccesses.cs:5:9:5:26 | ... ...; | -| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:6:13:6:23 | ... as ... | -| TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:5:13:5:25 | String s = ... | -| TypeAccesses.cs:6:13:6:13 | access to parameter o | TypeAccesses.cs:6:9:6:24 | ...; | +| TypeAccesses.cs:5:17:5:25 | After (...) ... | TypeAccesses.cs:5:17:5:25 | (...) ... | +| TypeAccesses.cs:5:17:5:25 | Before (...) ... | TypeAccesses.cs:5:13:5:13 | access to local variable s | +| TypeAccesses.cs:5:25:5:25 | access to parameter o | TypeAccesses.cs:5:17:5:25 | Before (...) ... | +| TypeAccesses.cs:6:9:6:9 | access to local variable s | TypeAccesses.cs:6:9:6:23 | Before ... = ... | +| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:6:13:6:23 | After ... as ... | +| TypeAccesses.cs:6:9:6:23 | After ... = ... | TypeAccesses.cs:6:9:6:23 | ... = ... | +| TypeAccesses.cs:6:9:6:23 | Before ... = ... | TypeAccesses.cs:6:9:6:24 | ...; | +| TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:5:9:5:26 | After ... ...; | +| TypeAccesses.cs:6:9:6:24 | After ...; | TypeAccesses.cs:6:9:6:23 | After ... = ... | +| TypeAccesses.cs:6:13:6:13 | access to parameter o | TypeAccesses.cs:6:13:6:23 | Before ... as ... | | TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:6:13:6:13 | access to parameter o | -| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:6:9:6:23 | ... = ... | -| TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:9:7:25 | if (...) ... | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:13 | access to parameter o | -| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:25:7:25 | ; | +| TypeAccesses.cs:6:13:6:23 | After ... as ... | TypeAccesses.cs:6:13:6:23 | ... as ... | +| TypeAccesses.cs:6:13:6:23 | Before ... as ... | TypeAccesses.cs:6:9:6:9 | access to local variable s | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:25:7:25 | ; | +| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:6:9:6:24 | After ...; | +| TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:13:7:22 | Before ... is ... | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:7:18:7:22 | Int32 j | +| TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:7:9:7:25 | if (...) ... | +| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | +| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:9:7:25 | After if (...) ... | +| TypeAccesses.cs:8:9:8:28 | After ... ...; | TypeAccesses.cs:8:13:8:27 | After Type t = ... | +| TypeAccesses.cs:8:13:8:13 | access to local variable t | TypeAccesses.cs:8:13:8:27 | Before Type t = ... | +| TypeAccesses.cs:8:13:8:27 | After Type t = ... | TypeAccesses.cs:8:13:8:27 | Type t = ... | +| TypeAccesses.cs:8:13:8:27 | Before Type t = ... | TypeAccesses.cs:8:9:8:28 | ... ...; | | 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 | call to method | +| TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:13:8:13 | access to local variable t | +| VarDecls.cs:3:7:3:14 | After call to constructor Object | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | After call to method | VarDecls.cs:3:7:3:14 | call to method | +| VarDecls.cs:3:7:3:14 | Before call to constructor Object | VarDecls.cs:3:7:3:14 | After call to method | +| VarDecls.cs:3:7:3:14 | Before call to method | VarDecls.cs:3:7:3:14 | Entry | +| VarDecls.cs:3:7:3:14 | Exit | VarDecls.cs:3:7:3:14 | Normal Exit | +| VarDecls.cs:3:7:3:14 | Normal Exit | VarDecls.cs:3:7:3:14 | {...} | +| VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | Before 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 | 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 ...; | -| VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:5:18:5:19 | enter M1 | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | Before call to method | +| VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | After call to constructor Object | +| VarDecls.cs:5:18:5:19 | Exit | VarDecls.cs:5:18:5:19 | Normal Exit | +| VarDecls.cs:5:18:5:19 | Normal Exit | VarDecls.cs:9:13:9:29 | return ...; | +| VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:5:18:5:19 | Entry | | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:6:5:11:5 | {...} | -| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:27:7:36 | (...) ... | -| VarDecls.cs:7:27:7:33 | access to parameter strings | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | -| VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:27:7:36 | access to array element | +| VarDecls.cs:7:22:7:23 | access to local variable c1 | VarDecls.cs:7:22:7:36 | Before Char* c1 = ... | +| VarDecls.cs:7:22:7:36 | After Char* c1 = ... | VarDecls.cs:7:22:7:36 | Char* c1 = ... | +| VarDecls.cs:7:22:7:36 | Before Char* c1 = ... | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | +| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:27:7:36 | After (...) ... | +| VarDecls.cs:7:27:7:33 | access to parameter strings | VarDecls.cs:7:27:7:36 | Before access to array element | +| VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:27:7:36 | After access to array element | +| VarDecls.cs:7:27:7:36 | After (...) ... | VarDecls.cs:7:27:7:36 | (...) ... | +| VarDecls.cs:7:27:7:36 | After access to array element | VarDecls.cs:7:27:7:36 | access to array element | +| VarDecls.cs:7:27:7:36 | Before (...) ... | VarDecls.cs:7:22:7:23 | access to local variable c1 | +| VarDecls.cs:7:27:7:36 | Before access to array element | VarDecls.cs:7:27:7:36 | Before (...) ... | | VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:7:35:7:35 | 0 | | VarDecls.cs:7:35:7:35 | 0 | VarDecls.cs:7:27:7:33 | access to parameter strings | -| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:7:44:7:53 | (...) ... | -| VarDecls.cs:7:44:7:50 | access to parameter strings | VarDecls.cs:7:22:7:36 | Char* c1 = ... | -| VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:44:7:53 | access to array element | +| VarDecls.cs:7:39:7:40 | access to local variable c2 | VarDecls.cs:7:39:7:53 | Before Char* c2 = ... | +| VarDecls.cs:7:39:7:53 | After Char* c2 = ... | VarDecls.cs:7:39:7:53 | Char* c2 = ... | +| VarDecls.cs:7:39:7:53 | Before Char* c2 = ... | VarDecls.cs:7:22:7:36 | After Char* c1 = ... | +| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:7:44:7:53 | After (...) ... | +| VarDecls.cs:7:44:7:50 | access to parameter strings | VarDecls.cs:7:44:7:53 | Before access to array element | +| VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:44:7:53 | After access to array element | +| VarDecls.cs:7:44:7:53 | After (...) ... | VarDecls.cs:7:44:7:53 | (...) ... | +| VarDecls.cs:7:44:7:53 | After access to array element | VarDecls.cs:7:44:7:53 | access to array element | +| VarDecls.cs:7:44:7:53 | Before (...) ... | VarDecls.cs:7:39:7:40 | access to local variable c2 | +| VarDecls.cs:7:44:7:53 | Before access to array element | VarDecls.cs:7:44:7:53 | Before (...) ... | | VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:7:52:7:52 | 1 | | VarDecls.cs:7:52:7:52 | 1 | VarDecls.cs:7:44:7:50 | access to parameter strings | -| VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:7:39:7:53 | Char* c2 = ... | -| VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:9:20:9:28 | (...) ... | +| VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:7:39:7:53 | After Char* c2 = ... | +| VarDecls.cs:9:13:9:29 | Before return ...; | VarDecls.cs:8:9:10:9 | {...} | +| VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:9:20:9:28 | After (...) ... | | VarDecls.cs:9:20:9:28 | (...) ... | VarDecls.cs:9:27:9:28 | access to local variable c1 | -| VarDecls.cs:9:27:9:28 | access to local variable c1 | VarDecls.cs:8:9:10:9 | {...} | -| VarDecls.cs:13:12:13:13 | exit M2 | VarDecls.cs:13:12:13:13 | exit M2 (normal) | -| VarDecls.cs:13:12:13:13 | exit M2 (normal) | VarDecls.cs:16:9:16:23 | return ...; | -| VarDecls.cs:14:5:17:5 | {...} | VarDecls.cs:13:12:13:13 | enter M2 | +| VarDecls.cs:9:20:9:28 | After (...) ... | VarDecls.cs:9:20:9:28 | (...) ... | +| VarDecls.cs:9:20:9:28 | Before (...) ... | VarDecls.cs:9:13:9:29 | Before return ...; | +| VarDecls.cs:9:27:9:28 | access to local variable c1 | VarDecls.cs:9:20:9:28 | Before (...) ... | +| VarDecls.cs:13:12:13:13 | Exit | VarDecls.cs:13:12:13:13 | Normal Exit | +| VarDecls.cs:13:12:13:13 | Normal Exit | VarDecls.cs:16:9:16:23 | return ...; | +| VarDecls.cs:14:5:17:5 | {...} | VarDecls.cs:13:12:13:13 | Entry | | VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:14:5:17:5 | {...} | +| VarDecls.cs:15:9:15:30 | After ... ...; | VarDecls.cs:15:24:15:29 | After String s2 = ... | +| VarDecls.cs:15:16:15:17 | access to local variable s1 | VarDecls.cs:15:16:15:21 | Before String s1 = ... | +| VarDecls.cs:15:16:15:21 | After String s1 = ... | VarDecls.cs:15:16:15:21 | String s1 = ... | +| VarDecls.cs:15:16:15:21 | Before String s1 = ... | VarDecls.cs:15:9:15:30 | ... ...; | | VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:21:15:21 | access to parameter s | -| VarDecls.cs:15:21:15:21 | access to parameter s | VarDecls.cs:15:9:15:30 | ... ...; | +| VarDecls.cs:15:21:15:21 | access to parameter s | VarDecls.cs:15:16:15:17 | access to local variable s1 | +| VarDecls.cs:15:24:15:25 | access to local variable s2 | VarDecls.cs:15:24:15:29 | Before String s2 = ... | +| VarDecls.cs:15:24:15:29 | After String s2 = ... | VarDecls.cs:15:24:15:29 | String s2 = ... | +| VarDecls.cs:15:24:15:29 | Before String s2 = ... | VarDecls.cs:15:16:15:21 | After String s1 = ... | | VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:15:29:15:29 | access to parameter s | -| VarDecls.cs:15:29:15:29 | access to parameter s | VarDecls.cs:15:16:15:21 | String s1 = ... | -| VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:16:16:16:22 | ... + ... | -| VarDecls.cs:16:16:16:17 | access to local variable s1 | VarDecls.cs:15:24:15:29 | String s2 = ... | +| VarDecls.cs:15:29:15:29 | access to parameter s | VarDecls.cs:15:24:15:25 | access to local variable s2 | +| VarDecls.cs:16:9:16:23 | Before return ...; | VarDecls.cs:15:9:15:30 | After ... ...; | +| VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:16:16:16:22 | After ... + ... | +| VarDecls.cs:16:16:16:17 | access to local variable s1 | VarDecls.cs:16:16:16:22 | Before ... + ... | | VarDecls.cs:16:16:16:22 | ... + ... | VarDecls.cs:16:21:16:22 | access to local variable s2 | +| VarDecls.cs:16:16:16:22 | After ... + ... | VarDecls.cs:16:16:16:22 | ... + ... | +| VarDecls.cs:16:16:16:22 | Before ... + ... | VarDecls.cs:16:9:16:23 | Before return ...; | | VarDecls.cs:16:21:16:22 | access to local variable s2 | VarDecls.cs:16:16:16:17 | access to local variable s1 | -| VarDecls.cs:19:7:19:8 | exit M3 | VarDecls.cs:19:7:19:8 | exit M3 (normal) | -| VarDecls.cs:19:7:19:8 | exit M3 (normal) | VarDecls.cs:25:13:25:29 | return ...; | -| VarDecls.cs:20:5:26:5 | {...} | VarDecls.cs:19:7:19:8 | enter M3 | +| VarDecls.cs:19:7:19:8 | Exit | VarDecls.cs:19:7:19:8 | Normal Exit | +| VarDecls.cs:19:7:19:8 | Normal Exit | VarDecls.cs:25:13:25:29 | return ...; | +| VarDecls.cs:20:5:26:5 | {...} | VarDecls.cs:19:7:19:8 | Entry | +| VarDecls.cs:21:9:22:13 | After using (...) {...} | VarDecls.cs:22:13:22:13 | ; | | VarDecls.cs:21:9:22:13 | using (...) {...} | VarDecls.cs:20:5:26:5 | {...} | -| VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:21:9:22:13 | using (...) {...} | -| VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:21:16:21:22 | object creation of type C | -| VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:22:13:22:13 | ; | -| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:22:24:28 | object creation of type C | -| VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:9:25:29 | using (...) {...} | -| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:24:35:24:41 | object creation of type C | -| VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:18:24:28 | C x = ... | -| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:25:20:25:28 | ... ? ... : ... | -| 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 | call to method | +| VarDecls.cs:21:16:21:22 | After object creation of type C | VarDecls.cs:21:16:21:22 | object creation of type C | +| VarDecls.cs:21:16:21:22 | Before object creation of type C | VarDecls.cs:21:9:22:13 | using (...) {...} | +| VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:21:16:21:22 | Before object creation of type C | +| VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:21:16:21:22 | After object creation of type C | +| VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:21:9:22:13 | After using (...) {...} | +| VarDecls.cs:24:18:24:18 | access to local variable x | VarDecls.cs:24:18:24:28 | Before C x = ... | +| VarDecls.cs:24:18:24:28 | After C x = ... | VarDecls.cs:24:18:24:28 | C x = ... | +| VarDecls.cs:24:18:24:28 | Before C x = ... | VarDecls.cs:24:9:25:29 | using (...) {...} | +| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:22:24:28 | After object creation of type C | +| VarDecls.cs:24:22:24:28 | After object creation of type C | VarDecls.cs:24:22:24:28 | object creation of type C | +| VarDecls.cs:24:22:24:28 | Before object creation of type C | VarDecls.cs:24:18:24:18 | access to local variable x | +| VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:22:24:28 | Before object creation of type C | +| VarDecls.cs:24:31:24:31 | access to local variable y | VarDecls.cs:24:31:24:41 | Before C y = ... | +| VarDecls.cs:24:31:24:41 | After C y = ... | VarDecls.cs:24:31:24:41 | C y = ... | +| VarDecls.cs:24:31:24:41 | Before C y = ... | VarDecls.cs:24:18:24:28 | After C x = ... | +| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:24:35:24:41 | After object creation of type C | +| VarDecls.cs:24:35:24:41 | After object creation of type C | VarDecls.cs:24:35:24:41 | object creation of type C | +| VarDecls.cs:24:35:24:41 | Before object creation of type C | VarDecls.cs:24:31:24:31 | access to local variable y | +| VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:35:24:41 | Before object creation of type C | +| VarDecls.cs:25:13:25:29 | Before return ...; | VarDecls.cs:24:31:24:41 | After C y = ... | +| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:25:20:25:28 | After ... ? ... : ... | +| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:28 | ... ? ... : ... | +| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:13:25:29 | Before return ...; | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:24:25:24 | access to local variable x | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:28:25:28 | access to local variable y | +| VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | +| VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | +| VarDecls.cs:28:11:28:11 | After call to constructor Object | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | After call to method | VarDecls.cs:28:11:28:11 | call to method | +| VarDecls.cs:28:11:28:11 | Before call to constructor Object | VarDecls.cs:28:11:28:11 | After call to method | +| VarDecls.cs:28:11:28:11 | Before call to method | VarDecls.cs:28:11:28:11 | Entry | +| VarDecls.cs:28:11:28:11 | Exit | VarDecls.cs:28:11:28:11 | Normal Exit | +| VarDecls.cs:28:11:28:11 | Normal Exit | VarDecls.cs:28:11:28:11 | {...} | +| VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | Before 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 | 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 | {...} | -| VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:41:28:47 | enter Dispose | -| cflow.cs:5:17:5:20 | exit Main | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:24:25:24:31 | ... <= ... | -| cflow.cs:6:5:35:5 | {...} | cflow.cs:5:17:5:20 | enter Main | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | Before call to method | +| VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | After call to constructor Object | +| VarDecls.cs:28:41:28:47 | Exit | VarDecls.cs:28:41:28:47 | Normal Exit | +| VarDecls.cs:28:41:28:47 | Normal Exit | VarDecls.cs:28:51:28:53 | {...} | +| VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:41:28:47 | Entry | +| cflow.cs:5:17:5:20 | Exit | cflow.cs:5:17:5:20 | Normal Exit | +| cflow.cs:5:17:5:20 | Normal Exit | cflow.cs:6:5:35:5 | After {...} | +| cflow.cs:6:5:35:5 | After {...} | cflow.cs:24:9:34:9 | After for (...;...;...) ... | +| cflow.cs:6:5:35:5 | {...} | cflow.cs:5:17:5:20 | Entry | | cflow.cs:7:9:7:28 | ... ...; | cflow.cs:6:5:35:5 | {...} | -| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:7:17:7:27 | access to property Length | -| cflow.cs:7:17:7:20 | access to parameter args | cflow.cs:7:9:7:28 | ... ...; | +| cflow.cs:7:9:7:28 | After ... ...; | cflow.cs:7:13:7:27 | After Int32 a = ... | +| cflow.cs:7:13:7:13 | access to local variable a | cflow.cs:7:13:7:27 | Before Int32 a = ... | +| cflow.cs:7:13:7:27 | After Int32 a = ... | cflow.cs:7:13:7:27 | Int32 a = ... | +| cflow.cs:7:13:7:27 | Before Int32 a = ... | cflow.cs:7:9:7:28 | ... ...; | +| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:7:17:7:27 | After access to property Length | +| cflow.cs:7:17:7:20 | access to parameter args | cflow.cs:7:17:7:27 | Before access to property Length | +| cflow.cs:7:17:7:27 | After access to property Length | cflow.cs:7:17:7:27 | access to property Length | +| cflow.cs:7:17:7:27 | Before access to property Length | cflow.cs:7:13:7:13 | access to local variable a | | cflow.cs:7:17:7:27 | access to property Length | cflow.cs:7:17:7:20 | access to parameter args | -| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:9:13:9:39 | call to method Switch | -| cflow.cs:9:9:9:40 | ...; | cflow.cs:7:13:7:27 | Int32 a = ... | -| cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:9:9:40 | ...; | +| cflow.cs:9:9:9:9 | access to local variable a | cflow.cs:9:9:9:39 | Before ... = ... | +| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:9:13:9:39 | After call to method Switch | +| cflow.cs:9:9:9:39 | After ... = ... | cflow.cs:9:9:9:39 | ... = ... | +| cflow.cs:9:9:9:39 | Before ... = ... | cflow.cs:9:9:9:40 | ...; | +| cflow.cs:9:9:9:40 | ...; | cflow.cs:7:9:7:28 | After ... ...; | +| cflow.cs:9:9:9:40 | After ...; | cflow.cs:9:9:9:39 | After ... = ... | +| cflow.cs:9:13:9:29 | After object creation of type ControlFlow | cflow.cs:9:13:9:29 | object creation of type ControlFlow | +| cflow.cs:9:13:9:29 | Before object creation of type ControlFlow | cflow.cs:9:13:9:39 | Before call to method Switch | +| cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:13:9:29 | Before object creation of type ControlFlow | +| cflow.cs:9:13:9:39 | After call to method Switch | cflow.cs:9:13:9:39 | call to method Switch | +| cflow.cs:9:13:9:39 | Before call to method Switch | cflow.cs:9:9:9:9 | access to local variable a | | cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:9:38:9:38 | access to local variable a | -| cflow.cs:9:38:9:38 | access to local variable a | cflow.cs:9:13:9:29 | object creation of type ControlFlow | -| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:9:9:9:39 | ... = ... | -| cflow.cs:11:13:11:13 | access to local variable a | cflow.cs:11:9:12:49 | if (...) ... | +| cflow.cs:9:38:9:38 | access to local variable a | cflow.cs:9:13:9:29 | After object creation of type ControlFlow | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:12:13:12:49 | After ...; | +| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:9:9:9:40 | After ...; | +| cflow.cs:11:13:11:13 | access to local variable a | cflow.cs:11:13:11:17 | Before ... > ... | | cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:17:11:17 | 3 | +| cflow.cs:11:13:11:17 | Before ... > ... | cflow.cs:11:9:12:49 | if (...) ... | | cflow.cs:11:17:11:17 | 3 | cflow.cs:11:13:11:13 | access to local variable a | +| cflow.cs:12:13:12:48 | After call to method WriteLine | cflow.cs:12:13:12:48 | call to method WriteLine | +| cflow.cs:12:13:12:48 | Before call to method WriteLine | cflow.cs:12:13:12:49 | ...; | | cflow.cs:12:13:12:48 | call to method WriteLine | cflow.cs:12:31:12:47 | "more than a few" | -| cflow.cs:12:31:12:47 | "more than a few" | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:11:13:11:17 | ... > ... | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:12:13:12:48 | call to method WriteLine | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:16:13:16:40 | call to method WriteLine | +| cflow.cs:12:13:12:49 | ...; | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:12:13:12:49 | After ...; | cflow.cs:12:13:12:48 | After call to method WriteLine | +| cflow.cs:12:31:12:47 | "more than a few" | cflow.cs:12:13:12:48 | Before call to method WriteLine | +| cflow.cs:14:9:17:9 | After while (...) ... | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:9:17:9 | while (...) ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:15:9:17:9 | After {...} | +| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:16:14:20 | Before ... > ... | | cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:20:14:20 | 0 | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:14:16:14:20 | ... > ... | +| cflow.cs:14:16:14:20 | Before ... > ... | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | | cflow.cs:14:20:14:20 | 0 | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:16:13:16:40 | call to method WriteLine | cflow.cs:16:31:16:39 | ... * ... | +| cflow.cs:15:9:17:9 | After {...} | cflow.cs:16:13:16:41 | After ...; | +| cflow.cs:15:9:17:9 | {...} | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:16:13:16:40 | After call to method WriteLine | cflow.cs:16:13:16:40 | call to method WriteLine | +| cflow.cs:16:13:16:40 | Before call to method WriteLine | cflow.cs:16:13:16:41 | ...; | +| cflow.cs:16:13:16:40 | call to method WriteLine | cflow.cs:16:31:16:39 | After ... * ... | | cflow.cs:16:13:16:41 | ...; | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:16:31:16:31 | access to local variable a | cflow.cs:16:13:16:41 | ...; | +| cflow.cs:16:13:16:41 | After ...; | cflow.cs:16:13:16:40 | After call to method WriteLine | +| cflow.cs:16:31:16:31 | access to local variable a | cflow.cs:16:31:16:33 | Before ...-- | | cflow.cs:16:31:16:33 | ...-- | cflow.cs:16:31:16:31 | access to local variable a | +| cflow.cs:16:31:16:33 | After ...-- | cflow.cs:16:31:16:33 | ...-- | +| cflow.cs:16:31:16:33 | Before ...-- | cflow.cs:16:31:16:39 | Before ... * ... | | cflow.cs:16:31:16:39 | ... * ... | cflow.cs:16:37:16:39 | 100 | -| cflow.cs:16:37:16:39 | 100 | cflow.cs:16:31:16:33 | ...-- | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:14:16:14:20 | ... > ... | +| cflow.cs:16:31:16:39 | After ... * ... | cflow.cs:16:31:16:39 | ... * ... | +| cflow.cs:16:31:16:39 | Before ... * ... | cflow.cs:16:13:16:40 | Before call to method WriteLine | +| cflow.cs:16:37:16:39 | 100 | cflow.cs:16:31:16:33 | After ...-- | +| cflow.cs:19:9:22:25 | After do ... while (...); | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:19:9:22:25 | [LoopHeader] do ... while (...); | cflow.cs:20:9:22:9 | After {...} | +| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:14:9:17:9 | After while (...) ... | +| cflow.cs:20:9:22:9 | After {...} | cflow.cs:21:13:21:36 | After ...; | | cflow.cs:20:9:22:9 | {...} | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:21:31:21:34 | -... | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:21:13:21:35 | After call to method WriteLine | cflow.cs:21:13:21:35 | call to method WriteLine | +| cflow.cs:21:13:21:35 | Before call to method WriteLine | cflow.cs:21:13:21:36 | ...; | +| cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:21:31:21:34 | After -... | | cflow.cs:21:13:21:36 | ...; | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:21:31:21:34 | -... | cflow.cs:21:32:21:34 | ...++ | -| cflow.cs:21:32:21:32 | access to local variable a | cflow.cs:21:13:21:36 | ...; | +| cflow.cs:21:13:21:36 | After ...; | cflow.cs:21:13:21:35 | After call to method WriteLine | +| cflow.cs:21:31:21:34 | -... | cflow.cs:21:32:21:34 | After ...++ | +| cflow.cs:21:31:21:34 | After -... | cflow.cs:21:31:21:34 | -... | +| cflow.cs:21:31:21:34 | Before -... | cflow.cs:21:13:21:35 | Before call to method WriteLine | +| cflow.cs:21:32:21:32 | access to local variable a | cflow.cs:21:32:21:34 | Before ...++ | | cflow.cs:21:32:21:34 | ...++ | cflow.cs:21:32:21:32 | access to local variable a | -| cflow.cs:22:18:22:18 | access to local variable a | cflow.cs:21:13:21:35 | call to method WriteLine | +| cflow.cs:21:32:21:34 | After ...++ | cflow.cs:21:32:21:34 | ...++ | +| cflow.cs:21:32:21:34 | Before ...++ | cflow.cs:21:31:21:34 | Before -... | +| cflow.cs:22:18:22:18 | access to local variable a | cflow.cs:22:18:22:23 | Before ... < ... | | cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:22:22:23 | 10 | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:22:18:22:23 | ... < ... | +| cflow.cs:22:18:22:23 | Before ... < ... | cflow.cs:19:9:22:25 | [LoopHeader] do ... while (...); | | cflow.cs:22:22:22:23 | 10 | cflow.cs:22:18:22:18 | access to local variable a | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:22:18:22:23 | ... < ... | +| cflow.cs:24:9:34:9 | After for (...;...;...) ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:24:9:34:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:25:9:34:9 | After {...} | +| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:19:9:22:25 | After do ... while (...); | +| cflow.cs:24:18:24:18 | access to local variable i | cflow.cs:24:18:24:22 | Before Int32 i = ... | +| cflow.cs:24:18:24:22 | After Int32 i = ... | cflow.cs:24:18:24:22 | Int32 i = ... | +| cflow.cs:24:18:24:22 | Before Int32 i = ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | | cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:22:24:22 | 1 | -| cflow.cs:24:22:24:22 | 1 | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:18:24:22 | Int32 i = ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:34:24:36 | ...++ | +| cflow.cs:24:22:24:22 | 1 | cflow.cs:24:18:24:18 | access to local variable i | +| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:25:24:31 | Before ... <= ... | | cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:30:24:31 | 20 | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:24:25:24:31 | ... <= ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:18:24:22 | After Int32 i = ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:34:24:36 | After ...++ | | cflow.cs:24:30:24:31 | 20 | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:27:17:27:45 | call to method WriteLine | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:29:17:29:41 | call to method WriteLine | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:31:17:31:41 | call to method WriteLine | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:33:17:33:36 | call to method WriteLine | +| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:24:34:24:36 | Before ...++ | | cflow.cs:24:34:24:36 | ...++ | cflow.cs:24:34:24:34 | access to local variable i | +| cflow.cs:24:34:24:36 | After ...++ | cflow.cs:24:34:24:36 | ...++ | +| cflow.cs:24:34:24:36 | Before ...++ | cflow.cs:24:9:34:9 | [LoopHeader] for (...;...;...) ... | +| cflow.cs:25:9:34:9 | After {...} | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:25:9:34:9 | {...} | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:27:17:27:46 | After ...; | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | | cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:26:17:26:17 | access to local variable i | cflow.cs:26:13:33:37 | if (...) ... | +| cflow.cs:26:17:26:17 | access to local variable i | cflow.cs:26:17:26:21 | Before ... % ... | | cflow.cs:26:17:26:21 | ... % ... | cflow.cs:26:21:26:21 | 3 | +| cflow.cs:26:17:26:21 | After ... % ... | cflow.cs:26:17:26:21 | ... % ... | +| cflow.cs:26:17:26:21 | Before ... % ... | cflow.cs:26:17:26:26 | Before ... == ... | | cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:26:26:26 | 0 | +| cflow.cs:26:17:26:26 | Before ... == ... | cflow.cs:26:17:26:40 | ... && ... | +| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:26:13:33:37 | if (...) ... | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:26:17:26:40 | After ... && ... [true] | cflow.cs:26:31:26:40 | After ... == ... [true] | | cflow.cs:26:21:26:21 | 3 | cflow.cs:26:17:26:17 | access to local variable i | -| cflow.cs:26:26:26:26 | 0 | cflow.cs:26:17:26:21 | ... % ... | +| cflow.cs:26:26:26:26 | 0 | cflow.cs:26:17:26:21 | After ... % ... | +| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:31:26:35 | Before ... % ... | | cflow.cs:26:31:26:35 | ... % ... | cflow.cs:26:35:26:35 | 5 | +| cflow.cs:26:31:26:35 | After ... % ... | cflow.cs:26:31:26:35 | ... % ... | +| cflow.cs:26:31:26:35 | Before ... % ... | cflow.cs:26:31:26:40 | Before ... == ... | | cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:40:26:40 | 0 | +| cflow.cs:26:31:26:40 | Before ... == ... | cflow.cs:26:17:26:26 | After ... == ... [true] | | cflow.cs:26:35:26:35 | 5 | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:26:40:26:40 | 0 | cflow.cs:26:31:26:35 | ... % ... | +| cflow.cs:26:40:26:40 | 0 | cflow.cs:26:31:26:35 | After ... % ... | +| cflow.cs:27:17:27:45 | After call to method WriteLine | cflow.cs:27:17:27:45 | call to method WriteLine | +| cflow.cs:27:17:27:45 | Before call to method WriteLine | cflow.cs:27:17:27:46 | ...; | | cflow.cs:27:17:27:45 | call to method WriteLine | cflow.cs:27:35:27:44 | "FizzBuzz" | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:27:35:27:44 | "FizzBuzz" | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:28:22:28:22 | access to local variable i | cflow.cs:28:18:33:37 | if (...) ... | +| cflow.cs:27:17:27:46 | ...; | cflow.cs:26:17:26:40 | After ... && ... [true] | +| cflow.cs:27:17:27:46 | After ...; | cflow.cs:27:17:27:45 | After call to method WriteLine | +| cflow.cs:27:35:27:44 | "FizzBuzz" | cflow.cs:27:17:27:45 | Before call to method WriteLine | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:29:17:29:42 | After ...; | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:28:22:28:22 | access to local variable i | cflow.cs:28:22:28:26 | Before ... % ... | | cflow.cs:28:22:28:26 | ... % ... | cflow.cs:28:26:28:26 | 3 | +| cflow.cs:28:22:28:26 | After ... % ... | cflow.cs:28:22:28:26 | ... % ... | +| cflow.cs:28:22:28:26 | Before ... % ... | cflow.cs:28:22:28:31 | Before ... == ... | | cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:31:28:31 | 0 | +| cflow.cs:28:22:28:31 | Before ... == ... | cflow.cs:28:18:33:37 | if (...) ... | | cflow.cs:28:26:28:26 | 3 | cflow.cs:28:22:28:22 | access to local variable i | -| cflow.cs:28:31:28:31 | 0 | cflow.cs:28:22:28:26 | ... % ... | +| cflow.cs:28:31:28:31 | 0 | cflow.cs:28:22:28:26 | After ... % ... | +| cflow.cs:29:17:29:41 | After call to method WriteLine | cflow.cs:29:17:29:41 | call to method WriteLine | +| cflow.cs:29:17:29:41 | Before call to method WriteLine | cflow.cs:29:17:29:42 | ...; | | cflow.cs:29:17:29:41 | call to method WriteLine | cflow.cs:29:35:29:40 | "Fizz" | -| cflow.cs:29:35:29:40 | "Fizz" | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:30:22:30:22 | access to local variable i | cflow.cs:30:18:33:37 | if (...) ... | +| cflow.cs:29:17:29:42 | ...; | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:29:17:29:42 | After ...; | cflow.cs:29:17:29:41 | After call to method WriteLine | +| cflow.cs:29:35:29:40 | "Fizz" | cflow.cs:29:17:29:41 | Before call to method WriteLine | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:31:17:31:42 | After ...; | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:33:17:33:37 | After ...; | +| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:30:22:30:22 | access to local variable i | cflow.cs:30:22:30:26 | Before ... % ... | | cflow.cs:30:22:30:26 | ... % ... | cflow.cs:30:26:30:26 | 5 | +| cflow.cs:30:22:30:26 | After ... % ... | cflow.cs:30:22:30:26 | ... % ... | +| cflow.cs:30:22:30:26 | Before ... % ... | cflow.cs:30:22:30:31 | Before ... == ... | | cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:31:30:31 | 0 | +| cflow.cs:30:22:30:31 | Before ... == ... | cflow.cs:30:18:33:37 | if (...) ... | | cflow.cs:30:26:30:26 | 5 | cflow.cs:30:22:30:22 | access to local variable i | -| cflow.cs:30:31:30:31 | 0 | cflow.cs:30:22:30:26 | ... % ... | +| cflow.cs:30:31:30:31 | 0 | cflow.cs:30:22:30:26 | After ... % ... | +| cflow.cs:31:17:31:41 | After call to method WriteLine | cflow.cs:31:17:31:41 | call to method WriteLine | +| cflow.cs:31:17:31:41 | Before call to method WriteLine | cflow.cs:31:17:31:42 | ...; | | cflow.cs:31:17:31:41 | call to method WriteLine | cflow.cs:31:35:31:40 | "Buzz" | -| cflow.cs:31:35:31:40 | "Buzz" | cflow.cs:31:17:31:42 | ...; | +| cflow.cs:31:17:31:42 | ...; | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:31:17:31:42 | After ...; | cflow.cs:31:17:31:41 | After call to method WriteLine | +| cflow.cs:31:35:31:40 | "Buzz" | cflow.cs:31:17:31:41 | Before call to method WriteLine | +| cflow.cs:33:17:33:36 | After call to method WriteLine | cflow.cs:33:17:33:36 | call to method WriteLine | +| cflow.cs:33:17:33:36 | Before call to method WriteLine | cflow.cs:33:17:33:37 | ...; | | cflow.cs:33:17:33:36 | call to method WriteLine | cflow.cs:33:35:33:35 | access to local variable i | -| cflow.cs:33:35:33:35 | access to local variable i | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:37:17:37:22 | exit Switch (abnormal) | cflow.cs:64:21:64:55 | throw ...; | -| cflow.cs:37:17:37:22 | exit Switch (normal) | cflow.cs:67:9:67:17 | return ...; | -| cflow.cs:38:5:68:5 | {...} | cflow.cs:37:17:37:22 | enter Switch | +| cflow.cs:33:17:33:37 | ...; | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:33:17:33:37 | After ...; | cflow.cs:33:17:33:36 | After call to method WriteLine | +| cflow.cs:33:35:33:35 | access to local variable i | cflow.cs:33:17:33:36 | Before call to method WriteLine | +| cflow.cs:37:17:37:22 | Exceptional Exit | cflow.cs:64:21:64:55 | throw ...; | +| cflow.cs:37:17:37:22 | Normal Exit | cflow.cs:67:9:67:17 | return ...; | +| cflow.cs:38:5:68:5 | {...} | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:49:17:49:22 | break; | | cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:38:5:68:5 | {...} | | cflow.cs:39:17:39:17 | access to parameter a | cflow.cs:39:9:50:9 | switch (...) {...} | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:41:13:41:19 | case ...: | | cflow.cs:41:13:41:19 | case ...: | cflow.cs:39:17:39:17 | access to parameter a | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:46:17:46:28 | goto case ...; | -| cflow.cs:41:18:41:18 | 1 | cflow.cs:41:13:41:19 | case ...: | +| cflow.cs:41:18:41:18 | 1 | cflow.cs:41:13:41:19 | After case ...: [match] | +| cflow.cs:42:17:42:38 | After call to method WriteLine | cflow.cs:42:17:42:38 | call to method WriteLine | +| cflow.cs:42:17:42:38 | Before call to method WriteLine | cflow.cs:42:17:42:39 | ...; | | cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:42:35:42:37 | "1" | -| cflow.cs:42:35:42:37 | "1" | cflow.cs:42:17:42:39 | ...; | +| cflow.cs:42:17:42:39 | ...; | cflow.cs:41:18:41:18 | 1 | +| cflow.cs:42:17:42:39 | After ...; | cflow.cs:42:17:42:38 | After call to method WriteLine | +| cflow.cs:42:35:42:37 | "1" | cflow.cs:42:17:42:38 | Before call to method WriteLine | +| cflow.cs:43:17:43:28 | Before goto case ...; | cflow.cs:42:17:42:39 | After ...; | | cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:43:27:43:27 | 2 | -| cflow.cs:43:27:43:27 | 2 | cflow.cs:42:17:42:38 | call to method WriteLine | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:41:18:41:18 | 1 | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:43:17:43:28 | goto case ...; | -| cflow.cs:44:18:44:18 | 2 | cflow.cs:44:13:44:19 | case ...: | +| cflow.cs:43:27:43:27 | 2 | cflow.cs:43:17:43:28 | Before goto case ...; | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | case ...: | +| cflow.cs:44:13:44:19 | case ...: | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:44:18:44:18 | 2 | cflow.cs:44:13:44:19 | After case ...: [match] | +| cflow.cs:45:17:45:38 | After call to method WriteLine | cflow.cs:45:17:45:38 | call to method WriteLine | +| cflow.cs:45:17:45:38 | Before call to method WriteLine | cflow.cs:45:17:45:39 | ...; | | cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:45:35:45:37 | "2" | -| cflow.cs:45:35:45:37 | "2" | cflow.cs:45:17:45:39 | ...; | +| cflow.cs:45:17:45:39 | ...; | cflow.cs:44:18:44:18 | 2 | +| cflow.cs:45:17:45:39 | After ...; | cflow.cs:45:17:45:38 | After call to method WriteLine | +| cflow.cs:45:35:45:37 | "2" | cflow.cs:45:17:45:38 | Before call to method WriteLine | +| cflow.cs:46:17:46:28 | Before goto case ...; | cflow.cs:45:17:45:39 | After ...; | | cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:46:27:46:27 | 1 | -| cflow.cs:46:27:46:27 | 1 | cflow.cs:45:17:45:38 | call to method WriteLine | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:44:18:44:18 | 2 | -| cflow.cs:47:18:47:18 | 3 | cflow.cs:47:13:47:19 | case ...: | +| cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | Before goto case ...; | +| cflow.cs:47:13:47:19 | case ...: | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:47:18:47:18 | 3 | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:48:17:48:38 | After call to method WriteLine | cflow.cs:48:17:48:38 | call to method WriteLine | +| cflow.cs:48:17:48:38 | Before call to method WriteLine | cflow.cs:48:17:48:39 | ...; | | cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:48:35:48:37 | "3" | -| cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:49:17:49:22 | break; | cflow.cs:48:17:48:38 | call to method WriteLine | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:47:18:47:18 | 3 | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:49:17:49:22 | break; | +| cflow.cs:48:17:48:39 | ...; | cflow.cs:47:18:47:18 | 3 | +| cflow.cs:48:17:48:39 | After ...; | cflow.cs:48:17:48:38 | After call to method WriteLine | +| cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:38 | Before call to method WriteLine | +| cflow.cs:49:17:49:22 | Before break; | cflow.cs:48:17:48:39 | After ...; | +| cflow.cs:49:17:49:22 | break; | cflow.cs:49:17:49:22 | Before break; | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:55:17:55:22 | break; | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:58:17:58:22 | break; | +| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:39:9:50:9 | After switch (...) {...} | | cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:51:9:59:9 | switch (...) {...} | | cflow.cs:53:13:53:20 | case ...: | cflow.cs:51:17:51:17 | access to parameter a | -| cflow.cs:53:18:53:19 | 42 | cflow.cs:53:13:53:20 | case ...: | +| cflow.cs:53:18:53:19 | 42 | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:54:17:54:47 | After call to method WriteLine | cflow.cs:54:17:54:47 | call to method WriteLine | +| cflow.cs:54:17:54:47 | Before call to method WriteLine | cflow.cs:54:17:54:48 | ...; | | cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:54:35:54:46 | "The answer" | -| cflow.cs:54:35:54:46 | "The answer" | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:55:17:55:22 | break; | cflow.cs:54:17:54:47 | call to method WriteLine | +| cflow.cs:54:17:54:48 | ...; | cflow.cs:53:18:53:19 | 42 | +| cflow.cs:54:17:54:48 | After ...; | cflow.cs:54:17:54:47 | After call to method WriteLine | +| cflow.cs:54:35:54:46 | "The answer" | cflow.cs:54:17:54:47 | Before call to method WriteLine | +| cflow.cs:55:17:55:22 | Before break; | cflow.cs:54:17:54:48 | After ...; | +| cflow.cs:55:17:55:22 | break; | cflow.cs:55:17:55:22 | Before break; | +| cflow.cs:56:13:56:20 | After default: [match] | cflow.cs:56:13:56:20 | default: | +| cflow.cs:56:13:56:20 | default: | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:57:17:57:51 | After call to method WriteLine | cflow.cs:57:17:57:51 | call to method WriteLine | +| cflow.cs:57:17:57:51 | Before call to method WriteLine | cflow.cs:57:17:57:52 | ...; | | cflow.cs:57:17:57:51 | call to method WriteLine | cflow.cs:57:35:57:50 | "Not the answer" | -| cflow.cs:57:17:57:52 | ...; | cflow.cs:56:13:56:20 | default: | -| cflow.cs:57:35:57:50 | "Not the answer" | cflow.cs:57:17:57:52 | ...; | -| cflow.cs:58:17:58:22 | break; | cflow.cs:57:17:57:51 | call to method WriteLine | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:55:17:55:22 | break; | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:58:17:58:22 | break; | -| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:60:27:60:31 | access to field Field | +| cflow.cs:57:17:57:52 | ...; | cflow.cs:56:13:56:20 | After default: [match] | +| cflow.cs:57:17:57:52 | After ...; | cflow.cs:57:17:57:51 | After call to method WriteLine | +| cflow.cs:57:35:57:50 | "Not the answer" | cflow.cs:57:17:57:51 | Before call to method WriteLine | +| cflow.cs:58:17:58:22 | Before break; | cflow.cs:57:17:57:52 | After ...; | +| cflow.cs:58:17:58:22 | break; | cflow.cs:58:17:58:22 | Before break; | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:65:17:65:22 | break; | +| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:60:17:60:32 | After call to method Parse | cflow.cs:60:17:60:32 | call to method Parse | +| cflow.cs:60:17:60:32 | Before call to method Parse | cflow.cs:60:9:66:9 | switch (...) {...} | +| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:60:27:60:31 | After access to field Field | +| cflow.cs:60:27:60:31 | After access to field Field | cflow.cs:60:27:60:31 | access to field Field | +| cflow.cs:60:27:60:31 | Before access to field Field | cflow.cs:60:17:60:32 | Before call to method Parse | | cflow.cs:60:27:60:31 | access to field Field | cflow.cs:60:27:60:31 | this access | -| cflow.cs:60:27:60:31 | this access | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:62:13:62:19 | case ...: | cflow.cs:60:17:60:32 | call to method Parse | -| cflow.cs:62:18:62:18 | 0 | cflow.cs:62:13:62:19 | case ...: | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:63:23:63:33 | ... == ... | +| cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | Before access to field Field | +| cflow.cs:62:13:62:19 | case ...: | cflow.cs:60:17:60:32 | After call to method Parse | +| cflow.cs:62:18:62:18 | 0 | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:63:17:64:55 | After if (...) ... | cflow.cs:63:21:63:34 | After !... [false] | +| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:62:18:62:18 | 0 | +| cflow.cs:63:21:63:34 | !... | cflow.cs:63:17:64:55 | if (...) ... | +| cflow.cs:63:21:63:34 | After !... [false] | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:63:21:63:34 | After !... [true] | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:63:23:63:27 | After access to field Field | cflow.cs:63:23:63:27 | access to field Field | +| cflow.cs:63:23:63:27 | Before access to field Field | cflow.cs:63:23:63:33 | Before ... == ... | | cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:23:63:27 | this access | -| cflow.cs:63:23:63:27 | this access | cflow.cs:63:17:64:55 | if (...) ... | +| cflow.cs:63:23:63:27 | this access | cflow.cs:63:23:63:27 | Before access to field Field | | cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:32:63:33 | "" | -| cflow.cs:63:32:63:33 | "" | cflow.cs:63:23:63:27 | access to field Field | -| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:65:17:65:22 | break; | cflow.cs:63:21:63:34 | [false] !... | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:63:23:63:33 | ... == ... | +| cflow.cs:63:23:63:33 | Before ... == ... | cflow.cs:63:21:63:34 | !... | +| cflow.cs:63:32:63:33 | "" | cflow.cs:63:23:63:27 | After access to field Field | +| cflow.cs:64:21:64:55 | Before throw ...; | cflow.cs:63:21:63:34 | After !... [true] | +| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:64:27:64:54 | After object creation of type NullReferenceException | +| cflow.cs:64:27:64:54 | After object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | +| cflow.cs:64:27:64:54 | Before object creation of type NullReferenceException | cflow.cs:64:21:64:55 | Before throw ...; | +| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | Before object creation of type NullReferenceException | +| cflow.cs:65:17:65:22 | Before break; | cflow.cs:63:17:64:55 | After if (...) ... | +| cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | Before break; | +| cflow.cs:67:9:67:17 | Before return ...; | cflow.cs:60:9:66:9 | After switch (...) {...} | | cflow.cs:67:9:67:17 | return ...; | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:62:18:62:18 | 0 | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:65:17:65:22 | break; | -| cflow.cs:70:18:70:18 | exit M | cflow.cs:70:18:70:18 | exit M (normal) | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:73:13:73:19 | return ...; | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:76:13:76:32 | call to method WriteLine | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:80:13:80:47 | call to method WriteLine | -| cflow.cs:71:5:82:5 | {...} | cflow.cs:70:18:70:18 | enter M | +| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:9:67:17 | Before return ...; | +| cflow.cs:70:18:70:18 | Exit | cflow.cs:70:18:70:18 | Normal Exit | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:71:5:82:5 | After {...} | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:73:13:73:19 | return ...; | +| cflow.cs:71:5:82:5 | After {...} | cflow.cs:74:9:81:9 | After if (...) ... | +| cflow.cs:71:5:82:5 | {...} | cflow.cs:70:18:70:18 | Entry | +| cflow.cs:72:9:73:19 | After if (...) ... | cflow.cs:72:13:72:21 | After ... == ... [false] | | cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:71:5:82:5 | {...} | -| cflow.cs:72:13:72:13 | access to parameter s | cflow.cs:72:9:73:19 | if (...) ... | +| cflow.cs:72:13:72:13 | access to parameter s | cflow.cs:72:13:72:21 | Before ... == ... | | cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:18:72:21 | null | +| cflow.cs:72:13:72:21 | Before ... == ... | cflow.cs:72:9:73:19 | if (...) ... | | cflow.cs:72:18:72:21 | null | cflow.cs:72:13:72:13 | access to parameter s | -| cflow.cs:74:13:74:13 | access to parameter s | cflow.cs:74:9:81:9 | if (...) ... | +| cflow.cs:73:13:73:19 | Before return ...; | cflow.cs:72:13:72:21 | After ... == ... [true] | +| cflow.cs:73:13:73:19 | return ...; | cflow.cs:73:13:73:19 | Before return ...; | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:75:9:77:9 | After {...} | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:79:9:81:9 | After {...} | +| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:72:9:73:19 | After if (...) ... | +| cflow.cs:74:13:74:13 | access to parameter s | cflow.cs:74:13:74:20 | Before access to property Length | +| cflow.cs:74:13:74:20 | After access to property Length | cflow.cs:74:13:74:20 | access to property Length | +| cflow.cs:74:13:74:20 | Before access to property Length | cflow.cs:74:13:74:24 | Before ... > ... | | cflow.cs:74:13:74:20 | access to property Length | cflow.cs:74:13:74:13 | access to parameter s | | cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:24:74:24 | 0 | -| cflow.cs:74:24:74:24 | 0 | cflow.cs:74:13:74:20 | access to property Length | +| cflow.cs:74:13:74:24 | Before ... > ... | cflow.cs:74:9:81:9 | if (...) ... | +| cflow.cs:74:24:74:24 | 0 | cflow.cs:74:13:74:20 | After access to property Length | +| cflow.cs:75:9:77:9 | After {...} | cflow.cs:76:13:76:33 | After ...; | +| cflow.cs:75:9:77:9 | {...} | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:76:13:76:32 | After call to method WriteLine | cflow.cs:76:13:76:32 | call to method WriteLine | +| cflow.cs:76:13:76:32 | Before call to method WriteLine | cflow.cs:76:13:76:33 | ...; | | cflow.cs:76:13:76:32 | call to method WriteLine | cflow.cs:76:31:76:31 | access to parameter s | | cflow.cs:76:13:76:33 | ...; | cflow.cs:75:9:77:9 | {...} | -| cflow.cs:76:31:76:31 | access to parameter s | cflow.cs:76:13:76:33 | ...; | +| cflow.cs:76:13:76:33 | After ...; | cflow.cs:76:13:76:32 | After call to method WriteLine | +| cflow.cs:76:31:76:31 | access to parameter s | cflow.cs:76:13:76:32 | Before call to method WriteLine | +| cflow.cs:79:9:81:9 | After {...} | cflow.cs:80:13:80:48 | After ...; | +| cflow.cs:79:9:81:9 | {...} | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:80:13:80:47 | After call to method WriteLine | cflow.cs:80:13:80:47 | call to method WriteLine | +| cflow.cs:80:13:80:47 | Before call to method WriteLine | cflow.cs:80:13:80:48 | ...; | | cflow.cs:80:13:80:47 | call to method WriteLine | cflow.cs:80:31:80:46 | "" | | cflow.cs:80:13:80:48 | ...; | cflow.cs:79:9:81:9 | {...} | -| cflow.cs:80:31:80:46 | "" | cflow.cs:80:13:80:48 | ...; | -| cflow.cs:84:18:84:19 | exit M2 | cflow.cs:84:18:84:19 | exit M2 (normal) | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:86:13:86:37 | [false] ... && ... | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:87:13:87:32 | call to method WriteLine | -| cflow.cs:85:5:88:5 | {...} | cflow.cs:84:18:84:19 | enter M2 | +| cflow.cs:80:13:80:48 | After ...; | cflow.cs:80:13:80:47 | After call to method WriteLine | +| cflow.cs:80:31:80:46 | "" | cflow.cs:80:13:80:47 | Before call to method WriteLine | +| cflow.cs:84:18:84:19 | Exit | cflow.cs:84:18:84:19 | Normal Exit | +| cflow.cs:84:18:84:19 | Normal Exit | cflow.cs:85:5:88:5 | After {...} | +| cflow.cs:85:5:88:5 | After {...} | cflow.cs:86:9:87:33 | After if (...) ... | +| cflow.cs:85:5:88:5 | {...} | cflow.cs:84:18:84:19 | Entry | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:13:86:37 | After ... && ... [false] | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:87:13:87:33 | After ...; | | cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:85:5:88:5 | {...} | -| cflow.cs:86:13:86:13 | access to parameter s | cflow.cs:86:9:87:33 | if (...) ... | +| cflow.cs:86:13:86:13 | access to parameter s | cflow.cs:86:13:86:21 | Before ... != ... | | cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:18:86:21 | null | +| cflow.cs:86:13:86:21 | Before ... != ... | cflow.cs:86:13:86:37 | ... && ... | +| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:86:9:87:33 | if (...) ... | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:13:86:21 | After ... != ... [false] | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:86:13:86:37 | After ... && ... [true] | cflow.cs:86:26:86:37 | After ... > ... [true] | | cflow.cs:86:18:86:21 | null | cflow.cs:86:13:86:13 | access to parameter s | +| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:33 | Before access to property Length | +| cflow.cs:86:26:86:33 | After access to property Length | cflow.cs:86:26:86:33 | access to property Length | +| cflow.cs:86:26:86:33 | Before access to property Length | cflow.cs:86:26:86:37 | Before ... > ... | | cflow.cs:86:26:86:33 | access to property Length | cflow.cs:86:26:86:26 | access to parameter s | | cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:37:86:37 | 0 | -| cflow.cs:86:37:86:37 | 0 | cflow.cs:86:26:86:33 | access to property Length | +| cflow.cs:86:26:86:37 | Before ... > ... | cflow.cs:86:13:86:21 | After ... != ... [true] | +| cflow.cs:86:37:86:37 | 0 | cflow.cs:86:26:86:33 | After access to property Length | +| cflow.cs:87:13:87:32 | After call to method WriteLine | cflow.cs:87:13:87:32 | call to method WriteLine | +| cflow.cs:87:13:87:32 | Before call to method WriteLine | cflow.cs:87:13:87:33 | ...; | | cflow.cs:87:13:87:32 | call to method WriteLine | cflow.cs:87:31:87:31 | access to parameter s | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:86:13:86:37 | [true] ... && ... | -| cflow.cs:87:31:87:31 | access to parameter s | cflow.cs:87:13:87:33 | ...; | -| cflow.cs:90:18:90:19 | exit M3 (abnormal) | cflow.cs:93:13:93:49 | throw ...; | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:102:13:102:29 | ... != ... | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:103:13:103:35 | call to method WriteLine | -| cflow.cs:91:5:104:5 | {...} | cflow.cs:90:18:90:19 | enter M3 | +| cflow.cs:87:13:87:33 | ...; | cflow.cs:86:13:86:37 | After ... && ... [true] | +| cflow.cs:87:13:87:33 | After ...; | cflow.cs:87:13:87:32 | After call to method WriteLine | +| cflow.cs:87:31:87:31 | access to parameter s | cflow.cs:87:13:87:32 | Before call to method WriteLine | +| cflow.cs:90:18:90:19 | Exceptional Exit | cflow.cs:93:13:93:49 | throw ...; | +| cflow.cs:90:18:90:19 | Normal Exit | cflow.cs:91:5:104:5 | After {...} | +| cflow.cs:91:5:104:5 | After {...} | cflow.cs:102:9:103:36 | After if (...) ... | +| cflow.cs:91:5:104:5 | {...} | cflow.cs:90:18:90:19 | Entry | +| cflow.cs:92:9:93:49 | After if (...) ... | cflow.cs:92:13:92:27 | After call to method Equals [false] | | cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:91:5:104:5 | {...} | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:92:13:92:27 | call to method Equals | +| cflow.cs:92:13:92:27 | Before call to method Equals | cflow.cs:92:9:93:49 | if (...) ... | | cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:23:92:26 | null | -| cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:92:9:93:49 | if (...) ... | +| cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:92:13:92:27 | Before call to method Equals | | cflow.cs:92:23:92:26 | null | cflow.cs:92:20:92:20 | access to parameter s | -| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | +| cflow.cs:93:13:93:49 | Before throw ...; | cflow.cs:92:13:92:27 | After call to method Equals [true] | +| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:93:19:93:48 | After object creation of type ArgumentNullException | +| cflow.cs:93:19:93:48 | After object creation of type ArgumentNullException | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | +| cflow.cs:93:19:93:48 | Before object creation of type ArgumentNullException | cflow.cs:93:13:93:49 | Before throw ...; | | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:45:93:47 | "s" | +| cflow.cs:93:45:93:47 | "s" | cflow.cs:93:19:93:48 | Before object creation of type ArgumentNullException | +| cflow.cs:94:9:94:28 | After call to method WriteLine | cflow.cs:94:9:94:28 | call to method WriteLine | +| cflow.cs:94:9:94:28 | Before call to method WriteLine | cflow.cs:94:9:94:29 | ...; | | cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:94:27:94:27 | access to parameter s | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:92:13:92:27 | call to method Equals | -| cflow.cs:94:27:94:27 | access to parameter s | cflow.cs:94:9:94:29 | ...; | -| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:94:9:94:28 | call to method WriteLine | +| cflow.cs:94:9:94:29 | ...; | cflow.cs:92:9:93:49 | After if (...) ... | +| cflow.cs:94:9:94:29 | After ...; | cflow.cs:94:9:94:28 | After call to method WriteLine | +| cflow.cs:94:27:94:27 | access to parameter s | cflow.cs:94:9:94:28 | Before call to method WriteLine | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:97:13:97:55 | After ...; | +| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:94:9:94:29 | After ...; | +| cflow.cs:96:13:96:17 | After access to field Field | cflow.cs:96:13:96:17 | access to field Field | +| cflow.cs:96:13:96:17 | Before access to field Field | cflow.cs:96:13:96:25 | Before ... != ... | | cflow.cs:96:13:96:17 | access to field Field | cflow.cs:96:13:96:17 | this access | -| cflow.cs:96:13:96:17 | this access | cflow.cs:96:9:97:55 | if (...) ... | +| cflow.cs:96:13:96:17 | this access | cflow.cs:96:13:96:17 | Before access to field Field | | cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:22:96:25 | null | -| cflow.cs:96:22:96:25 | null | cflow.cs:96:13:96:17 | access to field Field | -| cflow.cs:97:13:97:54 | call to method WriteLine | cflow.cs:97:31:97:53 | access to field Field | -| cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:97:31:97:53 | access to field Field | cflow.cs:97:31:97:47 | object creation of type ControlFlow | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:96:13:96:25 | ... != ... | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:97:13:97:54 | call to method WriteLine | +| cflow.cs:96:13:96:25 | Before ... != ... | cflow.cs:96:9:97:55 | if (...) ... | +| cflow.cs:96:22:96:25 | null | cflow.cs:96:13:96:17 | After access to field Field | +| cflow.cs:97:13:97:54 | After call to method WriteLine | cflow.cs:97:13:97:54 | call to method WriteLine | +| cflow.cs:97:13:97:54 | Before call to method WriteLine | cflow.cs:97:13:97:55 | ...; | +| cflow.cs:97:13:97:54 | call to method WriteLine | cflow.cs:97:31:97:53 | After access to field Field | +| cflow.cs:97:13:97:55 | ...; | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:97:13:97:55 | After ...; | cflow.cs:97:13:97:54 | After call to method WriteLine | +| cflow.cs:97:31:97:47 | After object creation of type ControlFlow | cflow.cs:97:31:97:47 | object creation of type ControlFlow | +| cflow.cs:97:31:97:47 | Before object creation of type ControlFlow | cflow.cs:97:31:97:53 | Before access to field Field | +| cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:97:31:97:47 | Before object creation of type ControlFlow | +| cflow.cs:97:31:97:53 | After access to field Field | cflow.cs:97:31:97:53 | access to field Field | +| cflow.cs:97:31:97:53 | Before access to field Field | cflow.cs:97:13:97:54 | Before call to method WriteLine | +| cflow.cs:97:31:97:53 | access to field Field | cflow.cs:97:31:97:47 | After object creation of type ControlFlow | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:100:13:100:42 | After ...; | +| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:96:9:97:55 | After if (...) ... | +| cflow.cs:99:13:99:17 | After access to field Field | cflow.cs:99:13:99:17 | access to field Field | +| cflow.cs:99:13:99:17 | Before access to field Field | cflow.cs:99:13:99:25 | Before ... != ... | | cflow.cs:99:13:99:17 | access to field Field | cflow.cs:99:13:99:17 | this access | -| cflow.cs:99:13:99:17 | this access | cflow.cs:99:9:100:42 | if (...) ... | +| cflow.cs:99:13:99:17 | this access | cflow.cs:99:13:99:17 | Before access to field Field | | cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:22:99:25 | null | -| cflow.cs:99:22:99:25 | null | cflow.cs:99:13:99:17 | access to field Field | -| cflow.cs:100:13:100:41 | call to method WriteLine | cflow.cs:100:31:100:40 | access to field Field | -| cflow.cs:100:31:100:34 | this access | cflow.cs:100:13:100:42 | ...; | +| cflow.cs:99:13:99:25 | Before ... != ... | cflow.cs:99:9:100:42 | if (...) ... | +| cflow.cs:99:22:99:25 | null | cflow.cs:99:13:99:17 | After access to field Field | +| cflow.cs:100:13:100:41 | After call to method WriteLine | cflow.cs:100:13:100:41 | call to method WriteLine | +| cflow.cs:100:13:100:41 | Before call to method WriteLine | cflow.cs:100:13:100:42 | ...; | +| cflow.cs:100:13:100:41 | call to method WriteLine | cflow.cs:100:31:100:40 | After access to field Field | +| cflow.cs:100:13:100:42 | ...; | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:100:13:100:42 | After ...; | cflow.cs:100:13:100:41 | After call to method WriteLine | +| cflow.cs:100:31:100:34 | this access | cflow.cs:100:31:100:40 | Before access to field Field | +| cflow.cs:100:31:100:40 | After access to field Field | cflow.cs:100:31:100:40 | access to field Field | +| cflow.cs:100:31:100:40 | Before access to field Field | cflow.cs:100:13:100:41 | Before call to method WriteLine | | cflow.cs:100:31:100:40 | access to field Field | cflow.cs:100:31:100:34 | this access | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:99:13:99:25 | ... != ... | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:100:13:100:41 | call to method WriteLine | -| cflow.cs:102:13:102:16 | this access | cflow.cs:102:9:103:36 | if (...) ... | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:103:13:103:36 | After ...; | +| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:99:9:100:42 | After if (...) ... | +| cflow.cs:102:13:102:16 | this access | cflow.cs:102:13:102:21 | Before access to property Prop | +| cflow.cs:102:13:102:21 | After access to property Prop | cflow.cs:102:13:102:21 | access to property Prop | +| cflow.cs:102:13:102:21 | Before access to property Prop | cflow.cs:102:13:102:29 | Before ... != ... | | cflow.cs:102:13:102:21 | access to property Prop | cflow.cs:102:13:102:16 | this access | | cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:26:102:29 | null | -| cflow.cs:102:26:102:29 | null | cflow.cs:102:13:102:21 | access to property Prop | -| cflow.cs:103:13:103:35 | call to method WriteLine | cflow.cs:103:31:103:34 | access to property Prop | +| cflow.cs:102:13:102:29 | Before ... != ... | cflow.cs:102:9:103:36 | if (...) ... | +| cflow.cs:102:26:102:29 | null | cflow.cs:102:13:102:21 | After access to property Prop | +| cflow.cs:103:13:103:35 | After call to method WriteLine | cflow.cs:103:13:103:35 | call to method WriteLine | +| cflow.cs:103:13:103:35 | Before call to method WriteLine | cflow.cs:103:13:103:36 | ...; | +| cflow.cs:103:13:103:35 | call to method WriteLine | cflow.cs:103:31:103:34 | After access to property Prop | +| cflow.cs:103:13:103:36 | ...; | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:103:13:103:36 | After ...; | cflow.cs:103:13:103:35 | After call to method WriteLine | +| cflow.cs:103:31:103:34 | After access to property Prop | cflow.cs:103:31:103:34 | access to property Prop | +| cflow.cs:103:31:103:34 | Before access to property Prop | cflow.cs:103:13:103:35 | Before call to method WriteLine | | cflow.cs:103:31:103:34 | access to property Prop | cflow.cs:103:31:103:34 | this access | -| cflow.cs:103:31:103:34 | this access | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:106:18:106:19 | exit M4 | cflow.cs:106:18:106:19 | exit M4 (normal) | -| cflow.cs:106:18:106:19 | exit M4 (normal) | cflow.cs:116:9:116:28 | call to method WriteLine | -| cflow.cs:107:5:117:5 | {...} | cflow.cs:106:18:106:19 | enter M4 | +| cflow.cs:103:31:103:34 | this access | cflow.cs:103:31:103:34 | Before access to property Prop | +| cflow.cs:106:18:106:19 | Exit | cflow.cs:106:18:106:19 | Normal Exit | +| cflow.cs:106:18:106:19 | Normal Exit | cflow.cs:107:5:117:5 | After {...} | +| cflow.cs:107:5:117:5 | After {...} | cflow.cs:116:9:116:29 | After ...; | +| cflow.cs:107:5:117:5 | {...} | cflow.cs:106:18:106:19 | Entry | +| cflow.cs:108:9:115:9 | After if (...) ... | cflow.cs:108:13:108:21 | After ... != ... [false] | | cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:107:5:117:5 | {...} | -| cflow.cs:108:13:108:13 | access to parameter s | cflow.cs:108:9:115:9 | if (...) ... | +| cflow.cs:108:13:108:13 | access to parameter s | cflow.cs:108:13:108:21 | Before ... != ... | | cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:18:108:21 | null | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:108:13:108:21 | ... != ... | +| cflow.cs:108:13:108:21 | Before ... != ... | cflow.cs:108:9:115:9 | if (...) ... | | cflow.cs:108:18:108:21 | null | cflow.cs:108:13:108:13 | access to parameter s | +| cflow.cs:109:9:115:9 | {...} | cflow.cs:108:13:108:21 | After ... != ... [true] | | cflow.cs:110:13:113:13 | while (...) ... | cflow.cs:109:9:115:9 | {...} | +| cflow.cs:110:20:110:23 | After true [true] | cflow.cs:110:20:110:23 | true | +| cflow.cs:110:20:110:23 | true | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | +| cflow.cs:111:13:113:13 | After {...} | cflow.cs:112:17:112:37 | After ...; | +| cflow.cs:111:13:113:13 | {...} | cflow.cs:110:20:110:23 | After true [true] | +| cflow.cs:112:17:112:36 | After call to method WriteLine | cflow.cs:112:17:112:36 | call to method WriteLine | +| cflow.cs:112:17:112:36 | Before call to method WriteLine | cflow.cs:112:17:112:37 | ...; | | cflow.cs:112:17:112:36 | call to method WriteLine | cflow.cs:112:35:112:35 | access to parameter s | | cflow.cs:112:17:112:37 | ...; | cflow.cs:111:13:113:13 | {...} | -| cflow.cs:112:35:112:35 | access to parameter s | cflow.cs:112:17:112:37 | ...; | +| cflow.cs:112:17:112:37 | After ...; | cflow.cs:112:17:112:36 | After call to method WriteLine | +| cflow.cs:112:35:112:35 | access to parameter s | cflow.cs:112:17:112:36 | Before call to method WriteLine | +| cflow.cs:116:9:116:28 | After call to method WriteLine | cflow.cs:116:9:116:28 | call to method WriteLine | +| cflow.cs:116:9:116:28 | Before call to method WriteLine | cflow.cs:116:9:116:29 | ...; | | cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:116:27:116:27 | access to parameter s | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:108:13:108:21 | ... != ... | -| cflow.cs:116:27:116:27 | access to parameter s | cflow.cs:116:9:116:29 | ...; | -| cflow.cs:119:20:119:21 | exit M5 | cflow.cs:119:20:119:21 | exit M5 (normal) | -| cflow.cs:119:20:119:21 | exit M5 (normal) | cflow.cs:123:9:123:17 | return ...; | -| cflow.cs:120:5:124:5 | {...} | cflow.cs:119:20:119:21 | enter M5 | +| cflow.cs:116:9:116:29 | ...; | cflow.cs:108:9:115:9 | After if (...) ... | +| cflow.cs:116:9:116:29 | After ...; | cflow.cs:116:9:116:28 | After call to method WriteLine | +| cflow.cs:116:27:116:27 | access to parameter s | cflow.cs:116:9:116:28 | Before call to method WriteLine | +| cflow.cs:119:20:119:21 | Exit | cflow.cs:119:20:119:21 | Normal Exit | +| cflow.cs:119:20:119:21 | Normal Exit | cflow.cs:123:9:123:17 | return ...; | +| cflow.cs:120:5:124:5 | {...} | cflow.cs:119:20:119:21 | Entry | | cflow.cs:121:9:121:18 | ... ...; | cflow.cs:120:5:124:5 | {...} | +| cflow.cs:121:9:121:18 | After ... ...; | cflow.cs:121:13:121:17 | After String x = ... | +| cflow.cs:121:13:121:13 | access to local variable x | cflow.cs:121:13:121:17 | Before String x = ... | +| cflow.cs:121:13:121:17 | After String x = ... | cflow.cs:121:13:121:17 | String x = ... | +| cflow.cs:121:13:121:17 | Before String x = ... | cflow.cs:121:9:121:18 | ... ...; | | cflow.cs:121:13:121:17 | String x = ... | cflow.cs:121:17:121:17 | access to parameter s | -| cflow.cs:121:17:121:17 | access to parameter s | cflow.cs:121:9:121:18 | ... ...; | -| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:122:13:122:19 | ... + ... | -| cflow.cs:122:9:122:20 | ...; | cflow.cs:121:13:121:17 | String x = ... | -| cflow.cs:122:13:122:13 | access to local variable x | cflow.cs:122:9:122:20 | ...; | +| cflow.cs:121:17:121:17 | access to parameter s | cflow.cs:121:13:121:13 | access to local variable x | +| cflow.cs:122:9:122:9 | access to local variable x | cflow.cs:122:9:122:19 | Before ... = ... | +| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:122:13:122:19 | After ... + ... | +| cflow.cs:122:9:122:19 | After ... = ... | cflow.cs:122:9:122:19 | ... = ... | +| cflow.cs:122:9:122:19 | Before ... = ... | cflow.cs:122:9:122:20 | ...; | +| cflow.cs:122:9:122:20 | ...; | cflow.cs:121:9:121:18 | After ... ...; | +| cflow.cs:122:9:122:20 | After ...; | cflow.cs:122:9:122:19 | After ... = ... | +| cflow.cs:122:13:122:13 | access to local variable x | cflow.cs:122:13:122:19 | Before ... + ... | | cflow.cs:122:13:122:19 | ... + ... | cflow.cs:122:17:122:19 | " " | +| cflow.cs:122:13:122:19 | After ... + ... | cflow.cs:122:13:122:19 | ... + ... | +| cflow.cs:122:13:122:19 | Before ... + ... | cflow.cs:122:9:122:9 | access to local variable x | | cflow.cs:122:17:122:19 | " " | cflow.cs:122:13:122:13 | access to local variable x | +| cflow.cs:123:9:123:17 | Before return ...; | cflow.cs:122:9:122:20 | After ...; | | cflow.cs:123:9:123:17 | return ...; | cflow.cs:123:16:123:16 | access to local variable x | -| cflow.cs:123:16:123:16 | access to local variable x | cflow.cs:122:9:122:19 | ... = ... | -| cflow.cs:127:19:127:21 | exit get_Prop | cflow.cs:127:19:127:21 | exit get_Prop (normal) | -| cflow.cs:127:19:127:21 | exit get_Prop (normal) | cflow.cs:127:25:127:58 | return ...; | -| cflow.cs:127:23:127:60 | {...} | cflow.cs:127:19:127:21 | enter get_Prop | -| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:32:127:57 | ... ? ... : ... | +| cflow.cs:123:16:123:16 | access to local variable x | cflow.cs:123:9:123:17 | Before return ...; | +| cflow.cs:127:19:127:21 | Exit | cflow.cs:127:19:127:21 | Normal Exit | +| cflow.cs:127:19:127:21 | Normal Exit | cflow.cs:127:25:127:58 | return ...; | +| cflow.cs:127:23:127:60 | {...} | cflow.cs:127:19:127:21 | Entry | +| cflow.cs:127:25:127:58 | Before return ...; | cflow.cs:127:23:127:60 | {...} | +| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:32:127:57 | After ... ? ... : ... | +| cflow.cs:127:32:127:36 | After access to field Field | cflow.cs:127:32:127:36 | access to field Field | +| cflow.cs:127:32:127:36 | Before access to field Field | cflow.cs:127:32:127:44 | Before ... == ... | | cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:32:127:36 | this access | -| cflow.cs:127:32:127:36 | this access | cflow.cs:127:23:127:60 | {...} | +| cflow.cs:127:32:127:36 | this access | cflow.cs:127:32:127:36 | Before access to field Field | | cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:41:127:44 | null | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:48:127:49 | "" | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:53:127:57 | access to field Field | -| cflow.cs:127:41:127:44 | null | cflow.cs:127:32:127:36 | access to field Field | +| cflow.cs:127:32:127:44 | Before ... == ... | cflow.cs:127:32:127:57 | ... ? ... : ... | +| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:25:127:58 | Before return ...; | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:48:127:49 | "" | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:53:127:57 | After access to field Field | +| cflow.cs:127:41:127:44 | null | cflow.cs:127:32:127:36 | After access to field Field | +| cflow.cs:127:48:127:49 | "" | cflow.cs:127:32:127:44 | After ... == ... [true] | +| cflow.cs:127:53:127:57 | After access to field Field | cflow.cs:127:53:127:57 | access to field Field | +| cflow.cs:127:53:127:57 | Before access to field Field | cflow.cs:127:32:127:44 | After ... == ... [false] | | cflow.cs:127:53:127:57 | access to field Field | cflow.cs:127:53:127:57 | this access | -| cflow.cs:127:62:127:64 | exit set_Prop | cflow.cs:127:62:127:64 | exit set_Prop (normal) | -| cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:68:127:80 | ... = ... | -| cflow.cs:127:66:127:83 | {...} | cflow.cs:127:62:127:64 | enter set_Prop | -| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:76:127:80 | access to parameter value | -| cflow.cs:127:68:127:72 | this access | cflow.cs:127:68:127:81 | ...; | -| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:68:127:72 | access to field Field | +| cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | Before access to field Field | +| cflow.cs:127:62:127:64 | Exit | cflow.cs:127:62:127:64 | Normal Exit | +| cflow.cs:127:62:127:64 | Normal Exit | cflow.cs:127:66:127:83 | After {...} | +| cflow.cs:127:66:127:83 | After {...} | cflow.cs:127:68:127:81 | After ...; | +| cflow.cs:127:66:127:83 | {...} | cflow.cs:127:62:127:64 | Entry | +| cflow.cs:127:68:127:72 | After access to field Field | cflow.cs:127:68:127:72 | access to field Field | +| cflow.cs:127:68:127:72 | Before access to field Field | cflow.cs:127:68:127:80 | Before ... = ... | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:72 | this access | +| cflow.cs:127:68:127:72 | this access | cflow.cs:127:68:127:72 | Before access to field Field | +| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:76:127:80 | access to parameter value | +| cflow.cs:127:68:127:80 | After ... = ... | cflow.cs:127:68:127:80 | ... = ... | +| cflow.cs:127:68:127:80 | Before ... = ... | cflow.cs:127:68:127:81 | ...; | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:66:127:83 | {...} | -| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | this access | -| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to method | +| cflow.cs:127:68:127:81 | After ...; | cflow.cs:127:68:127:80 | After ... = ... | +| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | After access to field Field | +| cflow.cs:129:5:129:15 | After call to constructor Object | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | After call to method | cflow.cs:129:5:129:15 | call to method | +| cflow.cs:129:5:129:15 | Before call to constructor Object | cflow.cs:129:5:129:15 | After call to method | +| cflow.cs:129:5:129:15 | Before call to method | cflow.cs:129:5:129:15 | Entry | +| cflow.cs:129:5:129:15 | Exit | cflow.cs:129:5:129:15 | Normal Exit | +| cflow.cs:129:5:129:15 | Normal Exit | cflow.cs:130:5:132:5 | After {...} | +| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | Before 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 | 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 | access to field Field | cflow.cs:131:17:131:17 | access to parameter s | -| cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:18 | ...; | -| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:9:131:13 | access to field Field | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | Before call to method | +| cflow.cs:130:5:132:5 | After {...} | cflow.cs:131:9:131:18 | After ...; | +| cflow.cs:130:5:132:5 | {...} | cflow.cs:129:5:129:15 | After call to constructor Object | +| cflow.cs:131:9:131:13 | After access to field Field | cflow.cs:131:9:131:13 | access to field Field | +| cflow.cs:131:9:131:13 | Before access to field Field | cflow.cs:131:9:131:17 | Before ... = ... | +| 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 | Before access to field Field | +| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:17:131:17 | access to parameter s | +| cflow.cs:131:9:131:17 | After ... = ... | cflow.cs:131:9:131:17 | ... = ... | +| cflow.cs:131:9:131:17 | Before ... = ... | cflow.cs:131:9:131:18 | ...; | | cflow.cs:131:9:131:18 | ...; | cflow.cs:130:5:132:5 | {...} | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | this access | -| cflow.cs:134:5:134:15 | exit ControlFlow | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | -| cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:39:134:41 | {...} | -| cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:31:134:36 | ... + ... | +| cflow.cs:131:9:131:18 | After ...; | cflow.cs:131:9:131:17 | After ... = ... | +| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | After access to field Field | +| cflow.cs:134:5:134:15 | Exit | cflow.cs:134:5:134:15 | Normal Exit | +| cflow.cs:134:5:134:15 | Normal Exit | cflow.cs:134:39:134:41 | {...} | +| cflow.cs:134:26:134:29 | After call to constructor ControlFlow | cflow.cs:134:26:134:29 | call to constructor ControlFlow | +| cflow.cs:134:26:134:29 | Before call to constructor ControlFlow | cflow.cs:134:5:134:15 | Entry | +| cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:31:134:36 | After ... + ... | | cflow.cs:134:31:134:31 | (...) ... | cflow.cs:134:31:134:31 | access to parameter i | -| cflow.cs:134:31:134:31 | access to parameter i | cflow.cs:134:5:134:15 | enter ControlFlow | +| cflow.cs:134:31:134:31 | After (...) ... | cflow.cs:134:31:134:31 | (...) ... | +| cflow.cs:134:31:134:31 | Before (...) ... | cflow.cs:134:31:134:36 | Before ... + ... | +| cflow.cs:134:31:134:31 | access to parameter i | cflow.cs:134:31:134:31 | Before (...) ... | | cflow.cs:134:31:134:36 | ... + ... | cflow.cs:134:35:134:36 | "" | -| cflow.cs:134:35:134:36 | "" | cflow.cs:134:31:134:31 | (...) ... | -| cflow.cs:134:39:134:41 | {...} | cflow.cs:134:26:134:29 | call to constructor ControlFlow | -| cflow.cs:136:12:136:22 | exit ControlFlow | cflow.cs:136:12:136:22 | exit ControlFlow (normal) | -| cflow.cs:136:12:136:22 | exit ControlFlow (normal) | cflow.cs:136:40:136:42 | {...} | -| cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:33:136:37 | ... + ... | -| cflow.cs:136:33:136:33 | 0 | cflow.cs:136:12:136:22 | enter ControlFlow | +| cflow.cs:134:31:134:36 | After ... + ... | cflow.cs:134:31:134:36 | ... + ... | +| cflow.cs:134:31:134:36 | Before ... + ... | cflow.cs:134:26:134:29 | Before call to constructor ControlFlow | +| cflow.cs:134:35:134:36 | "" | cflow.cs:134:31:134:31 | After (...) ... | +| cflow.cs:134:39:134:41 | {...} | cflow.cs:134:26:134:29 | After call to constructor ControlFlow | +| cflow.cs:136:12:136:22 | Exit | cflow.cs:136:12:136:22 | Normal Exit | +| cflow.cs:136:12:136:22 | Normal Exit | cflow.cs:136:40:136:42 | {...} | +| cflow.cs:136:28:136:31 | After call to constructor ControlFlow | cflow.cs:136:28:136:31 | call to constructor ControlFlow | +| cflow.cs:136:28:136:31 | Before call to constructor ControlFlow | cflow.cs:136:12:136:22 | Entry | +| cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:33:136:37 | After ... + ... | +| cflow.cs:136:33:136:33 | 0 | cflow.cs:136:33:136:37 | Before ... + ... | | cflow.cs:136:33:136:37 | ... + ... | cflow.cs:136:37:136:37 | 1 | +| cflow.cs:136:33:136:37 | After ... + ... | cflow.cs:136:33:136:37 | ... + ... | +| cflow.cs:136:33:136:37 | Before ... + ... | cflow.cs:136:28:136:31 | Before call to constructor ControlFlow | | cflow.cs:136:37:136:37 | 1 | cflow.cs:136:33:136:33 | 0 | -| cflow.cs:136:40:136:42 | {...} | cflow.cs:136:28:136:31 | call to constructor ControlFlow | -| cflow.cs:138:40:138:40 | exit + | cflow.cs:138:40:138:40 | exit + (normal) | -| cflow.cs:138:40:138:40 | exit + (normal) | cflow.cs:141:9:141:17 | return ...; | -| cflow.cs:139:5:142:5 | {...} | cflow.cs:138:40:138:40 | enter + | +| cflow.cs:136:40:136:42 | {...} | cflow.cs:136:28:136:31 | After call to constructor ControlFlow | +| cflow.cs:138:40:138:40 | Exit | cflow.cs:138:40:138:40 | Normal Exit | +| cflow.cs:138:40:138:40 | Normal Exit | cflow.cs:141:9:141:17 | return ...; | +| cflow.cs:139:5:142:5 | {...} | cflow.cs:138:40:138:40 | Entry | +| cflow.cs:140:9:140:28 | After call to method WriteLine | cflow.cs:140:9:140:28 | call to method WriteLine | +| cflow.cs:140:9:140:28 | Before call to method WriteLine | cflow.cs:140:9:140:29 | ...; | | cflow.cs:140:9:140:28 | call to method WriteLine | cflow.cs:140:27:140:27 | access to parameter x | | cflow.cs:140:9:140:29 | ...; | cflow.cs:139:5:142:5 | {...} | -| cflow.cs:140:27:140:27 | access to parameter x | cflow.cs:140:9:140:29 | ...; | +| cflow.cs:140:9:140:29 | After ...; | cflow.cs:140:9:140:28 | After call to method WriteLine | +| cflow.cs:140:27:140:27 | access to parameter x | cflow.cs:140:9:140:28 | Before call to method WriteLine | +| cflow.cs:141:9:141:17 | Before return ...; | cflow.cs:140:9:140:29 | After ...; | | cflow.cs:141:9:141:17 | return ...; | cflow.cs:141:16:141:16 | access to parameter y | -| cflow.cs:141:16:141:16 | access to parameter y | cflow.cs:140:9:140:28 | call to method WriteLine | -| cflow.cs:144:33:144:35 | exit get_Item | cflow.cs:144:33:144:35 | exit get_Item (normal) | -| cflow.cs:144:33:144:35 | exit get_Item (normal) | cflow.cs:144:39:144:52 | return ...; | -| cflow.cs:144:37:144:54 | {...} | cflow.cs:144:33:144:35 | enter get_Item | -| cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:46:144:51 | ... + ... | +| cflow.cs:141:16:141:16 | access to parameter y | cflow.cs:141:9:141:17 | Before return ...; | +| cflow.cs:144:33:144:35 | Exit | cflow.cs:144:33:144:35 | Normal Exit | +| cflow.cs:144:33:144:35 | Normal Exit | cflow.cs:144:39:144:52 | return ...; | +| cflow.cs:144:37:144:54 | {...} | cflow.cs:144:33:144:35 | Entry | +| cflow.cs:144:39:144:52 | Before return ...; | cflow.cs:144:37:144:54 | {...} | +| cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:46:144:51 | After ... + ... | | cflow.cs:144:46:144:46 | (...) ... | cflow.cs:144:46:144:46 | access to parameter i | -| cflow.cs:144:46:144:46 | access to parameter i | cflow.cs:144:37:144:54 | {...} | +| cflow.cs:144:46:144:46 | After (...) ... | cflow.cs:144:46:144:46 | (...) ... | +| cflow.cs:144:46:144:46 | Before (...) ... | cflow.cs:144:46:144:51 | Before ... + ... | +| cflow.cs:144:46:144:46 | access to parameter i | cflow.cs:144:46:144:46 | Before (...) ... | | cflow.cs:144:46:144:51 | ... + ... | cflow.cs:144:50:144:51 | "" | -| cflow.cs:144:50:144:51 | "" | cflow.cs:144:46:144:46 | (...) ... | -| cflow.cs:144:56:144:58 | exit set_Item | cflow.cs:144:56:144:58 | exit set_Item (normal) | -| cflow.cs:144:56:144:58 | exit set_Item (normal) | cflow.cs:144:60:144:62 | {...} | -| cflow.cs:144:60:144:62 | {...} | cflow.cs:144:56:144:58 | enter set_Item | -| cflow.cs:146:10:146:12 | exit For | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:173:32:173:41 | ... < ... | -| cflow.cs:147:5:177:5 | {...} | cflow.cs:146:10:146:12 | enter For | +| cflow.cs:144:46:144:51 | After ... + ... | cflow.cs:144:46:144:51 | ... + ... | +| cflow.cs:144:46:144:51 | Before ... + ... | cflow.cs:144:39:144:52 | Before return ...; | +| cflow.cs:144:50:144:51 | "" | cflow.cs:144:46:144:46 | After (...) ... | +| cflow.cs:144:56:144:58 | Exit | cflow.cs:144:56:144:58 | Normal Exit | +| cflow.cs:144:56:144:58 | Normal Exit | cflow.cs:144:60:144:62 | {...} | +| cflow.cs:144:60:144:62 | {...} | cflow.cs:144:56:144:58 | Entry | +| cflow.cs:146:10:146:12 | Exit | cflow.cs:146:10:146:12 | Normal Exit | +| cflow.cs:146:10:146:12 | Normal Exit | cflow.cs:147:5:177:5 | After {...} | +| cflow.cs:147:5:177:5 | After {...} | cflow.cs:173:9:176:9 | After for (...;...;...) ... | +| cflow.cs:147:5:177:5 | {...} | cflow.cs:146:10:146:12 | Entry | | cflow.cs:148:9:148:18 | ... ...; | cflow.cs:147:5:177:5 | {...} | +| cflow.cs:148:9:148:18 | After ... ...; | cflow.cs:148:13:148:17 | After Int32 x = ... | +| cflow.cs:148:13:148:13 | access to local variable x | cflow.cs:148:13:148:17 | Before Int32 x = ... | +| cflow.cs:148:13:148:17 | After Int32 x = ... | cflow.cs:148:13:148:17 | Int32 x = ... | +| cflow.cs:148:13:148:17 | Before Int32 x = ... | cflow.cs:148:9:148:18 | ... ...; | | cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:148:17:148:17 | 0 | -| cflow.cs:148:17:148:17 | 0 | cflow.cs:148:9:148:18 | ... ...; | -| cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:148:13:148:17 | Int32 x = ... | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:9:150:33 | for (...;...;...) ... | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:24:149:26 | ++... | +| cflow.cs:148:17:148:17 | 0 | cflow.cs:148:13:148:13 | access to local variable x | +| cflow.cs:149:9:150:33 | After for (...;...;...) ... | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:149:9:150:33 | [LoopHeader] for (...;...;...) ... | cflow.cs:150:13:150:33 | After ...; | +| cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:148:9:148:18 | After ... ...; | +| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:16:149:21 | Before ... < ... | | cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:20:149:21 | 10 | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | ... < ... | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:9:150:33 | for (...;...;...) ... | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:24:149:26 | After ++... | | cflow.cs:149:20:149:21 | 10 | cflow.cs:149:16:149:16 | access to local variable x | | cflow.cs:149:24:149:26 | ++... | cflow.cs:149:26:149:26 | access to local variable x | -| cflow.cs:149:26:149:26 | access to local variable x | cflow.cs:150:13:150:32 | call to method WriteLine | +| cflow.cs:149:24:149:26 | After ++... | cflow.cs:149:24:149:26 | ++... | +| cflow.cs:149:24:149:26 | Before ++... | cflow.cs:149:9:150:33 | [LoopHeader] for (...;...;...) ... | +| cflow.cs:149:26:149:26 | access to local variable x | cflow.cs:149:24:149:26 | Before ++... | +| cflow.cs:150:13:150:32 | After call to method WriteLine | cflow.cs:150:13:150:32 | call to method WriteLine | +| cflow.cs:150:13:150:32 | Before call to method WriteLine | cflow.cs:150:13:150:33 | ...; | | cflow.cs:150:13:150:32 | call to method WriteLine | cflow.cs:150:31:150:31 | access to local variable x | -| cflow.cs:150:31:150:31 | access to local variable x | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:149:16:149:21 | ... < ... | +| cflow.cs:150:13:150:33 | ...; | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:150:13:150:33 | After ...; | cflow.cs:150:13:150:32 | After call to method WriteLine | +| cflow.cs:150:31:150:31 | access to local variable x | cflow.cs:150:13:150:32 | Before call to method WriteLine | +| cflow.cs:152:9:157:9 | After for (...;...;...) ... | cflow.cs:156:17:156:22 | break; | +| cflow.cs:152:9:157:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:153:9:157:9 | After {...} | +| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:149:9:150:33 | After for (...;...;...) ... | +| cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:152:18:152:20 | Before ...++ | | cflow.cs:152:18:152:20 | ...++ | cflow.cs:152:18:152:18 | access to local variable x | +| cflow.cs:152:18:152:20 | After ...++ | cflow.cs:152:18:152:20 | ...++ | +| cflow.cs:152:18:152:20 | Before ...++ | cflow.cs:152:9:157:9 | [LoopHeader] for (...;...;...) ... | +| cflow.cs:153:9:157:9 | After {...} | cflow.cs:155:13:156:22 | After if (...) ... | | cflow.cs:153:9:157:9 | {...} | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:152:18:152:20 | ...++ | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:152:18:152:20 | After ...++ | +| cflow.cs:154:13:154:32 | After call to method WriteLine | cflow.cs:154:13:154:32 | call to method WriteLine | +| cflow.cs:154:13:154:32 | Before call to method WriteLine | cflow.cs:154:13:154:33 | ...; | | cflow.cs:154:13:154:32 | call to method WriteLine | cflow.cs:154:31:154:31 | access to local variable x | | cflow.cs:154:13:154:33 | ...; | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:154:31:154:31 | access to local variable x | cflow.cs:154:13:154:33 | ...; | -| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:154:13:154:32 | call to method WriteLine | -| cflow.cs:155:17:155:17 | access to local variable x | cflow.cs:155:13:156:22 | if (...) ... | +| cflow.cs:154:13:154:33 | After ...; | cflow.cs:154:13:154:32 | After call to method WriteLine | +| cflow.cs:154:31:154:31 | access to local variable x | cflow.cs:154:13:154:32 | Before call to method WriteLine | +| cflow.cs:155:13:156:22 | After if (...) ... | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:154:13:154:33 | After ...; | +| cflow.cs:155:17:155:17 | access to local variable x | cflow.cs:155:17:155:22 | Before ... > ... | | cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:21:155:22 | 20 | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:155:17:155:22 | ... > ... | +| cflow.cs:155:17:155:22 | Before ... > ... | cflow.cs:155:13:156:22 | if (...) ... | | cflow.cs:155:21:155:22 | 20 | cflow.cs:155:17:155:17 | access to local variable x | -| cflow.cs:156:17:156:22 | break; | cflow.cs:155:17:155:22 | ... > ... | -| cflow.cs:159:9:165:9 | for (...;...;...) ... | cflow.cs:156:17:156:22 | break; | +| cflow.cs:156:17:156:22 | Before break; | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:156:17:156:22 | break; | cflow.cs:156:17:156:22 | Before break; | +| cflow.cs:159:9:165:9 | After for (...;...;...) ... | cflow.cs:164:17:164:22 | break; | +| cflow.cs:159:9:165:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:160:9:165:9 | After {...} | +| cflow.cs:159:9:165:9 | for (...;...;...) ... | cflow.cs:152:9:157:9 | After for (...;...;...) ... | +| cflow.cs:160:9:165:9 | After {...} | cflow.cs:163:13:164:22 | After if (...) ... | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:159:9:165:9 | [LoopHeader] for (...;...;...) ... | | cflow.cs:160:9:165:9 | {...} | cflow.cs:159:9:165:9 | for (...;...;...) ... | +| cflow.cs:161:13:161:32 | After call to method WriteLine | cflow.cs:161:13:161:32 | call to method WriteLine | +| cflow.cs:161:13:161:32 | Before call to method WriteLine | cflow.cs:161:13:161:33 | ...; | | cflow.cs:161:13:161:32 | call to method WriteLine | cflow.cs:161:31:161:31 | access to local variable x | | cflow.cs:161:13:161:33 | ...; | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:161:31:161:31 | access to local variable x | cflow.cs:161:13:161:33 | ...; | -| cflow.cs:162:13:162:13 | access to local variable x | cflow.cs:162:13:162:16 | ...; | +| cflow.cs:161:13:161:33 | After ...; | cflow.cs:161:13:161:32 | After call to method WriteLine | +| cflow.cs:161:31:161:31 | access to local variable x | cflow.cs:161:13:161:32 | Before call to method WriteLine | +| cflow.cs:162:13:162:13 | access to local variable x | cflow.cs:162:13:162:15 | Before ...++ | | cflow.cs:162:13:162:15 | ...++ | cflow.cs:162:13:162:13 | access to local variable x | -| cflow.cs:162:13:162:16 | ...; | cflow.cs:161:13:161:32 | call to method WriteLine | -| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:162:13:162:15 | ...++ | -| cflow.cs:163:17:163:17 | access to local variable x | cflow.cs:163:13:164:22 | if (...) ... | +| cflow.cs:162:13:162:15 | After ...++ | cflow.cs:162:13:162:15 | ...++ | +| cflow.cs:162:13:162:15 | Before ...++ | cflow.cs:162:13:162:16 | ...; | +| cflow.cs:162:13:162:16 | ...; | cflow.cs:161:13:161:33 | After ...; | +| cflow.cs:162:13:162:16 | After ...; | cflow.cs:162:13:162:15 | After ...++ | +| cflow.cs:163:13:164:22 | After if (...) ... | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:162:13:162:16 | After ...; | +| cflow.cs:163:17:163:17 | access to local variable x | cflow.cs:163:17:163:22 | Before ... > ... | | cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:21:163:22 | 30 | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:163:17:163:22 | ... > ... | +| cflow.cs:163:17:163:22 | Before ... > ... | cflow.cs:163:13:164:22 | if (...) ... | | cflow.cs:163:21:163:22 | 30 | cflow.cs:163:17:163:17 | access to local variable x | -| cflow.cs:164:17:164:22 | break; | cflow.cs:163:17:163:22 | ... > ... | -| cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:164:17:164:22 | break; | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:9:171:9 | for (...;...;...) ... | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:170:13:170:15 | ...++ | +| cflow.cs:164:17:164:22 | Before break; | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:164:17:164:22 | break; | cflow.cs:164:17:164:22 | Before break; | +| cflow.cs:167:9:171:9 | After for (...;...;...) ... | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:167:9:171:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:168:9:171:9 | After {...} | +| cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:159:9:165:9 | After for (...;...;...) ... | +| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:16:167:21 | Before ... < ... | | cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:20:167:21 | 40 | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | ... < ... | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:9:171:9 | [LoopHeader] for (...;...;...) ... | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:9:171:9 | for (...;...;...) ... | | cflow.cs:167:20:167:21 | 40 | cflow.cs:167:16:167:16 | access to local variable x | +| cflow.cs:168:9:171:9 | After {...} | cflow.cs:170:13:170:16 | After ...; | +| cflow.cs:168:9:171:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:169:13:169:32 | After call to method WriteLine | cflow.cs:169:13:169:32 | call to method WriteLine | +| cflow.cs:169:13:169:32 | Before call to method WriteLine | cflow.cs:169:13:169:33 | ...; | | cflow.cs:169:13:169:32 | call to method WriteLine | cflow.cs:169:31:169:31 | access to local variable x | | cflow.cs:169:13:169:33 | ...; | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:169:31:169:31 | access to local variable x | cflow.cs:169:13:169:33 | ...; | -| cflow.cs:170:13:170:13 | access to local variable x | cflow.cs:170:13:170:16 | ...; | +| cflow.cs:169:13:169:33 | After ...; | cflow.cs:169:13:169:32 | After call to method WriteLine | +| cflow.cs:169:31:169:31 | access to local variable x | cflow.cs:169:13:169:32 | Before call to method WriteLine | +| cflow.cs:170:13:170:13 | access to local variable x | cflow.cs:170:13:170:15 | Before ...++ | | cflow.cs:170:13:170:15 | ...++ | cflow.cs:170:13:170:13 | access to local variable x | -| cflow.cs:170:13:170:16 | ...; | cflow.cs:169:13:169:32 | call to method WriteLine | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:167:16:167:21 | ... < ... | +| cflow.cs:170:13:170:15 | After ...++ | cflow.cs:170:13:170:15 | ...++ | +| cflow.cs:170:13:170:15 | Before ...++ | cflow.cs:170:13:170:16 | ...; | +| cflow.cs:170:13:170:16 | ...; | cflow.cs:169:13:169:33 | After ...; | +| cflow.cs:170:13:170:16 | After ...; | cflow.cs:170:13:170:15 | After ...++ | +| cflow.cs:173:9:176:9 | After for (...;...;...) ... | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:173:9:176:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:174:9:176:9 | After {...} | +| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:167:9:171:9 | After for (...;...;...) ... | +| cflow.cs:173:18:173:18 | access to local variable i | cflow.cs:173:18:173:22 | Before Int32 i = ... | +| cflow.cs:173:18:173:22 | After Int32 i = ... | cflow.cs:173:18:173:22 | Int32 i = ... | +| cflow.cs:173:18:173:22 | Before Int32 i = ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | | cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:22:173:22 | 0 | -| cflow.cs:173:22:173:22 | 0 | cflow.cs:173:9:176:9 | for (...;...;...) ... | +| cflow.cs:173:22:173:22 | 0 | cflow.cs:173:18:173:18 | access to local variable i | +| cflow.cs:173:25:173:25 | access to local variable j | cflow.cs:173:25:173:29 | Before Int32 j = ... | +| cflow.cs:173:25:173:29 | After Int32 j = ... | cflow.cs:173:25:173:29 | Int32 j = ... | +| cflow.cs:173:25:173:29 | Before Int32 j = ... | cflow.cs:173:18:173:22 | After Int32 i = ... | | cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:29:173:29 | 0 | -| cflow.cs:173:29:173:29 | 0 | cflow.cs:173:18:173:22 | Int32 i = ... | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:25:173:29 | Int32 j = ... | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:49:173:51 | ...++ | +| cflow.cs:173:29:173:29 | 0 | cflow.cs:173:25:173:25 | access to local variable j | +| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:32:173:36 | Before ... + ... | | cflow.cs:173:32:173:36 | ... + ... | cflow.cs:173:36:173:36 | access to local variable j | +| cflow.cs:173:32:173:36 | After ... + ... | cflow.cs:173:32:173:36 | ... + ... | +| cflow.cs:173:32:173:36 | Before ... + ... | cflow.cs:173:32:173:41 | Before ... < ... | | cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:40:173:41 | 10 | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:173:32:173:41 | ... < ... | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:25:173:29 | After Int32 j = ... | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:49:173:51 | After ...++ | | cflow.cs:173:36:173:36 | access to local variable j | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:173:40:173:41 | 10 | cflow.cs:173:32:173:36 | ... + ... | -| cflow.cs:173:44:173:44 | access to local variable i | cflow.cs:175:13:175:36 | call to method WriteLine | +| cflow.cs:173:40:173:41 | 10 | cflow.cs:173:32:173:36 | After ... + ... | +| cflow.cs:173:44:173:44 | access to local variable i | cflow.cs:173:44:173:46 | Before ...++ | | cflow.cs:173:44:173:46 | ...++ | cflow.cs:173:44:173:44 | access to local variable i | -| cflow.cs:173:49:173:49 | access to local variable j | cflow.cs:173:44:173:46 | ...++ | +| cflow.cs:173:44:173:46 | After ...++ | cflow.cs:173:44:173:46 | ...++ | +| cflow.cs:173:44:173:46 | Before ...++ | cflow.cs:173:9:176:9 | [LoopHeader] for (...;...;...) ... | +| cflow.cs:173:49:173:49 | access to local variable j | cflow.cs:173:49:173:51 | Before ...++ | | cflow.cs:173:49:173:51 | ...++ | cflow.cs:173:49:173:49 | access to local variable j | -| cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:175:31:175:35 | ... + ... | +| cflow.cs:173:49:173:51 | After ...++ | cflow.cs:173:49:173:51 | ...++ | +| cflow.cs:173:49:173:51 | Before ...++ | cflow.cs:173:44:173:46 | After ...++ | +| cflow.cs:174:9:176:9 | After {...} | cflow.cs:175:13:175:37 | After ...; | +| cflow.cs:174:9:176:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:175:13:175:36 | After call to method WriteLine | cflow.cs:175:13:175:36 | call to method WriteLine | +| cflow.cs:175:13:175:36 | Before call to method WriteLine | cflow.cs:175:13:175:37 | ...; | +| cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:175:31:175:35 | After ... + ... | | cflow.cs:175:13:175:37 | ...; | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:175:31:175:31 | access to local variable i | cflow.cs:175:13:175:37 | ...; | +| cflow.cs:175:13:175:37 | After ...; | cflow.cs:175:13:175:36 | After call to method WriteLine | +| cflow.cs:175:31:175:31 | access to local variable i | cflow.cs:175:31:175:35 | Before ... + ... | | cflow.cs:175:31:175:35 | ... + ... | cflow.cs:175:35:175:35 | access to local variable j | +| cflow.cs:175:31:175:35 | After ... + ... | cflow.cs:175:31:175:35 | ... + ... | +| cflow.cs:175:31:175:35 | Before ... + ... | cflow.cs:175:13:175:36 | Before call to method WriteLine | | cflow.cs:175:35:175:35 | access to local variable j | cflow.cs:175:31:175:31 | access to local variable i | -| cflow.cs:179:10:179:16 | exit Lambdas | cflow.cs:179:10:179:16 | exit Lambdas (normal) | -| cflow.cs:179:10:179:16 | exit Lambdas (normal) | cflow.cs:182:24:182:61 | Func z = ... | -| cflow.cs:180:5:183:5 | {...} | cflow.cs:179:10:179:16 | enter Lambdas | +| cflow.cs:179:10:179:16 | Exit | cflow.cs:179:10:179:16 | Normal Exit | +| cflow.cs:179:10:179:16 | Normal Exit | cflow.cs:180:5:183:5 | After {...} | +| cflow.cs:180:5:183:5 | After {...} | cflow.cs:182:9:182:62 | After ... ...; | +| cflow.cs:180:5:183:5 | {...} | cflow.cs:179:10:179:16 | Entry | | cflow.cs:181:9:181:38 | ... ...; | cflow.cs:180:5:183:5 | {...} | +| cflow.cs:181:9:181:38 | After ... ...; | cflow.cs:181:24:181:37 | After Func y = ... | +| cflow.cs:181:24:181:24 | access to local variable y | cflow.cs:181:24:181:37 | Before Func y = ... | +| cflow.cs:181:24:181:37 | After Func y = ... | cflow.cs:181:24:181:37 | Func y = ... | +| cflow.cs:181:24:181:37 | Before Func y = ... | cflow.cs:181:9:181:38 | ... ...; | | cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:181:28:181:37 | (...) => ... | -| cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:181:9:181:38 | ... ...; | -| cflow.cs:181:28:181:37 | exit (...) => ... | cflow.cs:181:28:181:37 | exit (...) => ... (normal) | -| cflow.cs:181:28:181:37 | exit (...) => ... (normal) | cflow.cs:181:33:181:37 | ... + ... | -| cflow.cs:181:33:181:33 | access to parameter x | cflow.cs:181:28:181:37 | enter (...) => ... | +| cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:181:24:181:24 | access to local variable y | +| cflow.cs:181:28:181:37 | Exit | cflow.cs:181:28:181:37 | Normal Exit | +| cflow.cs:181:28:181:37 | Normal Exit | cflow.cs:181:33:181:37 | After ... + ... | +| cflow.cs:181:33:181:33 | access to parameter x | cflow.cs:181:33:181:37 | Before ... + ... | | cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:37:181:37 | 1 | +| cflow.cs:181:33:181:37 | After ... + ... | cflow.cs:181:33:181:37 | ... + ... | +| cflow.cs:181:33:181:37 | Before ... + ... | cflow.cs:181:28:181:37 | Entry | | cflow.cs:181:37:181:37 | 1 | cflow.cs:181:33:181:33 | access to parameter x | -| cflow.cs:182:9:182:62 | ... ...; | cflow.cs:181:24:181:37 | Func y = ... | +| cflow.cs:182:9:182:62 | ... ...; | cflow.cs:181:9:181:38 | After ... ...; | +| cflow.cs:182:9:182:62 | After ... ...; | cflow.cs:182:24:182:61 | After Func z = ... | +| cflow.cs:182:24:182:24 | access to local variable z | cflow.cs:182:24:182:61 | Before Func z = ... | +| cflow.cs:182:24:182:61 | After Func z = ... | cflow.cs:182:24:182:61 | Func z = ... | +| cflow.cs:182:24:182:61 | Before Func z = ... | cflow.cs:182:9:182:62 | ... ...; | | cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:182:28:182:61 | delegate(...) { ... } | -| cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:182:9:182:62 | ... ...; | -| cflow.cs:182:28:182:61 | exit delegate(...) { ... } | cflow.cs:182:28:182:61 | exit delegate(...) { ... } (normal) | -| cflow.cs:182:28:182:61 | exit delegate(...) { ... } (normal) | cflow.cs:182:47:182:59 | return ...; | -| cflow.cs:182:45:182:61 | {...} | cflow.cs:182:28:182:61 | enter delegate(...) { ... } | -| cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:54:182:58 | ... + ... | -| cflow.cs:182:54:182:54 | access to parameter x | cflow.cs:182:45:182:61 | {...} | +| cflow.cs:182:28:182:61 | Exit | cflow.cs:182:28:182:61 | Normal Exit | +| cflow.cs:182:28:182:61 | Normal Exit | cflow.cs:182:47:182:59 | return ...; | +| cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:182:24:182:24 | access to local variable z | +| cflow.cs:182:45:182:61 | {...} | cflow.cs:182:28:182:61 | Entry | +| cflow.cs:182:47:182:59 | Before return ...; | cflow.cs:182:45:182:61 | {...} | +| cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:54:182:58 | After ... + ... | +| cflow.cs:182:54:182:54 | access to parameter x | cflow.cs:182:54:182:58 | Before ... + ... | | cflow.cs:182:54:182:58 | ... + ... | cflow.cs:182:58:182:58 | 1 | +| cflow.cs:182:54:182:58 | After ... + ... | cflow.cs:182:54:182:58 | ... + ... | +| cflow.cs:182:54:182:58 | Before ... + ... | cflow.cs:182:47:182:59 | Before return ...; | | cflow.cs:182:58:182:58 | 1 | cflow.cs:182:54:182:54 | access to parameter x | -| cflow.cs:185:10:185:18 | exit LogicalOr | cflow.cs:185:10:185:18 | exit LogicalOr (normal) | -| cflow.cs:185:10:185:18 | exit LogicalOr (normal) | cflow.cs:190:13:190:51 | call to method WriteLine | -| cflow.cs:186:5:191:5 | {...} | cflow.cs:185:10:185:18 | enter LogicalOr | +| cflow.cs:185:10:185:18 | Exit | cflow.cs:185:10:185:18 | Normal Exit | +| cflow.cs:185:10:185:18 | Normal Exit | cflow.cs:186:5:191:5 | After {...} | +| cflow.cs:186:5:191:5 | After {...} | cflow.cs:187:9:190:52 | After if (...) ... | +| cflow.cs:186:5:191:5 | {...} | cflow.cs:185:10:185:18 | Entry | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:188:13:188:55 | After ...; | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:190:13:190:52 | After ...; | | cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:186:5:191:5 | {...} | -| cflow.cs:187:13:187:13 | 1 | cflow.cs:187:9:190:52 | if (...) ... | +| cflow.cs:187:13:187:13 | 1 | cflow.cs:187:13:187:18 | Before ... == ... | | cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:18:187:18 | 2 | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:23:187:28 | ... == ... | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:34:187:49 | ... && ... | +| cflow.cs:187:13:187:18 | Before ... == ... | cflow.cs:187:13:187:28 | ... \|\| ... | +| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | +| cflow.cs:187:13:187:28 | After ... \|\| ... [false] | cflow.cs:187:23:187:28 | After ... == ... [false] | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:9:190:52 | if (...) ... | +| cflow.cs:187:13:187:50 | After ... \|\| ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:34:187:49 | After ... && ... [true] | | cflow.cs:187:18:187:18 | 2 | cflow.cs:187:13:187:13 | 1 | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:13:187:18 | ... == ... | +| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:23:187:28 | Before ... == ... | | cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:28:187:28 | 3 | +| cflow.cs:187:23:187:28 | Before ... == ... | cflow.cs:187:13:187:18 | After ... == ... [false] | | cflow.cs:187:28:187:28 | 3 | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:13:187:28 | ... \|\| ... | +| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:39 | Before ... == ... | | cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:39:187:39 | 3 | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:39 | ... == ... | +| cflow.cs:187:34:187:39 | Before ... == ... | cflow.cs:187:34:187:49 | ... && ... | +| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:13:187:28 | After ... \|\| ... [false] | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:34:187:49 | After ... && ... [true] | cflow.cs:187:44:187:49 | After ... == ... [true] | | cflow.cs:187:39:187:39 | 3 | cflow.cs:187:34:187:34 | 1 | +| cflow.cs:187:44:187:44 | 3 | cflow.cs:187:44:187:49 | Before ... == ... | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:49:187:49 | 1 | +| cflow.cs:187:44:187:49 | Before ... == ... | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:187:49:187:49 | 1 | cflow.cs:187:44:187:44 | 3 | +| cflow.cs:188:13:188:54 | After call to method WriteLine | cflow.cs:188:13:188:54 | call to method WriteLine | +| cflow.cs:188:13:188:54 | Before call to method WriteLine | cflow.cs:188:13:188:55 | ...; | +| cflow.cs:188:13:188:54 | call to method WriteLine | cflow.cs:188:31:188:53 | "This shouldn't happen" | +| cflow.cs:188:13:188:55 | ...; | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | +| cflow.cs:188:13:188:55 | After ...; | cflow.cs:188:13:188:54 | After call to method WriteLine | +| cflow.cs:188:31:188:53 | "This shouldn't happen" | cflow.cs:188:13:188:54 | Before call to method WriteLine | +| cflow.cs:190:13:190:51 | After call to method WriteLine | cflow.cs:190:13:190:51 | call to method WriteLine | +| cflow.cs:190:13:190:51 | Before call to method WriteLine | cflow.cs:190:13:190:52 | ...; | | cflow.cs:190:13:190:51 | call to method WriteLine | cflow.cs:190:31:190:50 | "This should happen" | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:190:31:190:50 | "This should happen" | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:193:10:193:17 | exit Booleans (abnormal) | cflow.cs:203:17:203:38 | throw ...; | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:194:5:206:5 | {...} | cflow.cs:193:10:193:17 | enter Booleans | +| cflow.cs:190:13:190:52 | ...; | cflow.cs:187:13:187:50 | After ... \|\| ... [false] | +| cflow.cs:190:13:190:52 | After ...; | cflow.cs:190:13:190:51 | After call to method WriteLine | +| cflow.cs:190:31:190:50 | "This should happen" | cflow.cs:190:13:190:51 | Before call to method WriteLine | +| cflow.cs:193:10:193:17 | Exceptional Exit | cflow.cs:203:17:203:38 | throw ...; | +| cflow.cs:193:10:193:17 | Normal Exit | cflow.cs:194:5:206:5 | After {...} | +| cflow.cs:194:5:206:5 | After {...} | cflow.cs:200:9:205:9 | After if (...) ... | +| cflow.cs:194:5:206:5 | {...} | cflow.cs:193:10:193:17 | Entry | | cflow.cs:195:9:195:57 | ... ...; | cflow.cs:194:5:206:5 | {...} | -| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:195:17:195:56 | ... && ... | +| cflow.cs:195:9:195:57 | After ... ...; | cflow.cs:195:13:195:56 | After Boolean b = ... | +| cflow.cs:195:13:195:13 | access to local variable b | cflow.cs:195:13:195:56 | Before Boolean b = ... | +| cflow.cs:195:13:195:56 | After Boolean b = ... | cflow.cs:195:13:195:56 | Boolean b = ... | +| cflow.cs:195:13:195:56 | Before Boolean b = ... | cflow.cs:195:9:195:57 | ... ...; | +| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:195:17:195:56 | After ... && ... | +| cflow.cs:195:17:195:21 | After access to field Field | cflow.cs:195:17:195:21 | access to field Field | +| cflow.cs:195:17:195:21 | Before access to field Field | cflow.cs:195:17:195:28 | Before access to property Length | | cflow.cs:195:17:195:21 | access to field Field | cflow.cs:195:17:195:21 | this access | -| cflow.cs:195:17:195:21 | this access | cflow.cs:195:9:195:57 | ... ...; | -| cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:17:195:21 | access to field Field | +| cflow.cs:195:17:195:21 | this access | cflow.cs:195:17:195:21 | Before access to field Field | +| cflow.cs:195:17:195:28 | After access to property Length | cflow.cs:195:17:195:28 | access to property Length | +| cflow.cs:195:17:195:28 | Before access to property Length | cflow.cs:195:17:195:32 | Before ... > ... | +| cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:17:195:21 | After access to field Field | | cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:32:195:32 | 0 | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:32 | ... > ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:37:195:56 | !... | -| cflow.cs:195:32:195:32 | 0 | cflow.cs:195:17:195:28 | access to property Length | -| cflow.cs:195:37:195:56 | !... | cflow.cs:195:39:195:55 | ... == ... | +| cflow.cs:195:17:195:32 | Before ... > ... | cflow.cs:195:17:195:56 | ... && ... | +| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:13:195:13 | access to local variable b | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:37:195:56 | After !... | +| cflow.cs:195:32:195:32 | 0 | cflow.cs:195:17:195:28 | After access to property Length | +| cflow.cs:195:37:195:56 | !... | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:195:37:195:56 | After !... | cflow.cs:195:39:195:55 | After ... == ... | +| cflow.cs:195:39:195:43 | After access to field Field | cflow.cs:195:39:195:43 | access to field Field | +| cflow.cs:195:39:195:43 | Before access to field Field | cflow.cs:195:39:195:50 | Before access to property Length | | cflow.cs:195:39:195:43 | access to field Field | cflow.cs:195:39:195:43 | this access | -| cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:39:195:43 | access to field Field | +| cflow.cs:195:39:195:43 | this access | cflow.cs:195:39:195:43 | Before access to field Field | +| cflow.cs:195:39:195:50 | After access to property Length | cflow.cs:195:39:195:50 | access to property Length | +| cflow.cs:195:39:195:50 | Before access to property Length | cflow.cs:195:39:195:55 | Before ... == ... | +| cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:39:195:43 | After access to field Field | | cflow.cs:195:39:195:55 | ... == ... | cflow.cs:195:55:195:55 | 1 | -| cflow.cs:195:55:195:55 | 1 | cflow.cs:195:39:195:50 | access to property Length | -| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:195:13:195:56 | Boolean b = ... | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | +| cflow.cs:195:39:195:55 | After ... == ... | cflow.cs:195:39:195:55 | ... == ... | +| cflow.cs:195:39:195:55 | Before ... == ... | cflow.cs:195:37:195:56 | !... | +| cflow.cs:195:55:195:55 | 1 | cflow.cs:195:39:195:50 | After access to property Length | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:197:13:197:47 | After !... [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:198:13:198:49 | After ...; | +| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:195:9:195:57 | After ... ...; | +| cflow.cs:197:13:197:47 | !... | cflow.cs:197:9:198:49 | if (...) ... | +| cflow.cs:197:13:197:47 | After !... [false] | cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | +| cflow.cs:197:13:197:47 | After !... [true] | cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | +| cflow.cs:197:15:197:19 | After access to field Field | cflow.cs:197:15:197:19 | access to field Field | +| cflow.cs:197:15:197:19 | Before access to field Field | cflow.cs:197:15:197:26 | Before access to property Length | | cflow.cs:197:15:197:19 | access to field Field | cflow.cs:197:15:197:19 | this access | -| cflow.cs:197:15:197:19 | this access | cflow.cs:197:9:198:49 | if (...) ... | -| cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:15:197:19 | access to field Field | +| cflow.cs:197:15:197:19 | this access | cflow.cs:197:15:197:19 | Before access to field Field | +| cflow.cs:197:15:197:26 | After access to property Length | cflow.cs:197:15:197:26 | access to property Length | +| cflow.cs:197:15:197:26 | Before access to property Length | cflow.cs:197:15:197:31 | Before ... == ... | +| cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:15:197:19 | After access to field Field | | cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:31:197:31 | 0 | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:43:197:46 | true | -| cflow.cs:197:31:197:31 | 0 | cflow.cs:197:15:197:26 | access to property Length | -| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:197:13:197:47 | [true] !... | +| cflow.cs:197:15:197:31 | Before ... == ... | cflow.cs:197:15:197:46 | ... ? ... : ... | +| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:197:13:197:47 | !... | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | cflow.cs:197:35:197:39 | After false [false] | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | cflow.cs:197:43:197:46 | After true [true] | +| cflow.cs:197:31:197:31 | 0 | cflow.cs:197:15:197:26 | After access to property Length | +| cflow.cs:197:35:197:39 | After false [false] | cflow.cs:197:35:197:39 | false | +| cflow.cs:197:35:197:39 | false | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:197:43:197:46 | After true [true] | cflow.cs:197:43:197:46 | true | +| cflow.cs:197:43:197:46 | true | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:198:13:198:13 | access to local variable b | cflow.cs:198:13:198:48 | Before ... = ... | +| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:198:13:198:48 | After ... = ... | cflow.cs:198:13:198:48 | ... = ... | +| cflow.cs:198:13:198:48 | Before ... = ... | cflow.cs:198:13:198:49 | ...; | +| cflow.cs:198:13:198:49 | ...; | cflow.cs:197:13:197:47 | After !... [true] | +| cflow.cs:198:13:198:49 | After ...; | cflow.cs:198:13:198:48 | After ... = ... | +| cflow.cs:198:17:198:21 | After access to field Field | cflow.cs:198:17:198:21 | access to field Field | +| cflow.cs:198:17:198:21 | Before access to field Field | cflow.cs:198:17:198:28 | Before access to property Length | | cflow.cs:198:17:198:21 | access to field Field | cflow.cs:198:17:198:21 | this access | -| cflow.cs:198:17:198:21 | this access | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:17:198:21 | access to field Field | +| cflow.cs:198:17:198:21 | this access | cflow.cs:198:17:198:21 | Before access to field Field | +| cflow.cs:198:17:198:28 | After access to property Length | cflow.cs:198:17:198:28 | access to property Length | +| cflow.cs:198:17:198:28 | Before access to property Length | cflow.cs:198:17:198:33 | Before ... == ... | +| cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:17:198:21 | After access to field Field | | cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:33:198:33 | 0 | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:198:33:198:33 | 0 | cflow.cs:198:17:198:28 | access to property Length | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:198:13:198:48 | ... = ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:15:200:31 | ... == ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:37:200:62 | [false] !... | +| cflow.cs:198:17:198:33 | Before ... == ... | cflow.cs:198:17:198:48 | ... ? ... : ... | +| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:13:198:13 | access to local variable b | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:37:198:41 | false | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:45:198:48 | true | +| cflow.cs:198:33:198:33 | 0 | cflow.cs:198:17:198:28 | After access to property Length | +| cflow.cs:198:37:198:41 | false | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:198:45:198:48 | true | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:200:9:205:9 | After if (...) ... | cflow.cs:200:13:200:62 | After ... \|\| ... [false] | +| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:9:198:49 | After if (...) ... | +| cflow.cs:200:13:200:32 | !... | cflow.cs:200:13:200:62 | ... \|\| ... | +| cflow.cs:200:13:200:32 | After !... [false] | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:200:13:200:32 | After !... [true] | cflow.cs:200:15:200:31 | After ... == ... [false] | +| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:200:9:205:9 | if (...) ... | +| cflow.cs:200:13:200:62 | After ... \|\| ... [false] | cflow.cs:200:37:200:62 | After !... [false] | +| cflow.cs:200:15:200:19 | After access to field Field | cflow.cs:200:15:200:19 | access to field Field | +| cflow.cs:200:15:200:19 | Before access to field Field | cflow.cs:200:15:200:26 | Before access to property Length | | cflow.cs:200:15:200:19 | access to field Field | cflow.cs:200:15:200:19 | this access | -| cflow.cs:200:15:200:19 | this access | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:15:200:19 | access to field Field | +| cflow.cs:200:15:200:19 | this access | cflow.cs:200:15:200:19 | Before access to field Field | +| cflow.cs:200:15:200:26 | After access to property Length | cflow.cs:200:15:200:26 | access to property Length | +| cflow.cs:200:15:200:26 | Before access to property Length | cflow.cs:200:15:200:31 | Before ... == ... | +| cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:15:200:19 | After access to field Field | | cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:31:200:31 | 0 | -| cflow.cs:200:31:200:31 | 0 | cflow.cs:200:15:200:26 | access to property Length | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:40:200:61 | [false] ... && ... | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:15:200:31 | ... == ... | +| cflow.cs:200:15:200:31 | Before ... == ... | cflow.cs:200:13:200:32 | !... | +| cflow.cs:200:31:200:31 | 0 | cflow.cs:200:15:200:26 | After access to property Length | +| cflow.cs:200:37:200:62 | !... | cflow.cs:200:13:200:32 | After !... [false] | +| cflow.cs:200:37:200:62 | After !... [false] | cflow.cs:200:38:200:62 | After !... [true] | +| cflow.cs:200:37:200:62 | After !... [true] | cflow.cs:200:38:200:62 | After !... [false] | +| cflow.cs:200:38:200:62 | !... | cflow.cs:200:37:200:62 | !... | +| cflow.cs:200:38:200:62 | After !... [false] | cflow.cs:200:40:200:61 | After ... && ... [true] | +| cflow.cs:200:38:200:62 | After !... [true] | cflow.cs:200:40:200:61 | After ... && ... [false] | +| cflow.cs:200:40:200:44 | After access to field Field | cflow.cs:200:40:200:44 | access to field Field | +| cflow.cs:200:40:200:44 | Before access to field Field | cflow.cs:200:40:200:51 | Before access to property Length | | cflow.cs:200:40:200:44 | access to field Field | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:40:200:44 | access to field Field | +| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:44 | Before access to field Field | +| cflow.cs:200:40:200:51 | After access to property Length | cflow.cs:200:40:200:51 | access to property Length | +| cflow.cs:200:40:200:51 | Before access to property Length | cflow.cs:200:40:200:56 | Before ... == ... | +| cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:40:200:44 | After access to field Field | | cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:56:200:56 | 1 | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:40:200:56 | ... == ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:56:200:56 | 1 | cflow.cs:200:40:200:51 | access to property Length | +| cflow.cs:200:40:200:56 | Before ... == ... | cflow.cs:200:40:200:61 | ... && ... | +| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:200:38:200:62 | !... | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:200:40:200:61 | After ... && ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:200:56:200:56 | 1 | cflow.cs:200:40:200:51 | After access to property Length | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:200:61:200:61 | access to local variable b | +| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:201:9:205:9 | {...} | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | | cflow.cs:202:13:204:13 | {...} | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:203:23:203:37 | object creation of type Exception | -| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:202:13:204:13 | {...} | -| cflow.cs:208:10:208:11 | exit Do | cflow.cs:208:10:208:11 | exit Do (normal) | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:219:17:219:22 | break; | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:221:18:221:34 | ... < ... | -| cflow.cs:209:5:222:5 | {...} | cflow.cs:208:10:208:11 | enter Do | +| cflow.cs:203:17:203:38 | Before throw ...; | cflow.cs:202:13:204:13 | {...} | +| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:203:23:203:37 | After object creation of type Exception | +| cflow.cs:203:23:203:37 | After object creation of type Exception | cflow.cs:203:23:203:37 | object creation of type Exception | +| cflow.cs:203:23:203:37 | Before object creation of type Exception | cflow.cs:203:17:203:38 | Before throw ...; | +| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:23:203:37 | Before object creation of type Exception | +| cflow.cs:208:10:208:11 | Exit | cflow.cs:208:10:208:11 | Normal Exit | +| cflow.cs:208:10:208:11 | Normal Exit | cflow.cs:209:5:222:5 | After {...} | +| cflow.cs:209:5:222:5 | After {...} | cflow.cs:210:9:221:36 | After do ... while (...); | +| cflow.cs:209:5:222:5 | {...} | cflow.cs:208:10:208:11 | Entry | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:219:17:219:22 | break; | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:211:9:221:9 | After {...} | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:215:17:215:25 | continue; | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:209:5:222:5 | {...} | +| cflow.cs:211:9:221:9 | After {...} | cflow.cs:217:13:220:13 | After if (...) ... | | cflow.cs:211:9:221:9 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:212:13:212:17 | After access to field Field | cflow.cs:212:13:212:17 | access to field Field | +| cflow.cs:212:13:212:17 | Before access to field Field | cflow.cs:212:13:212:24 | Before ... += ... | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | this access | -| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:25 | ...; | +| cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | Before access to field Field | | cflow.cs:212:13:212:24 | ... += ... | cflow.cs:212:22:212:24 | "a" | +| cflow.cs:212:13:212:24 | After ... += ... | cflow.cs:212:13:212:24 | ... += ... | +| cflow.cs:212:13:212:24 | Before ... += ... | cflow.cs:212:13:212:25 | ...; | | cflow.cs:212:13:212:25 | ...; | cflow.cs:211:9:221:9 | {...} | -| cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:17 | access to field Field | -| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:212:13:212:24 | ... += ... | +| cflow.cs:212:13:212:25 | After ...; | cflow.cs:212:13:212:24 | After ... += ... | +| cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:17 | After access to field Field | +| cflow.cs:213:13:216:13 | After if (...) ... | cflow.cs:213:17:213:32 | After ... > ... [false] | +| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:212:13:212:25 | After ...; | +| cflow.cs:213:17:213:21 | After access to field Field | cflow.cs:213:17:213:21 | access to field Field | +| cflow.cs:213:17:213:21 | Before access to field Field | cflow.cs:213:17:213:28 | Before access to property Length | | cflow.cs:213:17:213:21 | access to field Field | cflow.cs:213:17:213:21 | this access | -| cflow.cs:213:17:213:21 | this access | cflow.cs:213:13:216:13 | if (...) ... | -| cflow.cs:213:17:213:28 | access to property Length | cflow.cs:213:17:213:21 | access to field Field | +| cflow.cs:213:17:213:21 | this access | cflow.cs:213:17:213:21 | Before access to field Field | +| cflow.cs:213:17:213:28 | After access to property Length | cflow.cs:213:17:213:28 | access to property Length | +| cflow.cs:213:17:213:28 | Before access to property Length | cflow.cs:213:17:213:32 | Before ... > ... | +| cflow.cs:213:17:213:28 | access to property Length | cflow.cs:213:17:213:21 | After access to field Field | | cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:32:213:32 | 0 | -| cflow.cs:213:32:213:32 | 0 | cflow.cs:213:17:213:28 | access to property Length | -| cflow.cs:215:17:215:25 | continue; | cflow.cs:214:13:216:13 | {...} | +| cflow.cs:213:17:213:32 | Before ... > ... | cflow.cs:213:13:216:13 | if (...) ... | +| cflow.cs:213:32:213:32 | 0 | cflow.cs:213:17:213:28 | After access to property Length | +| cflow.cs:214:13:216:13 | {...} | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:215:17:215:25 | Before continue; | cflow.cs:214:13:216:13 | {...} | +| cflow.cs:215:17:215:25 | continue; | cflow.cs:215:17:215:25 | Before continue; | +| cflow.cs:217:13:220:13 | After if (...) ... | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:213:13:216:13 | After if (...) ... | +| cflow.cs:217:17:217:21 | After access to field Field | cflow.cs:217:17:217:21 | access to field Field | +| cflow.cs:217:17:217:21 | Before access to field Field | cflow.cs:217:17:217:28 | Before access to property Length | | cflow.cs:217:17:217:21 | access to field Field | cflow.cs:217:17:217:21 | this access | -| cflow.cs:217:17:217:21 | this access | cflow.cs:217:13:220:13 | if (...) ... | -| cflow.cs:217:17:217:28 | access to property Length | cflow.cs:217:17:217:21 | access to field Field | +| cflow.cs:217:17:217:21 | this access | cflow.cs:217:17:217:21 | Before access to field Field | +| cflow.cs:217:17:217:28 | After access to property Length | cflow.cs:217:17:217:28 | access to property Length | +| cflow.cs:217:17:217:28 | Before access to property Length | cflow.cs:217:17:217:32 | Before ... < ... | +| cflow.cs:217:17:217:28 | access to property Length | cflow.cs:217:17:217:21 | After access to field Field | | cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:32:217:32 | 0 | -| cflow.cs:217:32:217:32 | 0 | cflow.cs:217:17:217:28 | access to property Length | -| cflow.cs:219:17:219:22 | break; | cflow.cs:218:13:220:13 | {...} | +| cflow.cs:217:17:217:32 | Before ... < ... | cflow.cs:217:13:220:13 | if (...) ... | +| cflow.cs:217:32:217:32 | 0 | cflow.cs:217:17:217:28 | After access to property Length | +| cflow.cs:218:13:220:13 | {...} | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:219:17:219:22 | Before break; | cflow.cs:218:13:220:13 | {...} | +| cflow.cs:219:17:219:22 | break; | cflow.cs:219:17:219:22 | Before break; | +| cflow.cs:221:18:221:22 | After access to field Field | cflow.cs:221:18:221:22 | access to field Field | +| cflow.cs:221:18:221:22 | Before access to field Field | cflow.cs:221:18:221:29 | Before access to property Length | | cflow.cs:221:18:221:22 | access to field Field | cflow.cs:221:18:221:22 | this access | -| cflow.cs:221:18:221:22 | this access | cflow.cs:215:17:215:25 | continue; | -| cflow.cs:221:18:221:29 | access to property Length | cflow.cs:221:18:221:22 | access to field Field | +| cflow.cs:221:18:221:22 | this access | cflow.cs:221:18:221:22 | Before access to field Field | +| cflow.cs:221:18:221:29 | After access to property Length | cflow.cs:221:18:221:29 | access to property Length | +| cflow.cs:221:18:221:29 | Before access to property Length | cflow.cs:221:18:221:34 | Before ... < ... | +| cflow.cs:221:18:221:29 | access to property Length | cflow.cs:221:18:221:22 | After access to field Field | | cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:33:221:34 | 10 | -| cflow.cs:221:33:221:34 | 10 | cflow.cs:221:18:221:29 | access to property Length | -| cflow.cs:224:10:224:16 | exit Foreach | cflow.cs:224:10:224:16 | exit Foreach (normal) | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:235:17:235:22 | break; | -| cflow.cs:225:5:238:5 | {...} | cflow.cs:224:10:224:16 | enter Foreach | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:27:226:64 | call to method Repeat | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:231:17:231:25 | continue; | +| cflow.cs:221:18:221:34 | Before ... < ... | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | +| cflow.cs:221:33:221:34 | 10 | cflow.cs:221:18:221:29 | After access to property Length | +| cflow.cs:224:10:224:16 | Exit | cflow.cs:224:10:224:16 | Normal Exit | +| cflow.cs:224:10:224:16 | Normal Exit | cflow.cs:225:5:238:5 | After {...} | +| cflow.cs:225:5:238:5 | After {...} | cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | +| cflow.cs:225:5:238:5 | {...} | cflow.cs:224:10:224:16 | Entry | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:235:17:235:22 | break; | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:227:9:237:9 | After {...} | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:231:17:231:25 | continue; | +| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:225:5:238:5 | {...} | +| cflow.cs:226:22:226:22 | String x | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | +| cflow.cs:226:27:226:64 | Before call to method Repeat | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | | cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:62:226:63 | 10 | -| cflow.cs:226:57:226:59 | "a" | cflow.cs:225:5:238:5 | {...} | +| cflow.cs:226:57:226:59 | "a" | cflow.cs:226:27:226:64 | Before call to method Repeat | | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:57:226:59 | "a" | +| cflow.cs:227:9:237:9 | After {...} | cflow.cs:233:13:236:13 | After if (...) ... | | cflow.cs:227:9:237:9 | {...} | cflow.cs:226:22:226:22 | String x | +| cflow.cs:228:13:228:17 | After access to field Field | cflow.cs:228:13:228:17 | access to field Field | +| cflow.cs:228:13:228:17 | Before access to field Field | cflow.cs:228:13:228:22 | Before ... += ... | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | this access | -| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:23 | ...; | +| cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | Before access to field Field | | cflow.cs:228:13:228:22 | ... += ... | cflow.cs:228:22:228:22 | access to local variable x | +| cflow.cs:228:13:228:22 | After ... += ... | cflow.cs:228:13:228:22 | ... += ... | +| cflow.cs:228:13:228:22 | Before ... += ... | cflow.cs:228:13:228:23 | ...; | | cflow.cs:228:13:228:23 | ...; | cflow.cs:227:9:237:9 | {...} | -| cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:17 | access to field Field | -| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:228:13:228:22 | ... += ... | +| cflow.cs:228:13:228:23 | After ...; | cflow.cs:228:13:228:22 | After ... += ... | +| cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:17 | After access to field Field | +| cflow.cs:229:13:232:13 | After if (...) ... | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:228:13:228:23 | After ...; | +| cflow.cs:229:17:229:21 | After access to field Field | cflow.cs:229:17:229:21 | access to field Field | +| cflow.cs:229:17:229:21 | Before access to field Field | cflow.cs:229:17:229:28 | Before access to property Length | | cflow.cs:229:17:229:21 | access to field Field | cflow.cs:229:17:229:21 | this access | -| cflow.cs:229:17:229:21 | this access | cflow.cs:229:13:232:13 | if (...) ... | -| cflow.cs:229:17:229:28 | access to property Length | cflow.cs:229:17:229:21 | access to field Field | +| cflow.cs:229:17:229:21 | this access | cflow.cs:229:17:229:21 | Before access to field Field | +| cflow.cs:229:17:229:28 | After access to property Length | cflow.cs:229:17:229:28 | access to property Length | +| cflow.cs:229:17:229:28 | Before access to property Length | cflow.cs:229:17:229:32 | Before ... > ... | +| cflow.cs:229:17:229:28 | access to property Length | cflow.cs:229:17:229:21 | After access to field Field | | cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:32:229:32 | 0 | -| cflow.cs:229:32:229:32 | 0 | cflow.cs:229:17:229:28 | access to property Length | -| cflow.cs:231:17:231:25 | continue; | cflow.cs:230:13:232:13 | {...} | +| cflow.cs:229:17:229:32 | Before ... > ... | cflow.cs:229:13:232:13 | if (...) ... | +| cflow.cs:229:32:229:32 | 0 | cflow.cs:229:17:229:28 | After access to property Length | +| cflow.cs:230:13:232:13 | {...} | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:231:17:231:25 | Before continue; | cflow.cs:230:13:232:13 | {...} | +| cflow.cs:231:17:231:25 | continue; | cflow.cs:231:17:231:25 | Before continue; | +| cflow.cs:233:13:236:13 | After if (...) ... | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:229:13:232:13 | After if (...) ... | +| cflow.cs:233:17:233:21 | After access to field Field | cflow.cs:233:17:233:21 | access to field Field | +| cflow.cs:233:17:233:21 | Before access to field Field | cflow.cs:233:17:233:28 | Before access to property Length | | cflow.cs:233:17:233:21 | access to field Field | cflow.cs:233:17:233:21 | this access | -| cflow.cs:233:17:233:21 | this access | cflow.cs:233:13:236:13 | if (...) ... | -| cflow.cs:233:17:233:28 | access to property Length | cflow.cs:233:17:233:21 | access to field Field | +| cflow.cs:233:17:233:21 | this access | cflow.cs:233:17:233:21 | Before access to field Field | +| cflow.cs:233:17:233:28 | After access to property Length | cflow.cs:233:17:233:28 | access to property Length | +| cflow.cs:233:17:233:28 | Before access to property Length | cflow.cs:233:17:233:32 | Before ... < ... | +| cflow.cs:233:17:233:28 | access to property Length | cflow.cs:233:17:233:21 | After access to field Field | | cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:32:233:32 | 0 | -| cflow.cs:233:32:233:32 | 0 | cflow.cs:233:17:233:28 | access to property Length | -| cflow.cs:235:17:235:22 | break; | cflow.cs:234:13:236:13 | {...} | -| cflow.cs:240:10:240:13 | exit Goto | cflow.cs:240:10:240:13 | exit Goto (normal) | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:252:17:252:22 | break; | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:257:17:257:22 | break; | -| cflow.cs:241:5:259:5 | {...} | cflow.cs:240:10:240:13 | enter Goto | +| cflow.cs:233:17:233:32 | Before ... < ... | cflow.cs:233:13:236:13 | if (...) ... | +| cflow.cs:233:32:233:32 | 0 | cflow.cs:233:17:233:28 | After access to property Length | +| cflow.cs:234:13:236:13 | {...} | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:235:17:235:22 | Before break; | cflow.cs:234:13:236:13 | {...} | +| cflow.cs:235:17:235:22 | break; | cflow.cs:235:17:235:22 | Before break; | +| cflow.cs:240:10:240:13 | Exit | cflow.cs:240:10:240:13 | Normal Exit | +| cflow.cs:240:10:240:13 | Normal Exit | cflow.cs:241:5:259:5 | After {...} | +| cflow.cs:241:5:259:5 | After {...} | cflow.cs:246:9:258:9 | After switch (...) {...} | +| cflow.cs:241:5:259:5 | {...} | cflow.cs:240:10:240:13 | Entry | | cflow.cs:242:5:242:9 | Label: | cflow.cs:241:5:259:5 | {...} | | cflow.cs:242:5:242:9 | Label: | cflow.cs:244:31:244:41 | goto ...; | | cflow.cs:242:5:242:9 | Label: | cflow.cs:254:17:254:27 | goto ...; | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:242:16:242:36 | After !... [false] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:242:39:242:41 | {...} | | cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:5:242:9 | Label: | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:17:242:36 | [false] !... | +| cflow.cs:242:16:242:36 | !... | cflow.cs:242:12:242:41 | if (...) ... | +| cflow.cs:242:16:242:36 | After !... [false] | cflow.cs:242:17:242:36 | After !... [true] | +| cflow.cs:242:16:242:36 | After !... [true] | cflow.cs:242:17:242:36 | After !... [false] | +| cflow.cs:242:17:242:36 | !... | cflow.cs:242:16:242:36 | !... | +| cflow.cs:242:17:242:36 | After !... [false] | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:242:17:242:36 | After !... [true] | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:242:19:242:23 | After access to field Field | cflow.cs:242:19:242:23 | access to field Field | +| cflow.cs:242:19:242:23 | Before access to field Field | cflow.cs:242:19:242:30 | Before access to property Length | | cflow.cs:242:19:242:23 | access to field Field | cflow.cs:242:19:242:23 | this access | -| cflow.cs:242:19:242:23 | this access | cflow.cs:242:12:242:41 | if (...) ... | -| cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:19:242:23 | access to field Field | +| cflow.cs:242:19:242:23 | this access | cflow.cs:242:19:242:23 | Before access to field Field | +| cflow.cs:242:19:242:30 | After access to property Length | cflow.cs:242:19:242:30 | access to property Length | +| cflow.cs:242:19:242:30 | Before access to property Length | cflow.cs:242:19:242:35 | Before ... == ... | +| cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:19:242:23 | After access to field Field | | cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:35:242:35 | 0 | -| cflow.cs:242:35:242:35 | 0 | cflow.cs:242:19:242:30 | access to property Length | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:39:242:41 | {...} | +| cflow.cs:242:19:242:35 | Before ... == ... | cflow.cs:242:17:242:36 | !... | +| cflow.cs:242:35:242:35 | 0 | cflow.cs:242:19:242:30 | After access to property Length | +| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:16:242:36 | After !... [true] | +| cflow.cs:244:9:244:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:12:242:41 | After if (...) ... | +| cflow.cs:244:13:244:17 | After access to field Field | cflow.cs:244:13:244:17 | access to field Field | +| cflow.cs:244:13:244:17 | Before access to field Field | cflow.cs:244:13:244:24 | Before access to property Length | | cflow.cs:244:13:244:17 | access to field Field | cflow.cs:244:13:244:17 | this access | -| cflow.cs:244:13:244:17 | this access | cflow.cs:244:9:244:41 | if (...) ... | -| cflow.cs:244:13:244:24 | access to property Length | cflow.cs:244:13:244:17 | access to field Field | +| cflow.cs:244:13:244:17 | this access | cflow.cs:244:13:244:17 | Before access to field Field | +| cflow.cs:244:13:244:24 | After access to property Length | cflow.cs:244:13:244:24 | access to property Length | +| cflow.cs:244:13:244:24 | Before access to property Length | cflow.cs:244:13:244:28 | Before ... > ... | +| cflow.cs:244:13:244:24 | access to property Length | cflow.cs:244:13:244:17 | After access to field Field | | cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:28:244:28 | 0 | -| cflow.cs:244:28:244:28 | 0 | cflow.cs:244:13:244:24 | access to property Length | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:244:13:244:28 | ... > ... | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:244:13:244:28 | ... > ... | +| cflow.cs:244:13:244:28 | Before ... > ... | cflow.cs:244:9:244:41 | if (...) ... | +| cflow.cs:244:28:244:28 | 0 | cflow.cs:244:13:244:24 | After access to property Length | +| cflow.cs:244:31:244:41 | Before goto ...; | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:244:31:244:41 | Before goto ...; | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:252:17:252:22 | break; | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:257:17:257:22 | break; | +| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:244:9:244:41 | After if (...) ... | +| cflow.cs:246:17:246:21 | After access to field Field | cflow.cs:246:17:246:21 | access to field Field | +| cflow.cs:246:17:246:21 | Before access to field Field | cflow.cs:246:17:246:28 | Before access to property Length | | cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:21 | this access | -| cflow.cs:246:17:246:21 | this access | cflow.cs:246:9:258:9 | switch (...) {...} | -| cflow.cs:246:17:246:28 | access to property Length | cflow.cs:246:17:246:21 | access to field Field | +| cflow.cs:246:17:246:21 | this access | cflow.cs:246:17:246:21 | Before access to field Field | +| cflow.cs:246:17:246:28 | After access to property Length | cflow.cs:246:17:246:28 | access to property Length | +| cflow.cs:246:17:246:28 | Before access to property Length | cflow.cs:246:17:246:32 | Before ... + ... | +| cflow.cs:246:17:246:28 | access to property Length | cflow.cs:246:17:246:21 | After access to field Field | | cflow.cs:246:17:246:32 | ... + ... | cflow.cs:246:32:246:32 | 3 | -| cflow.cs:246:32:246:32 | 3 | cflow.cs:246:17:246:28 | access to property Length | -| cflow.cs:248:13:248:19 | case ...: | cflow.cs:246:17:246:32 | ... + ... | -| cflow.cs:248:18:248:18 | 0 | cflow.cs:248:13:248:19 | case ...: | -| cflow.cs:250:18:250:18 | 1 | cflow.cs:250:13:250:19 | case ...: | +| cflow.cs:246:17:246:32 | After ... + ... | cflow.cs:246:17:246:32 | ... + ... | +| cflow.cs:246:17:246:32 | Before ... + ... | cflow.cs:246:9:258:9 | switch (...) {...} | +| cflow.cs:246:32:246:32 | 3 | cflow.cs:246:17:246:28 | After access to property Length | +| cflow.cs:248:13:248:19 | case ...: | cflow.cs:246:17:246:32 | After ... + ... | +| cflow.cs:248:18:248:18 | 0 | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:249:17:249:29 | Before goto default; | cflow.cs:248:18:248:18 | 0 | +| cflow.cs:249:17:249:29 | goto default; | cflow.cs:249:17:249:29 | Before goto default; | +| cflow.cs:250:13:250:19 | case ...: | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:250:18:250:18 | 1 | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:251:17:251:36 | After call to method WriteLine | cflow.cs:251:17:251:36 | call to method WriteLine | +| cflow.cs:251:17:251:36 | Before call to method WriteLine | cflow.cs:251:17:251:37 | ...; | | cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:251:35:251:35 | 1 | -| cflow.cs:251:35:251:35 | 1 | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:252:17:252:22 | break; | cflow.cs:251:17:251:36 | call to method WriteLine | -| cflow.cs:253:18:253:18 | 2 | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:255:13:255:20 | default: | cflow.cs:249:17:249:29 | goto default; | +| cflow.cs:251:17:251:37 | ...; | cflow.cs:250:18:250:18 | 1 | +| cflow.cs:251:17:251:37 | After ...; | cflow.cs:251:17:251:36 | After call to method WriteLine | +| cflow.cs:251:35:251:35 | 1 | cflow.cs:251:17:251:36 | Before call to method WriteLine | +| cflow.cs:252:17:252:22 | Before break; | cflow.cs:251:17:251:37 | After ...; | +| cflow.cs:252:17:252:22 | break; | cflow.cs:252:17:252:22 | Before break; | +| cflow.cs:253:13:253:19 | case ...: | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:253:18:253:18 | 2 | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:254:17:254:27 | Before goto ...; | cflow.cs:253:18:253:18 | 2 | +| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:254:17:254:27 | Before goto ...; | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:249:17:249:29 | goto default; | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:255:13:255:20 | default: | +| cflow.cs:255:13:255:20 | default: | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:256:17:256:36 | After call to method WriteLine | cflow.cs:256:17:256:36 | call to method WriteLine | +| cflow.cs:256:17:256:36 | Before call to method WriteLine | cflow.cs:256:17:256:37 | ...; | | cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:256:35:256:35 | 0 | -| cflow.cs:256:17:256:37 | ...; | cflow.cs:255:13:255:20 | default: | -| cflow.cs:256:35:256:35 | 0 | cflow.cs:256:17:256:37 | ...; | -| cflow.cs:257:17:257:22 | break; | cflow.cs:256:17:256:36 | call to method WriteLine | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:275:13:275:41 | call to method WriteLine | -| cflow.cs:262:5:277:5 | {...} | cflow.cs:261:49:261:53 | enter Yield | +| cflow.cs:256:17:256:37 | ...; | cflow.cs:255:13:255:20 | After default: [match] | +| cflow.cs:256:17:256:37 | After ...; | cflow.cs:256:17:256:36 | After call to method WriteLine | +| cflow.cs:256:35:256:35 | 0 | cflow.cs:256:17:256:36 | Before call to method WriteLine | +| cflow.cs:257:17:257:22 | Before break; | cflow.cs:256:17:256:37 | After ...; | +| cflow.cs:257:17:257:22 | break; | cflow.cs:257:17:257:22 | Before break; | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:262:5:277:5 | After {...} | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:274:9:276:9 | After {...} | +| cflow.cs:262:5:277:5 | After {...} | cflow.cs:268:9:276:9 | After try {...} ... | +| cflow.cs:262:5:277:5 | {...} | cflow.cs:261:49:261:53 | Entry | +| cflow.cs:263:9:263:23 | After yield return ...; | cflow.cs:263:9:263:23 | yield return ...; | +| cflow.cs:263:9:263:23 | Before yield return ...; | cflow.cs:262:5:277:5 | {...} | | cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:263:22:263:22 | 0 | -| cflow.cs:263:22:263:22 | 0 | cflow.cs:262:5:277:5 | {...} | -| cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:263:9:263:23 | yield return ...; | +| cflow.cs:263:22:263:22 | 0 | cflow.cs:263:9:263:23 | Before yield return ...; | +| cflow.cs:264:9:267:9 | After for (...;...;...) ... | cflow.cs:264:25:264:30 | After ... < ... [false] | +| cflow.cs:264:9:267:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:265:9:267:9 | After {...} | +| cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:263:9:263:23 | After yield return ...; | +| cflow.cs:264:18:264:18 | access to local variable i | cflow.cs:264:18:264:22 | Before Int32 i = ... | +| cflow.cs:264:18:264:22 | After Int32 i = ... | cflow.cs:264:18:264:22 | Int32 i = ... | +| cflow.cs:264:18:264:22 | Before Int32 i = ... | cflow.cs:264:9:267:9 | for (...;...;...) ... | | cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:22:264:22 | 1 | -| cflow.cs:264:22:264:22 | 1 | cflow.cs:264:9:267:9 | for (...;...;...) ... | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:18:264:22 | Int32 i = ... | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:33:264:35 | ...++ | +| cflow.cs:264:22:264:22 | 1 | cflow.cs:264:18:264:18 | access to local variable i | +| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:30 | Before ... < ... | | cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:29:264:30 | 10 | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:264:25:264:30 | ... < ... | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:18:264:22 | After Int32 i = ... | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:33:264:35 | After ...++ | | cflow.cs:264:29:264:30 | 10 | cflow.cs:264:25:264:25 | access to local variable i | -| cflow.cs:264:33:264:33 | access to local variable i | cflow.cs:266:13:266:27 | yield return ...; | +| cflow.cs:264:33:264:33 | access to local variable i | cflow.cs:264:33:264:35 | Before ...++ | | cflow.cs:264:33:264:35 | ...++ | cflow.cs:264:33:264:33 | access to local variable i | +| cflow.cs:264:33:264:35 | After ...++ | cflow.cs:264:33:264:35 | ...++ | +| cflow.cs:264:33:264:35 | Before ...++ | cflow.cs:264:9:267:9 | [LoopHeader] for (...;...;...) ... | +| cflow.cs:265:9:267:9 | After {...} | cflow.cs:266:13:266:27 | After yield return ...; | +| cflow.cs:265:9:267:9 | {...} | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:266:13:266:27 | After yield return ...; | cflow.cs:266:13:266:27 | yield return ...; | +| cflow.cs:266:13:266:27 | Before yield return ...; | cflow.cs:265:9:267:9 | {...} | | cflow.cs:266:13:266:27 | yield return ...; | cflow.cs:266:26:266:26 | access to local variable i | -| cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:264:25:264:30 | ... < ... | +| cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:266:13:266:27 | Before yield return ...; | +| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:264:9:267:9 | After for (...;...;...) ... | | cflow.cs:269:9:272:9 | {...} | cflow.cs:268:9:276:9 | try {...} ... | -| cflow.cs:270:13:270:24 | yield break; | cflow.cs:269:9:272:9 | {...} | +| cflow.cs:270:13:270:24 | Before yield break; | cflow.cs:269:9:272:9 | {...} | +| cflow.cs:270:13:270:24 | yield break; | cflow.cs:270:13:270:24 | Before yield break; | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:275:13:275:42 | After ...; | | cflow.cs:274:9:276:9 | {...} | cflow.cs:270:13:270:24 | yield break; | +| cflow.cs:275:13:275:41 | After call to method WriteLine | cflow.cs:275:13:275:41 | call to method WriteLine | +| cflow.cs:275:13:275:41 | Before call to method WriteLine | cflow.cs:275:13:275:42 | ...; | | 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:275:13:275:42 | After ...; | cflow.cs:275:13:275:41 | After call to method WriteLine | +| cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | Before call to method WriteLine | +| cflow.cs:282:5:282:18 | After call to method | cflow.cs:282:5:282:18 | call to method | +| cflow.cs:282:5:282:18 | Before call to method | cflow.cs:282:5:282:18 | Entry | +| cflow.cs:282:5:282:18 | Exit | cflow.cs:282:5:282:18 | Normal Exit | +| cflow.cs:282:5:282:18 | Normal Exit | cflow.cs:282:31:282:33 | {...} | | 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: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 | {...} | -| cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:5:284:18 | enter ControlFlowSub | -| cflow.cs:284:39:284:41 | {...} | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | -| cflow.cs:286:5:286:18 | exit ControlFlowSub | cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | -| cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | cflow.cs:286:48:286:50 | {...} | -| cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:34:286:45 | call to method ToString | -| cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:5:286:18 | enter ControlFlowSub | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | Before call to method | +| cflow.cs:282:24:282:27 | After call to constructor ControlFlow | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:24:282:27 | Before call to constructor ControlFlow | cflow.cs:282:5:282:18 | After call to method | +| cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:24:282:27 | Before call to constructor ControlFlow | +| cflow.cs:282:31:282:33 | {...} | cflow.cs:282:24:282:27 | After call to constructor ControlFlow | +| cflow.cs:284:5:284:18 | Exit | cflow.cs:284:5:284:18 | Normal Exit | +| cflow.cs:284:5:284:18 | Normal Exit | cflow.cs:284:39:284:41 | {...} | +| cflow.cs:284:32:284:35 | After call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | +| cflow.cs:284:32:284:35 | Before call to constructor ControlFlowSub | cflow.cs:284:5:284:18 | Entry | +| cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | Before call to constructor ControlFlowSub | +| cflow.cs:284:39:284:41 | {...} | cflow.cs:284:32:284:35 | After call to constructor ControlFlowSub | +| cflow.cs:286:5:286:18 | Exit | cflow.cs:286:5:286:18 | Normal Exit | +| cflow.cs:286:5:286:18 | Normal Exit | cflow.cs:286:48:286:50 | {...} | +| cflow.cs:286:29:286:32 | After call to constructor ControlFlowSub | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | +| cflow.cs:286:29:286:32 | Before call to constructor ControlFlowSub | cflow.cs:286:5:286:18 | Entry | +| cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:34:286:45 | After call to method ToString | +| cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:34:286:45 | Before call to method ToString | +| cflow.cs:286:34:286:45 | After call to method ToString | cflow.cs:286:34:286:45 | call to method ToString | +| cflow.cs:286:34:286:45 | Before call to method ToString | cflow.cs:286:29:286:32 | Before call to constructor 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 | call to method | +| cflow.cs:286:48:286:50 | {...} | cflow.cs:286:29:286:32 | After call to constructor ControlFlowSub | +| cflow.cs:289:7:289:18 | After call to constructor Object | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | After call to method | cflow.cs:289:7:289:18 | call to method | +| cflow.cs:289:7:289:18 | Before call to constructor Object | cflow.cs:289:7:289:18 | After call to method | +| cflow.cs:289:7:289:18 | Before call to method | cflow.cs:289:7:289:18 | Entry | +| cflow.cs:289:7:289:18 | Exit | cflow.cs:289:7:289:18 | Normal Exit | +| cflow.cs:289:7:289:18 | Normal Exit | cflow.cs:289:7:289:18 | {...} | +| cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | Before 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 | 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:289:7:289:18 | this access | cflow.cs:289:7:289:18 | Before call to method | +| cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | After call to constructor Object | +| cflow.cs:291:12:291:12 | Exit | cflow.cs:291:12:291:12 | Normal Exit | +| cflow.cs:291:12:291:12 | Normal Exit | cflow.cs:291:38:291:41 | After delegate call | +| cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:38:291:41 | Before delegate call | +| cflow.cs:291:38:291:41 | After delegate call | cflow.cs:291:38:291:41 | delegate call | +| cflow.cs:291:38:291:41 | Before delegate call | cflow.cs:291:12:291:12 | Entry | | 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 | call to method | +| cflow.cs:296:5:296:25 | After call to constructor Object | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | After call to method | cflow.cs:296:5:296:25 | call to method | +| cflow.cs:296:5:296:25 | Before call to constructor Object | cflow.cs:296:5:296:25 | After call to method | +| cflow.cs:296:5:296:25 | Before call to method | cflow.cs:296:5:296:25 | Entry | +| cflow.cs:296:5:296:25 | Exit | cflow.cs:296:5:296:25 | Normal Exit | +| cflow.cs:296:5:296:25 | Normal Exit | cflow.cs:296:52:296:54 | {...} | +| cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | Before 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 | 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 | -| cflow.cs:299:5:301:5 | {...} | cflow.cs:298:10:298:10 | enter M | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | Before call to method | +| cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | After call to constructor Object | +| cflow.cs:298:10:298:10 | Exit | cflow.cs:298:10:298:10 | Normal Exit | +| cflow.cs:298:10:298:10 | Normal Exit | cflow.cs:299:5:301:5 | After {...} | +| cflow.cs:299:5:301:5 | After {...} | cflow.cs:300:9:300:73 | After ...; | +| cflow.cs:299:5:301:5 | {...} | cflow.cs:298:10:298:10 | Entry | +| cflow.cs:300:9:300:72 | After object creation of type NegationInConstructor | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | +| cflow.cs:300:9:300:72 | Before object creation of type NegationInConstructor | cflow.cs:300:9:300:73 | ...; | | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:70:300:71 | "" | | cflow.cs:300:9:300:73 | ...; | cflow.cs:299:5:301:5 | {...} | -| cflow.cs:300:38:300:38 | 0 | cflow.cs:300:9:300:73 | ...; | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:51 | [false] !... | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:56:300:64 | ... != ... | -| cflow.cs:300:46:300:46 | access to parameter i | cflow.cs:300:38:300:38 | 0 | +| cflow.cs:300:9:300:73 | After ...; | cflow.cs:300:9:300:72 | After object creation of type NegationInConstructor | +| cflow.cs:300:38:300:38 | 0 | cflow.cs:300:9:300:72 | Before object creation of type NegationInConstructor | +| cflow.cs:300:44:300:51 | !... | cflow.cs:300:44:300:64 | ... && ... | +| cflow.cs:300:44:300:51 | After !... [false] | cflow.cs:300:46:300:50 | After ... > ... [true] | +| cflow.cs:300:44:300:51 | After !... [true] | cflow.cs:300:46:300:50 | After ... > ... [false] | +| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:38:300:38 | 0 | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:44:300:51 | After !... [false] | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:56:300:64 | After ... != ... | +| cflow.cs:300:46:300:46 | access to parameter i | cflow.cs:300:46:300:50 | Before ... > ... | | cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:50:300:50 | 0 | +| cflow.cs:300:46:300:50 | Before ... > ... | cflow.cs:300:44:300:51 | !... | | cflow.cs:300:50:300:50 | 0 | cflow.cs:300:46:300:46 | access to parameter i | -| cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:44:300:51 | [true] !... | +| cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:56:300:64 | Before ... != ... | | cflow.cs:300:56:300:64 | ... != ... | cflow.cs:300:61:300:64 | null | +| cflow.cs:300:56:300:64 | After ... != ... | cflow.cs:300:56:300:64 | ... != ... | +| cflow.cs:300:56:300:64 | Before ... != ... | cflow.cs:300:44:300:51 | After !... [true] | | 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 | call to method | +| cflow.cs:300:70:300:71 | "" | cflow.cs:300:44:300:64 | After ... && ... | +| cflow.cs:304:7:304:18 | After call to constructor Object | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | After call to method | cflow.cs:304:7:304:18 | call to method | +| cflow.cs:304:7:304:18 | Before call to constructor Object | cflow.cs:304:7:304:18 | After call to method | +| cflow.cs:304:7:304:18 | Before call to method | cflow.cs:304:7:304:18 | Entry | +| cflow.cs:304:7:304:18 | Exit | cflow.cs:304:7:304:18 | Normal Exit | +| cflow.cs:304:7:304:18 | Normal Exit | cflow.cs:304:7:304:18 | {...} | +| cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | Before 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 | 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) | -| cflow.cs:306:60:310:5 | exit (...) => ... (normal) | cflow.cs:309:9:309:17 | return ...; | -| cflow.cs:306:60:310:5 | exit get__getter | cflow.cs:306:60:310:5 | exit get__getter (normal) | -| cflow.cs:306:60:310:5 | exit get__getter (normal) | cflow.cs:306:60:310:5 | (...) => ... | -| cflow.cs:307:5:310:5 | {...} | cflow.cs:306:60:310:5 | enter (...) => ... | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | Before call to method | +| cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | After call to constructor Object | +| cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | Entry | +| cflow.cs:306:60:310:5 | Exit | cflow.cs:306:60:310:5 | Normal Exit | +| cflow.cs:306:60:310:5 | Exit | cflow.cs:306:60:310:5 | Normal Exit | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:309:9:309:17 | return ...; | +| cflow.cs:307:5:310:5 | {...} | cflow.cs:306:60:310:5 | Entry | | cflow.cs:308:9:308:21 | ... ...; | cflow.cs:307:5:310:5 | {...} | +| cflow.cs:308:9:308:21 | After ... ...; | cflow.cs:308:16:308:20 | After Object x = ... | +| cflow.cs:308:16:308:16 | access to local variable x | cflow.cs:308:16:308:20 | Before Object x = ... | +| cflow.cs:308:16:308:20 | After Object x = ... | cflow.cs:308:16:308:20 | Object x = ... | +| cflow.cs:308:16:308:20 | Before Object x = ... | cflow.cs:308:9:308:21 | ... ...; | | cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:308:20:308:20 | access to parameter o | -| cflow.cs:308:20:308:20 | access to parameter o | cflow.cs:308:9:308:21 | ... ...; | +| cflow.cs:308:20:308:20 | access to parameter o | cflow.cs:308:16:308:16 | access to local variable x | +| cflow.cs:309:9:309:17 | Before return ...; | cflow.cs:308:9:308:21 | After ... ...; | | cflow.cs:309:9:309:17 | return ...; | cflow.cs:309:16:309:16 | access to local variable x | -| cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:308:16:308:20 | Object x = ... | +| cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:309:9:309:17 | Before return ...; | blockDominance -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | -| AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | enter get_Item | -| AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | enter set_Item | -| AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | enter add_Event | -| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | enter remove_Event | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | enter M1 | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | enter M2 | -| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | enter M3 | -| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | enter M4 | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | enter M5 | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | enter M6 | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | enter M7 | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | enter M8 | -| AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | enter M9 | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | -| ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | enter M1 | -| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | enter M2 | -| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | enter M3 | -| ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:12:9:13 | enter M4 | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | enter AssertTests | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:7:10:7:11 | enter M1 | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:7:10:7:11 | exit M1 | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:7:10:7:11 | exit M1 (abnormal) | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:20:9:32 | ... ? ... : ... | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:24:9:27 | null | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:31:9:32 | "" | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:11:9:11:36 | ...; | -| Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | exit M1 | -| Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | exit M1 (abnormal) | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:7:10:7:11 | exit M1 | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:7:10:7:11 | exit M1 (abnormal) | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:20:9:32 | ... ? ... : ... | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:11:9:11:36 | ...; | -| Assert.cs:9:24:9:27 | null | Assert.cs:9:24:9:27 | null | -| Assert.cs:9:31:9:32 | "" | Assert.cs:9:31:9:32 | "" | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:9:11:36 | ...; | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:14:10:14:11 | enter M2 | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:14:10:14:11 | exit M2 | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:14:10:14:11 | exit M2 (abnormal) | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:20:16:32 | ... ? ... : ... | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:24:16:27 | null | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:31:16:32 | "" | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:18:9:18:36 | ...; | -| Assert.cs:14:10:14:11 | exit M2 | Assert.cs:14:10:14:11 | exit M2 | -| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | exit M2 (abnormal) | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:14:10:14:11 | exit M2 | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:14:10:14:11 | exit M2 (abnormal) | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:20:16:32 | ... ? ... : ... | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:18:9:18:36 | ...; | -| Assert.cs:16:24:16:27 | null | Assert.cs:16:24:16:27 | null | -| Assert.cs:16:31:16:32 | "" | Assert.cs:16:31:16:32 | "" | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:9:18:36 | ...; | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:21:10:21:11 | enter M3 | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:21:10:21:11 | exit M3 | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:21:10:21:11 | exit M3 (abnormal) | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:20:23:32 | ... ? ... : ... | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:24:23:27 | null | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:31:23:32 | "" | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:25:9:25:36 | ...; | -| Assert.cs:21:10:21:11 | exit M3 | Assert.cs:21:10:21:11 | exit M3 | -| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | exit M3 (abnormal) | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:21:10:21:11 | exit M3 | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:21:10:21:11 | exit M3 (abnormal) | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:20:23:32 | ... ? ... : ... | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:25:9:25:36 | ...; | -| Assert.cs:23:24:23:27 | null | Assert.cs:23:24:23:27 | null | -| Assert.cs:23:31:23:32 | "" | Assert.cs:23:31:23:32 | "" | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:9:25:36 | ...; | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:28:10:28:11 | enter M4 | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:28:10:28:11 | exit M4 | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:28:10:28:11 | exit M4 (abnormal) | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:20:30:32 | ... ? ... : ... | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:24:30:27 | null | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:31:30:32 | "" | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:32:9:32:36 | ...; | -| Assert.cs:28:10:28:11 | exit M4 | Assert.cs:28:10:28:11 | exit M4 | -| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | exit M4 (abnormal) | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:28:10:28:11 | exit M4 | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:28:10:28:11 | exit M4 (abnormal) | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:20:30:32 | ... ? ... : ... | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:32:9:32:36 | ...; | -| Assert.cs:30:24:30:27 | null | Assert.cs:30:24:30:27 | null | -| Assert.cs:30:31:30:32 | "" | Assert.cs:30:31:30:32 | "" | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:9:32:36 | ...; | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:35:10:35:11 | enter M5 | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:35:10:35:11 | exit M5 | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:35:10:35:11 | exit M5 (abnormal) | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:20:37:32 | ... ? ... : ... | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:24:37:27 | null | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:31:37:32 | "" | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:39:9:39:36 | ...; | -| Assert.cs:35:10:35:11 | exit M5 | Assert.cs:35:10:35:11 | exit M5 | -| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | exit M5 (abnormal) | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:35:10:35:11 | exit M5 | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:35:10:35:11 | exit M5 (abnormal) | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:20:37:32 | ... ? ... : ... | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:39:9:39:36 | ...; | -| Assert.cs:37:24:37:27 | null | Assert.cs:37:24:37:27 | null | -| Assert.cs:37:31:37:32 | "" | Assert.cs:37:31:37:32 | "" | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:9:39:36 | ...; | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:42:10:42:11 | enter M6 | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:42:10:42:11 | exit M6 | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:42:10:42:11 | exit M6 (abnormal) | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:20:44:32 | ... ? ... : ... | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:24:44:27 | null | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:31:44:32 | "" | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:46:9:46:36 | ...; | -| Assert.cs:42:10:42:11 | exit M6 | Assert.cs:42:10:42:11 | exit M6 | -| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | exit M6 (abnormal) | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:42:10:42:11 | exit M6 | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:42:10:42:11 | exit M6 (abnormal) | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:20:44:32 | ... ? ... : ... | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:46:9:46:36 | ...; | -| Assert.cs:44:24:44:27 | null | Assert.cs:44:24:44:27 | null | -| Assert.cs:44:31:44:32 | "" | Assert.cs:44:31:44:32 | "" | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:9:46:36 | ...; | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:49:10:49:11 | enter M7 | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:49:10:49:11 | exit M7 | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:49:10:49:11 | exit M7 (abnormal) | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:20:51:32 | ... ? ... : ... | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:24:51:27 | null | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:31:51:32 | "" | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:53:9:53:36 | ...; | -| Assert.cs:49:10:49:11 | exit M7 | Assert.cs:49:10:49:11 | exit M7 | -| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | exit M7 (abnormal) | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:49:10:49:11 | exit M7 | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:49:10:49:11 | exit M7 (abnormal) | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:20:51:32 | ... ? ... : ... | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:53:9:53:36 | ...; | -| Assert.cs:51:24:51:27 | null | Assert.cs:51:24:51:27 | null | -| Assert.cs:51:31:51:32 | "" | Assert.cs:51:31:51:32 | "" | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:9:53:36 | ...; | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | exit M8 (abnormal) | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:20:58:32 | ... ? ... : ... | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:24:58:27 | null | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:31:58:32 | "" | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:23:59:36 | ... && ... | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:36:59:36 | access to parameter b | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:60:9:60:36 | ...; | -| Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | exit M8 (abnormal) | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | exit M8 (abnormal) | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:32 | ... ? ... : ... | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:36 | ... && ... | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:36:59:36 | access to parameter b | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:60:9:60:36 | ...; | -| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | -| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:56:10:56:11 | exit M8 (abnormal) | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:36 | ... && ... | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:60:9:60:36 | ...; | -| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:9:60:36 | ...; | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | exit M9 (abnormal) | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:20:65:32 | ... ? ... : ... | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:24:65:27 | null | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:31:65:32 | "" | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:24:66:37 | ... \|\| ... | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:37:66:37 | access to parameter b | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:67:9:67:36 | ...; | -| Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | exit M9 (abnormal) | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | exit M9 (abnormal) | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:32 | ... ? ... : ... | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:37 | ... \|\| ... | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:37:66:37 | access to parameter b | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:67:9:67:36 | ...; | -| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | -| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:63:10:63:11 | exit M9 (abnormal) | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:37 | ... \|\| ... | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:67:9:67:36 | ...; | -| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:9:67:36 | ...; | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | exit M10 (abnormal) | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:20:72:32 | ... ? ... : ... | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:24:72:27 | null | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:31:72:32 | "" | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:23:73:36 | ... && ... | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:36:73:36 | access to parameter b | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:74:9:74:36 | ...; | -| Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | exit M10 (abnormal) | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | exit M10 (abnormal) | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:32 | ... ? ... : ... | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:36 | ... && ... | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:36:73:36 | access to parameter b | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:74:9:74:36 | ...; | -| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | -| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:70:10:70:12 | exit M10 (abnormal) | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:36 | ... && ... | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:74:9:74:36 | ...; | -| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:9:74:36 | ...; | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | exit M11 (abnormal) | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:20:79:32 | ... ? ... : ... | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:24:79:27 | null | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:31:79:32 | "" | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:24:80:37 | ... \|\| ... | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:37:80:37 | access to parameter b | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:81:9:81:36 | ...; | -| Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | exit M11 (abnormal) | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | exit M11 (abnormal) | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:32 | ... ? ... : ... | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:37 | ... \|\| ... | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:37:80:37 | access to parameter b | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:81:9:81:36 | ...; | -| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | -| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:77:10:77:12 | exit M11 (abnormal) | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:37 | ... \|\| ... | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:81:9:81:36 | ...; | -| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:9:81:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | exit M12 | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:24:86:27 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:31:86:32 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:17:90:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:24:90:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:17:94:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:24:94:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:17:98:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:24:98:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:17:102:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:24:102:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:17:106:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:24:106:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:17:110:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:24:110:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:17:114:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:24:114:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:17:118:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:24:118:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:17:122:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:24:122:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:17:126:20 | null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:24:126:25 | "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | exit M12 | -| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | exit M12 | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | -| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | -| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | -| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | -| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | -| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | -| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | -| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | -| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | -| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | -| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | -| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | enter AssertTrueFalse | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | enter M13 | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | exit M13 | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | exit M13 (abnormal) | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:141:9:141:15 | return ...; | -| Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | exit M13 | -| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 (abnormal) | -| Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | return ...; | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | enter Assignments | -| Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | enter M | -| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | enter (...) => ... | -| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | enter + | -| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | enter SetParamSingle | -| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | enter SetParamMulti | -| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | enter M2 | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | enter BreakInTry | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | enter M1 | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:7:26:7:28 | String arg | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:10:21:10:26 | break; | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:14:9:17:9 | {...} | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:16:17:16:17 | ; | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:26:7:28 | String arg | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:10:21:10:26 | break; | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:14:9:17:9 | {...} | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:16:17:16:17 | ; | +| AccessorCalls.cs:1:7:1:19 | Entry | AccessorCalls.cs:1:7:1:19 | Entry | +| AccessorCalls.cs:5:23:5:25 | Entry | AccessorCalls.cs:5:23:5:25 | Entry | +| AccessorCalls.cs:5:33:5:35 | Entry | AccessorCalls.cs:5:33:5:35 | Entry | +| AccessorCalls.cs:7:32:7:34 | Entry | AccessorCalls.cs:7:32:7:34 | Entry | +| AccessorCalls.cs:7:40:7:45 | Entry | AccessorCalls.cs:7:40:7:45 | Entry | +| AccessorCalls.cs:10:10:10:11 | Entry | AccessorCalls.cs:10:10:10:11 | Entry | +| AccessorCalls.cs:19:10:19:11 | Entry | AccessorCalls.cs:19:10:19:11 | Entry | +| AccessorCalls.cs:28:10:28:11 | Entry | AccessorCalls.cs:28:10:28:11 | Entry | +| AccessorCalls.cs:35:10:35:11 | Entry | AccessorCalls.cs:35:10:35:11 | Entry | +| AccessorCalls.cs:42:10:42:11 | Entry | AccessorCalls.cs:42:10:42:11 | Entry | +| AccessorCalls.cs:49:10:49:11 | Entry | AccessorCalls.cs:49:10:49:11 | Entry | +| AccessorCalls.cs:56:10:56:11 | Entry | AccessorCalls.cs:56:10:56:11 | Entry | +| AccessorCalls.cs:61:10:61:11 | Entry | AccessorCalls.cs:61:10:61:11 | Entry | +| AccessorCalls.cs:66:10:66:11 | Entry | AccessorCalls.cs:66:10:66:11 | Entry | +| ArrayCreation.cs:1:7:1:19 | Entry | ArrayCreation.cs:1:7:1:19 | Entry | +| ArrayCreation.cs:3:11:3:12 | Entry | ArrayCreation.cs:3:11:3:12 | Entry | +| ArrayCreation.cs:5:12:5:13 | Entry | ArrayCreation.cs:5:12:5:13 | Entry | +| ArrayCreation.cs:7:11:7:12 | Entry | ArrayCreation.cs:7:11:7:12 | Entry | +| ArrayCreation.cs:9:12:9:13 | Entry | ArrayCreation.cs:9:12:9:13 | Entry | +| Assert.cs:5:7:5:17 | Entry | Assert.cs:5:7:5:17 | Entry | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:7:10:7:11 | Entry | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:7:10:7:11 | Exceptional Exit | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:7:10:7:11 | Exit | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:9:20:9:20 | After access to parameter b [false] | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:9:20:9:20 | After access to parameter b [true] | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:9:20:9:32 | After ... ? ... : ... | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:10:9:10:31 | After call to method Assert | +| Assert.cs:7:10:7:11 | Exceptional Exit | Assert.cs:7:10:7:11 | Exceptional Exit | +| Assert.cs:7:10:7:11 | Exit | Assert.cs:7:10:7:11 | Exit | +| Assert.cs:9:20:9:20 | After access to parameter b [false] | Assert.cs:9:20:9:20 | After access to parameter b [false] | +| Assert.cs:9:20:9:20 | After access to parameter b [true] | Assert.cs:9:20:9:20 | After access to parameter b [true] | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:7:10:7:11 | Exceptional Exit | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:7:10:7:11 | Exit | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:20:9:32 | After ... ? ... : ... | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:10:9:10:31 | After call to method Assert | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:10:9:10:31 | After call to method Assert | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:14:10:14:11 | Entry | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:14:10:14:11 | Exceptional Exit | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:14:10:14:11 | Exit | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:16:20:16:20 | After access to parameter b [false] | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:16:20:16:20 | After access to parameter b [true] | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:16:20:16:32 | After ... ? ... : ... | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:17:9:17:24 | After call to method IsNull | +| Assert.cs:14:10:14:11 | Exceptional Exit | Assert.cs:14:10:14:11 | Exceptional Exit | +| Assert.cs:14:10:14:11 | Exit | Assert.cs:14:10:14:11 | Exit | +| Assert.cs:16:20:16:20 | After access to parameter b [false] | Assert.cs:16:20:16:20 | After access to parameter b [false] | +| Assert.cs:16:20:16:20 | After access to parameter b [true] | Assert.cs:16:20:16:20 | After access to parameter b [true] | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:14:10:14:11 | Exceptional Exit | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:14:10:14:11 | Exit | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:20:16:32 | After ... ? ... : ... | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:17:9:17:24 | After call to method IsNull | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:17:9:17:24 | After call to method IsNull | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:21:10:21:11 | Entry | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:21:10:21:11 | Exceptional Exit | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:21:10:21:11 | Exit | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:23:20:23:20 | After access to parameter b [false] | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:23:20:23:20 | After access to parameter b [true] | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:23:20:23:32 | After ... ? ... : ... | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:24:9:24:27 | After call to method IsNotNull | +| Assert.cs:21:10:21:11 | Exceptional Exit | Assert.cs:21:10:21:11 | Exceptional Exit | +| Assert.cs:21:10:21:11 | Exit | Assert.cs:21:10:21:11 | Exit | +| Assert.cs:23:20:23:20 | After access to parameter b [false] | Assert.cs:23:20:23:20 | After access to parameter b [false] | +| Assert.cs:23:20:23:20 | After access to parameter b [true] | Assert.cs:23:20:23:20 | After access to parameter b [true] | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:21:10:21:11 | Exceptional Exit | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:21:10:21:11 | Exit | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:20:23:32 | After ... ? ... : ... | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:24:9:24:27 | After call to method IsNotNull | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:24:9:24:27 | After call to method IsNotNull | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:28:10:28:11 | Entry | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:28:10:28:11 | Exceptional Exit | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:28:10:28:11 | Exit | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:30:20:30:20 | After access to parameter b [false] | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:30:20:30:20 | After access to parameter b [true] | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:30:20:30:32 | After ... ? ... : ... | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:31:9:31:32 | After call to method IsTrue | +| Assert.cs:28:10:28:11 | Exceptional Exit | Assert.cs:28:10:28:11 | Exceptional Exit | +| Assert.cs:28:10:28:11 | Exit | Assert.cs:28:10:28:11 | Exit | +| Assert.cs:30:20:30:20 | After access to parameter b [false] | Assert.cs:30:20:30:20 | After access to parameter b [false] | +| Assert.cs:30:20:30:20 | After access to parameter b [true] | Assert.cs:30:20:30:20 | After access to parameter b [true] | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:28:10:28:11 | Exceptional Exit | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:28:10:28:11 | Exit | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:20:30:32 | After ... ? ... : ... | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:31:9:31:32 | After call to method IsTrue | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:31:9:31:32 | After call to method IsTrue | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:35:10:35:11 | Entry | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:35:10:35:11 | Exceptional Exit | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:35:10:35:11 | Exit | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:37:20:37:20 | After access to parameter b [false] | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:37:20:37:20 | After access to parameter b [true] | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:37:20:37:32 | After ... ? ... : ... | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:38:9:38:32 | After call to method IsTrue | +| Assert.cs:35:10:35:11 | Exceptional Exit | Assert.cs:35:10:35:11 | Exceptional Exit | +| Assert.cs:35:10:35:11 | Exit | Assert.cs:35:10:35:11 | Exit | +| Assert.cs:37:20:37:20 | After access to parameter b [false] | Assert.cs:37:20:37:20 | After access to parameter b [false] | +| Assert.cs:37:20:37:20 | After access to parameter b [true] | Assert.cs:37:20:37:20 | After access to parameter b [true] | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:35:10:35:11 | Exceptional Exit | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:35:10:35:11 | Exit | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:20:37:32 | After ... ? ... : ... | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:38:9:38:32 | After call to method IsTrue | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:38:9:38:32 | After call to method IsTrue | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:42:10:42:11 | Entry | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:42:10:42:11 | Exceptional Exit | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:42:10:42:11 | Exit | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:44:20:44:20 | After access to parameter b [false] | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:44:20:44:20 | After access to parameter b [true] | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:44:20:44:32 | After ... ? ... : ... | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:45:9:45:33 | After call to method IsFalse | +| Assert.cs:42:10:42:11 | Exceptional Exit | Assert.cs:42:10:42:11 | Exceptional Exit | +| Assert.cs:42:10:42:11 | Exit | Assert.cs:42:10:42:11 | Exit | +| Assert.cs:44:20:44:20 | After access to parameter b [false] | Assert.cs:44:20:44:20 | After access to parameter b [false] | +| Assert.cs:44:20:44:20 | After access to parameter b [true] | Assert.cs:44:20:44:20 | After access to parameter b [true] | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:42:10:42:11 | Exceptional Exit | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:42:10:42:11 | Exit | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:20:44:32 | After ... ? ... : ... | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:45:9:45:33 | After call to method IsFalse | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:45:9:45:33 | After call to method IsFalse | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:49:10:49:11 | Entry | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:49:10:49:11 | Exceptional Exit | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:49:10:49:11 | Exit | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:51:20:51:20 | After access to parameter b [false] | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:51:20:51:20 | After access to parameter b [true] | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:51:20:51:32 | After ... ? ... : ... | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:52:9:52:33 | After call to method IsFalse | +| Assert.cs:49:10:49:11 | Exceptional Exit | Assert.cs:49:10:49:11 | Exceptional Exit | +| Assert.cs:49:10:49:11 | Exit | Assert.cs:49:10:49:11 | Exit | +| Assert.cs:51:20:51:20 | After access to parameter b [false] | Assert.cs:51:20:51:20 | After access to parameter b [false] | +| Assert.cs:51:20:51:20 | After access to parameter b [true] | Assert.cs:51:20:51:20 | After access to parameter b [true] | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:49:10:49:11 | Exceptional Exit | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:49:10:49:11 | Exit | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:20:51:32 | After ... ? ... : ... | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:52:9:52:33 | After call to method IsFalse | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:52:9:52:33 | After call to method IsFalse | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:56:10:56:11 | Entry | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:56:10:56:11 | Exceptional Exit | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:56:10:56:11 | Exit | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:58:20:58:32 | After ... ? ... : ... | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:59:9:59:37 | After call to method IsTrue | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:59:23:59:36 | After ... && ... | +| Assert.cs:56:10:56:11 | Exceptional Exit | Assert.cs:56:10:56:11 | Exceptional Exit | +| Assert.cs:56:10:56:11 | Exit | Assert.cs:56:10:56:11 | Exit | +| Assert.cs:58:20:58:20 | After access to parameter b [false] | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:58:20:58:20 | After access to parameter b [true] | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:56:10:56:11 | Exceptional Exit | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:56:10:56:11 | Exit | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:20:58:32 | After ... ? ... : ... | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:59:9:59:37 | After call to method IsTrue | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:59:23:59:36 | After ... && ... | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:9:59:37 | After call to method IsTrue | +| Assert.cs:59:23:59:31 | After ... != ... [false] | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:59:23:59:31 | After ... != ... [true] | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:56:10:56:11 | Exceptional Exit | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:56:10:56:11 | Exit | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:9:59:37 | After call to method IsTrue | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:23:59:36 | After ... && ... | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:63:10:63:11 | Entry | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:63:10:63:11 | Exceptional Exit | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:63:10:63:11 | Exit | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:65:20:65:32 | After ... ? ... : ... | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:66:9:66:38 | After call to method IsFalse | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:66:24:66:37 | After ... \|\| ... | +| Assert.cs:63:10:63:11 | Exceptional Exit | Assert.cs:63:10:63:11 | Exceptional Exit | +| Assert.cs:63:10:63:11 | Exit | Assert.cs:63:10:63:11 | Exit | +| Assert.cs:65:20:65:20 | After access to parameter b [false] | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:65:20:65:20 | After access to parameter b [true] | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:63:10:63:11 | Exceptional Exit | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:63:10:63:11 | Exit | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:20:65:32 | After ... ? ... : ... | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:66:9:66:38 | After call to method IsFalse | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:66:24:66:37 | After ... \|\| ... | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:9:66:38 | After call to method IsFalse | +| Assert.cs:66:24:66:32 | After ... == ... [false] | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:66:24:66:32 | After ... == ... [true] | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:63:10:63:11 | Exceptional Exit | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:63:10:63:11 | Exit | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:9:66:38 | After call to method IsFalse | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:24:66:37 | After ... \|\| ... | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:70:10:70:12 | Entry | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:70:10:70:12 | Exceptional Exit | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:70:10:70:12 | Exit | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:72:20:72:32 | After ... ? ... : ... | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:73:9:73:37 | After call to method IsTrue | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:73:23:73:36 | After ... && ... | +| Assert.cs:70:10:70:12 | Exceptional Exit | Assert.cs:70:10:70:12 | Exceptional Exit | +| Assert.cs:70:10:70:12 | Exit | Assert.cs:70:10:70:12 | Exit | +| Assert.cs:72:20:72:20 | After access to parameter b [false] | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:72:20:72:20 | After access to parameter b [true] | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:70:10:70:12 | Exceptional Exit | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:70:10:70:12 | Exit | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:20:72:32 | After ... ? ... : ... | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:73:9:73:37 | After call to method IsTrue | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:73:23:73:36 | After ... && ... | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:9:73:37 | After call to method IsTrue | +| Assert.cs:73:23:73:31 | After ... == ... [false] | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:73:23:73:31 | After ... == ... [true] | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:70:10:70:12 | Exceptional Exit | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:70:10:70:12 | Exit | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:9:73:37 | After call to method IsTrue | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:23:73:36 | After ... && ... | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:77:10:77:12 | Entry | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:77:10:77:12 | Exceptional Exit | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:77:10:77:12 | Exit | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:79:20:79:32 | After ... ? ... : ... | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:80:9:80:38 | After call to method IsFalse | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:80:24:80:37 | After ... \|\| ... | +| Assert.cs:77:10:77:12 | Exceptional Exit | Assert.cs:77:10:77:12 | Exceptional Exit | +| Assert.cs:77:10:77:12 | Exit | Assert.cs:77:10:77:12 | Exit | +| Assert.cs:79:20:79:20 | After access to parameter b [false] | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:79:20:79:20 | After access to parameter b [true] | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:77:10:77:12 | Exceptional Exit | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:77:10:77:12 | Exit | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:20:79:32 | After ... ? ... : ... | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:80:9:80:38 | After call to method IsFalse | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:80:24:80:37 | After ... \|\| ... | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:9:80:38 | After call to method IsFalse | +| Assert.cs:80:24:80:32 | After ... != ... [false] | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:80:24:80:32 | After ... != ... [true] | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:77:10:77:12 | Exceptional Exit | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:77:10:77:12 | Exit | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:9:80:38 | After call to method IsFalse | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:24:80:37 | After ... \|\| ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:84:10:84:12 | Exceptional Exit | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:84:10:84:12 | Exit | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:84:10:84:12 | Exceptional Exit | Assert.cs:84:10:84:12 | Exceptional Exit | +| Assert.cs:84:10:84:12 | Exit | Assert.cs:84:10:84:12 | Exit | +| Assert.cs:86:20:86:20 | After access to parameter b [false] | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:86:20:86:20 | After access to parameter b [true] | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Exceptional Exit | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Exit | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:90:13:90:13 | After access to parameter b [false] | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:13 | After access to parameter b [true] | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:94:13:94:13 | After access to parameter b [false] | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:13 | After access to parameter b [true] | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:98:13:98:13 | After access to parameter b [false] | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:13 | After access to parameter b [true] | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:102:13:102:13 | After access to parameter b [false] | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:13 | After access to parameter b [true] | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:106:13:106:13 | After access to parameter b [false] | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:13 | After access to parameter b [true] | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:110:13:110:13 | After access to parameter b [false] | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:13 | After access to parameter b [true] | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:114:13:114:13 | After access to parameter b [false] | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:13 | After access to parameter b [true] | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:115:23:115:31 | After ... != ... [false] | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:115:23:115:31 | After ... != ... [true] | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:118:13:118:13 | After access to parameter b [false] | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:13 | After access to parameter b [true] | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:119:24:119:32 | After ... == ... [false] | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:119:24:119:32 | After ... == ... [true] | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:122:13:122:13 | After access to parameter b [false] | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:13 | After access to parameter b [true] | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:123:23:123:31 | After ... == ... [false] | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:123:23:123:31 | After ... == ... [true] | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:126:13:126:13 | After access to parameter b [false] | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:13 | After access to parameter b [true] | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:127:24:127:32 | After ... != ... [false] | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:127:24:127:32 | After ... != ... [true] | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:131:18:131:32 | Entry | Assert.cs:131:18:131:32 | Entry | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:138:10:138:12 | Entry | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:138:10:138:12 | Exceptional Exit | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:138:10:138:12 | Exit | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | +| Assert.cs:138:10:138:12 | Exceptional Exit | Assert.cs:138:10:138:12 | Exceptional Exit | +| Assert.cs:138:10:138:12 | Exit | Assert.cs:138:10:138:12 | Exit | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | +| Assignments.cs:1:7:1:17 | Entry | Assignments.cs:1:7:1:17 | Entry | +| Assignments.cs:3:10:3:10 | Entry | Assignments.cs:3:10:3:10 | Entry | +| Assignments.cs:14:18:14:35 | Entry | Assignments.cs:14:18:14:35 | Entry | +| Assignments.cs:17:40:17:40 | Entry | Assignments.cs:17:40:17:40 | Entry | +| Assignments.cs:27:10:27:23 | Entry | Assignments.cs:27:10:27:23 | Entry | +| Assignments.cs:32:10:32:22 | Entry | Assignments.cs:32:10:32:22 | Entry | +| Assignments.cs:38:10:38:11 | Entry | Assignments.cs:38:10:38:11 | Entry | +| BreakInTry.cs:1:7:1:16 | Entry | BreakInTry.cs:1:7:1:16 | Entry | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:3:10:3:11 | Entry | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:26:7:28 | String arg | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:15:13:16:17 | After if (...) ... | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:15:13:16:17 | After if (...) ... | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | | BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:7:26:7:28 | String arg | -| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:10:21:10:26 | break; | -| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:10:21:10:26 | break; | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:14:9:17:9 | {...} | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:16:17:16:17 | ; | -| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:16:17:16:17 | ; | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:20:10:20:11 | enter M2 | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:22:22:22:24 | String arg | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:27:21:27:26 | break; | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:35:7:35:7 | ; | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:22:22:24 | String arg | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:27:21:27:26 | break; | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:35:7:35:7 | ; | +| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:7:26:7:28 | String arg | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:9:21:9:31 | After ... == ... [false] | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:9:21:9:31 | After ... == ... [true] | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:15:13:16:17 | After if (...) ... | +| BreakInTry.cs:15:17:15:28 | After ... == ... [false] | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | +| BreakInTry.cs:15:17:15:28 | After ... == ... [true] | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:20:10:20:11 | Entry | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:22:22:24 | String arg | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:24:13:33:13 | After try {...} ... | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:30:13:33:13 | {...} | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:22:22:24 | String arg | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:27:21:27:26 | break; | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:24:13:33:13 | After try {...} ... | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | break; | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:22:22:22:24 | String arg | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:24:13:33:13 | After try {...} ... | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:30:13:33:13 | {...} | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:24:13:33:13 | After try {...} ... | BreakInTry.cs:24:13:33:13 | After try {...} ... | +| BreakInTry.cs:26:21:26:31 | After ... == ... [false] | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:26:21:26:31 | After ... == ... [true] | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:24:13:33:13 | After try {...} ... | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:35:7:35:7 | ; | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | enter M3 | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:53:7:53:7 | ; | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:24:13:33:13 | After try {...} ... | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:31:21:31:32 | After ... == ... [false] | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:31:21:31:32 | After ... == ... [true] | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:38:10:38:11 | Entry | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:38:10:38:11 | Normal Exit | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:40:9:52:9 | After try {...} ... | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:46:9:52:9 | {...} | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:47:26:47:28 | String arg | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | Normal Exit | +| BreakInTry.cs:40:9:52:9 | After try {...} ... | BreakInTry.cs:40:9:52:9 | After try {...} ... | +| BreakInTry.cs:42:17:42:28 | After ... == ... [false] | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | +| BreakInTry.cs:42:17:42:28 | After ... == ... [true] | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | Normal Exit | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:40:9:52:9 | After try {...} ... | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:53:7:53:7 | ; | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:53:7:53:7 | ; | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | Normal Exit | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:40:9:52:9 | After try {...} ... | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:53:7:53:7 | ; | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | enter M4 | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | +| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:47:26:47:28 | String arg | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:49:21:49:31 | After ... == ... [false] | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:49:21:49:31 | After ... == ... [true] | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:56:10:56:11 | Entry | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:56:10:56:11 | Normal Exit | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:58:9:70:9 | After try {...} ... | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:64:9:70:9 | {...} | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:65:26:65:28 | String arg | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | Normal Exit | +| BreakInTry.cs:58:9:70:9 | After try {...} ... | BreakInTry.cs:58:9:70:9 | After try {...} ... | +| BreakInTry.cs:60:17:60:28 | After ... == ... [false] | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | +| BreakInTry.cs:60:17:60:28 | After ... == ... [true] | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | Normal Exit | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:58:9:70:9 | After try {...} ... | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | break; | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | Normal Exit | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:58:9:70:9 | After try {...} ... | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | -| CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | enter Default | -| CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | -| CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:15:10:15:15 | enter Typeof | -| CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | enter M | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | exit M | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:39:9:39:34 | ...; | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:40:9:40:11 | End: | -| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M | -| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | -| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:34 | ...; | +| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:65:26:65:28 | String arg | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| BreakInTry.cs:67:21:67:31 | After ... == ... [false] | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:67:21:67:31 | After ... == ... [true] | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| CompileTimeOperators.cs:3:7:3:26 | Entry | CompileTimeOperators.cs:3:7:3:26 | Entry | +| CompileTimeOperators.cs:5:9:5:15 | Entry | CompileTimeOperators.cs:5:9:5:15 | Entry | +| CompileTimeOperators.cs:10:9:10:14 | Entry | CompileTimeOperators.cs:10:9:10:14 | Entry | +| CompileTimeOperators.cs:15:10:15:15 | Entry | CompileTimeOperators.cs:15:10:15:15 | Entry | +| CompileTimeOperators.cs:20:12:20:17 | Entry | CompileTimeOperators.cs:20:12:20:17 | Entry | +| CompileTimeOperators.cs:26:7:26:22 | Entry | CompileTimeOperators.cs:26:7:26:22 | Entry | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:28:10:28:10 | Entry | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:28:10:28:10 | Exit | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:40:9:40:11 | End: | +| CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | +| CompileTimeOperators.cs:28:10:28:10 | Exit | CompileTimeOperators.cs:28:10:28:10 | Exit | +| CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:9:40:11 | End: | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | enter M1 | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:38 | call to method ToString | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:38 | call to method ToString | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:10:5:11 | enter M2 | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:26:5:34 | access to property Length | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | -| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:34 | access to property Length | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:10:7:11 | enter M3 | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:38:7:55 | access to property Length | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:38:7:55 | access to property Length | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | -| ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:9:9:10 | enter M4 | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:25:9:33 | access to property Length | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:38:9:38 | 0 | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | access to property Length | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | -| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:38:9:38 | 0 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:11:9:11:10 | enter M5 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:13:13:13:21 | access to property Length | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:13:25:13:25 | 0 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:14:20:14:20 | 0 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:16:20:16:20 | 1 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | -| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:13:13:21 | access to property Length | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:25:13:25 | 0 | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:14:20:14:20 | 0 | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:16:20:16:20 | 1 | -| ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:14:20:14:20 | 0 | -| ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:16:20:16:20 | 1 | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:12:19:13 | enter M6 | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | -| ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:21:10:21:11 | enter M7 | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:24:17:24:37 | call to method ToString | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:24:17:24:37 | call to method ToString | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:17:24:37 | call to method ToString | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:30:10:30:12 | enter Out | ConditionalAccess.cs:30:10:30:12 | enter Out | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:32:10:32:11 | enter M8 | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | -| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item | -| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | ...; | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:9:8:16 | if (...) ... | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | -| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:16 | ...; | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | enter M1 | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:15:13:15:16 | ...; | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:16:9:18:20 | if (...) ... | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:19:16:19:16 | access to local variable x | -| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:16 | ...; | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:9:18:20 | if (...) ... | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:19:16:19:16 | access to local variable x | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | enter M2 | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:27:17:27:20 | ...; | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:28:9:29:16 | if (...) ... | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:29:13:29:16 | ...; | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:30:16:30:16 | access to local variable x | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:20 | ...; | -| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:20 | ...; | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:29:13:29:16 | ...; | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:30:16:30:16 | access to local variable x | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:16 | ...; | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | enter M3 | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:40:13:40:16 | ...; | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:41:9:42:16 | if (...) ... | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:16 | ...; | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:16 | ...; | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | enter M4 | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:16:49:16 | access to parameter x | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:52:17:52:20 | ...; | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:54:16:54:16 | access to local variable y | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:20 | ...; | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:54:16:54:16 | access to local variable y | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:20 | ...; | -| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:20 | ...; | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:16:60:16 | access to parameter x | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:66:13:66:16 | ...; | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:66:13:66:16 | ...; | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:66:13:66:16 | ...; | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:16 | ...; | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:70:9:70:10 | enter M6 | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:81:9:82:16 | if (...) ... | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:82:13:82:16 | ...; | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:83:16:83:16 | access to local variable x | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:82:13:82:16 | ...; | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:83:16:83:16 | access to local variable x | +| ConditionalAccess.cs:1:7:1:23 | Entry | ConditionalAccess.cs:1:7:1:23 | Entry | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:12:3:13 | Entry | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:10:5:11 | Entry | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:34 | After access to property Length | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:26:5:34 | After access to property Length | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:10:7:11 | Entry | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:38:7:55 | After access to property Length | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:38:7:55 | After access to property Length | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:9:9:10 | Entry | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:11:9:11:10 | Entry | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:11:9:11:10 | Normal Exit | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:21 | After access to property Length | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | Normal Exit | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:11:9:11:10 | Normal Exit | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:21 | After access to property Length | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:12:19:13 | Entry | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:21:10:21:11 | Entry | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:23:17:23:38 | After access to property Length | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:17:23:38 | After access to property Length | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:25:13:25:14 | After "" [null] | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | +| ConditionalAccess.cs:30:10:30:12 | Entry | ConditionalAccess.cs:30:10:30:12 | Entry | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:32:10:32:11 | Entry | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:35:9:35:24 | After call to method Out | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:24 | After call to method Out | +| ConditionalAccess.cs:42:9:42:11 | Entry | ConditionalAccess.cs:42:9:42:11 | Entry | +| ConditionalAccess.cs:43:9:43:11 | Entry | ConditionalAccess.cs:43:9:43:11 | Entry | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:60:26:60:38 | Entry | ConditionalAccess.cs:60:26:60:38 | Entry | +| Conditions.cs:1:7:1:16 | Entry | Conditions.cs:1:7:1:16 | Entry | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:3:10:3:19 | Entry | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:5:9:6:16 | After if (...) ... | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:7:9:8:16 | After if (...) ... | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:5:9:6:16 | After if (...) ... | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:9:8:16 | After if (...) ... | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | +| Conditions.cs:5:13:5:15 | After access to parameter inc [false] | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | +| Conditions.cs:5:13:5:15 | After access to parameter inc [true] | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:7:9:8:16 | After if (...) ... | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:11:9:11:10 | Entry | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:14:9:15:16 | After if (...) ... | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:14:13:14:13 | After access to parameter b [false] | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:14:13:14:13 | After access to parameter b [true] | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:16:9:18:20 | After if (...) ... | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:16:13:16:17 | After ... > ... [false] | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:17:13:18:20 | After if (...) ... | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:14:9:15:16 | After if (...) ... | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:9:18:20 | After if (...) ... | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [false] | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:17:13:18:20 | After if (...) ... | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:14:13:14:13 | After access to parameter b [false] | Conditions.cs:14:13:14:13 | After access to parameter b [false] | +| Conditions.cs:14:13:14:13 | After access to parameter b [true] | Conditions.cs:14:13:14:13 | After access to parameter b [true] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:16:9:18:20 | After if (...) ... | +| Conditions.cs:16:13:16:17 | After ... > ... [false] | Conditions.cs:16:13:16:17 | After ... > ... [false] | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:13:18:20 | After if (...) ... | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:17:13:18:20 | After if (...) ... | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:22:9:22:10 | Entry | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:25:9:27:20 | After if (...) ... | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:26:13:27:20 | After if (...) ... | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:28:9:29:16 | After if (...) ... | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:25:9:27:20 | After if (...) ... | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:9:29:16 | After if (...) ... | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:13:27:20 | After if (...) ... | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:26:13:27:20 | After if (...) ... | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:28:9:29:16 | After if (...) ... | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:33:9:33:10 | Entry | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:37:9:38:20 | After if (...) ... | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:39:9:40:16 | After if (...) ... | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:41:9:42:16 | After if (...) ... | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:37:9:38:20 | After if (...) ... | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:9:40:16 | After if (...) ... | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:41:9:42:16 | After if (...) ... | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:39:9:40:16 | After if (...) ... | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:9:42:16 | After if (...) ... | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:41:9:42:16 | After if (...) ... | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:46:9:46:10 | Entry | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:49:16:49:22 | After ... > ... [false] | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | After ... > ... [false] | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:49:16:49:22 | After ... > ... [false] | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:51:17:51:17 | After access to parameter b [false] | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:51:17:51:17 | After access to parameter b [true] | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:57:9:57:10 | Entry | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:60:16:60:22 | After ... > ... [false] | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:65:9:66:16 | After if (...) ... | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:65:13:65:13 | After access to parameter b [true] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [false] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:65:9:66:16 | After if (...) ... | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:65:13:65:13 | After access to parameter b [true] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:60:16:60:22 | After ... > ... [false] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:65:9:66:16 | After if (...) ... | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:65:13:65:13 | After access to parameter b [true] | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:62:17:62:17 | After access to parameter b [false] | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:62:17:62:17 | After access to parameter b [true] | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:65:9:66:16 | After if (...) ... | +| Conditions.cs:65:13:65:13 | After access to parameter b [false] | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:65:13:65:13 | After access to parameter b [true] | Conditions.cs:65:13:65:13 | After access to parameter b [true] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:70:9:70:10 | Entry | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:81:9:82:16 | After if (...) ... | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:81:13:81:13 | After access to local variable b [false] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:81:13:81:13 | After access to local variable b [true] | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | After if (...) ... | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:13:81:13 | After access to local variable b [false] | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:13:81:13 | After access to local variable b [true] | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:9:82:16 | if (...) ... | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:82:13:82:16 | ...; | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:83:16:83:16 | access to local variable x | -| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:16 | ...; | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:86:9:86:10 | enter M7 | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:99:16:99:16 | access to local variable x | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:76:17:76:17 | After access to local variable b [false] | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:76:17:76:17 | After access to local variable b [true] | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:78:17:78:21 | After ... > ... [false] | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:78:17:78:21 | After ... > ... [true] | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:81:9:82:16 | After if (...) ... | +| Conditions.cs:81:13:81:13 | After access to local variable b [false] | Conditions.cs:81:13:81:13 | After access to local variable b [false] | +| Conditions.cs:81:13:81:13 | After access to local variable b [true] | Conditions.cs:81:13:81:13 | After access to local variable b [true] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:86:9:86:10 | Entry | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | enter M8 | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:106:13:106:20 | ...; | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:107:9:109:24 | if (...) ... | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:110:16:110:16 | access to local variable x | -| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:20 | ...; | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:110:16:110:16 | access to local variable x | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:113:10:113:11 | enter M9 | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:113:10:113:11 | exit M9 (normal) | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:116:25:116:25 | access to local variable i | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | exit M9 (normal) | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | exit M9 (normal) | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:25 | access to local variable i | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | enter M10 | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:16:131:19 | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:136:17:138:17 | {...} | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | true | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:134:13:139:13 | {...} | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:136:17:138:17 | {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:136:17:138:17 | {...} | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:134:13:139:13 | {...} | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:136:17:138:17 | {...} | -| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:136:17:138:17 | {...} | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | enter M11 | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:17:145:29 | ... ? ... : ... | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:21:145:23 | "a" | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:27:145:29 | "b" | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:149:13:149:49 | ...; | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:149:13:149:49 | ...; | -| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | -| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:49 | ...; | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | enter ExitMethods | -| ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | enter M1 | -| ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:14:10:14:11 | enter M2 | -| ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:20:10:20:11 | enter M3 | -| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:26:10:26:11 | enter M4 | -| ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | enter M5 | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | enter M6 | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:48:9:51:9 | catch (...) {...} | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | enter M7 | -| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | enter M8 | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:69:19:69:33 | object creation of type Exception | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | -| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:19:69:33 | object creation of type Exception | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:72:17:72:27 | enter ErrorAlways | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:75:19:75:33 | object creation of type Exception | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:77:41:77:43 | "b" | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | -| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:19:75:33 | object creation of type Exception | -| ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:41:77:43 | "b" | -| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | -| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | -| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:87:10:87:13 | enter Exit | -| ExitMethods.cs:92:10:92:18 | enter ExitInTry | ExitMethods.cs:92:10:92:18 | enter ExitInTry | -| ExitMethods.cs:105:10:105:24 | enter ApplicationExit | ExitMethods.cs:105:10:105:24 | enter ApplicationExit | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:110:13:110:21 | enter ThrowExpr | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:110:13:110:21 | exit ThrowExpr | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:112:29:112:29 | 1 | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:112:69:112:75 | "input" | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr | ExitMethods.cs:110:13:110:21 | exit ThrowExpr | -| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:29:112:29 | 1 | -| ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:69:112:75 | "input" | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:34:117:34 | 0 | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:117:38:117:38 | 1 | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | -| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:34:117:34 | 0 | -| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:38:117:38 | 1 | -| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:120:17:120:32 | enter FailingAssertion | -| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | enter AssertFalse | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | -| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:143:13:143:43 | ...; | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:145:13:145:53 | ...; | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | -| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:13:143:43 | ...; | -| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:13:145:53 | ...; | -| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:5:23:5:29 | enter ToInt32 | -| Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:10:24:10:29 | enter ToBool | -| Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:23:15:33 | enter CallToInt32 | -| Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:20:17:20:20 | enter Main | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | enter Finally | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | enter M1 | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | exit M1 | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | exit M1 (abnormal) | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | exit M1 (normal) | -| Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | -| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 (abnormal) | -| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | exit M1 (normal) | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | enter M2 | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 (abnormal) | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 (normal) | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:24:13:24:19 | return ...; | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:26:9:29:9 | catch (...) {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:30:9:40:9 | catch (...) {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:41:9:43:9 | catch (...) {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:49:9:51:9 | {...} | -| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) | -| Finally.cs:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | return ...; | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:92:17:92:17 | After access to local variable b [false] | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:92:17:92:17 | After access to local variable b [true] | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:94:17:94:21 | After ... > ... [false] | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:94:17:94:21 | After ... > ... [true] | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:96:17:96:17 | After access to local variable b [false] | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:96:17:96:17 | After access to local variable b [true] | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:102:12:102:13 | Entry | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:105:9:106:20 | After if (...) ... | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:105:13:105:13 | After access to parameter b [false] | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:105:13:105:13 | After access to parameter b [true] | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:107:9:109:24 | After if (...) ... | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:107:13:107:24 | After ... > ... [false] | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:108:13:109:24 | After if (...) ... | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:105:9:106:20 | After if (...) ... | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:9:109:24 | After if (...) ... | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [false] | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:108:13:109:24 | After if (...) ... | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:105:13:105:13 | After access to parameter b [false] | Conditions.cs:105:13:105:13 | After access to parameter b [false] | +| Conditions.cs:105:13:105:13 | After access to parameter b [true] | Conditions.cs:105:13:105:13 | After access to parameter b [true] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:107:9:109:24 | After if (...) ... | +| Conditions.cs:107:13:107:24 | After ... > ... [false] | Conditions.cs:107:13:107:24 | After ... > ... [false] | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:13:109:24 | After if (...) ... | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:108:13:109:24 | After if (...) ... | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:113:10:113:11 | Entry | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:116:25:116:39 | After ... < ... [false] | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:116:25:116:39 | Before ... < ... | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:116:25:116:39 | After ... < ... [false] | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [false] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | Before ... < ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:121:17:121:20 | After access to local variable last [false] | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:121:17:121:20 | After access to local variable last [true] | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:129:10:129:12 | Entry | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:133:13:139:13 | After if (...) ... | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:135:17:138:17 | After if (...) ... | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:133:13:139:13 | After if (...) ... | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:135:17:138:17 | After if (...) ... | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | +| Conditions.cs:133:13:139:13 | After if (...) ... | Conditions.cs:133:13:139:13 | After if (...) ... | +| Conditions.cs:133:17:133:22 | After access to field Field1 [false] | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:135:17:138:17 | After if (...) ... | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | +| Conditions.cs:135:17:138:17 | After if (...) ... | Conditions.cs:135:17:138:17 | After if (...) ... | +| Conditions.cs:135:21:135:26 | After access to field Field2 [false] | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | +| Conditions.cs:135:21:135:26 | After access to field Field2 [true] | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:143:10:143:12 | Entry | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:145:17:145:17 | After access to parameter b [false] | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:145:17:145:17 | After access to parameter b [true] | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:145:17:145:29 | After ... ? ... : ... | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:146:9:149:49 | After if (...) ... | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:146:13:146:13 | After access to parameter b [false] | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:146:13:146:13 | After access to parameter b [true] | +| Conditions.cs:145:17:145:17 | After access to parameter b [false] | Conditions.cs:145:17:145:17 | After access to parameter b [false] | +| Conditions.cs:145:17:145:17 | After access to parameter b [true] | Conditions.cs:145:17:145:17 | After access to parameter b [true] | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:17:145:29 | After ... ? ... : ... | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:146:9:149:49 | After if (...) ... | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:146:13:146:13 | After access to parameter b [false] | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:146:13:146:13 | After access to parameter b [true] | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:146:9:149:49 | After if (...) ... | +| Conditions.cs:146:13:146:13 | After access to parameter b [false] | Conditions.cs:146:13:146:13 | After access to parameter b [false] | +| Conditions.cs:146:13:146:13 | After access to parameter b [true] | Conditions.cs:146:13:146:13 | After access to parameter b [true] | +| ExitMethods.cs:6:7:6:17 | Entry | ExitMethods.cs:6:7:6:17 | Entry | +| ExitMethods.cs:8:10:8:11 | Entry | ExitMethods.cs:8:10:8:11 | Entry | +| ExitMethods.cs:14:10:14:11 | Entry | ExitMethods.cs:14:10:14:11 | Entry | +| ExitMethods.cs:20:10:20:11 | Entry | ExitMethods.cs:20:10:20:11 | Entry | +| ExitMethods.cs:26:10:26:11 | Entry | ExitMethods.cs:26:10:26:11 | Entry | +| ExitMethods.cs:32:10:32:11 | Entry | ExitMethods.cs:32:10:32:11 | Entry | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:38:10:38:11 | Entry | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:38:10:38:11 | Exit | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:38:10:38:11 | Normal Exit | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:38:10:38:11 | Exit | ExitMethods.cs:38:10:38:11 | Exit | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:38:10:38:11 | Normal Exit | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:54:10:54:11 | Entry | ExitMethods.cs:54:10:54:11 | Entry | +| ExitMethods.cs:60:10:60:11 | Entry | ExitMethods.cs:60:10:60:11 | Entry | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:66:17:66:26 | Entry | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:66:17:66:26 | Exit | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | +| ExitMethods.cs:66:17:66:26 | Exit | ExitMethods.cs:66:17:66:26 | Exit | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:72:17:72:27 | Entry | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:72:17:72:27 | Exceptional Exit | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | +| ExitMethods.cs:72:17:72:27 | Exceptional Exit | ExitMethods.cs:72:17:72:27 | Exceptional Exit | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | +| ExitMethods.cs:80:17:80:28 | Entry | ExitMethods.cs:80:17:80:28 | Entry | +| ExitMethods.cs:85:17:85:28 | Entry | ExitMethods.cs:85:17:85:28 | Entry | +| ExitMethods.cs:87:10:87:13 | Entry | ExitMethods.cs:87:10:87:13 | Entry | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:92:10:92:18 | Entry | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:92:10:92:18 | Exceptional Exit | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:92:10:92:18 | Exit | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:94:9:102:9 | After try {...} ... | +| ExitMethods.cs:92:10:92:18 | Exceptional Exit | ExitMethods.cs:92:10:92:18 | Exceptional Exit | +| ExitMethods.cs:92:10:92:18 | Exit | ExitMethods.cs:92:10:92:18 | Exit | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:94:9:102:9 | After try {...} ... | +| ExitMethods.cs:105:10:105:24 | Entry | ExitMethods.cs:105:10:105:24 | Entry | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:110:13:110:21 | Entry | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:110:13:110:21 | Exit | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | +| ExitMethods.cs:110:13:110:21 | Exit | ExitMethods.cs:110:13:110:21 | Exit | +| ExitMethods.cs:112:16:112:25 | After ... != ... [false] | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:115:16:115:34 | Entry | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | +| ExitMethods.cs:120:17:120:32 | Entry | ExitMethods.cs:120:17:120:32 | Entry | +| ExitMethods.cs:126:17:126:33 | Entry | ExitMethods.cs:126:17:126:33 | Entry | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:10:132:20 | Entry | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:10:132:20 | Exceptional Exit | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:10:132:20 | Exit | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:33:132:49 | After call to method IsFalse | +| ExitMethods.cs:132:10:132:20 | Exceptional Exit | ExitMethods.cs:132:10:132:20 | Exceptional Exit | +| ExitMethods.cs:132:10:132:20 | Exit | ExitMethods.cs:132:10:132:20 | Exit | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:33:132:49 | After call to method IsFalse | +| ExitMethods.cs:134:17:134:33 | Entry | ExitMethods.cs:134:17:134:33 | Entry | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:140:17:140:42 | Entry | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:140:17:140:42 | Exceptional Exit | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | +| ExitMethods.cs:140:17:140:42 | Exceptional Exit | ExitMethods.cs:140:17:140:42 | Exceptional Exit | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | +| Extensions.cs:5:23:5:29 | Entry | Extensions.cs:5:23:5:29 | Entry | +| Extensions.cs:10:24:10:29 | Entry | Extensions.cs:10:24:10:29 | Entry | +| Extensions.cs:15:23:15:33 | Entry | Extensions.cs:15:23:15:33 | Entry | +| Extensions.cs:20:17:20:20 | Entry | Extensions.cs:20:17:20:20 | Entry | +| Finally.cs:3:14:3:20 | Entry | Finally.cs:3:14:3:20 | Entry | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:7:10:7:11 | Entry | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:7:10:7:11 | Exceptional Exit | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:7:10:7:11 | Exit | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:9:9:16:9 | After try {...} ... | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:11:13:11:37 | After call to method WriteLine | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:14:9:16:9 | {...} | +| Finally.cs:7:10:7:11 | Exceptional Exit | Finally.cs:7:10:7:11 | Exceptional Exit | +| Finally.cs:7:10:7:11 | Exit | Finally.cs:7:10:7:11 | Exit | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:9:9:16:9 | After try {...} ... | +| Finally.cs:11:13:11:37 | After call to method WriteLine | Finally.cs:11:13:11:37 | After call to method WriteLine | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | Exceptional Exit | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | Exit | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:9:9:16:9 | After try {...} ... | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:14:9:16:9 | {...} | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:19:10:19:11 | Entry | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:19:10:19:11 | Exceptional Exit | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:19:10:19:11 | Exit | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:19:10:19:11 | Normal Exit | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:21:9:51:9 | After try {...} ... | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:23:13:23:37 | After call to method WriteLine | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:26:9:29:9 | catch (...) {...} | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:49:9:51:9 | {...} | +| Finally.cs:19:10:19:11 | Exceptional Exit | Finally.cs:19:10:19:11 | Exceptional Exit | +| Finally.cs:19:10:19:11 | Exit | Finally.cs:19:10:19:11 | Exit | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:19:10:19:11 | Normal Exit | +| Finally.cs:21:9:51:9 | After try {...} ... | Finally.cs:21:9:51:9 | After try {...} ... | +| Finally.cs:23:13:23:37 | After call to method WriteLine | Finally.cs:23:13:23:37 | After call to method WriteLine | +| Finally.cs:26:9:29:9 | After catch (...) {...} [match] | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | | Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | catch (...) {...} | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | exit M2 | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | exit M2 (abnormal) | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | exit M2 (normal) | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:30:9:40:9 | After catch (...) {...} [match] | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:41:9:43:9 | After catch (...) {...} [match] | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | Exceptional Exit | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | Exit | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | Normal Exit | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:21:9:51:9 | After try {...} ... | | Finally.cs:49:9:51:9 | {...} | Finally.cs:49:9:51:9 | {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | enter M3 | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 (abnormal) | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 (normal) | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:59:13:59:19 | return ...; | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:61:9:64:9 | catch (...) {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:65:9:67:9 | catch (...) {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:69:9:71:9 | {...} | -| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) | -| Finally.cs:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:54:10:54:11 | Entry | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:54:10:54:11 | Exceptional Exit | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:54:10:54:11 | Exit | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:54:10:54:11 | Normal Exit | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:56:9:71:9 | After try {...} ... | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:58:13:58:37 | After call to method WriteLine | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:61:9:64:9 | catch (...) {...} | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:69:9:71:9 | {...} | +| Finally.cs:54:10:54:11 | Exceptional Exit | Finally.cs:54:10:54:11 | Exceptional Exit | +| Finally.cs:54:10:54:11 | Exit | Finally.cs:54:10:54:11 | Exit | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:54:10:54:11 | Normal Exit | +| Finally.cs:56:9:71:9 | After try {...} ... | Finally.cs:56:9:71:9 | After try {...} ... | +| Finally.cs:58:13:58:37 | After call to method WriteLine | Finally.cs:58:13:58:37 | After call to method WriteLine | +| Finally.cs:61:9:64:9 | After catch (...) {...} [match] | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | | Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | catch (...) {...} | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | exit M3 | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | exit M3 (abnormal) | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | exit M3 (normal) | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:65:35:65:51 | After ... != ... [false] | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:65:35:65:51 | After ... != ... [true] | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | Exceptional Exit | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | Exit | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | Normal Exit | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:56:9:71:9 | After try {...} ... | | Finally.cs:69:9:71:9 | {...} | Finally.cs:69:9:71:9 | {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | enter M4 | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | exit M4 | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | exit M4 (abnormal) | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | exit M4 (normal) | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:77:16:77:16 | access to local variable i | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:78:9:100:9 | {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:86:21:86:26 | break; | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 | -| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | exit M4 (normal) | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | exit M4 | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | exit M4 (abnormal) | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | exit M4 (normal) | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:16 | access to local variable i | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:78:9:100:9 | {...} | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:86:21:86:26 | break; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:74:10:74:11 | exit M4 (abnormal) | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:78:9:100:9 | {...} | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:86:21:86:26 | break; | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:86:21:86:26 | break; | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:86:21:86:26 | break; | -| Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:74:10:74:11 | exit M4 (abnormal) | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:74:10:74:11 | Entry | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:74:10:74:11 | Exit | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:74:10:74:11 | Normal Exit | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:77:9:100:9 | After while (...) ... | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:89:13:99:13 | {...} | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:96:17:98:17 | {...} | +| Finally.cs:74:10:74:11 | Exceptional Exit | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:74:10:74:11 | Exit | Finally.cs:74:10:74:11 | Exit | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:74:10:74:11 | Normal Exit | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:77:9:100:9 | After while (...) ... | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:74:10:74:11 | Exit | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:74:10:74:11 | Normal Exit | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:9:100:9 | After while (...) ... | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:89:13:99:13 | {...} | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:96:17:98:17 | {...} | +| Finally.cs:77:16:77:20 | After ... > ... [false] | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:89:13:99:13 | {...} | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:96:17:98:17 | {...} | +| Finally.cs:79:13:99:13 | After try {...} ... | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:81:21:81:26 | After ... == ... [true] | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:83:21:83:26 | After ... == ... [true] | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:85:21:85:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:85:21:85:26 | After ... == ... [true] | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:79:13:99:13 | After try {...} ... | | Finally.cs:89:13:99:13 | {...} | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | After object creation of type Exception | | Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | exit M4 (abnormal) | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:92:25:92:30 | After ... == ... [false] | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:93:31:93:45 | After object creation of type Exception | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:90:17:98:17 | After try {...} ... | | Finally.cs:96:17:98:17 | {...} | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | enter M5 | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | exit M5 | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | exit M5 (abnormal) | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | exit M5 (normal) | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | if (...) ... | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | exit M5 | -| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 (abnormal) | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | exit M5 (normal) | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | exit M5 | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | exit M5 (abnormal) | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | exit M5 (normal) | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:103:10:103:11 | Entry | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:103:10:103:11 | Exceptional Exit | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:103:10:103:11 | Exit | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:103:10:103:11 | Normal Exit | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:105:9:118:9 | After try {...} ... | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:107:17:107:21 | After access to field Field | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:113:9:118:9 | {...} | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:114:13:115:41 | After if (...) ... | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:116:13:117:37 | After if (...) ... | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:103:10:103:11 | Exceptional Exit | Finally.cs:103:10:103:11 | Exceptional Exit | +| Finally.cs:103:10:103:11 | Exit | Finally.cs:103:10:103:11 | Exit | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:103:10:103:11 | Normal Exit | +| Finally.cs:105:9:118:9 | After try {...} ... | Finally.cs:105:9:118:9 | After try {...} ... | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:21 | After access to field Field | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:107:17:107:33 | After ... == ... [true] | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:109:17:109:33 | After ... == ... [false] | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | Exceptional Exit | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | Exit | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | Normal Exit | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:105:9:118:9 | After try {...} ... | | Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:116:13:117:37 | if (...) ... | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | exit M5 | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | exit M5 (normal) | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | enter M6 | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | enter M7 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | enter M8 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (abnormal) | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (normal) | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | catch (...) {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | Exception e | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 | -| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 (abnormal) | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 (normal) | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | exit M8 | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | exit M8 (abnormal) | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | exit M8 (normal) | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | After if (...) ... | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:116:13:117:37 | After if (...) ... | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:103:10:103:11 | Exceptional Exit | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:103:10:103:11 | Exit | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:103:10:103:11 | Normal Exit | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:105:9:118:9 | After try {...} ... | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:114:13:115:41 | After if (...) ... | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:13:117:37 | After if (...) ... | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:103:10:103:11 | Exceptional Exit | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:103:10:103:11 | Exit | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:103:10:103:11 | Normal Exit | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:105:9:118:9 | After try {...} ... | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:116:13:117:37 | After if (...) ... | +| Finally.cs:116:17:116:32 | After ... > ... [false] | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:116:17:116:32 | After ... > ... [true] | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:121:10:121:11 | Entry | Finally.cs:121:10:121:11 | Entry | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:133:10:133:11 | Entry | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:137:13:137:36 | After call to method WriteLine | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:140:9:143:9 | {...} | +| Finally.cs:137:13:137:36 | After call to method WriteLine | Finally.cs:137:13:137:36 | After call to method WriteLine | +| Finally.cs:140:9:143:9 | {...} | Finally.cs:140:9:143:9 | {...} | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:147:10:147:11 | Entry | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:147:10:147:11 | Exceptional Exit | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:147:10:147:11 | Exit | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:149:9:169:9 | After try {...} ... | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:151:17:151:28 | After ... == ... [false] | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:155:9:169:9 | {...} | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:156:13:168:13 | After try {...} ... | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:158:21:158:31 | After access to property Length | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:161:13:164:13 | catch (...) {...} | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:147:10:147:11 | Exceptional Exit | Finally.cs:147:10:147:11 | Exceptional Exit | +| Finally.cs:147:10:147:11 | Exit | Finally.cs:147:10:147:11 | Exit | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:149:9:169:9 | After try {...} ... | +| Finally.cs:151:17:151:28 | After ... == ... [false] | Finally.cs:151:17:151:28 | After ... == ... [false] | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | Exceptional Exit | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | Exit | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:149:9:169:9 | After try {...} ... | | Finally.cs:155:9:169:9 | {...} | Finally.cs:155:9:169:9 | {...} | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:159:41:159:43 | "1" | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | After try {...} ... | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:31 | After access to property Length | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | | Finally.cs:155:9:169:9 | {...} | Finally.cs:161:13:164:13 | catch (...) {...} | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:30:161:30 | Exception e | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:41:159:43 | "1" | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:147:10:147:11 | Exceptional Exit | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:147:10:147:11 | Exit | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:149:9:169:9 | After try {...} ... | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:156:13:168:13 | After try {...} ... | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:21:158:31 | After access to property Length | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:158:21:158:36 | After ... == ... [false] | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:159:27:159:44 | After object creation of type Exception | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | | Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | catch (...) {...} | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:30:161:30 | Exception e | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | enter ExceptionA | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | enter ExceptionB | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | enter ExceptionC | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | enter M9 | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 (normal) | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:21:180:43 | throw ...; | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 | -| Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) | -| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:180:21:180:43 | throw ...; | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | exit M9 | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | exit M9 (normal) | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:161:39:161:54 | After ... == ... [false] | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:161:39:161:54 | After ... == ... [true] | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:172:11:172:20 | Entry | Finally.cs:172:11:172:20 | Entry | +| Finally.cs:173:11:173:20 | Entry | Finally.cs:173:11:173:20 | Entry | +| Finally.cs:174:11:174:20 | Entry | Finally.cs:174:11:174:20 | Entry | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:176:10:176:11 | Entry | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:176:10:176:11 | Exceptional Exit | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:176:10:176:11 | Exit | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:178:9:192:9 | After try {...} ... | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:184:13:191:13 | After try {...} ... | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:176:10:176:11 | Exceptional Exit | Finally.cs:176:10:176:11 | Exceptional Exit | +| Finally.cs:176:10:176:11 | Exit | Finally.cs:176:10:176:11 | Exit | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:178:9:192:9 | After try {...} ... | +| Finally.cs:180:17:180:18 | After access to parameter b1 [false] | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:180:27:180:42 | After object creation of type ExceptionA | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | Exceptional Exit | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | Exit | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:178:9:192:9 | After try {...} ... | | Finally.cs:183:9:192:9 | {...} | Finally.cs:183:9:192:9 | {...} | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:184:13:191:13 | After try {...} ... | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | | Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:178:9:192:9 | After try {...} ... | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:184:13:191:13 | After try {...} ... | +| Finally.cs:186:21:186:22 | After access to parameter b2 [false] | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:186:31:186:46 | After object creation of type ExceptionB | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | | Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | enter M10 | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | exit M10 | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 | -| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | exit M10 | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | exit M10 (abnormal) | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [false] | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:190:21:190:22 | After access to parameter b1 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:195:10:195:12 | Exceptional Exit | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:195:10:195:12 | Exit | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:197:9:212:9 | After try {...} ... | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:203:13:210:13 | After try {...} ... | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:208:13:210:13 | {...} | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | +| Finally.cs:195:10:195:12 | Exceptional Exit | Finally.cs:195:10:195:12 | Exceptional Exit | +| Finally.cs:195:10:195:12 | Exit | Finally.cs:195:10:195:12 | Exit | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:197:9:212:9 | After try {...} ... | +| Finally.cs:199:17:199:18 | After access to parameter b1 [false] | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:199:27:199:42 | After object creation of type ExceptionA | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | Exceptional Exit | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | Exit | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:197:9:212:9 | After try {...} ... | | Finally.cs:202:9:212:9 | {...} | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | After try {...} ... | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | | Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | exit M10 | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | exit M10 (abnormal) | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:197:9:212:9 | After try {...} ... | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:203:13:210:13 | After try {...} ... | +| Finally.cs:205:21:205:22 | After access to parameter b2 [false] | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:205:31:205:46 | After object creation of type ExceptionB | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | Exceptional Exit | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | Exit | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:197:9:212:9 | After try {...} ... | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:203:13:210:13 | After try {...} ... | | Finally.cs:208:13:210:13 | {...} | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | enter M11 | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:222:9:225:9 | catch {...} | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:227:9:229:9 | {...} | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:197:9:212:9 | After try {...} ... | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:203:13:210:13 | After try {...} ... | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:209:21:209:22 | After access to parameter b3 [true] | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:216:10:216:12 | Entry | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:220:13:220:36 | After call to method WriteLine | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:222:9:225:9 | catch {...} | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:227:9:229:9 | {...} | +| Finally.cs:220:13:220:36 | After call to method WriteLine | Finally.cs:220:13:220:36 | After call to method WriteLine | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:222:9:225:9 | catch {...} | | Finally.cs:227:9:229:9 | {...} | Finally.cs:227:9:229:9 | {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | enter M12 | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | exit M12 (abnormal) | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:254:13:254:45 | ...; | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:233:10:233:12 | Entry | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:233:10:233:12 | Exceptional Exit | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:233:10:233:12 | Exit | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:235:9:259:9 | After try {...} ... | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:243:13:253:13 | {...} | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:250:17:252:17 | {...} | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:257:9:259:9 | {...} | +| Finally.cs:233:10:233:12 | Exceptional Exit | Finally.cs:233:10:233:12 | Exceptional Exit | +| Finally.cs:233:10:233:12 | Exit | Finally.cs:233:10:233:12 | Exit | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:235:9:259:9 | After try {...} ... | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:239:21:239:22 | After access to parameter b1 [false] | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | +| Finally.cs:240:27:240:42 | After object creation of type ExceptionA | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | Exceptional Exit | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | Exit | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:235:9:259:9 | After try {...} ... | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:237:13:253:13 | After try {...} ... | | Finally.cs:243:13:253:13 | {...} | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | | Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:254:13:254:45 | ...; | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:254:13:254:44 | After call to method WriteLine | | Finally.cs:243:13:253:13 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:246:25:246:26 | After access to parameter b2 [false] | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | +| Finally.cs:247:31:247:46 | After object creation of type ExceptionA | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | Exceptional Exit | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | Exit | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:235:9:259:9 | After try {...} ... | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:244:17:252:17 | After try {...} ... | | Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:254:13:254:45 | ...; | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:254:13:254:44 | After call to method WriteLine | | Finally.cs:250:17:252:17 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:45 | ...; | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | +| Finally.cs:254:13:254:44 | After call to method WriteLine | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | Exceptional Exit | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | Exit | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:235:9:259:9 | After try {...} ... | | Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | enter M13 | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | exit M13 | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | exit M13 (abnormal) | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | exit M13 (normal) | -| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | -| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 (abnormal) | -| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 (normal) | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | enter Foreach | -| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | enter M1 | -| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | exit M1 (normal) | -| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | -| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:8:22:8:24 | String arg | -| 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 ...) ... | Foreach.cs:6:10:6:11 | exit M1 (normal) | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:263:10:263:12 | Entry | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:263:10:263:12 | Exceptional Exit | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:263:10:263:12 | Exit | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:265:9:273:9 | After try {...} ... | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:267:13:267:34 | After call to method WriteLine | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:270:9:273:9 | {...} | +| Finally.cs:263:10:263:12 | Exceptional Exit | Finally.cs:263:10:263:12 | Exceptional Exit | +| Finally.cs:263:10:263:12 | Exit | Finally.cs:263:10:263:12 | Exit | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:265:9:273:9 | After try {...} ... | +| Finally.cs:267:13:267:34 | After call to method WriteLine | Finally.cs:267:13:267:34 | After call to method WriteLine | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | Exceptional Exit | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | Exit | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:265:9:273:9 | After try {...} ... | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:270:9:273:9 | {...} | +| Foreach.cs:4:7:4:13 | Entry | Foreach.cs:4:7:4:13 | Entry | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:6:10:6:11 | Entry | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:22:8:24 | String arg | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | | Foreach.cs:8:22:8:24 | String arg | Foreach.cs:8:22:8:24 | String arg | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:12:10:12:11 | enter M2 | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:12:10:12:11 | exit M2 (normal) | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:14:22:14:22 | String _ | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | exit M2 (normal) | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | exit M2 (normal) | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:22:14:22 | String _ | +| Foreach.cs:8:29:8:32 | After access to parameter args [empty] | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:8:22:8:24 | String arg | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:12:10:12:11 | Entry | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:22:14:22 | String _ | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | | Foreach.cs:14:22:14:22 | String _ | Foreach.cs:14:22:14:22 | String _ | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:18:10:18:11 | enter M3 | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:18:10:18:11 | exit M3 (normal) | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:20:22:20:22 | String x | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:20:27:20:68 | ... ?? ... | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:20:43:20:68 | call to method Empty | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | exit M3 (normal) | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | exit M3 (normal) | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x | +| Foreach.cs:14:27:14:30 | After access to parameter args [empty] | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:14:22:14:22 | String _ | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:18:10:18:11 | Entry | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:22:20:22 | String x | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:27 | After access to parameter e [null] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:38 | After call to method ToArray [null] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | | Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:22:20:22 | String x | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:18:10:18:11 | exit M3 (normal) | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:22:20:22 | String x | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:68 | ... ?? ... | -| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:24:10:24:11 | enter M4 | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:24:10:24:11 | exit M4 (normal) | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | exit M4 (normal) | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | exit M4 (normal) | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:26:23:26:23 | String x | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:30:10:30:11 | enter M5 | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:30:10:30:11 | exit M5 (normal) | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | exit M5 (normal) | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | exit M5 (normal) | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:32:23:32:23 | String x | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:36:10:36:11 | enter M6 | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:36:10:36:11 | exit M6 (normal) | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:38:26:38:26 | String x | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | exit M6 (normal) | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | exit M6 (normal) | -| 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 | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | enter IndexInitializers | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | enter Compound | -| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | enter Test | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | enter M1 | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:10:13:10:19 | return ...; | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:29:11:32 | access to parameter args | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | -| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | +| Foreach.cs:20:27:20:27 | After access to parameter e [null] | Foreach.cs:20:27:20:27 | After access to parameter e [null] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:27:20:38 | After call to method ToArray [null] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:22:20:22 | String x | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | +| Foreach.cs:20:43:20:68 | After call to method Empty [empty] | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:24:10:24:11 | Entry | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:18:26:31 | Before (..., ...) | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:26:18:26:31 | Before (..., ...) | +| Foreach.cs:26:36:26:39 | After access to parameter args [empty] | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:26:18:26:31 | Before (..., ...) | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:30:10:30:11 | Entry | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:18:32:27 | Before (..., ...) | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:32:18:32:27 | Before (..., ...) | +| Foreach.cs:32:32:32:35 | After access to parameter args [empty] | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:32:18:32:27 | Before (..., ...) | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:36:10:36:11 | Entry | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:18:38:34 | Before (..., ...) | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:38:18:38:34 | Before (..., ...) | +| Foreach.cs:38:39:38:42 | After access to parameter args [empty] | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | Foreach.cs:38:18:38:34 | Before (..., ...) | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | Entry | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | Entry | +| Initializers.cs:8:5:8:16 | Entry | Initializers.cs:8:5:8:16 | Entry | +| Initializers.cs:10:5:10:16 | Entry | Initializers.cs:10:5:10:16 | Entry | +| Initializers.cs:12:10:12:10 | Entry | Initializers.cs:12:10:12:10 | Entry | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Entry | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Entry | +| Initializers.cs:26:11:26:13 | Entry | Initializers.cs:26:11:26:13 | Entry | +| Initializers.cs:31:9:31:11 | Entry | Initializers.cs:31:9:31:11 | Entry | +| Initializers.cs:33:9:33:11 | Entry | Initializers.cs:33:9:33:11 | Entry | +| Initializers.cs:35:9:35:11 | Entry | Initializers.cs:35:9:35:11 | Entry | +| Initializers.cs:39:7:39:23 | Entry | Initializers.cs:39:7:39:23 | Entry | +| Initializers.cs:41:11:41:18 | Entry | Initializers.cs:41:11:41:18 | Entry | +| Initializers.cs:51:10:51:13 | Entry | Initializers.cs:51:10:51:13 | Entry | +| LoopUnrolling.cs:5:7:5:19 | Entry | LoopUnrolling.cs:5:7:5:19 | Entry | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:7:10:7:11 | Entry | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:7:10:7:11 | Normal Exit | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | Normal Exit | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | enter M2 | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:22:18:22 | String x | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:15:10:15:11 | Entry | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:22:18:22 | String x | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:22:18:22 | String x | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | enter M3 | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:18:22:18:22 | String x | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:22:10:22:11 | Entry | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:26:25:29 | Char arg0 | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | enter M4 | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:32:22:32:22 | String x | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:29:10:29:11 | Entry | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:22:32:22 | String x | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | enter M5 | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:36:10:36:11 | Entry | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | enter M6 | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:48:22:48:22 | String x | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:50:9:50:13 | Label: | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | -| LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:48:22:48:22 | String x | -| LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:50:9:50:13 | Label: | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:45:10:45:11 | Entry | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:50:9:50:13 | Label: | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:50:9:50:13 | Label: | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:9:50:13 | Label: | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | enter M7 | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:55:10:55:11 | Entry | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | enter M8 | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [true] !... | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:70:13:70:19 | return ...; | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:22:72:24 | String arg | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:22:72:24 | String arg | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:69:13:69:23 | [true] !... | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:72:22:72:24 | String arg | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:67:10:67:11 | Entry | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:67:10:67:11 | Normal Exit | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | Normal Exit | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:22:72:24 | String arg | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | enter M9 | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:79:22:79:22 | String x | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:76:10:76:11 | Entry | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:22:79:22 | String x | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | enter M10 | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:88:22:88:22 | String x | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:85:10:85:12 | Entry | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:22:88:22 | String x | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | enter M11 | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:22:97:22 | String x | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:94:10:94:12 | Entry | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | -| 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 | 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 | -| MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | -| MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | -| MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:28:6:31 | null | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:25:7:39 | {...} | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationB.cs:4:25:4:37 | {...} | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | +| MultiImplementationA.cs:4:7:4:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | Entry | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | Normal Exit | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationB.cs:1:7:1:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | Normal Exit | +| MultiImplementationA.cs:6:22:6:31 | Before throw ... | MultiImplementationA.cs:6:22:6:31 | Before throw ... | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | Before throw ... | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | Entry | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | Exit | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationB.cs:3:22:3:22 | 0 | +| MultiImplementationA.cs:6:22:6:31 | Exit | MultiImplementationA.cs:6:22:6:31 | Exit | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:21:7:23 | Entry | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:21:7:23 | Exit | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:25:7:39 | {...} | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationB.cs:4:25:4:37 | {...} | +| MultiImplementationA.cs:7:21:7:23 | Exit | MultiImplementationA.cs:7:21:7:23 | Exit | | MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:25:7:39 | {...} | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:45:7:59 | {...} | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationB.cs:4:43:4:45 | {...} | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:41:7:43 | Entry | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:41:7:43 | Exit | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:45:7:59 | {...} | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationB.cs:4:43:4:45 | {...} | +| MultiImplementationA.cs:7:41:7:43 | Exit | MultiImplementationA.cs:7:41:7:43 | Exit | | MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:45:7:59 | {...} | -| MultiImplementationA.cs:8:16:8:16 | enter M | 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 | enter M | MultiImplementationA.cs:8:29:8:32 | null | -| MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | -| MultiImplementationA.cs:8:16:8:16 | exit M | 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:8:16:8:16 | Entry | MultiImplementationA.cs:8:16:8:16 | Entry | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationA.cs:8:16:8:16 | Exit | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationA.cs:8:23:8:32 | Before throw ... | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationA.cs:8:16:8:16 | Exit | MultiImplementationA.cs:8:16:8:16 | Exit | +| MultiImplementationA.cs:8:23:8:32 | Before throw ... | MultiImplementationA.cs:8:23:8:32 | Before throw ... | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:11:7:11:8 | Entry | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:11:7:11:8 | Normal Exit | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:13:16:13:20 | Before ... = ... | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationB.cs:11:16:11:20 | Before ... = ... | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | Normal Exit | +| MultiImplementationA.cs:13:16:13:20 | Before ... = ... | MultiImplementationA.cs:13:16:13:20 | Before ... = ... | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | Entry | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | Exit | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | access to parameter i | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationB.cs:12:31:12:40 | Before throw ... | +| MultiImplementationA.cs:14:31:14:31 | Exit | MultiImplementationA.cs:14:31:14:31 | Exit | | 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 | -| MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | exit get_Item | -| MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationB.cs:12:37:12:40 | null | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | exit get_Item | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:36:15:38 | enter get_Item | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:36:15:38 | exit get_Item | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:40:15:52 | {...} | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationB.cs:13:40:13:54 | {...} | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item | MultiImplementationA.cs:15:36:15:38 | exit get_Item | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:36:15:38 | Entry | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:36:15:38 | Exit | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:40:15:52 | {...} | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationB.cs:13:40:13:54 | {...} | +| MultiImplementationA.cs:15:36:15:38 | Exit | MultiImplementationA.cs:15:36:15:38 | Exit | | MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:40:15:52 | {...} | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:54:15:56 | enter set_Item | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:58:15:60 | {...} | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationB.cs:13:60:13:62 | {...} | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:54:15:56 | Entry | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:54:15:56 | Normal Exit | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:58:15:60 | {...} | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationB.cs:13:60:13:62 | {...} | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | Normal Exit | | MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:58:15:60 | {...} | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:16:17:16:18 | enter M1 | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:17:5:19:5 | {...} | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationB.cs:15:5:17:5 | {...} | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:16:17:16:18 | Entry | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:16:17:16:18 | Normal Exit | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:17:5:19:5 | {...} | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationB.cs:15:5:17:5 | {...} | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:16:17:16:18 | Normal Exit | | 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 | 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 | 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 | -| MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationB.cs:19:24:19:24 | 1 | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | -| MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:24:21:24 | 0 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:6:22:7 | enter ~C2 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:6:22:7 | exit ~C2 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:11:22:13 | {...} | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationB.cs:20:11:20:25 | {...} | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 | MultiImplementationA.cs:22:6:22:7 | exit ~C2 | +| MultiImplementationA.cs:18:9:18:22 | Entry | MultiImplementationA.cs:18:9:18:22 | Entry | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | Before call to method | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | Before call to method | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | Entry | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | Exit | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationB.cs:18:12:18:13 | Before call to method | +| MultiImplementationA.cs:20:12:20:13 | Exit | MultiImplementationA.cs:20:12:20:13 | Exit | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:12:21:13 | Entry | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:12:21:13 | Normal Exit | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | Normal Exit | +| MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:6:22:7 | Entry | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:6:22:7 | Exit | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:11:22:13 | {...} | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationB.cs:20:11:20:25 | {...} | +| MultiImplementationA.cs:22:6:22:7 | Exit | MultiImplementationA.cs:22:6:22:7 | Exit | | MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:11:22:13 | {...} | -| MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | -| MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | -| MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:50:23:53 | null | -| 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:28:23:35 | Entry | MultiImplementationA.cs:23:28:23:35 | Entry | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationA.cs:23:28:23:35 | Exit | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationA.cs:23:50:23:53 | null | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationB.cs:21:50:21:59 | Before throw ... | +| MultiImplementationA.cs:23:28:23:35 | Exit | MultiImplementationA.cs:23:28:23:35 | Exit | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:50:23:53 | null | -| 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 | 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 | 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 | 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 | {...} | -| MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationB.cs:32:17:32:17 | 0 | -| MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | +| MultiImplementationA.cs:28:7:28:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | Entry | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | Normal Exit | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationB.cs:25:7:25:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | Normal Exit | +| MultiImplementationA.cs:30:21:30:23 | Entry | MultiImplementationA.cs:30:21:30:23 | Entry | +| MultiImplementationA.cs:34:15:34:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | Entry | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | Normal Exit | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationB.cs:30:15:30:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | Normal Exit | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:9:36:10 | Entry | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:9:36:10 | Exit | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:14:36:28 | {...} | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationB.cs:32:17:32:17 | 0 | +| MultiImplementationA.cs:36:9:36:10 | Exit | MultiImplementationA.cs:36:9:36:10 | Exit | | 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 | this access | MultiImplementationB.cs:1:7:1:8 | this access | +| MultiImplementationA.cs:37:9:37:10 | Entry | MultiImplementationA.cs:37:9:37:10 | Entry | +| MultiImplementationB.cs:1:7:1:8 | Before call to method | MultiImplementationB.cs:1:7:1:8 | Before call to method | | 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:11:16:11:20 | Before ... = ... | MultiImplementationB.cs:11:16:11:20 | Before ... = ... | +| MultiImplementationB.cs:12:31:12:40 | Before throw ... | MultiImplementationB.cs:12:31:12:40 | Before throw ... | | 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 | 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:16:9:16:31 | Entry | MultiImplementationB.cs:16:9:16:31 | Entry | +| MultiImplementationB.cs:18:12:18:13 | Before call to method | MultiImplementationB.cs:18:12:18:13 | Before call to method | +| MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | | 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 | 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:21:50:21:59 | Before throw ... | MultiImplementationB.cs:21:50:21:59 | Before throw ... | +| MultiImplementationB.cs:25:7:25:8 | Before call to method | MultiImplementationB.cs:25:7:25:8 | Before call to method | +| MultiImplementationB.cs:30:15:30:16 | Before call to method | MultiImplementationB.cs:30:15:30:16 | Before call to method | | 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 | -| NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:23:3:28 | ... ?? ... | -| NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:28:3:28 | 0 | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:28 | ... ?? ... | -| NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:28:3:28 | 0 | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:9:5:10 | enter M2 | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:39:5:39 | 0 | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:43:5:43 | 1 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:43:5:43 | 1 | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:39:5:39 | 0 | -| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:39:5:39 | 0 | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:43:5:43 | 1 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:12:7:13 | enter M3 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:40:7:53 | ... ?? ... | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:46:7:53 | ... ?? ... | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:53 | ... ?? ... | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:53 | ... ?? ... | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:53 | ... ?? ... | -| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:12:9:13 | enter M4 | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:36:9:58 | ... ?? ... | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:41:9:41 | access to parameter s | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:45:9:45 | access to parameter s | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:36:9:58 | ... ?? ... | -| NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | access to parameter s | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | access to parameter s | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:9:11:10 | enter M5 | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:64:11:64 | 0 | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:68:11:68 | 1 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:68:11:68 | 1 | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:64:11:64 | 0 | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | -| NullCoalescing.cs:11:51:11:58 | [false] ... && ... | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:51:11:58 | [true] ... && ... | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:64:11:64 | 0 | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:68:11:68 | 1 | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:13:10:13:11 | enter M6 | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:15:31:15:31 | 0 | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:16:17:16:25 | ... ?? ... | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:17:13:17:24 | ... ?? ... | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:31:15:31 | 0 | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:16:17:16:25 | ... ?? ... | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:17:13:17:24 | ... ?? ... | -| 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 | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:5:10:5:11 | enter M1 | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:8:13:8:23 | [true] ... is ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:20:9:38:9 | switch (...) {...} | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:23:17:23:22 | break; | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:24:13:24:36 | case ...: | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:25:17:25:52 | ...; | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:27:13:27:24 | case ...: | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:40:9:42:9 | switch (...) {...} | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:8:13:8:23 | [true] ... is ... | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:16:18:16:28 | [false] ... is ... | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:20:9:38:9 | switch (...) {...} | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:23:17:23:22 | break; | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:24:13:24:36 | case ...: | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:25:17:25:52 | ...; | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:27:13:27:24 | case ...: | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | -| Patterns.cs:23:17:23:22 | break; | Patterns.cs:23:17:23:22 | break; | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | case ...: | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:25:17:25:52 | ...; | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:27:13:27:24 | case ...: | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:25:17:25:52 | ...; | -| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:25:17:25:52 | ...; | +| NullCoalescing.cs:1:7:1:20 | Entry | NullCoalescing.cs:1:7:1:20 | Entry | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:9:3:10 | Entry | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:28 | After ... ?? ... | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:23:3:28 | After ... ?? ... | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:9:5:10 | Entry | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:12:7:13 | Entry | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:40:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:12:9:13 | Entry | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:36:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:36:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:51:9:52 | After "" [non-null] | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:51:9:52 | After "" [null] | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:9:11:10 | Entry | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:13:10:13:11 | Entry | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | +| NullCoalescing.cs:16:17:16:18 | After "" [non-null] | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:16:17:16:18 | After "" [null] | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | +| PartialImplementationA.cs:1:15:1:21 | Entry | PartialImplementationA.cs:1:15:1:21 | Entry | +| PartialImplementationA.cs:3:12:3:18 | Entry | PartialImplementationA.cs:3:12:3:18 | Entry | +| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Entry | +| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Entry | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:5:10:5:11 | Entry | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:9:18:9 | After if (...) ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:14:18:9 | After if (...) ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:20:9:38:9 | After switch (...) {...} | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:22:13:22:23 | After case ...: [match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:22:13:22:23 | After case ...: [no-match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:27:13:27:24 | After case ...: [no-match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:27:13:27:24 | case ...: | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:9:18:9 | After if (...) ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:20:9:38:9 | After switch (...) {...} | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [no-match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | After case ...: [no-match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | case ...: | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:14:18:9 | After if (...) ... | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:20:9:38:9 | After switch (...) {...} | +| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:22:13:22:23 | After case ...: [match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:22:13:22:23 | After case ...: [no-match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:27:13:27:24 | After case ...: [no-match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:27:13:27:24 | case ...: | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:27:13:27:24 | After case ...: [no-match] | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [no-match] | | Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | case ...: | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:34:17:34:22 | break; | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:35:13:35:20 | default: | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | -| Patterns.cs:47:24:47:25 | enter M2 | Patterns.cs:47:24:47:25 | enter M2 | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:50:24:50:25 | enter M3 | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:9:51:39 | ... ? ... : ... | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:39 | ... ? ... : ... | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:53:24:53:25 | enter M4 | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:18:54:37 | { ... } | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:27:54:35 | [match] { ... } | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:27:54:35 | [no-match] { ... } | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:33:54:33 | 1 | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:18:54:37 | { ... } | -| Patterns.cs:54:27:54:35 | [match] { ... } | Patterns.cs:54:27:54:35 | [match] { ... } | -| Patterns.cs:54:27:54:35 | [no-match] { ... } | Patterns.cs:54:27:54:35 | [no-match] { ... } | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [match] { ... } | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [no-match] { ... } | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:33:54:33 | 1 | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:56:26:56:27 | enter M5 | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:58:16:62:9 | ... switch { ... } | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:60:13:60:17 | [match] not ... | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:60:22:60:28 | "not 1" | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:61:18:61:24 | "other" | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:62:9 | ... switch { ... } | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:60:13:60:17 | [match] not ... | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:60:22:60:28 | "not 1" | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:61:18:61:24 | "other" | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:22:60:28 | "not 1" | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:18:61:24 | "other" | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:18:61:24 | "other" | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:65:26:65:27 | enter M6 | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:69:13:69:17 | [no-match] not ... | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:70:18:70:27 | "possible" | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:69:13:69:17 | [no-match] not ... | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:70:18:70:27 | "possible" | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:18:70:27 | "possible" | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:18:70:27 | "possible" | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:74:26:74:27 | enter M7 | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:76:16:82:9 | ... switch { ... } | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:78:20:78:24 | "> 1" | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:79:15:79:15 | 0 | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:79:20:79:24 | "< 0" | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:80:13:80:13 | 1 | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:82:9 | ... switch { ... } | -| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:20:78:24 | "> 1" | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:15:79:15 | 0 | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:20:79:24 | "< 0" | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:80:13:80:13 | 1 | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:20:79:24 | "< 0" | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | 1 | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:26:85:27 | enter M8 | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:39:85:69 | ... ? ... : ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:53:85:53 | 2 | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:69 | ... ? ... : ... | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:49:85:53 | [match] not ... | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:53:85:53 | 2 | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:26:87:27 | enter M9 | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:39:87:70 | ... ? ... : ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:54:87:54 | 2 | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:70 | ... ? ... : ... | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:50:87:54 | [no-match] not ... | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:54:87:54 | 2 | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:93:17:93:19 | enter M10 | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:93:17:93:19 | exit M10 (normal) | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:95:36:95:38 | access to constant B | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:96:9:98:9 | {...} | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | exit M10 (normal) | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:96:9:98:9 | {...} | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:96:9:98:9 | {...} | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:96:9:98:9 | {...} | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:96:9:98:9 | {...} | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:36:95:38 | access to constant B | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:96:9:98:9 | {...} | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | enter PostDominance | -| PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:5:10:5:11 | enter M1 | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:10:10:10:11 | enter M2 | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:10:10:10:11 | exit M2 (normal) | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:12:13:12:21 | [false] ... is ... | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:12:13:12:21 | [true] ... is ... | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:13:13:13:19 | return ...; | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:14:9:14:29 | ...; | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | exit M2 (normal) | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:12:13:12:21 | [false] ... is ... | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:14:9:14:29 | ...; | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:12:13:12:21 | [true] ... is ... | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:13:13:13:19 | return ...; | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:9:14:29 | ...; | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:17:10:17:11 | enter M3 | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:17:10:17:11 | exit M3 | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:19:13:19:21 | [false] ... is ... | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:19:13:19:21 | [true] ... is ... | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:20:45:20:53 | nameof(...) | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:21:9:21:29 | ...; | -| PostDominance.cs:17:10:17:11 | exit M3 | PostDominance.cs:17:10:17:11 | exit M3 | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:19:13:19:21 | [false] ... is ... | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:21:9:21:29 | ...; | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:19:13:19:21 | [true] ... is ... | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:20:45:20:53 | nameof(...) | -| PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:45:20:53 | nameof(...) | -| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:29 | ...; | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | enter Qualifiers | -| Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:16:7:21 | enter Method | -| Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:23:8:34 | enter StaticMethod | -| Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:10:10:10:10 | enter M | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | enter Switch | -| Switch.cs:5:10:5:11 | enter M1 | Switch.cs:5:10:5:11 | enter M1 | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | enter M2 | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | exit M2 | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | exit M2 (abnormal) | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | exit M2 (normal) | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:15:17:15:23 | return ...; | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:16:13:16:19 | case ...: | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:17:23:17:37 | object creation of type Exception | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:18:13:18:22 | case ...: | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:30:13:30:20 | default: | -| Switch.cs:10:10:10:11 | exit M2 | Switch.cs:10:10:10:11 | exit M2 | -| Switch.cs:10:10:10:11 | exit M2 (abnormal) | Switch.cs:10:10:10:11 | exit M2 (abnormal) | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:10:10:10:11 | exit M2 (normal) | -| Switch.cs:15:17:15:23 | return ...; | Switch.cs:15:17:15:23 | return ...; | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:10:10:10:11 | exit M2 (abnormal) | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:17:23:17:37 | object creation of type Exception | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:18:13:18:22 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:30:13:30:20 | default: | -| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:23:17:37 | object creation of type Exception | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | case ...: | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:30:13:30:20 | default: | -| Switch.cs:19:17:19:29 | goto default; | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:22:21:22:27 | return ...; | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:23:27:23:27 | 0 | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:24:32:24:55 | [false] ... && ... | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:25:17:25:37 | ...; | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | Entry | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | After ... is ... | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | +| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:50:24:50:25 | Entry | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | After ... is ... [false] | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:39 | After ... ? ... : ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | After ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:9:51:21 | After ... is ... [false] | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | After ... is ... | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | +| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | Entry | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | After ... is ... | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | +| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | Entry | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:58:16:62:9 | After ... switch { ... } | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [match] | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:58:16:62:9 | After ... switch { ... } | +| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:13:60:28 | After ... => ... [match] | +| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:65:26:65:27 | Entry | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:67:16:71:9 | After ... switch { ... } | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | After ... => ... [match] | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:27 | After ... => ... [match] | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:67:16:71:9 | After ... switch { ... } | +| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:13:69:33 | After ... => ... [match] | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [match] | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | +| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:13:70:27 | After ... => ... [match] | +| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:74:26:74:27 | Entry | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:76:16:82:9 | After ... switch { ... } | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | After ... => ... [match] | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:24 | After ... => ... [match] | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:76:16:82:9 | After ... switch { ... } | +| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:13:78:24 | After ... => ... [match] | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [match] | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:13:79:24 | After ... => ... [match] | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | Entry | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | After ... is ... [false] | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:69 | After ... ? ... : ... | +| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:39:85:53 | After ... is ... [false] | +| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:69 | After ... ? ... : ... | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:26:87:27 | Entry | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | After ... is ... [false] | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:70 | After ... ? ... : ... | +| Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:39:87:54 | After ... is ... [false] | +| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:70 | After ... ? ... : ... | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:93:17:93:19 | Entry | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:9:98:9 | After if (...) ... | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | After ... is ... [false] | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:9:98:9 | After if (...) ... | +| Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:13:95:40 | After ... is ... [false] | +| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Entry | +| PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | Entry | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | Entry | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | Normal Exit | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | After ... is ... [false] | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Normal Exit | +| PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:13:12:21 | After ... is ... [false] | +| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | Entry | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | Exit | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | After ... is ... [false] | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | Exit | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:13:19:21 | After ... is ... [false] | +| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Entry | +| Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Entry | +| Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | Entry | +| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:10:10:10:10 | Entry | +| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Entry | +| Switch.cs:5:10:5:11 | Entry | Switch.cs:5:10:5:11 | Entry | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Entry | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Exceptional Exit | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Exit | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Normal Exit | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:13:16:19 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:13:16:19 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:30:13:30:20 | After default: [match] | +| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | Exceptional Exit | +| Switch.cs:10:10:10:11 | Exit | Switch.cs:10:10:10:11 | Exit | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | Normal Exit | +| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:14:13:14:21 | After case ...: [match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:10:10:10:11 | Exceptional Exit | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:14:13:14:21 | After case ...: [no-match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | After case ...: [match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | After case ...: [no-match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:30:13:30:20 | After default: [match] | +| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:16:13:16:19 | After case ...: [match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:16:13:16:19 | After case ...: [no-match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:30:13:30:20 | After default: [match] | +| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [no-match] | | Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:30:13:30:20 | default: | Switch.cs:30:13:30:20 | default: | -| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:35:10:35:11 | enter M3 | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:44:10:44:11 | enter M4 | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:44:10:44:11 | exit M4 (normal) | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:49:17:49:22 | break; | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:50:13:50:39 | case ...: | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:50:30:50:30 | access to parameter o | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:51:17:51:22 | break; | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | exit M4 (normal) | -| Switch.cs:49:17:49:22 | break; | Switch.cs:49:17:49:22 | break; | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | case ...: | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:30:50:30 | access to parameter o | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:51:17:51:22 | break; | -| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:30:50:30 | access to parameter o | -| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:51:17:51:22 | break; | -| Switch.cs:51:17:51:22 | break; | Switch.cs:51:17:51:22 | break; | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:55:10:55:11 | enter M5 | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:61:13:61:19 | case ...: | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:62:17:62:22 | break; | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | case ...: | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:62:17:62:22 | break; | -| Switch.cs:62:17:62:22 | break; | Switch.cs:62:17:62:22 | break; | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:66:10:66:11 | enter M6 | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:66:10:66:11 | exit M6 (normal) | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:72:13:72:20 | case ...: | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:73:17:73:22 | break; | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | exit M6 (normal) | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:66:10:66:11 | exit M6 (normal) | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | case ...: | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:73:17:73:22 | break; | -| Switch.cs:73:17:73:22 | break; | Switch.cs:73:17:73:22 | break; | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:77:10:77:11 | enter M7 | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:77:10:77:11 | exit M7 (normal) | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:82:24:82:27 | true | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:83:13:83:19 | case ...: | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:84:17:85:26 | if (...) ... | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:85:21:85:26 | break; | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:86:24:86:27 | true | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:88:16:88:20 | false | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | exit M7 (normal) | -| Switch.cs:82:24:82:27 | true | Switch.cs:82:24:82:27 | true | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | case ...: | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:84:17:85:26 | if (...) ... | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:85:21:85:26 | break; | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:86:24:86:27 | true | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:88:16:88:20 | false | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:17:85:26 | if (...) ... | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:85:21:85:26 | break; | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:86:24:86:27 | true | -| Switch.cs:85:21:85:26 | break; | Switch.cs:85:21:85:26 | break; | -| Switch.cs:86:24:86:27 | true | Switch.cs:86:24:86:27 | true | -| Switch.cs:88:16:88:20 | false | Switch.cs:88:16:88:20 | false | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | enter M8 | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | exit M8 (normal) | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:96:24:96:27 | true | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:98:16:98:20 | false | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | exit M8 (normal) | -| Switch.cs:96:24:96:27 | true | Switch.cs:96:24:96:27 | true | -| Switch.cs:98:16:98:20 | false | Switch.cs:98:16:98:20 | false | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | enter M9 | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | exit M9 (normal) | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:103:17:103:25 | access to property Length | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:105:13:105:19 | case ...: | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:105:28:105:28 | 0 | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:106:13:106:19 | case ...: | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:108:17:108:17 | 1 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | exit M9 (normal) | -| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:25 | access to property Length | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:101:9:101:10 | exit M9 (normal) | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | case ...: | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:28:105:28 | 0 | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:106:13:106:19 | case ...: | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:108:17:108:17 | 1 | -| Switch.cs:105:28:105:28 | 0 | Switch.cs:105:28:105:28 | 0 | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | case ...: | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:108:17:108:17 | 1 | -| Switch.cs:106:28:106:28 | 1 | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:108:17:108:17 | 1 | Switch.cs:108:17:108:17 | 1 | -| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:17:111:21 | enter Throw | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:113:9:113:11 | enter M10 | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:113:9:113:11 | exit M10 (normal) | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:117:25:117:25 | access to parameter s | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:117:44:117:44 | 1 | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:118:13:118:34 | case ...: | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:118:25:118:25 | access to parameter s | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:118:43:118:43 | 2 | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:120:17:120:17 | 1 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | exit M10 (normal) | -| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:25:117:25 | access to parameter s | -| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:44:117:44 | 1 | -| Switch.cs:117:44:117:44 | 1 | Switch.cs:117:44:117:44 | 1 | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:30:13:30:20 | After default: [match] | +| Switch.cs:35:10:35:11 | Entry | Switch.cs:35:10:35:11 | Entry | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:44:10:44:11 | Entry | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:46:9:52:9 | After switch (...) {...} | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | After case ...: [match] | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | After case ...: [no-match] | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:13:50:39 | After case ...: [match] | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:13:50:39 | After case ...: [no-match] | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:46:9:52:9 | After switch (...) {...} | +| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:48:13:48:23 | After case ...: [match] | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:48:13:48:23 | After case ...: [no-match] | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [match] | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:13:50:39 | After case ...: [match] | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | +| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:55:10:55:11 | Entry | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:57:9:63:9 | After switch (...) {...} | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | After case ...: [match] | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | After case ...: [no-match] | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:13:61:19 | After case ...: [match] | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:13:61:19 | After case ...: [no-match] | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:57:9:63:9 | After switch (...) {...} | +| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:59:13:59:19 | After case ...: [match] | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:59:13:59:19 | After case ...: [no-match] | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [match] | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | +| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:61:13:61:19 | After case ...: [match] | +| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:66:10:66:11 | Entry | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:68:9:74:9 | After switch (...) {...} | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | After case ...: [match] | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | After case ...: [no-match] | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:13:72:20 | After case ...: [match] | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:13:72:20 | After case ...: [no-match] | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:68:9:74:9 | After switch (...) {...} | +| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:70:13:70:23 | After case ...: [match] | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:70:13:70:23 | After case ...: [no-match] | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [match] | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | +| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:72:13:72:20 | After case ...: [match] | +| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:10:77:11 | Entry | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:10:77:11 | Normal Exit | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:79:9:87:9 | After switch (...) {...} | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | After case ...: [match] | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | After case ...: [no-match] | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:13:83:19 | After case ...: [match] | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:13:83:19 | After case ...: [no-match] | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | Normal Exit | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:79:9:87:9 | After switch (...) {...} | +| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:81:13:81:19 | After case ...: [match] | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:79:9:87:9 | After switch (...) {...} | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:81:13:81:19 | After case ...: [no-match] | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [match] | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:83:13:83:19 | After case ...: [match] | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | +| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:91:10:91:11 | Entry | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:91:10:91:11 | Normal Exit | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | After case ...: [match] | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | After case ...: [no-match] | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | Normal Exit | +| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:95:13:95:23 | After case ...: [match] | +| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:95:13:95:23 | After case ...: [no-match] | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:101:9:101:10 | Entry | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:101:9:101:10 | Normal Exit | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | After access to parameter s [null] | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:25 | After access to property Length | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:105:13:105:19 | After case ...: [match] | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:105:13:105:19 | After case ...: [no-match] | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:106:13:106:19 | After case ...: [no-match] | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | Normal Exit | +| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | +| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:103:17:103:17 | After access to parameter s [null] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:101:9:101:10 | Normal Exit | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:103:17:103:25 | After access to property Length | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | After case ...: [match] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | After case ...: [no-match] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:13:106:19 | After case ...: [no-match] | +| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:13:105:19 | After case ...: [match] | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:105:13:105:19 | After case ...: [no-match] | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [no-match] | +| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [no-match] | +| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:17:111:21 | Entry | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:113:9:113:11 | Entry | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:113:9:113:11 | Normal Exit | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:115:9:119:9 | After switch (...) {...} | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | After case ...: [match] | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | After case ...: [no-match] | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:25:117:34 | After ... == ... [false] | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:25:117:34 | After ... == ... [true] | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:118:13:118:34 | After case ...: [match] | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:118:13:118:34 | After case ...: [no-match] | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:118:13:118:34 | case ...: | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:118:25:118:33 | After ... == ... [true] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | Normal Exit | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:115:9:119:9 | After switch (...) {...} | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:13:117:35 | After case ...: [match] | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | After ... == ... [false] | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | After ... == ... [true] | +| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:117:13:117:35 | After case ...: [no-match] | +| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:117:25:117:34 | After ... == ... [false] | +| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:117:25:117:34 | After ... == ... [true] | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:13:118:34 | After case ...: [match] | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | After ... == ... [true] | +| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:118:13:118:34 | After case ...: [no-match] | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:115:9:119:9 | After switch (...) {...} | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [match] | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [no-match] | | Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | case ...: | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:25 | access to parameter s | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:43:118:43 | 2 | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:120:17:120:17 | 1 | -| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:25:118:25 | access to parameter s | -| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:43:118:43 | 2 | -| Switch.cs:118:43:118:43 | 2 | Switch.cs:118:43:118:43 | 2 | -| Switch.cs:120:17:120:17 | 1 | Switch.cs:120:17:120:17 | 1 | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:123:10:123:12 | enter M11 | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:123:10:123:12 | exit M11 (normal) | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:13:125:48 | [false] ... switch { ... } | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:34:125:34 | access to local variable b | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:37:125:37 | _ | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:125:42:125:46 | false | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | exit M11 (normal) | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:13:125:48 | [false] ... switch { ... } | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:125:24:125:34 | [false] ... => ... | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:34:125:34 | access to local variable b | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:37 | _ | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:42:125:46 | false | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:42:125:46 | false | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:129:12:129:14 | enter M12 | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:9:131:67 | return ...; | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:17:131:53 | [null] ... switch { ... } | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:28:131:40 | [null] ... => ... | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:40:131:40 | access to local variable s | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:43:131:43 | _ | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:131:48:131:51 | null | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:9:131:67 | return ...; | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:17:131:53 | [null] ... switch { ... } | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:28:131:40 | [null] ... => ... | Switch.cs:131:28:131:40 | [null] ... => ... | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [null] ... => ... | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:40:131:40 | access to local variable s | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:48:131:51 | null | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:48:131:51 | null | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:134:9:134:11 | enter M13 | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:134:9:134:11 | exit M13 (normal) | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:138:13:138:20 | default: | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:139:28:139:28 | 1 | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:140:13:140:19 | case ...: | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:140:28:140:28 | 2 | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | exit M13 (normal) | -| Switch.cs:138:13:138:20 | default: | Switch.cs:138:13:138:20 | default: | -| Switch.cs:139:28:139:28 | 1 | Switch.cs:139:28:139:28 | 1 | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:138:13:138:20 | default: | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | case ...: | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:28:140:28 | 2 | -| Switch.cs:140:28:140:28 | 2 | Switch.cs:140:28:140:28 | 2 | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:144:9:144:11 | enter M14 | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:144:9:144:11 | exit M14 (normal) | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:148:28:148:28 | 1 | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:149:13:149:20 | default: | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:150:13:150:19 | case ...: | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:150:28:150:28 | 2 | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | exit M14 (normal) | -| Switch.cs:148:28:148:28 | 1 | Switch.cs:148:28:148:28 | 1 | -| Switch.cs:149:13:149:20 | default: | Switch.cs:149:13:149:20 | default: | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:149:13:149:20 | default: | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | case ...: | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:28:150:28 | 2 | -| Switch.cs:150:28:150:28 | 2 | Switch.cs:150:28:150:28 | 2 | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | enter M15 | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | exit M15 | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | exit M15 (abnormal) | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | exit M15 (normal) | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:17:156:54 | ... switch { ... } | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:36:156:38 | "a" | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:41:156:45 | false | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:156:50:156:52 | "b" | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:158:13:158:49 | ...; | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:160:13:160:49 | ...; | -| Switch.cs:154:10:154:12 | exit M15 | Switch.cs:154:10:154:12 | exit M15 | -| Switch.cs:154:10:154:12 | exit M15 (abnormal) | Switch.cs:154:10:154:12 | exit M15 (abnormal) | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:154:10:154:12 | exit M15 (normal) | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:154:10:154:12 | exit M15 (normal) | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:54 | ... switch { ... } | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:158:13:158:49 | ...; | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:160:13:160:49 | ...; | -| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:36:156:38 | "a" | -| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | exit M15 (abnormal) | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | false | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:50:156:52 | "b" | -| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:13:158:49 | ...; | -| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:13:160:49 | ...; | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:163:10:163:12 | enter M16 | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:163:10:163:12 | exit M16 (normal) | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:168:13:168:19 | case ...: | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:169:17:169:51 | ...; | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:171:13:171:19 | case ...: | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:174:13:174:20 | default: | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | exit M16 (normal) | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | case ...: | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:171:13:171:19 | case ...: | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:174:13:174:20 | default: | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:33 | After ... == ... [true] | +| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:118:25:118:33 | After ... == ... [true] | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:123:10:123:12 | Entry | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:123:10:123:12 | Normal Exit | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | After ... => ... [match] | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | After ... => ... [no-match] | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | Normal Exit | +| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | +| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | +| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:24:125:34 | After ... => ... [match] | +| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:125:24:125:34 | After ... => ... [no-match] | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:129:12:129:14 | Entry | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:16:131:66 | After call to method ToString | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | After ... => ... [match] | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | After ... => ... [no-match] | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:16:131:66 | After call to method ToString | +| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | +| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | +| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:28:131:40 | After ... => ... [match] | +| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:131:28:131:40 | After ... => ... [no-match] | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:134:9:134:11 | Entry | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:134:9:134:11 | Normal Exit | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | After case ...: [match] | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | After case ...: [no-match] | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:13:140:19 | After case ...: [match] | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:13:140:19 | After case ...: [no-match] | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | Normal Exit | +| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:13:139:19 | After case ...: [match] | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:139:13:139:19 | After case ...: [no-match] | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [match] | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [no-match] | +| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:13:140:19 | After case ...: [match] | +| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [no-match] | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:144:9:144:11 | Entry | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:144:9:144:11 | Normal Exit | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | After case ...: [match] | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | After case ...: [no-match] | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:13:150:19 | After case ...: [match] | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:13:150:19 | After case ...: [no-match] | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | Normal Exit | +| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:13:148:19 | After case ...: [match] | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:148:13:148:19 | After case ...: [no-match] | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [match] | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [no-match] | +| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:13:150:19 | After case ...: [match] | +| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [no-match] | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:154:10:154:12 | Entry | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:17:156:54 | After ... switch { ... } | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | After ... => ... [match] | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | After ... => ... [no-match] | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:157:9:160:49 | After if (...) ... | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:157:13:157:13 | After access to parameter b [false] | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:157:13:157:13 | After access to parameter b [true] | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:17:156:54 | After ... switch { ... } | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:9:160:49 | After if (...) ... | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | After access to parameter b [false] | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | After access to parameter b [true] | +| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:28:156:38 | After ... => ... [match] | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:28:156:38 | After ... => ... [no-match] | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:157:9:160:49 | After if (...) ... | +| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:157:13:157:13 | After access to parameter b [false] | +| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:157:13:157:13 | After access to parameter b [true] | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:163:10:163:12 | Entry | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:165:9:177:9 | After switch (...) {...} | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | After case ...: [match] | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | After case ...: [no-match] | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:13:168:19 | After case ...: [match] | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:13:168:19 | After case ...: [no-match] | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:169:17:169:51 | ...; | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:13:171:19 | After case ...: [no-match] | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:165:9:177:9 | After switch (...) {...} | +| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:167:13:167:19 | After case ...: [match] | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:167:13:167:19 | After case ...: [no-match] | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [match] | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [no-match] | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | +| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:168:13:168:19 | After case ...: [match] | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [no-match] | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | | Switch.cs:169:17:169:51 | ...; | Switch.cs:169:17:169:51 | ...; | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | case ...: | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:174:13:174:20 | default: | -| Switch.cs:172:17:172:46 | ...; | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:174:13:174:20 | default: | Switch.cs:174:13:174:20 | default: | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:3:10:3:10 | enter M | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:25:7:25 | ; | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:8:9:8:28 | ... ...; | -| TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | -| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:25:7:25 | ; | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:9:8:28 | ... ...; | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | enter VarDecls | -| VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:5:18:5:19 | enter M1 | -| VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:13:12:13:13 | enter M2 | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:19:7:19:8 | enter M3 | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:25:20:25:28 | ... ? ... : ... | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:25:24:25:24 | access to local variable x | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:25:28:25:28 | access to local variable y | -| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:20:25:28 | ... ? ... : ... | -| 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 | enter C | VarDecls.cs:28:11:28:11 | enter C | -| VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:41:28:47 | enter Dispose | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:15:9:17:9 | {...} | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:5:17:5:20 | exit Main (normal) | +| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | +| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | Entry | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:3:10:3:10 | Entry | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:9:7:25 | After if (...) ... | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:9:7:25 | After if (...) ... | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | +| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Entry | +| VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | Entry | +| VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | Entry | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:19:7:19:8 | Entry | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:28 | After ... ? ... : ... | +| VarDecls.cs:25:20:25:20 | After access to parameter b [false] | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | +| VarDecls.cs:25:20:25:20 | After access to parameter b [true] | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:20:25:28 | After ... ? ... : ... | +| VarDecls.cs:28:11:28:11 | Entry | VarDecls.cs:28:11:28:11 | Entry | +| VarDecls.cs:28:41:28:47 | Entry | VarDecls.cs:28:41:28:47 | Entry | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:11:13:11:17 | After ... > ... [false] | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:11:13:11:17 | After ... > ... [true] | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [true] | cflow.cs:14:16:14:20 | After ... > ... [true] | | cflow.cs:20:9:22:9 | {...} | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:56:13:56:20 | default: | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:65:17:65:22 | break; | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:37:17:37:22 | exit Switch | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:56:13:56:20 | default: | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:65:17:65:22 | break; | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:56:13:56:20 | default: | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:65:17:65:22 | break; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:56:13:56:20 | default: | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:65:17:65:22 | break; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:56:13:56:20 | default: | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:65:17:65:22 | break; | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:54:17:54:48 | ...; | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:56:13:56:20 | default: | cflow.cs:56:13:56:20 | default: | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:65:17:65:22 | break; | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:65:17:65:22 | break; | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:65:17:65:22 | break; | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | break; | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | enter M | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | exit M (normal) | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:73:13:73:19 | return ...; | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:74:9:81:9 | if (...) ... | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:75:9:77:9 | {...} | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:79:9:81:9 | {...} | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | exit M (normal) | -| cflow.cs:73:13:73:19 | return ...; | cflow.cs:73:13:73:19 | return ...; | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:74:9:81:9 | if (...) ... | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:75:9:77:9 | {...} | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:79:9:81:9 | {...} | -| cflow.cs:75:9:77:9 | {...} | cflow.cs:75:9:77:9 | {...} | -| cflow.cs:79:9:81:9 | {...} | cflow.cs:79:9:81:9 | {...} | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:84:18:84:19 | enter M2 | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:84:18:84:19 | exit M2 (normal) | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:86:13:86:37 | [false] ... && ... | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:86:13:86:37 | [true] ... && ... | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:86:26:86:26 | access to parameter s | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:87:13:87:33 | ...; | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | exit M2 (normal) | -| cflow.cs:86:13:86:37 | [false] ... && ... | cflow.cs:86:13:86:37 | [false] ... && ... | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:86:13:86:37 | [true] ... && ... | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:87:13:87:33 | ...; | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:13:86:37 | [true] ... && ... | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:26 | access to parameter s | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:87:13:87:33 | ...; | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:13:87:33 | ...; | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:90:18:90:19 | enter M3 | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:90:18:90:19 | exit M3 | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:90:18:90:19 | exit M3 (normal) | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:93:45:93:47 | "s" | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:94:9:94:29 | ...; | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:99:9:100:42 | if (...) ... | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:102:9:103:36 | if (...) ... | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:90:18:90:19 | exit M3 | cflow.cs:90:18:90:19 | exit M3 | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:90:18:90:19 | exit M3 (normal) | -| cflow.cs:93:45:93:47 | "s" | cflow.cs:93:45:93:47 | "s" | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:90:18:90:19 | exit M3 (normal) | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:94:9:94:29 | ...; | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:99:9:100:42 | if (...) ... | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:102:9:103:36 | if (...) ... | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:90:18:90:19 | exit M3 (normal) | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:9:100:42 | if (...) ... | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:102:9:103:36 | if (...) ... | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:90:18:90:19 | exit M3 (normal) | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:9:103:36 | if (...) ... | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:106:18:106:19 | enter M4 | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:109:9:115:9 | {...} | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:110:20:110:23 | true | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:111:13:113:13 | {...} | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:116:9:116:29 | ...; | -| cflow.cs:109:9:115:9 | {...} | cflow.cs:109:9:115:9 | {...} | -| cflow.cs:109:9:115:9 | {...} | cflow.cs:110:20:110:23 | true | -| cflow.cs:109:9:115:9 | {...} | cflow.cs:111:13:113:13 | {...} | -| cflow.cs:110:20:110:23 | true | cflow.cs:110:20:110:23 | true | -| cflow.cs:110:20:110:23 | true | cflow.cs:111:13:113:13 | {...} | -| cflow.cs:111:13:113:13 | {...} | cflow.cs:111:13:113:13 | {...} | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:116:9:116:29 | ...; | -| cflow.cs:119:20:119:21 | enter M5 | cflow.cs:119:20:119:21 | enter M5 | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:19:127:21 | enter get_Prop | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:32:127:57 | ... ? ... : ... | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:48:127:49 | "" | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:53:127:57 | this access | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:32:127:57 | ... ? ... : ... | -| cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | -| cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | this access | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | enter set_Prop | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | enter ControlFlow | -| cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | enter ControlFlow | -| cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | enter ControlFlow | -| cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | enter + | -| cflow.cs:144:33:144:35 | enter get_Item | cflow.cs:144:33:144:35 | enter get_Item | -| cflow.cs:144:56:144:58 | enter set_Item | cflow.cs:144:56:144:58 | enter set_Item | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:156:17:156:22 | break; | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:164:17:164:22 | break; | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:156:17:156:22 | break; | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:164:17:164:22 | break; | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:150:13:150:33 | ...; | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:156:17:156:22 | break; | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:164:17:164:22 | break; | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:152:18:152:18 | access to local variable x | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [true] | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:26:17:26:26 | After ... == ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:26:31:26:40 | After ... == ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:28:22:28:31 | After ... == ... [true] | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:37:17:37:22 | Exit | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:39:9:50:9 | After switch (...) {...} | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:13:41:19 | After case ...: [match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:44:13:44:19 | After case ...: [match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:60:9:66:9 | After switch (...) {...} | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:37:17:37:22 | Exit | cflow.cs:37:17:37:22 | Exit | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Exit | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:39:9:50:9 | After switch (...) {...} | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:60:9:66:9 | After switch (...) {...} | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:41:13:41:19 | After case ...: [match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Exit | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:39:9:50:9 | After switch (...) {...} | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:60:9:66:9 | After switch (...) {...} | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:44:13:44:19 | After case ...: [match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Exit | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:39:9:50:9 | After switch (...) {...} | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:60:9:66:9 | After switch (...) {...} | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Exit | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:60:9:66:9 | After switch (...) {...} | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:60:9:66:9 | After switch (...) {...} | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:70:18:70:18 | Entry | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:70:18:70:18 | Normal Exit | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | After ... == ... [false] | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | After ... == ... [true] | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:74:9:81:9 | After if (...) ... | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | Normal Exit | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:72:13:72:21 | After ... == ... [false] | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:74:9:81:9 | After if (...) ... | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:72:13:72:21 | After ... == ... [true] | cflow.cs:72:13:72:21 | After ... == ... [true] | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:74:9:81:9 | After if (...) ... | +| cflow.cs:74:13:74:24 | After ... > ... [false] | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:74:13:74:24 | After ... > ... [true] | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:84:18:84:19 | Entry | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:9:87:33 | After if (...) ... | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:13:86:21 | After ... != ... [false] | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:13:86:21 | After ... != ... [true] | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:13:86:37 | After ... && ... [false] | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:86:26:86:37 | After ... > ... [true] | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:9:87:33 | After if (...) ... | +| cflow.cs:86:13:86:21 | After ... != ... [false] | cflow.cs:86:13:86:21 | After ... != ... [false] | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:13:86:21 | After ... != ... [true] | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:26:86:37 | After ... > ... [true] | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:13:86:37 | After ... && ... [false] | +| cflow.cs:86:26:86:37 | After ... > ... [false] | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:86:26:86:37 | After ... > ... [true] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:90:18:90:19 | Entry | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:90:18:90:19 | Exit | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:92:13:92:27 | After call to method Equals [false] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:92:13:92:27 | After call to method Equals [true] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:96:9:97:55 | After if (...) ... | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:99:9:100:42 | After if (...) ... | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:102:9:103:36 | After if (...) ... | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:90:18:90:19 | Exit | cflow.cs:90:18:90:19 | Exit | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:92:13:92:27 | After call to method Equals [false] | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:96:9:97:55 | After if (...) ... | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:99:9:100:42 | After if (...) ... | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:102:9:103:36 | After if (...) ... | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:92:13:92:27 | After call to method Equals [true] | cflow.cs:92:13:92:27 | After call to method Equals [true] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:96:9:97:55 | After if (...) ... | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:9:100:42 | After if (...) ... | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:102:9:103:36 | After if (...) ... | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:96:13:96:25 | After ... != ... [false] | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:96:13:96:25 | After ... != ... [true] | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:99:9:100:42 | After if (...) ... | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:9:103:36 | After if (...) ... | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:99:13:99:25 | After ... != ... [false] | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:99:13:99:25 | After ... != ... [true] | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:102:9:103:36 | After if (...) ... | +| cflow.cs:102:13:102:29 | After ... != ... [false] | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:102:13:102:29 | After ... != ... [true] | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:106:18:106:19 | Entry | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:108:13:108:21 | After ... != ... [false] | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:108:13:108:21 | After ... != ... [true] | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:108:13:108:21 | After ... != ... [false] | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:108:13:108:21 | After ... != ... [true] | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | +| cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | +| cflow.cs:119:20:119:21 | Entry | cflow.cs:119:20:119:21 | Entry | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:19:127:21 | Entry | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:32:127:44 | After ... == ... [false] | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:32:127:44 | After ... == ... [true] | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:32:127:57 | After ... ? ... : ... | +| cflow.cs:127:32:127:44 | After ... == ... [false] | cflow.cs:127:32:127:44 | After ... == ... [false] | +| cflow.cs:127:32:127:44 | After ... == ... [true] | cflow.cs:127:32:127:44 | After ... == ... [true] | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:32:127:57 | After ... ? ... : ... | +| cflow.cs:127:62:127:64 | Entry | cflow.cs:127:62:127:64 | Entry | +| cflow.cs:129:5:129:15 | Entry | cflow.cs:129:5:129:15 | Entry | +| cflow.cs:134:5:134:15 | Entry | cflow.cs:134:5:134:15 | Entry | +| cflow.cs:136:12:136:22 | Entry | cflow.cs:136:12:136:22 | Entry | +| cflow.cs:138:40:138:40 | Entry | cflow.cs:138:40:138:40 | Entry | +| cflow.cs:144:33:144:35 | Entry | cflow.cs:144:33:144:35 | Entry | +| cflow.cs:144:56:144:58 | Entry | cflow.cs:144:56:144:58 | Entry | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:149:16:149:21 | After ... < ... [true] | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:173:32:173:41 | Before ... < ... | | cflow.cs:153:9:157:9 | {...} | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:156:17:156:22 | break; | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | After ... > ... [true] | | cflow.cs:153:9:157:9 | {...} | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:164:17:164:22 | break; | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:156:17:156:22 | break; | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:156:17:156:22 | break; | cflow.cs:156:17:156:22 | break; | -| cflow.cs:156:17:156:22 | break; | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:156:17:156:22 | break; | cflow.cs:164:17:164:22 | break; | -| cflow.cs:156:17:156:22 | break; | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:156:17:156:22 | break; | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:156:17:156:22 | break; | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:156:17:156:22 | break; | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:156:17:156:22 | break; | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:146:10:146:12 | exit For (normal) | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:155:17:155:22 | After ... > ... [false] | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:173:32:173:41 | Before ... < ... | | cflow.cs:160:9:165:9 | {...} | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:164:17:164:22 | break; | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:164:17:164:22 | break; | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:164:17:164:22 | break; | cflow.cs:164:17:164:22 | break; | -| cflow.cs:164:17:164:22 | break; | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:164:17:164:22 | break; | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:164:17:164:22 | break; | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:164:17:164:22 | break; | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:164:17:164:22 | break; | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:168:9:171:9 | {...} | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:174:9:176:9 | {...} | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:179:10:179:16 | enter Lambdas | cflow.cs:179:10:179:16 | enter Lambdas | -| cflow.cs:181:28:181:37 | enter (...) => ... | cflow.cs:181:28:181:37 | enter (...) => ... | -| cflow.cs:182:28:182:61 | enter delegate(...) { ... } | cflow.cs:182:28:182:61 | enter delegate(...) { ... } | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:193:10:193:17 | exit Booleans | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:195:39:195:43 | this access | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:197:35:197:39 | false | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:197:43:197:46 | true | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:198:37:198:41 | false | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:198:45:198:48 | true | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:13:200:32 | [true] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:13:200:62 | [true] ... \|\| ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:40:200:44 | this access | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:193:10:193:17 | exit Booleans | cflow.cs:193:10:193:17 | exit Booleans | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:193:10:193:17 | exit Booleans | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:197:43:197:46 | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:13:200:32 | [true] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:195:39:195:43 | this access | cflow.cs:195:39:195:43 | this access | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:37:198:41 | false | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:45:198:48 | true | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | false | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:37:198:41 | false | -| cflow.cs:197:35:197:39 | false | cflow.cs:198:45:198:48 | true | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | true | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:37:198:41 | false | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:45:198:48 | true | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:198:37:198:41 | false | cflow.cs:198:37:198:41 | false | -| cflow.cs:198:45:198:48 | true | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:193:10:193:17 | exit Booleans | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:32 | [true] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:13:200:32 | [true] !... | cflow.cs:200:13:200:32 | [true] !... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:37:200:62 | [true] !... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:201:9:205:9 | {...} | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:208:10:208:11 | enter Do | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:208:10:208:11 | exit Do (normal) | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:211:9:221:9 | {...} | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:214:13:216:13 | {...} | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:217:13:220:13 | if (...) ... | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:218:13:220:13 | {...} | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:221:18:221:22 | this access | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do (normal) | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | exit Do (normal) | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:163:17:163:22 | After ... > ... [false] | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:167:16:167:21 | After ... < ... [true] | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | After ... < ... [true] | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:179:10:179:16 | Entry | cflow.cs:179:10:179:16 | Entry | +| cflow.cs:181:28:181:37 | Entry | cflow.cs:181:28:181:37 | Entry | +| cflow.cs:182:28:182:61 | Entry | cflow.cs:182:28:182:61 | Entry | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:185:10:185:18 | Entry | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:9:190:52 | After if (...) ... | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:13:187:18 | After ... == ... [false] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:23:187:28 | After ... == ... [false] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:34:187:49 | After ... && ... [false] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:9:190:52 | After if (...) ... | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:13:187:18 | After ... == ... [false] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:23:187:28 | After ... == ... [false] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:187:13:187:18 | After ... == ... [true] | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:23:187:28 | After ... == ... [false] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:187:23:187:28 | After ... == ... [true] | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:34:187:39 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | +| cflow.cs:187:44:187:49 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:193:10:193:17 | Entry | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:193:10:193:17 | Exit | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:195:17:195:56 | After ... && ... | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:197:9:198:49 | After if (...) ... | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:15:200:31 | After ... == ... [false] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:40:200:61 | After ... && ... [false] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:193:10:193:17 | Exit | cflow.cs:193:10:193:17 | Exit | +| cflow.cs:195:17:195:32 | After ... > ... [false] | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:195:17:195:32 | After ... > ... [true] | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:193:10:193:17 | Exit | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:17:195:56 | After ... && ... | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:197:9:198:49 | After if (...) ... | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:15:200:31 | After ... == ... [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:40:200:61 | After ... && ... [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:193:10:193:17 | Exit | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:197:9:198:49 | After if (...) ... | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:15:200:31 | After ... == ... [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:40:200:61 | After ... && ... [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:197:15:197:31 | After ... == ... [false] | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:198:17:198:33 | After ... == ... [false] | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:198:17:198:33 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:200:13:200:62 | After ... \|\| ... [true] | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:200:15:200:31 | After ... == ... [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:40:200:61 | After ... && ... [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:200:40:200:56 | After ... == ... [false] | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:40:200:61 | After ... && ... [false] | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:208:10:208:11 | Entry | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:210:9:221:36 | After do ... while (...); | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:211:9:221:9 | {...} | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:213:17:213:32 | After ... > ... [false] | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:210:9:221:36 | After do ... while (...); | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:210:9:221:36 | After do ... while (...); | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | | cflow.cs:211:9:221:9 | {...} | cflow.cs:211:9:221:9 | {...} | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:214:13:216:13 | {...} | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:217:13:220:13 | if (...) ... | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:218:13:220:13 | {...} | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:221:18:221:22 | this access | -| cflow.cs:214:13:216:13 | {...} | cflow.cs:214:13:216:13 | {...} | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:13:220:13 | if (...) ... | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:218:13:220:13 | {...} | -| cflow.cs:218:13:220:13 | {...} | cflow.cs:218:13:220:13 | {...} | -| cflow.cs:221:18:221:22 | this access | cflow.cs:221:18:221:22 | this access | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:224:10:224:16 | enter Foreach | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:224:10:224:16 | exit Foreach (normal) | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:226:22:226:22 | String x | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:230:13:232:13 | {...} | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:233:13:236:13 | if (...) ... | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:234:13:236:13 | {...} | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | exit Foreach (normal) | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | exit Foreach (normal) | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:22:226:22 | String x | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:230:13:232:13 | {...} | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:233:13:236:13 | if (...) ... | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:234:13:236:13 | {...} | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | After ... > ... [false] | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:213:17:213:32 | After ... > ... [false] | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:213:17:213:32 | After ... > ... [true] | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:217:17:217:32 | After ... < ... [false] | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:217:17:217:32 | After ... < ... [true] | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:221:18:221:34 | After ... < ... [false] | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:221:18:221:34 | After ... < ... [true] | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:224:10:224:16 | Entry | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:22:226:22 | String x | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | +| cflow.cs:226:22:226:22 | String x | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | | cflow.cs:226:22:226:22 | String x | cflow.cs:226:22:226:22 | String x | -| cflow.cs:226:22:226:22 | String x | cflow.cs:230:13:232:13 | {...} | -| cflow.cs:226:22:226:22 | String x | cflow.cs:233:13:236:13 | if (...) ... | -| cflow.cs:226:22:226:22 | String x | cflow.cs:234:13:236:13 | {...} | -| cflow.cs:230:13:232:13 | {...} | cflow.cs:230:13:232:13 | {...} | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:13:236:13 | if (...) ... | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:234:13:236:13 | {...} | -| cflow.cs:234:13:236:13 | {...} | cflow.cs:234:13:236:13 | {...} | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:240:10:240:13 | enter Goto | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:240:10:240:13 | exit Goto (normal) | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:242:5:242:9 | Label: | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:244:9:244:41 | if (...) ... | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:246:9:258:9 | switch (...) {...} | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:255:13:255:20 | default: | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | exit Goto (normal) | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:240:10:240:13 | exit Goto (normal) | +| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:226:22:226:22 | String x | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:226:22:226:22 | String x | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:226:27:226:64 | After call to method Repeat [empty] | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:226:22:226:22 | String x | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:229:17:229:32 | After ... > ... [true] | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:233:17:233:32 | After ... < ... [false] | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:233:17:233:32 | After ... < ... [true] | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:240:10:240:13 | Entry | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:242:5:242:9 | Label: | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:242:12:242:41 | After if (...) ... | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:246:9:258:9 | After switch (...) {...} | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:255:13:255:20 | After default: [match] | | cflow.cs:242:5:242:9 | Label: | cflow.cs:242:5:242:9 | Label: | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:244:9:244:41 | if (...) ... | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:246:9:258:9 | switch (...) {...} | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:255:13:255:20 | default: | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:240:10:240:13 | exit Goto (normal) | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:9:244:41 | if (...) ... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:246:9:258:9 | switch (...) {...} | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:255:13:255:20 | default: | -| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:240:10:240:13 | exit Goto (normal) | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:9:258:9 | switch (...) {...} | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:255:13:255:20 | default: | -| cflow.cs:249:17:249:29 | goto default; | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:251:17:251:37 | ...; | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:255:13:255:20 | default: | cflow.cs:255:13:255:20 | default: | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | enter Yield | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | exit Yield | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | exit Yield (abnormal) | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:264:25:264:25 | access to local variable i | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:268:9:276:9 | try {...} ... | -| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | exit Yield | -| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield (abnormal) | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (abnormal) | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:25 | access to local variable i | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:268:9:276:9 | try {...} ... | -| cflow.cs:265:9:267:9 | {...} | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | exit Yield | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | exit Yield (abnormal) | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:268:9:276:9 | try {...} ... | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | enter ControlFlowSub | -| cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | enter ControlFlowSub | -| cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:5:286:18 | enter ControlFlowSub | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | enter DelegateCall | -| cflow.cs:291:12:291:12 | enter M | cflow.cs:291:12:291:12 | enter M | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | enter NegationInConstructor | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:298:10:298:10 | enter M | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:300:44:300:51 | [false] !... | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:300:44:300:51 | [true] !... | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:300:44:300:64 | ... && ... | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:300:56:300:56 | access to parameter s | -| cflow.cs:300:44:300:51 | [false] !... | cflow.cs:300:44:300:51 | [false] !... | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:44:300:51 | [true] !... | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:56:300:56 | access to parameter s | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:64 | ... && ... | -| cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:56:300:56 | access to parameter s | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | enter LambdaGetter | -| cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:306:60:310:5 | enter (...) => ... | -| cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | enter get__getter | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:12:242:41 | After if (...) ... | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:246:9:258:9 | After switch (...) {...} | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:255:13:255:20 | After default: [match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:242:12:242:41 | After if (...) ... | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:246:9:258:9 | After switch (...) {...} | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:255:13:255:20 | After default: [match] | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:246:9:258:9 | After switch (...) {...} | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:255:13:255:20 | After default: [match] | +| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:246:9:258:9 | After switch (...) {...} | +| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:255:13:255:20 | After default: [match] | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Entry | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Exceptional Exit | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Exit | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Normal Exit | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:264:25:264:30 | After ... < ... [false] | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:264:25:264:30 | Before ... < ... | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:268:9:276:9 | After try {...} ... | +| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Exceptional Exit | +| cflow.cs:261:49:261:53 | Exit | cflow.cs:261:49:261:53 | Exit | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:261:49:261:53 | Normal Exit | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:261:49:261:53 | Exceptional Exit | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:261:49:261:53 | Exit | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:261:49:261:53 | Normal Exit | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:264:25:264:30 | After ... < ... [false] | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:268:9:276:9 | After try {...} ... | +| cflow.cs:264:25:264:30 | After ... < ... [true] | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Exceptional Exit | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Exit | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Normal Exit | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | After ... < ... [false] | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | Before ... < ... | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:268:9:276:9 | After try {...} ... | +| cflow.cs:268:9:276:9 | After try {...} ... | cflow.cs:268:9:276:9 | After try {...} ... | +| cflow.cs:282:5:282:18 | Entry | cflow.cs:282:5:282:18 | Entry | +| cflow.cs:284:5:284:18 | Entry | cflow.cs:284:5:284:18 | Entry | +| cflow.cs:286:5:286:18 | Entry | cflow.cs:286:5:286:18 | Entry | +| cflow.cs:289:7:289:18 | Entry | cflow.cs:289:7:289:18 | Entry | +| cflow.cs:291:12:291:12 | Entry | cflow.cs:291:12:291:12 | Entry | +| cflow.cs:296:5:296:25 | Entry | cflow.cs:296:5:296:25 | Entry | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:298:10:298:10 | Entry | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:300:44:300:64 | After ... && ... | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:300:46:300:50 | After ... > ... [false] | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:300:46:300:50 | After ... > ... [true] | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:44:300:64 | After ... && ... | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:300:46:300:50 | After ... > ... [false] | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:300:46:300:50 | After ... > ... [true] | +| cflow.cs:304:7:304:18 | Entry | cflow.cs:304:7:304:18 | Entry | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | Entry | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | Entry | postBlockDominance -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | -| AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | enter get_Item | -| AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | enter set_Item | -| AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | enter add_Event | -| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | enter remove_Event | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | enter M1 | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | enter M2 | -| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | enter M3 | -| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | enter M4 | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | enter M5 | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | enter M6 | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | enter M7 | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | enter M8 | -| AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | enter M9 | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | -| ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | enter M1 | -| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | enter M2 | -| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | enter M3 | -| ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:12:9:13 | enter M4 | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | enter AssertTests | -| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:7:10:7:11 | enter M1 | -| Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | exit M1 | -| Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | exit M1 (abnormal) | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:7:10:7:11 | enter M1 | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:20:9:32 | ... ? ... : ... | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:24:9:27 | null | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:31:9:32 | "" | -| Assert.cs:9:24:9:27 | null | Assert.cs:9:24:9:27 | null | -| Assert.cs:9:31:9:32 | "" | Assert.cs:9:31:9:32 | "" | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:7:10:7:11 | enter M1 | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:9:20:9:32 | ... ? ... : ... | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:9:24:9:27 | null | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:9:31:9:32 | "" | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:9:11:36 | ...; | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:14:10:14:11 | enter M2 | -| Assert.cs:14:10:14:11 | exit M2 | Assert.cs:14:10:14:11 | exit M2 | -| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | exit M2 (abnormal) | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:14:10:14:11 | enter M2 | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:20:16:32 | ... ? ... : ... | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:24:16:27 | null | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:31:16:32 | "" | -| Assert.cs:16:24:16:27 | null | Assert.cs:16:24:16:27 | null | -| Assert.cs:16:31:16:32 | "" | Assert.cs:16:31:16:32 | "" | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:14:10:14:11 | enter M2 | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:16:20:16:32 | ... ? ... : ... | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:16:24:16:27 | null | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:16:31:16:32 | "" | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:9:18:36 | ...; | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:21:10:21:11 | enter M3 | -| Assert.cs:21:10:21:11 | exit M3 | Assert.cs:21:10:21:11 | exit M3 | -| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | exit M3 (abnormal) | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:21:10:21:11 | enter M3 | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:20:23:32 | ... ? ... : ... | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:24:23:27 | null | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:31:23:32 | "" | -| Assert.cs:23:24:23:27 | null | Assert.cs:23:24:23:27 | null | -| Assert.cs:23:31:23:32 | "" | Assert.cs:23:31:23:32 | "" | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:21:10:21:11 | enter M3 | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:23:20:23:32 | ... ? ... : ... | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:23:24:23:27 | null | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:23:31:23:32 | "" | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:9:25:36 | ...; | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:28:10:28:11 | enter M4 | -| Assert.cs:28:10:28:11 | exit M4 | Assert.cs:28:10:28:11 | exit M4 | -| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | exit M4 (abnormal) | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:28:10:28:11 | enter M4 | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:20:30:32 | ... ? ... : ... | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:24:30:27 | null | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:31:30:32 | "" | -| Assert.cs:30:24:30:27 | null | Assert.cs:30:24:30:27 | null | -| Assert.cs:30:31:30:32 | "" | Assert.cs:30:31:30:32 | "" | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:28:10:28:11 | enter M4 | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:30:20:30:32 | ... ? ... : ... | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:30:24:30:27 | null | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:30:31:30:32 | "" | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:9:32:36 | ...; | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:35:10:35:11 | enter M5 | -| Assert.cs:35:10:35:11 | exit M5 | Assert.cs:35:10:35:11 | exit M5 | -| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | exit M5 (abnormal) | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:35:10:35:11 | enter M5 | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:20:37:32 | ... ? ... : ... | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:24:37:27 | null | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:31:37:32 | "" | -| Assert.cs:37:24:37:27 | null | Assert.cs:37:24:37:27 | null | -| Assert.cs:37:31:37:32 | "" | Assert.cs:37:31:37:32 | "" | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:35:10:35:11 | enter M5 | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:37:20:37:32 | ... ? ... : ... | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:37:24:37:27 | null | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:37:31:37:32 | "" | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:9:39:36 | ...; | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:42:10:42:11 | enter M6 | -| Assert.cs:42:10:42:11 | exit M6 | Assert.cs:42:10:42:11 | exit M6 | -| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | exit M6 (abnormal) | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:42:10:42:11 | enter M6 | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:20:44:32 | ... ? ... : ... | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:24:44:27 | null | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:31:44:32 | "" | -| Assert.cs:44:24:44:27 | null | Assert.cs:44:24:44:27 | null | -| Assert.cs:44:31:44:32 | "" | Assert.cs:44:31:44:32 | "" | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:42:10:42:11 | enter M6 | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:44:20:44:32 | ... ? ... : ... | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:44:24:44:27 | null | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:44:31:44:32 | "" | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:9:46:36 | ...; | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:49:10:49:11 | enter M7 | -| Assert.cs:49:10:49:11 | exit M7 | Assert.cs:49:10:49:11 | exit M7 | -| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | exit M7 (abnormal) | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:49:10:49:11 | enter M7 | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:20:51:32 | ... ? ... : ... | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:24:51:27 | null | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:31:51:32 | "" | -| Assert.cs:51:24:51:27 | null | Assert.cs:51:24:51:27 | null | -| Assert.cs:51:31:51:32 | "" | Assert.cs:51:31:51:32 | "" | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:49:10:49:11 | enter M7 | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:51:20:51:32 | ... ? ... : ... | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:51:24:51:27 | null | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:51:31:51:32 | "" | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:9:53:36 | ...; | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | exit M8 (abnormal) | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:32 | ... ? ... : ... | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:24:58:27 | null | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:31:58:32 | "" | -| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | -| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:58:20:58:32 | ... ? ... : ... | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:58:24:58:27 | null | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:58:31:58:32 | "" | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:36 | ... && ... | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:36:59:36 | access to parameter b | -| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:58:20:58:32 | ... ? ... : ... | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:58:24:58:27 | null | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:58:31:58:32 | "" | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:59:23:59:36 | ... && ... | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:59:36:59:36 | access to parameter b | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:9:60:36 | ...; | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | exit M9 (abnormal) | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:32 | ... ? ... : ... | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:24:65:27 | null | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:31:65:32 | "" | -| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | -| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:65:20:65:32 | ... ? ... : ... | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:65:24:65:27 | null | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:65:31:65:32 | "" | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:37 | ... \|\| ... | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:37:66:37 | access to parameter b | -| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:65:20:65:32 | ... ? ... : ... | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:65:24:65:27 | null | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:65:31:65:32 | "" | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:66:24:66:37 | ... \|\| ... | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:66:37:66:37 | access to parameter b | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:9:67:36 | ...; | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | exit M10 (abnormal) | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:32 | ... ? ... : ... | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:24:72:27 | null | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:31:72:32 | "" | -| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | -| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:72:20:72:32 | ... ? ... : ... | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:72:24:72:27 | null | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:72:31:72:32 | "" | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:36 | ... && ... | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:36:73:36 | access to parameter b | -| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:72:20:72:32 | ... ? ... : ... | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:72:24:72:27 | null | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:72:31:72:32 | "" | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:73:23:73:36 | ... && ... | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:73:36:73:36 | access to parameter b | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:9:74:36 | ...; | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | exit M11 (abnormal) | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:32 | ... ? ... : ... | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:24:79:27 | null | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:31:79:32 | "" | -| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | -| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:79:20:79:32 | ... ? ... : ... | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:79:24:79:27 | null | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:79:31:79:32 | "" | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:37 | ... \|\| ... | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:37:80:37 | access to parameter b | -| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:79:20:79:32 | ... ? ... : ... | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:79:24:79:27 | null | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:79:31:79:32 | "" | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:80:24:80:37 | ... \|\| ... | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:80:37:80:37 | access to parameter b | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:9:81:36 | ...; | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | exit M12 | -| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | -| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | -| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | -| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | -| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | -| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | -| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | -| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | -| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | -| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | -| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | -| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:86:24:86:27 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:86:31:86:32 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:90:17:90:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:90:24:90:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:94:17:94:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:94:24:94:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:98:17:98:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:98:24:98:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:102:17:102:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:102:24:102:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:106:17:106:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:106:24:106:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:110:17:110:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:110:24:110:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:114:17:114:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:114:24:114:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:118:17:118:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:118:24:118:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:122:17:122:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:122:24:122:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:126:17:126:20 | null | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:126:24:126:25 | "" | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:86:20:86:32 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:86:24:86:27 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:86:31:86:32 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:88:9:88:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:90:13:90:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:90:17:90:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:90:24:90:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:92:9:92:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:94:13:94:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:94:17:94:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:94:24:94:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:96:9:96:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:98:13:98:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:98:17:98:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:98:24:98:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:100:9:100:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:102:13:102:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:102:17:102:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:102:24:102:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:104:9:104:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:106:13:106:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:106:17:106:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:106:24:106:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:108:9:108:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:110:13:110:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:110:17:110:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:110:24:110:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:112:9:112:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:114:13:114:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:114:17:114:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:114:24:114:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:115:23:115:36 | ... && ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:115:36:115:36 | access to parameter b | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:116:9:116:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:118:13:118:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:118:17:118:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:118:24:118:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:119:24:119:38 | ... \|\| ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:119:38:119:38 | access to parameter b | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:120:9:120:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:122:13:122:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:122:17:122:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:122:24:122:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:123:23:123:36 | ... && ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:123:36:123:36 | access to parameter b | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:124:9:124:36 | ...; | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:126:13:126:25 | ... ? ... : ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:126:17:126:20 | null | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:126:24:126:25 | "" | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:127:24:127:38 | ... \|\| ... | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:127:38:127:38 | access to parameter b | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:9:128:36 | ...; | -| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | enter AssertTrueFalse | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | enter M13 | -| Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | exit M13 | -| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 (abnormal) | -| Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | enter M13 | -| Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | return ...; | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | enter Assignments | -| Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | enter M | -| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | enter (...) => ... | -| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | enter + | -| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | enter SetParamSingle | -| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | enter SetParamMulti | -| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | enter M2 | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | enter BreakInTry | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | enter M1 | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | enter M1 | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:7:26:7:28 | String arg | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:10:21:10:26 | break; | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:14:9:17:9 | {...} | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:16:17:16:17 | ; | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | enter M1 | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | +| AccessorCalls.cs:1:7:1:19 | Entry | AccessorCalls.cs:1:7:1:19 | Entry | +| AccessorCalls.cs:5:23:5:25 | Entry | AccessorCalls.cs:5:23:5:25 | Entry | +| AccessorCalls.cs:5:33:5:35 | Entry | AccessorCalls.cs:5:33:5:35 | Entry | +| AccessorCalls.cs:7:32:7:34 | Entry | AccessorCalls.cs:7:32:7:34 | Entry | +| AccessorCalls.cs:7:40:7:45 | Entry | AccessorCalls.cs:7:40:7:45 | Entry | +| AccessorCalls.cs:10:10:10:11 | Entry | AccessorCalls.cs:10:10:10:11 | Entry | +| AccessorCalls.cs:19:10:19:11 | Entry | AccessorCalls.cs:19:10:19:11 | Entry | +| AccessorCalls.cs:28:10:28:11 | Entry | AccessorCalls.cs:28:10:28:11 | Entry | +| AccessorCalls.cs:35:10:35:11 | Entry | AccessorCalls.cs:35:10:35:11 | Entry | +| AccessorCalls.cs:42:10:42:11 | Entry | AccessorCalls.cs:42:10:42:11 | Entry | +| AccessorCalls.cs:49:10:49:11 | Entry | AccessorCalls.cs:49:10:49:11 | Entry | +| AccessorCalls.cs:56:10:56:11 | Entry | AccessorCalls.cs:56:10:56:11 | Entry | +| AccessorCalls.cs:61:10:61:11 | Entry | AccessorCalls.cs:61:10:61:11 | Entry | +| AccessorCalls.cs:66:10:66:11 | Entry | AccessorCalls.cs:66:10:66:11 | Entry | +| ArrayCreation.cs:1:7:1:19 | Entry | ArrayCreation.cs:1:7:1:19 | Entry | +| ArrayCreation.cs:3:11:3:12 | Entry | ArrayCreation.cs:3:11:3:12 | Entry | +| ArrayCreation.cs:5:12:5:13 | Entry | ArrayCreation.cs:5:12:5:13 | Entry | +| ArrayCreation.cs:7:11:7:12 | Entry | ArrayCreation.cs:7:11:7:12 | Entry | +| ArrayCreation.cs:9:12:9:13 | Entry | ArrayCreation.cs:9:12:9:13 | Entry | +| Assert.cs:5:7:5:17 | Entry | Assert.cs:5:7:5:17 | Entry | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:7:10:7:11 | Entry | +| Assert.cs:7:10:7:11 | Exceptional Exit | Assert.cs:7:10:7:11 | Exceptional Exit | +| Assert.cs:7:10:7:11 | Exit | Assert.cs:7:10:7:11 | Exit | +| Assert.cs:9:20:9:20 | After access to parameter b [false] | Assert.cs:9:20:9:20 | After access to parameter b [false] | +| Assert.cs:9:20:9:20 | After access to parameter b [true] | Assert.cs:9:20:9:20 | After access to parameter b [true] | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:7:10:7:11 | Entry | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:20:9:20 | After access to parameter b [false] | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:20:9:20 | After access to parameter b [true] | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:20:9:32 | After ... ? ... : ... | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:7:10:7:11 | Entry | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:9:20:9:20 | After access to parameter b [false] | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:9:20:9:20 | After access to parameter b [true] | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:9:20:9:32 | After ... ? ... : ... | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:10:9:10:31 | After call to method Assert | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:14:10:14:11 | Entry | +| Assert.cs:14:10:14:11 | Exceptional Exit | Assert.cs:14:10:14:11 | Exceptional Exit | +| Assert.cs:14:10:14:11 | Exit | Assert.cs:14:10:14:11 | Exit | +| Assert.cs:16:20:16:20 | After access to parameter b [false] | Assert.cs:16:20:16:20 | After access to parameter b [false] | +| Assert.cs:16:20:16:20 | After access to parameter b [true] | Assert.cs:16:20:16:20 | After access to parameter b [true] | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:14:10:14:11 | Entry | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:20:16:20 | After access to parameter b [false] | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:20:16:20 | After access to parameter b [true] | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:20:16:32 | After ... ? ... : ... | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:14:10:14:11 | Entry | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:16:20:16:20 | After access to parameter b [false] | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:16:20:16:20 | After access to parameter b [true] | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:16:20:16:32 | After ... ? ... : ... | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:17:9:17:24 | After call to method IsNull | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:21:10:21:11 | Entry | +| Assert.cs:21:10:21:11 | Exceptional Exit | Assert.cs:21:10:21:11 | Exceptional Exit | +| Assert.cs:21:10:21:11 | Exit | Assert.cs:21:10:21:11 | Exit | +| Assert.cs:23:20:23:20 | After access to parameter b [false] | Assert.cs:23:20:23:20 | After access to parameter b [false] | +| Assert.cs:23:20:23:20 | After access to parameter b [true] | Assert.cs:23:20:23:20 | After access to parameter b [true] | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:21:10:21:11 | Entry | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:20:23:20 | After access to parameter b [false] | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:20:23:20 | After access to parameter b [true] | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:20:23:32 | After ... ? ... : ... | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:21:10:21:11 | Entry | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:23:20:23:20 | After access to parameter b [false] | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:23:20:23:20 | After access to parameter b [true] | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:23:20:23:32 | After ... ? ... : ... | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:24:9:24:27 | After call to method IsNotNull | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:28:10:28:11 | Entry | +| Assert.cs:28:10:28:11 | Exceptional Exit | Assert.cs:28:10:28:11 | Exceptional Exit | +| Assert.cs:28:10:28:11 | Exit | Assert.cs:28:10:28:11 | Exit | +| Assert.cs:30:20:30:20 | After access to parameter b [false] | Assert.cs:30:20:30:20 | After access to parameter b [false] | +| Assert.cs:30:20:30:20 | After access to parameter b [true] | Assert.cs:30:20:30:20 | After access to parameter b [true] | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:28:10:28:11 | Entry | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:20:30:20 | After access to parameter b [false] | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:20:30:20 | After access to parameter b [true] | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:20:30:32 | After ... ? ... : ... | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:28:10:28:11 | Entry | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:30:20:30:20 | After access to parameter b [false] | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:30:20:30:20 | After access to parameter b [true] | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:30:20:30:32 | After ... ? ... : ... | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:31:9:31:32 | After call to method IsTrue | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:35:10:35:11 | Entry | +| Assert.cs:35:10:35:11 | Exceptional Exit | Assert.cs:35:10:35:11 | Exceptional Exit | +| Assert.cs:35:10:35:11 | Exit | Assert.cs:35:10:35:11 | Exit | +| Assert.cs:37:20:37:20 | After access to parameter b [false] | Assert.cs:37:20:37:20 | After access to parameter b [false] | +| Assert.cs:37:20:37:20 | After access to parameter b [true] | Assert.cs:37:20:37:20 | After access to parameter b [true] | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:35:10:35:11 | Entry | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:20:37:20 | After access to parameter b [false] | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:20:37:20 | After access to parameter b [true] | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:20:37:32 | After ... ? ... : ... | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:35:10:35:11 | Entry | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:37:20:37:20 | After access to parameter b [false] | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:37:20:37:20 | After access to parameter b [true] | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:37:20:37:32 | After ... ? ... : ... | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:38:9:38:32 | After call to method IsTrue | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:42:10:42:11 | Entry | +| Assert.cs:42:10:42:11 | Exceptional Exit | Assert.cs:42:10:42:11 | Exceptional Exit | +| Assert.cs:42:10:42:11 | Exit | Assert.cs:42:10:42:11 | Exit | +| Assert.cs:44:20:44:20 | After access to parameter b [false] | Assert.cs:44:20:44:20 | After access to parameter b [false] | +| Assert.cs:44:20:44:20 | After access to parameter b [true] | Assert.cs:44:20:44:20 | After access to parameter b [true] | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:42:10:42:11 | Entry | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:20:44:20 | After access to parameter b [false] | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:20:44:20 | After access to parameter b [true] | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:20:44:32 | After ... ? ... : ... | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:42:10:42:11 | Entry | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:44:20:44:20 | After access to parameter b [false] | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:44:20:44:20 | After access to parameter b [true] | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:44:20:44:32 | After ... ? ... : ... | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:45:9:45:33 | After call to method IsFalse | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:49:10:49:11 | Entry | +| Assert.cs:49:10:49:11 | Exceptional Exit | Assert.cs:49:10:49:11 | Exceptional Exit | +| Assert.cs:49:10:49:11 | Exit | Assert.cs:49:10:49:11 | Exit | +| Assert.cs:51:20:51:20 | After access to parameter b [false] | Assert.cs:51:20:51:20 | After access to parameter b [false] | +| Assert.cs:51:20:51:20 | After access to parameter b [true] | Assert.cs:51:20:51:20 | After access to parameter b [true] | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:49:10:49:11 | Entry | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:20:51:20 | After access to parameter b [false] | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:20:51:20 | After access to parameter b [true] | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:20:51:32 | After ... ? ... : ... | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:49:10:49:11 | Entry | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:51:20:51:20 | After access to parameter b [false] | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:51:20:51:20 | After access to parameter b [true] | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:51:20:51:32 | After ... ? ... : ... | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:52:9:52:33 | After call to method IsFalse | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:56:10:56:11 | Entry | +| Assert.cs:56:10:56:11 | Exceptional Exit | Assert.cs:56:10:56:11 | Exceptional Exit | +| Assert.cs:56:10:56:11 | Exit | Assert.cs:56:10:56:11 | Exit | +| Assert.cs:58:20:58:20 | After access to parameter b [false] | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:58:20:58:20 | After access to parameter b [true] | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:56:10:56:11 | Entry | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:20:58:32 | After ... ? ... : ... | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:56:10:56:11 | Entry | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:58:20:58:32 | After ... ? ... : ... | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:9:59:37 | After call to method IsTrue | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:23:59:36 | After ... && ... | +| Assert.cs:59:23:59:31 | After ... != ... [false] | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:59:23:59:31 | After ... != ... [true] | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:56:10:56:11 | Entry | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:58:20:58:20 | After access to parameter b [false] | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:58:20:58:20 | After access to parameter b [true] | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:58:20:58:32 | After ... ? ... : ... | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:23:59:31 | After ... != ... [false] | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:23:59:31 | After ... != ... [true] | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:23:59:36 | After ... && ... | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:63:10:63:11 | Entry | +| Assert.cs:63:10:63:11 | Exceptional Exit | Assert.cs:63:10:63:11 | Exceptional Exit | +| Assert.cs:63:10:63:11 | Exit | Assert.cs:63:10:63:11 | Exit | +| Assert.cs:65:20:65:20 | After access to parameter b [false] | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:65:20:65:20 | After access to parameter b [true] | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:63:10:63:11 | Entry | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:20:65:32 | After ... ? ... : ... | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:63:10:63:11 | Entry | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:65:20:65:32 | After ... ? ... : ... | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:9:66:38 | After call to method IsFalse | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:24:66:37 | After ... \|\| ... | +| Assert.cs:66:24:66:32 | After ... == ... [false] | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:66:24:66:32 | After ... == ... [true] | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:63:10:63:11 | Entry | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:65:20:65:20 | After access to parameter b [false] | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:65:20:65:20 | After access to parameter b [true] | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:65:20:65:32 | After ... ? ... : ... | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:24:66:32 | After ... == ... [false] | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:24:66:32 | After ... == ... [true] | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:24:66:37 | After ... \|\| ... | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:70:10:70:12 | Entry | +| Assert.cs:70:10:70:12 | Exceptional Exit | Assert.cs:70:10:70:12 | Exceptional Exit | +| Assert.cs:70:10:70:12 | Exit | Assert.cs:70:10:70:12 | Exit | +| Assert.cs:72:20:72:20 | After access to parameter b [false] | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:72:20:72:20 | After access to parameter b [true] | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:70:10:70:12 | Entry | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:20:72:32 | After ... ? ... : ... | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:70:10:70:12 | Entry | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:72:20:72:32 | After ... ? ... : ... | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:9:73:37 | After call to method IsTrue | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:23:73:36 | After ... && ... | +| Assert.cs:73:23:73:31 | After ... == ... [false] | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:73:23:73:31 | After ... == ... [true] | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:70:10:70:12 | Entry | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:72:20:72:20 | After access to parameter b [false] | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:72:20:72:20 | After access to parameter b [true] | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:72:20:72:32 | After ... ? ... : ... | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:23:73:31 | After ... == ... [false] | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:23:73:31 | After ... == ... [true] | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:23:73:36 | After ... && ... | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:77:10:77:12 | Entry | +| Assert.cs:77:10:77:12 | Exceptional Exit | Assert.cs:77:10:77:12 | Exceptional Exit | +| Assert.cs:77:10:77:12 | Exit | Assert.cs:77:10:77:12 | Exit | +| Assert.cs:79:20:79:20 | After access to parameter b [false] | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:79:20:79:20 | After access to parameter b [true] | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:77:10:77:12 | Entry | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:20:79:32 | After ... ? ... : ... | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:77:10:77:12 | Entry | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:79:20:79:32 | After ... ? ... : ... | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:9:80:38 | After call to method IsFalse | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:24:80:37 | After ... \|\| ... | +| Assert.cs:80:24:80:32 | After ... != ... [false] | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:80:24:80:32 | After ... != ... [true] | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:77:10:77:12 | Entry | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:79:20:79:20 | After access to parameter b [false] | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:79:20:79:20 | After access to parameter b [true] | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:79:20:79:32 | After ... ? ... : ... | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:24:80:32 | After ... != ... [false] | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:24:80:32 | After ... != ... [true] | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:24:80:37 | After ... \|\| ... | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:84:10:84:12 | Exceptional Exit | Assert.cs:84:10:84:12 | Exceptional Exit | +| Assert.cs:84:10:84:12 | Exit | Assert.cs:84:10:84:12 | Exit | +| Assert.cs:86:20:86:20 | After access to parameter b [false] | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:86:20:86:20 | After access to parameter b [true] | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:90:13:90:13 | After access to parameter b [false] | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:13 | After access to parameter b [true] | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:94:13:94:13 | After access to parameter b [false] | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:13 | After access to parameter b [true] | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:98:13:98:13 | After access to parameter b [false] | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:13 | After access to parameter b [true] | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:102:13:102:13 | After access to parameter b [false] | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:13 | After access to parameter b [true] | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:106:13:106:13 | After access to parameter b [false] | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:13 | After access to parameter b [true] | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:110:13:110:13 | After access to parameter b [false] | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:13 | After access to parameter b [true] | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:114:13:114:13 | After access to parameter b [false] | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:13 | After access to parameter b [true] | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:115:23:115:31 | After ... != ... [false] | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:115:23:115:31 | After ... != ... [true] | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:118:13:118:13 | After access to parameter b [false] | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:13 | After access to parameter b [true] | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:119:24:119:32 | After ... == ... [false] | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:119:24:119:32 | After ... == ... [true] | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:122:13:122:13 | After access to parameter b [false] | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:13 | After access to parameter b [true] | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:123:23:123:31 | After ... == ... [false] | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:123:23:123:31 | After ... == ... [true] | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:126:13:126:13 | After access to parameter b [false] | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:13 | After access to parameter b [true] | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:9:127:39 | After call to method IsFalse | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:127:24:127:32 | After ... != ... [false] | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:127:24:127:32 | After ... != ... [true] | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:84:10:84:12 | Entry | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:86:20:86:20 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:86:20:86:20 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:86:20:86:32 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:87:9:87:31 | After call to method Assert | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:90:13:90:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:90:13:90:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:90:13:90:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:91:9:91:24 | After call to method IsNull | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:94:13:94:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:94:13:94:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:94:13:94:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:95:9:95:27 | After call to method IsNotNull | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:98:13:98:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:98:13:98:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:98:13:98:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:99:9:99:32 | After call to method IsTrue | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:102:13:102:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:102:13:102:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:102:13:102:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:103:9:103:32 | After call to method IsTrue | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:106:13:106:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:106:13:106:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:106:13:106:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:107:9:107:33 | After call to method IsFalse | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:110:13:110:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:110:13:110:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:110:13:110:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:111:9:111:33 | After call to method IsFalse | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:114:13:114:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:114:13:114:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:114:13:114:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:115:9:115:37 | After call to method IsTrue | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:115:23:115:31 | After ... != ... [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:115:23:115:31 | After ... != ... [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:115:23:115:36 | After ... && ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:118:13:118:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:118:13:118:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:118:13:118:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:119:9:119:39 | After call to method IsFalse | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:119:24:119:32 | After ... == ... [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:119:24:119:32 | After ... == ... [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:119:24:119:38 | After ... \|\| ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:122:13:122:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:122:13:122:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:122:13:122:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:123:9:123:37 | After call to method IsTrue | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:123:23:123:31 | After ... == ... [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:123:23:123:31 | After ... == ... [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:123:23:123:36 | After ... && ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:126:13:126:13 | After access to parameter b [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:126:13:126:13 | After access to parameter b [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:126:13:126:25 | After ... ? ... : ... | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:24:127:32 | After ... != ... [false] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:24:127:32 | After ... != ... [true] | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:24:127:38 | After ... \|\| ... | +| Assert.cs:131:18:131:32 | Entry | Assert.cs:131:18:131:32 | Entry | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:138:10:138:12 | Entry | +| Assert.cs:138:10:138:12 | Exceptional Exit | Assert.cs:138:10:138:12 | Exceptional Exit | +| Assert.cs:138:10:138:12 | Exit | Assert.cs:138:10:138:12 | Exit | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:138:10:138:12 | Entry | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | +| Assignments.cs:1:7:1:17 | Entry | Assignments.cs:1:7:1:17 | Entry | +| Assignments.cs:3:10:3:10 | Entry | Assignments.cs:3:10:3:10 | Entry | +| Assignments.cs:14:18:14:35 | Entry | Assignments.cs:14:18:14:35 | Entry | +| Assignments.cs:17:40:17:40 | Entry | Assignments.cs:17:40:17:40 | Entry | +| Assignments.cs:27:10:27:23 | Entry | Assignments.cs:27:10:27:23 | Entry | +| Assignments.cs:32:10:32:22 | Entry | Assignments.cs:32:10:32:22 | Entry | +| Assignments.cs:38:10:38:11 | Entry | Assignments.cs:38:10:38:11 | Entry | +| BreakInTry.cs:1:7:1:16 | Entry | BreakInTry.cs:1:7:1:16 | Entry | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:3:10:3:11 | Entry | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | Entry | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:7:26:7:28 | String arg | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | | BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:7:26:7:28 | String arg | -| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:10:21:10:26 | break; | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:3:10:3:11 | enter M1 | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:7:26:7:28 | String arg | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:10:21:10:26 | break; | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:14:9:17:9 | {...} | -| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:16:17:16:17 | ; | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:20:10:20:11 | enter M2 | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | enter M2 | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | +| BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:9:21:9:31 | After ... == ... [false] | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:9:21:9:31 | After ... == ... [true] | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:3:10:3:11 | Entry | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:7:26:7:28 | String arg | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:15:13:16:17 | After if (...) ... | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | +| BreakInTry.cs:15:17:15:28 | After ... == ... [false] | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | +| BreakInTry.cs:15:17:15:28 | After ... == ... [true] | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:20:10:20:11 | Entry | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | Entry | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:22:22:22:24 | String arg | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:24:13:33:13 | After try {...} ... | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:30:13:33:13 | {...} | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:22:22:24 | String arg | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | break; | +| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:24:13:33:13 | After try {...} ... | BreakInTry.cs:24:13:33:13 | After try {...} ... | +| BreakInTry.cs:26:21:26:31 | After ... == ... [false] | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:26:21:26:31 | After ... == ... [true] | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:22:22:22:24 | String arg | -| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:27:21:27:26 | break; | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | enter M2 | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:22:22:24 | String arg | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:27:21:27:26 | break; | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:35:7:35:7 | ; | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | enter M3 | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | enter M3 | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:53:7:53:7 | ; | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | enter M3 | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:43:17:43:23 | return ...; | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:22:22:22:24 | String arg | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:30:13:33:13 | {...} | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:31:17:32:21 | After if (...) ... | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:31:21:31:32 | After ... == ... [false] | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | +| BreakInTry.cs:31:21:31:32 | After ... == ... [true] | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:38:10:38:11 | Entry | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | Entry | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | Normal Exit | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:40:9:52:9 | After try {...} ... | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:46:9:52:9 | {...} | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:47:26:47:28 | String arg | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:40:9:52:9 | After try {...} ... | BreakInTry.cs:40:9:52:9 | After try {...} ... | +| BreakInTry.cs:42:17:42:28 | After ... == ... [false] | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | +| BreakInTry.cs:42:17:42:28 | After ... == ... [true] | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | Entry | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | enter M3 | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | Entry | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:46:9:52:9 | {...} | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:53:7:53:7 | ; | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | enter M4 | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | enter M4 | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | enter M4 | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:61:17:61:23 | return ...; | +| BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:49:21:49:31 | After ... == ... [false] | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | +| BreakInTry.cs:49:21:49:31 | After ... == ... [true] | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:56:10:56:11 | Entry | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | Entry | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | Normal Exit | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:58:9:70:9 | After try {...} ... | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:64:9:70:9 | {...} | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:65:26:65:28 | String arg | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| BreakInTry.cs:58:9:70:9 | After try {...} ... | BreakInTry.cs:58:9:70:9 | After try {...} ... | +| BreakInTry.cs:60:17:60:28 | After ... == ... [false] | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | +| BreakInTry.cs:60:17:60:28 | After ... == ... [true] | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | Entry | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | enter M4 | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | Entry | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:64:9:70:9 | {...} | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | -| CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | enter Default | -| CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | -| CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:15:10:15:15 | enter Typeof | -| CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | enter M | -| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M | -| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | -| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:34 | ...; | -| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | enter M | -| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:39:9:39:34 | ...; | +| BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | +| BreakInTry.cs:67:21:67:31 | After ... == ... [false] | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | +| BreakInTry.cs:67:21:67:31 | After ... == ... [true] | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | +| CompileTimeOperators.cs:3:7:3:26 | Entry | CompileTimeOperators.cs:3:7:3:26 | Entry | +| CompileTimeOperators.cs:5:9:5:15 | Entry | CompileTimeOperators.cs:5:9:5:15 | Entry | +| CompileTimeOperators.cs:10:9:10:14 | Entry | CompileTimeOperators.cs:10:9:10:14 | Entry | +| CompileTimeOperators.cs:15:10:15:15 | Entry | CompileTimeOperators.cs:15:10:15:15 | Entry | +| CompileTimeOperators.cs:20:12:20:17 | Entry | CompileTimeOperators.cs:20:12:20:17 | Entry | +| CompileTimeOperators.cs:26:7:26:22 | Entry | CompileTimeOperators.cs:26:7:26:22 | Entry | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:28:10:28:10 | Entry | +| CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | +| CompileTimeOperators.cs:28:10:28:10 | Exit | CompileTimeOperators.cs:28:10:28:10 | Exit | +| CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | Entry | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:9:40:11 | End: | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | enter M1 | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | enter M1 | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:26:3:38 | call to method ToString | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:38 | call to method ToString | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:10:5:11 | enter M2 | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | enter M2 | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:26:5:34 | access to property Length | -| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:34 | access to property Length | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:10:7:11 | enter M3 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | enter M3 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:38:7:55 | access to property Length | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:38:7:55 | access to property Length | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | -| ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | -| ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:9:9:10 | enter M4 | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | access to property Length | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:9:9:10 | enter M4 | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:33 | access to property Length | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:38:9:38 | 0 | -| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:38:9:38 | 0 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:11:9:11:10 | enter M5 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | enter M5 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:13:13:13:21 | access to property Length | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:13:25:13:25 | 0 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:14:20:14:20 | 0 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:16:20:16:20 | 1 | -| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:13:13:21 | access to property Length | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:11:9:11:10 | enter M5 | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:13:13:21 | access to property Length | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:25:13:25 | 0 | -| ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:14:20:14:20 | 0 | -| ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:16:20:16:20 | 1 | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:12:19:13 | enter M6 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | enter M6 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | -| ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:21:10:21:11 | enter M7 | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:21:10:21:11 | enter M7 | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:21:10:21:11 | enter M7 | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:17:24:37 | call to method ToString | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:21:10:21:11 | enter M7 | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:24:17:24:37 | call to method ToString | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:31:25:31 | access to local variable s | -| ConditionalAccess.cs:30:10:30:12 | enter Out | ConditionalAccess.cs:30:10:30:12 | enter Out | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:32:10:32:11 | enter M8 | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | enter M8 | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item | -| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | enter M9 | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:48:24:48:25 | 42 | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:49:9:49:33 | ...; | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:49:26:49:32 | "Hello" | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:50:9:50:24 | ...; | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:50:13:50:13 | 0 | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:51:9:51:16 | access to property Prop | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:51:9:51:32 | ...; | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:51:30:51:31 | 84 | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:52:9:52:16 | access to property Prop | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:52:9:52:39 | ...; | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:52:32:52:38 | "World" | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:53:9:53:20 | access to field IntField | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:53:9:53:26 | ...; | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:53:25:53:25 | 1 | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | -| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | enter IncrOrDecr | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:6:13:6:16 | ...; | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:9:8:16 | if (...) ... | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:16 | ...; | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | enter IncrOrDecr | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:6:13:6:16 | ...; | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | enter M1 | -| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:16 | ...; | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | enter M1 | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:15:13:15:16 | ...; | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:9:18:20 | if (...) ... | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | enter M1 | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:15:13:15:16 | ...; | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:9:18:20 | if (...) ... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:13:18:20 | if (...) ... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | enter M2 | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:20 | ...; | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:22:9:22:10 | enter M2 | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:27:17:27:20 | ...; | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:16 | ...; | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | enter M2 | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:27:17:27:20 | ...; | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:9:29:16 | if (...) ... | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:29:13:29:16 | ...; | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | enter M3 | -| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:33:9:33:10 | enter M3 | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:16 | ...; | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:33:9:33:10 | enter M3 | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:40:13:40:16 | ...; | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | enter M3 | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:38:13:38:20 | ...; | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:40:13:40:16 | ...; | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:9:42:16 | if (...) ... | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | enter M4 | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:46:9:46:10 | enter M4 | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:20 | ...; | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:20 | ...; | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | enter M4 | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:16 | access to parameter x | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:52:17:52:20 | ...; | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:16 | ...; | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:60:16:60:16 | access to parameter x | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:63:17:63:20 | ...; | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:66:13:66:16 | ...; | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:70:9:70:10 | enter M6 | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | enter M6 | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:79:17:79:26 | ...; | +| ConditionalAccess.cs:1:7:1:23 | Entry | ConditionalAccess.cs:1:7:1:23 | Entry | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:12:3:13 | Entry | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:12:3:13 | Entry | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:10:5:11 | Entry | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:10:5:11 | Entry | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:26:5:34 | After access to property Length | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:10:7:11 | Entry | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:10:7:11 | Entry | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:38:7:55 | After access to property Length | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:9:9:10 | Entry | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:9:9:10 | Entry | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:11:9:11:10 | Entry | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | Entry | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | Normal Exit | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:13:13:13:21 | After access to property Length | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:11:9:11:10 | Entry | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:13:13:21 | After access to property Length | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:12:19:13 | Entry | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | Entry | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:21:10:21:11 | Entry | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:21:10:21:11 | Entry | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:17:23:38 | After access to property Length | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:21:10:21:11 | Entry | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:23:17:23:38 | After access to property Length | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:25:13:25:14 | After "" [null] | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:21:10:21:11 | Entry | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:23:17:23:38 | After access to property Length | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:14 | After "" [null] | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | +| ConditionalAccess.cs:30:10:30:12 | Entry | ConditionalAccess.cs:30:10:30:12 | Entry | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:32:10:32:11 | Entry | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:32:10:32:11 | Entry | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:24 | After call to method Out | +| ConditionalAccess.cs:42:9:42:11 | Entry | ConditionalAccess.cs:42:9:42:11 | Entry | +| ConditionalAccess.cs:43:9:43:11 | Entry | ConditionalAccess.cs:43:9:43:11 | Entry | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:46:10:46:11 | Entry | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | +| ConditionalAccess.cs:60:26:60:38 | Entry | ConditionalAccess.cs:60:26:60:38 | Entry | +| Conditions.cs:1:7:1:16 | Entry | Conditions.cs:1:7:1:16 | Entry | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:3:10:3:19 | Entry | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:3:10:3:19 | Entry | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:5:9:6:16 | After if (...) ... | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | +| Conditions.cs:5:13:5:15 | After access to parameter inc [false] | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | +| Conditions.cs:5:13:5:15 | After access to parameter inc [true] | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:3:10:3:19 | Entry | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:5:9:6:16 | After if (...) ... | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:7:9:8:16 | After if (...) ... | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:11:9:11:10 | Entry | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:11:9:11:10 | Entry | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:14:9:15:16 | After if (...) ... | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:14:13:14:13 | After access to parameter b [false] | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:14:13:14:13 | After access to parameter b [true] | +| Conditions.cs:14:13:14:13 | After access to parameter b [false] | Conditions.cs:14:13:14:13 | After access to parameter b [false] | +| Conditions.cs:14:13:14:13 | After access to parameter b [true] | Conditions.cs:14:13:14:13 | After access to parameter b [true] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:11:9:11:10 | Entry | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:14:9:15:16 | After if (...) ... | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:14:13:14:13 | After access to parameter b [false] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:14:13:14:13 | After access to parameter b [true] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:16:9:18:20 | After if (...) ... | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [false] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:17:13:18:20 | After if (...) ... | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:16:13:16:17 | After ... > ... [false] | Conditions.cs:16:13:16:17 | After ... > ... [false] | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:17:13:18:20 | After if (...) ... | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:17:18:17:18 | After access to parameter b [false] | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:17:18:17:18 | After access to parameter b [true] | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:22:9:22:10 | Entry | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:22:9:22:10 | Entry | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:25:9:27:20 | After if (...) ... | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:26:13:27:20 | After if (...) ... | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:26:13:27:20 | After if (...) ... | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:22:9:22:10 | Entry | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:25:9:27:20 | After if (...) ... | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:26:13:27:20 | After if (...) ... | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:28:9:29:16 | After if (...) ... | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:33:9:33:10 | Entry | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:33:9:33:10 | Entry | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:37:9:38:20 | After if (...) ... | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:33:9:33:10 | Entry | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:37:9:38:20 | After if (...) ... | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:39:9:40:16 | After if (...) ... | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:33:9:33:10 | Entry | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:37:9:38:20 | After if (...) ... | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:39:9:40:16 | After if (...) ... | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:41:9:42:16 | After if (...) ... | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:46:9:46:10 | Entry | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:46:9:46:10 | Entry | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:46:9:46:10 | Entry | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:49:16:49:22 | After ... > ... [false] | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:49:16:49:22 | After ... > ... [true] | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:51:13:52:20 | After if (...) ... | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:51:17:51:17 | After access to parameter b [false] | Conditions.cs:51:17:51:17 | After access to parameter b [false] | +| Conditions.cs:51:17:51:17 | After access to parameter b [true] | Conditions.cs:51:17:51:17 | After access to parameter b [true] | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:57:9:57:10 | Entry | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:57:9:57:10 | Entry | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:57:9:57:10 | Entry | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:60:16:60:22 | After ... > ... [false] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:62:17:62:17 | After access to parameter b [false] | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:62:17:62:17 | After access to parameter b [true] | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:57:9:57:10 | Entry | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [false] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:62:13:63:20 | After if (...) ... | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [false] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:62:17:62:17 | After access to parameter b [true] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:65:9:66:16 | After if (...) ... | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:65:13:65:13 | After access to parameter b [true] | +| Conditions.cs:65:13:65:13 | After access to parameter b [false] | Conditions.cs:65:13:65:13 | After access to parameter b [false] | +| Conditions.cs:65:13:65:13 | After access to parameter b [true] | Conditions.cs:65:13:65:13 | After access to parameter b [true] | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:70:9:70:10 | Entry | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | Entry | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:70:9:70:10 | enter M6 | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:9:82:16 | if (...) ... | -| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:16 | ...; | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:70:9:70:10 | enter M6 | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:74:22:74:22 | String _ | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:77:17:77:20 | ...; | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:78:13:79:26 | if (...) ... | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:79:17:79:26 | ...; | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:81:9:82:16 | if (...) ... | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:82:13:82:16 | ...; | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:16:83:16 | access to local variable x | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:86:9:86:10 | enter M7 | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | enter M7 | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:97:17:97:20 | ...; | +| Conditions.cs:74:22:74:22 | String _ | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:76:17:76:17 | After access to local variable b [false] | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:76:17:76:17 | After access to local variable b [true] | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:78:17:78:21 | After ... > ... [false] | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:78:17:78:21 | After ... > ... [true] | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:70:9:70:10 | Entry | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:74:22:74:22 | String _ | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:76:13:77:20 | After if (...) ... | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [false] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:76:17:76:17 | After access to local variable b [true] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:78:13:79:26 | After if (...) ... | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:81:9:82:16 | After if (...) ... | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:81:13:81:13 | After access to local variable b [false] | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:81:13:81:13 | After access to local variable b [true] | +| Conditions.cs:81:13:81:13 | After access to local variable b [false] | Conditions.cs:81:13:81:13 | After access to local variable b [false] | +| Conditions.cs:81:13:81:13 | After access to local variable b [true] | Conditions.cs:81:13:81:13 | After access to local variable b [true] | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:86:9:86:10 | Entry | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | Entry | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [true] | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | enter M7 | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:90:22:90:22 | String _ | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:93:17:93:20 | ...; | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:94:13:95:26 | if (...) ... | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:95:17:95:26 | ...; | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:96:13:97:20 | if (...) ... | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:97:17:97:20 | ...; | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | enter M8 | -| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:20 | ...; | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | enter M8 | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:106:13:106:20 | ...; | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:102:12:102:13 | enter M8 | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:106:13:106:20 | ...; | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:9:109:24 | if (...) ... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:13:109:24 | if (...) ... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:16:110:16 | access to local variable x | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:113:10:113:11 | enter M9 | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | enter M9 | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | exit M9 (normal) | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:116:25:116:25 | access to local variable i | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | enter M9 | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:25 | access to local variable i | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:119:17:119:21 | [false] !... | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:119:17:119:21 | [true] !... | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:120:17:120:23 | ...; | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:13:122:25 | if (...) ... | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | enter M10 | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:134:13:139:13 | {...} | -| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:136:17:138:17 | {...} | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | enter M11 | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | enter M11 | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:17:145:29 | ... ? ... : ... | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:21:145:23 | "a" | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:27:145:29 | "b" | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:149:13:149:49 | ...; | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | enter M11 | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:21:145:23 | "a" | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:27:145:29 | "b" | -| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | -| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:49 | ...; | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | enter ExitMethods | -| ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | enter M1 | -| ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:14:10:14:11 | enter M2 | -| ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:20:10:20:11 | enter M3 | -| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:26:10:26:11 | enter M4 | -| ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | enter M5 | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | enter M6 | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | enter M6 | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:48:9:51:9 | catch (...) {...} | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | enter M7 | -| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | enter M8 | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | -| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:19:69:33 | object creation of type Exception | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:72:17:72:27 | enter ErrorAlways | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | -| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:19:75:33 | object creation of type Exception | -| ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:41:77:43 | "b" | -| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | -| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | -| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:87:10:87:13 | enter Exit | -| ExitMethods.cs:92:10:92:18 | enter ExitInTry | ExitMethods.cs:92:10:92:18 | enter ExitInTry | -| ExitMethods.cs:105:10:105:24 | enter ApplicationExit | ExitMethods.cs:105:10:105:24 | enter ApplicationExit | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:110:13:110:21 | enter ThrowExpr | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr | ExitMethods.cs:110:13:110:21 | exit ThrowExpr | -| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:110:13:110:21 | enter ThrowExpr | -| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:29:112:29 | 1 | -| ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:69:112:75 | "input" | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:34:117:34 | 0 | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:38:117:38 | 1 | -| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:34:117:34 | 0 | -| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:38:117:38 | 1 | -| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:120:17:120:32 | enter FailingAssertion | -| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | enter AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | enter AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | -| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | -| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:13:143:43 | ...; | -| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:13:145:53 | ...; | -| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:5:23:5:29 | enter ToInt32 | -| Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:10:24:10:29 | enter ToBool | -| Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:23:15:33 | enter CallToInt32 | -| Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:20:17:20:20 | enter Main | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | enter Finally | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | enter M1 | -| Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | -| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 (abnormal) | -| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | enter M1 | -| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | exit M1 (normal) | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | enter M2 | -| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | enter M2 | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:24:13:24:19 | return ...; | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:26:9:29:9 | catch (...) {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:30:9:40:9 | catch (...) {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:41:9:43:9 | catch (...) {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:49:9:51:9 | {...} | -| Finally.cs:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | return ...; | +| Conditions.cs:90:22:90:22 | String _ | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:92:17:92:17 | After access to local variable b [false] | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:92:17:92:17 | After access to local variable b [true] | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:94:17:94:21 | After ... > ... [false] | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:94:17:94:21 | After ... > ... [true] | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:90:22:90:22 | String _ | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:92:13:93:20 | After if (...) ... | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [false] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:92:17:92:17 | After access to local variable b [true] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:94:13:95:26 | After if (...) ... | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:96:13:97:20 | After if (...) ... | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:96:17:96:17 | After access to local variable b [false] | Conditions.cs:96:17:96:17 | After access to local variable b [false] | +| Conditions.cs:96:17:96:17 | After access to local variable b [true] | Conditions.cs:96:17:96:17 | After access to local variable b [true] | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:102:12:102:13 | Entry | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:102:12:102:13 | Entry | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:105:9:106:20 | After if (...) ... | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:105:13:105:13 | After access to parameter b [false] | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:105:13:105:13 | After access to parameter b [true] | +| Conditions.cs:105:13:105:13 | After access to parameter b [false] | Conditions.cs:105:13:105:13 | After access to parameter b [false] | +| Conditions.cs:105:13:105:13 | After access to parameter b [true] | Conditions.cs:105:13:105:13 | After access to parameter b [true] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:102:12:102:13 | Entry | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:105:9:106:20 | After if (...) ... | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:105:13:105:13 | After access to parameter b [false] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:105:13:105:13 | After access to parameter b [true] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:107:9:109:24 | After if (...) ... | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [false] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:108:13:109:24 | After if (...) ... | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:107:13:107:24 | After ... > ... [false] | Conditions.cs:107:13:107:24 | After ... > ... [false] | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:108:13:109:24 | After if (...) ... | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:108:18:108:18 | After access to parameter b [false] | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:108:18:108:18 | After access to parameter b [true] | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:113:10:113:11 | Entry | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:113:10:113:11 | Entry | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:116:25:116:39 | After ... < ... [false] | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:116:25:116:39 | Before ... < ... | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:113:10:113:11 | Entry | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:39 | Before ... < ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:119:13:120:23 | After if (...) ... | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:119:18:119:21 | After access to local variable last [false] | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:119:18:119:21 | After access to local variable last [true] | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:121:13:122:25 | After if (...) ... | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:121:17:121:20 | After access to local variable last [false] | Conditions.cs:121:17:121:20 | After access to local variable last [false] | +| Conditions.cs:121:17:121:20 | After access to local variable last [true] | Conditions.cs:121:17:121:20 | After access to local variable last [true] | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:129:10:129:12 | Entry | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | +| Conditions.cs:133:13:139:13 | After if (...) ... | Conditions.cs:133:13:139:13 | After if (...) ... | +| Conditions.cs:133:17:133:22 | After access to field Field1 [false] | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | +| Conditions.cs:135:17:138:17 | After if (...) ... | Conditions.cs:135:17:138:17 | After if (...) ... | +| Conditions.cs:135:21:135:26 | After access to field Field2 [false] | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | +| Conditions.cs:135:21:135:26 | After access to field Field2 [true] | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:143:10:143:12 | Entry | +| Conditions.cs:145:17:145:17 | After access to parameter b [false] | Conditions.cs:145:17:145:17 | After access to parameter b [false] | +| Conditions.cs:145:17:145:17 | After access to parameter b [true] | Conditions.cs:145:17:145:17 | After access to parameter b [true] | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:143:10:143:12 | Entry | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:17:145:17 | After access to parameter b [false] | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:17:145:17 | After access to parameter b [true] | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:17:145:29 | After ... ? ... : ... | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:143:10:143:12 | Entry | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:145:17:145:17 | After access to parameter b [false] | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:145:17:145:17 | After access to parameter b [true] | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:145:17:145:29 | After ... ? ... : ... | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:146:9:149:49 | After if (...) ... | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:146:13:146:13 | After access to parameter b [false] | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:146:13:146:13 | After access to parameter b [true] | +| Conditions.cs:146:13:146:13 | After access to parameter b [false] | Conditions.cs:146:13:146:13 | After access to parameter b [false] | +| Conditions.cs:146:13:146:13 | After access to parameter b [true] | Conditions.cs:146:13:146:13 | After access to parameter b [true] | +| ExitMethods.cs:6:7:6:17 | Entry | ExitMethods.cs:6:7:6:17 | Entry | +| ExitMethods.cs:8:10:8:11 | Entry | ExitMethods.cs:8:10:8:11 | Entry | +| ExitMethods.cs:14:10:14:11 | Entry | ExitMethods.cs:14:10:14:11 | Entry | +| ExitMethods.cs:20:10:20:11 | Entry | ExitMethods.cs:20:10:20:11 | Entry | +| ExitMethods.cs:26:10:26:11 | Entry | ExitMethods.cs:26:10:26:11 | Entry | +| ExitMethods.cs:32:10:32:11 | Entry | ExitMethods.cs:32:10:32:11 | Entry | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:38:10:38:11 | Entry | +| ExitMethods.cs:38:10:38:11 | Exit | ExitMethods.cs:38:10:38:11 | Exit | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:38:10:38:11 | Entry | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:38:10:38:11 | Normal Exit | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | +| ExitMethods.cs:54:10:54:11 | Entry | ExitMethods.cs:54:10:54:11 | Entry | +| ExitMethods.cs:60:10:60:11 | Entry | ExitMethods.cs:60:10:60:11 | Entry | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:66:17:66:26 | Entry | +| ExitMethods.cs:66:17:66:26 | Exit | ExitMethods.cs:66:17:66:26 | Exit | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:66:17:66:26 | Entry | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:72:17:72:27 | Entry | +| ExitMethods.cs:72:17:72:27 | Exceptional Exit | ExitMethods.cs:72:17:72:27 | Exceptional Exit | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | +| ExitMethods.cs:80:17:80:28 | Entry | ExitMethods.cs:80:17:80:28 | Entry | +| ExitMethods.cs:85:17:85:28 | Entry | ExitMethods.cs:85:17:85:28 | Entry | +| ExitMethods.cs:87:10:87:13 | Entry | ExitMethods.cs:87:10:87:13 | Entry | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:92:10:92:18 | Entry | +| ExitMethods.cs:92:10:92:18 | Exceptional Exit | ExitMethods.cs:92:10:92:18 | Exceptional Exit | +| ExitMethods.cs:92:10:92:18 | Exit | ExitMethods.cs:92:10:92:18 | Exit | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:92:10:92:18 | Entry | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:94:9:102:9 | After try {...} ... | +| ExitMethods.cs:105:10:105:24 | Entry | ExitMethods.cs:105:10:105:24 | Entry | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:110:13:110:21 | Entry | +| ExitMethods.cs:110:13:110:21 | Exit | ExitMethods.cs:110:13:110:21 | Exit | +| ExitMethods.cs:112:16:112:25 | After ... != ... [false] | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:110:13:110:21 | Entry | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:115:16:115:34 | Entry | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:115:16:115:34 | Entry | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | +| ExitMethods.cs:120:17:120:32 | Entry | ExitMethods.cs:120:17:120:32 | Entry | +| ExitMethods.cs:126:17:126:33 | Entry | ExitMethods.cs:126:17:126:33 | Entry | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:10:132:20 | Entry | +| ExitMethods.cs:132:10:132:20 | Exceptional Exit | ExitMethods.cs:132:10:132:20 | Exceptional Exit | +| ExitMethods.cs:132:10:132:20 | Exit | ExitMethods.cs:132:10:132:20 | Exit | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:10:132:20 | Entry | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:33:132:49 | After call to method IsFalse | +| ExitMethods.cs:134:17:134:33 | Entry | ExitMethods.cs:134:17:134:33 | Entry | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:140:17:140:42 | Entry | +| ExitMethods.cs:140:17:140:42 | Exceptional Exit | ExitMethods.cs:140:17:140:42 | Exceptional Exit | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | +| Extensions.cs:5:23:5:29 | Entry | Extensions.cs:5:23:5:29 | Entry | +| Extensions.cs:10:24:10:29 | Entry | Extensions.cs:10:24:10:29 | Entry | +| Extensions.cs:15:23:15:33 | Entry | Extensions.cs:15:23:15:33 | Entry | +| Extensions.cs:20:17:20:20 | Entry | Extensions.cs:20:17:20:20 | Entry | +| Finally.cs:3:14:3:20 | Entry | Finally.cs:3:14:3:20 | Entry | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:7:10:7:11 | Entry | +| Finally.cs:7:10:7:11 | Exceptional Exit | Finally.cs:7:10:7:11 | Exceptional Exit | +| Finally.cs:7:10:7:11 | Exit | Finally.cs:7:10:7:11 | Exit | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:7:10:7:11 | Entry | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:9:9:16:9 | After try {...} ... | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:11:13:11:37 | After call to method WriteLine | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:14:9:16:9 | {...} | +| Finally.cs:11:13:11:37 | After call to method WriteLine | Finally.cs:11:13:11:37 | After call to method WriteLine | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | Entry | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:11:13:11:37 | After call to method WriteLine | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:14:9:16:9 | {...} | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:19:10:19:11 | Entry | +| Finally.cs:19:10:19:11 | Exceptional Exit | Finally.cs:19:10:19:11 | Exceptional Exit | +| Finally.cs:19:10:19:11 | Exit | Finally.cs:19:10:19:11 | Exit | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:19:10:19:11 | Entry | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:19:10:19:11 | Normal Exit | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:21:9:51:9 | After try {...} ... | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:23:13:23:37 | After call to method WriteLine | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:26:9:29:9 | catch (...) {...} | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:49:9:51:9 | {...} | +| Finally.cs:21:9:51:9 | After try {...} ... | Finally.cs:21:9:51:9 | After try {...} ... | +| Finally.cs:23:13:23:37 | After call to method WriteLine | Finally.cs:23:13:23:37 | After call to method WriteLine | +| Finally.cs:26:9:29:9 | After catch (...) {...} [match] | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | | Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | catch (...) {...} | -| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | -| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | -| Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:44:9:47:9 | catch {...} | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | enter M2 | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:24:13:24:19 | return ...; | +| Finally.cs:30:9:40:9 | After catch (...) {...} [match] | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:41:9:43:9 | After catch (...) {...} [match] | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | Entry | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:23:13:23:37 | After call to method WriteLine | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | | Finally.cs:49:9:51:9 | {...} | Finally.cs:26:9:29:9 | catch (...) {...} | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:26:38:26:39 | IOException ex | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:30:9:40:9 | catch (...) {...} | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:30:41:30:42 | ArgumentException ex | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:41:9:43:9 | catch (...) {...} | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:42:9:43:9 | {...} | -| Finally.cs:49:9:51:9 | {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | | Finally.cs:49:9:51:9 | {...} | Finally.cs:49:9:51:9 | {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | enter M3 | -| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | enter M3 | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:59:13:59:19 | return ...; | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:61:9:64:9 | catch (...) {...} | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:65:9:67:9 | catch (...) {...} | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:69:9:71:9 | {...} | -| Finally.cs:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:54:10:54:11 | Entry | +| Finally.cs:54:10:54:11 | Exceptional Exit | Finally.cs:54:10:54:11 | Exceptional Exit | +| Finally.cs:54:10:54:11 | Exit | Finally.cs:54:10:54:11 | Exit | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:54:10:54:11 | Entry | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:54:10:54:11 | Normal Exit | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:56:9:71:9 | After try {...} ... | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:58:13:58:37 | After call to method WriteLine | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:61:9:64:9 | catch (...) {...} | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:69:9:71:9 | {...} | +| Finally.cs:56:9:71:9 | After try {...} ... | Finally.cs:56:9:71:9 | After try {...} ... | +| Finally.cs:58:13:58:37 | After call to method WriteLine | Finally.cs:58:13:58:37 | After call to method WriteLine | +| Finally.cs:61:9:64:9 | After catch (...) {...} [match] | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | | Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | catch (...) {...} | -| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | enter M3 | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:65:35:65:51 | After ... != ... [false] | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:65:35:65:51 | After ... != ... [true] | Finally.cs:65:35:65:51 | After ... != ... [true] | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | Entry | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:58:13:58:37 | After call to method WriteLine | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | | Finally.cs:69:9:71:9 | {...} | Finally.cs:61:9:64:9 | catch (...) {...} | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:61:38:61:39 | IOException ex | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:9:67:9 | catch (...) {...} | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:26:65:26 | Exception e | -| Finally.cs:69:9:71:9 | {...} | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:35:65:51 | After ... != ... [false] | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:35:65:51 | After ... != ... [true] | | Finally.cs:69:9:71:9 | {...} | Finally.cs:69:9:71:9 | {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | enter M4 | -| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 | -| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | enter M4 | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | exit M4 (normal) | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:77:16:77:16 | access to local variable i | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:78:9:100:9 | {...} | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:86:21:86:26 | break; | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | enter M4 | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:16 | access to local variable i | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:78:9:100:9 | {...} | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:78:9:100:9 | {...} | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:89:13:99:13 | {...} | Finally.cs:86:21:86:26 | break; | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:74:10:74:11 | Entry | +| Finally.cs:74:10:74:11 | Exceptional Exit | Finally.cs:74:10:74:11 | Exceptional Exit | +| Finally.cs:74:10:74:11 | Exit | Finally.cs:74:10:74:11 | Exit | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:74:10:74:11 | Entry | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:74:10:74:11 | Normal Exit | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:77:9:100:9 | After while (...) ... | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:89:13:99:13 | {...} | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:96:17:98:17 | {...} | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:77:9:100:9 | After while (...) ... | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:74:10:74:11 | Entry | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:77:16:77:20 | After ... > ... [false] | Finally.cs:77:16:77:20 | After ... > ... [false] | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:79:13:99:13 | After try {...} ... | Finally.cs:79:13:99:13 | After try {...} ... | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:81:21:81:26 | After ... == ... [true] | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:83:21:83:26 | After ... == ... [true] | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:85:21:85:26 | After ... == ... [false] | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:85:21:85:26 | After ... == ... [true] | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:85:21:85:26 | After ... == ... [true] | | Finally.cs:89:13:99:13 | {...} | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:78:9:100:9 | {...} | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:83:17:84:29 | if (...) ... | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:85:17:86:26 | if (...) ... | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:86:21:86:26 | break; | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:85:21:85:26 | After ... == ... [true] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:89:13:99:13 | {...} | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:90:17:98:17 | After try {...} ... | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:96:17:98:17 | {...} | +| Finally.cs:92:25:92:30 | After ... == ... [false] | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:93:31:93:45 | After object creation of type Exception | Finally.cs:93:31:93:45 | After object creation of type Exception | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:77:16:77:20 | After ... > ... [true] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:81:21:81:26 | After ... == ... [false] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:81:21:81:26 | After ... == ... [true] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:83:21:83:26 | After ... == ... [false] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:83:21:83:26 | After ... == ... [true] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:85:21:85:26 | After ... == ... [false] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:85:21:85:26 | After ... == ... [true] | | Finally.cs:96:17:98:17 | {...} | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:96:17:98:17 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:92:25:92:30 | After ... == ... [false] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:92:25:92:30 | After ... == ... [true] | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:93:31:93:45 | After object creation of type Exception | | Finally.cs:96:17:98:17 | {...} | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | enter M5 | -| Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | exit M5 | -| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 (abnormal) | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | enter M5 | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | exit M5 (normal) | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:13:117:37 | if (...) ... | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | enter M5 | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:113:9:118:9 | {...} | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:103:10:103:11 | Entry | +| Finally.cs:103:10:103:11 | Exceptional Exit | Finally.cs:103:10:103:11 | Exceptional Exit | +| Finally.cs:103:10:103:11 | Exit | Finally.cs:103:10:103:11 | Exit | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:103:10:103:11 | Entry | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:103:10:103:11 | Normal Exit | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:105:9:118:9 | After try {...} ... | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:107:17:107:21 | After access to field Field | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:113:9:118:9 | {...} | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:114:13:115:41 | After if (...) ... | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:116:13:117:37 | After if (...) ... | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:105:9:118:9 | After try {...} ... | Finally.cs:105:9:118:9 | After try {...} ... | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:21 | After access to field Field | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:107:17:107:33 | After ... == ... [true] | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:109:17:109:33 | After ... == ... [false] | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | Entry | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:21 | After access to field Field | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | | Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | enter M5 | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:108:17:108:23 | return ...; | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:109:17:109:28 | access to property Length | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:109:33:109:33 | 1 | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:110:17:110:49 | throw ...; | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:17:114:36 | [true] !... | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... | -| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | enter M6 | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | enter M7 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | enter M8 | -| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 | -| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 (abnormal) | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | enter M8 | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 (normal) | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:155:9:169:9 | {...} | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:13:164:13 | catch (...) {...} | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:30:161:30 | Exception e | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | enter M8 | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:152:17:152:50 | throw ...; | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:103:10:103:11 | Entry | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:107:17:107:21 | After access to field Field | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:113:9:118:9 | {...} | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:114:13:115:41 | After if (...) ... | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:103:10:103:11 | Entry | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:107:17:107:21 | After access to field Field | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:107:17:107:28 | After access to property Length | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:107:17:107:33 | After ... == ... [false] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:107:17:107:33 | After ... == ... [true] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:109:17:109:21 | After access to field Field | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:109:17:109:28 | After access to property Length | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:109:17:109:33 | After ... == ... [false] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:109:17:109:33 | After ... == ... [true] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:113:9:118:9 | {...} | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:114:13:115:41 | After if (...) ... | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:114:19:114:35 | After ... == ... [false] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:114:19:114:35 | After ... == ... [true] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:116:13:117:37 | After if (...) ... | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:116:17:116:32 | After ... > ... [false] | Finally.cs:116:17:116:32 | After ... > ... [false] | +| Finally.cs:116:17:116:32 | After ... > ... [true] | Finally.cs:116:17:116:32 | After ... > ... [true] | +| Finally.cs:121:10:121:11 | Entry | Finally.cs:121:10:121:11 | Entry | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:133:10:133:11 | Entry | +| Finally.cs:137:13:137:36 | After call to method WriteLine | Finally.cs:137:13:137:36 | After call to method WriteLine | +| Finally.cs:140:9:143:9 | {...} | Finally.cs:140:9:143:9 | {...} | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:147:10:147:11 | Entry | +| Finally.cs:147:10:147:11 | Exceptional Exit | Finally.cs:147:10:147:11 | Exceptional Exit | +| Finally.cs:147:10:147:11 | Exit | Finally.cs:147:10:147:11 | Exit | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:147:10:147:11 | Entry | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:149:9:169:9 | After try {...} ... | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:151:17:151:28 | After ... == ... [false] | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:155:9:169:9 | {...} | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:156:13:168:13 | After try {...} ... | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:158:21:158:31 | After access to property Length | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:161:13:164:13 | catch (...) {...} | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:151:17:151:28 | After ... == ... [false] | Finally.cs:151:17:151:28 | After ... == ... [false] | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | Entry | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:151:17:151:28 | After ... == ... [false] | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | | Finally.cs:155:9:169:9 | {...} | Finally.cs:155:9:169:9 | {...} | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:36:158:36 | 1 | -| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:159:41:159:43 | "1" | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:147:10:147:11 | Entry | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:151:17:151:28 | After ... == ... [false] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:151:17:151:28 | After ... == ... [true] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:155:9:169:9 | {...} | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:156:13:168:13 | After try {...} ... | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:158:21:158:31 | After access to property Length | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:161:13:164:13 | catch (...) {...} | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:21:158:31 | After access to property Length | +| Finally.cs:158:21:158:36 | After ... == ... [false] | Finally.cs:158:21:158:36 | After ... == ... [false] | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:159:27:159:44 | After object creation of type Exception | Finally.cs:159:27:159:44 | After object creation of type Exception | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:158:21:158:36 | After ... == ... [true] | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:159:27:159:44 | After object creation of type Exception | | Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | catch (...) {...} | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:30:161:30 | Exception e | -| Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} | -| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | catch {...} | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | enter ExceptionA | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | enter ExceptionB | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | enter ExceptionC | -| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | enter M9 | -| Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 | -| Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | enter M9 | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:180:21:180:43 | throw ...; | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:180:27:180:42 | object creation of type ExceptionA | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:183:9:192:9 | {...} | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:180:21:180:43 | throw ...; | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | enter M9 | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:21:180:43 | throw ...; | -| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:161:39:161:54 | After ... == ... [false] | Finally.cs:161:39:161:54 | After ... == ... [false] | +| Finally.cs:161:39:161:54 | After ... == ... [true] | Finally.cs:161:39:161:54 | After ... == ... [true] | +| Finally.cs:172:11:172:20 | Entry | Finally.cs:172:11:172:20 | Entry | +| Finally.cs:173:11:173:20 | Entry | Finally.cs:173:11:173:20 | Entry | +| Finally.cs:174:11:174:20 | Entry | Finally.cs:174:11:174:20 | Entry | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:176:10:176:11 | Entry | +| Finally.cs:176:10:176:11 | Exceptional Exit | Finally.cs:176:10:176:11 | Exceptional Exit | +| Finally.cs:176:10:176:11 | Exit | Finally.cs:176:10:176:11 | Exit | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:176:10:176:11 | Entry | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:178:9:192:9 | After try {...} ... | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:184:13:191:13 | After try {...} ... | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:180:17:180:18 | After access to parameter b1 [false] | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:180:27:180:42 | After object creation of type ExceptionA | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | Entry | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | | Finally.cs:183:9:192:9 | {...} | Finally.cs:183:9:192:9 | {...} | -| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:176:10:176:11 | Entry | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:184:13:191:13 | After try {...} ... | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [false] | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:186:31:186:46 | After object creation of type ExceptionB | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | | Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:186:25:186:47 | throw ...; | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:189:13:191:13 | {...} | -| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | object creation of type ExceptionC | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | enter M10 | -| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 | -| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | enter M10 | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:27:199:42 | object creation of type ExceptionA | +| Finally.cs:188:38:188:39 | After access to parameter b2 [false] | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | +| Finally.cs:190:21:190:22 | After access to parameter b1 [true] | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:195:10:195:12 | Exceptional Exit | Finally.cs:195:10:195:12 | Exceptional Exit | +| Finally.cs:195:10:195:12 | Exit | Finally.cs:195:10:195:12 | Exit | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:197:9:212:9 | After try {...} ... | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:203:13:210:13 | After try {...} ... | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:208:13:210:13 | {...} | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:199:17:199:18 | After access to parameter b1 [false] | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:199:27:199:42 | After object creation of type ExceptionA | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | | Finally.cs:202:9:212:9 | {...} | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | enter M10 | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:199:27:199:42 | object creation of type ExceptionA | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:203:13:210:13 | After try {...} ... | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:208:13:210:13 | {...} | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:205:21:205:22 | After access to parameter b2 [false] | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:205:31:205:46 | After object creation of type ExceptionB | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | | Finally.cs:208:13:210:13 | {...} | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | | Finally.cs:208:13:210:13 | {...} | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | enter M10 | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | enter M10 | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:199:21:199:43 | throw ...; | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:199:27:199:42 | object creation of type ExceptionA | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:202:9:212:9 | {...} | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:205:25:205:47 | throw ...; | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:205:31:205:46 | object creation of type ExceptionB | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:208:13:210:13 | {...} | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | enter M11 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:195:10:195:12 | Entry | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:208:13:210:13 | {...} | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | +| Finally.cs:209:21:209:22 | After access to parameter b3 [true] | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:216:10:216:12 | Entry | +| Finally.cs:220:13:220:36 | After call to method WriteLine | Finally.cs:220:13:220:36 | After call to method WriteLine | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:222:9:225:9 | catch {...} | -| Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | enter M11 | +| Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | Entry | +| Finally.cs:227:9:229:9 | {...} | Finally.cs:220:13:220:36 | After call to method WriteLine | | Finally.cs:227:9:229:9 | {...} | Finally.cs:222:9:225:9 | catch {...} | | Finally.cs:227:9:229:9 | {...} | Finally.cs:227:9:229:9 | {...} | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | enter M12 | -| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | enter M12 | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:243:13:253:13 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:233:10:233:12 | Entry | +| Finally.cs:233:10:233:12 | Exceptional Exit | Finally.cs:233:10:233:12 | Exceptional Exit | +| Finally.cs:233:10:233:12 | Exit | Finally.cs:233:10:233:12 | Exit | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:233:10:233:12 | Entry | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:235:9:259:9 | After try {...} ... | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:243:13:253:13 | {...} | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:250:17:252:17 | {...} | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:257:9:259:9 | {...} | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:239:21:239:22 | After access to parameter b1 [false] | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:240:27:240:42 | After object creation of type ExceptionA | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | Entry | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | | Finally.cs:243:13:253:13 | {...} | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | enter M12 | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:246:25:246:26 | After access to parameter b2 [false] | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:247:31:247:46 | After object creation of type ExceptionA | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | Entry | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | | Finally.cs:250:17:252:17 | {...} | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:250:17:252:17 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | | Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:45 | ...; | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | enter M12 | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | +| Finally.cs:254:13:254:44 | After call to method WriteLine | Finally.cs:254:13:254:44 | After call to method WriteLine | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | Entry | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:237:13:253:13 | After try {...} ... | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | | Finally.cs:257:9:259:9 | {...} | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:244:17:252:17 | After try {...} ... | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | | Finally.cs:257:9:259:9 | {...} | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:257:9:259:9 | {...} | Finally.cs:254:13:254:45 | ...; | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:254:13:254:44 | After call to method WriteLine | | Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | enter M12 | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:240:21:240:43 | throw ...; | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:240:27:240:42 | object creation of type ExceptionA | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:243:13:253:13 | {...} | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:247:25:247:47 | throw ...; | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:247:31:247:46 | object creation of type ExceptionA | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:254:13:254:45 | ...; | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:9:260:34 | ...; | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | enter M13 | -| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | -| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 (abnormal) | -| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | enter M13 | -| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 (normal) | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | enter Foreach | -| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | enter M1 | -| Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | enter M1 | -| Foreach.cs:6:10:6:11 | exit M1 (normal) | 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 ...) ... | -| Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:8:22:8:24 | String arg | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | enter M1 | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:263:10:263:12 | Entry | +| Finally.cs:263:10:263:12 | Exceptional Exit | Finally.cs:263:10:263:12 | Exceptional Exit | +| Finally.cs:263:10:263:12 | Exit | Finally.cs:263:10:263:12 | Exit | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:263:10:263:12 | Entry | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:265:9:273:9 | After try {...} ... | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:267:13:267:34 | After call to method WriteLine | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:270:9:273:9 | {...} | +| Finally.cs:267:13:267:34 | After call to method WriteLine | Finally.cs:267:13:267:34 | After call to method WriteLine | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | Entry | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:267:13:267:34 | After call to method WriteLine | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:270:9:273:9 | {...} | +| Foreach.cs:4:7:4:13 | Entry | Foreach.cs:4:7:4:13 | Entry | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:6:10:6:11 | Entry | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | Entry | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | | Foreach.cs:8:22:8:24 | String arg | Foreach.cs:8:22:8:24 | String arg | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:12:10:12:11 | enter M2 | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | enter M2 | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | exit M2 (normal) | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:14:22:14:22 | String _ | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | enter M2 | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:22:14:22 | String _ | +| Foreach.cs:8:22:8:24 | String arg | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | +| Foreach.cs:8:29:8:32 | After access to parameter args [empty] | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:12:10:12:11 | Entry | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | Entry | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:14:22:14:22 | String _ | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | | Foreach.cs:14:22:14:22 | String _ | Foreach.cs:14:22:14:22 | String _ | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:18:10:18:11 | enter M3 | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | enter M3 | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | exit M3 (normal) | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:20:22:20:22 | String x | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:20:27:20:68 | ... ?? ... | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:20:43:20:68 | call to method Empty | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | enter M3 | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:27:20:68 | ... ?? ... | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:43:20:68 | call to method Empty | +| Foreach.cs:14:22:14:22 | String _ | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | +| Foreach.cs:14:27:14:30 | After access to parameter args [empty] | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:18:10:18:11 | Entry | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | Entry | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:27:20:27 | After access to parameter e [null] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:27:20:38 | After call to method ToArray [null] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | | Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:22:20:22 | String x | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:18:10:18:11 | enter M3 | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:38 | call to method ToArray | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:68 | ... ?? ... | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:43:20:68 | call to method Empty | -| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:24:10:24:11 | enter M4 | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | enter M4 | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | exit M4 (normal) | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | enter M4 | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:26:23:26:23 | String x | Foreach.cs:26:23:26:23 | String x | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:30:10:30:11 | enter M5 | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | enter M5 | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | exit M5 (normal) | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | enter M5 | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:32:23:32:23 | String x | Foreach.cs:32:23:32:23 | String x | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:36:10:36:11 | enter M6 | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | enter M6 | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | exit M6 (normal) | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:38:26:38:26 | String x | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | enter M6 | -| 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 | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | enter IndexInitializers | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | enter Compound | -| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | enter Test | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | -| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | enter M1 | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | enter M1 | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:10:13:10:19 | return ...; | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:11:29:11:32 | access to parameter args | -| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | +| Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | +| Foreach.cs:20:22:20:22 | String x | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | +| Foreach.cs:20:27:20:27 | After access to parameter e [null] | Foreach.cs:20:27:20:27 | After access to parameter e [null] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:27:20:27 | After access to parameter e [null] | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:27:20:38 | After call to method ToArray [null] | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:20:43:20:68 | After call to method Empty [empty] | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | +| Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:24:10:24:11 | Entry | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | Entry | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:26:18:26:31 | Before (..., ...) | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:26:18:26:31 | Before (..., ...) | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | +| Foreach.cs:26:36:26:39 | After access to parameter args [empty] | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:30:10:30:11 | Entry | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | Entry | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:32:18:32:27 | Before (..., ...) | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:32:18:32:27 | Before (..., ...) | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | +| Foreach.cs:32:32:32:35 | After access to parameter args [empty] | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:36:10:36:11 | Entry | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | Entry | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:38:18:38:34 | Before (..., ...) | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:38:18:38:34 | Before (..., ...) | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | +| Foreach.cs:38:39:38:42 | After access to parameter args [empty] | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | Entry | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | Entry | +| Initializers.cs:8:5:8:16 | Entry | Initializers.cs:8:5:8:16 | Entry | +| Initializers.cs:10:5:10:16 | Entry | Initializers.cs:10:5:10:16 | Entry | +| Initializers.cs:12:10:12:10 | Entry | Initializers.cs:12:10:12:10 | Entry | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Entry | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Entry | +| Initializers.cs:26:11:26:13 | Entry | Initializers.cs:26:11:26:13 | Entry | +| Initializers.cs:31:9:31:11 | Entry | Initializers.cs:31:9:31:11 | Entry | +| Initializers.cs:33:9:33:11 | Entry | Initializers.cs:33:9:33:11 | Entry | +| Initializers.cs:35:9:35:11 | Entry | Initializers.cs:35:9:35:11 | Entry | +| Initializers.cs:39:7:39:23 | Entry | Initializers.cs:39:7:39:23 | Entry | +| Initializers.cs:41:11:41:18 | Entry | Initializers.cs:41:11:41:18 | Entry | +| Initializers.cs:51:10:51:13 | Entry | Initializers.cs:51:10:51:13 | Entry | +| LoopUnrolling.cs:5:7:5:19 | Entry | LoopUnrolling.cs:5:7:5:19 | Entry | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:7:10:7:11 | Entry | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | Entry | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | Normal Exit | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | enter M2 | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | enter M2 | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:18:22:18:22 | String x | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | enter M2 | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | +| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:15:10:15:11 | Entry | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | Entry | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:22:18:22 | String x | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | enter M3 | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | enter M3 | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:25:26:25:29 | Char arg0 | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | enter M3 | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:22:10:22:11 | Entry | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | Entry | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | enter M4 | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | enter M4 | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:32:22:32:22 | String x | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | enter M4 | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:29:10:29:11 | Entry | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | Entry | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | | LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:22:32:22 | String x | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | enter M5 | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | enter M5 | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | enter M5 | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:36:10:36:11 | Entry | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | Entry | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | enter M6 | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | enter M6 | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | -| LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:48:22:48:22 | String x | +| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:45:10:45:11 | Entry | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:45:10:45:11 | Entry | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:9:50:13 | Label: | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | enter M7 | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | enter M7 | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | enter M7 | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:55:10:55:11 | Entry | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | Entry | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | -| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:37 | ...; | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | enter M8 | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | enter M8 | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:69:13:69:23 | [true] !... | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:70:13:70:19 | return ...; | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:72:22:72:24 | String arg | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:69:13:69:23 | [true] !... | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:69:13:69:23 | [true] !... | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:71:9:71:21 | ...; | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:67:10:67:11 | Entry | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | Entry | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | Normal Exit | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | | LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:22:72:24 | String arg | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | enter M9 | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | enter M9 | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:79:22:79:22 | String x | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | enter M9 | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:76:10:76:11 | Entry | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | Entry | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | | LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:22:79:22 | String x | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | enter M10 | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | enter M10 | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:88:22:88:22 | String x | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | enter M10 | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:85:10:85:12 | Entry | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | Entry | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | | LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:22:88:22 | String x | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | enter M11 | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | enter M11 | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:97:22:97:22 | String x | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | enter M11 | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:94:10:94:12 | Entry | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | Entry | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | -| 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 | -| 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) | 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 | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | +| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | +| MultiImplementationA.cs:4:7:4:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | Entry | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | Before call to method | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | Entry | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | Normal Exit | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationB.cs:1:7:1:8 | Before call to method | +| MultiImplementationA.cs:6:22:6:31 | Before throw ... | MultiImplementationA.cs:6:22:6:31 | Before throw ... | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | Entry | +| MultiImplementationA.cs:6:22:6:31 | Exit | MultiImplementationA.cs:6:22:6:31 | Exit | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:21:7:23 | Entry | +| MultiImplementationA.cs:7:21:7:23 | Exit | MultiImplementationA.cs:7:21:7:23 | Exit | | MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:25:7:39 | {...} | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:41:7:43 | Entry | +| MultiImplementationA.cs:7:41:7:43 | Exit | MultiImplementationA.cs:7:41:7:43 | Exit | | MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:45:7:59 | {...} | -| 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:8:16:8:16 | Entry | MultiImplementationA.cs:8:16:8:16 | Entry | +| MultiImplementationA.cs:8:16:8:16 | Exit | MultiImplementationA.cs:8:16:8:16 | Exit | +| MultiImplementationA.cs:8:23:8:32 | Before throw ... | MultiImplementationA.cs:8:23:8:32 | Before throw ... | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:11:7:11:8 | Entry | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | Entry | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | Normal Exit | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:13:16:13:20 | Before ... = ... | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationB.cs:11:16:11:20 | Before ... = ... | +| MultiImplementationA.cs:13:16:13:20 | Before ... = ... | MultiImplementationA.cs:13:16:13:20 | Before ... = ... | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | Entry | +| MultiImplementationA.cs:14:31:14:31 | Exit | MultiImplementationA.cs:14:31:14:31 | Exit | +| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | Entry | | 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 | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | exit get_Item | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:36:15:38 | enter get_Item | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item | MultiImplementationA.cs:15:36:15:38 | exit get_Item | -| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | enter get_Item | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:36:15:38 | Entry | +| MultiImplementationA.cs:15:36:15:38 | Exit | MultiImplementationA.cs:15:36:15:38 | Exit | +| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | Entry | | MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:40:15:52 | {...} | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:54:15:56 | enter set_Item | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | enter set_Item | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:58:15:60 | {...} | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationB.cs:13:60:13:62 | {...} | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:54:15:56 | Entry | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | Entry | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | Normal Exit | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:58:15:60 | {...} | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationB.cs:13:60:13:62 | {...} | | MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:58:15:60 | {...} | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:16:17:16:18 | enter M1 | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | enter M1 | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | 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:16:17:16:18 | exit M1 (normal) | MultiImplementationB.cs:15:5:17:5 | {...} | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:16:17:16:18 | Entry | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:16:17:16:18 | Entry | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:16:17:16:18 | Normal Exit | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:17:5:19:5 | {...} | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | 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 | 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) | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:24:21:24 | 0 | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationB.cs:19:24:19:24 | 1 | -| MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:24:21:24 | 0 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:6:22:7 | enter ~C2 | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 | MultiImplementationA.cs:22:6:22:7 | exit ~C2 | -| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | enter ~C2 | +| MultiImplementationA.cs:18:9:18:22 | Entry | MultiImplementationA.cs:18:9:18:22 | Entry | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | Before call to method | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | Entry | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | Entry | +| MultiImplementationA.cs:20:12:20:13 | Exit | MultiImplementationA.cs:20:12:20:13 | Exit | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:12:21:13 | Entry | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | Entry | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | Normal Exit | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | +| MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:6:22:7 | Entry | +| MultiImplementationA.cs:22:6:22:7 | Exit | MultiImplementationA.cs:22:6:22:7 | Exit | +| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | Entry | | MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:11:22:13 | {...} | -| MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | -| 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:28:23:35 | Entry | MultiImplementationA.cs:23:28:23:35 | Entry | +| MultiImplementationA.cs:23:28:23:35 | Exit | MultiImplementationA.cs:23:28:23:35 | Exit | +| MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | Entry | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:50:23:53 | null | -| 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 | -| 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) | 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 | 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 | -| 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) | 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:28:7:28:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | Entry | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | Before call to method | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | Entry | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | Normal Exit | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationB.cs:25:7:25:8 | Before call to method | +| MultiImplementationA.cs:30:21:30:23 | Entry | MultiImplementationA.cs:30:21:30:23 | Entry | +| MultiImplementationA.cs:34:15:34:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | Entry | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | Before call to method | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | Entry | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | Normal Exit | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationB.cs:30:15:30:16 | Before call to method | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:9:36:10 | Entry | +| MultiImplementationA.cs:36:9:36:10 | Exit | MultiImplementationA.cs:36:9:36:10 | Exit | | 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 | 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 | +| MultiImplementationA.cs:37:9:37:10 | Entry | MultiImplementationA.cs:37:9:37:10 | Entry | +| MultiImplementationB.cs:1:7:1:8 | Before call to method | MultiImplementationB.cs:1:7:1:8 | Before call to method | +| MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | Entry | | 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 | +| MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | Entry | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:25:4:37 | {...} | -| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | +| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | Entry | | 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 | MultiImplementationA.cs:8:16:8:16 | Entry | | 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:11:16:11:20 | Before ... = ... | MultiImplementationB.cs:11:16:11:20 | Before ... = ... | +| MultiImplementationB.cs:12:31:12:40 | Before throw ... | MultiImplementationB.cs:12:31:12:40 | Before throw ... | | 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 | 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:16:9:16:31 | Entry | MultiImplementationB.cs:16:9:16:31 | Entry | +| MultiImplementationB.cs:18:12:18:13 | Before call to method | MultiImplementationB.cs:18:12:18:13 | Before call to method | +| MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | | 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 | 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:21:50:21:59 | Before throw ... | MultiImplementationB.cs:21:50:21:59 | Before throw ... | +| MultiImplementationB.cs:25:7:25:8 | Before call to method | MultiImplementationB.cs:25:7:25:8 | Before call to method | +| MultiImplementationB.cs:30:15:30:16 | Before call to method | MultiImplementationB.cs:30:15:30:16 | Before call to method | +| MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | Entry | | 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 | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | enter M1 | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:28 | ... ?? ... | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:28:3:28 | 0 | -| NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:28:3:28 | 0 | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:9:5:10 | enter M2 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | enter M2 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:39:5:39 | 0 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:43:5:43 | 1 | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | -| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:39:5:39 | 0 | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:30:5:34 | false | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:43:5:43 | 1 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:12:7:13 | enter M3 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | enter M3 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:53 | ... ?? ... | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:53 | ... ?? ... | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:53 | ... ?? ... | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:52:7:53 | "" | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:12:9:13 | enter M4 | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | enter M4 | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:36:9:58 | ... ?? ... | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:41:9:41 | access to parameter s | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:45:9:45 | access to parameter s | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | access to parameter s | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | access to parameter s | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:52 | "" | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:58 | ... ?? ... | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:9:11:10 | enter M5 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | enter M5 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:64:11:64 | 0 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:68:11:68 | 1 | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | -| NullCoalescing.cs:11:51:11:58 | [false] ... && ... | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:51:11:58 | [true] ... && ... | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:64:11:64 | 0 | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:68:11:68 | 1 | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:13:10:13:11 | enter M6 | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:13:10:13:11 | enter M6 | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:31:15:31 | 0 | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | enter M6 | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:15:31:15:31 | 0 | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | -| NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | enter M6 | -| 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 | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:5:10:5:11 | enter M1 | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:8:13:8:23 | [true] ... is ... | -| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:8:13:8:23 | [true] ... is ... | -| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:16:18:16:28 | [false] ... is ... | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:5:10:5:11 | enter M1 | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:8:13:8:23 | [true] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:20:9:38:9 | switch (...) {...} | -| Patterns.cs:23:17:23:22 | break; | Patterns.cs:23:17:23:22 | break; | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | case ...: | -| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:25:17:25:52 | ...; | +| NullCoalescing.cs:1:7:1:20 | Entry | NullCoalescing.cs:1:7:1:20 | Entry | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:9:3:10 | Entry | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:9:3:10 | Entry | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:23:3:28 | After ... ?? ... | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:9:5:10 | Entry | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | Entry | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:12:7:13 | Entry | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | Entry | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:40:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:12:9:13 | Entry | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | Entry | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:36:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:51:9:52 | After "" [non-null] | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:51:9:52 | After "" [null] | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:52 | After "" [null] | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:9:11:10 | Entry | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | Entry | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:13:10:13:11 | Entry | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | Entry | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | +| NullCoalescing.cs:16:17:16:18 | After "" [non-null] | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:16:17:16:18 | After "" [null] | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | Entry | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | Entry | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:16:17:16:18 | After "" [null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | +| PartialImplementationA.cs:1:15:1:21 | Entry | PartialImplementationA.cs:1:15:1:21 | Entry | +| PartialImplementationA.cs:3:12:3:18 | Entry | PartialImplementationA.cs:3:12:3:18 | Entry | +| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Entry | +| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Entry | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:5:10:5:11 | Entry | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | Entry | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:9:18:9 | After if (...) ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | Entry | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:8:9:18:9 | After if (...) ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:8:13:8:23 | After ... is ... [false] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:12:14:18:9 | After if (...) ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:12:18:12:31 | After ... is ... [false] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:16:14:18:9 | After if (...) ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:16:18:16:28 | After ... is ... [false] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:20:9:38:9 | After switch (...) {...} | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:22:13:22:23 | After case ...: [match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:22:13:22:23 | After case ...: [no-match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:27:13:27:24 | After case ...: [no-match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:27:13:27:24 | case ...: | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:22:13:22:23 | After case ...: [match] | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:22:13:22:23 | After case ...: [no-match] | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:13:24:36 | After case ...: [match] | +| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:24:30:24:35 | After ... > ... [false] | +| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:24:30:24:35 | After ... > ... [true] | +| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:27:13:27:24 | After case ...: [match] | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:27:13:27:24 | After case ...: [no-match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [no-match] | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:24:30:24:35 | After ... > ... [false] | | Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | case ...: | -| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:34:17:34:22 | break; | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:35:13:35:20 | default: | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:5:10:5:11 | enter M1 | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:8:13:8:23 | [false] ... is ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:8:13:8:23 | [true] ... is ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:9:9:11:9 | {...} | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:12:18:12:31 | [false] ... is ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:12:18:12:31 | [true] ... is ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:13:9:15:9 | {...} | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:16:18:16:28 | [false] ... is ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:16:18:16:28 | [true] ... is ... | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:17:9:18:9 | {...} | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:20:9:38:9 | switch (...) {...} | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:23:17:23:22 | break; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:24:13:24:36 | case ...: | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:24:30:24:31 | access to local variable i2 | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:25:17:25:52 | ...; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:27:13:27:24 | case ...: | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:28:17:28:47 | ...; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:30:13:30:27 | case ...: | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:31:17:31:50 | ...; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:33:13:33:24 | case ...: | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:34:17:34:22 | break; | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:35:13:35:20 | default: | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | -| Patterns.cs:47:24:47:25 | enter M2 | Patterns.cs:47:24:47:25 | enter M2 | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:50:24:50:25 | enter M3 | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | enter M3 | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:39 | ... ? ... : ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:9:51:21 | [true] ... is ... | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:14:51:21 | [match] not ... | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:9:51:21 | [false] ... is ... | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:14:51:21 | [no-match] not ... | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:53:24:53:25 | enter M4 | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:53:24:53:25 | enter M4 | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:18:54:37 | { ... } | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:27:54:35 | [match] { ... } | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:27:54:35 | [no-match] { ... } | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:33:54:33 | 1 | -| Patterns.cs:54:27:54:35 | [match] { ... } | Patterns.cs:54:27:54:35 | [match] { ... } | -| Patterns.cs:54:27:54:35 | [no-match] { ... } | Patterns.cs:54:27:54:35 | [no-match] { ... } | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:33:54:33 | 1 | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:56:26:56:27 | enter M5 | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:56:26:56:27 | enter M5 | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:62:9 | ... switch { ... } | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:60:13:60:17 | [match] not ... | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:60:22:60:28 | "not 1" | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:61:18:61:24 | "other" | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:60:13:60:17 | [match] not ... | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:13:60:17 | [match] not ... | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:22:60:28 | "not 1" | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:60:13:60:17 | [no-match] not ... | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:13:61:13 | _ | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:18:61:24 | "other" | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:65:26:65:27 | enter M6 | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:65:26:65:27 | enter M6 | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:69:13:69:17 | [no-match] not ... | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:65:26:65:27 | enter M6 | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:69:13:69:17 | [no-match] not ... | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:65:26:65:27 | enter M6 | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:69:13:69:17 | [no-match] not ... | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:13:70:13 | 2 | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:18:70:27 | "possible" | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:74:26:74:27 | enter M7 | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:74:26:74:27 | enter M7 | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:82:9 | ... switch { ... } | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:78:20:78:24 | "> 1" | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:79:15:79:15 | 0 | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:79:20:79:24 | "< 0" | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:80:13:80:13 | 1 | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:20:78:24 | "> 1" | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:15:79:15 | 0 | -| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:20:79:24 | "< 0" | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | 1 | -| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:18:80:20 | "1" | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:13:81:13 | _ | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:18:81:20 | "0" | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:26:85:27 | enter M8 | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | enter M8 | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:69 | ... ? ... : ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:53:85:53 | 2 | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:49:85:53 | [match] not ... | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:53:85:53 | 2 | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:39:85:53 | [true] ... is ... | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:44:85:53 | [match] ... or ... | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:49:85:53 | [match] not ... | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:57:85:63 | "not 2" | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:39:85:53 | [false] ... is ... | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:44:85:53 | [no-match] ... or ... | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:49:85:53 | [no-match] not ... | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:67:85:69 | "2" | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:26:87:27 | enter M9 | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | enter M9 | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:70 | ... ? ... : ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:54:87:54 | 2 | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:50:87:54 | [no-match] not ... | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:54:87:54 | 2 | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:39:87:54 | [true] ... is ... | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:44:87:54 | [match] ... and ... | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:50:87:54 | [match] not ... | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:58:87:60 | "1" | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:39:87:54 | [false] ... is ... | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:44:87:54 | [no-match] ... and ... | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:50:87:54 | [no-match] not ... | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:64:87:70 | "not 1" | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:93:17:93:19 | enter M10 | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | enter M10 | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | exit M10 (normal) | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:95:36:95:38 | access to constant B | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:96:9:98:9 | {...} | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:95:13:95:40 | [false] ... is ... | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:29:95:38 | [no-match] ... or ... | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:36:95:38 | access to constant B | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:95:13:95:40 | [true] ... is ... | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:95:21:95:40 | [match] { ... } | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:95:29:95:38 | [match] ... or ... | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:96:9:98:9 | {...} | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | enter PostDominance | -| PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:5:10:5:11 | enter M1 | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:10:10:10:11 | enter M2 | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | enter M2 | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | exit M2 (normal) | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:12:13:12:21 | [false] ... is ... | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:12:13:12:21 | [true] ... is ... | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:13:13:13:19 | return ...; | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:14:9:14:29 | ...; | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:12:13:12:21 | [false] ... is ... | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:12:13:12:21 | [true] ... is ... | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:12:13:12:21 | [true] ... is ... | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:13:13:13:19 | return ...; | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:12:13:12:21 | [false] ... is ... | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:9:14:29 | ...; | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:17:10:17:11 | enter M3 | -| PostDominance.cs:17:10:17:11 | exit M3 | PostDominance.cs:17:10:17:11 | exit M3 | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:17:10:17:11 | enter M3 | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:19:13:19:21 | [false] ... is ... | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:19:13:19:21 | [true] ... is ... | -| PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:45:20:53 | nameof(...) | -| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:17:10:17:11 | enter M3 | -| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:19:13:19:21 | [false] ... is ... | -| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:29 | ...; | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | enter Qualifiers | -| Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:16:7:21 | enter Method | -| Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:23:8:34 | enter StaticMethod | -| Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:10:10:10:10 | enter M | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | enter Switch | -| Switch.cs:5:10:5:11 | enter M1 | Switch.cs:5:10:5:11 | enter M1 | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | enter M2 | -| Switch.cs:10:10:10:11 | exit M2 | Switch.cs:10:10:10:11 | exit M2 | -| Switch.cs:10:10:10:11 | exit M2 (abnormal) | Switch.cs:10:10:10:11 | exit M2 (abnormal) | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:10:10:10:11 | enter M2 | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:10:10:10:11 | exit M2 (normal) | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:15:17:15:23 | return ...; | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:16:13:16:19 | case ...: | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:18:13:18:22 | case ...: | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:30:13:30:20 | default: | -| Switch.cs:15:17:15:23 | return ...; | Switch.cs:15:17:15:23 | return ...; | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | case ...: | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:23:17:37 | object creation of type Exception | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:16:13:16:19 | case ...: | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | case ...: | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:19:17:19:29 | goto default; | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | case ...: | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:17:22:27 | if (...) ... | -| Switch.cs:22:21:22:27 | return ...; | Switch.cs:22:21:22:27 | return ...; | -| Switch.cs:23:27:23:27 | 0 | Switch.cs:23:27:23:27 | 0 | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | case ...: | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:32 | access to local variable s | -| Switch.cs:24:32:24:55 | [false] ... && ... | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:48:24:48 | access to local variable s | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:24:32:24:55 | [true] ... && ... | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:25:17:25:37 | ...; | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:32:24:55 | [false] ... && ... | +| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:30:13:30:27 | After case ...: [match] | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [no-match] | +| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:33:13:33:24 | After case ...: [match] | +| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | Entry | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Entry | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:50:24:50:25 | Entry | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:9:51:21 | After ... is ... [false] | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Entry | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:34:51:39 | After ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | Entry | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Entry | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | Entry | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | Entry | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:58:16:62:9 | After ... switch { ... } | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:60:13:60:28 | After ... => ... [match] | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | +| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:13:60:28 | After ... => ... [match] | +| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:65:26:65:27 | Entry | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:65:26:65:27 | Entry | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:67:16:71:9 | After ... switch { ... } | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:69:13:69:33 | After ... => ... [match] | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:70:13:70:27 | After ... => ... [match] | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | +| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:13:69:33 | After ... => ... [match] | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | +| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:13:70:27 | After ... => ... [match] | +| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:74:26:74:27 | Entry | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:74:26:74:27 | Entry | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:76:16:82:9 | After ... switch { ... } | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:78:13:78:24 | After ... => ... [match] | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:79:13:79:24 | After ... => ... [match] | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:13:78:24 | After ... => ... [match] | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | +| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:13:79:24 | After ... => ... [match] | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | +| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | +| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | Entry | +| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:39:85:53 | After ... is ... [false] | +| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Entry | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:69 | After ... ? ... : ... | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:26:87:27 | Entry | +| Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:39:87:54 | After ... is ... [false] | +| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Entry | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:70 | After ... ? ... : ... | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:93:17:93:19 | Entry | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:93:17:93:19 | Entry | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:9:98:9 | After if (...) ... | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:13:95:40 | After ... is ... [false] | +| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Entry | +| PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | Entry | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | Entry | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Entry | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Normal Exit | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:12:13:12:21 | After ... is ... [false] | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:13:12:21 | After ... is ... [false] | +| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | Entry | +| PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | Exit | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | Entry | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:13:19:21 | After ... is ... [false] | +| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Entry | +| Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Entry | +| Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | Entry | +| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:10:10:10:10 | Entry | +| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Entry | +| Switch.cs:5:10:5:11 | Entry | Switch.cs:5:10:5:11 | Entry | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Entry | +| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | Exceptional Exit | +| Switch.cs:10:10:10:11 | Exit | Switch.cs:10:10:10:11 | Exit | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | Entry | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | Normal Exit | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:14:13:14:21 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:14:13:14:21 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:16:13:16:19 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:30:13:30:20 | After default: [match] | +| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:14:13:14:21 | After case ...: [match] | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:14:13:14:21 | After case ...: [no-match] | +| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:16:13:16:19 | After case ...: [match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:14:13:14:21 | After case ...: [no-match] | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:16:13:16:19 | After case ...: [no-match] | +| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | +| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:21:21:21:29 | After ... == ... [false] | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:20:13:20:23 | After case ...: [match] | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:21:21:21:29 | After ... == ... [true] | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:13:24:56 | After case ...: [match] | +| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:32:24:43 | After ... > ... [true] | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:24:48:24:55 | After ... != ... [true] | +| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:13:27:39 | After case ...: [match] | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:24:48:24:55 | After ... != ... [false] | | Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:27:32:27:38 | call to method Throw | -| Switch.cs:30:13:30:20 | default: | Switch.cs:19:17:19:29 | goto default; | -| Switch.cs:30:13:30:20 | default: | Switch.cs:24:32:24:55 | [false] ... && ... | -| Switch.cs:30:13:30:20 | default: | Switch.cs:27:13:27:39 | case ...: | -| Switch.cs:30:13:30:20 | default: | Switch.cs:30:13:30:20 | default: | -| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:35:10:35:11 | enter M3 | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:44:10:44:11 | enter M4 | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | enter M4 | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | exit M4 (normal) | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:49:17:49:22 | break; | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:50:13:50:39 | case ...: | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:50:30:50:30 | access to parameter o | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:51:17:51:22 | break; | -| Switch.cs:49:17:49:22 | break; | Switch.cs:49:17:49:22 | break; | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | case ...: | -| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:30:50:30 | access to parameter o | -| Switch.cs:51:17:51:22 | break; | Switch.cs:51:17:51:22 | break; | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:55:10:55:11 | enter M5 | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:55:10:55:11 | enter M5 | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | case ...: | -| Switch.cs:62:17:62:22 | break; | Switch.cs:55:10:55:11 | enter M5 | -| Switch.cs:62:17:62:22 | break; | Switch.cs:61:13:61:19 | case ...: | -| Switch.cs:62:17:62:22 | break; | Switch.cs:62:17:62:22 | break; | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:66:10:66:11 | enter M6 | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | enter M6 | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | exit M6 (normal) | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:72:13:72:20 | case ...: | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:73:17:73:22 | break; | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:66:10:66:11 | enter M6 | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | case ...: | -| Switch.cs:73:17:73:22 | break; | Switch.cs:73:17:73:22 | break; | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:77:10:77:11 | enter M7 | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | enter M7 | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | exit M7 (normal) | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:82:24:82:27 | true | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:83:13:83:19 | case ...: | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:84:17:85:26 | if (...) ... | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:85:21:85:26 | break; | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:86:24:86:27 | true | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:88:16:88:20 | false | -| Switch.cs:82:24:82:27 | true | Switch.cs:82:24:82:27 | true | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | case ...: | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:17:85:26 | if (...) ... | -| Switch.cs:85:21:85:26 | break; | Switch.cs:85:21:85:26 | break; | -| Switch.cs:86:24:86:27 | true | Switch.cs:86:24:86:27 | true | -| Switch.cs:88:16:88:20 | false | Switch.cs:85:21:85:26 | break; | -| Switch.cs:88:16:88:20 | false | Switch.cs:88:16:88:20 | false | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | enter M8 | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | enter M8 | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | exit M8 (normal) | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:96:24:96:27 | true | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:98:16:98:20 | false | -| Switch.cs:96:24:96:27 | true | Switch.cs:96:24:96:27 | true | -| Switch.cs:98:16:98:20 | false | Switch.cs:98:16:98:20 | false | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | enter M9 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | enter M9 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | exit M9 (normal) | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:103:17:103:25 | access to property Length | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:105:13:105:19 | case ...: | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:105:28:105:28 | 0 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:106:13:106:19 | case ...: | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:108:17:108:17 | 1 | -| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:25 | access to property Length | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:101:9:101:10 | enter M9 | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:103:17:103:25 | access to property Length | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | case ...: | -| Switch.cs:105:28:105:28 | 0 | Switch.cs:105:28:105:28 | 0 | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | case ...: | -| Switch.cs:106:28:106:28 | 1 | Switch.cs:106:28:106:28 | 1 | -| Switch.cs:108:17:108:17 | 1 | Switch.cs:108:17:108:17 | 1 | -| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:17:111:21 | enter Throw | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:113:9:113:11 | enter M10 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | enter M10 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | exit M10 (normal) | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:117:25:117:25 | access to parameter s | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:117:44:117:44 | 1 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:118:13:118:34 | case ...: | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:118:25:118:25 | access to parameter s | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:118:43:118:43 | 2 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:120:17:120:17 | 1 | -| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:25:117:25 | access to parameter s | -| Switch.cs:117:44:117:44 | 1 | Switch.cs:117:44:117:44 | 1 | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:18:13:18:22 | After case ...: [match] | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:24:32:24:43 | After ... > ... [false] | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:24:32:24:55 | After ... && ... [false] | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:24:48:24:55 | After ... != ... [false] | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:27:13:27:39 | case ...: | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:30:13:30:20 | After default: [match] | +| Switch.cs:35:10:35:11 | Entry | Switch.cs:35:10:35:11 | Entry | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:44:10:44:11 | Entry | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:44:10:44:11 | Entry | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:46:9:52:9 | After switch (...) {...} | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:48:13:48:23 | After case ...: [match] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:48:13:48:23 | After case ...: [no-match] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:50:13:50:39 | After case ...: [match] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:50:13:50:39 | After case ...: [no-match] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:48:13:48:23 | After case ...: [match] | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:48:13:48:23 | After case ...: [no-match] | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:13:50:39 | After case ...: [match] | +| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | +| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:50:30:50:38 | After ... != ... [false] | +| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:50:30:50:38 | After ... != ... [true] | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:55:10:55:11 | Entry | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:55:10:55:11 | Entry | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:57:9:63:9 | After switch (...) {...} | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:59:13:59:19 | After case ...: [match] | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:59:13:59:19 | After case ...: [no-match] | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:61:13:61:19 | After case ...: [match] | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:61:13:61:19 | After case ...: [no-match] | +| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:59:13:59:19 | After case ...: [match] | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:59:13:59:19 | After case ...: [no-match] | +| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:61:13:61:19 | After case ...: [match] | +| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:66:10:66:11 | Entry | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:66:10:66:11 | Entry | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:68:9:74:9 | After switch (...) {...} | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:70:13:70:23 | After case ...: [match] | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:70:13:70:23 | After case ...: [no-match] | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:72:13:72:20 | After case ...: [match] | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:72:13:72:20 | After case ...: [no-match] | +| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:70:13:70:23 | After case ...: [match] | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:70:13:70:23 | After case ...: [no-match] | +| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:72:13:72:20 | After case ...: [match] | +| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:10:77:11 | Entry | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | Entry | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | Normal Exit | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:79:9:87:9 | After switch (...) {...} | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:81:13:81:19 | After case ...: [match] | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:81:13:81:19 | After case ...: [no-match] | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:83:13:83:19 | After case ...: [match] | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:83:13:83:19 | After case ...: [no-match] | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:79:9:87:9 | After switch (...) {...} | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:83:13:83:19 | After case ...: [no-match] | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:81:13:81:19 | After case ...: [match] | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:81:13:81:19 | After case ...: [no-match] | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:83:13:83:19 | After case ...: [match] | +| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | +| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:84:21:84:25 | After ... > ... [false] | +| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:84:21:84:25 | After ... > ... [true] | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:91:10:91:11 | Entry | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | Entry | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | Normal Exit | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:95:13:95:23 | After case ...: [match] | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:95:13:95:23 | After case ...: [no-match] | +| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:95:13:95:23 | After case ...: [match] | +| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:95:13:95:23 | After case ...: [no-match] | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:101:9:101:10 | Entry | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | Entry | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | Normal Exit | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:103:17:103:17 | After access to parameter s [null] | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:103:17:103:25 | After access to property Length | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:105:13:105:19 | After case ...: [match] | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:105:13:105:19 | After case ...: [no-match] | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:106:13:106:19 | After case ...: [no-match] | +| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | +| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:103:17:103:17 | After access to parameter s [null] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:101:9:101:10 | Entry | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:103:17:103:17 | After access to parameter s [null] | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:103:17:103:25 | After access to property Length | +| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:13:105:19 | After case ...: [match] | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:105:13:105:19 | After case ...: [no-match] | +| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:13:106:19 | After case ...: [match] | +| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [no-match] | +| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:17:111:21 | Entry | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:113:9:113:11 | Entry | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | Entry | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | Normal Exit | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:115:9:119:9 | After switch (...) {...} | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:117:13:117:35 | After case ...: [match] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:117:13:117:35 | After case ...: [no-match] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:117:25:117:34 | After ... == ... [false] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:117:25:117:34 | After ... == ... [true] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:118:13:118:34 | After case ...: [match] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:118:13:118:34 | After case ...: [no-match] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:118:13:118:34 | case ...: | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:118:25:118:33 | After ... == ... [true] | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:115:9:119:9 | After switch (...) {...} | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:118:13:118:34 | After case ...: [no-match] | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:13:117:35 | After case ...: [match] | +| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:117:13:117:35 | After case ...: [no-match] | +| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:117:25:117:34 | After ... == ... [false] | +| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:117:25:117:34 | After ... == ... [true] | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:13:118:34 | After case ...: [match] | +| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:118:13:118:34 | After case ...: [no-match] | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:117:13:117:35 | After case ...: [no-match] | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:117:25:117:34 | After ... == ... [false] | | Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | case ...: | -| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:25:118:25 | access to parameter s | -| Switch.cs:118:43:118:43 | 2 | Switch.cs:118:43:118:43 | 2 | -| Switch.cs:120:17:120:17 | 1 | Switch.cs:120:17:120:17 | 1 | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:123:10:123:12 | enter M11 | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | enter M11 | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | exit M11 (normal) | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:13:125:48 | [false] ... switch { ... } | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:34:125:34 | access to local variable b | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:37:125:37 | _ | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:125:42:125:46 | false | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:13:125:48 | [false] ... switch { ... } | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:37:125:37 | _ | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:125:42:125:46 | false | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:125:24:125:34 | [false] ... => ... | Switch.cs:125:24:125:34 | [false] ... => ... | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:34:125:34 | access to local variable b | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:37 | _ | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:37:125:37 | _ | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:37:125:46 | [false] ... => ... | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:42:125:46 | false | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:37:125:37 | _ | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:42:125:46 | false | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:125:13:125:48 | [true] ... switch { ... } | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:125:24:125:34 | [true] ... => ... | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:126:13:126:19 | return ...; | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:129:12:129:14 | enter M12 | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | enter M12 | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:9:131:67 | return ...; | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:17:131:53 | [null] ... switch { ... } | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:28:131:40 | [null] ... => ... | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:40:131:40 | access to local variable s | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:131:48:131:51 | null | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:16:131:66 | call to method ToString | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:17:131:53 | [null] ... switch { ... } | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:28:131:40 | [null] ... => ... | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:48:131:51 | null | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:28:131:40 | [non-null] ... => ... | -| Switch.cs:131:28:131:40 | [null] ... => ... | Switch.cs:131:28:131:40 | [null] ... => ... | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:40:131:40 | access to local variable s | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:131:43:131:51 | [null] ... => ... | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:131:48:131:51 | null | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:43:131:43 | _ | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:48:131:51 | null | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:134:9:134:11 | enter M13 | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | enter M13 | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | exit M13 (normal) | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:138:13:138:20 | default: | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:139:28:139:28 | 1 | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:140:13:140:19 | case ...: | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:140:28:140:28 | 2 | -| Switch.cs:138:13:138:20 | default: | Switch.cs:138:13:138:20 | default: | -| Switch.cs:139:28:139:28 | 1 | Switch.cs:139:28:139:28 | 1 | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | case ...: | -| Switch.cs:140:28:140:28 | 2 | Switch.cs:140:28:140:28 | 2 | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:144:9:144:11 | enter M14 | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | enter M14 | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | exit M14 (normal) | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:148:28:148:28 | 1 | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:149:13:149:20 | default: | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:150:13:150:19 | case ...: | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:150:28:150:28 | 2 | -| Switch.cs:148:28:148:28 | 1 | Switch.cs:148:28:148:28 | 1 | -| Switch.cs:149:13:149:20 | default: | Switch.cs:149:13:149:20 | default: | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | case ...: | -| Switch.cs:150:28:150:28 | 2 | Switch.cs:150:28:150:28 | 2 | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | enter M15 | -| Switch.cs:154:10:154:12 | exit M15 | Switch.cs:154:10:154:12 | exit M15 | -| Switch.cs:154:10:154:12 | exit M15 (abnormal) | Switch.cs:154:10:154:12 | exit M15 (abnormal) | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:154:10:154:12 | enter M15 | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:154:10:154:12 | exit M15 (normal) | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:156:17:156:54 | ... switch { ... } | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:156:36:156:38 | "a" | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:156:41:156:45 | false | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:156:50:156:52 | "b" | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:158:13:158:49 | ...; | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:160:13:160:49 | ...; | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:154:10:154:12 | enter M15 | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:54 | ... switch { ... } | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:36:156:38 | "a" | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:41:156:45 | false | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:50:156:52 | "b" | -| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:36:156:38 | "a" | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | false | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:41:156:45 | false | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:50:156:52 | "b" | -| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:13:158:49 | ...; | -| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:13:160:49 | ...; | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:163:10:163:12 | enter M16 | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | enter M16 | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | exit M16 (normal) | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:168:13:168:19 | case ...: | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:169:17:169:51 | ...; | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:171:13:171:19 | case ...: | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:174:13:174:20 | default: | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | case ...: | +| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:118:25:118:33 | After ... == ... [false] | +| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:118:25:118:33 | After ... == ... [true] | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:123:10:123:12 | Entry | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | Entry | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | Normal Exit | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:125:24:125:34 | After ... => ... [match] | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:125:24:125:34 | After ... => ... [no-match] | +| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | +| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | +| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:24:125:34 | After ... => ... [match] | +| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:125:24:125:34 | After ... => ... [no-match] | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:129:12:129:14 | Entry | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:129:12:129:14 | Entry | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:16:131:66 | After call to method ToString | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:28:131:40 | After ... => ... [match] | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:28:131:40 | After ... => ... [no-match] | +| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | +| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | +| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:28:131:40 | After ... => ... [match] | +| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:131:28:131:40 | After ... => ... [no-match] | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:134:9:134:11 | Entry | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | Entry | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | Normal Exit | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:139:13:139:19 | After case ...: [match] | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:139:13:139:19 | After case ...: [no-match] | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:140:13:140:19 | After case ...: [match] | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:140:13:140:19 | After case ...: [no-match] | +| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:13:139:19 | After case ...: [match] | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:139:13:139:19 | After case ...: [no-match] | +| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:13:140:19 | After case ...: [match] | +| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [no-match] | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:144:9:144:11 | Entry | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | Entry | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | Normal Exit | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:148:13:148:19 | After case ...: [match] | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:148:13:148:19 | After case ...: [no-match] | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:150:13:150:19 | After case ...: [match] | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:150:13:150:19 | After case ...: [no-match] | +| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:13:148:19 | After case ...: [match] | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:148:13:148:19 | After case ...: [no-match] | +| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:13:150:19 | After case ...: [match] | +| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [no-match] | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:154:10:154:12 | Entry | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:154:10:154:12 | Entry | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:17:156:54 | After ... switch { ... } | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:28:156:38 | After ... => ... [match] | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:28:156:38 | After ... => ... [no-match] | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:28:156:38 | After ... => ... [match] | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:28:156:38 | After ... => ... [no-match] | +| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:154:10:154:12 | Entry | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:156:17:156:54 | After ... switch { ... } | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:156:28:156:38 | After ... => ... [match] | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:156:28:156:38 | After ... => ... [no-match] | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:156:41:156:52 | After ... => ... [match] | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:156:41:156:52 | After ... => ... [no-match] | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:157:9:160:49 | After if (...) ... | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:157:13:157:13 | After access to parameter b [false] | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:157:13:157:13 | After access to parameter b [true] | +| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:157:13:157:13 | After access to parameter b [false] | +| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:157:13:157:13 | After access to parameter b [true] | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:163:10:163:12 | Entry | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:163:10:163:12 | Entry | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:165:9:177:9 | After switch (...) {...} | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:167:13:167:19 | After case ...: [match] | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:167:13:167:19 | After case ...: [no-match] | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:168:13:168:19 | After case ...: [match] | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:168:13:168:19 | After case ...: [no-match] | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:169:17:169:51 | ...; | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:171:13:171:19 | After case ...: [no-match] | +| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:167:13:167:19 | After case ...: [match] | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:167:13:167:19 | After case ...: [no-match] | +| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:168:13:168:19 | After case ...: [match] | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [no-match] | +| Switch.cs:169:17:169:51 | ...; | Switch.cs:167:13:167:19 | After case ...: [match] | +| Switch.cs:169:17:169:51 | ...; | Switch.cs:168:13:168:19 | After case ...: [match] | | Switch.cs:169:17:169:51 | ...; | Switch.cs:169:17:169:51 | ...; | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | case ...: | -| Switch.cs:172:17:172:46 | ...; | Switch.cs:172:17:172:46 | ...; | -| Switch.cs:174:13:174:20 | default: | Switch.cs:174:13:174:20 | default: | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:3:10:3:10 | enter M | -| TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | -| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | -| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:25:7:25 | ; | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:3:10:3:10 | enter M | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:25:7:25 | ; | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:9:8:28 | ... ...; | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | enter VarDecls | -| VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:5:18:5:19 | enter M1 | -| VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:13:12:13:13 | enter M2 | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:19:7:19:8 | enter M3 | -| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:19:7:19:8 | enter M3 | -| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:20:25:28 | ... ? ... : ... | -| 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: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 | enter C | VarDecls.cs:28:11:28:11 | enter C | -| VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:41:28:47 | enter Dispose | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | exit Main (normal) | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:15:9:17:9 | {...} | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:20:9:22:9 | {...} | cflow.cs:19:9:22:25 | do ... while (...); | +| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:171:13:171:19 | After case ...: [match] | +| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | +| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | Entry | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:3:10:3:10 | Entry | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | Entry | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:9:7:25 | After if (...) ... | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | +| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Entry | +| VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | Entry | +| VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | Entry | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:19:7:19:8 | Entry | +| VarDecls.cs:25:20:25:20 | After access to parameter b [false] | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | +| VarDecls.cs:25:20:25:20 | After access to parameter b [true] | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:19:7:19:8 | Entry | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:20:25:28 | After ... ? ... : ... | +| VarDecls.cs:28:11:28:11 | Entry | VarDecls.cs:28:11:28:11 | Entry | +| VarDecls.cs:28:41:28:47 | Entry | VarDecls.cs:28:41:28:47 | Entry | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:11:13:11:17 | After ... > ... [false] | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:11:13:11:17 | After ... > ... [true] | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:14:16:14:20 | After ... > ... [true] | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:14:16:14:20 | After ... > ... [true] | | cflow.cs:20:9:22:9 | {...} | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:5:17:5:20 | enter Main | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:12:13:12:49 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:14:9:17:9 | while (...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:14:16:14:16 | access to local variable a | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:15:9:17:9 | {...} | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:19:9:22:25 | do ... while (...); | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:20:9:22:9 | {...} | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:9:34:9 | for (...;...;...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:25:24:25 | access to local variable i | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:24:34:24:34 | access to local variable i | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:25:9:34:9 | {...} | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:31:26:31 | access to local variable i | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:26:17:26:40 | [true] ... && ... | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:17:27:46 | ...; | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:26:17:26:40 | [false] ... && ... | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:28:18:33:37 | if (...) ... | -| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:17:29:42 | ...; | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:30:18:33:37 | if (...) ... | -| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:17:31:42 | ...; | -| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:17:33:37 | ...; | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:37:17:37:22 | exit Switch | cflow.cs:37:17:37:22 | exit Switch | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:54:17:54:48 | ...; | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:56:13:56:20 | default: | cflow.cs:56:13:56:20 | default: | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:56:13:56:20 | default: | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:63:21:63:34 | [true] !... | -| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | -| cflow.cs:65:17:65:22 | break; | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:65:17:65:22 | break; | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:65:17:65:22 | break; | cflow.cs:65:17:65:22 | break; | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:37:17:37:22 | enter Switch | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:41:13:41:19 | case ...: | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:42:17:42:39 | ...; | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:44:13:44:19 | case ...: | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:45:17:45:39 | ...; | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:47:13:47:19 | case ...: | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:48:17:48:39 | ...; | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:51:9:59:9 | switch (...) {...} | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:54:17:54:48 | ...; | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:56:13:56:20 | default: | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:60:9:66:9 | switch (...) {...} | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:63:17:64:55 | if (...) ... | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:63:21:63:34 | [false] !... | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:65:17:65:22 | break; | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:16:67:16 | access to parameter a | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | enter M | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | enter M | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | exit M (normal) | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:73:13:73:19 | return ...; | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:74:9:81:9 | if (...) ... | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:75:9:77:9 | {...} | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:79:9:81:9 | {...} | -| cflow.cs:73:13:73:19 | return ...; | cflow.cs:73:13:73:19 | return ...; | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:74:9:81:9 | if (...) ... | -| cflow.cs:75:9:77:9 | {...} | cflow.cs:75:9:77:9 | {...} | -| cflow.cs:79:9:81:9 | {...} | cflow.cs:79:9:81:9 | {...} | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:84:18:84:19 | enter M2 | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | enter M2 | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | exit M2 (normal) | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:86:13:86:37 | [false] ... && ... | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:86:13:86:37 | [true] ... && ... | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:86:26:86:26 | access to parameter s | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:87:13:87:33 | ...; | -| cflow.cs:86:13:86:37 | [false] ... && ... | cflow.cs:86:13:86:37 | [false] ... && ... | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:86:13:86:37 | [true] ... && ... | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:26 | access to parameter s | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:86:13:86:37 | [true] ... && ... | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:13:87:33 | ...; | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:90:18:90:19 | enter M3 | -| cflow.cs:90:18:90:19 | exit M3 | cflow.cs:90:18:90:19 | exit M3 | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:90:18:90:19 | enter M3 | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:90:18:90:19 | exit M3 (normal) | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:94:9:94:29 | ...; | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:99:9:100:42 | if (...) ... | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:102:9:103:36 | if (...) ... | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:93:45:93:47 | "s" | cflow.cs:93:45:93:47 | "s" | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:90:18:90:19 | enter M3 | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:94:9:94:29 | ...; | -| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:90:18:90:19 | enter M3 | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:94:9:94:29 | ...; | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:9:100:42 | if (...) ... | -| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:90:18:90:19 | enter M3 | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:94:9:94:29 | ...; | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:97:13:97:55 | ...; | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:99:9:100:42 | if (...) ... | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:100:13:100:42 | ...; | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:9:103:36 | if (...) ... | -| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:13:103:36 | ...; | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:106:18:106:19 | enter M4 | -| cflow.cs:109:9:115:9 | {...} | cflow.cs:109:9:115:9 | {...} | -| cflow.cs:110:20:110:23 | true | cflow.cs:110:20:110:23 | true | -| cflow.cs:111:13:113:13 | {...} | cflow.cs:111:13:113:13 | {...} | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:106:18:106:19 | enter M4 | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:116:9:116:29 | ...; | -| cflow.cs:119:20:119:21 | enter M5 | cflow.cs:119:20:119:21 | enter M5 | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:19:127:21 | enter get_Prop | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:19:127:21 | enter get_Prop | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:32:127:57 | ... ? ... : ... | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:48:127:49 | "" | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:53:127:57 | this access | -| cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | -| cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | this access | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | enter set_Prop | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | enter ControlFlow | -| cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | enter ControlFlow | -| cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | enter ControlFlow | -| cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | enter + | -| cflow.cs:144:33:144:35 | enter get_Item | cflow.cs:144:33:144:35 | enter get_Item | -| cflow.cs:144:56:144:58 | enter set_Item | cflow.cs:144:56:144:58 | enter set_Item | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | exit For (normal) | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:156:17:156:22 | break; | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:164:17:164:22 | break; | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:150:13:150:33 | ...; | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:153:9:157:9 | {...} | cflow.cs:152:18:152:18 | access to local variable x | +| cflow.cs:20:9:22:9 | {...} | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:22:18:22:23 | After ... < ... [true] | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:24:25:24:31 | After ... <= ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:5:17:5:20 | Entry | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:11:9:12:49 | After if (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:11:13:11:17 | After ... > ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:11:13:11:17 | After ... > ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:14:16:14:20 | After ... > ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:14:16:14:20 | After ... > ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:20:9:22:9 | {...} | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:22:18:22:23 | After ... < ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:22:18:22:23 | After ... < ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:31 | Before ... <= ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:26:13:33:37 | After if (...) ... | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:26:17:26:26 | After ... == ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:17:26:26 | After ... == ... [true] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:26:31:26:40 | After ... == ... [false] | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:26:31:26:40 | After ... == ... [true] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:26:17:26:26 | After ... == ... [false] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:26:17:26:40 | After ... && ... [false] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:26:31:26:40 | After ... == ... [false] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:28:22:28:31 | After ... == ... [true] | cflow.cs:28:22:28:31 | After ... == ... [true] | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:28:22:28:31 | After ... == ... [false] | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | After ... == ... [false] | +| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:30:22:30:31 | After ... == ... [true] | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:37:17:37:22 | Exit | cflow.cs:37:17:37:22 | Exit | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:39:9:50:9 | After switch (...) {...} | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:41:13:41:19 | After case ...: [match] | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:44:13:44:19 | After case ...: [match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:39:9:50:9 | After switch (...) {...} | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Entry | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:39:9:50:9 | After switch (...) {...} | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:41:13:41:19 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:44:13:44:19 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:47:13:47:19 | After case ...: [match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:47:13:47:19 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:51:9:59:9 | After switch (...) {...} | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:60:9:66:9 | After switch (...) {...} | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:63:23:63:33 | After ... == ... [false] | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:62:13:62:19 | After case ...: [match] | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:63:23:63:33 | After ... == ... [true] | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:70:18:70:18 | Entry | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | Entry | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | Normal Exit | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:72:13:72:21 | After ... == ... [false] | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:72:13:72:21 | After ... == ... [true] | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:74:9:81:9 | After if (...) ... | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:72:13:72:21 | After ... == ... [false] | +| cflow.cs:72:13:72:21 | After ... == ... [true] | cflow.cs:72:13:72:21 | After ... == ... [true] | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:72:13:72:21 | After ... == ... [false] | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:74:9:81:9 | After if (...) ... | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:74:13:74:24 | After ... > ... [false] | cflow.cs:74:13:74:24 | After ... > ... [false] | +| cflow.cs:74:13:74:24 | After ... > ... [true] | cflow.cs:74:13:74:24 | After ... > ... [true] | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:84:18:84:19 | Entry | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:84:18:84:19 | Entry | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:9:87:33 | After if (...) ... | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:13:86:21 | After ... != ... [false] | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:13:86:21 | After ... != ... [true] | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:13:86:37 | After ... && ... [false] | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:86:26:86:37 | After ... > ... [true] | +| cflow.cs:86:13:86:21 | After ... != ... [false] | cflow.cs:86:13:86:21 | After ... != ... [false] | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:13:86:21 | After ... != ... [true] | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:13:86:21 | After ... != ... [false] | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:13:86:37 | After ... && ... [false] | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:86:26:86:37 | After ... > ... [false] | cflow.cs:86:26:86:37 | After ... > ... [false] | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:86:26:86:37 | After ... > ... [true] | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:90:18:90:19 | Entry | +| cflow.cs:90:18:90:19 | Exit | cflow.cs:90:18:90:19 | Exit | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:90:18:90:19 | Entry | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:92:13:92:27 | After call to method Equals [false] | +| cflow.cs:92:13:92:27 | After call to method Equals [true] | cflow.cs:92:13:92:27 | After call to method Equals [true] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:90:18:90:19 | Entry | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:92:13:92:27 | After call to method Equals [false] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:96:9:97:55 | After if (...) ... | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:96:13:96:25 | After ... != ... [false] | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:96:13:96:25 | After ... != ... [true] | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:90:18:90:19 | Entry | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:92:13:92:27 | After call to method Equals [false] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:96:9:97:55 | After if (...) ... | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:99:9:100:42 | After if (...) ... | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:99:13:99:25 | After ... != ... [false] | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:99:13:99:25 | After ... != ... [true] | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:90:18:90:19 | Entry | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:92:13:92:27 | After call to method Equals [false] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:96:9:97:55 | After if (...) ... | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:96:13:96:25 | After ... != ... [false] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:96:13:96:25 | After ... != ... [true] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:99:9:100:42 | After if (...) ... | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [false] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:99:13:99:25 | After ... != ... [true] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:102:9:103:36 | After if (...) ... | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:102:13:102:29 | After ... != ... [false] | cflow.cs:102:13:102:29 | After ... != ... [false] | +| cflow.cs:102:13:102:29 | After ... != ... [true] | cflow.cs:102:13:102:29 | After ... != ... [true] | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:106:18:106:19 | Entry | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:106:18:106:19 | Entry | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:108:13:108:21 | After ... != ... [false] | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:108:13:108:21 | After ... != ... [true] | +| cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | +| cflow.cs:119:20:119:21 | Entry | cflow.cs:119:20:119:21 | Entry | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:19:127:21 | Entry | +| cflow.cs:127:32:127:44 | After ... == ... [false] | cflow.cs:127:32:127:44 | After ... == ... [false] | +| cflow.cs:127:32:127:44 | After ... == ... [true] | cflow.cs:127:32:127:44 | After ... == ... [true] | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:19:127:21 | Entry | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:32:127:44 | After ... == ... [false] | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:32:127:44 | After ... == ... [true] | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:32:127:57 | After ... ? ... : ... | +| cflow.cs:127:62:127:64 | Entry | cflow.cs:127:62:127:64 | Entry | +| cflow.cs:129:5:129:15 | Entry | cflow.cs:129:5:129:15 | Entry | +| cflow.cs:134:5:134:15 | Entry | cflow.cs:134:5:134:15 | Entry | +| cflow.cs:136:12:136:22 | Entry | cflow.cs:136:12:136:22 | Entry | +| cflow.cs:138:40:138:40 | Entry | cflow.cs:138:40:138:40 | Entry | +| cflow.cs:144:33:144:35 | Entry | cflow.cs:144:33:144:35 | Entry | +| cflow.cs:144:56:144:58 | Entry | cflow.cs:144:56:144:58 | Entry | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:149:16:149:21 | After ... < ... [true] | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:149:16:149:21 | Before ... < ... | | cflow.cs:153:9:157:9 | {...} | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:156:17:156:22 | break; | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:156:17:156:22 | break; | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:156:17:156:22 | break; | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:156:17:156:22 | break; | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:156:17:156:22 | break; | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:156:17:156:22 | break; | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:156:17:156:22 | break; | cflow.cs:156:17:156:22 | break; | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:152:18:152:18 | access to local variable x | +| cflow.cs:153:9:157:9 | {...} | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [false] | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:149:16:149:21 | Before ... < ... | | cflow.cs:160:9:165:9 | {...} | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:160:9:165:9 | {...} | cflow.cs:156:17:156:22 | break; | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:155:17:155:22 | After ... > ... [true] | | cflow.cs:160:9:165:9 | {...} | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:164:17:164:22 | break; | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:164:17:164:22 | break; | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:164:17:164:22 | break; | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:164:17:164:22 | break; | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:164:17:164:22 | break; | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:164:17:164:22 | break; | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:164:17:164:22 | break; | cflow.cs:156:17:156:22 | break; | -| cflow.cs:164:17:164:22 | break; | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:164:17:164:22 | break; | cflow.cs:164:17:164:22 | break; | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:156:17:156:22 | break; | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:164:17:164:22 | break; | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:168:9:171:9 | {...} | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:156:17:156:22 | break; | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:164:17:164:22 | break; | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:146:10:146:12 | enter For | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:149:16:149:16 | access to local variable x | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:150:13:150:33 | ...; | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:152:9:157:9 | for (...;...;...) ... | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:152:18:152:18 | access to local variable x | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:153:9:157:9 | {...} | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:156:17:156:22 | break; | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:160:9:165:9 | {...} | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:164:17:164:22 | break; | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:167:16:167:16 | access to local variable x | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:168:9:171:9 | {...} | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:9:176:9 | for (...;...;...) ... | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:32:173:32 | access to local variable i | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:174:9:176:9 | {...} | cflow.cs:174:9:176:9 | {...} | -| cflow.cs:179:10:179:16 | enter Lambdas | cflow.cs:179:10:179:16 | enter Lambdas | -| cflow.cs:181:28:181:37 | enter (...) => ... | cflow.cs:181:28:181:37 | enter (...) => ... | -| cflow.cs:182:28:182:61 | enter delegate(...) { ... } | cflow.cs:182:28:182:61 | enter delegate(...) { ... } | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:185:10:185:18 | enter LogicalOr | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:187:13:187:28 | ... \|\| ... | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:187:13:187:50 | ... \|\| ... | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:187:23:187:23 | 2 | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:187:34:187:34 | 1 | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:187:34:187:49 | ... && ... | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:190:13:190:52 | ...; | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:193:10:193:17 | exit Booleans | cflow.cs:193:10:193:17 | exit Booleans | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:193:10:193:17 | exit Booleans (normal) | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:195:39:195:43 | this access | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:197:35:197:39 | false | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:197:43:197:46 | true | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:198:37:198:41 | false | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:198:45:198:48 | true | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:40:200:44 | this access | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:195:39:195:43 | this access | cflow.cs:195:39:195:43 | this access | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:197:43:197:46 | true | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:197:35:197:39 | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:43:197:46 | true | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | false | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | true | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:197:35:197:39 | false | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:198:37:198:41 | false | cflow.cs:198:37:198:41 | false | -| cflow.cs:198:45:198:48 | true | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:197:43:197:46 | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:197:35:197:39 | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:197:43:197:46 | true | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:198:37:198:41 | false | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:13:200:32 | [true] !... | cflow.cs:200:13:200:32 | [true] !... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:197:43:197:46 | true | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:197:35:197:39 | false | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:197:43:197:46 | true | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:198:37:198:41 | false | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:37:200:62 | [false] !... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:37:200:62 | [true] !... | cflow.cs:200:37:200:62 | [true] !... | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:38:200:62 | [false] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:197:35:197:39 | false | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:197:43:197:46 | true | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:198:37:198:41 | false | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:38:200:62 | [true] !... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:40:200:44 | this access | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:200:40:200:44 | this access | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:195:39:195:43 | this access | -| cflow.cs:200:40:200:44 | this access | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:197:35:197:39 | false | -| cflow.cs:200:40:200:44 | this access | cflow.cs:197:43:197:46 | true | -| cflow.cs:200:40:200:44 | this access | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:200:40:200:44 | this access | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:198:37:198:41 | false | -| cflow.cs:200:40:200:44 | this access | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:193:10:193:17 | enter Booleans | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:195:17:195:56 | ... && ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:195:39:195:43 | this access | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:197:13:197:47 | [false] !... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:197:13:197:47 | [true] !... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:197:35:197:39 | false | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:197:43:197:46 | true | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:198:13:198:49 | ...; | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:198:17:198:48 | ... ? ... : ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:198:37:198:41 | false | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:198:45:198:48 | true | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:9:205:9 | if (...) ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:13:200:32 | [false] !... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:40:200:44 | this access | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:40:200:61 | [false] ... && ... | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:40:200:61 | [true] ... && ... | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | access to local variable b | -| cflow.cs:201:9:205:9 | {...} | cflow.cs:201:9:205:9 | {...} | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:208:10:208:11 | enter Do | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | enter Do | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do (normal) | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:211:9:221:9 | {...} | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:214:13:216:13 | {...} | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:217:13:220:13 | if (...) ... | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:218:13:220:13 | {...} | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:221:18:221:22 | this access | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | enter Do | +| cflow.cs:160:9:165:9 | {...} | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [false] | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:167:16:167:21 | After ... < ... [true] | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:173:32:173:41 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:173:32:173:41 | After ... < ... [true] | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:146:10:146:12 | Entry | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:149:16:149:21 | Before ... < ... | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:153:9:157:9 | {...} | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [false] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:155:17:155:22 | After ... > ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:160:9:165:9 | {...} | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [false] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:163:17:163:22 | After ... > ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:167:16:167:21 | Before ... < ... | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:41 | Before ... < ... | +| cflow.cs:179:10:179:16 | Entry | cflow.cs:179:10:179:16 | Entry | +| cflow.cs:181:28:181:37 | Entry | cflow.cs:181:28:181:37 | Entry | +| cflow.cs:182:28:182:61 | Entry | cflow.cs:182:28:182:61 | Entry | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:185:10:185:18 | Entry | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:185:10:185:18 | Entry | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:9:190:52 | After if (...) ... | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:13:187:18 | After ... == ... [false] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:23:187:28 | After ... == ... [false] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:34:187:49 | After ... && ... [false] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:13:187:18 | After ... == ... [false] | +| cflow.cs:187:13:187:18 | After ... == ... [true] | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:13:187:18 | After ... == ... [true] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:23:187:28 | After ... == ... [false] | +| cflow.cs:187:23:187:28 | After ... == ... [true] | cflow.cs:187:23:187:28 | After ... == ... [true] | +| cflow.cs:187:34:187:39 | After ... == ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:34:187:39 | After ... == ... [true] | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:34:187:39 | After ... == ... [false] | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:44:187:49 | After ... == ... [false] | cflow.cs:187:44:187:49 | After ... == ... [false] | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:187:44:187:49 | After ... == ... [true] | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:193:10:193:17 | Entry | +| cflow.cs:193:10:193:17 | Exit | cflow.cs:193:10:193:17 | Exit | +| cflow.cs:195:17:195:32 | After ... > ... [false] | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:195:17:195:32 | After ... > ... [true] | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:193:10:193:17 | Entry | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:17:195:56 | After ... && ... | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:193:10:193:17 | Entry | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:195:17:195:56 | After ... && ... | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:197:9:198:49 | After if (...) ... | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:197:15:197:31 | After ... == ... [false] | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:198:17:198:33 | After ... == ... [false] | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:198:17:198:33 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:200:13:200:62 | After ... \|\| ... [true] | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:200:15:200:31 | After ... == ... [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:193:10:193:17 | Entry | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:195:17:195:56 | After ... && ... | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:197:9:198:49 | After if (...) ... | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:200:40:200:56 | After ... == ... [false] | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:193:10:193:17 | Entry | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:195:17:195:32 | After ... > ... [false] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:195:17:195:32 | After ... > ... [true] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:195:17:195:56 | After ... && ... | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:197:9:198:49 | After if (...) ... | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:197:15:197:31 | After ... == ... [false] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:197:15:197:31 | After ... == ... [true] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:198:17:198:33 | After ... == ... [false] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:198:17:198:33 | After ... == ... [true] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:198:17:198:48 | After ... ? ... : ... | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:15:200:31 | After ... == ... [true] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:40:200:56 | After ... == ... [false] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:40:200:61 | After ... && ... [false] | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:200:40:200:56 | After ... == ... [true] | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:200:61:200:61 | After access to local variable b [false] | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:200:61:200:61 | After access to local variable b [true] | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:208:10:208:11 | Entry | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:208:10:208:11 | Entry | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:210:9:221:36 | After do ... while (...); | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:211:9:221:9 | {...} | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:213:17:213:32 | After ... > ... [false] | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | Entry | | cflow.cs:211:9:221:9 | {...} | cflow.cs:211:9:221:9 | {...} | -| cflow.cs:214:13:216:13 | {...} | cflow.cs:214:13:216:13 | {...} | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:13:220:13 | if (...) ... | -| cflow.cs:218:13:220:13 | {...} | cflow.cs:218:13:220:13 | {...} | -| cflow.cs:221:18:221:22 | this access | cflow.cs:214:13:216:13 | {...} | -| cflow.cs:221:18:221:22 | this access | cflow.cs:221:18:221:22 | this access | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:224:10:224:16 | enter Foreach | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | enter Foreach | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | exit Foreach (normal) | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:226:22:226:22 | String x | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:230:13:232:13 | {...} | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:233:13:236:13 | if (...) ... | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:234:13:236:13 | {...} | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | enter Foreach | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:230:13:232:13 | {...} | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:213:17:213:32 | After ... > ... [false] | +| cflow.cs:213:17:213:32 | After ... > ... [true] | cflow.cs:213:17:213:32 | After ... > ... [true] | +| cflow.cs:217:17:217:32 | After ... < ... [false] | cflow.cs:217:17:217:32 | After ... < ... [false] | +| cflow.cs:217:17:217:32 | After ... < ... [true] | cflow.cs:217:17:217:32 | After ... < ... [true] | +| cflow.cs:221:18:221:34 | After ... < ... [false] | cflow.cs:221:18:221:34 | After ... < ... [false] | +| cflow.cs:221:18:221:34 | After ... < ... [true] | cflow.cs:221:18:221:34 | After ... < ... [true] | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:224:10:224:16 | Entry | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Entry | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:22:226:22 | String x | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:233:17:233:32 | After ... < ... [false] | | cflow.cs:226:22:226:22 | String x | cflow.cs:226:22:226:22 | String x | -| cflow.cs:230:13:232:13 | {...} | cflow.cs:230:13:232:13 | {...} | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:13:236:13 | if (...) ... | -| cflow.cs:234:13:236:13 | {...} | cflow.cs:234:13:236:13 | {...} | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:240:10:240:13 | enter Goto | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | enter Goto | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | exit Goto (normal) | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:242:5:242:9 | Label: | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:244:9:244:41 | if (...) ... | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:246:9:258:9 | switch (...) {...} | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:255:13:255:20 | default: | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:240:10:240:13 | enter Goto | +| cflow.cs:226:22:226:22 | String x | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | +| cflow.cs:226:27:226:64 | After call to method Repeat [empty] | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:229:17:229:32 | After ... > ... [false] | +| cflow.cs:229:17:229:32 | After ... > ... [true] | cflow.cs:229:17:229:32 | After ... > ... [true] | +| cflow.cs:233:17:233:32 | After ... < ... [false] | cflow.cs:233:17:233:32 | After ... < ... [false] | +| cflow.cs:233:17:233:32 | After ... < ... [true] | cflow.cs:233:17:233:32 | After ... < ... [true] | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:240:10:240:13 | Entry | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:240:10:240:13 | Entry | | cflow.cs:242:5:242:9 | Label: | cflow.cs:242:5:242:9 | Label: | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:242:5:242:9 | Label: | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:240:10:240:13 | enter Goto | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:5:242:9 | Label: | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:9:244:41 | if (...) ... | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:240:10:240:13 | enter Goto | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:242:5:242:9 | Label: | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:242:16:242:36 | [false] !... | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:242:16:242:36 | [true] !... | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:242:17:242:36 | [false] !... | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:242:17:242:36 | [true] !... | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:242:39:242:41 | {...} | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:244:9:244:41 | if (...) ... | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:244:31:244:41 | goto ...; | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:9:258:9 | switch (...) {...} | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:249:17:249:29 | goto default; | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | case ...: | -| cflow.cs:251:17:251:37 | ...; | cflow.cs:251:17:251:37 | ...; | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | case ...: | -| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:254:17:254:27 | goto ...; | -| cflow.cs:255:13:255:20 | default: | cflow.cs:249:17:249:29 | goto default; | -| cflow.cs:255:13:255:20 | default: | cflow.cs:255:13:255:20 | default: | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | enter Yield | -| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | exit Yield | -| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield (abnormal) | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | enter Yield | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:264:25:264:25 | access to local variable i | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:268:9:276:9 | try {...} ... | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | enter Yield | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:25 | access to local variable i | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:265:9:267:9 | {...} | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | enter Yield | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:264:25:264:25 | access to local variable i | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:265:9:267:9 | {...} | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:268:9:276:9 | try {...} ... | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | enter ControlFlowSub | -| cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | enter ControlFlowSub | -| cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:5:286:18 | enter ControlFlowSub | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | enter DelegateCall | -| cflow.cs:291:12:291:12 | enter M | cflow.cs:291:12:291:12 | enter M | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | enter NegationInConstructor | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:298:10:298:10 | enter M | -| cflow.cs:300:44:300:51 | [false] !... | cflow.cs:300:44:300:51 | [false] !... | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:44:300:51 | [true] !... | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:298:10:298:10 | enter M | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:51 | [false] !... | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:51 | [true] !... | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:64 | ... && ... | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:56:300:56 | access to parameter s | -| cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:44:300:51 | [true] !... | -| cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:56:300:56 | access to parameter s | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | enter LambdaGetter | -| cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:306:60:310:5 | enter (...) => ... | -| cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | enter get__getter | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:242:5:242:9 | Label: | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:240:10:240:13 | Entry | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:242:5:242:9 | Label: | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:242:12:242:41 | After if (...) ... | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:240:10:240:13 | Entry | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:242:5:242:9 | Label: | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:242:12:242:41 | After if (...) ... | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:240:10:240:13 | Entry | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:242:5:242:9 | Label: | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:242:12:242:41 | After if (...) ... | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:242:19:242:35 | After ... == ... [false] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:242:19:242:35 | After ... == ... [true] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:244:13:244:28 | After ... > ... [false] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:244:13:244:28 | After ... > ... [true] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:246:9:258:9 | After switch (...) {...} | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:255:13:255:20 | After default: [match] | +| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:248:13:248:19 | After case ...: [no-match] | +| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:250:13:250:19 | After case ...: [match] | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [no-match] | +| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:253:13:253:19 | After case ...: [match] | +| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:248:13:248:19 | After case ...: [match] | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:255:13:255:20 | After default: [match] | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Entry | +| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Exceptional Exit | +| cflow.cs:261:49:261:53 | Exit | cflow.cs:261:49:261:53 | Exit | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:261:49:261:53 | Entry | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:261:49:261:53 | Normal Exit | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:264:25:264:30 | After ... < ... [false] | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:264:25:264:30 | Before ... < ... | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:268:9:276:9 | After try {...} ... | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:261:49:261:53 | Entry | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:264:25:264:30 | After ... < ... [false] | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:264:25:264:30 | Before ... < ... | +| cflow.cs:264:25:264:30 | After ... < ... [true] | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Entry | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | After ... < ... [true] | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:30 | Before ... < ... | +| cflow.cs:268:9:276:9 | After try {...} ... | cflow.cs:268:9:276:9 | After try {...} ... | +| cflow.cs:282:5:282:18 | Entry | cflow.cs:282:5:282:18 | Entry | +| cflow.cs:284:5:284:18 | Entry | cflow.cs:284:5:284:18 | Entry | +| cflow.cs:286:5:286:18 | Entry | cflow.cs:286:5:286:18 | Entry | +| cflow.cs:289:7:289:18 | Entry | cflow.cs:289:7:289:18 | Entry | +| cflow.cs:291:12:291:12 | Entry | cflow.cs:291:12:291:12 | Entry | +| cflow.cs:296:5:296:25 | Entry | cflow.cs:296:5:296:25 | Entry | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:298:10:298:10 | Entry | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:298:10:298:10 | Entry | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:44:300:64 | After ... && ... | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:46:300:50 | After ... > ... [false] | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:46:300:50 | After ... > ... [true] | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:300:46:300:50 | After ... > ... [false] | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:300:46:300:50 | After ... > ... [true] | +| cflow.cs:304:7:304:18 | Entry | cflow.cs:304:7:304:18 | Entry | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | Entry | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | Entry | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 99f8c25b49e..db951b3ba80 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -1,5545 +1,9372 @@ nodeEnclosing +| AccessorCalls.cs:1:7:1:19 | After call to constructor Object | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | After call to method | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | Before call to constructor Object | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | Before call to method | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | Entry | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | Exit | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | Normal Exit | 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 | 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 | -| AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | AccessorCalls.cs:5:23:5:25 | get_Item | +| AccessorCalls.cs:5:23:5:25 | Entry | AccessorCalls.cs:5:23:5:25 | get_Item | +| AccessorCalls.cs:5:23:5:25 | Exit | AccessorCalls.cs:5:23:5:25 | get_Item | +| AccessorCalls.cs:5:23:5:25 | Normal Exit | AccessorCalls.cs:5:23:5:25 | get_Item | | AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:23:5:25 | get_Item | -| AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | set_Item | -| AccessorCalls.cs:5:33:5:35 | exit set_Item | AccessorCalls.cs:5:33:5:35 | set_Item | -| AccessorCalls.cs:5:33:5:35 | exit set_Item (normal) | AccessorCalls.cs:5:33:5:35 | set_Item | +| AccessorCalls.cs:5:33:5:35 | Entry | AccessorCalls.cs:5:33:5:35 | set_Item | +| AccessorCalls.cs:5:33:5:35 | Exit | AccessorCalls.cs:5:33:5:35 | set_Item | +| AccessorCalls.cs:5:33:5:35 | Normal Exit | AccessorCalls.cs:5:33:5:35 | set_Item | | AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:33:5:35 | set_Item | -| AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | add_Event | -| AccessorCalls.cs:7:32:7:34 | exit add_Event | AccessorCalls.cs:7:32:7:34 | add_Event | -| AccessorCalls.cs:7:32:7:34 | exit add_Event (normal) | AccessorCalls.cs:7:32:7:34 | add_Event | +| AccessorCalls.cs:7:32:7:34 | Entry | AccessorCalls.cs:7:32:7:34 | add_Event | +| AccessorCalls.cs:7:32:7:34 | Exit | AccessorCalls.cs:7:32:7:34 | add_Event | +| AccessorCalls.cs:7:32:7:34 | Normal Exit | AccessorCalls.cs:7:32:7:34 | add_Event | | AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:32:7:34 | add_Event | -| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | remove_Event | -| AccessorCalls.cs:7:40:7:45 | exit remove_Event | AccessorCalls.cs:7:40:7:45 | remove_Event | -| AccessorCalls.cs:7:40:7:45 | exit remove_Event (normal) | AccessorCalls.cs:7:40:7:45 | remove_Event | +| AccessorCalls.cs:7:40:7:45 | Entry | AccessorCalls.cs:7:40:7:45 | remove_Event | +| AccessorCalls.cs:7:40:7:45 | Exit | AccessorCalls.cs:7:40:7:45 | remove_Event | +| AccessorCalls.cs:7:40:7:45 | Normal Exit | AccessorCalls.cs:7:40:7:45 | remove_Event | | AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:40:7:45 | remove_Event | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | M1 | -| AccessorCalls.cs:10:10:10:11 | exit M1 | AccessorCalls.cs:10:10:10:11 | M1 | -| AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:10:10:10:11 | Entry | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:10:10:10:11 | Exit | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:10:10:10:11 | Normal Exit | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:11:5:17:5 | After {...} | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:9:12:18 | After access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:9:12:18 | Before access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:9:12:31 | After ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:9:12:31 | Before ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:9:12:32 | After ...; | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:22:12:31 | After access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:22:12:31 | Before access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:13:9:13:17 | After access to property Prop | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:13:9:13:17 | Before access to property Prop | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:13:9:13:29 | After ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:13:9:13:29 | Before ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:13:9:13:30 | After ...; | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:13:21:13:24 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:13:21:13:29 | After access to property Prop | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:13:21:13:29 | Before access to property Prop | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:13:21:13:29 | access to property Prop | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:9:14:12 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:14:9:14:15 | After access to indexer | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:14:9:14:15 | Before access to indexer | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:14:9:14:25 | After ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:14:9:14:25 | Before ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:14:9:14:26 | After ...; | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:14:14:14 | 0 | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:19:14:22 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:14:19:14:25 | After access to indexer | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:14:19:14:25 | Before access to indexer | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:19:14:25 | access to indexer | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:14:24:14:24 | 1 | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:15:9:15:18 | After access to event Event | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:15:9:15:18 | Before access to event Event | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:15:9:15:23 | After ... += ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:15:9:15:23 | Before ... += ... | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:15:9:15:24 | After ...; | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:16:9:16:18 | After access to event Event | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:16:9:16:18 | Before access to event Event | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:16:9:16:23 | After ... -= ... | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:16:9:16:23 | Before ... -= ... | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:16:9:16:24 | After ...; | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:10:10:10:11 | M1 | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | M2 | -| AccessorCalls.cs:19:10:19:11 | exit M2 | AccessorCalls.cs:19:10:19:11 | M2 | -| AccessorCalls.cs:19:10:19:11 | exit M2 (normal) | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:19:10:19:11 | Entry | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:19:10:19:11 | Exit | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:19:10:19:11 | Normal Exit | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:20:5:26:5 | After {...} | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:14 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:14 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:20 | After access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:20 | Before access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:35 | After ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:35 | Before ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:36 | After ...; | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:24:21:29 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:24:21:29 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:24:21:35 | After access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:24:21:35 | Before access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:9:22:14 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:9:22:14 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:9:22:19 | After access to property Prop | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:9:22:19 | Before access to property Prop | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:9:22:33 | After ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:9:22:33 | Before ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:9:22:34 | After ...; | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:23:22:26 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:23:22:28 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:23:22:28 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:23:22:28 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:23:22:33 | After access to property Prop | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:22:23:22:33 | Before access to property Prop | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:9:23:12 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:9:23:14 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:9:23:14 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:9:23:14 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:9:23:17 | After access to indexer | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:9:23:17 | Before access to indexer | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:9:23:29 | After ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:9:23:29 | Before ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:9:23:30 | After ...; | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:21:23:24 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:21:23:26 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:21:23:26 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:21:23:26 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:21:23:29 | After access to indexer | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:23:21:23:29 | Before access to indexer | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:21:23:29 | access to indexer | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:23:28:23:28 | 1 | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:24:9:24:12 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:24:9:24:14 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:24:9:24:14 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:24:9:24:14 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:24:9:24:20 | After access to event Event | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:24:9:24:20 | Before access to event Event | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:24:9:24:25 | After ... += ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:24:9:24:25 | Before ... += ... | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:24:9:24:26 | After ...; | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:25:9:25:12 | this access | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:25:9:25:14 | After access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:25:9:25:14 | Before access to field x | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:25:9:25:14 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:25:9:25:20 | After access to event Event | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:25:9:25:20 | Before access to event Event | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:25:9:25:25 | After ... -= ... | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:25:9:25:25 | Before ... -= ... | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:25:9:25:26 | After ...; | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:19:10:19:11 | M2 | -| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | M3 | -| AccessorCalls.cs:28:10:28:11 | exit M3 | AccessorCalls.cs:28:10:28:11 | M3 | -| AccessorCalls.cs:28:10:28:11 | exit M3 (normal) | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:28:10:28:11 | Entry | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:28:10:28:11 | Exit | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:28:10:28:11 | Normal Exit | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:29:5:33:5 | After {...} | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:29:5:33:5 | {...} | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:30:9:30:12 | this access | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:30:9:30:18 | After access to field Field | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:30:9:30:18 | Before access to field Field | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:30:9:30:18 | access to field Field | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:30:9:30:20 | After ...++ | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:30:9:30:20 | Before ...++ | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:30:9:30:21 | ...; | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:30:9:30:21 | After ...; | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:31:9:31:12 | this access | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:31:9:31:17 | After access to property Prop | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:31:9:31:17 | Before access to property Prop | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:31:9:31:17 | access to property Prop | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:31:9:31:19 | After ...++ | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:31:9:31:19 | Before ...++ | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:31:9:31:20 | After ...; | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:32:9:32:12 | this access | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:32:9:32:15 | After access to indexer | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:32:9:32:15 | Before access to indexer | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:32:9:32:15 | access to indexer | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:32:9:32:17 | After ...++ | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:32:9:32:17 | Before ...++ | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:32:9:32:18 | After ...; | AccessorCalls.cs:28:10:28:11 | M3 | | AccessorCalls.cs:32:14:32:14 | 0 | AccessorCalls.cs:28:10:28:11 | M3 | -| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | M4 | -| AccessorCalls.cs:35:10:35:11 | exit M4 | AccessorCalls.cs:35:10:35:11 | M4 | -| AccessorCalls.cs:35:10:35:11 | exit M4 (normal) | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:35:10:35:11 | Entry | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:35:10:35:11 | Exit | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:35:10:35:11 | Normal Exit | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:36:5:40:5 | After {...} | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:36:5:40:5 | {...} | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:37:9:37:12 | this access | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:37:9:37:14 | After access to field x | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:37:9:37:14 | Before access to field x | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:37:9:37:14 | access to field x | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:37:9:37:20 | After access to field Field | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:37:9:37:20 | Before access to field Field | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:37:9:37:22 | After ...++ | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:37:9:37:22 | Before ...++ | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:37:9:37:23 | ...; | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:37:9:37:23 | After ...; | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:38:9:38:12 | this access | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:38:9:38:14 | After access to field x | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:38:9:38:14 | Before access to field x | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:38:9:38:14 | access to field x | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:38:9:38:19 | After access to property Prop | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:38:9:38:19 | Before access to property Prop | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:38:9:38:21 | After ...++ | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:38:9:38:21 | Before ...++ | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:38:9:38:22 | After ...; | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:39:9:39:12 | this access | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:39:9:39:14 | After access to field x | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:39:9:39:14 | Before access to field x | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:39:9:39:14 | access to field x | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:39:9:39:17 | After access to indexer | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:39:9:39:17 | Before access to indexer | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:39:9:39:17 | access to indexer | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:39:9:39:19 | After ...++ | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:39:9:39:19 | Before ...++ | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:39:9:39:20 | After ...; | AccessorCalls.cs:35:10:35:11 | M4 | | AccessorCalls.cs:39:16:39:16 | 0 | AccessorCalls.cs:35:10:35:11 | M4 | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | M5 | -| AccessorCalls.cs:42:10:42:11 | exit M5 | AccessorCalls.cs:42:10:42:11 | M5 | -| AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:42:10:42:11 | Entry | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:42:10:42:11 | Exit | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:42:10:42:11 | Normal Exit | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:43:5:47:5 | After {...} | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:9:44:18 | After access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:9:44:18 | Before access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:9:44:32 | After ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:9:44:32 | Before ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:9:44:33 | After ...; | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:23:44:32 | After access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:23:44:32 | Before access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:45:9:45:17 | After access to property Prop | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:45:9:45:17 | Before access to property Prop | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:45:9:45:17 | access to property Prop | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:45:9:45:30 | After ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:45:9:45:30 | Before ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:45:9:45:31 | After ...; | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:45:22:45:25 | this access | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:45:22:45:30 | After access to property Prop | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:45:22:45:30 | Before access to property Prop | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:45:22:45:30 | access to property Prop | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:46:9:46:15 | After access to indexer | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:46:9:46:15 | Before access to indexer | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:46:9:46:26 | After ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:46:9:46:26 | Before ... += ... | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:46:9:46:27 | After ...; | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:20:46:23 | this access | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:46:20:46:26 | After access to indexer | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:46:20:46:26 | Before access to indexer | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:46:25:46:25 | 0 | AccessorCalls.cs:42:10:42:11 | M5 | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | M6 | -| AccessorCalls.cs:49:10:49:11 | exit M6 | AccessorCalls.cs:49:10:49:11 | M6 | -| AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:49:10:49:11 | Entry | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:49:10:49:11 | Exit | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:49:10:49:11 | Normal Exit | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:50:5:54:5 | After {...} | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:50:5:54:5 | {...} | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:14 | After access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:14 | Before access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:20 | After access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:20 | Before access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:36 | After ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:36 | Before ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:37 | After ...; | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:25:51:30 | After access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:25:51:30 | Before access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:25:51:36 | After access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:25:51:36 | Before access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:9:52:14 | After access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:9:52:14 | Before access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:9:52:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:9:52:19 | After access to property Prop | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:9:52:19 | Before access to property Prop | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:9:52:34 | After ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:9:52:34 | Before ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:9:52:35 | After ...; | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:24:52:27 | this access | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:24:52:29 | After access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:24:52:29 | Before access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:24:52:29 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:24:52:34 | After access to property Prop | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:52:24:52:34 | Before access to property Prop | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:9:53:14 | After access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:9:53:14 | Before access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:9:53:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:9:53:17 | After access to indexer | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:9:53:17 | Before access to indexer | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:9:53:30 | After ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:9:53:30 | Before ... += ... | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:9:53:31 | After ...; | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:22:53:25 | this access | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:22:53:27 | After access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:22:53:27 | Before access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:22:53:30 | After access to indexer | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:53:22:53:30 | Before access to indexer | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:53:29:53:29 | 0 | AccessorCalls.cs:49:10:49:11 | M6 | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | M7 | -| AccessorCalls.cs:56:10:56:11 | exit M7 | AccessorCalls.cs:56:10:56:11 | M7 | -| AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:56:10:56:11 | Entry | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:56:10:56:11 | Exit | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:56:10:56:11 | Normal Exit | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:57:5:59:5 | After {...} | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:57:5:59:5 | {...} | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:9:58:45 | After (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:9:58:45 | Before (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:9:58:85 | After ... = ... | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:9:58:85 | Before ... = ... | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:9:58:86 | After ...; | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:10:58:19 | After access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:10:58:19 | Before access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:22:58:30 | After access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:22:58:30 | Before access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:33:58:44 | After (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:33:58:44 | Before (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:34:58:34 | access to parameter i | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:37:58:43 | After access to indexer | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:37:58:43 | Before access to indexer | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:49:58:85 | After (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:49:58:85 | Before (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:50:58:59 | After access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:50:58:59 | Before access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:62:58:70 | After access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:62:58:70 | Before access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:62:58:70 | access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:73:58:84 | After (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:73:58:84 | Before (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:77:58:80 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:77:58:83 | After access to indexer | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:77:58:83 | Before access to indexer | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:77:58:83 | access to indexer | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:82:58:82 | 1 | AccessorCalls.cs:56:10:56:11 | M7 | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | M8 | -| AccessorCalls.cs:61:10:61:11 | exit M8 | AccessorCalls.cs:61:10:61:11 | M8 | -| AccessorCalls.cs:61:10:61:11 | exit M8 (normal) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:61:10:61:11 | Entry | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:61:10:61:11 | Exit | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:61:10:61:11 | Normal Exit | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:62:5:64:5 | After {...} | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:62:5:64:5 | {...} | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:9:63:51 | After (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:9:63:51 | Before (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:9:63:97 | After ... = ... | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:9:63:97 | Before ... = ... | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:9:63:98 | After ...; | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:10:63:15 | After access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:10:63:15 | Before access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:10:63:21 | After access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:10:63:21 | Before access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:24:63:29 | After access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:24:63:29 | Before access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:24:63:34 | After access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:24:63:34 | Before access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:37:63:50 | After (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:37:63:50 | Before (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:38:63:38 | access to parameter i | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:41:63:46 | After access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:41:63:46 | Before access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:41:63:49 | After access to indexer | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:41:63:49 | Before access to indexer | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:55:63:97 | After (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:55:63:97 | Before (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:56:63:61 | After access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:56:63:61 | Before access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:56:63:67 | After access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:56:63:67 | Before access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:70:63:73 | this access | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:70:63:75 | After access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:70:63:75 | Before access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:70:63:75 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:70:63:80 | After access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:70:63:80 | Before access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:83:63:96 | After (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:83:63:96 | Before (..., ...) | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:87:63:90 | this access | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:87:63:92 | After access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:87:63:92 | Before access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:87:63:92 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:87:63:95 | After access to indexer | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:87:63:95 | Before access to indexer | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:87:63:95 | access to indexer | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:94:63:94 | 1 | AccessorCalls.cs:61:10:61:11 | M8 | -| AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | M9 | -| AccessorCalls.cs:66:10:66:11 | exit M9 | AccessorCalls.cs:66:10:66:11 | M9 | -| AccessorCalls.cs:66:10:66:11 | exit M9 (normal) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:66:10:66:11 | Entry | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:66:10:66:11 | Exit | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:66:10:66:11 | Normal Exit | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:67:5:74:5 | After {...} | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:67:5:74:5 | {...} | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:68:9:68:22 | After ... ...; | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:68:17:68:17 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:68:17:68:21 | After dynamic d = ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:68:17:68:21 | Before dynamic d = ... | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:68:21:68:21 | access to parameter o | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:69:9:69:20 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:69:9:69:20 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:69:9:69:35 | After ... = ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:69:9:69:35 | Before ... = ... | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:69:9:69:36 | After ...; | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:69:24:69:24 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:69:24:69:35 | After dynamic access to member MaybeProp2 | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:69:24:69:35 | Before dynamic access to member MaybeProp2 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:70:9:70:9 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:70:9:70:19 | After dynamic access to member MaybeProp | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:70:9:70:19 | Before dynamic access to member MaybeProp | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:70:9:70:21 | After dynamic call to operator ++ | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:70:9:70:21 | Before dynamic call to operator ++ | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:70:9:70:22 | After ...; | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:71:9:71:20 | After dynamic access to member MaybeEvent | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:71:9:71:20 | Before dynamic access to member MaybeEvent | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:71:9:71:25 | ... += ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:71:9:71:25 | After ... += ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:71:9:71:25 | Before ... += ... | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:71:9:71:26 | After ...; | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:71:25:71:25 | access to parameter e | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:9:72:9 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:72:9:72:12 | After dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:72:9:72:12 | Before dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:72:9:72:20 | After ... += ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:72:9:72:20 | Before ... += ... | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:72:9:72:21 | After ...; | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:11:72:11 | 0 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:17:72:17 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:72:17:72:20 | After dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:72:17:72:20 | Before dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:72:19:72:19 | 1 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:9:73:44 | After (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:9:73:44 | Before (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:9:73:83 | After ... = ... | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:9:73:83 | Before ... = ... | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:9:73:84 | After ...; | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:10:73:21 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:10:73:21 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:24:73:32 | After access to property Prop | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:24:73:32 | Before access to property Prop | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:35:73:43 | After (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:35:73:43 | Before (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:36:73:36 | access to parameter i | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:39:73:39 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:39:73:42 | After dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:39:73:42 | Before dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:48:73:83 | After (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:48:73:83 | Before (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:49:73:49 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:49:73:60 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:49:73:60 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:63:73:66 | this access | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:63:73:71 | After access to property Prop | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:63:73:71 | Before access to property Prop | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:63:73:71 | access to property Prop | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:74:73:82 | After (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:74:73:82 | Before (..., ...) | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:78:73:78 | access to local variable d | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:78:73:81 | After dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | +| AccessorCalls.cs:73:78:73:81 | Before dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | 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 | After call to constructor Object | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | After call to method | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | Before call to constructor Object | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | Before call to method | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | Entry | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | Exit | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | Normal Exit | 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 | 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 | -| ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | ArrayCreation.cs:3:11:3:12 | M1 | +| ArrayCreation.cs:3:11:3:12 | Entry | ArrayCreation.cs:3:11:3:12 | M1 | +| ArrayCreation.cs:3:11:3:12 | Exit | ArrayCreation.cs:3:11:3:12 | M1 | +| ArrayCreation.cs:3:11:3:12 | Normal Exit | ArrayCreation.cs:3:11:3:12 | M1 | +| ArrayCreation.cs:3:19:3:28 | After array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | M1 | +| ArrayCreation.cs:3:19:3:28 | Before array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | M1 | | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | M1 | | ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:11:3:12 | M1 | -| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | M2 | -| ArrayCreation.cs:5:12:5:13 | exit M2 | ArrayCreation.cs:5:12:5:13 | M2 | -| ArrayCreation.cs:5:12:5:13 | exit M2 (normal) | ArrayCreation.cs:5:12:5:13 | M2 | +| ArrayCreation.cs:5:12:5:13 | Entry | ArrayCreation.cs:5:12:5:13 | M2 | +| ArrayCreation.cs:5:12:5:13 | Exit | ArrayCreation.cs:5:12:5:13 | M2 | +| ArrayCreation.cs:5:12:5:13 | Normal Exit | ArrayCreation.cs:5:12:5:13 | M2 | +| ArrayCreation.cs:5:20:5:32 | After array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | M2 | +| ArrayCreation.cs:5:20:5:32 | Before array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | M2 | | ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | M2 | | ArrayCreation.cs:5:28:5:28 | 0 | ArrayCreation.cs:5:12:5:13 | M2 | | ArrayCreation.cs:5:31:5:31 | 1 | ArrayCreation.cs:5:12:5:13 | M2 | -| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | M3 | -| ArrayCreation.cs:7:11:7:12 | exit M3 | ArrayCreation.cs:7:11:7:12 | M3 | -| ArrayCreation.cs:7:11:7:12 | exit M3 (normal) | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:7:11:7:12 | Entry | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:7:11:7:12 | Exit | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:7:11:7:12 | Normal Exit | ArrayCreation.cs:7:11:7:12 | M3 | | ArrayCreation.cs:7:19:7:36 | 2 | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:7:19:7:36 | After array creation of type Int32[] | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:7:19:7:36 | Before array creation of type Int32[] | ArrayCreation.cs:7:11:7:12 | M3 | | ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:7:29:7:36 | After { ..., ... } | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:7:29:7:36 | Before { ..., ... } | ArrayCreation.cs:7:11:7:12 | M3 | | ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:11:7:12 | M3 | | ArrayCreation.cs:7:31:7:31 | 0 | ArrayCreation.cs:7:11:7:12 | M3 | | ArrayCreation.cs:7:34:7:34 | 1 | ArrayCreation.cs:7:11:7:12 | M3 | -| ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:12:9:13 | M4 | -| ArrayCreation.cs:9:12:9:13 | exit M4 | ArrayCreation.cs:9:12:9:13 | M4 | -| ArrayCreation.cs:9:12:9:13 | exit M4 (normal) | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:12:9:13 | Entry | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:12:9:13 | Exit | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:12:9:13 | Normal Exit | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:20:9:52 | After array creation of type Int32[,] | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:20:9:52 | Before array creation of type Int32[,] | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:31:9:52 | After { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:31:9:52 | Before { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:33:9:40 | After { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:33:9:40 | Before { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:35:9:35 | 0 | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:38:9:38 | 1 | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:43:9:50 | After { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | +| ArrayCreation.cs:9:43:9:50 | Before { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:12:9:13 | M4 | | 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 | After call to constructor Object | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | After call to method | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | Before call to constructor Object | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | Before call to method | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | Entry | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | Exit | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | Normal Exit | 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 | 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 | -| Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | M1 | -| Assert.cs:7:10:7:11 | exit M1 (normal) | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:7:10:7:11 | Exceptional Exit | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:7:10:7:11 | Exit | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:7:10:7:11 | Normal Exit | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:8:5:12:5 | After {...} | Assert.cs:7:10:7:11 | M1 | | Assert.cs:8:5:12:5 | {...} | Assert.cs:7:10:7:11 | M1 | | Assert.cs:9:9:9:33 | ... ...; | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:9:9:33 | After ... ...; | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:16:9:16 | access to local variable s | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:16:9:32 | After String s = ... | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:16:9:32 | Before String s = ... | Assert.cs:7:10:7:11 | M1 | | Assert.cs:9:16:9:32 | String s = ... | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:20:9:20 | After access to parameter b [false] | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:20:9:20 | After access to parameter b [true] | Assert.cs:7:10:7:11 | M1 | | Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:7:10:7:11 | M1 | | Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:7:10:7:11 | M1 | | Assert.cs:9:24:9:27 | null | Assert.cs:7:10:7:11 | M1 | | Assert.cs:9:31:9:32 | "" | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:10:9:10:31 | Before call to method Assert | Assert.cs:7:10:7:11 | M1 | | Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:7:10:7:11 | M1 | | Assert.cs:10:9:10:32 | ...; | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:10:9:10:32 | After ...; | Assert.cs:7:10:7:11 | M1 | | Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:7:10:7:11 | M1 | | Assert.cs:10:22:10:30 | ... != ... | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:10:22:10:30 | After ... != ... | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:10:22:10:30 | Before ... != ... | Assert.cs:7:10:7:11 | M1 | | Assert.cs:10:27:10:30 | null | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:11:9:11:35 | After call to method WriteLine | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:11:9:11:35 | Before call to method WriteLine | Assert.cs:7:10:7:11 | M1 | | Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:7:10:7:11 | M1 | | Assert.cs:11:9:11:36 | ...; | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:11:9:11:36 | After ...; | Assert.cs:7:10:7:11 | M1 | | Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:11:27:11:34 | After access to property Length | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:11:27:11:34 | Before access to property Length | Assert.cs:7:10:7:11 | M1 | | Assert.cs:11:27:11:34 | access to property Length | Assert.cs:7:10:7:11 | M1 | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:14:10:14:11 | exit M2 | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:14:10:14:11 | exit M2 (normal) | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:14:10:14:11 | Exceptional Exit | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:14:10:14:11 | Exit | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:14:10:14:11 | Normal Exit | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:15:5:19:5 | After {...} | Assert.cs:14:10:14:11 | M2 | | Assert.cs:15:5:19:5 | {...} | Assert.cs:14:10:14:11 | M2 | | Assert.cs:16:9:16:33 | ... ...; | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:9:16:33 | After ... ...; | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:16:16:16 | access to local variable s | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:16:16:32 | After String s = ... | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:16:16:32 | Before String s = ... | Assert.cs:14:10:14:11 | M2 | | Assert.cs:16:16:16:32 | String s = ... | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:20:16:20 | After access to parameter b [false] | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:20:16:20 | After access to parameter b [true] | Assert.cs:14:10:14:11 | M2 | | Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:14:10:14:11 | M2 | | Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:14:10:14:11 | M2 | | Assert.cs:16:24:16:27 | null | Assert.cs:14:10:14:11 | M2 | | Assert.cs:16:31:16:32 | "" | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:17:9:17:24 | Before call to method IsNull | Assert.cs:14:10:14:11 | M2 | | Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:14:10:14:11 | M2 | | Assert.cs:17:9:17:25 | ...; | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:17:9:17:25 | After ...; | Assert.cs:14:10:14:11 | M2 | | Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:18:9:18:35 | After call to method WriteLine | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:18:9:18:35 | Before call to method WriteLine | Assert.cs:14:10:14:11 | M2 | | Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:14:10:14:11 | M2 | | Assert.cs:18:9:18:36 | ...; | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:18:9:18:36 | After ...; | Assert.cs:14:10:14:11 | M2 | | Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:18:27:18:34 | After access to property Length | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:18:27:18:34 | Before access to property Length | Assert.cs:14:10:14:11 | M2 | | Assert.cs:18:27:18:34 | access to property Length | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:21:10:21:11 | exit M3 | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:21:10:21:11 | exit M3 (normal) | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:21:10:21:11 | Exceptional Exit | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:21:10:21:11 | Exit | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:21:10:21:11 | Normal Exit | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:22:5:26:5 | After {...} | Assert.cs:21:10:21:11 | M3 | | Assert.cs:22:5:26:5 | {...} | Assert.cs:21:10:21:11 | M3 | | Assert.cs:23:9:23:33 | ... ...; | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:9:23:33 | After ... ...; | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:16:23:16 | access to local variable s | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:16:23:32 | After String s = ... | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:16:23:32 | Before String s = ... | Assert.cs:21:10:21:11 | M3 | | Assert.cs:23:16:23:32 | String s = ... | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:20:23:20 | After access to parameter b [false] | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:20:23:20 | After access to parameter b [true] | Assert.cs:21:10:21:11 | M3 | | Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:21:10:21:11 | M3 | | Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:21:10:21:11 | M3 | | Assert.cs:23:24:23:27 | null | Assert.cs:21:10:21:11 | M3 | | Assert.cs:23:31:23:32 | "" | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:24:9:24:27 | Before call to method IsNotNull | Assert.cs:21:10:21:11 | M3 | | Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:21:10:21:11 | M3 | | Assert.cs:24:9:24:28 | ...; | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:24:9:24:28 | After ...; | Assert.cs:21:10:21:11 | M3 | | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:25:9:25:35 | After call to method WriteLine | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:25:9:25:35 | Before call to method WriteLine | Assert.cs:21:10:21:11 | M3 | | Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:21:10:21:11 | M3 | | Assert.cs:25:9:25:36 | ...; | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:25:9:25:36 | After ...; | Assert.cs:21:10:21:11 | M3 | | Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:25:27:25:34 | After access to property Length | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:25:27:25:34 | Before access to property Length | Assert.cs:21:10:21:11 | M3 | | Assert.cs:25:27:25:34 | access to property Length | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:28:10:28:11 | exit M4 | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:28:10:28:11 | exit M4 (normal) | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:28:10:28:11 | Exceptional Exit | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:28:10:28:11 | Exit | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:28:10:28:11 | Normal Exit | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:29:5:33:5 | After {...} | Assert.cs:28:10:28:11 | M4 | | Assert.cs:29:5:33:5 | {...} | Assert.cs:28:10:28:11 | M4 | | Assert.cs:30:9:30:33 | ... ...; | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:9:30:33 | After ... ...; | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:16:30:16 | access to local variable s | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:16:30:32 | After String s = ... | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:16:30:32 | Before String s = ... | Assert.cs:28:10:28:11 | M4 | | Assert.cs:30:16:30:32 | String s = ... | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:20:30:20 | After access to parameter b [false] | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:20:30:20 | After access to parameter b [true] | Assert.cs:28:10:28:11 | M4 | | Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:28:10:28:11 | M4 | | Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:28:10:28:11 | M4 | | Assert.cs:30:24:30:27 | null | Assert.cs:28:10:28:11 | M4 | | Assert.cs:30:31:30:32 | "" | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:31:9:31:32 | Before call to method IsTrue | Assert.cs:28:10:28:11 | M4 | | Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:28:10:28:11 | M4 | | Assert.cs:31:9:31:33 | ...; | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:31:9:31:33 | After ...; | Assert.cs:28:10:28:11 | M4 | | Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:28:10:28:11 | M4 | | Assert.cs:31:23:31:31 | ... == ... | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:31:23:31:31 | After ... == ... | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:31:23:31:31 | Before ... == ... | Assert.cs:28:10:28:11 | M4 | | Assert.cs:31:28:31:31 | null | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:32:9:32:35 | After call to method WriteLine | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:32:9:32:35 | Before call to method WriteLine | Assert.cs:28:10:28:11 | M4 | | Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:28:10:28:11 | M4 | | Assert.cs:32:9:32:36 | ...; | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:32:9:32:36 | After ...; | Assert.cs:28:10:28:11 | M4 | | Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:32:27:32:34 | After access to property Length | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:32:27:32:34 | Before access to property Length | Assert.cs:28:10:28:11 | M4 | | Assert.cs:32:27:32:34 | access to property Length | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:35:10:35:11 | exit M5 | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:35:10:35:11 | exit M5 (normal) | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:35:10:35:11 | Exceptional Exit | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:35:10:35:11 | Exit | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:35:10:35:11 | Normal Exit | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:36:5:40:5 | After {...} | Assert.cs:35:10:35:11 | M5 | | Assert.cs:36:5:40:5 | {...} | Assert.cs:35:10:35:11 | M5 | | Assert.cs:37:9:37:33 | ... ...; | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:9:37:33 | After ... ...; | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:16:37:16 | access to local variable s | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:16:37:32 | After String s = ... | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:16:37:32 | Before String s = ... | Assert.cs:35:10:35:11 | M5 | | Assert.cs:37:16:37:32 | String s = ... | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:20:37:20 | After access to parameter b [false] | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:20:37:20 | After access to parameter b [true] | Assert.cs:35:10:35:11 | M5 | | Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:35:10:35:11 | M5 | | Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:35:10:35:11 | M5 | | Assert.cs:37:24:37:27 | null | Assert.cs:35:10:35:11 | M5 | | Assert.cs:37:31:37:32 | "" | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:38:9:38:32 | Before call to method IsTrue | Assert.cs:35:10:35:11 | M5 | | Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:35:10:35:11 | M5 | | Assert.cs:38:9:38:33 | ...; | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:38:9:38:33 | After ...; | Assert.cs:35:10:35:11 | M5 | | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:35:10:35:11 | M5 | | Assert.cs:38:23:38:31 | ... != ... | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:38:23:38:31 | After ... != ... | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:38:23:38:31 | Before ... != ... | Assert.cs:35:10:35:11 | M5 | | Assert.cs:38:28:38:31 | null | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:39:9:39:35 | After call to method WriteLine | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:39:9:39:35 | Before call to method WriteLine | Assert.cs:35:10:35:11 | M5 | | Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:35:10:35:11 | M5 | | Assert.cs:39:9:39:36 | ...; | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:39:9:39:36 | After ...; | Assert.cs:35:10:35:11 | M5 | | Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:39:27:39:34 | After access to property Length | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:39:27:39:34 | Before access to property Length | Assert.cs:35:10:35:11 | M5 | | Assert.cs:39:27:39:34 | access to property Length | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:42:10:42:11 | exit M6 | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:42:10:42:11 | exit M6 (normal) | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:42:10:42:11 | Exceptional Exit | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:42:10:42:11 | Exit | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:42:10:42:11 | Normal Exit | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:43:5:47:5 | After {...} | Assert.cs:42:10:42:11 | M6 | | Assert.cs:43:5:47:5 | {...} | Assert.cs:42:10:42:11 | M6 | | Assert.cs:44:9:44:33 | ... ...; | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:9:44:33 | After ... ...; | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:16:44:16 | access to local variable s | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:16:44:32 | After String s = ... | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:16:44:32 | Before String s = ... | Assert.cs:42:10:42:11 | M6 | | Assert.cs:44:16:44:32 | String s = ... | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:20:44:20 | After access to parameter b [false] | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:20:44:20 | After access to parameter b [true] | Assert.cs:42:10:42:11 | M6 | | Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:42:10:42:11 | M6 | | Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:42:10:42:11 | M6 | | Assert.cs:44:24:44:27 | null | Assert.cs:42:10:42:11 | M6 | | Assert.cs:44:31:44:32 | "" | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:45:9:45:33 | Before call to method IsFalse | Assert.cs:42:10:42:11 | M6 | | Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:42:10:42:11 | M6 | | Assert.cs:45:9:45:34 | ...; | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:45:9:45:34 | After ...; | Assert.cs:42:10:42:11 | M6 | | Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:42:10:42:11 | M6 | | Assert.cs:45:24:45:32 | ... != ... | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:45:24:45:32 | After ... != ... | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:45:24:45:32 | Before ... != ... | Assert.cs:42:10:42:11 | M6 | | Assert.cs:45:29:45:32 | null | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:46:9:46:35 | After call to method WriteLine | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:46:9:46:35 | Before call to method WriteLine | Assert.cs:42:10:42:11 | M6 | | Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:42:10:42:11 | M6 | | Assert.cs:46:9:46:36 | ...; | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:46:9:46:36 | After ...; | Assert.cs:42:10:42:11 | M6 | | Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:46:27:46:34 | After access to property Length | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:46:27:46:34 | Before access to property Length | Assert.cs:42:10:42:11 | M6 | | Assert.cs:46:27:46:34 | access to property Length | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:49:10:49:11 | exit M7 | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:49:10:49:11 | exit M7 (normal) | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:49:10:49:11 | Exceptional Exit | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:49:10:49:11 | Exit | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:49:10:49:11 | Normal Exit | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:50:5:54:5 | After {...} | Assert.cs:49:10:49:11 | M7 | | Assert.cs:50:5:54:5 | {...} | Assert.cs:49:10:49:11 | M7 | | Assert.cs:51:9:51:33 | ... ...; | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:9:51:33 | After ... ...; | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:16:51:16 | access to local variable s | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:16:51:32 | After String s = ... | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:16:51:32 | Before String s = ... | Assert.cs:49:10:49:11 | M7 | | Assert.cs:51:16:51:32 | String s = ... | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:20:51:20 | After access to parameter b [false] | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:20:51:20 | After access to parameter b [true] | Assert.cs:49:10:49:11 | M7 | | Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:49:10:49:11 | M7 | | Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:49:10:49:11 | M7 | | Assert.cs:51:24:51:27 | null | Assert.cs:49:10:49:11 | M7 | | Assert.cs:51:31:51:32 | "" | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:52:9:52:33 | Before call to method IsFalse | Assert.cs:49:10:49:11 | M7 | | Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:49:10:49:11 | M7 | | Assert.cs:52:9:52:34 | ...; | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:52:9:52:34 | After ...; | Assert.cs:49:10:49:11 | M7 | | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:49:10:49:11 | M7 | | Assert.cs:52:24:52:32 | ... == ... | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:52:24:52:32 | After ... == ... | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:52:24:52:32 | Before ... == ... | Assert.cs:49:10:49:11 | M7 | | Assert.cs:52:29:52:32 | null | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:53:9:53:35 | After call to method WriteLine | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:53:9:53:35 | Before call to method WriteLine | Assert.cs:49:10:49:11 | M7 | | Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:49:10:49:11 | M7 | | Assert.cs:53:9:53:36 | ...; | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:53:9:53:36 | After ...; | Assert.cs:49:10:49:11 | M7 | | Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:53:27:53:34 | After access to property Length | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:53:27:53:34 | Before access to property Length | Assert.cs:49:10:49:11 | M7 | | Assert.cs:53:27:53:34 | access to property Length | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:56:10:56:11 | exit M8 (normal) | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:56:10:56:11 | Exceptional Exit | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:56:10:56:11 | Exit | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:56:10:56:11 | Normal Exit | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:57:5:61:5 | After {...} | Assert.cs:56:10:56:11 | M8 | | Assert.cs:57:5:61:5 | {...} | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:9:58:33 | ... ...; | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:9:58:33 | After ... ...; | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:16:58:16 | access to local variable s | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:16:58:32 | After String s = ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:16:58:32 | Before String s = ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:16:58:32 | String s = ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:20 | After access to parameter b [false] | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:20 | After access to parameter b [true] | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:24:58:27 | null | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:31:58:32 | "" | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:9:59:37 | Before call to method IsTrue | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:9:59:38 | ...; | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:9:59:38 | After ...; | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:23:59:31 | ... != ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:31 | After ... != ... [false] | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:31 | After ... != ... [true] | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:31 | Before ... != ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:23:59:36 | ... && ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:28:59:31 | null | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:60:9:60:35 | After call to method WriteLine | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:60:9:60:35 | Before call to method WriteLine | Assert.cs:56:10:56:11 | M8 | | Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | M8 | | Assert.cs:60:9:60:36 | ...; | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:60:9:60:36 | After ...; | Assert.cs:56:10:56:11 | M8 | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:60:27:60:34 | After access to property Length | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:60:27:60:34 | Before access to property Length | Assert.cs:56:10:56:11 | M8 | | Assert.cs:60:27:60:34 | access to property Length | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:63:10:63:11 | exit M9 (normal) | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:63:10:63:11 | Exceptional Exit | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:63:10:63:11 | Exit | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:63:10:63:11 | Normal Exit | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:64:5:68:5 | After {...} | Assert.cs:63:10:63:11 | M9 | | Assert.cs:64:5:68:5 | {...} | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:9:65:33 | ... ...; | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:9:65:33 | After ... ...; | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:16:65:16 | access to local variable s | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:16:65:32 | After String s = ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:16:65:32 | Before String s = ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:16:65:32 | String s = ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:20 | After access to parameter b [false] | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:20 | After access to parameter b [true] | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:24:65:27 | null | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:31:65:32 | "" | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:9:66:38 | Before call to method IsFalse | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:9:66:39 | ...; | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:9:66:39 | After ...; | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:24:66:32 | ... == ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:32 | After ... == ... [false] | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:32 | After ... == ... [true] | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:32 | Before ... == ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:29:66:32 | null | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:67:9:67:35 | After call to method WriteLine | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:67:9:67:35 | Before call to method WriteLine | Assert.cs:63:10:63:11 | M9 | | Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | M9 | | Assert.cs:67:9:67:36 | ...; | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:67:9:67:36 | After ...; | Assert.cs:63:10:63:11 | M9 | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:67:27:67:34 | After access to property Length | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:67:27:67:34 | Before access to property Length | Assert.cs:63:10:63:11 | M9 | | Assert.cs:67:27:67:34 | access to property Length | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:70:10:70:12 | exit M10 (normal) | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:70:10:70:12 | Exceptional Exit | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:70:10:70:12 | Exit | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:70:10:70:12 | Normal Exit | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:71:5:75:5 | After {...} | Assert.cs:70:10:70:12 | M10 | | Assert.cs:71:5:75:5 | {...} | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:9:72:33 | ... ...; | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:9:72:33 | After ... ...; | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:16:72:16 | access to local variable s | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:16:72:32 | After String s = ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:16:72:32 | Before String s = ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:16:72:32 | String s = ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:20 | After access to parameter b [false] | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:20 | After access to parameter b [true] | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:24:72:27 | null | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:31:72:32 | "" | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:9:73:37 | Before call to method IsTrue | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:9:73:38 | ...; | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:9:73:38 | After ...; | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:23:73:31 | ... == ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:31 | After ... == ... [false] | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:31 | After ... == ... [true] | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:31 | Before ... == ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:23:73:36 | ... && ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:28:73:31 | null | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:74:9:74:35 | After call to method WriteLine | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:74:9:74:35 | Before call to method WriteLine | Assert.cs:70:10:70:12 | M10 | | Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | M10 | | Assert.cs:74:9:74:36 | ...; | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:74:9:74:36 | After ...; | Assert.cs:70:10:70:12 | M10 | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:74:27:74:34 | After access to property Length | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:74:27:74:34 | Before access to property Length | Assert.cs:70:10:70:12 | M10 | | Assert.cs:74:27:74:34 | access to property Length | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:77:10:77:12 | exit M11 (normal) | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:77:10:77:12 | Exceptional Exit | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:77:10:77:12 | Exit | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:77:10:77:12 | Normal Exit | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:78:5:82:5 | After {...} | Assert.cs:77:10:77:12 | M11 | | Assert.cs:78:5:82:5 | {...} | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:9:79:33 | ... ...; | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:9:79:33 | After ... ...; | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:16:79:16 | access to local variable s | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:16:79:32 | After String s = ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:16:79:32 | Before String s = ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:16:79:32 | String s = ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:20 | After access to parameter b [false] | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:20 | After access to parameter b [true] | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:24:79:27 | null | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:31:79:32 | "" | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:9:80:38 | Before call to method IsFalse | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:9:80:39 | ...; | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:9:80:39 | After ...; | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:24:80:32 | ... != ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:32 | After ... != ... [false] | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:32 | After ... != ... [true] | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:32 | Before ... != ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:29:80:32 | null | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:81:9:81:35 | After call to method WriteLine | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:81:9:81:35 | Before call to method WriteLine | Assert.cs:77:10:77:12 | M11 | | Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | M11 | | Assert.cs:81:9:81:36 | ...; | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:81:9:81:36 | After ...; | Assert.cs:77:10:77:12 | M11 | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:81:27:81:34 | After access to property Length | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:81:27:81:34 | Before access to property Length | Assert.cs:77:10:77:12 | M11 | | Assert.cs:81:27:81:34 | access to property Length | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:84:10:84:12 | exit M12 (normal) | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:84:10:84:12 | Exceptional Exit | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:84:10:84:12 | Exit | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:84:10:84:12 | Normal Exit | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:85:5:129:5 | After {...} | Assert.cs:84:10:84:12 | M12 | | Assert.cs:85:5:129:5 | {...} | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:9:86:33 | ... ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:9:86:33 | After ... ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:16:86:16 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:16:86:32 | After String s = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:16:86:32 | Before String s = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:16:86:32 | String s = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:20 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:20 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:24:86:27 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:31:86:32 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:31 | Before call to method Assert | Assert.cs:84:10:84:12 | M12 | | Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:84:10:84:12 | M12 | | Assert.cs:87:9:87:32 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:32 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:87:22:87:30 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:22:87:30 | After ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:22:87:30 | Before ... != ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:87:27:87:30 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:9:88:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:9:88:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:88:9:88:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:9:88:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:27:88:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:27:88:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:88:27:88:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:9:90:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:90:9:90:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:9:90:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:9:90:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:90:9:90:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:9:90:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:90:17:90:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:90:24:90:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:24 | Before call to method IsNull | Assert.cs:84:10:84:12 | M12 | | Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:84:10:84:12 | M12 | | Assert.cs:91:9:91:25 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:25 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:9:92:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:9:92:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:92:9:92:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:9:92:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:27:92:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:27:92:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:92:27:92:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:9:94:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:94:9:94:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:9:94:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:9:94:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:94:9:94:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:9:94:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:94:17:94:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:94:24:94:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:27 | Before call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | | Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | | Assert.cs:95:9:95:28 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:28 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:9:96:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:9:96:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:96:9:96:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:9:96:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:27:96:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:27:96:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:96:27:96:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:9:98:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:98:9:98:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:9:98:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:9:98:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:98:9:98:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:9:98:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:98:17:98:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:98:24:98:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:32 | Before call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:99:9:99:33 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:33 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:99:23:99:31 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:23:99:31 | After ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:23:99:31 | Before ... == ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:99:28:99:31 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:9:100:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:9:100:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:100:9:100:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:9:100:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:27:100:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:27:100:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:100:27:100:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:9:102:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:102:9:102:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:9:102:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:9:102:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:102:9:102:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:9:102:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:102:17:102:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:102:24:102:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:32 | Before call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:103:9:103:33 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:33 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:103:23:103:31 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:23:103:31 | After ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:23:103:31 | Before ... != ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:103:28:103:31 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:9:104:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:9:104:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:104:9:104:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:9:104:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:27:104:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:27:104:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:104:27:104:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:9:106:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:106:9:106:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:9:106:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:9:106:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:106:9:106:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:9:106:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:106:17:106:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:106:24:106:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:33 | Before call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:107:9:107:34 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:34 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:107:24:107:32 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:24:107:32 | After ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:24:107:32 | Before ... != ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:107:29:107:32 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:9:108:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:9:108:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:108:9:108:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:9:108:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:27:108:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:27:108:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:108:27:108:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:9:110:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:110:9:110:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:9:110:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:9:110:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:110:9:110:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:9:110:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:110:17:110:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:110:24:110:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:33 | Before call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:111:9:111:34 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:34 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:111:24:111:32 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:24:111:32 | After ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:24:111:32 | Before ... == ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:111:29:111:32 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:9:112:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:9:112:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:112:9:112:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:9:112:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:27:112:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:27:112:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:112:27:112:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:9:114:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:114:9:114:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:9:114:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:9:114:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:114:9:114:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:9:114:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:114:17:114:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:114:24:114:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:37 | Before call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:115:9:115:38 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:38 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:115:23:115:31 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:31 | After ... != ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:31 | After ... != ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:31 | Before ... != ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:115:23:115:36 | ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:115:28:115:31 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:9:116:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:9:116:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:116:9:116:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:9:116:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:27:116:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:27:116:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:116:27:116:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:9:118:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:118:9:118:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:9:118:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:9:118:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:118:9:118:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:9:118:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:118:17:118:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:118:24:118:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:39 | Before call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:9:119:40 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:40 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:24:119:32 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:32 | After ... == ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:32 | After ... == ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:32 | Before ... == ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:29:119:32 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:37:119:38 | !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:37:119:38 | After !... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:9:120:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:9:120:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:120:9:120:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:9:120:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:27:120:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:27:120:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:120:27:120:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:9:122:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:122:9:122:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:9:122:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:9:122:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:122:9:122:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:9:122:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:122:17:122:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:122:24:122:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:37 | Before call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:84:10:84:12 | M12 | | Assert.cs:123:9:123:38 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:38 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:123:23:123:31 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:31 | After ... == ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:31 | After ... == ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:31 | Before ... == ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:123:23:123:36 | ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:123:28:123:31 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:9:124:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:9:124:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:124:9:124:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:9:124:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:27:124:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:27:124:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:124:27:124:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:9:126:9 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:126:9:126:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:9:126:25 | After ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:9:126:25 | Before ... = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:126:9:126:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:9:126:26 | After ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | | Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:126:17:126:20 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:126:24:126:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:9:127:39 | Before call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:9:127:40 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:9:127:40 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:24:127:32 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:32 | After ... != ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:32 | After ... != ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:32 | Before ... != ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:29:127:32 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:37:127:38 | !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:37:127:38 | After !... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:128:9:128:35 | After call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:128:9:128:35 | Before call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:128:9:128:36 | After ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:128:27:128:34 | After access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:128:27:128:34 | Before access to property Length | Assert.cs:84:10:84:12 | M12 | | Assert.cs:128:27:128:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | AssertTrueFalse | -| Assert.cs:131:18:131:32 | exit AssertTrueFalse | Assert.cs:131:18:131:32 | AssertTrueFalse | -| Assert.cs:131:18:131:32 | exit AssertTrueFalse (normal) | Assert.cs:131:18:131:32 | AssertTrueFalse | +| Assert.cs:131:18:131:32 | Entry | Assert.cs:131:18:131:32 | AssertTrueFalse | +| Assert.cs:131:18:131:32 | Exit | Assert.cs:131:18:131:32 | AssertTrueFalse | +| Assert.cs:131:18:131:32 | Normal Exit | Assert.cs:131:18:131:32 | AssertTrueFalse | | Assert.cs:135:5:136:5 | {...} | Assert.cs:131:18:131:32 | AssertTrueFalse | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | M13 | -| Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | M13 | -| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | M13 | -| Assert.cs:138:10:138:12 | exit M13 (normal) | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:138:10:138:12 | Exceptional Exit | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:138:10:138:12 | Exit | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:138:10:138:12 | Normal Exit | Assert.cs:138:10:138:12 | M13 | | Assert.cs:139:5:142:5 | {...} | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:140:9:140:35 | Before call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 | | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 | | Assert.cs:140:9:140:35 | this access | Assert.cs:138:10:138:12 | M13 | | Assert.cs:140:9:140:36 | ...; | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:140:9:140:36 | After ...; | Assert.cs:138:10:138:12 | M13 | | Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:138:10:138:12 | M13 | | Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:138:10:138:12 | M13 | | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:141:9:141:15 | Before return ...; | 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 | After call to constructor Object | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | After call to method | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | Before call to constructor Object | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | Before call to method | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | Entry | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | Exit | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | Normal Exit | 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 | 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 | -| Assignments.cs:3:10:3:10 | exit M (normal) | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:3:10:3:10 | Entry | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:3:10:3:10 | Exit | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:3:10:3:10 | Normal Exit | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:4:5:15:5 | After {...} | Assignments.cs:3:10:3:10 | M | | Assignments.cs:4:5:15:5 | {...} | Assignments.cs:3:10:3:10 | M | | Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:5:9:5:18 | After ... ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:5:13:5:13 | access to local variable x | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:5:13:5:17 | After Int32 x = ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:5:13:5:17 | Before Int32 x = ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:5:17:5:17 | 0 | Assignments.cs:3:10:3:10 | M | | Assignments.cs:6:9:6:9 | access to local variable x | Assignments.cs:3:10:3:10 | M | | Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:6:9:6:14 | After ... += ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:6:9:6:14 | Before ... += ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:6:9:6:15 | ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:6:9:6:15 | After ...; | Assignments.cs:3:10:3:10 | M | | Assignments.cs:6:14:6:14 | 1 | Assignments.cs:3:10:3:10 | M | | Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:8:9:8:22 | After ... ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:8:17:8:17 | access to local variable d | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:8:17:8:21 | After dynamic d = ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:8:17:8:21 | Before dynamic d = ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:8:21:8:21 | 0 | Assignments.cs:3:10:3:10 | M | | Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:8:21:8:21 | After (...) ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:8:21:8:21 | Before (...) ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:3:10:3:10 | M | | Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:9:9:9:14 | After ... -= ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:9:9:9:14 | Before ... -= ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:9:9:9:15 | ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:9:9:9:15 | After ...; | Assignments.cs:3:10:3:10 | M | | Assignments.cs:9:14:9:14 | 2 | Assignments.cs:3:10:3:10 | M | | Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:11:9:11:34 | After ... ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:11:13:11:13 | access to local variable a | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:11:13:11:33 | After Assignments a = ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:11:13:11:33 | Before Assignments a = ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:11:17:11:33 | After object creation of type Assignments | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:11:17:11:33 | Before object creation of type Assignments | Assignments.cs:3:10:3:10 | M | | Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:3:10:3:10 | M | | Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:3:10:3:10 | M | | Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:12:9:12:17 | After ... += ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:12:9:12:17 | Before ... += ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:12:9:12:18 | ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:12:9:12:18 | After ...; | Assignments.cs:3:10:3:10 | M | | Assignments.cs:12:14:12:17 | this access | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:14:9:14:13 | After access to event Event | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:14:9:14:13 | Before access to event Event | Assignments.cs:3:10:3:10 | M | | Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:3:10:3:10 | M | | Assignments.cs:14:9:14:13 | this access | Assignments.cs:3:10:3:10 | M | | Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:14:9:14:35 | After ... += ... | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:14:9:14:35 | Before ... += ... | Assignments.cs:3:10:3:10 | M | | Assignments.cs:14:9:14:36 | ...; | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:14:9:14:36 | After ...; | Assignments.cs:3:10:3:10 | M | | Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:3:10:3:10 | M | -| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | (...) => ... | -| Assignments.cs:14:18:14:35 | exit (...) => ... | Assignments.cs:14:18:14:35 | (...) => ... | -| Assignments.cs:14:18:14:35 | exit (...) => ... (normal) | Assignments.cs:14:18:14:35 | (...) => ... | +| Assignments.cs:14:18:14:35 | Entry | Assignments.cs:14:18:14:35 | (...) => ... | +| Assignments.cs:14:18:14:35 | Exit | Assignments.cs:14:18:14:35 | (...) => ... | +| Assignments.cs:14:18:14:35 | Normal Exit | Assignments.cs:14:18:14:35 | (...) => ... | | Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:18:14:35 | (...) => ... | -| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | + | -| Assignments.cs:17:40:17:40 | exit + | Assignments.cs:17:40:17:40 | + | -| Assignments.cs:17:40:17:40 | exit + (normal) | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:17:40:17:40 | Entry | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:17:40:17:40 | Exit | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:17:40:17:40 | Normal Exit | Assignments.cs:17:40:17:40 | + | | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:19:9:19:17 | Before return ...; | Assignments.cs:17:40:17:40 | + | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | + | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:17:40:17:40 | + | -| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | -| Assignments.cs:27:10:27:23 | exit SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | -| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:27:10:27:23 | Entry | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:27:10:27:23 | Exit | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:27:10:27:23 | Normal Exit | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:28:5:30:5 | After {...} | Assignments.cs:27:10:27:23 | SetParamSingle | | Assignments.cs:28:5:30:5 | {...} | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:9 | access to parameter x | Assignments.cs:27:10:27:23 | SetParamSingle | | Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:14 | After ... = ... | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:14 | Before ... = ... | Assignments.cs:27:10:27:23 | SetParamSingle | | Assignments.cs:29:9:29:15 | ...; | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:15 | After ...; | Assignments.cs:27:10:27:23 | SetParamSingle | | Assignments.cs:29:13:29:14 | 42 | Assignments.cs:27:10:27:23 | SetParamSingle | -| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | -| Assignments.cs:32:10:32:22 | exit SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | -| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:32:10:32:22 | Entry | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:32:10:32:22 | Exit | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:32:10:32:22 | Normal Exit | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:33:5:36:5 | After {...} | Assignments.cs:32:10:32:22 | SetParamMulti | | Assignments.cs:33:5:36:5 | {...} | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:9 | access to parameter x | Assignments.cs:32:10:32:22 | SetParamMulti | | Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:14 | After ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:14 | Before ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | | Assignments.cs:34:9:34:15 | ...; | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:15 | After ...; | Assignments.cs:32:10:32:22 | SetParamMulti | | Assignments.cs:34:13:34:14 | 42 | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:9 | access to parameter y | Assignments.cs:32:10:32:22 | SetParamMulti | | Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:19 | After ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:19 | Before ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | | Assignments.cs:35:9:35:20 | ...; | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:20 | After ...; | Assignments.cs:32:10:32:22 | SetParamMulti | | Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:32:10:32:22 | SetParamMulti | -| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | M2 | -| Assignments.cs:38:10:38:11 | exit M2 | Assignments.cs:38:10:38:11 | M2 | -| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:38:10:38:11 | Entry | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:38:10:38:11 | Exit | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:38:10:38:11 | Normal Exit | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:39:5:45:5 | After {...} | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:40:9:40:15 | After ... ...; | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:30 | After call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:30 | Before call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:41:9:41:30 | this access | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:41:9:41:31 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:31 | After ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:28:41:29 | access to local variable x1 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:36 | After call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:36 | Before call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:42:9:42:36 | this access | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:42:9:42:37 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:37 | After ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:28:42:35 | After access to field IntField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:28:42:35 | Before access to field IntField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:42:28:42:35 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:55 | After call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:55 | Before call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:43:9:43:55 | this access | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:43:9:43:56 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:56 | After ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:31:43:31 | Int32 y | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:43:34:43:37 | null | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:44:43:54 | After access to field StringField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:44:43:54 | Before access to field StringField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:43:44:43:54 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:58 | After call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:58 | Before call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:9:44:58 | this access | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:9:44:59 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:59 | After ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:27:44:34 | After access to field IntField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:27:44:34 | Before access to field IntField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:27:44:34 | this access | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:37:44:40 | null | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:47:44:57 | After access to field StringField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:47:44:57 | Before access to field StringField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:38:10:38:11 | M2 | | Assignments.cs:44:47:44:57 | this access | Assignments.cs:38:10:38:11 | M2 | +| BreakInTry.cs:1:7:1:16 | After call to constructor Object | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | After call to method | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | Before call to constructor Object | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | Before call to method | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | Entry | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | Exit | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | Normal Exit | 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 | 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 | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:3:10:3:11 | Exit | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:3:10:3:11 | Normal Exit | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:4:5:18:5 | After {...} | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:5:9:17:9 | After try {...} ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:6:9:12:9 | After {...} | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:8:13:11:13 | After {...} | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:8:13:11:13 | {...} | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:9:17:10:26 | After if (...) ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:9:21:9:23 | access to local variable arg | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:9:21:9:31 | After ... == ... [false] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:9:21:9:31 | After ... == ... [true] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:9:21:9:31 | Before ... == ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:9:28:9:31 | null | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:10:21:10:26 | Before break; | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:14:9:17:9 | After {...} | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:15:17:15:20 | access to parameter args | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:15:17:15:28 | After ... == ... [false] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:15:17:15:28 | After ... == ... [true] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:15:17:15:28 | Before ... == ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:15:25:15:28 | null | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:3:10:3:11 | M1 | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:20:10:20:11 | exit M2 | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:20:10:20:11 | exit M2 (normal) | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:20:10:20:11 | Exit | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:20:10:20:11 | Normal Exit | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:21:5:36:5 | After {...} | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:23:9:34:9 | After {...} | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:24:13:33:13 | After try {...} ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:25:13:28:13 | After {...} | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:25:13:28:13 | {...} | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:26:17:27:26 | After if (...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:26:21:26:23 | access to local variable arg | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:26:21:26:31 | After ... == ... [false] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:26:21:26:31 | After ... == ... [true] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:26:21:26:31 | Before ... == ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:27:21:27:26 | Before break; | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:30:13:33:13 | After {...} | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:31:21:31:32 | After ... == ... [false] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:31:21:31:32 | After ... == ... [true] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:31:21:31:32 | Before ... == ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:38:10:38:11 | exit M3 | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:38:10:38:11 | Exit | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:39:5:54:5 | After {...} | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:40:9:52:9 | After try {...} ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:41:9:44:9 | After {...} | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:41:9:44:9 | {...} | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:42:13:43:23 | After if (...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:42:17:42:20 | access to parameter args | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:42:17:42:28 | After ... == ... [false] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:42:17:42:28 | After ... == ... [true] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:42:17:42:28 | Before ... == ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:43:17:43:23 | Before return ...; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:46:9:52:9 | After {...} | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:48:13:51:13 | After {...} | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:49:17:50:26 | After if (...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:49:21:49:31 | After ... == ... [false] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:49:21:49:31 | After ... == ... [true] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:49:21:49:31 | Before ... == ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:50:21:50:26 | Before break; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:56:10:56:11 | exit M4 | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:56:10:56:11 | Exit | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:57:5:71:5 | After {...} | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:58:9:70:9 | After try {...} ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:59:9:62:9 | After {...} | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:59:9:62:9 | {...} | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:60:13:61:23 | After if (...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:60:17:60:20 | access to parameter args | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:60:17:60:28 | After ... == ... [false] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:60:17:60:28 | After ... == ... [true] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:60:17:60:28 | Before ... == ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:61:17:61:23 | Before return ...; | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:64:9:70:9 | After {...} | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:66:13:69:13 | After {...} | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:67:17:68:26 | After if (...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:67:21:67:31 | After ... == ... [false] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:67:21:67:31 | After ... == ... [true] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:67:21:67:31 | Before ... == ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:68:21:68:26 | Before break; | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | M4 | +| CompileTimeOperators.cs:3:7:3:26 | After call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | After call to method | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | Before call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | Before call to method | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | Entry | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | Exit | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | Normal Exit | 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 | 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 | -| CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | CompileTimeOperators.cs:5:9:5:15 | Default | +| CompileTimeOperators.cs:5:9:5:15 | Entry | CompileTimeOperators.cs:5:9:5:15 | Default | +| CompileTimeOperators.cs:5:9:5:15 | Exit | CompileTimeOperators.cs:5:9:5:15 | Default | +| CompileTimeOperators.cs:5:9:5:15 | Normal Exit | CompileTimeOperators.cs:5:9:5:15 | Default | | CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:5:9:5:15 | Default | +| CompileTimeOperators.cs:7:9:7:28 | Before return ...; | CompileTimeOperators.cs:5:9:5:15 | Default | | CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:5:9:5:15 | Default | | CompileTimeOperators.cs:7:16:7:27 | default(...) | CompileTimeOperators.cs:5:9:5:15 | Default | -| CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:10:9:10:14 | Sizeof | -| CompileTimeOperators.cs:10:9:10:14 | exit Sizeof | CompileTimeOperators.cs:10:9:10:14 | Sizeof | -| CompileTimeOperators.cs:10:9:10:14 | exit Sizeof (normal) | CompileTimeOperators.cs:10:9:10:14 | Sizeof | +| CompileTimeOperators.cs:10:9:10:14 | Entry | CompileTimeOperators.cs:10:9:10:14 | Sizeof | +| CompileTimeOperators.cs:10:9:10:14 | Exit | CompileTimeOperators.cs:10:9:10:14 | Sizeof | +| CompileTimeOperators.cs:10:9:10:14 | Normal Exit | CompileTimeOperators.cs:10:9:10:14 | Sizeof | | CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:10:9:10:14 | Sizeof | +| CompileTimeOperators.cs:12:9:12:27 | Before return ...; | CompileTimeOperators.cs:10:9:10:14 | Sizeof | | CompileTimeOperators.cs:12:9:12:27 | return ...; | CompileTimeOperators.cs:10:9:10:14 | Sizeof | | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | CompileTimeOperators.cs:10:9:10:14 | Sizeof | -| CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:15:10:15:15 | Typeof | -| CompileTimeOperators.cs:15:10:15:15 | exit Typeof | CompileTimeOperators.cs:15:10:15:15 | Typeof | -| CompileTimeOperators.cs:15:10:15:15 | exit Typeof (normal) | CompileTimeOperators.cs:15:10:15:15 | Typeof | +| CompileTimeOperators.cs:15:10:15:15 | Entry | CompileTimeOperators.cs:15:10:15:15 | Typeof | +| CompileTimeOperators.cs:15:10:15:15 | Exit | CompileTimeOperators.cs:15:10:15:15 | Typeof | +| CompileTimeOperators.cs:15:10:15:15 | Normal Exit | CompileTimeOperators.cs:15:10:15:15 | Typeof | | CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:15:10:15:15 | Typeof | +| CompileTimeOperators.cs:17:9:17:27 | Before return ...; | CompileTimeOperators.cs:15:10:15:15 | Typeof | | CompileTimeOperators.cs:17:9:17:27 | return ...; | CompileTimeOperators.cs:15:10:15:15 | Typeof | | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | CompileTimeOperators.cs:15:10:15:15 | Typeof | -| CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | Nameof | -| CompileTimeOperators.cs:20:12:20:17 | exit Nameof | CompileTimeOperators.cs:20:12:20:17 | Nameof | -| CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | CompileTimeOperators.cs:20:12:20:17 | Nameof | +| CompileTimeOperators.cs:20:12:20:17 | Entry | CompileTimeOperators.cs:20:12:20:17 | Nameof | +| CompileTimeOperators.cs:20:12:20:17 | Exit | CompileTimeOperators.cs:20:12:20:17 | Nameof | +| CompileTimeOperators.cs:20:12:20:17 | Normal Exit | CompileTimeOperators.cs:20:12:20:17 | Nameof | | CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:20:12:20:17 | Nameof | +| CompileTimeOperators.cs:22:9:22:25 | Before return ...; | CompileTimeOperators.cs:20:12:20:17 | Nameof | | 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 | After call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | After call to method | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | Before call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | Before call to method | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | Entry | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | Exit | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | Normal Exit | 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 | 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 | -| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | Exit | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | Normal Exit | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:29:5:41:5 | After {...} | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:32:13:32:21 | Before goto ...; | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:13:37:40 | After call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:13:37:40 | Before call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:13:37:41 | After ...; | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:39:9:39:33 | After call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:39:9:39:33 | Before call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:39:9:39:34 | After ...; | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:40:14:40:37 | After call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:40:14:40:37 | Before call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:40:14:40:38 | After ...; | 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 | After call to constructor Object | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | After call to method | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | Before call to constructor Object | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | Before call to method | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | Entry | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | Exit | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | Normal Exit | 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 | 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 | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:12:3:13 | Exit | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:12:3:13 | Normal Exit | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | ConditionalAccess.cs:3:12:3:13 | M1 | | ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:38 | Before call to method ToString | ConditionalAccess.cs:3:12:3:13 | M1 | | ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:49 | Before call to method ToLower | ConditionalAccess.cs:3:12:3:13 | M1 | | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:12:3:13 | M1 | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:10:5:11 | M2 | -| ConditionalAccess.cs:5:10:5:11 | exit M2 | ConditionalAccess.cs:5:10:5:11 | M2 | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:10:5:11 | Exit | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:10:5:11 | Normal Exit | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | ConditionalAccess.cs:5:10:5:11 | M2 | | ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:26:5:34 | Before access to property Length | ConditionalAccess.cs:5:10:5:11 | M2 | | ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:10:5:11 | M2 | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:10:7:11 | Exit | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:10:7:11 | Normal Exit | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:38:7:55 | Before access to property Length | ConditionalAccess.cs:7:10:7:11 | M3 | | ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:10:7:11 | M3 | | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:10:7:11 | M3 | | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | ConditionalAccess.cs:7:10:7:11 | M3 | | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:9:9:10 | M4 | -| ConditionalAccess.cs:9:9:9:10 | exit M4 | ConditionalAccess.cs:9:9:9:10 | M4 | -| ConditionalAccess.cs:9:9:9:10 | exit M4 (normal) | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:9:9:10 | Exit | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:9:9:10 | Normal Exit | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | ConditionalAccess.cs:9:9:9:10 | M4 | | ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:33 | Before access to property Length | ConditionalAccess.cs:9:9:9:10 | M4 | | ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:9:9:10 | M4 | | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:9:9:10 | M4 | | ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:9:9:10 | M4 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:11:9:11:10 | Exit | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:21 | Before access to property Length | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:25 | Before ... > ... | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:13:25:13:25 | (...) ... | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:25:13:25 | After (...) ... | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:25:13:25 | Before (...) ... | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:14:13:14:21 | Before return ...; | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:14:13:14:21 | return ...; | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:16:13:16:21 | Before return ...; | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:16:13:16:21 | return ...; | ConditionalAccess.cs:11:9:11:10 | M5 | | ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:12:19:13 | M6 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 | ConditionalAccess.cs:19:12:19:13 | M6 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:12:19:13 | Exit | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:12:19:13 | Normal Exit | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | ConditionalAccess.cs:19:12:19:13 | M6 | | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:40:19:60 | Before call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | M6 | | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | M6 | | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:12:19:13 | M6 | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:21:10:21:11 | M7 | -| ConditionalAccess.cs:21:10:21:11 | exit M7 | ConditionalAccess.cs:21:10:21:11 | M7 | -| ConditionalAccess.cs:21:10:21:11 | exit M7 (normal) | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:21:10:21:11 | Exit | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:21:10:21:11 | Normal Exit | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:22:5:26:5 | After {...} | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:22:5:26:5 | {...} | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:9:23:39 | After ... ...; | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:13:23:13 | access to local variable j | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:13:23:38 | After Nullable j = ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:13:23:38 | Before Nullable j = ... | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:17:23:38 | Before access to property Length | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:17:23:38 | access to property Length | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:18:23:29 | Before (...) ... | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:23:26:23:29 | null | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:9:24:38 | After ... ...; | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:13:24:13 | access to local variable s | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:13:24:37 | After String s = ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:13:24:37 | Before String s = ... | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:17:24:37 | Before call to method ToString | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:18:24:24 | Before (...) ... | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:24:24:24:24 | access to parameter i | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:9:25:9 | access to local variable s | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:9:25:32 | After ... = ... | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:9:25:32 | Before ... = ... | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:9:25:33 | After ...; | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:13:25:14 | After "" [null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:13:25:32 | Before call to method CommaJoinWith | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | ConditionalAccess.cs:21:10:21:11 | M7 | | ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:21:10:21:11 | M7 | -| ConditionalAccess.cs:30:10:30:12 | enter Out | ConditionalAccess.cs:30:10:30:12 | Out | -| ConditionalAccess.cs:30:10:30:12 | exit Out | ConditionalAccess.cs:30:10:30:12 | Out | -| ConditionalAccess.cs:30:10:30:12 | exit Out (normal) | ConditionalAccess.cs:30:10:30:12 | Out | +| ConditionalAccess.cs:30:10:30:12 | Entry | ConditionalAccess.cs:30:10:30:12 | Out | +| ConditionalAccess.cs:30:10:30:12 | Exit | ConditionalAccess.cs:30:10:30:12 | Out | +| ConditionalAccess.cs:30:10:30:12 | Normal Exit | ConditionalAccess.cs:30:10:30:12 | Out | +| ConditionalAccess.cs:30:28:30:28 | access to parameter i | ConditionalAccess.cs:30:10:30:12 | Out | | ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:10:30:12 | Out | +| ConditionalAccess.cs:30:28:30:32 | After ... = ... | ConditionalAccess.cs:30:10:30:12 | Out | +| ConditionalAccess.cs:30:28:30:32 | Before ... = ... | ConditionalAccess.cs:30:10:30:12 | Out | | ConditionalAccess.cs:30:32:30:32 | 0 | ConditionalAccess.cs:30:10:30:12 | Out | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:32:10:32:11 | exit M8 | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:32:10:32:11 | Exit | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:32:10:32:11 | Normal Exit | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:33:5:36:5 | After {...} | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:34:9:34:9 | access to parameter i | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:34:9:34:13 | After ... = ... | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:34:9:34:13 | Before ... = ... | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:34:9:34:14 | After ...; | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:34:13:34:13 | 0 | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:12 | Before access to property Prop | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:24 | Before call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | -| ConditionalAccess.cs:42:9:42:11 | exit get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | -| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:35:9:35:25 | After ...; | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:23:35:23 | access to parameter i | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:42:9:42:11 | Entry | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:9:42:11 | Exit | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:9:42:11 | Normal Exit | ConditionalAccess.cs:42:9:42:11 | get_Item | | ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:15:42:26 | Before return ...; | ConditionalAccess.cs:42:9:42:11 | get_Item | | ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | get_Item | | ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:9:42:11 | get_Item | -| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | -| ConditionalAccess.cs:43:9:43:11 | exit set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | -| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:9:43:11 | Entry | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:9:43:11 | Exit | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:9:43:11 | Normal Exit | ConditionalAccess.cs:43:9:43:11 | set_Item | | ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | set_Item | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:46:10:46:11 | exit M9 | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | Exit | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | Normal Exit | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:47:5:55:5 | After {...} | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:20 | After access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:20 | Before access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:26 | After ...; | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:12:48:25 | Before ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:22 | After access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:22 | Before access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:33 | After ...; | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:12:49:32 | Before ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:14 | After access to indexer | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:14 | Before access to indexer | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:24 | After ...; | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:12:50:23 | Before ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | Before access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:26 | After access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:26 | Before access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:32 | After ...; | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:18:51:31 | Before ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | Before access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:28 | After access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:28 | Before access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:39 | After ...; | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:18:52:38 | Before ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | After access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | Before access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:26 | After ...; | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:12:53:25 | Before ... -= ... | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | After access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | Before access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:30 | After ...; | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:12:54:29 | Before ... += ... | ConditionalAccess.cs:46:10:46:11 | M9 | | ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | -| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | -| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | Entry | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | Exit | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | Normal Exit | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:78 | After ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:78 | Before ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:83 | After ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:83 | Before ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| Conditions.cs:1:7:1:16 | After call to constructor Object | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | After call to method | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | Before call to constructor Object | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | Before call to method | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | Entry | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | Exit | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | Normal Exit | 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 | 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 | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:3:10:3:19 | Exit | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:3:10:3:19 | Normal Exit | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:4:5:9:5 | After {...} | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:5:13:5:15 | After access to parameter inc [false] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:5:13:5:15 | After access to parameter inc [true] | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:6:13:6:15 | After ...++ | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:6:13:6:15 | Before ...++ | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:6:13:6:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:6:13:6:16 | After ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:13:7:16 | !... | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:13:7:16 | After !... [false] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:13:7:16 | After !... [true] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:8:13:8:15 | After ...-- | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:8:13:8:15 | Before ...-- | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:11:9:11:10 | exit M1 | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:11:9:11:10 | exit M1 (normal) | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:8:13:8:16 | After ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:11:9:11:10 | Exit | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:11:9:11:10 | Normal Exit | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:12:5:20:5 | {...} | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:13:9:13:18 | After ... ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:13:13:13:17 | After Int32 x = ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:13:13:13:17 | Before Int32 x = ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:14:13:14:13 | After access to parameter b [false] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:14:13:14:13 | After access to parameter b [true] | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:15:13:15:15 | After ...++ | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:15:13:15:15 | Before ...++ | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:15:13:15:16 | ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:15:13:15:16 | After ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:13:16:17 | After ... > ... [false] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:13:16:17 | Before ... > ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:16:17:16:17 | 0 | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:17:17:18 | !... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:17:17:18 | After !... [false] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:17:17:18 | After !... [true] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:18:17:18:19 | After ...-- | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:18:17:18:19 | Before ...-- | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:18:17:18:20 | After ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:19:9:19:17 | Before return ...; | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:22:9:22:10 | exit M2 | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:22:9:22:10 | exit M2 (normal) | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:22:9:22:10 | Exit | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:22:9:22:10 | Normal Exit | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:23:5:31:5 | {...} | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:24:9:24:18 | After ... ...; | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:24:13:24:17 | After Int32 x = ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:24:13:24:17 | Before Int32 x = ... | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:24:17:24:17 | 0 | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:27:17:27:19 | After ...++ | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:27:17:27:19 | Before ...++ | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:27:17:27:20 | ...; | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:27:17:27:20 | After ...; | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:29:13:29:15 | After ...++ | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:29:13:29:15 | Before ...++ | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:29:13:29:16 | After ...; | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:30:9:30:17 | Before return ...; | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:33:9:33:10 | exit M3 | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:33:9:33:10 | exit M3 (normal) | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:33:9:33:10 | Exit | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:33:9:33:10 | Normal Exit | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:34:5:44:5 | {...} | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:35:9:35:18 | After ... ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:35:13:35:17 | After Int32 x = ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:35:13:35:17 | Before Int32 x = ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:35:17:35:17 | 0 | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:36:9:36:23 | After ... ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:36:13:36:22 | After Boolean b2 = ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:36:13:36:22 | Before Boolean b2 = ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:36:18:36:22 | false | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:38:13:38:19 | After ... = ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:38:13:38:19 | Before ... = ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:38:13:38:20 | After ...; | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:40:13:40:15 | After ...++ | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:40:13:40:15 | Before ...++ | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:40:13:40:16 | ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:40:13:40:16 | After ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:42:13:42:15 | After ...++ | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:42:13:42:15 | Before ...++ | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:42:13:42:16 | After ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:43:9:43:17 | Before return ...; | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:46:9:46:10 | exit M4 | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:46:9:46:10 | exit M4 (normal) | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:46:9:46:10 | Exit | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:46:9:46:10 | Normal Exit | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:47:5:55:5 | {...} | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:48:9:48:18 | After ... ...; | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:48:13:48:17 | After Int32 y = ... | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:48:13:48:17 | Before Int32 y = ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:9:53:9 | After while (...) ... | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:18 | After ...-- | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:18 | Before ...-- | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:22 | Before ... > ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:50:9:53:9 | After {...} | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:51:17:51:17 | After access to parameter b [false] | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:51:17:51:17 | After access to parameter b [true] | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:52:17:52:19 | After ...++ | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:52:17:52:19 | Before ...++ | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:52:17:52:20 | ...; | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:52:17:52:20 | After ...; | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:54:9:54:17 | Before return ...; | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:57:9:57:10 | exit M5 | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:57:9:57:10 | exit M5 (normal) | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:57:9:57:10 | Exit | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:57:9:57:10 | Normal Exit | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:58:5:68:5 | {...} | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:59:9:59:18 | After ... ...; | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:59:13:59:17 | After Int32 y = ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:59:13:59:17 | Before Int32 y = ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:9:64:9 | After while (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:18 | After ...-- | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:18 | Before ...-- | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:22 | Before ... > ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:61:9:64:9 | After {...} | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:62:17:62:17 | After access to parameter b [false] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:62:17:62:17 | After access to parameter b [true] | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:63:17:63:19 | After ...++ | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:63:17:63:19 | Before ...++ | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:63:17:63:20 | ...; | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:63:17:63:20 | After ...; | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:65:13:65:13 | After access to parameter b [false] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:65:13:65:13 | After access to parameter b [true] | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:66:13:66:15 | After ...++ | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:66:13:66:15 | Before ...++ | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:66:13:66:16 | After ...; | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:67:9:67:17 | Before return ...; | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:70:9:70:10 | exit M6 | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:70:9:70:10 | exit M6 (normal) | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:70:9:70:10 | Exit | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:70:9:70:10 | Normal Exit | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:71:5:84:5 | {...} | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:9:72:30 | After ... ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:13:72:29 | After Boolean b = ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:13:72:29 | Before Boolean b = ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:17:72:25 | After access to property Length | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:17:72:25 | Before access to property Length | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:17:72:29 | After ... > ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:72:17:72:29 | Before ... > ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:72:29:72:29 | 0 | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:73:9:73:18 | After ... ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:73:13:73:17 | After Int32 x = ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:73:13:73:17 | Before Int32 x = ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:73:17:73:17 | 0 | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:75:9:80:9 | After {...} | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:76:17:76:17 | After access to local variable b [false] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:76:17:76:17 | After access to local variable b [true] | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:77:17:77:19 | After ...++ | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:77:17:77:19 | Before ...++ | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:77:17:77:20 | ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:77:17:77:20 | After ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:78:17:78:21 | After ... > ... [false] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:78:17:78:21 | After ... > ... [true] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:78:17:78:21 | Before ... > ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:78:21:78:21 | 0 | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:79:17:79:25 | After ... = ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:79:17:79:25 | Before ... = ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:79:17:79:26 | ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:79:17:79:26 | After ...; | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:79:21:79:25 | false | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:81:13:81:13 | After access to local variable b [false] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:81:13:81:13 | After access to local variable b [true] | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:82:13:82:15 | After ...++ | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:82:13:82:15 | Before ...++ | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:82:13:82:16 | ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:82:13:82:16 | After ...; | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:83:9:83:17 | Before return ...; | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:86:9:86:10 | exit M7 | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:86:9:86:10 | exit M7 (normal) | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:86:9:86:10 | Exit | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:86:9:86:10 | Normal Exit | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:87:5:100:5 | {...} | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:9:88:30 | After ... ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:13:88:29 | After Boolean b = ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:13:88:29 | Before Boolean b = ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:17:88:25 | After access to property Length | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:17:88:25 | Before access to property Length | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:17:88:29 | After ... > ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:88:17:88:29 | Before ... > ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:88:29:88:29 | 0 | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:89:9:89:18 | After ... ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:89:13:89:17 | After Int32 x = ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:89:13:89:17 | Before Int32 x = ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:89:17:89:17 | 0 | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:91:9:98:9 | After {...} | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:92:17:92:17 | After access to local variable b [false] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:92:17:92:17 | After access to local variable b [true] | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:93:17:93:19 | After ...++ | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:93:17:93:19 | Before ...++ | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:93:17:93:20 | ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:93:17:93:20 | After ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:94:17:94:21 | After ... > ... [false] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:94:17:94:21 | After ... > ... [true] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:94:17:94:21 | Before ... > ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:94:21:94:21 | 0 | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:95:17:95:25 | After ... = ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:95:17:95:25 | Before ... = ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:95:17:95:26 | ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:95:17:95:26 | After ...; | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:95:21:95:25 | false | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:96:17:96:17 | After access to local variable b [false] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:96:17:96:17 | After access to local variable b [true] | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:97:17:97:19 | After ...++ | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:97:17:97:19 | Before ...++ | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:97:17:97:20 | ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:97:17:97:20 | After ...; | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:99:9:99:17 | Before return ...; | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:102:12:102:13 | exit M8 | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:102:12:102:13 | exit M8 (normal) | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:102:12:102:13 | Exit | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:102:12:102:13 | Normal Exit | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:103:5:111:5 | {...} | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:104:9:104:29 | After ... ...; | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:104:13:104:28 | After String x = ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:104:13:104:28 | Before String x = ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:104:17:104:28 | After call to method ToString | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:104:17:104:28 | Before call to method ToString | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:105:13:105:13 | After access to parameter b [false] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:105:13:105:13 | After access to parameter b [true] | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:19 | After ... += ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:19 | Before ... += ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:106:13:106:20 | ...; | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:20 | After ...; | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:106:18:106:19 | "" | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:20 | After access to property Length | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:20 | Before access to property Length | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:24 | After ... > ... [false] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:24 | Before ... > ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:107:24:107:24 | 0 | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:17:108:18 | !... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:17:108:18 | After !... [false] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:17:108:18 | After !... [true] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:109:17:109:23 | After ... += ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:109:17:109:23 | Before ... += ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:109:17:109:24 | After ...; | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:22:109:23 | "" | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:110:9:110:17 | Before return ...; | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:113:10:113:11 | exit M9 | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:113:10:113:11 | Exit | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:113:10:113:11 | Normal Exit | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:114:5:124:5 | After {...} | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:114:5:124:5 | {...} | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:115:9:115:24 | After ... ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:115:16:115:16 | access to local variable s | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:115:16:115:23 | After String s = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:115:16:115:23 | Before String s = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:115:20:115:23 | null | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:9:123:9 | After for (...;...;...) ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:9:123:9 | [LoopHeader] for (...;...;...) ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:18:116:18 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:18:116:22 | After Int32 i = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:18:116:22 | Before Int32 i = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:22:116:22 | 0 | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:29:116:32 | access to parameter args | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:29:116:39 | After access to property Length | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:29:116:39 | Before access to property Length | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:42:116:44 | After ...++ | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:42:116:44 | Before ...++ | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:117:9:123:9 | After {...} | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:13:118:44 | After ... ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:17:118:20 | access to local variable last | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:17:118:43 | After Boolean last = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:17:118:43 | Before Boolean last = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:24:118:43 | After ... == ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:24:118:43 | Before ... == ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:29:118:32 | access to parameter args | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:29:118:39 | After access to property Length | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:29:118:39 | Before access to property Length | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:29:118:39 | access to property Length | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:29:118:43 | After ... - ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:118:29:118:43 | Before ... - ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:17:119:21 | !... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:17:119:21 | After !... [false] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:17:119:21 | After !... [true] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:17:120:17 | access to local variable s | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:17:120:22 | After ... = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:17:120:22 | Before ... = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:120:17:120:23 | ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:17:120:23 | After ...; | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:120:21:120:22 | "" | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:17:121:20 | After access to local variable last [false] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:17:121:20 | After access to local variable last [true] | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:122:17:122:17 | access to local variable s | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:122:17:122:24 | After ... = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:122:17:122:24 | Before ... = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:122:17:122:25 | After ...; | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:122:21:122:24 | null | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:131:16:131:19 | After true [true] | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:131:16:131:19 | true | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:132:9:140:9 | After {...} | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:133:13:139:13 | After if (...) ... | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:133:17:133:22 | After access to field Field1 [false] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:133:17:133:22 | Before access to field Field1 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:133:17:133:22 | this access | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:134:13:139:13 | After {...} | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:134:13:139:13 | {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:17:138:17 | After if (...) ... | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:21:135:26 | After access to field Field2 [false] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:21:135:26 | After access to field Field2 [true] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:21:135:26 | Before access to field Field2 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:135:21:135:26 | this access | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:136:17:138:17 | After {...} | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:136:17:138:17 | {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:26 | After access to field Field1 | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:26 | Before access to field Field1 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:137:21:137:26 | this access | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:37 | After call to method ToString | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:37 | Before call to method ToString | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:137:21:137:38 | ...; | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:143:10:143:12 | exit M11 | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:137:21:137:38 | After ...; | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:143:10:143:12 | Exit | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:143:10:143:12 | Normal Exit | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:144:5:150:5 | After {...} | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:9:145:30 | After ... ...; | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:13:145:13 | access to local variable s | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:13:145:29 | After String s = ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:13:145:29 | Before String s = ... | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:17 | After access to parameter b [false] | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:17 | After access to parameter b [true] | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:21:145:23 | "a" | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:27:145:29 | "b" | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:13:146:13 | After access to parameter b [false] | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:13:146:13 | After access to parameter b [true] | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:147:13:147:48 | After call to method WriteLine | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:147:13:147:48 | Before call to method WriteLine | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:147:13:147:49 | After ...; | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:147:38:147:47 | After $"..." | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:147:38:147:47 | Before $"..." | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:147:44:147:46 | After {...} | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:147:44:147:46 | Before {...} | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:44:147:46 | {...} | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:45:147:45 | access to local variable s | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:149:13:149:48 | After call to method WriteLine | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:149:13:149:48 | Before call to method WriteLine | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:149:13:149:49 | ...; | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:149:13:149:49 | After ...; | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:149:38:149:47 | After $"..." | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:149:38:149:47 | Before $"..." | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:149:44:149:46 | After {...} | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:149:44:149:46 | Before {...} | Conditions.cs:143:10:143:12 | M11 | | 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 | After call to constructor Object | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | After call to method | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | Before call to constructor Object | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | Before call to method | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | Entry | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | Exit | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | Normal Exit | 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 | 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 | -| ExitMethods.cs:8:10:8:11 | exit M1 (normal) | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:8:10:8:11 | Entry | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:8:10:8:11 | Exit | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:8:10:8:11 | Normal Exit | ExitMethods.cs:8:10:8:11 | M1 | | ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:10:9:10:24 | After call to method ErrorMaybe | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:10:9:10:24 | Before call to method ErrorMaybe | ExitMethods.cs:8:10:8:11 | M1 | | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:8:10:8:11 | M1 | | ExitMethods.cs:10:9:10:25 | ...; | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:10:9:10:25 | After ...; | ExitMethods.cs:8:10:8:11 | M1 | | ExitMethods.cs:10:20:10:23 | true | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:11:9:11:15 | Before return ...; | ExitMethods.cs:8:10:8:11 | M1 | | ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:8:10:8:11 | M1 | -| ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:14:10:14:11 | M2 | -| ExitMethods.cs:14:10:14:11 | exit M2 | ExitMethods.cs:14:10:14:11 | M2 | -| ExitMethods.cs:14:10:14:11 | exit M2 (normal) | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:14:10:14:11 | Entry | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:14:10:14:11 | Exit | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:14:10:14:11 | Normal Exit | ExitMethods.cs:14:10:14:11 | M2 | | ExitMethods.cs:15:5:18:5 | {...} | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:16:9:16:25 | After call to method ErrorMaybe | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:16:9:16:25 | Before call to method ErrorMaybe | ExitMethods.cs:14:10:14:11 | M2 | | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | ExitMethods.cs:14:10:14:11 | M2 | | ExitMethods.cs:16:9:16:26 | ...; | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:16:9:16:26 | After ...; | ExitMethods.cs:14:10:14:11 | M2 | | ExitMethods.cs:16:20:16:24 | false | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:17:9:17:15 | Before return ...; | ExitMethods.cs:14:10:14:11 | M2 | | ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:14:10:14:11 | M2 | -| ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:20:10:20:11 | M3 | -| ExitMethods.cs:20:10:20:11 | exit M3 | ExitMethods.cs:20:10:20:11 | M3 | -| ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | ExitMethods.cs:20:10:20:11 | M3 | +| ExitMethods.cs:20:10:20:11 | Entry | ExitMethods.cs:20:10:20:11 | M3 | +| ExitMethods.cs:20:10:20:11 | Exceptional Exit | ExitMethods.cs:20:10:20:11 | M3 | +| ExitMethods.cs:20:10:20:11 | Exit | ExitMethods.cs:20:10:20:11 | M3 | | ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:20:10:20:11 | M3 | +| ExitMethods.cs:22:9:22:25 | Before call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | M3 | | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | M3 | | ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:20:10:20:11 | M3 | | ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:20:10:20:11 | M3 | -| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:26:10:26:11 | M4 | -| ExitMethods.cs:26:10:26:11 | exit M4 | ExitMethods.cs:26:10:26:11 | M4 | -| ExitMethods.cs:26:10:26:11 | exit M4 (abnormal) | ExitMethods.cs:26:10:26:11 | M4 | +| ExitMethods.cs:26:10:26:11 | Entry | ExitMethods.cs:26:10:26:11 | M4 | +| ExitMethods.cs:26:10:26:11 | Exceptional Exit | ExitMethods.cs:26:10:26:11 | M4 | +| ExitMethods.cs:26:10:26:11 | Exit | ExitMethods.cs:26:10:26:11 | M4 | | ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:26:10:26:11 | M4 | +| ExitMethods.cs:28:9:28:14 | Before call to method Exit | ExitMethods.cs:26:10:26:11 | M4 | | ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:26:10:26:11 | M4 | | ExitMethods.cs:28:9:28:14 | this access | ExitMethods.cs:26:10:26:11 | M4 | | ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:26:10:26:11 | M4 | -| ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | M5 | -| ExitMethods.cs:32:10:32:11 | exit M5 | ExitMethods.cs:32:10:32:11 | M5 | -| ExitMethods.cs:32:10:32:11 | exit M5 (abnormal) | ExitMethods.cs:32:10:32:11 | M5 | +| ExitMethods.cs:32:10:32:11 | Entry | ExitMethods.cs:32:10:32:11 | M5 | +| ExitMethods.cs:32:10:32:11 | Exceptional Exit | ExitMethods.cs:32:10:32:11 | M5 | +| ExitMethods.cs:32:10:32:11 | Exit | ExitMethods.cs:32:10:32:11 | M5 | | ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:32:10:32:11 | M5 | +| ExitMethods.cs:34:9:34:25 | Before call to method ApplicationExit | ExitMethods.cs:32:10:32:11 | M5 | | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:32:10:32:11 | M5 | | ExitMethods.cs:34:9:34:25 | this access | ExitMethods.cs:32:10:32:11 | M5 | | ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:32:10:32:11 | M5 | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:38:10:38:11 | exit M6 | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:38:10:38:11 | Exceptional Exit | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:38:10:38:11 | Exit | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:42:13:42:30 | Before call to method ErrorAlways | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:46:13:46:19 | Before return ...; | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:50:13:50:19 | Before return ...; | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | M7 | -| ExitMethods.cs:54:10:54:11 | exit M7 | ExitMethods.cs:54:10:54:11 | M7 | -| ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | ExitMethods.cs:54:10:54:11 | M7 | +| ExitMethods.cs:54:10:54:11 | Entry | ExitMethods.cs:54:10:54:11 | M7 | +| ExitMethods.cs:54:10:54:11 | Exceptional Exit | ExitMethods.cs:54:10:54:11 | M7 | +| ExitMethods.cs:54:10:54:11 | Exit | ExitMethods.cs:54:10:54:11 | M7 | | ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:54:10:54:11 | M7 | +| ExitMethods.cs:56:9:56:22 | Before call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | M7 | | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | M7 | | ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:54:10:54:11 | M7 | -| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | M8 | -| ExitMethods.cs:60:10:60:11 | exit M8 | ExitMethods.cs:60:10:60:11 | M8 | -| ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | ExitMethods.cs:60:10:60:11 | M8 | +| ExitMethods.cs:60:10:60:11 | Entry | ExitMethods.cs:60:10:60:11 | M8 | +| ExitMethods.cs:60:10:60:11 | Exceptional Exit | ExitMethods.cs:60:10:60:11 | M8 | +| ExitMethods.cs:60:10:60:11 | Exit | ExitMethods.cs:60:10:60:11 | M8 | | ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:60:10:60:11 | M8 | +| ExitMethods.cs:62:9:62:22 | Before call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | M8 | | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | M8 | | ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:60:10:60:11 | M8 | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:66:17:66:26 | Exceptional Exit | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:66:17:66:26 | Exit | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:66:17:66:26 | Normal Exit | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:67:5:70:5 | After {...} | ExitMethods.cs:66:17:66:26 | ErrorMaybe | | ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:68:9:69:34 | After if (...) ... | ExitMethods.cs:66:17:66:26 | ErrorMaybe | | ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | ExitMethods.cs:66:17:66:26 | ErrorMaybe | | ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:69:13:69:34 | Before throw ...; | ExitMethods.cs:66:17:66:26 | ErrorMaybe | | ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:69:19:69:33 | After object creation of type Exception | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:69:19:69:33 | Before object creation of type Exception | ExitMethods.cs:66:17:66:26 | ErrorMaybe | | ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:72:17:72:27 | ErrorAlways | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways | ExitMethods.cs:72:17:72:27 | ErrorAlways | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:72:17:72:27 | Exceptional Exit | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:72:17:72:27 | Exit | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:73:5:78:5 | {...} | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:75:13:75:34 | Before throw ...; | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:75:19:75:33 | After object creation of type Exception | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:75:19:75:33 | Before object creation of type Exception | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:77:13:77:45 | Before throw ...; | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:77:19:77:44 | After object creation of type ArgumentException | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:77:19:77:44 | Before object creation of type ArgumentException | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:72:17:72:27 | ErrorAlways | | ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:72:17:72:27 | ErrorAlways | -| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | -| ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | -| ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | +| ExitMethods.cs:80:17:80:28 | Entry | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | +| ExitMethods.cs:80:17:80:28 | Exceptional Exit | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | +| ExitMethods.cs:80:17:80:28 | Exit | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | | ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | +| ExitMethods.cs:82:9:82:30 | Before throw ...; | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | | ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | +| ExitMethods.cs:82:15:82:29 | After object creation of type Exception | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | +| ExitMethods.cs:82:15:82:29 | Before object creation of type Exception | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | | ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | -| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | -| ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | -| ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | +| ExitMethods.cs:85:17:85:28 | Entry | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | +| ExitMethods.cs:85:17:85:28 | Exceptional Exit | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | +| ExitMethods.cs:85:17:85:28 | Exit | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | +| ExitMethods.cs:85:35:85:55 | Before throw ... | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | | ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | +| ExitMethods.cs:85:41:85:55 | After object creation of type Exception | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | +| ExitMethods.cs:85:41:85:55 | Before object creation of type Exception | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | | ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | -| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:87:10:87:13 | Exit | -| ExitMethods.cs:87:10:87:13 | exit Exit | ExitMethods.cs:87:10:87:13 | Exit | -| ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | ExitMethods.cs:87:10:87:13 | Exit | +| ExitMethods.cs:87:10:87:13 | Entry | ExitMethods.cs:87:10:87:13 | Exit | +| ExitMethods.cs:87:10:87:13 | Exceptional Exit | ExitMethods.cs:87:10:87:13 | Exit | +| ExitMethods.cs:87:10:87:13 | Exit | ExitMethods.cs:87:10:87:13 | Exit | | ExitMethods.cs:88:5:90:5 | {...} | ExitMethods.cs:87:10:87:13 | Exit | +| ExitMethods.cs:89:9:89:27 | Before call to method Exit | ExitMethods.cs:87:10:87:13 | Exit | | ExitMethods.cs:89:9:89:27 | call to method Exit | ExitMethods.cs:87:10:87:13 | Exit | | ExitMethods.cs:89:9:89:28 | ...; | ExitMethods.cs:87:10:87:13 | Exit | | ExitMethods.cs:89:26:89:26 | 0 | ExitMethods.cs:87:10:87:13 | Exit | -| ExitMethods.cs:92:10:92:18 | enter ExitInTry | ExitMethods.cs:92:10:92:18 | ExitInTry | -| ExitMethods.cs:92:10:92:18 | exit ExitInTry | ExitMethods.cs:92:10:92:18 | ExitInTry | -| ExitMethods.cs:92:10:92:18 | exit ExitInTry (abnormal) | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:92:10:92:18 | Exceptional Exit | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:92:10:92:18 | Exit | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:92:10:92:18 | Normal Exit | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:93:5:103:5 | After {...} | ExitMethods.cs:92:10:92:18 | ExitInTry | | ExitMethods.cs:93:5:103:5 | {...} | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:92:10:92:18 | ExitInTry | | ExitMethods.cs:94:9:102:9 | try {...} ... | ExitMethods.cs:92:10:92:18 | ExitInTry | | ExitMethods.cs:95:9:97:9 | {...} | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:96:13:96:18 | Before call to method Exit | ExitMethods.cs:92:10:92:18 | ExitInTry | | ExitMethods.cs:96:13:96:18 | call to method Exit | ExitMethods.cs:92:10:92:18 | ExitInTry | | ExitMethods.cs:96:13:96:18 | this access | ExitMethods.cs:92:10:92:18 | ExitInTry | | ExitMethods.cs:96:13:96:19 | ...; | ExitMethods.cs:92:10:92:18 | ExitInTry | -| ExitMethods.cs:105:10:105:24 | enter ApplicationExit | ExitMethods.cs:105:10:105:24 | ApplicationExit | -| ExitMethods.cs:105:10:105:24 | exit ApplicationExit | ExitMethods.cs:105:10:105:24 | ApplicationExit | -| ExitMethods.cs:105:10:105:24 | exit ApplicationExit (abnormal) | ExitMethods.cs:105:10:105:24 | ApplicationExit | +| ExitMethods.cs:99:9:102:9 | After {...} | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:99:9:102:9 | {...} | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:101:13:101:40 | After call to method WriteLine | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:101:13:101:40 | Before call to method WriteLine | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:101:13:101:40 | call to method WriteLine | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:101:13:101:41 | ...; | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:101:13:101:41 | After ...; | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:101:38:101:39 | "" | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:105:10:105:24 | Entry | ExitMethods.cs:105:10:105:24 | ApplicationExit | +| ExitMethods.cs:105:10:105:24 | Exceptional Exit | ExitMethods.cs:105:10:105:24 | ApplicationExit | +| ExitMethods.cs:105:10:105:24 | Exit | ExitMethods.cs:105:10:105:24 | ApplicationExit | | ExitMethods.cs:106:5:108:5 | {...} | ExitMethods.cs:105:10:105:24 | ApplicationExit | +| ExitMethods.cs:107:9:107:47 | Before call to method Exit | ExitMethods.cs:105:10:105:24 | ApplicationExit | | ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:105:10:105:24 | ApplicationExit | | ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:105:10:105:24 | ApplicationExit | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr (normal) | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:110:13:110:21 | Exceptional Exit | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:110:13:110:21 | Exit | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:110:13:110:21 | Normal Exit | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:9:112:77 | Before return ...; | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:16:112:25 | After ... != ... [false] | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:16:112:25 | Before ... != ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:16:112:76 | After ... ? ... : ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:25:112:25 | 0 | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:25:112:25 | After (...) ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:25:112:25 | Before (...) ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:29:112:29 | After (...) ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:29:112:29 | Before (...) ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:29:112:37 | After ... / ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:29:112:37 | Before ... / ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:41:112:76 | Before throw ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:47:112:76 | After object creation of type ArgumentException | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:47:112:76 | Before object creation of type ArgumentException | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:110:13:110:21 | ThrowExpr | | ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | -| ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | -| ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall (normal) | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:115:16:115:34 | Exit | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:115:16:115:34 | Normal Exit | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:9:117:39 | Before return ...; | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:117:16:117:16 | access to parameter s | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:16:117:30 | Before call to method Contains | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:117:27:117:29 | - | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | | ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | -| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:120:17:120:32 | FailingAssertion | -| ExitMethods.cs:120:17:120:32 | exit FailingAssertion | ExitMethods.cs:120:17:120:32 | FailingAssertion | -| ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:120:17:120:32 | FailingAssertion | +| ExitMethods.cs:120:17:120:32 | Entry | ExitMethods.cs:120:17:120:32 | FailingAssertion | +| ExitMethods.cs:120:17:120:32 | Exceptional Exit | ExitMethods.cs:120:17:120:32 | FailingAssertion | +| ExitMethods.cs:120:17:120:32 | Exit | ExitMethods.cs:120:17:120:32 | FailingAssertion | | ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:120:17:120:32 | FailingAssertion | +| ExitMethods.cs:122:9:122:28 | Before call to method IsTrue | ExitMethods.cs:120:17:120:32 | FailingAssertion | | ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:120:17:120:32 | FailingAssertion | | ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:120:17:120:32 | FailingAssertion | | ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:120:17:120:32 | FailingAssertion | -| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | -| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | -| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | +| ExitMethods.cs:126:17:126:33 | Entry | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | +| ExitMethods.cs:126:17:126:33 | Exceptional Exit | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | +| ExitMethods.cs:126:17:126:33 | Exit | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | | ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | +| ExitMethods.cs:128:9:128:26 | Before call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | | ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | | ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:10:132:20 | Exceptional Exit | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:10:132:20 | Exit | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:10:132:20 | Normal Exit | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:33:132:49 | Before call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | | ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | | ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | -| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | -| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | +| ExitMethods.cs:134:17:134:33 | Entry | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | +| ExitMethods.cs:134:17:134:33 | Exceptional Exit | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | +| ExitMethods.cs:134:17:134:33 | Exit | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | | ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | +| ExitMethods.cs:136:9:136:25 | Before call to method AssertFalse | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | | ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | | ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | | ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:140:17:140:42 | Exceptional Exit | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:140:17:140:42 | Exit | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:143:13:143:42 | Before call to method Throw | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:145:13:145:44 | After call to method Capture | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:145:13:145:44 | Before call to method Capture | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:145:13:145:52 | Before call to method Throw | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | | ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | -| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:5:23:5:29 | ToInt32 | -| Extensions.cs:5:23:5:29 | exit ToInt32 | Extensions.cs:5:23:5:29 | ToInt32 | -| Extensions.cs:5:23:5:29 | exit ToInt32 (normal) | Extensions.cs:5:23:5:29 | ToInt32 | +| Extensions.cs:5:23:5:29 | Entry | Extensions.cs:5:23:5:29 | ToInt32 | +| Extensions.cs:5:23:5:29 | Exit | Extensions.cs:5:23:5:29 | ToInt32 | +| Extensions.cs:5:23:5:29 | Normal Exit | Extensions.cs:5:23:5:29 | ToInt32 | | Extensions.cs:6:5:8:5 | {...} | Extensions.cs:5:23:5:29 | ToInt32 | +| Extensions.cs:7:9:7:30 | Before return ...; | Extensions.cs:5:23:5:29 | ToInt32 | | Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:5:23:5:29 | ToInt32 | +| Extensions.cs:7:16:7:29 | After call to method Parse | Extensions.cs:5:23:5:29 | ToInt32 | +| Extensions.cs:7:16:7:29 | Before call to method Parse | Extensions.cs:5:23:5:29 | ToInt32 | | Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:5:23:5:29 | ToInt32 | | Extensions.cs:7:28:7:28 | access to parameter s | Extensions.cs:5:23:5:29 | ToInt32 | -| Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:10:24:10:29 | ToBool | -| Extensions.cs:10:24:10:29 | exit ToBool | Extensions.cs:10:24:10:29 | ToBool | -| Extensions.cs:10:24:10:29 | exit ToBool (normal) | Extensions.cs:10:24:10:29 | ToBool | +| Extensions.cs:10:24:10:29 | Entry | Extensions.cs:10:24:10:29 | ToBool | +| Extensions.cs:10:24:10:29 | Exit | Extensions.cs:10:24:10:29 | ToBool | +| Extensions.cs:10:24:10:29 | Normal Exit | Extensions.cs:10:24:10:29 | ToBool | | Extensions.cs:11:5:13:5 | {...} | Extensions.cs:10:24:10:29 | ToBool | +| Extensions.cs:12:9:12:20 | Before return ...; | Extensions.cs:10:24:10:29 | ToBool | | Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:10:24:10:29 | ToBool | | Extensions.cs:12:16:12:16 | access to parameter f | Extensions.cs:10:24:10:29 | ToBool | +| Extensions.cs:12:16:12:19 | After delegate call | Extensions.cs:10:24:10:29 | ToBool | +| Extensions.cs:12:16:12:19 | Before delegate call | Extensions.cs:10:24:10:29 | ToBool | | Extensions.cs:12:16:12:19 | delegate call | Extensions.cs:10:24:10:29 | ToBool | | Extensions.cs:12:18:12:18 | access to parameter s | Extensions.cs:10:24:10:29 | ToBool | -| Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:23:15:33 | CallToInt32 | -| Extensions.cs:15:23:15:33 | exit CallToInt32 | Extensions.cs:15:23:15:33 | CallToInt32 | -| Extensions.cs:15:23:15:33 | exit CallToInt32 (normal) | Extensions.cs:15:23:15:33 | CallToInt32 | +| Extensions.cs:15:23:15:33 | Entry | Extensions.cs:15:23:15:33 | CallToInt32 | +| Extensions.cs:15:23:15:33 | Exit | Extensions.cs:15:23:15:33 | CallToInt32 | +| Extensions.cs:15:23:15:33 | Normal Exit | Extensions.cs:15:23:15:33 | CallToInt32 | +| Extensions.cs:15:40:15:51 | After call to method ToInt32 | Extensions.cs:15:23:15:33 | CallToInt32 | +| Extensions.cs:15:40:15:51 | Before call to method ToInt32 | Extensions.cs:15:23:15:33 | CallToInt32 | | Extensions.cs:15:40:15:51 | call to method ToInt32 | Extensions.cs:15:23:15:33 | CallToInt32 | | Extensions.cs:15:48:15:50 | "0" | Extensions.cs:15:23:15:33 | CallToInt32 | -| Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:20:17:20:20 | Main | -| Extensions.cs:20:17:20:20 | exit Main | Extensions.cs:20:17:20:20 | Main | -| Extensions.cs:20:17:20:20 | exit Main (normal) | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:20:17:20:20 | Entry | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:20:17:20:20 | Exit | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:20:17:20:20 | Normal Exit | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:21:5:26:5 | After {...} | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:21:5:26:5 | {...} | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:22:9:22:9 | access to parameter s | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:22:9:22:19 | After call to method ToInt32 | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:22:9:22:19 | Before call to method ToInt32 | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:22:9:22:19 | call to method ToInt32 | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:22:9:22:20 | ...; | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:22:9:22:20 | After ...; | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:23:9:23:30 | After call to method ToInt32 | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:23:9:23:30 | Before call to method ToInt32 | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:23:9:23:30 | call to method ToInt32 | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:23:9:23:31 | ...; | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:23:9:23:31 | After ...; | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:23:28:23:29 | "" | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:24:9:24:45 | After call to method ToBool | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:24:9:24:45 | Before call to method ToBool | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:24:9:24:46 | ...; | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:24:9:24:46 | After ...; | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:24:27:24:32 | "true" | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:24:35:24:44 | After delegate creation of type Func | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:24:35:24:44 | Before delegate creation of type Func | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:24:35:24:44 | access to method Parse | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:24:35:24:44 | delegate creation of type Func | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:25:9:25:14 | "true" | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:25:9:25:33 | After call to method ToBool | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:25:9:25:33 | Before call to method ToBool | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:25:9:25:34 | ...; | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:25:9:25:34 | After ...; | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:25:23:25:32 | After delegate creation of type Func | Extensions.cs:20:17:20:20 | Main | +| Extensions.cs:25:23:25:32 | Before delegate creation of type Func | Extensions.cs:20:17:20:20 | Main | | 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 | After call to constructor Object | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | After call to method | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | Before call to constructor Object | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | Before call to method | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | Entry | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | Exit | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | Normal Exit | 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 | 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 | -| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | Exceptional Exit | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | Exit | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | Normal Exit | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:8:5:17:5 | After {...} | Finally.cs:7:10:7:11 | M1 | | Finally.cs:8:5:17:5 | {...} | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:7:10:7:11 | M1 | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:10:9:12:9 | After {...} | Finally.cs:7:10:7:11 | M1 | | Finally.cs:10:9:12:9 | {...} | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:11:13:11:37 | After call to method WriteLine | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:11:13:11:37 | Before call to method WriteLine | Finally.cs:7:10:7:11 | M1 | | Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:7:10:7:11 | M1 | | Finally.cs:11:13:11:38 | ...; | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:11:13:11:38 | After ...; | Finally.cs:7:10:7:11 | M1 | | Finally.cs:11:31:11:36 | "Try1" | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:14:9:16:9 | After {...} | Finally.cs:7:10:7:11 | M1 | | Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:15:13:15:40 | After call to method WriteLine | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:15:13:15:40 | Before call to method WriteLine | Finally.cs:7:10:7:11 | M1 | | Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | M1 | | Finally.cs:15:13:15:41 | ...; | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:15:13:15:41 | After ...; | Finally.cs:7:10:7:11 | M1 | | Finally.cs:15:31:15:39 | "Finally" | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:19:10:19:11 | Exceptional Exit | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:19:10:19:11 | Exit | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:20:5:52:5 | After {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:20:5:52:5 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:21:9:51:9 | After try {...} ... | Finally.cs:19:10:19:11 | M2 | | Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:19:10:19:11 | M2 | | Finally.cs:22:9:25:9 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:23:13:23:37 | After call to method WriteLine | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:23:13:23:37 | Before call to method WriteLine | Finally.cs:19:10:19:11 | M2 | | Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:19:10:19:11 | M2 | | Finally.cs:23:13:23:38 | ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:23:13:23:38 | After ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:23:31:23:36 | "Try2" | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:24:13:24:19 | Before return ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:24:13:24:19 | return ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:9:29:9 | After catch (...) {...} [match] | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:26:38:26:39 | IOException ex | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:48:26:51 | After true [true] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:26:48:26:51 | true | Finally.cs:19:10:19:11 | M2 | | Finally.cs:27:9:29:9 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:28:13:28:18 | Before throw ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:28:13:28:18 | throw ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:9:40:9 | After catch (...) {...} [match] | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:19:10:19:11 | M2 | | Finally.cs:31:9:40:9 | {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:19:10:19:11 | M2 | | Finally.cs:33:13:35:13 | {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:34:21:34:24 | After true [true] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:34:21:34:24 | true | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:34:27:34:32 | Before throw ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:34:27:34:32 | throw ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:37:13:39:13 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:17:38:44 | Before throw ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:38:17:38:44 | throw ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:23:38:43 | After object creation of type Exception | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:23:38:43 | Before object creation of type Exception | Finally.cs:19:10:19:11 | M2 | | Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:19:10:19:11 | M2 | | Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:41:9:43:9 | After catch (...) {...} [match] | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:42:9:43:9 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:44:9:47:9 | After catch {...} [match] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:44:9:47:9 | catch {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:45:9:47:9 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:46:13:46:19 | Before return ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:46:13:46:19 | return ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:50:13:50:40 | After call to method WriteLine | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:50:13:50:40 | Before call to method WriteLine | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:13:50:41 | ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:50:13:50:41 | After ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:50:31:50:39 | "Finally" | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Exceptional Exit | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Exit | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:55:5:72:5 | After {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:55:5:72:5 | {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:56:9:71:9 | After try {...} ... | Finally.cs:54:10:54:11 | M3 | | Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:54:10:54:11 | M3 | | Finally.cs:57:9:60:9 | {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:58:13:58:37 | After call to method WriteLine | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:58:13:58:37 | Before call to method WriteLine | Finally.cs:54:10:54:11 | M3 | | Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:54:10:54:11 | M3 | | Finally.cs:58:13:58:38 | ...; | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:58:13:58:38 | After ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:58:31:58:36 | "Try3" | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:59:13:59:19 | Before return ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:59:13:59:19 | return ...; | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:9:64:9 | After catch (...) {...} [match] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:54:10:54:11 | M3 | | Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:61:38:61:39 | IOException ex | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:48:61:51 | After true [true] | Finally.cs:54:10:54:11 | M3 | | Finally.cs:61:48:61:51 | true | Finally.cs:54:10:54:11 | M3 | | Finally.cs:62:9:64:9 | {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:63:13:63:18 | Before throw ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:63:13:63:18 | throw ...; | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:26:65:26 | Exception e | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:43 | After access to property Message | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:43 | Before access to property Message | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:35:65:43 | access to property Message | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:35:65:51 | ... != ... | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:51 | After ... != ... [false] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:51 | After ... != ... [true] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:51 | Before ... != ... | Finally.cs:54:10:54:11 | M3 | | Finally.cs:65:48:65:51 | null | Finally.cs:54:10:54:11 | M3 | | Finally.cs:66:9:67:9 | {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:70:13:70:40 | After call to method WriteLine | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:70:13:70:40 | Before call to method WriteLine | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:13:70:41 | ...; | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:70:13:70:41 | After ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Exceptional Exit | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Exit | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:75:5:101:5 | After {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:75:5:101:5 | {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:76:9:76:19 | ... ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:76:9:76:19 | After ... ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:76:13:76:13 | access to local variable i | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:76:13:76:18 | After Int32 i = ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:76:13:76:18 | Before Int32 i = ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:76:17:76:18 | 10 | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:77:16:77:20 | ... > ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:16:77:20 | After ... > ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:16:77:20 | Before ... > ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:77:20:77:20 | 0 | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:78:9:100:9 | After {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:78:9:100:9 | {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:79:13:99:13 | After try {...} ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:80:13:87:13 | After {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:80:13:87:13 | {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:81:17:82:27 | After if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:81:21:81:21 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:81:21:81:26 | ... == ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:81:21:81:26 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:81:21:81:26 | Before ... == ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:81:26:81:26 | 0 | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:82:21:82:27 | Before return ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:83:17:84:29 | After if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:83:21:83:26 | ... == ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:83:21:83:26 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:83:21:83:26 | Before ... == ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:83:26:83:26 | 1 | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:84:21:84:29 | Before continue; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:84:21:84:29 | continue; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:85:17:86:26 | After if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:85:21:85:26 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:85:21:85:26 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:85:21:85:26 | Before ... == ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:85:26:85:26 | 2 | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:86:21:86:26 | Before break; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:86:21:86:26 | break; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:89:13:99:13 | After {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:89:13:99:13 | {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:91:17:94:17 | After {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:91:17:94:17 | {...} | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:92:21:93:46 | After if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:92:25:92:30 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:92:25:92:30 | Before ... == ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:30:92:30 | 3 | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:93:25:93:46 | Before throw ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:25:93:46 | throw ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:93:31:93:45 | After object creation of type Exception | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:93:31:93:45 | Before object creation of type Exception | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:96:17:98:17 | After {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:23 | ...-- | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:23 | After ...-- | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:97:21:97:23 | Before ...-- | Finally.cs:74:10:74:11 | M4 | | Finally.cs:97:21:97:24 | ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:97:21:97:24 | After ...; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:103:10:103:11 | Exceptional Exit | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:103:10:103:11 | Exit | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:104:5:119:5 | After {...} | Finally.cs:103:10:103:11 | M5 | | Finally.cs:104:5:119:5 | {...} | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:105:9:118:9 | After try {...} ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:106:9:111:9 | After {...} | Finally.cs:103:10:103:11 | M5 | | Finally.cs:106:9:111:9 | {...} | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:13:108:23 | After if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:21 | Before access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:107:17:107:21 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:107:17:107:21 | this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:28 | Before access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:33 | After ... == ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:33 | Before ... == ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:107:33:107:33 | 0 | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:108:17:108:23 | Before return ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:13:110:49 | After if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:21 | Before access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:109:17:109:21 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:109:17:109:21 | this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:28 | Before access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:109:17:109:33 | ... == ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:33 | After ... == ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:33 | Before ... == ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:109:33:109:33 | 1 | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:110:17:110:49 | Before throw ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:110:17:110:49 | throw ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:110:23:110:48 | Before object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:103:10:103:11 | M5 | | Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:17:114:36 | !... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:17:114:36 | After !... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:17:114:36 | After !... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:23 | After access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:23 | Before access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:23 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:23 | this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:30 | After access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:30 | Before access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:30 | access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:19:114:35 | ... == ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:35 | Before ... == ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:114:35:114:35 | 0 | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:17:115:40 | After call to method WriteLine | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:17:115:40 | Before call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:17:115:41 | ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:17:115:41 | After ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:35:115:39 | After access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:115:35:115:39 | Before access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:35:115:39 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:115:35:115:39 | this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:21 | After access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:21 | Before access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:21 | access to field Field | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:21 | this access | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:28 | After access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:28 | Before access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:28 | access to property Length | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:32 | After ... > ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:32 | After ... > ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:32 | Before ... > ... | Finally.cs:103:10:103:11 | M5 | | Finally.cs:116:32:116:32 | 0 | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:117:17:117:36 | After call to method WriteLine | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:117:17:117:36 | Before call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:17:117:37 | ...; | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:117:17:117:37 | After ...; | Finally.cs:103:10:103:11 | M5 | | Finally.cs:117:35:117:35 | 1 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | M6 | -| Finally.cs:121:10:121:11 | exit M6 | Finally.cs:121:10:121:11 | M6 | -| Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:121:10:121:11 | Entry | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:121:10:121:11 | Exit | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:121:10:121:11 | Normal Exit | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:122:5:131:5 | After {...} | Finally.cs:121:10:121:11 | M6 | | Finally.cs:122:5:131:5 | {...} | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:123:9:130:9 | After try {...} ... | Finally.cs:121:10:121:11 | M6 | | Finally.cs:123:9:130:9 | try {...} ... | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:124:9:126:9 | After {...} | Finally.cs:121:10:121:11 | M6 | | Finally.cs:124:9:126:9 | {...} | Finally.cs:121:10:121:11 | M6 | | Finally.cs:125:13:125:41 | ... ...; | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:13:125:41 | After ... ...; | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:17:125:20 | access to local variable temp | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:17:125:40 | After Double temp = ... | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:17:125:40 | Before Double temp = ... | Finally.cs:121:10:121:11 | M6 | | Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:121:10:121:11 | M6 | | Finally.cs:125:24:125:24 | 0 | Finally.cs:121:10:121:11 | M6 | | Finally.cs:125:24:125:24 | (...) ... | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:24:125:24 | After (...) ... | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:24:125:24 | Before (...) ... | Finally.cs:121:10:121:11 | M6 | | Finally.cs:125:24:125:40 | ... / ... | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:24:125:40 | After ... / ... | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:125:24:125:40 | Before ... / ... | Finally.cs:121:10:121:11 | M6 | | Finally.cs:125:28:125:40 | access to constant E | Finally.cs:121:10:121:11 | M6 | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:133:10:133:11 | exit M7 | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:133:10:133:11 | Exceptional Exit | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:133:10:133:11 | Exit | Finally.cs:133:10:133:11 | M7 | | Finally.cs:134:5:145:5 | {...} | Finally.cs:133:10:133:11 | M7 | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:136:9:138:9 | After {...} | Finally.cs:133:10:133:11 | M7 | | Finally.cs:136:9:138:9 | {...} | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:137:13:137:36 | After call to method WriteLine | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:137:13:137:36 | Before call to method WriteLine | Finally.cs:133:10:133:11 | M7 | | Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:133:10:133:11 | M7 | | Finally.cs:137:13:137:37 | ...; | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:137:13:137:37 | After ...; | Finally.cs:133:10:133:11 | M7 | | Finally.cs:137:31:137:35 | "Try" | Finally.cs:133:10:133:11 | M7 | | Finally.cs:140:9:143:9 | {...} | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:141:13:141:44 | Before throw ...; | Finally.cs:133:10:133:11 | M7 | | Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:141:19:141:43 | After object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:141:19:141:43 | Before object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 | | Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 | | Finally.cs:141:41:141:42 | "" | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:147:10:147:11 | Exceptional Exit | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:147:10:147:11 | Exit | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:147:10:147:11 | Normal Exit | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:148:5:170:5 | After {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:148:5:170:5 | {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:150:9:153:9 | After {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:150:9:153:9 | {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:151:13:152:50 | After if (...) ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:147:10:147:11 | M8 | | Finally.cs:151:17:151:28 | ... == ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:151:17:151:28 | After ... == ... [false] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:151:17:151:28 | Before ... == ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:151:25:151:28 | null | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:152:17:152:50 | Before throw ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:152:17:152:50 | throw ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:152:23:152:49 | Before object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:155:9:169:9 | After {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:157:13:160:13 | After {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:157:13:160:13 | {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:17:159:45 | After if (...) ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:31 | Before access to property Length | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:36 | After ... == ... [false] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:36 | Before ... == ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:158:36:158:36 | 1 | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:21:159:45 | Before throw ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:21:159:45 | throw ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:27:159:44 | After object creation of type Exception | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:27:159:44 | Before object creation of type Exception | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:147:10:147:11 | M8 | | Finally.cs:159:41:159:43 | "1" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:30:161:30 | Exception e | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:47 | After access to property Message | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:47 | Before access to property Message | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:47 | access to property Message | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:39:161:54 | ... == ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:54 | After ... == ... [false] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:54 | After ... == ... [true] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:54 | Before ... == ... | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:52:161:54 | "1" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:162:13:164:13 | After {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:162:13:164:13 | {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:17:163:42 | After call to method WriteLine | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:17:163:42 | Before call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:17:163:43 | ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:17:163:43 | After ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:35:163:41 | After access to array element | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:163:35:163:41 | Before access to array element | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:35:163:41 | access to array element | Finally.cs:147:10:147:11 | M8 | | Finally.cs:163:40:163:40 | 0 | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:165:13:168:13 | After catch {...} [match] | Finally.cs:147:10:147:11 | M8 | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:166:13:168:13 | After {...} | Finally.cs:147:10:147:11 | M8 | | Finally.cs:166:13:168:13 | {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:167:17:167:37 | After call to method WriteLine | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:167:17:167:37 | Before call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:147:10:147:11 | M8 | | Finally.cs:167:17:167:38 | ...; | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:167:17:167:38 | After ...; | 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 | After call to constructor Exception | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | After call to method | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | Before call to constructor Exception | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | Before call to method | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | Entry | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | Exit | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | Normal Exit | Finally.cs:172:11:172:20 | ExceptionA | | 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 | After call to constructor Exception | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | After call to method | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | Before call to constructor Exception | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | Before call to method | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | Entry | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | Exit | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | Normal Exit | Finally.cs:173:11:173:20 | ExceptionB | | 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 | After call to constructor Exception | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | After call to method | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | Before call to constructor Exception | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | Before call to method | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | Entry | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | Exit | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | Normal Exit | Finally.cs:174:11:174:20 | ExceptionC | | 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 | -| Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:176:10:176:11 | Exceptional Exit | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:176:10:176:11 | Exit | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:176:10:176:11 | Normal Exit | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:177:5:193:5 | After {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:177:5:193:5 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:179:9:181:9 | After {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:179:9:181:9 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:13:180:43 | After if (...) ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:17:180:18 | After access to parameter b1 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:21:180:43 | Before throw ...; | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:21:180:43 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:27:180:42 | After object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:27:180:42 | Before object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:183:9:192:9 | After {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:185:13:187:13 | After {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:185:13:187:13 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:17:186:47 | After if (...) ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:21:186:22 | After access to parameter b2 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:25:186:47 | Before throw ...; | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:25:186:47 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:31:186:46 | After object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:31:186:46 | Before object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | | Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | After access to parameter b2 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:189:13:191:13 | After {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:189:13:191:13 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:17:190:47 | After if (...) ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:21:190:22 | After access to parameter b1 [true] | Finally.cs:176:10:176:11 | M9 | | Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:25:190:47 | Before throw ...; | Finally.cs:176:10:176:11 | M9 | | Finally.cs:190:25:190:47 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:31:190:46 | After object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:31:190:46 | Before object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | | Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:195:10:195:12 | exit M10 (normal) | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:195:10:195:12 | Exceptional Exit | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:195:10:195:12 | Exit | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:195:10:195:12 | Normal Exit | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:196:5:214:5 | After {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:196:5:214:5 | {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:198:9:200:9 | After {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:198:9:200:9 | {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:13:199:43 | After if (...) ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:17:199:18 | After access to parameter b1 [false] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:21:199:43 | Before throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:21:199:43 | throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:27:199:42 | After object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:27:199:42 | Before object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:202:9:212:9 | After {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:204:13:206:13 | After {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:204:13:206:13 | {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:17:205:47 | After if (...) ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:21:205:22 | After access to parameter b2 [false] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:25:205:47 | Before throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:25:205:47 | throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:31:205:46 | After object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:31:205:46 | Before object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:208:13:210:13 | After {...} | Finally.cs:195:10:195:12 | M10 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:17:209:47 | After if (...) ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [true] | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:25:209:47 | Before throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | After object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:31:209:46 | Before object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:16 | this access | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:22 | After access to field Field | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:22 | Before access to field Field | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:22 | access to field Field | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:28 | After ... = ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:28 | Before ... = ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:29 | After ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:26:211:28 | "0" | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:12 | this access | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:213:9:213:18 | After access to field Field | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:213:9:213:18 | Before access to field Field | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:18 | access to field Field | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:213:9:213:24 | After ... = ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:213:9:213:24 | Before ... = ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:213:9:213:25 | After ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:22:213:24 | "1" | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | M11 | -| Finally.cs:216:10:216:12 | exit M11 | Finally.cs:216:10:216:12 | M11 | -| Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:216:10:216:12 | Exit | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:216:10:216:12 | Normal Exit | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:217:5:231:5 | After {...} | Finally.cs:216:10:216:12 | M11 | | Finally.cs:217:5:231:5 | {...} | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:218:9:229:9 | After try {...} ... | Finally.cs:216:10:216:12 | M11 | | Finally.cs:218:9:229:9 | try {...} ... | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:219:9:221:9 | After {...} | Finally.cs:216:10:216:12 | M11 | | Finally.cs:219:9:221:9 | {...} | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:220:13:220:36 | After call to method WriteLine | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:220:13:220:36 | Before call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:220:13:220:37 | ...; | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:220:13:220:37 | After ...; | Finally.cs:216:10:216:12 | M11 | | Finally.cs:220:31:220:35 | "Try" | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:222:9:225:9 | After catch {...} [match] | Finally.cs:216:10:216:12 | M11 | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:223:9:225:9 | After {...} | Finally.cs:216:10:216:12 | M11 | | Finally.cs:223:9:225:9 | {...} | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:224:13:224:38 | After call to method WriteLine | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:224:13:224:38 | Before call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:224:13:224:38 | call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:224:13:224:39 | ...; | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:224:13:224:39 | After ...; | Finally.cs:216:10:216:12 | M11 | | Finally.cs:224:31:224:37 | "Catch" | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:227:9:229:9 | After {...} | Finally.cs:216:10:216:12 | M11 | | Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:228:13:228:40 | After call to method WriteLine | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:228:13:228:40 | Before call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:228:13:228:40 | call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:228:13:228:41 | ...; | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:228:13:228:41 | After ...; | Finally.cs:216:10:216:12 | M11 | | Finally.cs:228:31:228:39 | "Finally" | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:230:9:230:33 | After call to method WriteLine | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:230:9:230:33 | Before call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:230:9:230:34 | ...; | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:230:9:230:34 | After ...; | Finally.cs:216:10:216:12 | M11 | | Finally.cs:230:27:230:32 | "Done" | Finally.cs:216:10:216:12 | M11 | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:233:10:233:12 | exit M12 (normal) | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:233:10:233:12 | Exceptional Exit | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:233:10:233:12 | Exit | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:233:10:233:12 | Normal Exit | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:234:5:261:5 | After {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:234:5:261:5 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:233:10:233:12 | M12 | | Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:236:9:255:9 | After {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:236:9:255:9 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:233:10:233:12 | M12 | | Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:238:13:241:13 | After {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:238:13:241:13 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:239:17:240:43 | After if (...) ... | Finally.cs:233:10:233:12 | M12 | | Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:239:21:239:22 | After access to parameter b1 [false] | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:233:10:233:12 | M12 | | Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:240:21:240:43 | Before throw ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:240:21:240:43 | throw ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:240:27:240:42 | After object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:240:27:240:42 | Before object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:243:13:253:13 | After {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:233:10:233:12 | M12 | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:245:17:248:17 | After {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:245:17:248:17 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:246:21:247:47 | After if (...) ... | Finally.cs:233:10:233:12 | M12 | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:246:25:246:26 | After access to parameter b2 [false] | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:233:10:233:12 | M12 | | Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:25:247:47 | Before throw ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:247:25:247:47 | throw ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:31:247:46 | After object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:31:247:46 | Before object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:250:17:252:17 | After {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:54 | After call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:54 | Before call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:251:21:251:55 | ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:251:21:251:55 | After ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:254:13:254:44 | After call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:254:13:254:44 | Before call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:254:13:254:45 | ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:254:13:254:45 | After ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:257:9:259:9 | After {...} | Finally.cs:233:10:233:12 | M12 | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:258:13:258:46 | After call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:258:13:258:46 | Before call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:258:13:258:47 | ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:258:13:258:47 | After ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:260:9:260:33 | After call to method WriteLine | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:260:9:260:33 | Before call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:260:9:260:34 | After ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:260:27:260:32 | "Done" | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | Exceptional Exit | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | Exit | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | Normal Exit | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:264:5:274:5 | After {...} | Finally.cs:263:10:263:12 | M13 | | Finally.cs:264:5:274:5 | {...} | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:263:10:263:12 | M13 | | Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:266:9:268:9 | After {...} | Finally.cs:263:10:263:12 | M13 | | Finally.cs:266:9:268:9 | {...} | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:267:13:267:34 | After call to method WriteLine | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:267:13:267:34 | Before call to method WriteLine | Finally.cs:263:10:263:12 | M13 | | Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:263:10:263:12 | M13 | | Finally.cs:267:13:267:35 | ...; | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:267:13:267:35 | After ...; | Finally.cs:263:10:263:12 | M13 | | Finally.cs:267:31:267:33 | "1" | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:270:9:273:9 | After {...} | Finally.cs:263:10:263:12 | M13 | | Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:271:13:271:34 | After call to method WriteLine | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:271:13:271:34 | Before call to method WriteLine | Finally.cs:263:10:263:12 | M13 | | Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:263:10:263:12 | M13 | | Finally.cs:271:13:271:35 | ...; | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:271:13:271:35 | After ...; | Finally.cs:263:10:263:12 | M13 | | Finally.cs:271:31:271:33 | "3" | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:13:272:18 | ... += ... | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:13:272:18 | After ... += ... | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:13:272:18 | Before ... += ... | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:13:272:19 | ...; | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:272:13:272:19 | After ...; | 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 | After call to constructor Object | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | After call to method | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | Before call to constructor Object | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | Before call to method | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | Entry | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | Exit | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | Normal Exit | 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 | 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 | -| Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:6:10:6:11 | Exit | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:6:10:6:11 | Normal Exit | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:7:5:10:5 | After {...} | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:7:5:10:5 | {...} | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:8:22:8:24 | String arg | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:8:29:8:32 | After access to parameter args [empty] | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:9:13:9:13 | ; | Foreach.cs:6:10:6:11 | M1 | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:12:10:12:11 | M2 | -| Foreach.cs:12:10:12:11 | exit M2 | Foreach.cs:12:10:12:11 | M2 | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:12:10:12:11 | Exit | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:12:10:12:11 | Normal Exit | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:13:5:16:5 | After {...} | Foreach.cs:12:10:12:11 | M2 | | Foreach.cs:13:5:16:5 | {...} | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | M2 | | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | M2 | | Foreach.cs:14:22:14:22 | String _ | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:14:27:14:30 | After access to parameter args [empty] | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:12:10:12:11 | M2 | | Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:12:10:12:11 | M2 | | Foreach.cs:15:13:15:13 | ; | Foreach.cs:12:10:12:11 | M2 | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:18:10:18:11 | exit M3 | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:18:10:18:11 | Exit | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:18:10:18:11 | Normal Exit | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:19:5:22:5 | After {...} | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:19:5:22:5 | {...} | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:20:22:20:22 | String x | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:27 | After access to parameter e [null] | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:38 | Before call to method ToArray | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:43:20:68 | After call to method Empty [empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:43:20:68 | Before call to method Empty | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:21:11:21:11 | ; | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:24:10:24:11 | M4 | -| Foreach.cs:24:10:24:11 | exit M4 | Foreach.cs:24:10:24:11 | M4 | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:24:10:24:11 | Exit | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:24:10:24:11 | Normal Exit | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:25:5:28:5 | After {...} | Foreach.cs:24:10:24:11 | M4 | | Foreach.cs:25:5:28:5 | {...} | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | M4 | | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | M4 | | Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:18:26:31 | After (..., ...) | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:24:10:24:11 | M4 | | Foreach.cs:26:23:26:23 | String x | Foreach.cs:24:10:24:11 | M4 | | Foreach.cs:26:30:26:30 | Int32 y | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:36:26:39 | After access to parameter args [empty] | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:24:10:24:11 | M4 | | Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:24:10:24:11 | M4 | | Foreach.cs:27:11:27:11 | ; | Foreach.cs:24:10:24:11 | M4 | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:30:10:30:11 | M5 | -| Foreach.cs:30:10:30:11 | exit M5 | Foreach.cs:30:10:30:11 | M5 | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:30:10:30:11 | Exit | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:30:10:30:11 | Normal Exit | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:31:5:34:5 | After {...} | Foreach.cs:30:10:30:11 | M5 | | Foreach.cs:31:5:34:5 | {...} | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | M5 | | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | M5 | | Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:18:32:27 | After (..., ...) | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:30:10:30:11 | M5 | | Foreach.cs:32:23:32:23 | String x | Foreach.cs:30:10:30:11 | M5 | | Foreach.cs:32:26:32:26 | Int32 y | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:32:32:35 | After access to parameter args [empty] | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:30:10:30:11 | M5 | | Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:30:10:30:11 | M5 | | Foreach.cs:33:11:33:11 | ; | Foreach.cs:30:10:30:11 | M5 | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:36:10:36:11 | M6 | -| Foreach.cs:36:10:36:11 | exit M6 | Foreach.cs:36:10:36:11 | M6 | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:36:10:36:11 | Exit | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:36:10:36:11 | Normal Exit | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:37:5:40:5 | After {...} | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:37:5:40:5 | {...} | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | 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:18:38:34 | (..., ...) | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:18:38:34 | After (..., ...) | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:39:38:42 | After access to parameter args [empty] | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | 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 | Entry | Initializers.cs:3:7:3:18 | | +| Initializers.cs:3:7:3:18 | Entry | 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 | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:3:7:3:18 | Normal Exit | Initializers.cs:3:7:3:18 | | +| Initializers.cs:3:7:3:18 | Normal Exit | 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 | After access to field F | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:9:5:9 | Before access to field F | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:9:5:17 | After ... = ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:9:5:17 | Before ... = ... | 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:13:5:17 | After ... + ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:13:5:17 | Before ... + ... | 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 | After access to property G | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:9:6:9 | Before access to property G | 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:25:6:31 | After ... = ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:25:6:31 | Before ... = ... | 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:27:6:31 | After ... + ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:27:6:31 | Before ... + ... | 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 | After call to constructor Object | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | After call to method | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | Before call to constructor Object | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | Before call to method | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | Entry | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | Exit | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | Normal Exit | Initializers.cs:8:5:8:16 | Initializers | | 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 | After call to constructor Object | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | After call to method | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | Before call to constructor Object | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | Before call to method | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | Entry | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | Exit | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | Normal Exit | Initializers.cs:10:5:10: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 | -| Initializers.cs:12:10:12:10 | exit M (normal) | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:12:10:12:10 | Entry | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:12:10:12:10 | Exit | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:12:10:12:10 | Normal Exit | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:13:5:16:5 | After {...} | Initializers.cs:12:10:12:10 | M | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:9:14:54 | After ... ...; | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:13:14:13 | access to local variable i | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:13:14:53 | After Initializers i = ... | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:13:14:53 | Before Initializers i = ... | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:17:14:53 | After object creation of type Initializers | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:17:14:53 | Before object creation of type Initializers | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:38:14:53 | After { ..., ... } | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:38:14:53 | Before { ..., ... } | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:40:14:44 | After ... = ... | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:40:14:44 | Before ... = ... | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:44:14:44 | 0 | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:47:14:47 | After access to property G | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:47:14:47 | Before access to property G | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:47:14:51 | After ... = ... | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:47:14:51 | Before ... = ... | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:51:14:51 | 1 | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:9:15:64 | After ... ...; | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:13:15:14 | access to local variable iz | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:13:15:63 | After Initializers[] iz = ... | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:13:15:63 | Before Initializers[] iz = ... | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:18:15:63 | 2 | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:18:15:63 | After array creation of type Initializers[] | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:18:15:63 | Before array creation of type Initializers[] | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:37:15:63 | After { ..., ... } | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:37:15:63 | Before { ..., ... } | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:42:15:61 | After object creation of type Initializers | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:15:42:15:61 | Before object creation of type Initializers | Initializers.cs:12:10:12:10 | M | | 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:18:16:18:16 | access to field H | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:18:16:18:20 | After ... = ... | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:18:16:18:20 | Before ... = ... | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:20:11:20:23 | After call to constructor Object | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | After call to method | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | Before call to constructor Object | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | Before call to method | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | | +| Initializers.cs:20:11:20:23 | Entry | 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 | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:20:11:20:23 | | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:20:11:20:23 | NoConstructor | | 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 | After access to field F | Initializers.cs:20:11:20:23 | | +| Initializers.cs:22:23:22:23 | Before access to field F | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:20:11:20:23 | | +| Initializers.cs:22:23:22:27 | After ... = ... | Initializers.cs:20:11:20:23 | | +| Initializers.cs:22:23:22:27 | Before ... = ... | 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 | After access to field G | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:23:23:23 | Before access to field G | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:23:23:27 | After ... = ... | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:23:23:27 | Before ... = ... | 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:26:11:26:13 | Entry | 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 | Normal Exit | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:13 | After access to field H | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:13 | Before access to field H | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:17 | After ... = ... | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:17 | Before ... = ... | 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 | After call to method | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:9:31:11 | Before call to method | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:9:31:11 | Entry | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:9:31:11 | Exit | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:9:31:11 | Normal Exit | Initializers.cs:31:9:31:11 | Sub | | 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 | After call to constructor NoConstructor | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:17:31:20 | Before call to constructor NoConstructor | 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 | After {...} | 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 | After access to field I | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:26:31:26 | Before access to field I | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:26:31:30 | After ... = ... | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:26:31:30 | Before ... = ... | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:26:31:31 | After ...; | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:9:31:11 | Sub | -| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | Sub | -| Initializers.cs:33:9:33:11 | exit Sub | Initializers.cs:33:9:33:11 | Sub | -| Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:9:33:11 | Entry | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:9:33:11 | Exit | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:9:33:11 | Normal Exit | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:22:33:25 | After call to constructor Sub | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:22:33:25 | Before call to constructor Sub | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:29:33:38 | After {...} | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:31:33:31 | After access to field I | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:31:33:31 | Before access to field I | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:31:33:35 | After ... = ... | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:31:33:35 | Before ... = ... | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:31:33:36 | After ...; | 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 | After call to constructor NoConstructor | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | After call to method | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | Before call to constructor NoConstructor | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | Before call to method | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | Entry | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | Exit | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | Normal Exit | Initializers.cs:35:9:35: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 | After {...} | 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 | After access to field I | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:29:35:29 | Before access to field I | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:29:35:37 | After ... = ... | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:29:35:37 | Before ... = ... | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:29:35:38 | After ...; | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:33:35:37 | After ... + ... | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:33:35:37 | Before ... + ... | 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 | After call to constructor Object | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | After call to method | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | Before call to constructor Object | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | Before call to method | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | Entry | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | Exit | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | Normal Exit | Initializers.cs:39:7:39:23 | IndexInitializers | | 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 | After call to constructor Object | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | After call to method | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | Before call to constructor Object | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | Before call to method | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | Entry | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | Exit | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | Normal Exit | Initializers.cs:41:11:41:18 | Compound | | 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 | -| Initializers.cs:51:10:51:13 | exit Test (normal) | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:51:10:51:13 | Entry | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:51:10:51:13 | Exit | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:51:10:51:13 | Normal Exit | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:52:5:66:5 | After {...} | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:52:5:66:5 | {...} | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:9:54:96 | After ... ...; | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:13:54:16 | access to local variable dict | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:13:54:95 | After Dictionary dict = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:13:54:95 | Before Dictionary dict = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:20:54:95 | After object creation of type Dictionary | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:20:54:95 | Before object creation of type Dictionary | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:50:54:95 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:50:54:95 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:52:54:54 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:52:54:54 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:52:54:63 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:52:54:63 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:53:54:53 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:66:54:68 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:66:54:68 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:66:54:76 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:66:54:76 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:67:54:67 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:72:54:76 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:79:54:85 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:79:54:85 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:79:54:93 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:79:54:93 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:80:54:80 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:80:54:84 | ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:80:54:84 | After ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:54:80:54:84 | Before ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:84:54:84 | 2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:57:9:65:10 | After ... ...; | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:57:13:57:20 | access to local variable compound | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:57:13:65:9 | After Compound compound = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:57:13:65:9 | Before Compound compound = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:57:24:65:9 | After object creation of type Compound | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:57:24:65:9 | Before object creation of type Compound | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:58:9:65:9 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:58:9:65:9 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:13:59:76 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:13:59:76 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:31:59:76 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:31:59:76 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:33:59:35 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:33:59:35 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:33:59:44 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:33:59:44 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:34:59:34 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:47:59:49 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:47:59:49 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:47:59:57 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:47:59:57 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:48:59:48 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:53:59:57 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:60:59:66 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:60:59:66 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:60:59:74 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:60:59:74 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:61:59:61 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:61:59:65 | After ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:61:59:65 | Before ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:65:59:65 | 2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:13:60:30 | After access to property DictionaryProperty | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:13:60:30 | Before access to property DictionaryProperty | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:13:60:80 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:13:60:80 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:34:60:80 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:34:60:80 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:36:60:38 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:36:60:38 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:36:60:48 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:36:60:48 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:37:60:37 | 3 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:51:60:53 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:51:60:53 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:51:60:61 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:51:60:61 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:52:60:52 | 2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:64:60:70 | After access to indexer | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:64:60:70 | Before access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:64:60:78 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:64:60:78 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:65:60:65 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:65:60:69 | After ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:60:65:60:69 | Before ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:13:61:58 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:13:61:58 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:26:61:58 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:26:61:58 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:28:61:30 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:28:61:30 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:28:61:39 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:28:61:39 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:42:61:48 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:42:61:48 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:42:61:56 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:42:61:56 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:43:61:47 | After ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:43:61:47 | Before ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:52:61:56 | "One" | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:13:62:60 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:13:62:60 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:27:62:60 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:27:62:60 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:29:62:34 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:29:62:34 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:29:62:40 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:29:62:40 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:38:62:40 | "i" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:43:62:52 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:43:62:52 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:43:62:58 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:43:62:58 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:47:62:51 | After ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:47:62:51 | Before ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:56:62:58 | "1" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:13:63:25 | After access to property ArrayProperty | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:13:63:25 | Before access to property ArrayProperty | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:13:63:60 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:13:63:60 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:29:63:60 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:29:63:60 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:31:63:33 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:31:63:33 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:31:63:41 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:31:63:41 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:37:63:41 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:44:63:50 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:44:63:50 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:44:63:58 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:44:63:58 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:45:63:49 | After ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:45:63:49 | Before ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:13:64:26 | After access to property ArrayProperty2 | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:13:64:26 | Before access to property ArrayProperty2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:13:64:63 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:13:64:63 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:30:64:63 | After { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:30:64:63 | Before { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:32:64:37 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:32:64:37 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:32:64:43 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:32:64:43 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:41:64:43 | "i" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:46:64:55 | After access to array element | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:46:64:55 | Before access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:46:64:61 | After ... = ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:46:64:61 | Before ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:50:64:54 | After ... + ... | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:50:64:54 | Before ... + ... | Initializers.cs:51:10:51:13 | Test | | 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 | After call to constructor Object | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | After call to method | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | Before call to constructor Object | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | Before call to method | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | Entry | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | Exit | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | Normal Exit | 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 | 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 | -| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:7:10:7:11 | Exit | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:8:5:13:5 | After {...} | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:9:10:19 | After if (...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:9:13:9:16 | access to parameter args | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:13:9:23 | After access to property Length | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:13:9:23 | Before access to property Length | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:13:9:28 | Before ... == ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:10:13:10:19 | Before return ...; | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:12:13:12:34 | After call to method WriteLine | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:12:13:12:34 | Before call to method WriteLine | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:12:13:12:35 | After ...; | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:7:10:7:11 | M1 | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | M2 | -| LoopUnrolling.cs:15:10:15:11 | exit M2 | LoopUnrolling.cs:15:10:15:11 | M2 | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:15:10:15:11 | Exit | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:15:10:15:11 | Normal Exit | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:16:5:20:5 | After {...} | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:16:5:20:5 | {...} | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:9:17:48 | After ... ...; | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:13:17:14 | access to local variable xs | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:13:17:47 | After String[] xs = ... | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:13:17:47 | Before String[] xs = ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:18:17:47 | 3 | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:18:17:47 | After array creation of type String[] | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:18:17:47 | Before array creation of type String[] | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:31:17:47 | After { ..., ... } | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:17:31:17:47 | Before { ..., ... } | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:19:13:19:32 | After call to method WriteLine | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:19:13:19:32 | Before call to method WriteLine | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:19:13:19:33 | After ...; | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:15:10:15:11 | M2 | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:22:10:22:11 | exit M3 | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:22:10:22:11 | Exit | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:22:10:22:11 | Normal Exit | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:23:5:27:5 | After {...} | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:26:17:26:39 | After call to method WriteLine | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:26:17:26:39 | Before call to method WriteLine | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:26:17:26:40 | After ...; | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | M4 | -| LoopUnrolling.cs:29:10:29:11 | exit M4 | LoopUnrolling.cs:29:10:29:11 | M4 | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:29:10:29:11 | Exit | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:29:10:29:11 | Normal Exit | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:30:5:34:5 | After {...} | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:31:9:31:31 | After ... ...; | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:31:13:31:14 | access to local variable xs | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:31:13:31:30 | After String[] xs = ... | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:31:13:31:30 | Before String[] xs = ... | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:31:18:31:30 | After array creation of type String[] | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:31:18:31:30 | Before array creation of type String[] | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:33:13:33:32 | After call to method WriteLine | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:33:13:33:32 | Before call to method WriteLine | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:33:13:33:33 | After ...; | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:29:10:29:11 | M4 | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:36:10:36:11 | exit M5 | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:36:10:36:11 | Exit | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:36:10:36:11 | Normal Exit | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:37:5:43:5 | After {...} | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:9:38:48 | After ... ...; | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:13:38:14 | access to local variable xs | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:13:38:47 | After String[] xs = ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:13:38:47 | Before String[] xs = ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:18:38:47 | 3 | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:18:38:47 | After array creation of type String[] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:18:38:47 | Before array creation of type String[] | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:31:38:47 | After { ..., ... } | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:38:31:38:47 | Before { ..., ... } | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:33:38:35 | "a" | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:38:38:40 | "b" | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:38:43:38:45 | "c" | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:9:39:48 | After ... ...; | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:13:39:14 | access to local variable ys | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:13:39:47 | After String[] ys = ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:13:39:47 | Before String[] ys = ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:18:39:47 | 3 | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:18:39:47 | After array creation of type String[] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:18:39:47 | Before array creation of type String[] | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:31:39:47 | After { ..., ... } | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:39:31:39:47 | Before { ..., ... } | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:42:17:42:40 | After call to method WriteLine | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:42:17:42:40 | Before call to method WriteLine | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:42:17:42:41 | After ...; | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:42:35:42:39 | After ... + ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:42:35:42:39 | Before ... + ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | M6 | -| LoopUnrolling.cs:45:10:45:11 | exit M6 | LoopUnrolling.cs:45:10:45:11 | M6 | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:45:10:45:11 | Exit | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:45:10:45:11 | Normal Exit | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:46:5:53:5 | After {...} | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:9:47:48 | After ... ...; | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:13:47:14 | access to local variable xs | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:13:47:47 | After String[] xs = ... | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:13:47:47 | Before String[] xs = ... | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:18:47:47 | 3 | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:18:47:47 | After array creation of type String[] | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:18:47:47 | Before array creation of type String[] | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:31:47:47 | After { ..., ... } | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:47:31:47:47 | Before { ..., ... } | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:48:9:52:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:50:16:50:35 | After call to method WriteLine | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:50:16:50:35 | Before call to method WriteLine | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:50:16:50:36 | After ...; | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:51:13:51:23 | Before goto ...; | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:45:10:45:11 | M6 | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:55:10:55:11 | exit M7 | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:55:10:55:11 | Exit | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:55:10:55:11 | Normal Exit | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:56:5:65:5 | After {...} | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:9:57:48 | After ... ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:13:57:14 | access to local variable xs | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:13:57:47 | After String[] xs = ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:13:57:47 | Before String[] xs = ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:18:57:47 | 3 | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:18:57:47 | After array creation of type String[] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:18:57:47 | Before array creation of type String[] | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:31:57:47 | After { ..., ... } | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:57:31:57:47 | Before { ..., ... } | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:59:9:64:9 | After {...} | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:61:17:61:36 | After call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:61:17:61:36 | Before call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:61:17:61:37 | After ...; | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:63:17:63:36 | After call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:63:17:63:36 | Before call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:63:17:63:37 | After ...; | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:67:10:67:11 | exit M8 | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:67:10:67:11 | Exit | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:68:5:74:5 | After {...} | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:9:70:19 | After if (...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:13:69:23 | After !... [false] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:13:69:23 | After !... [true] | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:14:69:23 | Before call to method Any | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:70:13:70:19 | Before return ...; | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:71:9:71:20 | After call to method Clear | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:71:9:71:20 | Before call to method Clear | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:71:9:71:21 | After ...; | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:73:13:73:34 | After call to method WriteLine | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:73:13:73:34 | Before call to method WriteLine | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:73:13:73:35 | After ...; | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | M9 | -| LoopUnrolling.cs:76:10:76:11 | exit M9 | LoopUnrolling.cs:76:10:76:11 | M9 | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:76:10:76:11 | Exit | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:76:10:76:11 | Normal Exit | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:77:5:83:5 | After {...} | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:78:9:78:34 | After ... ...; | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:78:13:78:14 | access to local variable xs | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:78:13:78:33 | After String[,] xs = ... | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:78:13:78:33 | Before String[,] xs = ... | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:78:18:78:33 | After array creation of type String[,] | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:78:18:78:33 | Before array creation of type String[,] | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:80:9:82:9 | After {...} | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:81:13:81:32 | After call to method WriteLine | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:81:13:81:32 | Before call to method WriteLine | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:81:13:81:33 | After ...; | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:76:10:76:11 | M9 | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | M10 | -| LoopUnrolling.cs:85:10:85:12 | exit M10 | LoopUnrolling.cs:85:10:85:12 | M10 | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:85:10:85:12 | Exit | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:85:10:85:12 | Normal Exit | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:86:5:92:5 | After {...} | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:87:9:87:34 | After ... ...; | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:87:13:87:14 | access to local variable xs | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:87:13:87:33 | After String[,] xs = ... | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:87:13:87:33 | Before String[,] xs = ... | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:87:18:87:33 | After array creation of type String[,] | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:87:18:87:33 | Before array creation of type String[,] | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:89:9:91:9 | After {...} | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:90:13:90:32 | After call to method WriteLine | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:90:13:90:32 | Before call to method WriteLine | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:90:13:90:33 | After ...; | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:85:10:85:12 | M10 | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | M11 | -| LoopUnrolling.cs:94:10:94:12 | exit M11 | LoopUnrolling.cs:94:10:94:12 | M11 | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:94:10:94:12 | Exit | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:94:10:94:12 | Normal Exit | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:95:5:101:5 | After {...} | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:96:9:96:34 | After ... ...; | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:96:13:96:14 | access to local variable xs | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:96:13:96:33 | After String[,] xs = ... | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:96:13:96:33 | Before String[,] xs = ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:96:18:96:33 | After array creation of type String[,] | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:96:18:96:33 | Before array creation of type String[,] | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:98:9:100:9 | After {...} | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:99:13:99:32 | After call to method WriteLine | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:99:13:99:32 | Before call to method WriteLine | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:99:13:99:33 | After ...; | 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 | After call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | After call to method | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | Before call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | Exit | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | C1 | | 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 | -| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | MultiImplementationA.cs:6:22:6:31 | get_P1 | -| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:6:22:6:31 | Before throw ... | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:6:22:6:31 | Exceptional Exit | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:6:22:6:31 | Exit | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:6:22:6:31 | Normal Exit | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | get_P1 | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:21:7:23 | get_P2 | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 | MultiImplementationA.cs:7:21:7:23 | get_P2 | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | MultiImplementationA.cs:7:21:7:23 | get_P2 | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | MultiImplementationA.cs:7:21:7:23 | get_P2 | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:21:7:23 | get_P2 | +| MultiImplementationA.cs:7:21:7:23 | Exceptional Exit | MultiImplementationA.cs:7:21:7:23 | get_P2 | +| MultiImplementationA.cs:7:21:7:23 | Exit | MultiImplementationA.cs:7:21:7:23 | get_P2 | +| MultiImplementationA.cs:7:21:7:23 | Normal Exit | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:21:7:23 | get_P2 | +| MultiImplementationA.cs:7:27:7:37 | Before throw ...; | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:21:7:23 | get_P2 | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:41:7:43 | set_P2 | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 | MultiImplementationA.cs:7:41:7:43 | set_P2 | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | MultiImplementationA.cs:7:41:7:43 | set_P2 | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | MultiImplementationA.cs:7:41:7:43 | set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:41:7:43 | set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Exceptional Exit | MultiImplementationA.cs:7:41:7:43 | set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Exit | MultiImplementationA.cs:7:41:7:43 | set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Normal Exit | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:41:7:43 | set_P2 | +| MultiImplementationA.cs:7:47:7:57 | Before throw ...; | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationA.cs:7:53:7:56 | null | MultiImplementationA.cs:7:41:7:43 | set_P2 | -| 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:16:8:16 | exit M (abnormal) | MultiImplementationA.cs:8:16:8:16 | M | -| MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:8:16:8:16 | Exceptional Exit | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:8:16:8:16 | Exit | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:8:16:8:16 | Normal Exit | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:8:23:8:32 | Before throw ... | 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: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:11:7:11:8 | Entry | 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 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:16 | After access to field F | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:16 | Before access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:20 | After ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:20 | Before ... = ... | 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 | Entry | MultiImplementationA.cs:14:31:14:31 | get_Item | +| MultiImplementationA.cs:14:31:14:31 | Exceptional Exit | MultiImplementationA.cs:14:31:14:31 | get_Item | +| MultiImplementationA.cs:14:31:14:31 | Exit | MultiImplementationA.cs:14:31:14:31 | get_Item | +| MultiImplementationA.cs:14:31:14:31 | Normal Exit | 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 | -| 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 | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | MultiImplementationA.cs:14:31:14:31 | get_Item | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | MultiImplementationA.cs:14:31:14:31 | get_Item | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:36:15:38 | get_Item | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item | MultiImplementationA.cs:15:36:15:38 | get_Item | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | MultiImplementationA.cs:15:36:15:38 | get_Item | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item (normal) | MultiImplementationA.cs:15:36:15:38 | get_Item | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:36:15:38 | get_Item | +| MultiImplementationA.cs:15:36:15:38 | Exceptional Exit | MultiImplementationA.cs:15:36:15:38 | get_Item | +| MultiImplementationA.cs:15:36:15:38 | Exit | MultiImplementationA.cs:15:36:15:38 | get_Item | +| MultiImplementationA.cs:15:36:15:38 | Normal Exit | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | get_Item | +| MultiImplementationA.cs:15:42:15:50 | Before return ...; | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationA.cs:15:49:15:49 | access to parameter s | MultiImplementationA.cs:15:36:15:38 | get_Item | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:54:15:56 | set_Item | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item | MultiImplementationA.cs:15:54:15:56 | set_Item | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | set_Item | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:54:15:56 | set_Item | +| MultiImplementationA.cs:15:54:15:56 | Exit | MultiImplementationA.cs:15:54:15:56 | set_Item | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | set_Item | | MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:54:15:56 | set_Item | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:16:17:16:18 | M1 | -| MultiImplementationA.cs:16:17:16:18 | exit M1 | MultiImplementationA.cs:16:17:16:18 | M1 | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | M1 | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:16:17:16:18 | M1 | +| MultiImplementationA.cs:16:17:16:18 | Exit | MultiImplementationA.cs:16:17:16:18 | M1 | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:16:17:16:18 | M1 | +| MultiImplementationA.cs:17:5:19:5 | After {...} | 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 | Entry | MultiImplementationA.cs:18:9:18:22 | M2 | +| MultiImplementationA.cs:18:9:18:22 | Exit | MultiImplementationA.cs:18:9:18:22 | M2 | | MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:16:17:16:18 | M1 | -| MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | M2 | -| MultiImplementationA.cs:18:9:18:22 | exit M2 | MultiImplementationA.cs:18:9:18:22 | M2 | -| MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:9:18:22 | M2 | +| MultiImplementationA.cs:18:9:18:22 | Normal Exit | 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 | After call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | After call to method | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Before call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Exceptional Exit | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Exit | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Normal Exit | MultiImplementationA.cs:20:12:20:13 | C2 | | 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 | After {...} | 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 | After access to field F | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:24:20:24 | Before access to field F | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:24:20:28 | After ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:24:20:28 | Before ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:24:20:29 | After ...; | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:28:20:28 | access to parameter i | 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 | 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:12:21:13 | Entry | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationA.cs:21:12:21:13 | Exit | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationA.cs:21:19:21:22 | After call to constructor C2 | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationA.cs:21:27:21:29 | {...} | MultiImplementationA.cs:21:12:21:13 | C2 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:6:22:7 | ~C2 | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 | MultiImplementationA.cs:22:6:22:7 | ~C2 | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | MultiImplementationA.cs:22:6:22:7 | ~C2 | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 (normal) | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationA.cs:22:6:22:7 | Exceptional Exit | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationA.cs:22:6:22:7 | Exit | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationA.cs:22:6:22:7 | Normal Exit | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | ~C2 | -| 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: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:28:23:35 | Entry | MultiImplementationA.cs:23:28:23:35 | implicit conversion | +| MultiImplementationA.cs:23:28:23:35 | Exceptional Exit | MultiImplementationA.cs:23:28:23:35 | implicit conversion | +| MultiImplementationA.cs:23:28:23:35 | Exit | MultiImplementationA.cs:23:28:23:35 | implicit conversion | +| MultiImplementationA.cs:23:28:23:35 | Normal Exit | 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 | After access to property P | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:16:24:16 | Before access to property P | MultiImplementationA.cs:11:7:11:8 | | | 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:32:24:34 | After ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:32:24:34 | Before ... = ... | 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 | After call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | After call to method | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | Before call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | Exit | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | C3 | | 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 | -| MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:21:30:23 | get_P3 | +| MultiImplementationA.cs:30:21:30:23 | Entry | MultiImplementationA.cs:30:21:30:23 | get_P3 | +| MultiImplementationA.cs:30:21:30:23 | Exceptional Exit | MultiImplementationA.cs:30:21:30:23 | get_P3 | +| MultiImplementationA.cs:30:21:30:23 | Exit | MultiImplementationA.cs:30:21:30:23 | get_P3 | +| MultiImplementationA.cs:30:28:30:37 | Before throw ... | MultiImplementationA.cs:30:21:30:23 | get_P3 | | 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 | After call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | After call to method | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | Before call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | Exit | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | C4 | | 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 | -| MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | MultiImplementationA.cs:36:9:36:10 | M1 | -| MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | MultiImplementationA.cs:36:9:36:10 | M1 | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:9:36:10 | M1 | +| MultiImplementationA.cs:36:9:36:10 | Exceptional Exit | MultiImplementationA.cs:36:9:36:10 | M1 | +| MultiImplementationA.cs:36:9:36:10 | Exit | MultiImplementationA.cs:36:9:36:10 | M1 | +| MultiImplementationA.cs:36:9:36:10 | Normal Exit | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:9:36:10 | M1 | +| MultiImplementationA.cs:36:16:36:26 | Before throw ...; | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:9:36:10 | M1 | -| MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | M2 | -| MultiImplementationA.cs:37:9:37:10 | exit M2 | MultiImplementationA.cs:37:9:37:10 | M2 | -| MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | MultiImplementationA.cs:37:9:37:10 | M2 | +| MultiImplementationA.cs:37:9:37:10 | Entry | MultiImplementationA.cs:37:9:37:10 | M2 | +| MultiImplementationA.cs:37:9:37:10 | Exceptional Exit | MultiImplementationA.cs:37:9:37:10 | M2 | +| MultiImplementationA.cs:37:9:37:10 | Exit | MultiImplementationA.cs:37:9:37:10 | M2 | | MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:9:37:10 | M2 | +| MultiImplementationA.cs:37:16:37:26 | Before throw ...; | MultiImplementationA.cs:37:9:37:10 | M2 | | 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 | After call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | After call to method | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | Before call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | C1 | | 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 | +| MultiImplementationB.cs:4:27:4:35 | Before return ...; | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationA.cs:7:21:7:23 | get_P2 | | 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 | After access to field F | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:11:16:11:16 | Before access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:11:16:11:20 | After ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:11:16:11:20 | Before ... = ... | 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 | Before throw ... | MultiImplementationA.cs:14:31:14:31 | get_Item | | 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 | +| MultiImplementationB.cs:13:42:13:52 | Before throw ...; | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationB.cs:13:48:13:51 | null | 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 | After {...} | MultiImplementationA.cs:16:17:16:18 | M1 | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationA.cs:16:17:16:18 | M1 | +| MultiImplementationB.cs:16:9:16:31 | Entry | MultiImplementationB.cs:16:9:16:31 | M2 | +| MultiImplementationB.cs:16:9:16:31 | Exceptional Exit | MultiImplementationB.cs:16:9:16:31 | M2 | +| MultiImplementationB.cs:16:9:16:31 | Exit | MultiImplementationB.cs:16:9:16:31 | M2 | | MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationA.cs:16:17:16:18 | M1 | -| MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | M2 | -| MultiImplementationB.cs:16:9:16:31 | exit M2 | MultiImplementationB.cs:16:9:16:31 | M2 | -| MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | M2 | +| MultiImplementationB.cs:16:21:16:30 | Before throw ... | MultiImplementationB.cs:16:9:16:31 | M2 | | 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 | After call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | After call to method | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | Before call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | C2 | | 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 | Before throw ...; | 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 | +| MultiImplementationB.cs:19:19:19:22 | After call to constructor C2 | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationB.cs:20:13:20:23 | Before throw ...; | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationB.cs:21:50:21:59 | Before throw ... | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | 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 | After access to property P | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:16:22:16 | Before access to property P | MultiImplementationA.cs:11:7:11:8 | | | 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:32:22:34 | After ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:32:22:34 | Before ... = ... | 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 | After call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:25:7:25:8 | After call to method | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:25:7:25:8 | Before call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:25:7:25:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | C3 | | 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 | After call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:30:15:30:16 | After call to method | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:30:15:30:16 | Before call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:30:15:30:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | C4 | | 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 | After call to constructor Object | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | After call to method | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | Before call to constructor Object | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | Before call to method | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | Entry | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | Exit | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | Normal Exit | 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 | 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 | -| NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:9:3:10 | Exit | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:9:3:10 | Normal Exit | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | NullCoalescing.cs:3:9:3:10 | M1 | | NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:9:3:10 | M1 | | NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:9:3:10 | M1 | | NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:9:3:10 | M1 | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:9:5:10 | exit M2 | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:9:5:10 | exit M2 (normal) | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:9:5:10 | Exit | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:9:5:10 | Normal Exit | NullCoalescing.cs:5:9:5:10 | M2 | | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | NullCoalescing.cs:5:9:5:10 | M2 | | NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:30:5:34 | After false [false] | NullCoalescing.cs:5:9:5:10 | M2 | | NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:9:5:10 | M2 | | NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:9:5:10 | M2 | | NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:7:12:7:13 | exit M3 | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:7:12:7:13 | exit M3 (normal) | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:12:7:13 | Exit | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:12:7:13 | Normal Exit | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:12:7:13 | M3 | | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:12:7:13 | M3 | | NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | NullCoalescing.cs:7:12:7:13 | M3 | | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:12:7:13 | M3 | | NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | | NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:12:9:13 | exit M4 | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:12:9:13 | exit M4 (normal) | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:12:9:13 | Exit | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:12:9:13 | Normal Exit | NullCoalescing.cs:9:12:9:13 | M4 | | NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:12:9:13 | M4 | | NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | NullCoalescing.cs:9:12:9:13 | M4 | | NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | NullCoalescing.cs:9:12:9:13 | M4 | | NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:12:9:13 | M4 | | NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:51:9:52 | After "" [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:51:9:52 | After "" [null] | NullCoalescing.cs:9:12:9:13 | M4 | | NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:9:11:10 | exit M5 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:9:11:10 | exit M5 (normal) | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:57:9:58 | "" | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:9:11:10 | Exit | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:9:11:10 | Normal Exit | NullCoalescing.cs:11:9:11:10 | M5 | | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:9:11:10 | M5 | | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:9:11:10 | M5 | | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:51:11:58 | [false] ... && ... | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:51:11:58 | [true] ... && ... | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:9:11:10 | M5 | | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:9:11:10 | M5 | | NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:9:11:10 | M5 | | NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:13:10:13:11 | M6 | -| NullCoalescing.cs:13:10:13:11 | exit M6 | NullCoalescing.cs:13:10:13:11 | M6 | -| NullCoalescing.cs:13:10:13:11 | exit M6 (normal) | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:13:10:13:11 | Exit | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:13:10:13:11 | Normal Exit | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:14:5:18:5 | After {...} | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:14:5:18:5 | {...} | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:9:15:32 | After ... ...; | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:13:15:13 | access to local variable j | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:13:15:31 | After Int32 j = ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:13:15:31 | Before Int32 j = ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:17:15:26 | Before (...) ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:15:23:15:26 | null | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:9:16:26 | After ... ...; | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:13:16:13 | access to local variable s | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:13:16:25 | After String s = ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:13:16:25 | Before String s = ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:17:16:18 | After "" [non-null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:17:16:18 | After "" [null] | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:23:16:25 | "a" | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:9:17:9 | access to local variable j | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:9:17:24 | After ... = ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:9:17:24 | Before ... = ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:9:17:25 | After ...; | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:13:17:19 | Before (...) ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | 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 | | +| NullCoalescing.cs:17:24:17:24 | 1 | NullCoalescing.cs:13:10:13:11 | M6 | +| PartialImplementationA.cs:1:15:1:21 | Entry | 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 | Normal Exit | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationA.cs:3:12:3:18 | After call to constructor Object | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | After call to method | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | Before call to constructor Object | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | Before call to method | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | Entry | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | Exit | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | Normal Exit | PartialImplementationA.cs:3:12:3:18 | Partial | | 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 | After access to field F | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:3:16:3:16 | Before access to field F | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:3:16:3:20 | After ... = ... | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:3:16:3:20 | Before ... = ... | 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 | After call to constructor Object | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | After call to method | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | Before call to constructor Object | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | Before call to method | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | Exit | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | Normal Exit | PartialImplementationB.cs:4:12:4:18 | Partial | | 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 | After access to property P | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:16:5:16 | Before access to property P | PartialImplementationA.cs:1:15:1:21 | | | 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:32:5:34 | After ... = ... | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:32:5:34 | Before ... = ... | 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 | After call to constructor Object | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | After call to method | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | Before call to constructor Object | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | Before call to method | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | Exit | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | Normal Exit | Patterns.cs:3:7:3:14 | Patterns | | 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 | -| Patterns.cs:5:10:5:11 | exit M1 (normal) | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:5:10:5:11 | Exit | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:5:10:5:11 | Normal Exit | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:6:5:43:5 | After {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:6:5:43:5 | {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:7:9:7:24 | After ... ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:7:16:7:16 | access to local variable o | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:7:16:7:23 | After Object o = ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:7:16:7:23 | Before Object o = ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:7:20:7:23 | null | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:9:9:11:9 | After {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:9:9:11:9 | {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:10:13:10:42 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:10:13:10:42 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:10:13:10:42 | call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:10:13:10:43 | ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:10:13:10:43 | After ...; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:10:31:10:41 | After $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:10:31:10:41 | Before $"..." | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:10:33:10:36 | "int " | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:10:37:10:40 | After {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:10:37:10:40 | Before {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:10:37:10:40 | {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:10:38:10:39 | access to local variable i1 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:13:9:15:9 | After {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:13:9:15:9 | {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:14:13:14:45 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:14:13:14:45 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:14:13:14:45 | call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:14:13:14:46 | ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:14:13:14:46 | After ...; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:14:31:14:44 | After $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:14:31:14:44 | Before $"..." | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:14:33:14:39 | "string " | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:14:40:14:43 | After {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:14:40:14:43 | Before {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:14:40:14:43 | {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:14:41:14:42 | access to local variable s1 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:16:18:16:28 | [false] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:17:9:18:9 | {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:20:17:20:17 | access to local variable o | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:23:17:23:22 | Before break; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:23:17:23:22 | break; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:30:24:35 | Before ... > ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:24:35:24:35 | 0 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:25:17:25:51 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:25:17:25:51 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:25:17:25:52 | ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:25:17:25:52 | After ...; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:25:35:25:50 | After $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:25:35:25:50 | Before $"..." | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:25:46:25:49 | After {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:25:46:25:49 | Before {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:25:46:25:49 | {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:25:47:25:48 | access to local variable i2 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:26:17:26:22 | Before break; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:26:17:26:22 | break; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:28:17:28:46 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:28:17:28:46 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:28:17:28:47 | ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:28:17:28:47 | After ...; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:28:35:28:45 | After $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:28:35:28:45 | Before $"..." | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:28:37:28:40 | "int " | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:28:41:28:44 | After {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:28:41:28:44 | Before {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:28:41:28:44 | {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:28:42:28:43 | access to local variable i3 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:29:17:29:22 | Before break; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:29:17:29:22 | break; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:31:17:31:49 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:31:17:31:49 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:31:17:31:50 | ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:31:17:31:50 | After ...; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:31:35:31:48 | After $"..." | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:31:35:31:48 | Before $"..." | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:31:37:31:43 | "string " | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:31:44:31:47 | After {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:31:44:31:47 | Before {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:31:44:31:47 | {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:31:45:31:46 | access to local variable s2 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:32:17:32:22 | Before break; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:32:17:32:22 | break; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:34:17:34:22 | Before break; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:34:17:34:22 | break; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:35:13:35:20 | After default: [match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:35:13:35:20 | default: | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:36:17:36:51 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:36:17:36:51 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:36:17:36:51 | call to method WriteLine | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:36:17:36:52 | ...; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:36:17:36:52 | After ...; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:36:35:36:50 | "Something else" | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:37:17:37:22 | Before break; | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:37:17:37:22 | break; | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:40:9:42:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:40:17:40:17 | access to local variable o | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:47:24:47:25 | enter M2 | Patterns.cs:47:24:47:25 | M2 | -| Patterns.cs:47:24:47:25 | exit M2 | Patterns.cs:47:24:47:25 | M2 | -| Patterns.cs:47:24:47:25 | exit M2 (normal) | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:47:24:47:25 | Exit | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:47:24:47:25 | Normal Exit | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:14:48:20 | After not ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:14:48:20 | not ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:18:48:20 | a | Patterns.cs:47:24:47:25 | M2 | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:50:24:50:25 | exit M3 | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:50:24:50:25 | exit M3 (normal) | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:50:24:50:25 | Exit | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:50:24:50:25 | Normal Exit | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | After ... is ... [true] | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | Before ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:14:51:21 | Before not ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:14:51:21 | not ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:18:51:21 | null | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:30:51:30 | 1 | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:39:51:39 | 2 | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:53:24:53:25 | exit M4 | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:53:24:53:25 | exit M4 (normal) | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:53:24:53:25 | Exit | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:53:24:53:25 | Normal Exit | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:14:54:37 | After not ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:14:54:37 | not ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:18:54:37 | After { ... } | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:18:54:37 | Before { ... } | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:27:54:35 | [match] { ... } | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:27:54:35 | [no-match] { ... } | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:27:54:35 | After { ... } | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:27:54:35 | Before { ... } | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:27:54:35 | { ... } | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:33:54:33 | 1 | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:56:26:56:27 | exit M5 | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:56:26:56:27 | exit M5 (normal) | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:56:26:56:27 | Exit | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:56:26:56:27 | Normal Exit | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:57:5:63:5 | {...} | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:58:9:62:10 | Before return ...; | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:60:13:60:17 | After not ... | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:60:13:60:17 | Before not ... | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:60:17:60:17 | 1 | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:61:13:61:13 | _ | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:61:13:61:24 | After ... => ... [match] | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:61:18:61:24 | "other" | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:65:26:65:27 | exit M6 | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:65:26:65:27 | exit M6 (normal) | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:65:26:65:27 | Exit | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:65:26:65:27 | Normal Exit | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:66:5:72:5 | {...} | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:67:9:71:10 | Before return ...; | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:67:16:67:16 | 2 | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:17 | After not ... | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:17 | Before not ... | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:69:17:69:17 | 2 | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:22:69:33 | "impossible" | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:70:13:70:13 | 2 | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:65:26:65:27 | M6 | | Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:74:26:74:27 | exit M7 | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:74:26:74:27 | exit M7 (normal) | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:74:26:74:27 | Exit | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:74:26:74:27 | Normal Exit | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:75:5:83:5 | {...} | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:76:9:82:10 | Before return ...; | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:78:13:78:15 | > ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:78:13:78:15 | After > ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:78:13:78:15 | Before > ... | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:78:15:78:15 | 1 | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:79:13:79:15 | < ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:79:13:79:15 | After < ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:79:13:79:15 | Before < ... | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:79:15:79:15 | 0 | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:80:13:80:13 | 1 | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:80:18:80:20 | "1" | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:81:13:81:13 | _ | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:81:13:81:20 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:81:18:81:20 | "0" | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:26:85:27 | exit M8 | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:26:85:27 | exit M8 (normal) | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:26:85:27 | Exit | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:26:85:27 | Normal Exit | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | After ... is ... [true] | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | Before ... is ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:49:85:53 | [match] not ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:44:85:53 | After ... or ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:44:85:53 | Before ... or ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:49:85:53 | After not ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:49:85:53 | Before not ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:26:87:27 | exit M9 | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:26:87:27 | exit M9 (normal) | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:26:87:27 | Exit | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:26:87:27 | Normal Exit | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | After ... is ... [true] | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | Before ... is ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:50:87:54 | [no-match] not ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:44:87:54 | After ... and ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:44:87:54 | Before ... and ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:50:87:54 | After not ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:50:87:54 | Before not ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:93:17:93:19 | exit M10 | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:93:17:93:19 | Exit | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:93:17:93:19 | Normal Exit | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:94:5:99:5 | After {...} | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:94:5:99:5 | {...} | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:13:95:16 | this access | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | After ... is ... [true] | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:29:95:38 | ... or ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:29:95:38 | After ... or ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:29:95:38 | Before ... or ... | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:96:9:98:9 | After {...} | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:96:9:98:9 | {...} | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:97:13:97:38 | After call to method WriteLine | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:97:13:97:38 | Before call to method WriteLine | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:97:13:97:38 | call to method WriteLine | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:97:13:97:39 | After ...; | 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 | After call to constructor Object | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | After call to method | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | Before call to constructor Object | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | Before call to method | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | Exit | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | Normal Exit | 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 | 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 | -| PostDominance.cs:5:10:5:11 | exit M1 (normal) | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:5:10:5:11 | Exit | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:5:10:5:11 | Normal Exit | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:6:5:8:5 | After {...} | PostDominance.cs:5:10:5:11 | M1 | | PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:7:9:7:28 | After call to method WriteLine | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:7:9:7:28 | Before call to method WriteLine | PostDominance.cs:5:10:5:11 | M1 | | PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:5:10:5:11 | M1 | | PostDominance.cs:7:9:7:29 | ...; | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:7:9:7:29 | After ...; | PostDominance.cs:5:10:5:11 | M1 | | PostDominance.cs:7:27:7:27 | access to parameter s | PostDominance.cs:5:10:5:11 | M1 | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:10:10:10:11 | exit M2 | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:10:10:10:11 | Exit | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:11:5:15:5 | After {...} | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:11:5:15:5 | {...} | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:9:13:19 | After if (...) ... | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:12:18:12:21 | null | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:14:9:14:28 | After call to method WriteLine | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:14:9:14:28 | Before call to method WriteLine | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:14:9:14:28 | call to method WriteLine | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:14:9:14:29 | After ...; | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:14:27:14:27 | access to parameter s | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:17:10:17:11 | exit M3 | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:17:10:17:11 | exit M3 (normal) | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:17:10:17:11 | Exceptional Exit | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:17:10:17:11 | Normal Exit | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:18:5:22:5 | After {...} | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:18:5:22:5 | {...} | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:9:20:55 | After if (...) ... | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:19:18:19:21 | null | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:21:9:21:28 | After call to method WriteLine | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:21:9:21:28 | Before call to method WriteLine | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:21:9:21:29 | After ...; | 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 | After call to constructor Object | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | After call to method | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | Before call to constructor Object | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | Before call to method | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | Exit | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | Normal Exit | 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 | 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 | -| Qualifiers.cs:7:16:7:21 | exit Method (normal) | Qualifiers.cs:7:16:7:21 | Method | +| Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Method | +| Qualifiers.cs:7:16:7:21 | Exit | Qualifiers.cs:7:16:7:21 | Method | +| Qualifiers.cs:7:16:7:21 | Normal Exit | Qualifiers.cs:7:16:7:21 | Method | | Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:16:7:21 | Method | -| Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:23:8:34 | StaticMethod | -| Qualifiers.cs:8:23:8:34 | exit StaticMethod | Qualifiers.cs:8:23:8:34 | StaticMethod | -| Qualifiers.cs:8:23:8:34 | exit StaticMethod (normal) | Qualifiers.cs:8:23:8:34 | StaticMethod | +| Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | StaticMethod | +| Qualifiers.cs:8:23:8:34 | Exit | Qualifiers.cs:8:23:8:34 | StaticMethod | +| Qualifiers.cs:8:23:8:34 | Normal Exit | Qualifiers.cs:8:23:8:34 | StaticMethod | | Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:23:8:34 | StaticMethod | -| Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:10:10:10:10 | M | -| Qualifiers.cs:10:10:10:10 | exit M | Qualifiers.cs:10:10:10:10 | M | -| Qualifiers.cs:10:10:10:10 | exit M (normal) | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:10:10:10:10 | Exit | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:10:10:10:10 | Normal Exit | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:11:5:31:5 | After {...} | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:11:5:31:5 | {...} | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:12:9:12:22 | After ... ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:12:13:12:13 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:12:13:12:21 | After Qualifiers q = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:12:13:12:21 | Before Qualifiers q = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:12:17:12:21 | After access to field Field | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:12:17:12:21 | Before access to field Field | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:12:17:12:21 | this access | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:13:9:13:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:13:9:13:20 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:13:9:13:20 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:13:9:13:21 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:13:13:13:20 | After access to property Property | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:13:13:13:20 | Before access to property Property | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:13:13:13:20 | this access | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:14:9:14:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:14:9:14:20 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:14:9:14:20 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:14:9:14:21 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:14:13:14:20 | After call to method Method | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:14:13:14:20 | Before call to method Method | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:14:13:14:20 | this access | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:16:9:16:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:16:9:16:22 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:16:9:16:22 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:16:9:16:23 | After ...; | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:16:13:16:16 | this access | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:16:13:16:22 | After access to field Field | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:16:13:16:22 | Before access to field Field | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:17:9:17:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:17:9:17:25 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:17:9:17:25 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:17:9:17:26 | After ...; | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:17:13:17:16 | this access | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:17:13:17:25 | After access to property Property | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:17:13:17:25 | Before access to property Property | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:18:9:18:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:18:9:18:25 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:18:9:18:25 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:18:9:18:26 | After ...; | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:18:13:18:16 | this access | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:18:13:18:25 | After call to method Method | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:18:13:18:25 | Before call to method Method | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:20:9:20:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:20:9:20:23 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:20:9:20:23 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:20:9:20:24 | After ...; | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:20:13:20:23 | access to field StaticField | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:21:9:21:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:21:9:21:26 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:21:9:21:26 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:21:9:21:27 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:21:13:21:26 | After access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:21:13:21:26 | Before access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:22:9:22:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:22:9:22:26 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:22:9:22:26 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:22:9:22:27 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:22:13:22:26 | After call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:22:13:22:26 | Before call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:24:9:24:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:24:9:24:34 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:24:9:24:34 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:24:9:24:35 | After ...; | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:24:13:24:34 | access to field StaticField | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:25:9:25:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:25:9:25:37 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:25:9:25:37 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:25:9:25:38 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:25:13:25:37 | After access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:25:13:25:37 | Before access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:26:9:26:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:26:9:26:37 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:26:9:26:37 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:26:9:26:38 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:26:13:26:37 | After call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:26:13:26:37 | Before call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:28:9:28:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:28:9:28:40 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:28:9:28:40 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:28:9:28:41 | After ...; | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:28:13:28:34 | access to field StaticField | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:28:13:28:40 | After access to field Field | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:28:13:28:40 | Before access to field Field | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:9:29:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:9:29:46 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:9:29:46 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:9:29:47 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:13:29:37 | After access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:13:29:37 | Before access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:13:29:46 | After access to property Property | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:29:13:29:46 | Before access to property Property | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:9:30:9 | access to local variable q | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:9:30:46 | After ... = ... | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:9:30:46 | Before ... = ... | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:9:30:47 | After ...; | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:13:30:37 | After call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:13:30:37 | Before call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:13:30:46 | After call to method Method | Qualifiers.cs:10:10:10:10 | M | +| Qualifiers.cs:30:13:30:46 | Before call to method Method | 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 | After call to constructor Object | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | After call to method | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | Before call to constructor Object | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | Before call to method | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | Exit | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | Normal Exit | 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 | 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 | -| Switch.cs:5:10:5:11 | exit M1 (normal) | Switch.cs:5:10:5:11 | M1 | +| Switch.cs:5:10:5:11 | Entry | Switch.cs:5:10:5:11 | M1 | +| Switch.cs:5:10:5:11 | Exit | Switch.cs:5:10:5:11 | M1 | +| Switch.cs:5:10:5:11 | Normal Exit | Switch.cs:5:10:5:11 | M1 | +| Switch.cs:6:5:8:5 | After {...} | Switch.cs:5:10:5:11 | M1 | | Switch.cs:6:5:8:5 | {...} | Switch.cs:5:10:5:11 | M1 | +| Switch.cs:7:9:7:22 | After switch (...) {...} | Switch.cs:5:10:5:11 | M1 | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:5:10:5:11 | M1 | | Switch.cs:7:17:7:17 | access to parameter o | Switch.cs:5:10:5:11 | M1 | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:10:10:10:11 | exit M2 | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:10:10:10:11 | exit M2 (abnormal) | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:10:10:10:11 | Exit | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | M2 | | Switch.cs:11:5:33:5 | {...} | Switch.cs:10:10:10:11 | M2 | | Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:10:10:10:11 | M2 | | Switch.cs:12:17:12:17 | access to parameter o | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:14:13:14:21 | case ...: | Switch.cs:10:10:10:11 | M2 | | Switch.cs:14:18:14:20 | "a" | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:15:17:15:23 | Before return ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:15:17:15:23 | return ...; | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:16:13:16:19 | case ...: | Switch.cs:10:10:10:11 | M2 | | Switch.cs:16:18:16:18 | 0 | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:17:17:17:38 | Before throw ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:17:23:17:37 | After object creation of type Exception | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:17:23:17:37 | Before object creation of type Exception | Switch.cs:10:10:10:11 | M2 | | Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:18:13:18:22 | case ...: | Switch.cs:10:10:10:11 | M2 | | Switch.cs:18:18:18:21 | null | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:19:17:19:29 | Before goto default; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:19:17:19:29 | goto default; | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:20:13:20:23 | case ...: | Switch.cs:10:10:10:11 | M2 | | Switch.cs:20:18:20:22 | Int32 i | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:21:17:22:27 | After if (...) ... | Switch.cs:10:10:10:11 | M2 | | Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:10:10:10:11 | M2 | | Switch.cs:21:21:21:21 | access to parameter o | Switch.cs:10:10:10:11 | M2 | | Switch.cs:21:21:21:29 | ... == ... | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:21:21:21:29 | Before ... == ... | Switch.cs:10:10:10:11 | M2 | | Switch.cs:21:26:21:29 | null | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:22:21:22:27 | Before return ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:22:21:22:27 | return ...; | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:23:17:23:28 | Before goto case ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:23:27:23:27 | 0 | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:13:24:56 | case ...: | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:18:24:25 | String s | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:39 | After access to property Length | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:39 | Before access to property Length | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:32:24:39 | access to property Length | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:32:24:43 | ... > ... | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:24:32:24:55 | [false] ... && ... | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:43 | Before ... > ... | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:55 | After ... && ... [true] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:43:24:43 | 0 | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:48:24:55 | ... != ... | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:48:24:55 | Before ... != ... | Switch.cs:10:10:10:11 | M2 | | Switch.cs:24:53:24:55 | "a" | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:25:17:25:36 | After call to method WriteLine | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:25:17:25:36 | Before call to method WriteLine | Switch.cs:10:10:10:11 | M2 | | Switch.cs:25:17:25:36 | call to method WriteLine | Switch.cs:10:10:10:11 | M2 | | Switch.cs:25:17:25:37 | ...; | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:25:17:25:37 | After ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:25:35:25:35 | access to local variable s | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:26:17:26:23 | Before return ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:26:17:26:23 | return ...; | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:27:13:27:39 | case ...: | Switch.cs:10:10:10:11 | M2 | | Switch.cs:27:18:27:25 | Double d | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:27:32:27:38 | Before call to method Throw | Switch.cs:10:10:10:11 | M2 | | Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | M2 | | Switch.cs:28:13:28:17 | Label: | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:29:17:29:23 | Before return ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:29:17:29:23 | return ...; | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:30:13:30:20 | default: | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:31:17:31:27 | Before goto ...; | Switch.cs:10:10:10:11 | M2 | | Switch.cs:31:17:31:27 | goto ...; | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:35:10:35:11 | M3 | -| Switch.cs:35:10:35:11 | exit M3 | Switch.cs:35:10:35:11 | M3 | -| Switch.cs:35:10:35:11 | exit M3 (abnormal) | Switch.cs:35:10:35:11 | M3 | +| Switch.cs:35:10:35:11 | Entry | Switch.cs:35:10:35:11 | M3 | +| Switch.cs:35:10:35:11 | Exceptional Exit | Switch.cs:35:10:35:11 | M3 | +| Switch.cs:35:10:35:11 | Exit | Switch.cs:35:10:35:11 | M3 | | Switch.cs:36:5:42:5 | {...} | Switch.cs:35:10:35:11 | M3 | | Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:35:10:35:11 | M3 | +| Switch.cs:37:17:37:23 | Before call to method Throw | Switch.cs:35:10:35:11 | M3 | | Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | M3 | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:44:10:44:11 | exit M4 | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:44:10:44:11 | Exit | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:44:10:44:11 | Normal Exit | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:45:5:53:5 | After {...} | Switch.cs:44:10:44:11 | M4 | | Switch.cs:45:5:53:5 | {...} | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:44:10:44:11 | M4 | | Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:44:10:44:11 | M4 | | Switch.cs:46:17:46:17 | access to parameter o | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 | | Switch.cs:48:13:48:23 | case ...: | Switch.cs:44:10:44:11 | M4 | | Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:49:17:49:22 | Before break; | Switch.cs:44:10:44:11 | M4 | | Switch.cs:49:17:49:22 | break; | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 | | Switch.cs:50:13:50:39 | case ...: | Switch.cs:44:10:44:11 | M4 | | Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:44:10:44:11 | M4 | | Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:44:10:44:11 | M4 | | Switch.cs:50:30:50:38 | ... != ... | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:30:50:38 | Before ... != ... | Switch.cs:44:10:44:11 | M4 | | Switch.cs:50:35:50:38 | null | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:51:17:51:22 | Before break; | Switch.cs:44:10:44:11 | M4 | | Switch.cs:51:17:51:22 | break; | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:55:10:55:11 | M5 | -| Switch.cs:55:10:55:11 | exit M5 | Switch.cs:55:10:55:11 | M5 | -| Switch.cs:55:10:55:11 | exit M5 (normal) | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:55:10:55:11 | Exit | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:55:10:55:11 | Normal Exit | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:56:5:64:5 | After {...} | Switch.cs:55:10:55:11 | M5 | | Switch.cs:56:5:64:5 | {...} | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:55:10:55:11 | M5 | | Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:55:10:55:11 | M5 | | Switch.cs:57:17:57:17 | 1 | Switch.cs:55:10:55:11 | M5 | | Switch.cs:57:17:57:21 | ... + ... | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:57:17:57:21 | After ... + ... | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:57:17:57:21 | Before ... + ... | Switch.cs:55:10:55:11 | M5 | | Switch.cs:57:21:57:21 | 2 | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 | | Switch.cs:59:13:59:19 | case ...: | Switch.cs:55:10:55:11 | M5 | | Switch.cs:59:18:59:18 | 2 | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:60:17:60:22 | Before break; | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:60:17:60:22 | break; | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 | | Switch.cs:61:13:61:19 | case ...: | Switch.cs:55:10:55:11 | M5 | | Switch.cs:61:18:61:18 | 3 | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:62:17:62:22 | Before break; | Switch.cs:55:10:55:11 | M5 | | Switch.cs:62:17:62:22 | break; | Switch.cs:55:10:55:11 | M5 | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:66:10:66:11 | M6 | -| Switch.cs:66:10:66:11 | exit M6 | Switch.cs:66:10:66:11 | M6 | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:66:10:66:11 | Exit | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:66:10:66:11 | Normal Exit | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:67:5:75:5 | After {...} | Switch.cs:66:10:66:11 | M6 | | Switch.cs:67:5:75:5 | {...} | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:66:10:66:11 | M6 | | Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:66:10:66:11 | M6 | | Switch.cs:68:17:68:25 | (...) ... | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:68:17:68:25 | After (...) ... | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:68:17:68:25 | Before (...) ... | Switch.cs:66:10:66:11 | M6 | | Switch.cs:68:25:68:25 | access to parameter s | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 | | Switch.cs:70:13:70:23 | case ...: | Switch.cs:66:10:66:11 | M6 | | Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:71:17:71:22 | Before break; | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:71:17:71:22 | break; | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 | | Switch.cs:72:13:72:20 | case ...: | Switch.cs:66:10:66:11 | M6 | | Switch.cs:72:18:72:19 | "" | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:73:17:73:22 | Before break; | Switch.cs:66:10:66:11 | M6 | | Switch.cs:73:17:73:22 | break; | Switch.cs:66:10:66:11 | M6 | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:77:10:77:11 | exit M7 | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:77:10:77:11 | Exit | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | M7 | | Switch.cs:78:5:89:5 | {...} | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:77:10:77:11 | M7 | | Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:77:10:77:11 | M7 | | Switch.cs:79:17:79:17 | access to parameter i | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 | | Switch.cs:81:13:81:19 | case ...: | Switch.cs:77:10:77:11 | M7 | | Switch.cs:81:18:81:18 | 1 | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:82:17:82:28 | Before return ...; | Switch.cs:77:10:77:11 | M7 | | Switch.cs:82:17:82:28 | return ...; | Switch.cs:77:10:77:11 | M7 | | Switch.cs:82:24:82:27 | true | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 | | Switch.cs:83:13:83:19 | case ...: | Switch.cs:77:10:77:11 | M7 | | Switch.cs:83:18:83:18 | 2 | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:84:17:85:26 | After if (...) ... | Switch.cs:77:10:77:11 | M7 | | Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:77:10:77:11 | M7 | | Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:77:10:77:11 | M7 | | Switch.cs:84:21:84:25 | ... > ... | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:84:21:84:25 | Before ... > ... | Switch.cs:77:10:77:11 | M7 | | Switch.cs:84:25:84:25 | 2 | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:85:21:85:26 | Before break; | Switch.cs:77:10:77:11 | M7 | | Switch.cs:85:21:85:26 | break; | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:86:17:86:28 | Before return ...; | Switch.cs:77:10:77:11 | M7 | | Switch.cs:86:17:86:28 | return ...; | Switch.cs:77:10:77:11 | M7 | | Switch.cs:86:24:86:27 | true | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:88:9:88:21 | Before return ...; | Switch.cs:77:10:77:11 | M7 | | Switch.cs:88:9:88:21 | return ...; | Switch.cs:77:10:77:11 | M7 | | Switch.cs:88:16:88:20 | false | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | M8 | -| Switch.cs:91:10:91:11 | exit M8 | Switch.cs:91:10:91:11 | M8 | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:91:10:91:11 | Exit | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | M8 | | Switch.cs:92:5:99:5 | {...} | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:93:9:97:9 | After switch (...) {...} | Switch.cs:91:10:91:11 | M8 | | Switch.cs:93:9:97:9 | switch (...) {...} | Switch.cs:91:10:91:11 | M8 | | Switch.cs:93:17:93:17 | access to parameter o | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:91:10:91:11 | M8 | | Switch.cs:95:13:95:23 | case ...: | Switch.cs:91:10:91:11 | M8 | | Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:96:17:96:28 | Before return ...; | Switch.cs:91:10:91:11 | M8 | | Switch.cs:96:17:96:28 | return ...; | Switch.cs:91:10:91:11 | M8 | | Switch.cs:96:24:96:27 | true | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:98:9:98:21 | Before return ...; | Switch.cs:91:10:91:11 | M8 | | Switch.cs:98:9:98:21 | return ...; | Switch.cs:91:10:91:11 | M8 | | Switch.cs:98:16:98:20 | false | Switch.cs:91:10:91:11 | M8 | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:101:9:101:10 | exit M9 | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:101:9:101:10 | Exit | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | M9 | | Switch.cs:102:5:109:5 | {...} | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:9:107:9 | After switch (...) {...} | Switch.cs:101:9:101:10 | M9 | | Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:101:9:101:10 | M9 | | Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:17:103:25 | Before access to property Length | Switch.cs:101:9:101:10 | M9 | | Switch.cs:103:17:103:25 | access to property Length | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 | | Switch.cs:105:13:105:19 | case ...: | Switch.cs:101:9:101:10 | M9 | | Switch.cs:105:18:105:18 | 0 | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:105:21:105:29 | Before return ...; | Switch.cs:101:9:101:10 | M9 | | Switch.cs:105:21:105:29 | return ...; | Switch.cs:101:9:101:10 | M9 | | Switch.cs:105:28:105:28 | 0 | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 | | Switch.cs:106:13:106:19 | case ...: | Switch.cs:101:9:101:10 | M9 | | Switch.cs:106:18:106:18 | 1 | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:106:21:106:29 | Before return ...; | Switch.cs:101:9:101:10 | M9 | | Switch.cs:106:21:106:29 | return ...; | Switch.cs:101:9:101:10 | M9 | | Switch.cs:106:28:106:28 | 1 | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:108:9:108:18 | Before return ...; | Switch.cs:101:9:101:10 | M9 | | Switch.cs:108:9:108:18 | return ...; | Switch.cs:101:9:101:10 | M9 | | Switch.cs:108:16:108:17 | -... | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:108:16:108:17 | After -... | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:108:16:108:17 | Before -... | Switch.cs:101:9:101:10 | M9 | | Switch.cs:108:17:108:17 | 1 | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:17:111:21 | Throw | -| Switch.cs:111:17:111:21 | exit Throw | Switch.cs:111:17:111:21 | Throw | -| Switch.cs:111:17:111:21 | exit Throw (abnormal) | Switch.cs:111:17:111:21 | Throw | +| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:17:111:21 | Throw | +| Switch.cs:111:17:111:21 | Exceptional Exit | Switch.cs:111:17:111:21 | Throw | +| Switch.cs:111:17:111:21 | Exit | Switch.cs:111:17:111:21 | Throw | +| Switch.cs:111:28:111:48 | Before throw ... | Switch.cs:111:17:111:21 | Throw | | Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | Throw | +| Switch.cs:111:34:111:48 | After object creation of type Exception | Switch.cs:111:17:111:21 | Throw | +| Switch.cs:111:34:111:48 | Before object creation of type Exception | Switch.cs:111:17:111:21 | Throw | | Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:17:111:21 | Throw | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:113:9:113:11 | exit M10 | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:113:9:113:11 | Exit | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | M10 | | Switch.cs:114:5:121:5 | {...} | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:113:9:113:11 | M10 | | Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:113:9:113:11 | M10 | | Switch.cs:115:17:115:17 | access to parameter s | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:115:17:115:24 | After access to property Length | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:115:17:115:24 | Before access to property Length | Switch.cs:113:9:113:11 | M10 | | Switch.cs:115:17:115:24 | access to property Length | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 | | Switch.cs:117:13:117:35 | case ...: | Switch.cs:113:9:113:11 | M10 | | Switch.cs:117:18:117:18 | 3 | Switch.cs:113:9:113:11 | M10 | | Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:113:9:113:11 | M10 | | Switch.cs:117:25:117:34 | ... == ... | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:25:117:34 | Before ... == ... | Switch.cs:113:9:113:11 | M10 | | Switch.cs:117:30:117:34 | "foo" | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:37:117:45 | Before return ...; | Switch.cs:113:9:113:11 | M10 | | Switch.cs:117:37:117:45 | return ...; | Switch.cs:113:9:113:11 | M10 | | Switch.cs:117:44:117:44 | 1 | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:13:118:34 | case ...: | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:18:118:18 | 2 | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:25:118:33 | ... == ... | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:25:118:33 | Before ... == ... | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:30:118:33 | "fu" | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:36:118:44 | Before return ...; | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:36:118:44 | return ...; | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:43:118:43 | 2 | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:120:9:120:18 | Before return ...; | Switch.cs:113:9:113:11 | M10 | | Switch.cs:120:9:120:18 | return ...; | Switch.cs:113:9:113:11 | M10 | | Switch.cs:120:16:120:17 | -... | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:120:16:120:17 | After -... | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:120:16:120:17 | Before -... | Switch.cs:113:9:113:11 | M10 | | Switch.cs:120:17:120:17 | 1 | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:123:10:123:12 | exit M11 | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:123:10:123:12 | Exit | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:124:5:127:5 | After {...} | Switch.cs:123:10:123:12 | M11 | | Switch.cs:124:5:127:5 | {...} | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:9:126:19 | After if (...) ... | Switch.cs:123:10:123:12 | M11 | | Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:123:10:123:12 | M11 | | Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:123:10:123:12 | M11 | | Switch.cs:125:24:125:29 | Boolean b | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:24:125:34 | [false] ... => ... | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:123:10:123:12 | M11 | | Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:123:10:123:12 | M11 | | Switch.cs:125:37:125:37 | _ | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:37:125:46 | After ... => ... [match] | Switch.cs:123:10:123:12 | M11 | | Switch.cs:125:42:125:46 | false | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:126:13:126:19 | Before return ...; | Switch.cs:123:10:123:12 | M11 | | Switch.cs:126:13:126:19 | return ...; | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:129:12:129:14 | exit M12 | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:129:12:129:14 | exit M12 (normal) | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:129:12:129:14 | Exit | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:129:12:129:14 | Normal Exit | Switch.cs:129:12:129:14 | M12 | | Switch.cs:130:5:132:5 | {...} | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:9:131:67 | Before return ...; | Switch.cs:129:12:129:14 | M12 | | Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:16:131:66 | Before call to method ToString | Switch.cs:129:12:129:14 | M12 | | Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:129:12:129:14 | M12 | | Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:129:12:129:14 | M12 | | Switch.cs:131:28:131:35 | String s | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:28:131:40 | [null] ... => ... | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:129:12:129:14 | M12 | | Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:129:12:129:14 | M12 | | Switch.cs:131:43:131:43 | _ | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:43:131:51 | After ... => ... [match] | Switch.cs:129:12:129:14 | M12 | | Switch.cs:131:48:131:51 | null | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:134:9:134:11 | exit M13 | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:134:9:134:11 | Exit | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | M13 | | Switch.cs:135:5:142:5 | {...} | Switch.cs:134:9:134:11 | M13 | | Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:134:9:134:11 | M13 | | Switch.cs:136:17:136:17 | access to parameter i | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:138:13:138:20 | After default: [match] | Switch.cs:134:9:134:11 | M13 | | Switch.cs:138:13:138:20 | default: | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:138:22:138:31 | Before return ...; | Switch.cs:134:9:134:11 | M13 | | Switch.cs:138:22:138:31 | return ...; | Switch.cs:134:9:134:11 | M13 | | Switch.cs:138:29:138:30 | -... | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:138:29:138:30 | After -... | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:138:29:138:30 | Before -... | Switch.cs:134:9:134:11 | M13 | | Switch.cs:138:30:138:30 | 1 | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 | | Switch.cs:139:13:139:19 | case ...: | Switch.cs:134:9:134:11 | M13 | | Switch.cs:139:18:139:18 | 1 | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:139:21:139:29 | Before return ...; | Switch.cs:134:9:134:11 | M13 | | Switch.cs:139:21:139:29 | return ...; | Switch.cs:134:9:134:11 | M13 | | Switch.cs:139:28:139:28 | 1 | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 | | Switch.cs:140:13:140:19 | case ...: | Switch.cs:134:9:134:11 | M13 | | Switch.cs:140:18:140:18 | 2 | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:140:21:140:29 | Before return ...; | Switch.cs:134:9:134:11 | M13 | | Switch.cs:140:21:140:29 | return ...; | Switch.cs:134:9:134:11 | M13 | | Switch.cs:140:28:140:28 | 2 | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:144:9:144:11 | exit M14 | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:144:9:144:11 | Exit | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | M14 | | Switch.cs:145:5:152:5 | {...} | Switch.cs:144:9:144:11 | M14 | | Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:144:9:144:11 | M14 | | Switch.cs:146:17:146:17 | access to parameter i | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 | | Switch.cs:148:13:148:19 | case ...: | Switch.cs:144:9:144:11 | M14 | | Switch.cs:148:18:148:18 | 1 | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:148:21:148:29 | Before return ...; | Switch.cs:144:9:144:11 | M14 | | Switch.cs:148:21:148:29 | return ...; | Switch.cs:144:9:144:11 | M14 | | Switch.cs:148:28:148:28 | 1 | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:149:13:149:20 | After default: [match] | Switch.cs:144:9:144:11 | M14 | | Switch.cs:149:13:149:20 | default: | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:149:22:149:31 | Before return ...; | Switch.cs:144:9:144:11 | M14 | | Switch.cs:149:22:149:31 | return ...; | Switch.cs:144:9:144:11 | M14 | | Switch.cs:149:29:149:30 | -... | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:149:29:149:30 | After -... | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:149:29:149:30 | Before -... | Switch.cs:144:9:144:11 | M14 | | Switch.cs:149:30:149:30 | 1 | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 | | Switch.cs:150:13:150:19 | case ...: | Switch.cs:144:9:144:11 | M14 | | Switch.cs:150:18:150:18 | 2 | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:150:21:150:29 | Before return ...; | Switch.cs:144:9:144:11 | M14 | | Switch.cs:150:21:150:29 | return ...; | Switch.cs:144:9:144:11 | M14 | | Switch.cs:150:28:150:28 | 2 | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:154:10:154:12 | exit M15 | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:154:10:154:12 | exit M15 (abnormal) | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:154:10:154:12 | Exit | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:154:10:154:12 | Normal Exit | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:155:5:161:5 | After {...} | Switch.cs:154:10:154:12 | M15 | | Switch.cs:155:5:161:5 | {...} | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:9:156:55 | ... ...; | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:9:156:55 | After ... ...; | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:13:156:13 | access to local variable s | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:13:156:54 | After String s = ... | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:13:156:54 | Before String s = ... | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:13:156:54 | String s = ... | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:28:156:31 | true | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:28:156:38 | ... => ... | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:36:156:38 | "a" | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:41:156:52 | ... => ... | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:154:10:154:12 | M15 | | Switch.cs:156:50:156:52 | "b" | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:154:10:154:12 | M15 | | Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:154:10:154:12 | M15 | | Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:158:13:158:48 | After call to method WriteLine | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:158:13:158:48 | Before call to method WriteLine | Switch.cs:154:10:154:12 | M15 | | Switch.cs:158:13:158:48 | call to method WriteLine | Switch.cs:154:10:154:12 | M15 | | Switch.cs:158:13:158:49 | ...; | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:158:13:158:49 | After ...; | Switch.cs:154:10:154:12 | M15 | | Switch.cs:158:38:158:47 | $"..." | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:158:38:158:47 | After $"..." | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:158:38:158:47 | Before $"..." | Switch.cs:154:10:154:12 | M15 | | Switch.cs:158:40:158:43 | "a = " | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:158:44:158:46 | After {...} | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:158:44:158:46 | Before {...} | Switch.cs:154:10:154:12 | M15 | | Switch.cs:158:44:158:46 | {...} | Switch.cs:154:10:154:12 | M15 | | Switch.cs:158:45:158:45 | access to local variable s | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:160:13:160:48 | After call to method WriteLine | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:160:13:160:48 | Before call to method WriteLine | Switch.cs:154:10:154:12 | M15 | | Switch.cs:160:13:160:48 | call to method WriteLine | Switch.cs:154:10:154:12 | M15 | | Switch.cs:160:13:160:49 | ...; | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:160:13:160:49 | After ...; | Switch.cs:154:10:154:12 | M15 | | Switch.cs:160:38:160:47 | $"..." | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:160:38:160:47 | After $"..." | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:160:38:160:47 | Before $"..." | Switch.cs:154:10:154:12 | M15 | | Switch.cs:160:40:160:43 | "b = " | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:160:44:160:46 | After {...} | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:160:44:160:46 | Before {...} | Switch.cs:154:10:154:12 | M15 | | Switch.cs:160:44:160:46 | {...} | Switch.cs:154:10:154:12 | M15 | | Switch.cs:160:45:160:45 | access to local variable s | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:163:10:163:12 | M16 | -| Switch.cs:163:10:163:12 | exit M16 | Switch.cs:163:10:163:12 | M16 | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:163:10:163:12 | Exit | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:163:10:163:12 | Normal Exit | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:164:5:178:5 | After {...} | Switch.cs:163:10:163:12 | M16 | | Switch.cs:164:5:178:5 | {...} | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:163:10:163:12 | M16 | | Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:163:10:163:12 | M16 | | Switch.cs:165:17:165:17 | access to parameter i | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 | | Switch.cs:167:13:167:19 | case ...: | Switch.cs:163:10:163:12 | M16 | | Switch.cs:167:18:167:18 | 1 | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 | | Switch.cs:168:13:168:19 | case ...: | Switch.cs:163:10:163:12 | M16 | | Switch.cs:168:18:168:18 | 2 | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:169:17:169:50 | After call to method WriteLine | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:169:17:169:50 | Before call to method WriteLine | Switch.cs:163:10:163:12 | M16 | | Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:163:10:163:12 | M16 | | Switch.cs:169:17:169:51 | ...; | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:169:17:169:51 | After ...; | Switch.cs:163:10:163:12 | M16 | | Switch.cs:169:42:169:49 | "1 or 2" | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:170:17:170:22 | Before break; | Switch.cs:163:10:163:12 | M16 | | Switch.cs:170:17:170:22 | break; | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 | | Switch.cs:171:13:171:19 | case ...: | Switch.cs:163:10:163:12 | M16 | | Switch.cs:171:18:171:18 | 3 | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:172:17:172:45 | After call to method WriteLine | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:172:17:172:45 | Before call to method WriteLine | Switch.cs:163:10:163:12 | M16 | | Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:163:10:163:12 | M16 | | Switch.cs:172:17:172:46 | ...; | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:172:17:172:46 | After ...; | Switch.cs:163:10:163:12 | M16 | | Switch.cs:172:42:172:44 | "3" | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:173:17:173:22 | Before break; | Switch.cs:163:10:163:12 | M16 | | Switch.cs:173:17:173:22 | break; | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:174:13:174:20 | After default: [match] | Switch.cs:163:10:163:12 | M16 | | Switch.cs:174:13:174:20 | default: | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:175:17:175:47 | After call to method WriteLine | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:175:17:175:47 | Before call to method WriteLine | Switch.cs:163:10:163:12 | M16 | | Switch.cs:175:17:175:47 | call to method WriteLine | Switch.cs:163:10:163:12 | M16 | | Switch.cs:175:17:175:48 | ...; | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:175:17:175:48 | After ...; | Switch.cs:163:10:163:12 | M16 | | Switch.cs:175:42:175:46 | "def" | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:176:17:176:22 | Before break; | 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 | After call to constructor Object | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | After call to method | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | Before call to constructor Object | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | Before call to method | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | Exit | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | Normal Exit | 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 | 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 | -| TypeAccesses.cs:3:10:3:10 | exit M (normal) | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:3:10:3:10 | Exit | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:3:10:3:10 | Normal Exit | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:4:5:9:5 | After {...} | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:5:9:5:26 | After ... ...; | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:5:13:5:13 | access to local variable s | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:5:13:5:25 | After String s = ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:5:13:5:25 | Before String s = ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:5:17:5:25 | After (...) ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:5:17:5:25 | Before (...) ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:5:25:5:25 | access to parameter o | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:6:9:6:9 | access to local variable s | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:6:9:6:23 | After ... = ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:6:9:6:23 | Before ... = ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:6:9:6:24 | After ...; | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:6:13:6:13 | access to parameter o | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:6:13:6:23 | After ... as ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:6:13:6:23 | Before ... as ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:8:9:8:28 | After ... ...; | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:8:13:8:13 | access to local variable t | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:8:13:8:27 | After Type t = ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:8:13:8:27 | Before Type t = ... | TypeAccesses.cs:3:10:3:10 | M | | 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 | After call to constructor Object | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | After call to method | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | Before call to constructor Object | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | Before call to method | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | Exit | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | Normal Exit | 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 | 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 | -| VarDecls.cs:5:18:5:19 | exit M1 (normal) | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:5:18:5:19 | Exit | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:5:18:5:19 | Normal Exit | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:22:7:23 | access to local variable c1 | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:22:7:36 | After Char* c1 = ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:22:7:36 | Before Char* c1 = ... | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:27:7:33 | access to parameter strings | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:27:7:36 | After (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:27:7:36 | After access to array element | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:27:7:36 | Before (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:27:7:36 | Before access to array element | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:35:7:35 | 0 | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:39:7:40 | access to local variable c2 | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:39:7:53 | After Char* c2 = ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:39:7:53 | Before Char* c2 = ... | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:44:7:50 | access to parameter strings | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:44:7:53 | After (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:44:7:53 | After access to array element | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:44:7:53 | Before (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:7:44:7:53 | Before access to array element | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:7:52:7:52 | 1 | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:9:13:9:29 | Before return ...; | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:9:20:9:28 | (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:9:20:9:28 | After (...) ... | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:9:20:9:28 | Before (...) ... | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:9:27:9:28 | access to local variable c1 | VarDecls.cs:5:18:5:19 | M1 | -| VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:13:12:13:13 | M2 | -| VarDecls.cs:13:12:13:13 | exit M2 | VarDecls.cs:13:12:13:13 | M2 | -| VarDecls.cs:13:12:13:13 | exit M2 (normal) | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:13:12:13:13 | Exit | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:13:12:13:13 | Normal Exit | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:14:5:17:5 | {...} | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:15:9:15:30 | After ... ...; | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:15:16:15:17 | access to local variable s1 | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:15:16:15:21 | After String s1 = ... | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:15:16:15:21 | Before String s1 = ... | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:15:21:15:21 | access to parameter s | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:15:24:15:25 | access to local variable s2 | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:15:24:15:29 | After String s2 = ... | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:15:24:15:29 | Before String s2 = ... | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:15:29:15:29 | access to parameter s | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:16:9:16:23 | Before return ...; | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:16:16:16:17 | access to local variable s1 | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:16:16:16:22 | ... + ... | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:16:16:16:22 | After ... + ... | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:16:16:16:22 | Before ... + ... | VarDecls.cs:13:12:13:13 | M2 | | VarDecls.cs:16:21:16:22 | access to local variable s2 | VarDecls.cs:13:12:13:13 | M2 | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:19:7:19:8 | M3 | -| VarDecls.cs:19:7:19:8 | exit M3 | VarDecls.cs:19:7:19:8 | M3 | -| VarDecls.cs:19:7:19:8 | exit M3 (normal) | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:19:7:19:8 | Exit | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:19:7:19:8 | Normal Exit | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:20:5:26:5 | {...} | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:21:9:22:13 | After using (...) {...} | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:21:9:22:13 | using (...) {...} | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:21:16:21:22 | After object creation of type C | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:21:16:21:22 | Before object creation of type C | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:18:24:18 | access to local variable x | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:18:24:28 | After C x = ... | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:18:24:28 | Before C x = ... | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:22:24:28 | After object creation of type C | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:22:24:28 | Before object creation of type C | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:31:24:31 | access to local variable y | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:31:24:41 | After C y = ... | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:31:24:41 | Before C y = ... | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:35:24:41 | After object creation of type C | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:24:35:24:41 | Before object creation of type C | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:25:13:25:29 | Before return ...; | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:25:20:25:20 | After access to parameter b [false] | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:25:20:25:20 | After access to parameter b [true] | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:19:7:19:8 | M3 | | 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 | After call to constructor Object | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | After call to method | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | Before call to constructor Object | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | Before call to method | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | Entry | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | Exit | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | Normal Exit | 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 | 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 | -| VarDecls.cs:28:41:28:47 | exit Dispose (normal) | VarDecls.cs:28:41:28:47 | Dispose | +| VarDecls.cs:28:41:28:47 | Entry | VarDecls.cs:28:41:28:47 | Dispose | +| VarDecls.cs:28:41:28:47 | Exit | VarDecls.cs:28:41:28:47 | Dispose | +| VarDecls.cs:28:41:28:47 | Normal Exit | VarDecls.cs:28:41:28:47 | Dispose | | VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:41:28:47 | Dispose | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:5:17:5:20 | Main | -| cflow.cs:5:17:5:20 | exit Main | cflow.cs:5:17:5:20 | Main | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | Main | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:5:17:5:20 | Main | +| cflow.cs:5:17:5:20 | Exit | cflow.cs:5:17:5:20 | Main | +| cflow.cs:5:17:5:20 | Normal Exit | cflow.cs:5:17:5:20 | Main | +| cflow.cs:6:5:35:5 | After {...} | cflow.cs:5:17:5:20 | Main | | cflow.cs:6:5:35:5 | {...} | cflow.cs:5:17:5:20 | Main | | cflow.cs:7:9:7:28 | ... ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:7:9:7:28 | After ... ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:7:13:7:13 | access to local variable a | cflow.cs:5:17:5:20 | Main | +| cflow.cs:7:13:7:27 | After Int32 a = ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:7:13:7:27 | Before Int32 a = ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:7:17:7:20 | access to parameter args | cflow.cs:5:17:5:20 | Main | +| cflow.cs:7:17:7:27 | After access to property Length | cflow.cs:5:17:5:20 | Main | +| cflow.cs:7:17:7:27 | Before access to property Length | cflow.cs:5:17:5:20 | Main | | cflow.cs:7:17:7:27 | access to property Length | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:9:9:9 | access to local variable a | cflow.cs:5:17:5:20 | Main | | cflow.cs:9:9:9:39 | ... = ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:9:9:39 | After ... = ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:9:9:39 | Before ... = ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:9:9:9:40 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:9:9:40 | After ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:13:9:29 | After object creation of type ControlFlow | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:13:9:29 | Before object creation of type ControlFlow | cflow.cs:5:17:5:20 | Main | | cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:13:9:39 | After call to method Switch | cflow.cs:5:17:5:20 | Main | +| cflow.cs:9:13:9:39 | Before call to method Switch | cflow.cs:5:17:5:20 | Main | | cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:5:17:5:20 | Main | | cflow.cs:9:38:9:38 | access to local variable a | cflow.cs:5:17:5:20 | Main | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:11:13:11:13 | access to local variable a | cflow.cs:5:17:5:20 | Main | | cflow.cs:11:13:11:17 | ... > ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:11:13:11:17 | After ... > ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:11:13:11:17 | After ... > ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:11:13:11:17 | Before ... > ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:11:17:11:17 | 3 | cflow.cs:5:17:5:20 | Main | +| cflow.cs:12:13:12:48 | After call to method WriteLine | cflow.cs:5:17:5:20 | Main | +| cflow.cs:12:13:12:48 | Before call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:12:13:12:48 | call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:12:13:12:49 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:12:13:12:49 | After ...; | cflow.cs:5:17:5:20 | Main | | cflow.cs:12:31:12:47 | "more than a few" | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:9:17:9 | After while (...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:5:17:5:20 | Main | | cflow.cs:14:16:14:20 | ... > ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:16:14:20 | After ... > ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:16:14:20 | Before ... > ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:14:20:14:20 | 0 | cflow.cs:5:17:5:20 | Main | +| cflow.cs:15:9:17:9 | After {...} | cflow.cs:5:17:5:20 | Main | | cflow.cs:15:9:17:9 | {...} | cflow.cs:5:17:5:20 | Main | +| cflow.cs:16:13:16:40 | After call to method WriteLine | cflow.cs:5:17:5:20 | Main | +| cflow.cs:16:13:16:40 | Before call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:16:13:16:40 | call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:16:13:16:41 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:16:13:16:41 | After ...; | cflow.cs:5:17:5:20 | Main | | cflow.cs:16:31:16:31 | access to local variable a | cflow.cs:5:17:5:20 | Main | | cflow.cs:16:31:16:33 | ...-- | cflow.cs:5:17:5:20 | Main | +| cflow.cs:16:31:16:33 | After ...-- | cflow.cs:5:17:5:20 | Main | +| cflow.cs:16:31:16:33 | Before ...-- | cflow.cs:5:17:5:20 | Main | | cflow.cs:16:31:16:39 | ... * ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:16:31:16:39 | After ... * ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:16:31:16:39 | Before ... * ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:16:37:16:39 | 100 | cflow.cs:5:17:5:20 | Main | +| cflow.cs:19:9:22:25 | After do ... while (...); | cflow.cs:5:17:5:20 | Main | +| cflow.cs:19:9:22:25 | [LoopHeader] do ... while (...); | cflow.cs:5:17:5:20 | Main | | cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:5:17:5:20 | Main | +| cflow.cs:20:9:22:9 | After {...} | cflow.cs:5:17:5:20 | Main | | cflow.cs:20:9:22:9 | {...} | cflow.cs:5:17:5:20 | Main | +| cflow.cs:21:13:21:35 | After call to method WriteLine | cflow.cs:5:17:5:20 | Main | +| cflow.cs:21:13:21:35 | Before call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:21:13:21:36 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:21:13:21:36 | After ...; | cflow.cs:5:17:5:20 | Main | | cflow.cs:21:31:21:34 | -... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:21:31:21:34 | After -... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:21:31:21:34 | Before -... | cflow.cs:5:17:5:20 | Main | | cflow.cs:21:32:21:32 | access to local variable a | cflow.cs:5:17:5:20 | Main | | cflow.cs:21:32:21:34 | ...++ | cflow.cs:5:17:5:20 | Main | +| cflow.cs:21:32:21:34 | After ...++ | cflow.cs:5:17:5:20 | Main | +| cflow.cs:21:32:21:34 | Before ...++ | cflow.cs:5:17:5:20 | Main | | cflow.cs:22:18:22:18 | access to local variable a | cflow.cs:5:17:5:20 | Main | | cflow.cs:22:18:22:23 | ... < ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:22:18:22:23 | After ... < ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:22:18:22:23 | Before ... < ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:22:22:22:23 | 10 | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:9:34:9 | After for (...;...;...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:9:34:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:18:24:18 | access to local variable i | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:18:24:22 | After Int32 i = ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:18:24:22 | Before Int32 i = ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:22:24:22 | 1 | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:30:24:31 | 20 | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:5:17:5:20 | Main | | cflow.cs:24:34:24:36 | ...++ | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:34:24:36 | After ...++ | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:34:24:36 | Before ...++ | cflow.cs:5:17:5:20 | Main | +| cflow.cs:25:9:34:9 | After {...} | cflow.cs:5:17:5:20 | Main | | cflow.cs:25:9:34:9 | {...} | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:17:26:17 | access to local variable i | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:17:26:21 | ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:21 | After ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:21 | Before ... % ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:17:26:26 | ... == ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:26 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:26 | Before ... == ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:40 | After ... && ... [true] | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:21:26:21 | 3 | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:26:26:26 | 0 | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:31:26:35 | ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:31:26:35 | After ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:31:26:35 | Before ... % ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:31:26:40 | ... == ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:31:26:40 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:31:26:40 | Before ... == ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:35:26:35 | 5 | cflow.cs:5:17:5:20 | Main | | cflow.cs:26:40:26:40 | 0 | cflow.cs:5:17:5:20 | Main | +| cflow.cs:27:17:27:45 | After call to method WriteLine | cflow.cs:5:17:5:20 | Main | +| cflow.cs:27:17:27:45 | Before call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:27:17:27:45 | call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:27:17:27:46 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:27:17:27:46 | After ...; | cflow.cs:5:17:5:20 | Main | | cflow.cs:27:35:27:44 | "FizzBuzz" | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:28:22:28:22 | access to local variable i | cflow.cs:5:17:5:20 | Main | | cflow.cs:28:22:28:26 | ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:22:28:26 | After ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:22:28:26 | Before ... % ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:28:22:28:31 | ... == ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:22:28:31 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:22:28:31 | Before ... == ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:28:26:28:26 | 3 | cflow.cs:5:17:5:20 | Main | | cflow.cs:28:31:28:31 | 0 | cflow.cs:5:17:5:20 | Main | +| cflow.cs:29:17:29:41 | After call to method WriteLine | cflow.cs:5:17:5:20 | Main | +| cflow.cs:29:17:29:41 | Before call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:29:17:29:41 | call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:29:17:29:42 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:29:17:29:42 | After ...; | cflow.cs:5:17:5:20 | Main | | cflow.cs:29:35:29:40 | "Fizz" | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:30:22:30:22 | access to local variable i | cflow.cs:5:17:5:20 | Main | | cflow.cs:30:22:30:26 | ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:22:30:26 | After ... % ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:22:30:26 | Before ... % ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:30:22:30:31 | ... == ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:22:30:31 | Before ... == ... | cflow.cs:5:17:5:20 | Main | | cflow.cs:30:26:30:26 | 5 | cflow.cs:5:17:5:20 | Main | | cflow.cs:30:31:30:31 | 0 | cflow.cs:5:17:5:20 | Main | +| cflow.cs:31:17:31:41 | After call to method WriteLine | cflow.cs:5:17:5:20 | Main | +| cflow.cs:31:17:31:41 | Before call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:31:17:31:41 | call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:31:17:31:42 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:31:17:31:42 | After ...; | cflow.cs:5:17:5:20 | Main | | cflow.cs:31:35:31:40 | "Buzz" | cflow.cs:5:17:5:20 | Main | +| cflow.cs:33:17:33:36 | After call to method WriteLine | cflow.cs:5:17:5:20 | Main | +| cflow.cs:33:17:33:36 | Before call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:33:17:33:36 | call to method WriteLine | cflow.cs:5:17:5:20 | Main | | cflow.cs:33:17:33:37 | ...; | cflow.cs:5:17:5:20 | Main | +| cflow.cs:33:17:33:37 | After ...; | cflow.cs:5:17:5:20 | Main | | cflow.cs:33:35:33:35 | access to local variable i | cflow.cs:5:17:5:20 | Main | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:37:17:37:22 | exit Switch | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:37:17:37:22 | exit Switch (abnormal) | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:37:17:37:22 | exit Switch (normal) | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:37:17:37:22 | Exceptional Exit | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:37:17:37:22 | Exit | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:37:17:37:22 | Normal Exit | cflow.cs:37:17:37:22 | Switch | | cflow.cs:38:5:68:5 | {...} | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch | | cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:37:17:37:22 | Switch | | cflow.cs:39:17:39:17 | access to parameter a | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | | cflow.cs:41:13:41:19 | case ...: | cflow.cs:37:17:37:22 | Switch | | cflow.cs:41:18:41:18 | 1 | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:42:17:42:38 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:42:17:42:38 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:42:17:42:39 | ...; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:42:17:42:39 | After ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:42:35:42:37 | "1" | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:43:17:43:28 | Before goto case ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:43:27:43:27 | 2 | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | | cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | Switch | | cflow.cs:44:18:44:18 | 2 | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:45:17:45:38 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:45:17:45:38 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:45:17:45:39 | ...; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:45:17:45:39 | After ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:45:35:45:37 | "2" | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:46:17:46:28 | Before goto case ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:46:27:46:27 | 1 | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | | cflow.cs:47:13:47:19 | case ...: | cflow.cs:37:17:37:22 | Switch | | cflow.cs:47:18:47:18 | 3 | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:48:17:48:38 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:48:17:48:38 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:48:17:48:39 | ...; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:48:17:48:39 | After ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:48:35:48:37 | "3" | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:49:17:49:22 | Before break; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:49:17:49:22 | break; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch | | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:37:17:37:22 | Switch | | cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | | cflow.cs:53:13:53:20 | case ...: | cflow.cs:37:17:37:22 | Switch | | cflow.cs:53:18:53:19 | 42 | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:54:17:54:47 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:54:17:54:47 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:54:17:54:48 | ...; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:54:17:54:48 | After ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:54:35:54:46 | "The answer" | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:55:17:55:22 | Before break; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:55:17:55:22 | break; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:56:13:56:20 | After default: [match] | cflow.cs:37:17:37:22 | Switch | | cflow.cs:56:13:56:20 | default: | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:57:17:57:51 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:57:17:57:51 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:57:17:57:51 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch | | cflow.cs:57:17:57:52 | ...; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:57:17:57:52 | After ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:57:35:57:50 | "Not the answer" | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:58:17:58:22 | Before break; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:58:17:58:22 | break; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch | | cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:60:17:60:32 | After call to method Parse | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:60:17:60:32 | Before call to method Parse | cflow.cs:37:17:37:22 | Switch | | cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:60:27:60:31 | After access to field Field | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:60:27:60:31 | Before access to field Field | cflow.cs:37:17:37:22 | Switch | | cflow.cs:60:27:60:31 | access to field Field | cflow.cs:37:17:37:22 | Switch | | cflow.cs:60:27:60:31 | this access | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | | cflow.cs:62:13:62:19 | case ...: | cflow.cs:37:17:37:22 | Switch | | cflow.cs:62:18:62:18 | 0 | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:17:64:55 | After if (...) ... | cflow.cs:37:17:37:22 | Switch | | cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:21:63:34 | !... | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:21:63:34 | After !... [false] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:21:63:34 | After !... [true] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:23:63:27 | After access to field Field | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:23:63:27 | Before access to field Field | cflow.cs:37:17:37:22 | Switch | | cflow.cs:63:23:63:27 | access to field Field | cflow.cs:37:17:37:22 | Switch | | cflow.cs:63:23:63:27 | this access | cflow.cs:37:17:37:22 | Switch | | cflow.cs:63:23:63:33 | ... == ... | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:23:63:33 | Before ... == ... | cflow.cs:37:17:37:22 | Switch | | cflow.cs:63:32:63:33 | "" | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:64:21:64:55 | Before throw ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:64:27:64:54 | After object creation of type NullReferenceException | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:64:27:64:54 | Before object creation of type NullReferenceException | cflow.cs:37:17:37:22 | Switch | | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:65:17:65:22 | Before break; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:65:17:65:22 | break; | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:67:9:67:17 | Before return ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:67:9:67:17 | return ...; | cflow.cs:37:17:37:22 | Switch | | cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | M | -| cflow.cs:70:18:70:18 | exit M | cflow.cs:70:18:70:18 | M | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | M | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:70:18:70:18 | M | +| cflow.cs:70:18:70:18 | Exit | cflow.cs:70:18:70:18 | M | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | M | +| cflow.cs:71:5:82:5 | After {...} | cflow.cs:70:18:70:18 | M | | cflow.cs:71:5:82:5 | {...} | cflow.cs:70:18:70:18 | M | +| cflow.cs:72:9:73:19 | After if (...) ... | cflow.cs:70:18:70:18 | M | | cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:70:18:70:18 | M | | cflow.cs:72:13:72:13 | access to parameter s | cflow.cs:70:18:70:18 | M | | cflow.cs:72:13:72:21 | ... == ... | cflow.cs:70:18:70:18 | M | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:70:18:70:18 | M | +| cflow.cs:72:13:72:21 | After ... == ... [true] | cflow.cs:70:18:70:18 | M | +| cflow.cs:72:13:72:21 | Before ... == ... | cflow.cs:70:18:70:18 | M | | cflow.cs:72:18:72:21 | null | cflow.cs:70:18:70:18 | M | +| cflow.cs:73:13:73:19 | Before return ...; | cflow.cs:70:18:70:18 | M | | cflow.cs:73:13:73:19 | return ...; | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:70:18:70:18 | M | | cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:70:18:70:18 | M | | cflow.cs:74:13:74:13 | access to parameter s | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:13:74:20 | After access to property Length | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:13:74:20 | Before access to property Length | cflow.cs:70:18:70:18 | M | | cflow.cs:74:13:74:20 | access to property Length | cflow.cs:70:18:70:18 | M | | cflow.cs:74:13:74:24 | ... > ... | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:13:74:24 | After ... > ... [false] | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:13:74:24 | After ... > ... [true] | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:13:74:24 | Before ... > ... | cflow.cs:70:18:70:18 | M | | cflow.cs:74:24:74:24 | 0 | cflow.cs:70:18:70:18 | M | +| cflow.cs:75:9:77:9 | After {...} | cflow.cs:70:18:70:18 | M | | cflow.cs:75:9:77:9 | {...} | cflow.cs:70:18:70:18 | M | +| cflow.cs:76:13:76:32 | After call to method WriteLine | cflow.cs:70:18:70:18 | M | +| cflow.cs:76:13:76:32 | Before call to method WriteLine | cflow.cs:70:18:70:18 | M | | cflow.cs:76:13:76:32 | call to method WriteLine | cflow.cs:70:18:70:18 | M | | cflow.cs:76:13:76:33 | ...; | cflow.cs:70:18:70:18 | M | +| cflow.cs:76:13:76:33 | After ...; | cflow.cs:70:18:70:18 | M | | cflow.cs:76:31:76:31 | access to parameter s | cflow.cs:70:18:70:18 | M | +| cflow.cs:79:9:81:9 | After {...} | cflow.cs:70:18:70:18 | M | | cflow.cs:79:9:81:9 | {...} | cflow.cs:70:18:70:18 | M | +| cflow.cs:80:13:80:47 | After call to method WriteLine | cflow.cs:70:18:70:18 | M | +| cflow.cs:80:13:80:47 | Before call to method WriteLine | cflow.cs:70:18:70:18 | M | | cflow.cs:80:13:80:47 | call to method WriteLine | cflow.cs:70:18:70:18 | M | | cflow.cs:80:13:80:48 | ...; | cflow.cs:70:18:70:18 | M | +| cflow.cs:80:13:80:48 | After ...; | cflow.cs:70:18:70:18 | M | | cflow.cs:80:31:80:46 | "" | cflow.cs:70:18:70:18 | M | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:84:18:84:19 | exit M2 | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:84:18:84:19 | Exit | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:84:18:84:19 | Normal Exit | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:85:5:88:5 | After {...} | cflow.cs:84:18:84:19 | M2 | | cflow.cs:85:5:88:5 | {...} | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:13:86:13 | access to parameter s | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:13:86:21 | ... != ... | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:86:13:86:37 | [false] ... && ... | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:21 | After ... != ... [false] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:21 | Before ... != ... | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:37 | After ... && ... [true] | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:18:86:21 | null | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:26:86:33 | After access to property Length | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:26:86:33 | Before access to property Length | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:26:86:33 | access to property Length | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:26:86:37 | ... > ... | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:26:86:37 | After ... > ... [false] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:26:86:37 | Before ... > ... | cflow.cs:84:18:84:19 | M2 | | cflow.cs:86:37:86:37 | 0 | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:87:13:87:32 | After call to method WriteLine | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:87:13:87:32 | Before call to method WriteLine | cflow.cs:84:18:84:19 | M2 | | cflow.cs:87:13:87:32 | call to method WriteLine | cflow.cs:84:18:84:19 | M2 | | cflow.cs:87:13:87:33 | ...; | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:87:13:87:33 | After ...; | cflow.cs:84:18:84:19 | M2 | | cflow.cs:87:31:87:31 | access to parameter s | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:90:18:90:19 | exit M3 | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:90:18:90:19 | exit M3 (abnormal) | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:90:18:90:19 | Exceptional Exit | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:90:18:90:19 | Exit | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:90:18:90:19 | Normal Exit | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:91:5:104:5 | After {...} | cflow.cs:90:18:90:19 | M3 | | cflow.cs:91:5:104:5 | {...} | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:92:9:93:49 | After if (...) ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:92:13:92:27 | After call to method Equals [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:92:13:92:27 | Before call to method Equals | cflow.cs:90:18:90:19 | M3 | | cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:90:18:90:19 | M3 | | cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:90:18:90:19 | M3 | | cflow.cs:92:23:92:26 | null | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:93:13:93:49 | Before throw ...; | cflow.cs:90:18:90:19 | M3 | | cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:93:19:93:48 | After object creation of type ArgumentNullException | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:93:19:93:48 | Before object creation of type ArgumentNullException | cflow.cs:90:18:90:19 | M3 | | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:90:18:90:19 | M3 | | cflow.cs:93:45:93:47 | "s" | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:94:9:94:28 | After call to method WriteLine | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:94:9:94:28 | Before call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:94:9:94:29 | ...; | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:94:9:94:29 | After ...; | cflow.cs:90:18:90:19 | M3 | | cflow.cs:94:27:94:27 | access to parameter s | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:13:96:17 | After access to field Field | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:13:96:17 | Before access to field Field | cflow.cs:90:18:90:19 | M3 | | cflow.cs:96:13:96:17 | access to field Field | cflow.cs:90:18:90:19 | M3 | | cflow.cs:96:13:96:17 | this access | cflow.cs:90:18:90:19 | M3 | | cflow.cs:96:13:96:25 | ... != ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:13:96:25 | After ... != ... [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:13:96:25 | After ... != ... [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:13:96:25 | Before ... != ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:96:22:96:25 | null | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:97:13:97:54 | After call to method WriteLine | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:97:13:97:54 | Before call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:97:13:97:54 | call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:97:13:97:55 | ...; | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:97:13:97:55 | After ...; | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:97:31:97:47 | After object creation of type ControlFlow | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:97:31:97:47 | Before object creation of type ControlFlow | cflow.cs:90:18:90:19 | M3 | | cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:97:31:97:53 | After access to field Field | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:97:31:97:53 | Before access to field Field | cflow.cs:90:18:90:19 | M3 | | cflow.cs:97:31:97:53 | access to field Field | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:13:99:17 | After access to field Field | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:13:99:17 | Before access to field Field | cflow.cs:90:18:90:19 | M3 | | cflow.cs:99:13:99:17 | access to field Field | cflow.cs:90:18:90:19 | M3 | | cflow.cs:99:13:99:17 | this access | cflow.cs:90:18:90:19 | M3 | | cflow.cs:99:13:99:25 | ... != ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:13:99:25 | After ... != ... [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:13:99:25 | After ... != ... [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:13:99:25 | Before ... != ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:99:22:99:25 | null | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:100:13:100:41 | After call to method WriteLine | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:100:13:100:41 | Before call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:100:13:100:41 | call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:100:13:100:42 | ...; | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:100:13:100:42 | After ...; | cflow.cs:90:18:90:19 | M3 | | cflow.cs:100:31:100:34 | this access | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:100:31:100:40 | After access to field Field | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:100:31:100:40 | Before access to field Field | cflow.cs:90:18:90:19 | M3 | | cflow.cs:100:31:100:40 | access to field Field | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:102:13:102:16 | this access | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:13:102:21 | After access to property Prop | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:13:102:21 | Before access to property Prop | cflow.cs:90:18:90:19 | M3 | | cflow.cs:102:13:102:21 | access to property Prop | cflow.cs:90:18:90:19 | M3 | | cflow.cs:102:13:102:29 | ... != ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:13:102:29 | After ... != ... [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:13:102:29 | After ... != ... [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:13:102:29 | Before ... != ... | cflow.cs:90:18:90:19 | M3 | | cflow.cs:102:26:102:29 | null | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:103:13:103:35 | After call to method WriteLine | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:103:13:103:35 | Before call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:103:13:103:35 | call to method WriteLine | cflow.cs:90:18:90:19 | M3 | | cflow.cs:103:13:103:36 | ...; | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:103:13:103:36 | After ...; | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:103:31:103:34 | After access to property Prop | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:103:31:103:34 | Before access to property Prop | cflow.cs:90:18:90:19 | M3 | | cflow.cs:103:31:103:34 | access to property Prop | cflow.cs:90:18:90:19 | M3 | | cflow.cs:103:31:103:34 | this access | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:106:18:106:19 | exit M4 | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:106:18:106:19 | exit M4 (normal) | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:106:18:106:19 | Exit | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:106:18:106:19 | Normal Exit | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:107:5:117:5 | After {...} | cflow.cs:106:18:106:19 | M4 | | cflow.cs:107:5:117:5 | {...} | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:108:9:115:9 | After if (...) ... | cflow.cs:106:18:106:19 | M4 | | cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:106:18:106:19 | M4 | | cflow.cs:108:13:108:13 | access to parameter s | cflow.cs:106:18:106:19 | M4 | | cflow.cs:108:13:108:21 | ... != ... | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:108:13:108:21 | Before ... != ... | cflow.cs:106:18:106:19 | M4 | | cflow.cs:108:18:108:21 | null | cflow.cs:106:18:106:19 | M4 | | cflow.cs:109:9:115:9 | {...} | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | cflow.cs:106:18:106:19 | M4 | | cflow.cs:110:13:113:13 | while (...) ... | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:110:20:110:23 | After true [true] | cflow.cs:106:18:106:19 | M4 | | cflow.cs:110:20:110:23 | true | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:111:13:113:13 | After {...} | cflow.cs:106:18:106:19 | M4 | | cflow.cs:111:13:113:13 | {...} | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:112:17:112:36 | After call to method WriteLine | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:112:17:112:36 | Before call to method WriteLine | cflow.cs:106:18:106:19 | M4 | | cflow.cs:112:17:112:36 | call to method WriteLine | cflow.cs:106:18:106:19 | M4 | | cflow.cs:112:17:112:37 | ...; | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:112:17:112:37 | After ...; | cflow.cs:106:18:106:19 | M4 | | cflow.cs:112:35:112:35 | access to parameter s | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:116:9:116:28 | After call to method WriteLine | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:116:9:116:28 | Before call to method WriteLine | cflow.cs:106:18:106:19 | M4 | | cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:106:18:106:19 | M4 | | cflow.cs:116:9:116:29 | ...; | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:116:9:116:29 | After ...; | cflow.cs:106:18:106:19 | M4 | | cflow.cs:116:27:116:27 | access to parameter s | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:119:20:119:21 | enter M5 | cflow.cs:119:20:119:21 | M5 | -| cflow.cs:119:20:119:21 | exit M5 | cflow.cs:119:20:119:21 | M5 | -| cflow.cs:119:20:119:21 | exit M5 (normal) | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:119:20:119:21 | Entry | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:119:20:119:21 | Exit | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:119:20:119:21 | Normal Exit | cflow.cs:119:20:119:21 | M5 | | cflow.cs:120:5:124:5 | {...} | cflow.cs:119:20:119:21 | M5 | | cflow.cs:121:9:121:18 | ... ...; | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:121:9:121:18 | After ... ...; | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:121:13:121:13 | access to local variable x | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:121:13:121:17 | After String x = ... | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:121:13:121:17 | Before String x = ... | cflow.cs:119:20:119:21 | M5 | | cflow.cs:121:13:121:17 | String x = ... | cflow.cs:119:20:119:21 | M5 | | cflow.cs:121:17:121:17 | access to parameter s | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:122:9:122:9 | access to local variable x | cflow.cs:119:20:119:21 | M5 | | cflow.cs:122:9:122:19 | ... = ... | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:122:9:122:19 | After ... = ... | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:122:9:122:19 | Before ... = ... | cflow.cs:119:20:119:21 | M5 | | cflow.cs:122:9:122:20 | ...; | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:122:9:122:20 | After ...; | cflow.cs:119:20:119:21 | M5 | | cflow.cs:122:13:122:13 | access to local variable x | cflow.cs:119:20:119:21 | M5 | | cflow.cs:122:13:122:19 | ... + ... | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:122:13:122:19 | After ... + ... | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:122:13:122:19 | Before ... + ... | cflow.cs:119:20:119:21 | M5 | | cflow.cs:122:17:122:19 | " " | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:123:9:123:17 | Before return ...; | cflow.cs:119:20:119:21 | M5 | | cflow.cs:123:9:123:17 | return ...; | cflow.cs:119:20:119:21 | M5 | | cflow.cs:123:16:123:16 | access to local variable x | cflow.cs:119:20:119:21 | M5 | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:19:127:21 | get_Prop | -| cflow.cs:127:19:127:21 | exit get_Prop | cflow.cs:127:19:127:21 | get_Prop | -| cflow.cs:127:19:127:21 | exit get_Prop (normal) | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:19:127:21 | Exit | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:19:127:21 | Normal Exit | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:23:127:60 | {...} | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:25:127:58 | Before return ...; | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:36 | After access to field Field | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:36 | Before access to field Field | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:32:127:36 | this access | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:44 | After ... == ... [false] | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:44 | After ... == ... [true] | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:44 | Before ... == ... | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:41:127:44 | null | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:48:127:49 | "" | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:53:127:57 | After access to field Field | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:53:127:57 | Before access to field Field | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:53:127:57 | access to field Field | cflow.cs:127:19:127:21 | get_Prop | | cflow.cs:127:53:127:57 | this access | cflow.cs:127:19:127:21 | get_Prop | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | set_Prop | -| cflow.cs:127:62:127:64 | exit set_Prop | cflow.cs:127:62:127:64 | set_Prop | -| cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:62:127:64 | Entry | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:62:127:64 | Exit | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:62:127:64 | Normal Exit | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:66:127:83 | After {...} | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:68:127:72 | After access to field Field | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:68:127:72 | Before access to field Field | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:68:127:80 | After ... = ... | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:68:127:80 | Before ... = ... | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:68:127:81 | After ...; | 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 | After call to constructor Object | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | After call to method | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | Before call to constructor Object | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | Before call to method | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | Entry | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | Exit | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | Normal Exit | 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 | 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 | After {...} | 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 | After access to field Field | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:131:9:131:13 | Before access to field Field | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:13 | access to field Field | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:13 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:131:9:131:17 | After ... = ... | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:131:9:131:17 | Before ... = ... | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:18 | ...; | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:131:9:131:18 | After ...; | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:129:5:129:15 | ControlFlow | -| cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | ControlFlow | -| cflow.cs:134:5:134:15 | exit ControlFlow | cflow.cs:134:5:134:15 | ControlFlow | -| cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:5:134:15 | Entry | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:5:134:15 | Exit | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:5:134:15 | Normal Exit | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:26:134:29 | After call to constructor ControlFlow | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:26:134:29 | Before call to constructor ControlFlow | cflow.cs:134:5:134:15 | ControlFlow | | cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:5:134:15 | ControlFlow | | cflow.cs:134:31:134:31 | (...) ... | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:31:134:31 | After (...) ... | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:31:134:31 | Before (...) ... | cflow.cs:134:5:134:15 | ControlFlow | | cflow.cs:134:31:134:31 | access to parameter i | cflow.cs:134:5:134:15 | ControlFlow | | cflow.cs:134:31:134:36 | ... + ... | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:31:134:36 | After ... + ... | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:134:31:134:36 | Before ... + ... | cflow.cs:134:5:134:15 | ControlFlow | | cflow.cs:134:35:134:36 | "" | cflow.cs:134:5:134:15 | ControlFlow | | cflow.cs:134:39:134:41 | {...} | cflow.cs:134:5:134:15 | ControlFlow | -| cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | ControlFlow | -| cflow.cs:136:12:136:22 | exit ControlFlow | cflow.cs:136:12:136:22 | ControlFlow | -| cflow.cs:136:12:136:22 | exit ControlFlow (normal) | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:136:12:136:22 | Entry | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:136:12:136:22 | Exit | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:136:12:136:22 | Normal Exit | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:136:28:136:31 | After call to constructor ControlFlow | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:136:28:136:31 | Before call to constructor ControlFlow | cflow.cs:136:12:136:22 | ControlFlow | | cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:12:136:22 | ControlFlow | | cflow.cs:136:33:136:33 | 0 | cflow.cs:136:12:136:22 | ControlFlow | | cflow.cs:136:33:136:37 | ... + ... | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:136:33:136:37 | After ... + ... | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:136:33:136:37 | Before ... + ... | cflow.cs:136:12:136:22 | ControlFlow | | cflow.cs:136:37:136:37 | 1 | cflow.cs:136:12:136:22 | ControlFlow | | cflow.cs:136:40:136:42 | {...} | cflow.cs:136:12:136:22 | ControlFlow | -| cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | + | -| cflow.cs:138:40:138:40 | exit + | cflow.cs:138:40:138:40 | + | -| cflow.cs:138:40:138:40 | exit + (normal) | cflow.cs:138:40:138:40 | + | +| cflow.cs:138:40:138:40 | Entry | cflow.cs:138:40:138:40 | + | +| cflow.cs:138:40:138:40 | Exit | cflow.cs:138:40:138:40 | + | +| cflow.cs:138:40:138:40 | Normal Exit | cflow.cs:138:40:138:40 | + | | cflow.cs:139:5:142:5 | {...} | cflow.cs:138:40:138:40 | + | +| cflow.cs:140:9:140:28 | After call to method WriteLine | cflow.cs:138:40:138:40 | + | +| cflow.cs:140:9:140:28 | Before call to method WriteLine | cflow.cs:138:40:138:40 | + | | cflow.cs:140:9:140:28 | call to method WriteLine | cflow.cs:138:40:138:40 | + | | cflow.cs:140:9:140:29 | ...; | cflow.cs:138:40:138:40 | + | +| cflow.cs:140:9:140:29 | After ...; | cflow.cs:138:40:138:40 | + | | cflow.cs:140:27:140:27 | access to parameter x | cflow.cs:138:40:138:40 | + | +| cflow.cs:141:9:141:17 | Before return ...; | cflow.cs:138:40:138:40 | + | | cflow.cs:141:9:141:17 | return ...; | cflow.cs:138:40:138:40 | + | | cflow.cs:141:16:141:16 | access to parameter y | cflow.cs:138:40:138:40 | + | -| cflow.cs:144:33:144:35 | enter get_Item | cflow.cs:144:33:144:35 | get_Item | -| cflow.cs:144:33:144:35 | exit get_Item | cflow.cs:144:33:144:35 | get_Item | -| cflow.cs:144:33:144:35 | exit get_Item (normal) | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:33:144:35 | Entry | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:33:144:35 | Exit | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:33:144:35 | Normal Exit | cflow.cs:144:33:144:35 | get_Item | | cflow.cs:144:37:144:54 | {...} | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:39:144:52 | Before return ...; | cflow.cs:144:33:144:35 | get_Item | | cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:33:144:35 | get_Item | | cflow.cs:144:46:144:46 | (...) ... | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:46:144:46 | After (...) ... | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:46:144:46 | Before (...) ... | cflow.cs:144:33:144:35 | get_Item | | cflow.cs:144:46:144:46 | access to parameter i | cflow.cs:144:33:144:35 | get_Item | | cflow.cs:144:46:144:51 | ... + ... | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:46:144:51 | After ... + ... | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:46:144:51 | Before ... + ... | cflow.cs:144:33:144:35 | get_Item | | cflow.cs:144:50:144:51 | "" | cflow.cs:144:33:144:35 | get_Item | -| cflow.cs:144:56:144:58 | enter set_Item | cflow.cs:144:56:144:58 | set_Item | -| cflow.cs:144:56:144:58 | exit set_Item | cflow.cs:144:56:144:58 | set_Item | -| cflow.cs:144:56:144:58 | exit set_Item (normal) | cflow.cs:144:56:144:58 | set_Item | +| cflow.cs:144:56:144:58 | Entry | cflow.cs:144:56:144:58 | set_Item | +| cflow.cs:144:56:144:58 | Exit | cflow.cs:144:56:144:58 | set_Item | +| cflow.cs:144:56:144:58 | Normal Exit | cflow.cs:144:56:144:58 | set_Item | | cflow.cs:144:60:144:62 | {...} | cflow.cs:144:56:144:58 | set_Item | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:146:10:146:12 | For | -| cflow.cs:146:10:146:12 | exit For | cflow.cs:146:10:146:12 | For | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | For | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:146:10:146:12 | For | +| cflow.cs:146:10:146:12 | Exit | cflow.cs:146:10:146:12 | For | +| cflow.cs:146:10:146:12 | Normal Exit | cflow.cs:146:10:146:12 | For | +| cflow.cs:147:5:177:5 | After {...} | cflow.cs:146:10:146:12 | For | | cflow.cs:147:5:177:5 | {...} | cflow.cs:146:10:146:12 | For | | cflow.cs:148:9:148:18 | ... ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:148:9:148:18 | After ... ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:148:13:148:13 | access to local variable x | cflow.cs:146:10:146:12 | For | +| cflow.cs:148:13:148:17 | After Int32 x = ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:148:13:148:17 | Before Int32 x = ... | cflow.cs:146:10:146:12 | For | | cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:146:10:146:12 | For | | cflow.cs:148:17:148:17 | 0 | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:9:150:33 | After for (...;...;...) ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:9:150:33 | [LoopHeader] for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:149:16:149:21 | ... < ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:16:149:21 | After ... < ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:146:10:146:12 | For | | cflow.cs:149:20:149:21 | 10 | cflow.cs:146:10:146:12 | For | | cflow.cs:149:24:149:26 | ++... | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:24:149:26 | After ++... | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:24:149:26 | Before ++... | cflow.cs:146:10:146:12 | For | | cflow.cs:149:26:149:26 | access to local variable x | cflow.cs:146:10:146:12 | For | +| cflow.cs:150:13:150:32 | After call to method WriteLine | cflow.cs:146:10:146:12 | For | +| cflow.cs:150:13:150:32 | Before call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:150:13:150:32 | call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:150:13:150:33 | ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:150:13:150:33 | After ...; | cflow.cs:146:10:146:12 | For | | cflow.cs:150:31:150:31 | access to local variable x | cflow.cs:146:10:146:12 | For | +| cflow.cs:152:9:157:9 | After for (...;...;...) ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:152:9:157:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:152:18:152:20 | ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:152:18:152:20 | After ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:152:18:152:20 | Before ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:153:9:157:9 | After {...} | cflow.cs:146:10:146:12 | For | | cflow.cs:153:9:157:9 | {...} | cflow.cs:146:10:146:12 | For | +| cflow.cs:154:13:154:32 | After call to method WriteLine | cflow.cs:146:10:146:12 | For | +| cflow.cs:154:13:154:32 | Before call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:154:13:154:32 | call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:154:13:154:33 | ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:154:13:154:33 | After ...; | cflow.cs:146:10:146:12 | For | | cflow.cs:154:31:154:31 | access to local variable x | cflow.cs:146:10:146:12 | For | +| cflow.cs:155:13:156:22 | After if (...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:155:17:155:17 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:155:17:155:22 | ... > ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:155:17:155:22 | After ... > ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:155:17:155:22 | Before ... > ... | cflow.cs:146:10:146:12 | For | | cflow.cs:155:21:155:22 | 20 | cflow.cs:146:10:146:12 | For | +| cflow.cs:156:17:156:22 | Before break; | cflow.cs:146:10:146:12 | For | | cflow.cs:156:17:156:22 | break; | cflow.cs:146:10:146:12 | For | +| cflow.cs:159:9:165:9 | After for (...;...;...) ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:159:9:165:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:159:9:165:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:160:9:165:9 | After {...} | cflow.cs:146:10:146:12 | For | | cflow.cs:160:9:165:9 | {...} | cflow.cs:146:10:146:12 | For | +| cflow.cs:161:13:161:32 | After call to method WriteLine | cflow.cs:146:10:146:12 | For | +| cflow.cs:161:13:161:32 | Before call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:161:13:161:32 | call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:161:13:161:33 | ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:161:13:161:33 | After ...; | cflow.cs:146:10:146:12 | For | | cflow.cs:161:31:161:31 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:162:13:162:13 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:162:13:162:15 | ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:162:13:162:15 | After ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:162:13:162:15 | Before ...++ | cflow.cs:146:10:146:12 | For | | cflow.cs:162:13:162:16 | ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:162:13:162:16 | After ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:163:13:164:22 | After if (...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:163:17:163:17 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:163:17:163:22 | ... > ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:163:17:163:22 | After ... > ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:163:17:163:22 | Before ... > ... | cflow.cs:146:10:146:12 | For | | cflow.cs:163:21:163:22 | 30 | cflow.cs:146:10:146:12 | For | +| cflow.cs:164:17:164:22 | Before break; | cflow.cs:146:10:146:12 | For | | cflow.cs:164:17:164:22 | break; | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:9:171:9 | After for (...;...;...) ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:9:171:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:167:16:167:21 | ... < ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:16:167:21 | After ... < ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:146:10:146:12 | For | | cflow.cs:167:20:167:21 | 40 | cflow.cs:146:10:146:12 | For | +| cflow.cs:168:9:171:9 | After {...} | cflow.cs:146:10:146:12 | For | | cflow.cs:168:9:171:9 | {...} | cflow.cs:146:10:146:12 | For | +| cflow.cs:169:13:169:32 | After call to method WriteLine | cflow.cs:146:10:146:12 | For | +| cflow.cs:169:13:169:32 | Before call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:169:13:169:32 | call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:169:13:169:33 | ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:169:13:169:33 | After ...; | cflow.cs:146:10:146:12 | For | | cflow.cs:169:31:169:31 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:170:13:170:13 | access to local variable x | cflow.cs:146:10:146:12 | For | | cflow.cs:170:13:170:15 | ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:170:13:170:15 | After ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:170:13:170:15 | Before ...++ | cflow.cs:146:10:146:12 | For | | cflow.cs:170:13:170:16 | ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:170:13:170:16 | After ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:9:176:9 | After for (...;...;...) ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:9:176:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:146:10:146:12 | For | | cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:18:173:18 | access to local variable i | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:18:173:22 | After Int32 i = ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:18:173:22 | Before Int32 i = ... | cflow.cs:146:10:146:12 | For | | cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:146:10:146:12 | For | | cflow.cs:173:22:173:22 | 0 | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:25:173:25 | access to local variable j | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:25:173:29 | After Int32 j = ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:25:173:29 | Before Int32 j = ... | cflow.cs:146:10:146:12 | For | | cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:146:10:146:12 | For | | cflow.cs:173:29:173:29 | 0 | cflow.cs:146:10:146:12 | For | | cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:146:10:146:12 | For | | cflow.cs:173:32:173:36 | ... + ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:36 | After ... + ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:36 | Before ... + ... | cflow.cs:146:10:146:12 | For | | cflow.cs:173:32:173:41 | ... < ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:41 | After ... < ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:146:10:146:12 | For | | cflow.cs:173:36:173:36 | access to local variable j | cflow.cs:146:10:146:12 | For | | cflow.cs:173:40:173:41 | 10 | cflow.cs:146:10:146:12 | For | | cflow.cs:173:44:173:44 | access to local variable i | cflow.cs:146:10:146:12 | For | | cflow.cs:173:44:173:46 | ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:44:173:46 | After ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:44:173:46 | Before ...++ | cflow.cs:146:10:146:12 | For | | cflow.cs:173:49:173:49 | access to local variable j | cflow.cs:146:10:146:12 | For | | cflow.cs:173:49:173:51 | ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:49:173:51 | After ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:49:173:51 | Before ...++ | cflow.cs:146:10:146:12 | For | +| cflow.cs:174:9:176:9 | After {...} | cflow.cs:146:10:146:12 | For | | cflow.cs:174:9:176:9 | {...} | cflow.cs:146:10:146:12 | For | +| cflow.cs:175:13:175:36 | After call to method WriteLine | cflow.cs:146:10:146:12 | For | +| cflow.cs:175:13:175:36 | Before call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:146:10:146:12 | For | | cflow.cs:175:13:175:37 | ...; | cflow.cs:146:10:146:12 | For | +| cflow.cs:175:13:175:37 | After ...; | cflow.cs:146:10:146:12 | For | | cflow.cs:175:31:175:31 | access to local variable i | cflow.cs:146:10:146:12 | For | | cflow.cs:175:31:175:35 | ... + ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:175:31:175:35 | After ... + ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:175:31:175:35 | Before ... + ... | cflow.cs:146:10:146:12 | For | | cflow.cs:175:35:175:35 | access to local variable j | cflow.cs:146:10:146:12 | For | -| cflow.cs:179:10:179:16 | enter Lambdas | cflow.cs:179:10:179:16 | Lambdas | -| cflow.cs:179:10:179:16 | exit Lambdas | cflow.cs:179:10:179:16 | Lambdas | -| cflow.cs:179:10:179:16 | exit Lambdas (normal) | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:179:10:179:16 | Entry | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:179:10:179:16 | Exit | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:179:10:179:16 | Normal Exit | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:180:5:183:5 | After {...} | cflow.cs:179:10:179:16 | Lambdas | | cflow.cs:180:5:183:5 | {...} | cflow.cs:179:10:179:16 | Lambdas | | cflow.cs:181:9:181:38 | ... ...; | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:181:9:181:38 | After ... ...; | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:181:24:181:24 | access to local variable y | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:181:24:181:37 | After Func y = ... | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:181:24:181:37 | Before Func y = ... | cflow.cs:179:10:179:16 | Lambdas | | cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:179:10:179:16 | Lambdas | | cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:179:10:179:16 | Lambdas | -| cflow.cs:181:28:181:37 | enter (...) => ... | cflow.cs:181:28:181:37 | (...) => ... | -| cflow.cs:181:28:181:37 | exit (...) => ... | cflow.cs:181:28:181:37 | (...) => ... | -| cflow.cs:181:28:181:37 | exit (...) => ... (normal) | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:181:28:181:37 | Entry | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:181:28:181:37 | Exit | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:181:28:181:37 | Normal Exit | cflow.cs:181:28:181:37 | (...) => ... | | cflow.cs:181:33:181:33 | access to parameter x | cflow.cs:181:28:181:37 | (...) => ... | | cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:181:33:181:37 | After ... + ... | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:181:33:181:37 | Before ... + ... | cflow.cs:181:28:181:37 | (...) => ... | | cflow.cs:181:37:181:37 | 1 | cflow.cs:181:28:181:37 | (...) => ... | | cflow.cs:182:9:182:62 | ... ...; | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:182:9:182:62 | After ... ...; | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:182:24:182:24 | access to local variable z | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:182:24:182:61 | After Func z = ... | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:182:24:182:61 | Before Func z = ... | cflow.cs:179:10:179:16 | Lambdas | | cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:182:28:182:61 | Entry | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:182:28:182:61 | Exit | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:182:28:182:61 | Normal Exit | cflow.cs:182:28:182:61 | delegate(...) { ... } | | cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:179:10:179:16 | Lambdas | -| cflow.cs:182:28:182:61 | enter delegate(...) { ... } | cflow.cs:182:28:182:61 | delegate(...) { ... } | -| cflow.cs:182:28:182:61 | exit delegate(...) { ... } | cflow.cs:182:28:182:61 | delegate(...) { ... } | -| cflow.cs:182:28:182:61 | exit delegate(...) { ... } (normal) | cflow.cs:182:28:182:61 | delegate(...) { ... } | | cflow.cs:182:45:182:61 | {...} | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:182:47:182:59 | Before return ...; | cflow.cs:182:28:182:61 | delegate(...) { ... } | | cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:28:182:61 | delegate(...) { ... } | | cflow.cs:182:54:182:54 | access to parameter x | cflow.cs:182:28:182:61 | delegate(...) { ... } | | cflow.cs:182:54:182:58 | ... + ... | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:182:54:182:58 | After ... + ... | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:182:54:182:58 | Before ... + ... | cflow.cs:182:28:182:61 | delegate(...) { ... } | | cflow.cs:182:58:182:58 | 1 | cflow.cs:182:28:182:61 | delegate(...) { ... } | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:185:10:185:18 | exit LogicalOr | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:185:10:185:18 | exit LogicalOr (normal) | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:185:10:185:18 | Exit | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:185:10:185:18 | Normal Exit | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:186:5:191:5 | After {...} | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:186:5:191:5 | {...} | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:13:187:13 | 1 | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:13:187:18 | ... == ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:18 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:18 | Before ... == ... | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:28 | After ... \|\| ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:50 | After ... \|\| ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:18:187:18 | 2 | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:23:187:23 | 2 | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:23:187:28 | ... == ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:23:187:28 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:23:187:28 | Before ... == ... | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:28:187:28 | 3 | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:34:187:34 | 1 | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:34:187:39 | ... == ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:39 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:39 | Before ... == ... | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:34:187:49 | ... && ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:49 | After ... && ... [true] | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:187:39:187:39 | 3 | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:44:187:44 | 3 | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:44:187:49 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:44:187:49 | Before ... == ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:49:187:49 | 1 | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:188:13:188:54 | After call to method WriteLine | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:188:13:188:54 | Before call to method WriteLine | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:188:13:188:54 | call to method WriteLine | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:188:13:188:55 | ...; | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:188:13:188:55 | After ...; | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:188:31:188:53 | "This shouldn't happen" | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:190:13:190:51 | After call to method WriteLine | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:190:13:190:51 | Before call to method WriteLine | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:190:13:190:51 | call to method WriteLine | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:190:13:190:52 | ...; | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:190:13:190:52 | After ...; | cflow.cs:185:10:185:18 | LogicalOr | | cflow.cs:190:31:190:50 | "This should happen" | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:193:10:193:17 | exit Booleans | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:193:10:193:17 | exit Booleans (abnormal) | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:193:10:193:17 | Exceptional Exit | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:193:10:193:17 | Exit | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:193:10:193:17 | Normal Exit | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:194:5:206:5 | After {...} | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:194:5:206:5 | {...} | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:9:195:57 | ... ...; | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:9:195:57 | After ... ...; | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:13:195:13 | access to local variable b | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:13:195:56 | After Boolean b = ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:13:195:56 | Before Boolean b = ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:21 | After access to field Field | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:21 | Before access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:17:195:21 | access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:17:195:21 | this access | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:28 | After access to property Length | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:28 | Before access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:17:195:28 | access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:17:195:32 | ... > ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:32 | After ... > ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:32 | After ... > ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:32 | Before ... > ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:17:195:56 | ... && ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:32:195:32 | 0 | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:37:195:56 | !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:37:195:56 | After !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:39:195:43 | After access to field Field | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:39:195:43 | Before access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:39:195:43 | access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:39:195:43 | this access | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:39:195:50 | After access to property Length | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:39:195:50 | Before access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:39:195:50 | access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:39:195:55 | ... == ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:39:195:55 | After ... == ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:39:195:55 | Before ... == ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:195:55:195:55 | 1 | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:13:197:47 | !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:13:197:47 | After !... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:13:197:47 | After !... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:19 | After access to field Field | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:19 | Before access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:15:197:19 | access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:15:197:19 | this access | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:26 | After access to property Length | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:26 | Before access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:15:197:26 | access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:15:197:31 | ... == ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:31 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:31 | Before ... == ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:31:197:31 | 0 | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:35:197:39 | After false [false] | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:35:197:39 | false | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:43:197:46 | After true [true] | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:197:43:197:46 | true | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:13:198:13 | access to local variable b | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:13:198:48 | ... = ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:13:198:48 | After ... = ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:13:198:48 | Before ... = ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:13:198:49 | ...; | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:13:198:49 | After ...; | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:21 | After access to field Field | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:21 | Before access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:17:198:21 | access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:17:198:21 | this access | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:28 | After access to property Length | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:28 | Before access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:17:198:28 | access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:17:198:33 | ... == ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:33 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:33 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:33 | Before ... == ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:33:198:33 | 0 | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:37:198:41 | false | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:198:45:198:48 | true | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:9:205:9 | After if (...) ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:32 | [true] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:13:200:32 | !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:13:200:32 | After !... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:13:200:32 | After !... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:13:200:62 | After ... \|\| ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:13:200:62 | After ... \|\| ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:19 | After access to field Field | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:19 | Before access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:15:200:19 | access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:15:200:19 | this access | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:26 | After access to property Length | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:26 | Before access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:15:200:26 | access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:15:200:31 | ... == ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:31 | Before ... == ... | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:31:200:31 | 0 | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:37:200:62 | [true] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:37:200:62 | !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:37:200:62 | After !... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:37:200:62 | After !... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:38:200:62 | !... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:38:200:62 | After !... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:38:200:62 | After !... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:44 | After access to field Field | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:44 | Before access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:40:200:44 | access to field Field | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:40:200:44 | this access | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:51 | After access to property Length | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:51 | Before access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:40:200:51 | access to property Length | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:40:200:56 | ... == ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:56 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:56 | Before ... == ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:61 | After ... && ... [true] | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:56:200:56 | 1 | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:201:9:205:9 | {...} | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:202:13:204:13 | {...} | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:203:17:203:38 | Before throw ...; | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:203:23:203:37 | After object creation of type Exception | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:203:23:203:37 | Before object creation of type Exception | cflow.cs:193:10:193:17 | Booleans | | cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:208:10:208:11 | Do | -| cflow.cs:208:10:208:11 | exit Do | cflow.cs:208:10:208:11 | Do | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | Do | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:208:10:208:11 | Do | +| cflow.cs:208:10:208:11 | Exit | cflow.cs:208:10:208:11 | Do | +| cflow.cs:208:10:208:11 | Normal Exit | cflow.cs:208:10:208:11 | Do | +| cflow.cs:209:5:222:5 | After {...} | cflow.cs:208:10:208:11 | Do | | cflow.cs:209:5:222:5 | {...} | cflow.cs:208:10:208:11 | Do | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:208:10:208:11 | Do | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:208:10:208:11 | Do | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:208:10:208:11 | Do | +| cflow.cs:211:9:221:9 | After {...} | cflow.cs:208:10:208:11 | Do | | cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | Do | +| cflow.cs:212:13:212:17 | After access to field Field | cflow.cs:208:10:208:11 | Do | +| cflow.cs:212:13:212:17 | Before access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | this access | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:24 | ... += ... | cflow.cs:208:10:208:11 | Do | +| cflow.cs:212:13:212:24 | After ... += ... | cflow.cs:208:10:208:11 | Do | +| cflow.cs:212:13:212:24 | Before ... += ... | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:25 | ...; | cflow.cs:208:10:208:11 | Do | +| cflow.cs:212:13:212:25 | After ...; | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:22:212:24 | "a" | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:13:216:13 | After if (...) ... | cflow.cs:208:10:208:11 | Do | | cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:21 | After access to field Field | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:21 | Before access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:213:17:213:21 | access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:213:17:213:21 | this access | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:28 | After access to property Length | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:28 | Before access to property Length | cflow.cs:208:10:208:11 | Do | | cflow.cs:213:17:213:28 | access to property Length | cflow.cs:208:10:208:11 | Do | | cflow.cs:213:17:213:32 | ... > ... | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:32 | After ... > ... [true] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:32 | Before ... > ... | cflow.cs:208:10:208:11 | Do | | cflow.cs:213:32:213:32 | 0 | cflow.cs:208:10:208:11 | Do | | cflow.cs:214:13:216:13 | {...} | cflow.cs:208:10:208:11 | Do | +| cflow.cs:215:17:215:25 | Before continue; | cflow.cs:208:10:208:11 | Do | | cflow.cs:215:17:215:25 | continue; | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:13:220:13 | After if (...) ... | cflow.cs:208:10:208:11 | Do | | cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:21 | After access to field Field | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:21 | Before access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:217:17:217:21 | access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:217:17:217:21 | this access | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:28 | After access to property Length | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:28 | Before access to property Length | cflow.cs:208:10:208:11 | Do | | cflow.cs:217:17:217:28 | access to property Length | cflow.cs:208:10:208:11 | Do | | cflow.cs:217:17:217:32 | ... < ... | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:32 | After ... < ... [false] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:32 | After ... < ... [true] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:32 | Before ... < ... | cflow.cs:208:10:208:11 | Do | | cflow.cs:217:32:217:32 | 0 | cflow.cs:208:10:208:11 | Do | | cflow.cs:218:13:220:13 | {...} | cflow.cs:208:10:208:11 | Do | +| cflow.cs:219:17:219:22 | Before break; | cflow.cs:208:10:208:11 | Do | | cflow.cs:219:17:219:22 | break; | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:22 | After access to field Field | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:22 | Before access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:221:18:221:22 | access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:221:18:221:22 | this access | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:29 | After access to property Length | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:29 | Before access to property Length | cflow.cs:208:10:208:11 | Do | | cflow.cs:221:18:221:29 | access to property Length | cflow.cs:208:10:208:11 | Do | | cflow.cs:221:18:221:34 | ... < ... | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:34 | After ... < ... [false] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:34 | After ... < ... [true] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:34 | Before ... < ... | cflow.cs:208:10:208:11 | Do | | cflow.cs:221:33:221:34 | 10 | cflow.cs:208:10:208:11 | Do | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:224:10:224:16 | exit Foreach | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:224:10:224:16 | Exit | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:224:10:224:16 | Normal Exit | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:225:5:238:5 | After {...} | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:225:5:238:5 | {...} | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:226:22:226:22 | String x | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:27:226:64 | After call to method Repeat [empty] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:27:226:64 | Before call to method Repeat | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:226:57:226:59 | "a" | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:226:62:226:63 | 10 | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:227:9:237:9 | After {...} | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:227:9:237:9 | {...} | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:228:13:228:17 | After access to field Field | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:228:13:228:17 | Before access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | this access | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:22 | ... += ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:228:13:228:22 | After ... += ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:228:13:228:22 | Before ... += ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:23 | ...; | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:228:13:228:23 | After ...; | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:13:232:13 | After if (...) ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:21 | After access to field Field | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:21 | Before access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:229:17:229:21 | access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:229:17:229:21 | this access | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:28 | After access to property Length | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:28 | Before access to property Length | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:229:17:229:28 | access to property Length | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:229:17:229:32 | ... > ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:32 | After ... > ... [true] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:32 | Before ... > ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:229:32:229:32 | 0 | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:230:13:232:13 | {...} | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:231:17:231:25 | Before continue; | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:231:17:231:25 | continue; | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:13:236:13 | After if (...) ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:21 | After access to field Field | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:21 | Before access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:233:17:233:21 | access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:233:17:233:21 | this access | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:28 | After access to property Length | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:28 | Before access to property Length | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:233:17:233:28 | access to property Length | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:233:17:233:32 | ... < ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:32 | After ... < ... [false] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:32 | After ... < ... [true] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:32 | Before ... < ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:233:32:233:32 | 0 | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:234:13:236:13 | {...} | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:235:17:235:22 | Before break; | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:235:17:235:22 | break; | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:240:10:240:13 | exit Goto | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:240:10:240:13 | Exit | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:240:10:240:13 | Normal Exit | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:241:5:259:5 | After {...} | cflow.cs:240:10:240:13 | Goto | | cflow.cs:241:5:259:5 | {...} | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:5:242:9 | Label: | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:16:242:36 | !... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:16:242:36 | After !... [false] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:16:242:36 | After !... [true] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:17:242:36 | !... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:17:242:36 | After !... [false] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:17:242:36 | After !... [true] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:23 | After access to field Field | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:23 | Before access to field Field | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:19:242:23 | access to field Field | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:19:242:23 | this access | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:30 | After access to property Length | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:30 | Before access to property Length | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:19:242:30 | access to property Length | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:19:242:35 | ... == ... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:35 | Before ... == ... | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:35:242:35 | 0 | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:39:242:41 | {...} | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:9:244:41 | After if (...) ... | cflow.cs:240:10:240:13 | Goto | | cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:17 | After access to field Field | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:17 | Before access to field Field | cflow.cs:240:10:240:13 | Goto | | cflow.cs:244:13:244:17 | access to field Field | cflow.cs:240:10:240:13 | Goto | | cflow.cs:244:13:244:17 | this access | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:24 | After access to property Length | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:24 | Before access to property Length | cflow.cs:240:10:240:13 | Goto | | cflow.cs:244:13:244:24 | access to property Length | cflow.cs:240:10:240:13 | Goto | | cflow.cs:244:13:244:28 | ... > ... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:28 | Before ... > ... | cflow.cs:240:10:240:13 | Goto | | cflow.cs:244:28:244:28 | 0 | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:31:244:41 | Before goto ...; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:244:31:244:41 | goto ...; | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:240:10:240:13 | Goto | | cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:17:246:21 | After access to field Field | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:17:246:21 | Before access to field Field | cflow.cs:240:10:240:13 | Goto | | cflow.cs:246:17:246:21 | access to field Field | cflow.cs:240:10:240:13 | Goto | | cflow.cs:246:17:246:21 | this access | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:17:246:28 | After access to property Length | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:17:246:28 | Before access to property Length | cflow.cs:240:10:240:13 | Goto | | cflow.cs:246:17:246:28 | access to property Length | cflow.cs:240:10:240:13 | Goto | | cflow.cs:246:17:246:32 | ... + ... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:17:246:32 | After ... + ... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:17:246:32 | Before ... + ... | cflow.cs:240:10:240:13 | Goto | | cflow.cs:246:32:246:32 | 3 | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto | | cflow.cs:248:13:248:19 | case ...: | cflow.cs:240:10:240:13 | Goto | | cflow.cs:248:18:248:18 | 0 | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:249:17:249:29 | Before goto default; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:249:17:249:29 | goto default; | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto | | cflow.cs:250:13:250:19 | case ...: | cflow.cs:240:10:240:13 | Goto | | cflow.cs:250:18:250:18 | 1 | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:251:17:251:36 | After call to method WriteLine | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:251:17:251:36 | Before call to method WriteLine | cflow.cs:240:10:240:13 | Goto | | cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:240:10:240:13 | Goto | | cflow.cs:251:17:251:37 | ...; | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:251:17:251:37 | After ...; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:251:35:251:35 | 1 | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:252:17:252:22 | Before break; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:252:17:252:22 | break; | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto | | cflow.cs:253:13:253:19 | case ...: | cflow.cs:240:10:240:13 | Goto | | cflow.cs:253:18:253:18 | 2 | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:254:17:254:27 | Before goto ...; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:254:17:254:27 | goto ...; | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:240:10:240:13 | Goto | | cflow.cs:255:13:255:20 | default: | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:256:17:256:36 | After call to method WriteLine | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:256:17:256:36 | Before call to method WriteLine | cflow.cs:240:10:240:13 | Goto | | cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:240:10:240:13 | Goto | | cflow.cs:256:17:256:37 | ...; | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:256:17:256:37 | After ...; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:256:35:256:35 | 0 | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:257:17:257:22 | Before break; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:257:17:257:22 | break; | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | Exit | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:262:5:277:5 | After {...} | cflow.cs:261:49:261:53 | Yield | | cflow.cs:262:5:277:5 | {...} | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:263:9:263:23 | After yield return ...; | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:263:9:263:23 | Before yield return ...; | cflow.cs:261:49:261:53 | Yield | | cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:261:49:261:53 | Yield | | cflow.cs:263:22:263:22 | 0 | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:9:267:9 | After for (...;...;...) ... | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:9:267:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:18:264:18 | access to local variable i | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:18:264:22 | After Int32 i = ... | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:18:264:22 | Before Int32 i = ... | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:22:264:22 | 1 | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:25:264:30 | ... < ... | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:25:264:30 | After ... < ... [true] | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:29:264:30 | 10 | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:33:264:33 | access to local variable i | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:33:264:35 | ...++ | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:33:264:35 | After ...++ | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:33:264:35 | Before ...++ | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:265:9:267:9 | After {...} | cflow.cs:261:49:261:53 | Yield | | cflow.cs:265:9:267:9 | {...} | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:266:13:266:27 | After yield return ...; | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:266:13:266:27 | Before yield return ...; | cflow.cs:261:49:261:53 | Yield | | cflow.cs:266:13:266:27 | yield return ...; | cflow.cs:261:49:261:53 | Yield | | cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:268:9:276:9 | After try {...} ... | cflow.cs:261:49:261:53 | Yield | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | Yield | | cflow.cs:269:9:272:9 | {...} | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:270:13:270:24 | Before yield break; | cflow.cs:261:49:261:53 | Yield | | cflow.cs:270:13:270:24 | yield break; | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:261:49:261:53 | Yield | | cflow.cs:274:9:276:9 | {...} | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:275:13:275:41 | After call to method WriteLine | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:275:13:275:41 | Before call to method WriteLine | cflow.cs:261:49:261:53 | Yield | | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | Yield | | cflow.cs:275:13:275:42 | ...; | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:275:13:275:42 | After ...; | 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 | After call to method | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:282:5:282:18 | Before call to method | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:282:5:282:18 | Entry | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:282:5:282:18 | Exit | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:282:5:282:18 | Normal Exit | cflow.cs:282:5:282:18 | ControlFlowSub | | 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 | After call to constructor ControlFlow | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:282:24:282:27 | Before call to constructor ControlFlow | 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 | -| cflow.cs:284:5:284:18 | exit ControlFlowSub | cflow.cs:284:5:284:18 | ControlFlowSub | -| cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | cflow.cs:284:5:284:18 | ControlFlowSub | +| cflow.cs:284:5:284:18 | Entry | cflow.cs:284:5:284:18 | ControlFlowSub | +| cflow.cs:284:5:284:18 | Exit | cflow.cs:284:5:284:18 | ControlFlowSub | +| cflow.cs:284:5:284:18 | Normal Exit | cflow.cs:284:5:284:18 | ControlFlowSub | +| cflow.cs:284:32:284:35 | After call to constructor ControlFlowSub | cflow.cs:284:5:284:18 | ControlFlowSub | +| cflow.cs:284:32:284:35 | Before call to constructor ControlFlowSub | cflow.cs:284:5:284:18 | ControlFlowSub | | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:5:284:18 | ControlFlowSub | | cflow.cs:284:39:284:41 | {...} | cflow.cs:284:5:284:18 | ControlFlowSub | -| cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:5:286:18 | ControlFlowSub | -| cflow.cs:286:5:286:18 | exit ControlFlowSub | cflow.cs:286:5:286:18 | ControlFlowSub | -| cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:286:5:286:18 | Entry | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:286:5:286:18 | Exit | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:286:5:286:18 | Normal Exit | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:286:29:286:32 | After call to constructor ControlFlowSub | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:286:29:286:32 | Before call to constructor ControlFlowSub | cflow.cs:286:5:286:18 | ControlFlowSub | | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:5:286:18 | ControlFlowSub | | cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:286:34:286:45 | After call to method ToString | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:286:34:286:45 | Before call to method ToString | cflow.cs:286:5:286:18 | ControlFlowSub | | 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 | After call to constructor Object | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | After call to method | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | Before call to constructor Object | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | Before call to method | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | Entry | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | Exit | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | Normal Exit | 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 | 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 | -| cflow.cs:291:12:291:12 | exit M (normal) | cflow.cs:291:12:291:12 | M | +| cflow.cs:291:12:291:12 | Entry | cflow.cs:291:12:291:12 | M | +| cflow.cs:291:12:291:12 | Exit | cflow.cs:291:12:291:12 | M | +| cflow.cs:291:12:291:12 | Normal Exit | cflow.cs:291:12:291:12 | M | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:12:291:12 | M | +| cflow.cs:291:38:291:41 | After delegate call | cflow.cs:291:12:291:12 | M | +| cflow.cs:291:38:291:41 | Before delegate call | cflow.cs:291:12:291:12 | M | | 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 | After call to constructor Object | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | After call to method | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | Before call to constructor Object | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | Before call to method | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | Entry | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | Exit | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | Normal Exit | 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 | 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 | -| cflow.cs:298:10:298:10 | exit M (normal) | cflow.cs:298:10:298:10 | M | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:298:10:298:10 | M | +| cflow.cs:298:10:298:10 | Exit | cflow.cs:298:10:298:10 | M | +| cflow.cs:298:10:298:10 | Normal Exit | cflow.cs:298:10:298:10 | M | +| cflow.cs:299:5:301:5 | After {...} | cflow.cs:298:10:298:10 | M | | cflow.cs:299:5:301:5 | {...} | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:9:300:72 | After object creation of type NegationInConstructor | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:9:300:72 | Before object creation of type NegationInConstructor | cflow.cs:298:10:298:10 | M | | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:298:10:298:10 | M | | cflow.cs:300:9:300:73 | ...; | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:9:300:73 | After ...; | cflow.cs:298:10:298:10 | M | | cflow.cs:300:38:300:38 | 0 | cflow.cs:298:10:298:10 | M | -| cflow.cs:300:44:300:51 | [false] !... | cflow.cs:298:10:298:10 | M | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:44:300:51 | !... | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:44:300:51 | After !... [false] | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:44:300:51 | After !... [true] | cflow.cs:298:10:298:10 | M | | cflow.cs:300:44:300:64 | ... && ... | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:298:10:298:10 | M | | cflow.cs:300:46:300:46 | access to parameter i | cflow.cs:298:10:298:10 | M | | cflow.cs:300:46:300:50 | ... > ... | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:46:300:50 | Before ... > ... | cflow.cs:298:10:298:10 | M | | cflow.cs:300:50:300:50 | 0 | cflow.cs:298:10:298:10 | M | | cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:298:10:298:10 | M | | cflow.cs:300:56:300:64 | ... != ... | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:56:300:64 | After ... != ... | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:56:300:64 | Before ... != ... | cflow.cs:298:10:298:10 | M | | 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 | After call to constructor Object | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | After call to method | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | Before call to constructor Object | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | Before call to method | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | Entry | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | Exit | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | Normal Exit | 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 | 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 | (...) => ... | -| cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | get__getter | -| cflow.cs:306:60:310:5 | exit (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | -| cflow.cs:306:60:310:5 | exit (...) => ... (normal) | cflow.cs:306:60:310:5 | (...) => ... | -| cflow.cs:306:60:310:5 | exit get__getter | cflow.cs:306:60:310:5 | get__getter | -| cflow.cs:306:60:310:5 | exit get__getter (normal) | cflow.cs:306:60:310:5 | get__getter | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | get__getter | +| cflow.cs:306:60:310:5 | Exit | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:306:60:310:5 | Exit | cflow.cs:306:60:310:5 | get__getter | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:306:60:310:5 | get__getter | | cflow.cs:307:5:310:5 | {...} | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:308:9:308:21 | ... ...; | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:308:9:308:21 | After ... ...; | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:308:16:308:16 | access to local variable x | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:308:16:308:20 | After Object x = ... | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:308:16:308:20 | Before Object x = ... | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:308:20:308:20 | access to parameter o | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:309:9:309:17 | Before return ...; | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:309:9:309:17 | return ...; | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:306:60:310:5 | (...) => ... | blockEnclosing -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | 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:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | set_Item | -| AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | add_Event | -| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | remove_Event | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | M1 | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | M2 | -| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | M3 | -| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | M4 | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | M5 | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | M6 | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | M7 | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | M8 | -| AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | M9 | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | ArrayCreation | -| ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | M1 | -| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | M2 | -| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | M3 | -| ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:12:9:13 | M4 | -| Assert.cs:5:7:5:17 | enter AssertTests | 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 | -| Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | M1 | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:7:10:7:11 | M1 | -| Assert.cs:9:24:9:27 | null | Assert.cs:7:10:7:11 | M1 | -| Assert.cs:9:31:9:32 | "" | Assert.cs:7:10:7:11 | M1 | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:7:10:7:11 | M1 | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:14:10:14:11 | exit M2 | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:16:24:16:27 | null | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:16:31:16:32 | "" | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:14:10:14:11 | M2 | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:21:10:21:11 | exit M3 | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:23:24:23:27 | null | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:23:31:23:32 | "" | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:21:10:21:11 | M3 | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:28:10:28:11 | exit M4 | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:30:24:30:27 | null | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:30:31:30:32 | "" | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:28:10:28:11 | M4 | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:35:10:35:11 | exit M5 | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:37:24:37:27 | null | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:37:31:37:32 | "" | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:35:10:35:11 | M5 | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:42:10:42:11 | exit M6 | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:44:24:44:27 | null | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:44:31:44:32 | "" | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:42:10:42:11 | M6 | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:49:10:49:11 | exit M7 | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:51:24:51:27 | null | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:51:31:51:32 | "" | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:49:10:49:11 | M7 | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:24:58:27 | null | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:31:58:32 | "" | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:24:65:27 | null | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:31:65:32 | "" | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:24:72:27 | null | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:31:72:32 | "" | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:24:79:27 | null | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:31:79:32 | "" | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:24:86:27 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:31:86:32 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:17:90:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:24:90:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:17:94:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:24:94:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:17:98:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:24:98:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:17:102:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:24:102:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:17:106:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:24:106:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:17:110:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:24:110:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:17:114:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:24:114:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:17:118:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:24:118:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:17:122:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:24:122:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:17:126:20 | null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:24:126:25 | "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | AssertTrueFalse | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | M13 | -| Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | M13 | -| Assert.cs:138:10:138:12 | exit M13 (abnormal) | 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 | enter Assignments | Assignments.cs:1:7:1:17 | Assignments | -| Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | M | -| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | (...) => ... | -| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | + | -| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | -| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | -| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | M2 | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | -| BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | M1 | -| BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | M1 | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | M1 | +| AccessorCalls.cs:1:7:1:19 | Entry | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:5:23:5:25 | Entry | AccessorCalls.cs:5:23:5:25 | get_Item | +| AccessorCalls.cs:5:33:5:35 | Entry | AccessorCalls.cs:5:33:5:35 | set_Item | +| AccessorCalls.cs:7:32:7:34 | Entry | AccessorCalls.cs:7:32:7:34 | add_Event | +| AccessorCalls.cs:7:40:7:45 | Entry | AccessorCalls.cs:7:40:7:45 | remove_Event | +| AccessorCalls.cs:10:10:10:11 | Entry | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:19:10:19:11 | Entry | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:28:10:28:11 | Entry | AccessorCalls.cs:28:10:28:11 | M3 | +| AccessorCalls.cs:35:10:35:11 | Entry | AccessorCalls.cs:35:10:35:11 | M4 | +| AccessorCalls.cs:42:10:42:11 | Entry | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:49:10:49:11 | Entry | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:56:10:56:11 | Entry | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:61:10:61:11 | Entry | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:66:10:66:11 | Entry | AccessorCalls.cs:66:10:66:11 | M9 | +| ArrayCreation.cs:1:7:1:19 | Entry | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:3:11:3:12 | Entry | ArrayCreation.cs:3:11:3:12 | M1 | +| ArrayCreation.cs:5:12:5:13 | Entry | ArrayCreation.cs:5:12:5:13 | M2 | +| ArrayCreation.cs:7:11:7:12 | Entry | ArrayCreation.cs:7:11:7:12 | M3 | +| ArrayCreation.cs:9:12:9:13 | Entry | ArrayCreation.cs:9:12:9:13 | M4 | +| Assert.cs:5:7:5:17 | Entry | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:7:10:7:11 | Exceptional Exit | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:7:10:7:11 | Exit | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:20:9:20 | After access to parameter b [false] | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:20:9:20 | After access to parameter b [true] | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:7:10:7:11 | M1 | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:14:10:14:11 | Exceptional Exit | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:14:10:14:11 | Exit | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:20:16:20 | After access to parameter b [false] | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:20:16:20 | After access to parameter b [true] | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:14:10:14:11 | M2 | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:21:10:21:11 | Exceptional Exit | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:21:10:21:11 | Exit | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:20:23:20 | After access to parameter b [false] | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:20:23:20 | After access to parameter b [true] | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:21:10:21:11 | M3 | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:28:10:28:11 | Exceptional Exit | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:28:10:28:11 | Exit | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:20:30:20 | After access to parameter b [false] | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:20:30:20 | After access to parameter b [true] | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:28:10:28:11 | M4 | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:35:10:35:11 | Exceptional Exit | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:35:10:35:11 | Exit | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:20:37:20 | After access to parameter b [false] | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:20:37:20 | After access to parameter b [true] | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:35:10:35:11 | M5 | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:42:10:42:11 | Exceptional Exit | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:42:10:42:11 | Exit | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:20:44:20 | After access to parameter b [false] | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:20:44:20 | After access to parameter b [true] | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:42:10:42:11 | M6 | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:49:10:49:11 | Exceptional Exit | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:49:10:49:11 | Exit | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:20:51:20 | After access to parameter b [false] | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:20:51:20 | After access to parameter b [true] | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:49:10:49:11 | M7 | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:56:10:56:11 | Exceptional Exit | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:56:10:56:11 | Exit | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:20 | After access to parameter b [false] | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:20 | After access to parameter b [true] | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:31 | After ... != ... [false] | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:31 | After ... != ... [true] | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:63:10:63:11 | Exceptional Exit | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:63:10:63:11 | Exit | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:20 | After access to parameter b [false] | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:20 | After access to parameter b [true] | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:32 | After ... == ... [false] | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:32 | After ... == ... [true] | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:70:10:70:12 | Exceptional Exit | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:70:10:70:12 | Exit | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:20 | After access to parameter b [false] | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:20 | After access to parameter b [true] | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:31 | After ... == ... [false] | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:31 | After ... == ... [true] | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:77:10:77:12 | Exceptional Exit | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:77:10:77:12 | Exit | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:20 | After access to parameter b [false] | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:20 | After access to parameter b [true] | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:32 | After ... != ... [false] | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:32 | After ... != ... [true] | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:84:10:84:12 | Exceptional Exit | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:84:10:84:12 | Exit | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:20 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:20 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:31 | After ... != ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:31 | After ... != ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:32 | After ... == ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:32 | After ... == ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:31 | After ... == ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:31 | After ... == ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:13 | After access to parameter b [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:13 | After access to parameter b [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:32 | After ... != ... [false] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:32 | After ... != ... [true] | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:131:18:131:32 | Entry | Assert.cs:131:18:131:32 | AssertTrueFalse | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:138:10:138:12 | Exceptional Exit | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:138:10:138:12 | Exit | Assert.cs:138:10:138:12 | M13 | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:138:10:138:12 | M13 | +| Assignments.cs:1:7:1:17 | Entry | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:3:10:3:10 | Entry | Assignments.cs:3:10:3:10 | M | +| Assignments.cs:14:18:14:35 | Entry | Assignments.cs:14:18:14:35 | (...) => ... | +| Assignments.cs:17:40:17:40 | Entry | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:27:10:27:23 | Entry | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:32:10:32:22 | Entry | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:38:10:38:11 | Entry | Assignments.cs:38:10:38:11 | M2 | +| BreakInTry.cs:1:7:1:16 | Entry | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:3:10:3:11 | M1 | -| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:3:10:3:11 | M1 | -| BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:3:10:3:11 | M1 | -| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:3:10:3:11 | M1 | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:9:21:9:31 | After ... == ... [false] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:9:21:9:31 | After ... == ... [true] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:15:17:15:28 | After ... == ... [false] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:15:17:15:28 | After ... == ... [true] | BreakInTry.cs:3:10:3:11 | M1 | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:24:13:33:13 | After try {...} ... | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:26:21:26:31 | After ... == ... [false] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:26:21:26:31 | After ... == ... [true] | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:31:21:31:32 | After ... == ... [false] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:31:21:31:32 | After ... == ... [true] | BreakInTry.cs:20:10:20:11 | M2 | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:40:9:52:9 | After try {...} ... | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:42:17:42:28 | After ... == ... [false] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:42:17:42:28 | After ... == ... [true] | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:49:21:49:31 | After ... == ... [false] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:49:21:49:31 | After ... == ... [true] | BreakInTry.cs:38:10:38:11 | M3 | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:58:9:70:9 | After try {...} ... | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:60:17:60:28 | After ... == ... [false] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:60:17:60:28 | After ... == ... [true] | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | M4 | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | -| CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | Default | -| CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:10:9:10:14 | Sizeof | -| CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:15:10:15:15 | Typeof | -| CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | Nameof | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | M | -| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:67:21:67:31 | After ... == ... [false] | BreakInTry.cs:56:10:56:11 | M4 | +| BreakInTry.cs:67:21:67:31 | After ... == ... [true] | BreakInTry.cs:56:10:56:11 | M4 | +| CompileTimeOperators.cs:3:7:3:26 | Entry | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:5:9:5:15 | Entry | CompileTimeOperators.cs:5:9:5:15 | Default | +| CompileTimeOperators.cs:10:9:10:14 | Entry | CompileTimeOperators.cs:10:9:10:14 | Sizeof | +| CompileTimeOperators.cs:15:10:15:15 | Entry | CompileTimeOperators.cs:15:10:15:15 | Typeof | +| CompileTimeOperators.cs:20:12:20:17 | Entry | CompileTimeOperators.cs:20:12:20:17 | Nameof | +| CompileTimeOperators.cs:26:7:26:22 | Entry | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | Exit | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | M | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | -| ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | M1 | -| ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | M1 | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:12:3:13 | M1 | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:12:3:13 | M1 | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:10:5:11 | M2 | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | M2 | -| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:10:5:11 | M2 | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:10:7:11 | M3 | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:9:9:10 | M4 | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:9:9:10 | M4 | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:9:9:10 | M4 | -| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:9:9:10 | M4 | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:11:9:11:10 | M5 | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:12:19:13 | M6 | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | M6 | -| ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:12:19:13 | M6 | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:21:10:21:11 | M7 | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:21:10:21:11 | M7 | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:21:10:21:11 | M7 | -| ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:21:10:21:11 | M7 | -| ConditionalAccess.cs:30:10:30:12 | enter Out | ConditionalAccess.cs:30:10:30:12 | Out | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | -| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 | -| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | M6 | +| ConditionalAccess.cs:1:7:1:23 | Entry | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:12:3:13 | M1 | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:10:5:11 | M2 | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | ConditionalAccess.cs:7:10:7:11 | M3 | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:9:9:10 | M4 | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | ConditionalAccess.cs:11:9:11:10 | M5 | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | M6 | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:13:25:14 | After "" [null] | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:21:10:21:11 | M7 | +| ConditionalAccess.cs:30:10:30:12 | Entry | ConditionalAccess.cs:30:10:30:12 | Out | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | +| ConditionalAccess.cs:42:9:42:11 | Entry | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:43:9:43:11 | Entry | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:60:26:60:38 | Entry | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| Conditions.cs:1:7:1:16 | Entry | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:5:13:5:15 | After access to parameter inc [false] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:5:13:5:15 | After access to parameter inc [true] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:14:13:14:13 | After access to parameter b [false] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:14:13:14:13 | After access to parameter b [true] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:13:16:17 | After ... > ... [false] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:51:17:51:17 | After access to parameter b [false] | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:51:17:51:17 | After access to parameter b [true] | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:62:17:62:17 | After access to parameter b [false] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:62:17:62:17 | After access to parameter b [true] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:65:13:65:13 | After access to parameter b [false] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:65:13:65:13 | After access to parameter b [true] | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:70:9:70:10 | M6 | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:70:9:70:10 | M6 | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:76:17:76:17 | After access to local variable b [false] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:76:17:76:17 | After access to local variable b [true] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:78:17:78:21 | After ... > ... [false] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:78:17:78:21 | After ... > ... [true] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:81:13:81:13 | After access to local variable b [false] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:81:13:81:13 | After access to local variable b [true] | Conditions.cs:70:9:70:10 | M6 | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | M7 | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:143:10:143:12 | M11 | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | ExitMethods | -| ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | M1 | -| ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:14:10:14:11 | M2 | -| ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:20:10:20:11 | M3 | -| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:26:10:26:11 | M4 | -| ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | M5 | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | M7 | -| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | M8 | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:66:17:66:26 | ErrorMaybe | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:72:17:72:27 | ErrorAlways | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | ErrorAlways | -| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:72:17:72:27 | ErrorAlways | -| ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:72:17:72:27 | ErrorAlways | -| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | -| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | -| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:87:10:87:13 | Exit | -| ExitMethods.cs:92:10:92:18 | enter ExitInTry | ExitMethods.cs:92:10:92:18 | ExitInTry | -| ExitMethods.cs:105:10:105:24 | enter ApplicationExit | ExitMethods.cs:105:10:105:24 | ApplicationExit | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:110:13:110:21 | ThrowExpr | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | -| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | -| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | -| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:120:17:120:32 | FailingAssertion | -| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | AssertFalse | -| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | -| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | -| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | -| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:5:23:5:29 | ToInt32 | -| Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:10:24:10:29 | ToBool | -| Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:23:15:33 | CallToInt32 | -| Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:20:17:20:20 | Main | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | Finally | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:24:13:24:19 | return ...; | Finally.cs:19:10:19:11 | M2 | +| Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:92:17:92:17 | After access to local variable b [false] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:92:17:92:17 | After access to local variable b [true] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:94:17:94:21 | After ... > ... [false] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:94:17:94:21 | After ... > ... [true] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:96:17:96:17 | After access to local variable b [false] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:96:17:96:17 | After access to local variable b [true] | Conditions.cs:86:9:86:10 | M7 | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:105:13:105:13 | After access to parameter b [false] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:105:13:105:13 | After access to parameter b [true] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:24 | After ... > ... [false] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:17:121:20 | After access to local variable last [false] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:17:121:20 | After access to local variable last [true] | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:133:13:139:13 | After if (...) ... | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:133:17:133:22 | After access to field Field1 [false] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:17:138:17 | After if (...) ... | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:21:135:26 | After access to field Field2 [false] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:21:135:26 | After access to field Field2 [true] | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:17 | After access to parameter b [false] | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:17 | After access to parameter b [true] | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:13:146:13 | After access to parameter b [false] | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:13:146:13 | After access to parameter b [true] | Conditions.cs:143:10:143:12 | M11 | +| ExitMethods.cs:6:7:6:17 | Entry | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:8:10:8:11 | Entry | ExitMethods.cs:8:10:8:11 | M1 | +| ExitMethods.cs:14:10:14:11 | Entry | ExitMethods.cs:14:10:14:11 | M2 | +| ExitMethods.cs:20:10:20:11 | Entry | ExitMethods.cs:20:10:20:11 | M3 | +| ExitMethods.cs:26:10:26:11 | Entry | ExitMethods.cs:26:10:26:11 | M4 | +| ExitMethods.cs:32:10:32:11 | Entry | ExitMethods.cs:32:10:32:11 | M5 | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:38:10:38:11 | Exit | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:54:10:54:11 | Entry | ExitMethods.cs:54:10:54:11 | M7 | +| ExitMethods.cs:60:10:60:11 | Entry | ExitMethods.cs:60:10:60:11 | M8 | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:66:17:66:26 | Exit | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | ExitMethods.cs:66:17:66:26 | ErrorMaybe | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:72:17:72:27 | Exceptional Exit | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | ExitMethods.cs:72:17:72:27 | ErrorAlways | +| ExitMethods.cs:80:17:80:28 | Entry | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | +| ExitMethods.cs:85:17:85:28 | Entry | ExitMethods.cs:85:17:85:28 | ErrorAlways3 | +| ExitMethods.cs:87:10:87:13 | Entry | ExitMethods.cs:87:10:87:13 | Exit | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:92:10:92:18 | Exceptional Exit | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:92:10:92:18 | Exit | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:92:10:92:18 | ExitInTry | +| ExitMethods.cs:105:10:105:24 | Entry | ExitMethods.cs:105:10:105:24 | ApplicationExit | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:110:13:110:21 | Exit | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:16:112:25 | After ... != ... [false] | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:110:13:110:21 | ThrowExpr | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | +| ExitMethods.cs:120:17:120:32 | Entry | ExitMethods.cs:120:17:120:32 | FailingAssertion | +| ExitMethods.cs:126:17:126:33 | Entry | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:10:132:20 | Exceptional Exit | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:10:132:20 | Exit | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:10:132:20 | AssertFalse | +| ExitMethods.cs:134:17:134:33 | Entry | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:140:17:140:42 | Exceptional Exit | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | +| Extensions.cs:5:23:5:29 | Entry | Extensions.cs:5:23:5:29 | ToInt32 | +| Extensions.cs:10:24:10:29 | Entry | Extensions.cs:10:24:10:29 | ToBool | +| Extensions.cs:15:23:15:33 | Entry | Extensions.cs:15:23:15:33 | CallToInt32 | +| Extensions.cs:20:17:20:20 | Entry | Extensions.cs:20:17:20:20 | Main | +| Finally.cs:3:14:3:20 | Entry | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | Exceptional Exit | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | Exit | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:11:13:11:37 | After call to method WriteLine | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:19:10:19:11 | Exceptional Exit | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:19:10:19:11 | Exit | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:21:9:51:9 | After try {...} ... | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:23:13:23:37 | After call to method WriteLine | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:9:29:9 | After catch (...) {...} [match] | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:42:9:43:9 | {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:9:40:9 | After catch (...) {...} [match] | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:41:9:43:9 | After catch (...) {...} [match] | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | Finally.cs:19:10:19:11 | M2 | | Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:59:13:59:19 | return ...; | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Exceptional Exit | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Exit | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:56:9:71:9 | After try {...} ... | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:58:13:58:37 | After call to method WriteLine | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:9:64:9 | After catch (...) {...} [match] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:54:10:54:11 | M3 | | Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:66:9:67:9 | {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:51 | After ... != ... [false] | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:51 | After ... != ... [true] | Finally.cs:54:10:54:11 | M3 | | Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:86:21:86:26 | break; | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Exceptional Exit | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Exit | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:16:77:20 | After ... > ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:79:13:99:13 | After try {...} ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:81:21:81:26 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:83:21:83:26 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:85:21:85:26 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:85:21:85:26 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | | Finally.cs:89:13:99:13 | {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:92:25:92:30 | After ... == ... [false] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:74:10:74:11 | M4 | +| Finally.cs:93:31:93:45 | After object creation of type Exception | Finally.cs:74:10:74:11 | M4 | | Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:103:10:103:11 | Exceptional Exit | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:103:10:103:11 | Exit | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:105:9:118:9 | After try {...} ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:107:17:107:33 | After ... == ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:33 | After ... == ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 | | Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:117:17:117:37 | ...; | Finally.cs:103:10:103:11 | M5 | -| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | M6 | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | M7 | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:32 | After ... > ... [false] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:116:17:116:32 | After ... > ... [true] | Finally.cs:103:10:103:11 | M5 | +| Finally.cs:121:10:121:11 | Entry | Finally.cs:121:10:121:11 | M6 | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:137:13:137:36 | After call to method WriteLine | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:140:9:143:9 | {...} | Finally.cs:133:10:133:11 | M7 | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:147:10:147:11 | Exceptional Exit | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:147:10:147:11 | Exit | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:151:17:151:28 | After ... == ... [false] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 | | Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:158:36:158:36 | 1 | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:159:41:159:43 | "1" | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:36 | After ... == ... [false] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:159:27:159:44 | After object creation of type Exception | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:147:10:147:11 | M8 | | Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:162:13:164:13 | {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:147:10:147:11 | M8 | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | ExceptionB | -| Finally.cs:174:11:174:20 | enter ExceptionC | 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 | -| Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:161:39:161:54 | After ... == ... [false] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:54 | After ... == ... [true] | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:172:11:172:20 | Entry | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:173:11:173:20 | Entry | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:174:11:174:20 | Entry | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:176:10:176:11 | Exceptional Exit | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:176:10:176:11 | Exit | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:17:180:18 | After access to parameter b1 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:27:180:42 | After object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | | Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:21:186:22 | After access to parameter b2 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:31:186:46 | After object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | Finally.cs:176:10:176:11 | M9 | | Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:189:13:191:13 | {...} | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:188:38:188:39 | After access to parameter b2 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:21:190:22 | After access to parameter b1 [true] | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:195:10:195:12 | Exceptional Exit | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:195:10:195:12 | Exit | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:17:199:18 | After access to parameter b1 [false] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:199:27:199:42 | After object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 | | Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:21:205:22 | After access to parameter b2 [false] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:205:31:205:46 | After object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | M10 | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:209:21:209:22 | After access to parameter b3 [true] | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:216:10:216:12 | M11 | +| Finally.cs:220:13:220:36 | After call to method WriteLine | Finally.cs:216:10:216:12 | M11 | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:216:10:216:12 | M11 | | Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | M11 | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:233:10:233:12 | Exceptional Exit | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:233:10:233:12 | Exit | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:239:21:239:22 | After access to parameter b1 [false] | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:240:27:240:42 | After object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | | Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:246:25:246:26 | After access to parameter b2 [false] | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:247:31:247:46 | After object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 | | Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:254:13:254:44 | After call to method WriteLine | Finally.cs:233:10:233:12 | M12 | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | M12 | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | M13 | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | Foreach | -| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | M1 | -| Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | M1 | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | M1 | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | Exceptional Exit | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | Exit | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:267:13:267:34 | After call to method WriteLine | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | M13 | +| Foreach.cs:4:7:4:13 | Entry | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:8:22:8:24 | String arg | Foreach.cs:6:10:6:11 | M1 | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:12:10:12:11 | M2 | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | M2 | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:8:29:8:32 | After access to parameter args [empty] | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:6:10:6:11 | M1 | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | M2 | | Foreach.cs:14:22:14:22 | String _ | Foreach.cs:12:10:12:11 | M2 | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:14:27:14:30 | After access to parameter args [empty] | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:12:10:12:11 | M2 | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | M3 | | Foreach.cs:20:22:20:22 | String x | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:18:10:18:11 | M3 | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:24:10:24:11 | M4 | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | M4 | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | M4 | -| Foreach.cs:26:23:26:23 | String x | Foreach.cs:24:10:24:11 | M4 | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:30:10:30:11 | M5 | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | M5 | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | M5 | -| Foreach.cs:32:23:32:23 | String x | Foreach.cs:30:10:30:11 | M5 | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:36:10:36:11 | M6 | -| 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 | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | IndexInitializers | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | Compound | -| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | Test | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | 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 (normal) | LoopUnrolling.cs:7:10:7:11 | M1 | -| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:7:10:7:11 | M1 | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:27 | After access to parameter e [null] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:43:20:68 | After call to method Empty [empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | Foreach.cs:18:10:18:11 | M3 | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:36:26:39 | After access to parameter args [empty] | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:24:10:24:11 | M4 | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:32:32:35 | After access to parameter args [empty] | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:30:10:30:11 | M5 | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:39:38:42 | After access to parameter args [empty] | Foreach.cs:36:10:36:11 | M6 | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | Foreach.cs:36:10:36:11 | M6 | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:8:5:8:16 | Entry | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:10:5:10:16 | Entry | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:12:10:12:10 | Entry | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:26:11:26:13 | Entry | Initializers.cs:26:11:26:13 | | +| Initializers.cs:31:9:31:11 | Entry | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:33:9:33:11 | Entry | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:35:9:35:11 | Entry | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:39:7:39:23 | Entry | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:41:11:41:18 | Entry | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:51:10:51:13 | Entry | Initializers.cs:51:10:51:13 | Test | +| LoopUnrolling.cs:5:7:5:19 | Entry | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:7:10:7:11 | M1 | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:7:10:7:11 | M1 | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | M2 | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | M2 | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:15:10:15:11 | M2 | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | M4 | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | M4 | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:29:10:29:11 | M4 | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | M6 | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | M6 | -| LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:45:10:45:11 | M6 | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | M9 | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | M9 | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:76:10:76:11 | M9 | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | M10 | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | M10 | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:85:10:85:12 | M10 | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | M11 | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | M11 | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:97:9:100:9 | After 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 | 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 | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:21:7:23 | get_P2 | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 | MultiImplementationA.cs:7:21:7:23 | get_P2 | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:94:10:94:12 | M11 | +| MultiImplementationA.cs:4:7:4:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:6:22:6:31 | Before throw ... | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:6:22:6:31 | Exit | MultiImplementationA.cs:6:22:6:31 | get_P1 | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:21:7:23 | get_P2 | +| MultiImplementationA.cs:7:21:7:23 | Exit | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:21:7:23 | get_P2 | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:41:7:43 | set_P2 | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 | MultiImplementationA.cs:7:41:7:43 | set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:41:7:43 | set_P2 | +| MultiImplementationA.cs:7:41:7:43 | Exit | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:41:7:43 | set_P2 | -| 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:8:16:8:16 | Entry | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:8:16:8:16 | Exit | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:8:23:8:32 | Before throw ... | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:20 | Before ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | get_Item | +| MultiImplementationA.cs:14:31:14:31 | Exit | 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 | -| 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 | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:36:15:38 | get_Item | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item | MultiImplementationA.cs:15:36:15:38 | get_Item | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:36:15:38 | get_Item | +| MultiImplementationA.cs:15:36:15:38 | Exit | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:36:15:38 | get_Item | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:54:15:56 | set_Item | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | set_Item | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:54:15:56 | set_Item | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | set_Item | | MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:54:15:56 | set_Item | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:16:17:16:18 | M1 | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | M1 | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:16:17:16:18 | M1 | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | 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 | 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 | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:6:22:7 | ~C2 | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationA.cs:18:9:18:22 | Entry | MultiImplementationA.cs:18:9:18:22 | M2 | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | Exit | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | MultiImplementationA.cs:21:12:21:13 | C2 | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:6:22:7 | ~C2 | +| MultiImplementationA.cs:22:6:22:7 | Exit | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | ~C2 | -| 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:28:23:35 | Entry | MultiImplementationA.cs:23:28:23:35 | implicit conversion | +| MultiImplementationA.cs:23:28:23:35 | Exit | 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 | 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 | 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:28:7:28:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:30:21:30:23 | Entry | MultiImplementationA.cs:30:21:30:23 | get_P3 | +| MultiImplementationA.cs:34:15:34:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:9:36:10 | M1 | +| MultiImplementationA.cs:36:9:36:10 | Exit | 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 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:37:9:37:10 | Entry | MultiImplementationA.cs:37:9:37:10 | M2 | +| MultiImplementationB.cs:1:7:1:8 | Before call to method | 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:11:16:11:20 | Before ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:12:31:12:40 | Before throw ... | 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 | 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:16:9:16:31 | Entry | MultiImplementationB.cs:16:9:16:31 | M2 | +| MultiImplementationB.cs:18:12:18:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | 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 | 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:21:50:21:59 | Before throw ... | MultiImplementationA.cs:23:28:23:35 | implicit conversion | +| MultiImplementationB.cs:25:7:25:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:30:15:30:16 | Before call to method | 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 | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | M1 | -| NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:9:3:10 | M1 | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:9:5:10 | M2 | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:12:7:13 | M3 | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:51:11:58 | [false] ... && ... | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:51:11:58 | [true] ... && ... | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:9:11:10 | M5 | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:13:10:13:11 | M6 | -| 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 | -| Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:9:9:11:9 | {...} | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:13:9:15:9 | {...} | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:16:18:16:28 | [false] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:23:17:23:22 | break; | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:5:10:5:11 | M1 | +| NullCoalescing.cs:1:7:1:20 | Entry | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:9:3:10 | M1 | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | NullCoalescing.cs:5:9:5:10 | M2 | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | M3 | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:51:9:52 | After "" [non-null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:51:9:52 | After "" [null] | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | M4 | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:9:11:10 | M5 | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:17:16:18 | After "" [non-null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:17:16:18 | After "" [null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | NullCoalescing.cs:13:10:13:11 | M6 | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| PartialImplementationA.cs:1:15:1:21 | Entry | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationA.cs:3:12:3:18 | Entry | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Partial | +| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:34:17:34:22 | break; | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:35:13:35:20 | default: | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:47:24:47:25 | enter M2 | Patterns.cs:47:24:47:25 | M2 | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:27:54:35 | [match] { ... } | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:27:54:35 | [no-match] { ... } | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:56:26:56:27 | M5 | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:65:26:65:27 | M6 | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:74:26:74:27 | M7 | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:49:85:53 | [match] not ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:50:87:54 | [no-match] not ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:96:9:98:9 | {...} | Patterns.cs:93:17:93:19 | M10 | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | PostDominance | -| PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:5:10:5:11 | M1 | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:17:10:17:11 | exit M3 | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:17:10:17:11 | M3 | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | Qualifiers | -| Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:16:7:21 | Method | -| Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:23:8:34 | StaticMethod | -| Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:10:10:10:10 | M | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | Switch | -| Switch.cs:5:10:5:11 | enter M1 | Switch.cs:5:10:5:11 | M1 | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:10:10:10:11 | exit M2 | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:10:10:10:11 | exit M2 (abnormal) | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:15:17:15:23 | return ...; | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:19:17:19:29 | goto default; | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:22:21:22:27 | return ...; | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:23:27:23:27 | 0 | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:24:32:24:55 | [false] ... && ... | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:10:10:10:11 | M2 | +| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:56:26:56:27 | M5 | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:65:26:65:27 | M6 | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:93:17:93:19 | M10 | +| PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | M1 | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:17:10:17:11 | M3 | +| Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Method | +| Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | StaticMethod | +| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:10:10:10:10 | M | +| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:5:10:5:11 | Entry | Switch.cs:5:10:5:11 | M1 | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:10:10:10:11 | Exit | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 | | Switch.cs:27:13:27:39 | case ...: | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:30:13:30:20 | default: | Switch.cs:10:10:10:11 | M2 | -| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:35:10:35:11 | M3 | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:49:17:49:22 | break; | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:51:17:51:22 | break; | Switch.cs:44:10:44:11 | M4 | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:55:10:55:11 | M5 | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:55:10:55:11 | M5 | -| Switch.cs:62:17:62:22 | break; | Switch.cs:55:10:55:11 | M5 | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:66:10:66:11 | M6 | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | M6 | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:66:10:66:11 | M6 | -| Switch.cs:73:17:73:22 | break; | Switch.cs:66:10:66:11 | M6 | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:82:24:82:27 | true | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:85:21:85:26 | break; | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:86:24:86:27 | true | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:88:16:88:20 | false | Switch.cs:77:10:77:11 | M7 | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:91:10:91:11 | M8 | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | M8 | -| Switch.cs:96:24:96:27 | true | Switch.cs:91:10:91:11 | M8 | -| Switch.cs:98:16:98:20 | false | Switch.cs:91:10:91:11 | M8 | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:105:28:105:28 | 0 | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:106:28:106:28 | 1 | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:108:17:108:17 | 1 | Switch.cs:101:9:101:10 | M9 | -| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:17:111:21 | Throw | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:117:44:117:44 | 1 | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:10:10:10:11 | M2 | +| Switch.cs:35:10:35:11 | Entry | Switch.cs:35:10:35:11 | M3 | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:44:10:44:11 | M4 | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:77:10:77:11 | M7 | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:91:10:91:11 | M8 | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 | +| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:17:111:21 | Throw | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 | | Switch.cs:118:13:118:34 | case ...: | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:118:43:118:43 | 2 | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:120:17:120:17 | 1 | Switch.cs:113:9:113:11 | M10 | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:24:125:34 | [false] ... => ... | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:37:125:37 | _ | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:125:42:125:46 | false | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:123:10:123:12 | M11 | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:28:131:40 | [null] ... => ... | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:43:131:43 | _ | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:131:48:131:51 | null | Switch.cs:129:12:129:14 | M12 | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:138:13:138:20 | default: | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:139:28:139:28 | 1 | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:140:28:140:28 | 2 | Switch.cs:134:9:134:11 | M13 | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:148:28:148:28 | 1 | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:149:13:149:20 | default: | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:150:28:150:28 | 2 | Switch.cs:144:9:144:11 | M14 | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:154:10:154:12 | exit M15 | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:154:10:154:12 | exit M15 (abnormal) | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:156:36:156:38 | "a" | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:158:13:158:49 | ...; | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:160:13:160:49 | ...; | Switch.cs:154:10:154:12 | M15 | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:163:10:163:12 | M16 | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | M16 | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:113:9:113:11 | M10 | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:123:10:123:12 | M11 | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:129:12:129:14 | M12 | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:154:10:154:12 | M15 | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 | | Switch.cs:169:17:169:51 | ...; | Switch.cs:163:10:163:12 | M16 | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:163:10:163:12 | M16 | -| Switch.cs:172:17:172:46 | ...; | Switch.cs:163:10:163:12 | M16 | -| Switch.cs:174:13:174:20 | default: | Switch.cs:163:10:163:12 | M16 | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | TypeAccesses | -| TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:3:10:3:10 | M | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | VarDecls | -| VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:5:18:5:19 | M1 | -| VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:13:12:13:13 | M2 | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:19:7:19:8 | M3 | -| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:19:7:19:8 | M3 | -| 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 | enter C | VarDecls.cs:28:11:28:11 | C | -| VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:41:28:47 | Dispose | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:5:17:5:20 | Main | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | Main | -| cflow.cs:12:13:12:49 | ...; | cflow.cs:5:17:5:20 | Main | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:5:17:5:20 | Main | -| cflow.cs:15:9:17:9 | {...} | cflow.cs:5:17:5:20 | Main | -| cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:5:17:5:20 | Main | +| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 | +| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 | +| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:3:10:3:10 | M | +| VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | M1 | +| VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | M2 | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:25:20:25:20 | After access to parameter b [false] | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:25:20:25:20 | After access to parameter b [true] | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:19:7:19:8 | M3 | +| VarDecls.cs:28:11:28:11 | Entry | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:41:28:47 | Entry | VarDecls.cs:28:41:28:47 | Dispose | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:5:17:5:20 | Main | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:11:13:11:17 | After ... > ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:11:13:11:17 | After ... > ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:14:16:14:20 | After ... > ... [true] | cflow.cs:5:17:5:20 | Main | | cflow.cs:20:9:22:9 | {...} | cflow.cs:5:17:5:20 | Main | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:5:17:5:20 | Main | -| cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:5:17:5:20 | Main | -| cflow.cs:25:9:34:9 | {...} | cflow.cs:5:17:5:20 | Main | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:5:17:5:20 | Main | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:5:17:5:20 | Main | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:29:17:29:42 | ...; | cflow.cs:5:17:5:20 | Main | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:5:17:5:20 | Main | -| cflow.cs:31:17:31:42 | ...; | cflow.cs:5:17:5:20 | Main | -| cflow.cs:33:17:33:37 | ...; | cflow.cs:5:17:5:20 | Main | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:37:17:37:22 | exit Switch | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:42:17:42:39 | ...; | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:45:17:45:39 | ...; | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:48:17:48:39 | ...; | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:54:17:54:48 | ...; | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:56:13:56:20 | default: | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:65:17:65:22 | break; | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:37:17:37:22 | Switch | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:70:18:70:18 | M | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | M | -| cflow.cs:73:13:73:19 | return ...; | cflow.cs:70:18:70:18 | M | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:70:18:70:18 | M | -| cflow.cs:75:9:77:9 | {...} | cflow.cs:70:18:70:18 | M | -| cflow.cs:79:9:81:9 | {...} | cflow.cs:70:18:70:18 | M | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:86:13:86:37 | [false] ... && ... | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:84:18:84:19 | M2 | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:90:18:90:19 | exit M3 | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:93:45:93:47 | "s" | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:97:13:97:55 | ...; | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:100:13:100:42 | ...; | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:103:13:103:36 | ...; | cflow.cs:90:18:90:19 | M3 | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:109:9:115:9 | {...} | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:110:20:110:23 | true | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:111:13:113:13 | {...} | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:106:18:106:19 | M4 | -| cflow.cs:119:20:119:21 | enter M5 | cflow.cs:119:20:119:21 | M5 | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:19:127:21 | get_Prop | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:19:127:21 | get_Prop | -| cflow.cs:127:48:127:49 | "" | cflow.cs:127:19:127:21 | get_Prop | -| cflow.cs:127:53:127:57 | this access | cflow.cs:127:19:127:21 | get_Prop | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | set_Prop | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | ControlFlow | -| cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | ControlFlow | -| cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | ControlFlow | -| cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | + | -| cflow.cs:144:33:144:35 | enter get_Item | cflow.cs:144:33:144:35 | get_Item | -| cflow.cs:144:56:144:58 | enter set_Item | cflow.cs:144:56:144:58 | set_Item | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:146:10:146:12 | For | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | For | -| cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:146:10:146:12 | For | -| cflow.cs:150:13:150:33 | ...; | cflow.cs:146:10:146:12 | For | -| cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | For | -| cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:146:10:146:12 | For | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:22:18:22:23 | After ... < ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:26 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:31:26:40 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:28:22:28:31 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:5:17:5:20 | Main | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:37:17:37:22 | Exit | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:37:17:37:22 | Switch | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:70:18:70:18 | M | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | M | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:70:18:70:18 | M | +| cflow.cs:72:13:72:21 | After ... == ... [true] | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:13:74:24 | After ... > ... [false] | cflow.cs:70:18:70:18 | M | +| cflow.cs:74:13:74:24 | After ... > ... [true] | cflow.cs:70:18:70:18 | M | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:21 | After ... != ... [false] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:26:86:37 | After ... > ... [false] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:84:18:84:19 | M2 | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:90:18:90:19 | Exit | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:92:13:92:27 | After call to method Equals [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:13:96:25 | After ... != ... [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:96:13:96:25 | After ... != ... [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:13:99:25 | After ... != ... [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:99:13:99:25 | After ... != ... [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:13:102:29 | After ... != ... [false] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:102:13:102:29 | After ... != ... [true] | cflow.cs:90:18:90:19 | M3 | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | cflow.cs:106:18:106:19 | M4 | +| cflow.cs:119:20:119:21 | Entry | cflow.cs:119:20:119:21 | M5 | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:44 | After ... == ... [false] | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:44 | After ... == ... [true] | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:19:127:21 | get_Prop | +| cflow.cs:127:62:127:64 | Entry | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:129:5:129:15 | Entry | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:134:5:134:15 | Entry | cflow.cs:134:5:134:15 | ControlFlow | +| cflow.cs:136:12:136:22 | Entry | cflow.cs:136:12:136:22 | ControlFlow | +| cflow.cs:138:40:138:40 | Entry | cflow.cs:138:40:138:40 | + | +| cflow.cs:144:33:144:35 | Entry | cflow.cs:144:33:144:35 | get_Item | +| cflow.cs:144:56:144:58 | Entry | cflow.cs:144:56:144:58 | set_Item | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:16:149:21 | After ... < ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:146:10:146:12 | For | | cflow.cs:153:9:157:9 | {...} | cflow.cs:146:10:146:12 | For | -| cflow.cs:156:17:156:22 | break; | cflow.cs:146:10:146:12 | For | +| cflow.cs:155:17:155:22 | After ... > ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:146:10:146:12 | For | | cflow.cs:160:9:165:9 | {...} | cflow.cs:146:10:146:12 | For | -| cflow.cs:164:17:164:22 | break; | cflow.cs:146:10:146:12 | For | -| cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:146:10:146:12 | For | -| cflow.cs:168:9:171:9 | {...} | cflow.cs:146:10:146:12 | For | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:146:10:146:12 | For | -| cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:146:10:146:12 | For | -| cflow.cs:174:9:176:9 | {...} | cflow.cs:146:10:146:12 | For | -| cflow.cs:179:10:179:16 | enter Lambdas | cflow.cs:179:10:179:16 | Lambdas | -| cflow.cs:181:28:181:37 | enter (...) => ... | cflow.cs:181:28:181:37 | (...) => ... | -| cflow.cs:182:28:182:61 | enter delegate(...) { ... } | cflow.cs:182:28:182:61 | delegate(...) { ... } | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:187:23:187:23 | 2 | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:187:34:187:34 | 1 | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:185:10:185:18 | LogicalOr | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:193:10:193:17 | exit Booleans | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:195:39:195:43 | this access | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:35:197:39 | false | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:197:43:197:46 | true | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:198:37:198:41 | false | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:198:45:198:48 | true | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:32 | [true] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:37:200:62 | [true] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:40:200:44 | this access | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:201:9:205:9 | {...} | cflow.cs:193:10:193:17 | Booleans | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:208:10:208:11 | Do | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | Do | +| cflow.cs:163:17:163:22 | After ... > ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:16:167:21 | After ... < ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:41 | After ... < ... [true] | cflow.cs:146:10:146:12 | For | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:146:10:146:12 | For | +| cflow.cs:179:10:179:16 | Entry | cflow.cs:179:10:179:16 | Lambdas | +| cflow.cs:181:28:181:37 | Entry | cflow.cs:181:28:181:37 | (...) => ... | +| cflow.cs:182:28:182:61 | Entry | cflow.cs:182:28:182:61 | delegate(...) { ... } | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:18 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:23:187:28 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:39 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:44:187:49 | After ... == ... [false] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:185:10:185:18 | LogicalOr | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:193:10:193:17 | Exit | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:32 | After ... > ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:32 | After ... > ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:31 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:33 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:33 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:13:200:62 | After ... \|\| ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:56 | After ... == ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:193:10:193:17 | Booleans | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:208:10:208:11 | Do | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:208:10:208:11 | Do | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:208:10:208:11 | Do | | cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | Do | -| cflow.cs:214:13:216:13 | {...} | cflow.cs:208:10:208:11 | Do | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:208:10:208:11 | Do | -| cflow.cs:218:13:220:13 | {...} | cflow.cs:208:10:208:11 | Do | -| cflow.cs:221:18:221:22 | this access | cflow.cs:208:10:208:11 | Do | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:213:17:213:32 | After ... > ... [true] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:32 | After ... < ... [false] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:217:17:217:32 | After ... < ... [true] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:34 | After ... < ... [false] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:221:18:221:34 | After ... < ... [true] | cflow.cs:208:10:208:11 | Do | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:226:22:226:22 | String x | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:230:13:232:13 | {...} | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:234:13:236:13 | {...} | cflow.cs:224:10:224:16 | Foreach | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:226:27:226:64 | After call to method Repeat [empty] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:229:17:229:32 | After ... > ... [true] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:32 | After ... < ... [false] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:233:17:233:32 | After ... < ... [true] | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:240:10:240:13 | Goto | | cflow.cs:242:5:242:9 | Label: | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:249:17:249:29 | goto default; | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:251:17:251:37 | ...; | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:255:13:255:20 | default: | cflow.cs:240:10:240:13 | Goto | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:265:9:267:9 | {...} | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | ControlFlowSub | -| cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | ControlFlowSub | -| cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:5:286:18 | ControlFlowSub | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | DelegateCall | -| cflow.cs:291:12:291:12 | enter M | cflow.cs:291:12:291:12 | M | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | NegationInConstructor | -| cflow.cs:298:10:298:10 | enter M | cflow.cs:298:10:298:10 | M | -| cflow.cs:300:44:300:51 | [false] !... | cflow.cs:298:10:298:10 | M | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:298:10:298:10 | M | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:298:10:298:10 | M | -| cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:298:10:298:10 | M | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | LambdaGetter | -| cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | -| cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | get__getter | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:240:10:240:13 | Goto | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | Exit | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:25:264:30 | After ... < ... [true] | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:268:9:276:9 | After try {...} ... | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:282:5:282:18 | Entry | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:284:5:284:18 | Entry | cflow.cs:284:5:284:18 | ControlFlowSub | +| cflow.cs:286:5:286:18 | Entry | cflow.cs:286:5:286:18 | ControlFlowSub | +| cflow.cs:289:7:289:18 | Entry | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:291:12:291:12 | Entry | cflow.cs:291:12:291:12 | M | +| cflow.cs:296:5:296:25 | Entry | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:298:10:298:10 | M | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:298:10:298:10 | M | +| cflow.cs:304:7:304:18 | Entry | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | (...) => ... | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | get__getter | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index 544bc1bd776..387feb47b7a 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -1,4468 +1,8199 @@ -| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | | -| 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 | After call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | | +| AccessorCalls.cs:1:7:1:19 | After call to method | AccessorCalls.cs:1:7:1:19 | Before call to constructor Object | | +| AccessorCalls.cs:1:7:1:19 | Before call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | +| AccessorCalls.cs:1:7:1:19 | Before call to method | AccessorCalls.cs:1:7:1:19 | this access | | +| AccessorCalls.cs:1:7:1:19 | Entry | AccessorCalls.cs:1:7:1:19 | Before call to method | | +| AccessorCalls.cs:1:7:1:19 | Normal Exit | AccessorCalls.cs:1:7:1:19 | Exit | | +| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | After call to constructor Object | | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | After call to method | | | 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 | | -| AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | | -| AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:37:5:39 | {...} | | -| AccessorCalls.cs:5:33:5:35 | exit set_Item (normal) | AccessorCalls.cs:5:33:5:35 | exit set_Item | | -| AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:33:5:35 | exit set_Item (normal) | | -| AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:36:7:38 | {...} | | -| AccessorCalls.cs:7:32:7:34 | exit add_Event (normal) | AccessorCalls.cs:7:32:7:34 | exit add_Event | | -| AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:32:7:34 | exit add_Event (normal) | | -| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:47:7:49 | {...} | | -| AccessorCalls.cs:7:40:7:45 | exit remove_Event (normal) | AccessorCalls.cs:7:40:7:45 | exit remove_Event | | -| AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:40:7:45 | exit remove_Event (normal) | | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:11:5:17:5 | {...} | | -| AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | exit M1 | | +| AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | Normal Exit | | +| AccessorCalls.cs:5:23:5:25 | Entry | AccessorCalls.cs:5:30:5:30 | access to parameter i | | +| AccessorCalls.cs:5:23:5:25 | Normal Exit | AccessorCalls.cs:5:23:5:25 | Exit | | +| AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:23:5:25 | Normal Exit | | +| AccessorCalls.cs:5:33:5:35 | Entry | AccessorCalls.cs:5:37:5:39 | {...} | | +| AccessorCalls.cs:5:33:5:35 | Normal Exit | AccessorCalls.cs:5:33:5:35 | Exit | | +| AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:33:5:35 | Normal Exit | | +| AccessorCalls.cs:7:32:7:34 | Entry | AccessorCalls.cs:7:36:7:38 | {...} | | +| AccessorCalls.cs:7:32:7:34 | Normal Exit | AccessorCalls.cs:7:32:7:34 | Exit | | +| AccessorCalls.cs:7:36:7:38 | {...} | AccessorCalls.cs:7:32:7:34 | Normal Exit | | +| AccessorCalls.cs:7:40:7:45 | Entry | AccessorCalls.cs:7:47:7:49 | {...} | | +| AccessorCalls.cs:7:40:7:45 | Normal Exit | AccessorCalls.cs:7:40:7:45 | Exit | | +| AccessorCalls.cs:7:47:7:49 | {...} | AccessorCalls.cs:7:40:7:45 | Normal Exit | | +| AccessorCalls.cs:10:10:10:11 | Entry | AccessorCalls.cs:11:5:17:5 | {...} | | +| AccessorCalls.cs:10:10:10:11 | Normal Exit | AccessorCalls.cs:10:10:10:11 | Exit | | +| AccessorCalls.cs:11:5:17:5 | After {...} | AccessorCalls.cs:10:10:10:11 | Normal Exit | | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:12:9:12:32 | ...; | | -| AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:22:12:25 | this access | | -| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | -| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:13:9:13:30 | ...; | | -| AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:12 | this access | | +| AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:9:12:18 | access to field Field | | +| AccessorCalls.cs:12:9:12:18 | After access to field Field | AccessorCalls.cs:12:22:12:31 | Before access to field Field | | +| AccessorCalls.cs:12:9:12:18 | Before access to field Field | AccessorCalls.cs:12:9:12:12 | this access | | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:18 | After access to field Field | | +| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:9:12:31 | After ... = ... | | +| AccessorCalls.cs:12:9:12:31 | After ... = ... | AccessorCalls.cs:12:9:12:32 | After ...; | | +| AccessorCalls.cs:12:9:12:31 | Before ... = ... | AccessorCalls.cs:12:9:12:18 | Before access to field Field | | +| AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:31 | Before ... = ... | | +| AccessorCalls.cs:12:9:12:32 | After ...; | AccessorCalls.cs:13:9:13:30 | ...; | | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:31 | access to field Field | | -| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:18 | access to field Field | | -| AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:21:13:24 | this access | | -| AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | | -| AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:14:9:14:26 | ...; | | -| AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:13:9:13:12 | this access | | +| AccessorCalls.cs:12:22:12:31 | After access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | +| AccessorCalls.cs:12:22:12:31 | Before access to field Field | AccessorCalls.cs:12:22:12:25 | this access | | +| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:22:12:31 | After access to field Field | | +| AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:9:13:17 | access to property Prop | | +| AccessorCalls.cs:13:9:13:17 | After access to property Prop | AccessorCalls.cs:13:21:13:29 | Before access to property Prop | | +| AccessorCalls.cs:13:9:13:17 | Before access to property Prop | AccessorCalls.cs:13:9:13:12 | this access | | +| AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:17 | After access to property Prop | | +| AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:13:9:13:29 | After ... = ... | | +| AccessorCalls.cs:13:9:13:29 | After ... = ... | AccessorCalls.cs:13:9:13:30 | After ...; | | +| AccessorCalls.cs:13:9:13:29 | Before ... = ... | AccessorCalls.cs:13:9:13:17 | Before access to property Prop | | +| AccessorCalls.cs:13:9:13:30 | ...; | AccessorCalls.cs:13:9:13:29 | Before ... = ... | | +| AccessorCalls.cs:13:9:13:30 | After ...; | AccessorCalls.cs:14:9:14:26 | ...; | | | AccessorCalls.cs:13:21:13:24 | this access | AccessorCalls.cs:13:21:13:29 | access to property Prop | | -| AccessorCalls.cs:13:21:13:29 | access to property Prop | AccessorCalls.cs:13:9:13:17 | access to property Prop | | +| AccessorCalls.cs:13:21:13:29 | After access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | | +| AccessorCalls.cs:13:21:13:29 | Before access to property Prop | AccessorCalls.cs:13:21:13:24 | this access | | +| AccessorCalls.cs:13:21:13:29 | access to property Prop | AccessorCalls.cs:13:21:13:29 | After access to property Prop | | | AccessorCalls.cs:14:9:14:12 | this access | AccessorCalls.cs:14:14:14:14 | 0 | | -| AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:14:9:14:25 | ... = ... | | -| AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:15:9:15:24 | ...; | | -| AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:14:9:14:12 | this access | | -| AccessorCalls.cs:14:14:14:14 | 0 | AccessorCalls.cs:14:19:14:22 | this access | | +| AccessorCalls.cs:14:9:14:15 | After access to indexer | AccessorCalls.cs:14:19:14:25 | Before access to indexer | | +| AccessorCalls.cs:14:9:14:15 | Before access to indexer | AccessorCalls.cs:14:9:14:12 | this access | | +| AccessorCalls.cs:14:9:14:15 | access to indexer | AccessorCalls.cs:14:9:14:15 | After access to indexer | | +| AccessorCalls.cs:14:9:14:25 | ... = ... | AccessorCalls.cs:14:9:14:25 | After ... = ... | | +| AccessorCalls.cs:14:9:14:25 | After ... = ... | AccessorCalls.cs:14:9:14:26 | After ...; | | +| AccessorCalls.cs:14:9:14:25 | Before ... = ... | AccessorCalls.cs:14:9:14:15 | Before access to indexer | | +| AccessorCalls.cs:14:9:14:26 | ...; | AccessorCalls.cs:14:9:14:25 | Before ... = ... | | +| AccessorCalls.cs:14:9:14:26 | After ...; | AccessorCalls.cs:15:9:15:24 | ...; | | +| AccessorCalls.cs:14:14:14:14 | 0 | AccessorCalls.cs:14:9:14:15 | access to indexer | | | AccessorCalls.cs:14:19:14:22 | this access | AccessorCalls.cs:14:24:14:24 | 1 | | -| AccessorCalls.cs:14:19:14:25 | access to indexer | AccessorCalls.cs:14:9:14:15 | access to indexer | | +| AccessorCalls.cs:14:19:14:25 | After access to indexer | AccessorCalls.cs:14:9:14:25 | ... = ... | | +| AccessorCalls.cs:14:19:14:25 | Before access to indexer | AccessorCalls.cs:14:19:14:22 | this access | | +| AccessorCalls.cs:14:19:14:25 | access to indexer | AccessorCalls.cs:14:19:14:25 | After access to indexer | | | AccessorCalls.cs:14:24:14:24 | 1 | AccessorCalls.cs:14:19:14:25 | access to indexer | | -| AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:15:23:15:23 | access to parameter e | | -| AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:15:9:15:23 | ... += ... | | -| AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:16:9:16:24 | ...; | | -| AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:15:9:15:12 | this access | | -| AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:15:9:15:18 | access to event Event | | -| AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:16:23:16:23 | access to parameter e | | -| AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:16:9:16:23 | ... -= ... | | -| AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | | -| AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:16:9:16:12 | this access | | -| AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:16:9:16:18 | access to event Event | | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:20:5:26:5 | {...} | | -| AccessorCalls.cs:19:10:19:11 | exit M2 (normal) | AccessorCalls.cs:19:10:19:11 | exit M2 | | +| AccessorCalls.cs:15:9:15:12 | this access | AccessorCalls.cs:15:9:15:18 | access to event Event | | +| AccessorCalls.cs:15:9:15:18 | After access to event Event | AccessorCalls.cs:15:23:15:23 | access to parameter e | | +| AccessorCalls.cs:15:9:15:18 | Before access to event Event | AccessorCalls.cs:15:9:15:12 | this access | | +| AccessorCalls.cs:15:9:15:18 | access to event Event | AccessorCalls.cs:15:9:15:18 | After access to event Event | | +| AccessorCalls.cs:15:9:15:23 | ... += ... | AccessorCalls.cs:15:9:15:23 | After ... += ... | | +| AccessorCalls.cs:15:9:15:23 | After ... += ... | AccessorCalls.cs:15:9:15:24 | After ...; | | +| AccessorCalls.cs:15:9:15:23 | Before ... += ... | AccessorCalls.cs:15:9:15:18 | Before access to event Event | | +| AccessorCalls.cs:15:9:15:24 | ...; | AccessorCalls.cs:15:9:15:23 | Before ... += ... | | +| AccessorCalls.cs:15:9:15:24 | After ...; | AccessorCalls.cs:16:9:16:24 | ...; | | +| AccessorCalls.cs:15:23:15:23 | access to parameter e | AccessorCalls.cs:15:9:15:23 | ... += ... | | +| AccessorCalls.cs:16:9:16:12 | this access | AccessorCalls.cs:16:9:16:18 | access to event Event | | +| AccessorCalls.cs:16:9:16:18 | After access to event Event | AccessorCalls.cs:16:23:16:23 | access to parameter e | | +| AccessorCalls.cs:16:9:16:18 | Before access to event Event | AccessorCalls.cs:16:9:16:12 | this access | | +| AccessorCalls.cs:16:9:16:18 | access to event Event | AccessorCalls.cs:16:9:16:18 | After access to event Event | | +| AccessorCalls.cs:16:9:16:23 | ... -= ... | AccessorCalls.cs:16:9:16:23 | After ... -= ... | | +| AccessorCalls.cs:16:9:16:23 | After ... -= ... | AccessorCalls.cs:16:9:16:24 | After ...; | | +| AccessorCalls.cs:16:9:16:23 | Before ... -= ... | AccessorCalls.cs:16:9:16:18 | Before access to event Event | | +| AccessorCalls.cs:16:9:16:24 | ...; | AccessorCalls.cs:16:9:16:23 | Before ... -= ... | | +| AccessorCalls.cs:16:9:16:24 | After ...; | AccessorCalls.cs:11:5:17:5 | After {...} | | +| AccessorCalls.cs:16:23:16:23 | access to parameter e | AccessorCalls.cs:16:9:16:23 | ... -= ... | | +| AccessorCalls.cs:19:10:19:11 | Entry | AccessorCalls.cs:20:5:26:5 | {...} | | +| AccessorCalls.cs:19:10:19:11 | Normal Exit | AccessorCalls.cs:19:10:19:11 | Exit | | +| AccessorCalls.cs:20:5:26:5 | After {...} | AccessorCalls.cs:19:10:19:11 | Normal Exit | | | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:21:9:21:36 | ...; | | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | | -| AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | | -| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | -| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:22:9:22:34 | ...; | | -| AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:12 | this access | | +| AccessorCalls.cs:21:9:21:14 | After access to field x | AccessorCalls.cs:21:9:21:20 | access to field Field | | +| AccessorCalls.cs:21:9:21:14 | Before access to field x | AccessorCalls.cs:21:9:21:12 | this access | | +| AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:9:21:14 | After access to field x | | +| AccessorCalls.cs:21:9:21:20 | After access to field Field | AccessorCalls.cs:21:24:21:35 | Before access to field Field | | +| AccessorCalls.cs:21:9:21:20 | Before access to field Field | AccessorCalls.cs:21:9:21:14 | Before access to field x | | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:20 | After access to field Field | | +| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:9:21:35 | After ... = ... | | +| AccessorCalls.cs:21:9:21:35 | After ... = ... | AccessorCalls.cs:21:9:21:36 | After ...; | | +| AccessorCalls.cs:21:9:21:35 | Before ... = ... | AccessorCalls.cs:21:9:21:20 | Before access to field Field | | +| AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:35 | Before ... = ... | | +| AccessorCalls.cs:21:9:21:36 | After ...; | AccessorCalls.cs:22:9:22:34 | ...; | | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:29 | access to field x | | -| AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:20 | access to field Field | | +| AccessorCalls.cs:21:24:21:29 | After access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | | +| AccessorCalls.cs:21:24:21:29 | Before access to field x | AccessorCalls.cs:21:24:21:27 | this access | | +| AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:29 | After access to field x | | +| AccessorCalls.cs:21:24:21:35 | After access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | +| AccessorCalls.cs:21:24:21:35 | Before access to field Field | AccessorCalls.cs:21:24:21:29 | Before access to field x | | +| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:24:21:35 | After access to field Field | | | AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:14 | access to field x | | -| AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:23:22:26 | this access | | -| AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | | -| AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:23:9:23:30 | ...; | | -| AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:22:9:22:12 | this access | | +| AccessorCalls.cs:22:9:22:14 | After access to field x | AccessorCalls.cs:22:9:22:19 | access to property Prop | | +| AccessorCalls.cs:22:9:22:14 | Before access to field x | AccessorCalls.cs:22:9:22:12 | this access | | +| AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:9:22:14 | After access to field x | | +| AccessorCalls.cs:22:9:22:19 | After access to property Prop | AccessorCalls.cs:22:23:22:33 | Before access to property Prop | | +| AccessorCalls.cs:22:9:22:19 | Before access to property Prop | AccessorCalls.cs:22:9:22:14 | Before access to field x | | +| AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:19 | After access to property Prop | | +| AccessorCalls.cs:22:9:22:33 | ... = ... | AccessorCalls.cs:22:9:22:33 | After ... = ... | | +| AccessorCalls.cs:22:9:22:33 | After ... = ... | AccessorCalls.cs:22:9:22:34 | After ...; | | +| AccessorCalls.cs:22:9:22:33 | Before ... = ... | AccessorCalls.cs:22:9:22:19 | Before access to property Prop | | +| AccessorCalls.cs:22:9:22:34 | ...; | AccessorCalls.cs:22:9:22:33 | Before ... = ... | | +| AccessorCalls.cs:22:9:22:34 | After ...; | AccessorCalls.cs:23:9:23:30 | ...; | | | AccessorCalls.cs:22:23:22:26 | this access | AccessorCalls.cs:22:23:22:28 | access to field x | | -| AccessorCalls.cs:22:23:22:28 | access to field x | AccessorCalls.cs:22:23:22:33 | access to property Prop | | -| AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:22:9:22:19 | access to property Prop | | +| AccessorCalls.cs:22:23:22:28 | After access to field x | AccessorCalls.cs:22:23:22:33 | access to property Prop | | +| AccessorCalls.cs:22:23:22:28 | Before access to field x | AccessorCalls.cs:22:23:22:26 | this access | | +| AccessorCalls.cs:22:23:22:28 | access to field x | AccessorCalls.cs:22:23:22:28 | After access to field x | | +| AccessorCalls.cs:22:23:22:33 | After access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | | +| AccessorCalls.cs:22:23:22:33 | Before access to property Prop | AccessorCalls.cs:22:23:22:28 | Before access to field x | | +| AccessorCalls.cs:22:23:22:33 | access to property Prop | AccessorCalls.cs:22:23:22:33 | After access to property Prop | | | AccessorCalls.cs:23:9:23:12 | this access | AccessorCalls.cs:23:9:23:14 | access to field x | | -| AccessorCalls.cs:23:9:23:14 | access to field x | AccessorCalls.cs:23:16:23:16 | 0 | | -| AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:23:9:23:29 | ... = ... | | -| AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:24:9:24:26 | ...; | | -| AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:23:9:23:12 | this access | | -| AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:23:21:23:24 | this access | | +| AccessorCalls.cs:23:9:23:14 | After access to field x | AccessorCalls.cs:23:16:23:16 | 0 | | +| AccessorCalls.cs:23:9:23:14 | Before access to field x | AccessorCalls.cs:23:9:23:12 | this access | | +| AccessorCalls.cs:23:9:23:14 | access to field x | AccessorCalls.cs:23:9:23:14 | After access to field x | | +| AccessorCalls.cs:23:9:23:17 | After access to indexer | AccessorCalls.cs:23:21:23:29 | Before access to indexer | | +| AccessorCalls.cs:23:9:23:17 | Before access to indexer | AccessorCalls.cs:23:9:23:14 | Before access to field x | | +| AccessorCalls.cs:23:9:23:17 | access to indexer | AccessorCalls.cs:23:9:23:17 | After access to indexer | | +| AccessorCalls.cs:23:9:23:29 | ... = ... | AccessorCalls.cs:23:9:23:29 | After ... = ... | | +| AccessorCalls.cs:23:9:23:29 | After ... = ... | AccessorCalls.cs:23:9:23:30 | After ...; | | +| AccessorCalls.cs:23:9:23:29 | Before ... = ... | AccessorCalls.cs:23:9:23:17 | Before access to indexer | | +| AccessorCalls.cs:23:9:23:30 | ...; | AccessorCalls.cs:23:9:23:29 | Before ... = ... | | +| AccessorCalls.cs:23:9:23:30 | After ...; | AccessorCalls.cs:24:9:24:26 | ...; | | +| AccessorCalls.cs:23:16:23:16 | 0 | AccessorCalls.cs:23:9:23:17 | access to indexer | | | AccessorCalls.cs:23:21:23:24 | this access | AccessorCalls.cs:23:21:23:26 | access to field x | | -| AccessorCalls.cs:23:21:23:26 | access to field x | AccessorCalls.cs:23:28:23:28 | 1 | | -| AccessorCalls.cs:23:21:23:29 | access to indexer | AccessorCalls.cs:23:9:23:17 | access to indexer | | +| AccessorCalls.cs:23:21:23:26 | After access to field x | AccessorCalls.cs:23:28:23:28 | 1 | | +| AccessorCalls.cs:23:21:23:26 | Before access to field x | AccessorCalls.cs:23:21:23:24 | this access | | +| AccessorCalls.cs:23:21:23:26 | access to field x | AccessorCalls.cs:23:21:23:26 | After access to field x | | +| AccessorCalls.cs:23:21:23:29 | After access to indexer | AccessorCalls.cs:23:9:23:29 | ... = ... | | +| AccessorCalls.cs:23:21:23:29 | Before access to indexer | AccessorCalls.cs:23:21:23:26 | Before access to field x | | +| AccessorCalls.cs:23:21:23:29 | access to indexer | AccessorCalls.cs:23:21:23:29 | After access to indexer | | | AccessorCalls.cs:23:28:23:28 | 1 | AccessorCalls.cs:23:21:23:29 | access to indexer | | | AccessorCalls.cs:24:9:24:12 | this access | AccessorCalls.cs:24:9:24:14 | access to field x | | -| AccessorCalls.cs:24:9:24:14 | access to field x | AccessorCalls.cs:24:25:24:25 | access to parameter e | | -| AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:24:9:24:25 | ... += ... | | -| AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:25:9:25:26 | ...; | | -| AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:24:9:24:12 | this access | | -| AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:24:9:24:20 | access to event Event | | +| AccessorCalls.cs:24:9:24:14 | After access to field x | AccessorCalls.cs:24:9:24:20 | access to event Event | | +| AccessorCalls.cs:24:9:24:14 | Before access to field x | AccessorCalls.cs:24:9:24:12 | this access | | +| AccessorCalls.cs:24:9:24:14 | access to field x | AccessorCalls.cs:24:9:24:14 | After access to field x | | +| AccessorCalls.cs:24:9:24:20 | After access to event Event | AccessorCalls.cs:24:25:24:25 | access to parameter e | | +| AccessorCalls.cs:24:9:24:20 | Before access to event Event | AccessorCalls.cs:24:9:24:14 | Before access to field x | | +| AccessorCalls.cs:24:9:24:20 | access to event Event | AccessorCalls.cs:24:9:24:20 | After access to event Event | | +| AccessorCalls.cs:24:9:24:25 | ... += ... | AccessorCalls.cs:24:9:24:25 | After ... += ... | | +| AccessorCalls.cs:24:9:24:25 | After ... += ... | AccessorCalls.cs:24:9:24:26 | After ...; | | +| AccessorCalls.cs:24:9:24:25 | Before ... += ... | AccessorCalls.cs:24:9:24:20 | Before access to event Event | | +| AccessorCalls.cs:24:9:24:26 | ...; | AccessorCalls.cs:24:9:24:25 | Before ... += ... | | +| AccessorCalls.cs:24:9:24:26 | After ...; | AccessorCalls.cs:25:9:25:26 | ...; | | +| AccessorCalls.cs:24:25:24:25 | access to parameter e | AccessorCalls.cs:24:9:24:25 | ... += ... | | | AccessorCalls.cs:25:9:25:12 | this access | AccessorCalls.cs:25:9:25:14 | access to field x | | -| AccessorCalls.cs:25:9:25:14 | access to field x | AccessorCalls.cs:25:25:25:25 | access to parameter e | | -| AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:25:9:25:25 | ... -= ... | | -| AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:19:10:19:11 | exit M2 (normal) | | -| AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:25:9:25:12 | this access | | -| AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:25:9:25:20 | access to event Event | | -| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:29:5:33:5 | {...} | | -| AccessorCalls.cs:28:10:28:11 | exit M3 (normal) | AccessorCalls.cs:28:10:28:11 | exit M3 | | +| AccessorCalls.cs:25:9:25:14 | After access to field x | AccessorCalls.cs:25:9:25:20 | access to event Event | | +| AccessorCalls.cs:25:9:25:14 | Before access to field x | AccessorCalls.cs:25:9:25:12 | this access | | +| AccessorCalls.cs:25:9:25:14 | access to field x | AccessorCalls.cs:25:9:25:14 | After access to field x | | +| AccessorCalls.cs:25:9:25:20 | After access to event Event | AccessorCalls.cs:25:25:25:25 | access to parameter e | | +| AccessorCalls.cs:25:9:25:20 | Before access to event Event | AccessorCalls.cs:25:9:25:14 | Before access to field x | | +| AccessorCalls.cs:25:9:25:20 | access to event Event | AccessorCalls.cs:25:9:25:20 | After access to event Event | | +| AccessorCalls.cs:25:9:25:25 | ... -= ... | AccessorCalls.cs:25:9:25:25 | After ... -= ... | | +| AccessorCalls.cs:25:9:25:25 | After ... -= ... | AccessorCalls.cs:25:9:25:26 | After ...; | | +| AccessorCalls.cs:25:9:25:25 | Before ... -= ... | AccessorCalls.cs:25:9:25:20 | Before access to event Event | | +| AccessorCalls.cs:25:9:25:26 | ...; | AccessorCalls.cs:25:9:25:25 | Before ... -= ... | | +| AccessorCalls.cs:25:9:25:26 | After ...; | AccessorCalls.cs:20:5:26:5 | After {...} | | +| AccessorCalls.cs:25:25:25:25 | access to parameter e | AccessorCalls.cs:25:9:25:25 | ... -= ... | | +| AccessorCalls.cs:28:10:28:11 | Entry | AccessorCalls.cs:29:5:33:5 | {...} | | +| AccessorCalls.cs:28:10:28:11 | Normal Exit | AccessorCalls.cs:28:10:28:11 | Exit | | +| AccessorCalls.cs:29:5:33:5 | After {...} | AccessorCalls.cs:28:10:28:11 | Normal Exit | | | AccessorCalls.cs:29:5:33:5 | {...} | AccessorCalls.cs:30:9:30:21 | ...; | | | AccessorCalls.cs:30:9:30:12 | this access | AccessorCalls.cs:30:9:30:18 | access to field Field | | -| AccessorCalls.cs:30:9:30:18 | access to field Field | AccessorCalls.cs:30:9:30:20 | ...++ | | -| AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:31:9:31:20 | ...; | | -| AccessorCalls.cs:30:9:30:21 | ...; | AccessorCalls.cs:30:9:30:12 | this access | | +| AccessorCalls.cs:30:9:30:18 | After access to field Field | AccessorCalls.cs:30:9:30:20 | ...++ | | +| AccessorCalls.cs:30:9:30:18 | Before access to field Field | AccessorCalls.cs:30:9:30:12 | this access | | +| AccessorCalls.cs:30:9:30:18 | access to field Field | AccessorCalls.cs:30:9:30:18 | After access to field Field | | +| AccessorCalls.cs:30:9:30:20 | ...++ | AccessorCalls.cs:30:9:30:20 | After ...++ | | +| AccessorCalls.cs:30:9:30:20 | After ...++ | AccessorCalls.cs:30:9:30:21 | After ...; | | +| AccessorCalls.cs:30:9:30:20 | Before ...++ | AccessorCalls.cs:30:9:30:18 | Before access to field Field | | +| AccessorCalls.cs:30:9:30:21 | ...; | AccessorCalls.cs:30:9:30:20 | Before ...++ | | +| AccessorCalls.cs:30:9:30:21 | After ...; | AccessorCalls.cs:31:9:31:20 | ...; | | | AccessorCalls.cs:31:9:31:12 | this access | AccessorCalls.cs:31:9:31:17 | access to property Prop | | -| AccessorCalls.cs:31:9:31:17 | access to property Prop | AccessorCalls.cs:31:9:31:19 | ...++ | | -| AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:32:9:32:18 | ...; | | -| AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:31:9:31:12 | this access | | +| AccessorCalls.cs:31:9:31:17 | After access to property Prop | AccessorCalls.cs:31:9:31:19 | ...++ | | +| AccessorCalls.cs:31:9:31:17 | Before access to property Prop | AccessorCalls.cs:31:9:31:12 | this access | | +| AccessorCalls.cs:31:9:31:17 | access to property Prop | AccessorCalls.cs:31:9:31:17 | After access to property Prop | | +| AccessorCalls.cs:31:9:31:19 | ...++ | AccessorCalls.cs:31:9:31:19 | After ...++ | | +| AccessorCalls.cs:31:9:31:19 | After ...++ | AccessorCalls.cs:31:9:31:20 | After ...; | | +| AccessorCalls.cs:31:9:31:19 | Before ...++ | AccessorCalls.cs:31:9:31:17 | Before access to property Prop | | +| AccessorCalls.cs:31:9:31:20 | ...; | AccessorCalls.cs:31:9:31:19 | Before ...++ | | +| AccessorCalls.cs:31:9:31:20 | After ...; | AccessorCalls.cs:32:9:32:18 | ...; | | | AccessorCalls.cs:32:9:32:12 | this access | AccessorCalls.cs:32:14:32:14 | 0 | | -| AccessorCalls.cs:32:9:32:15 | access to indexer | AccessorCalls.cs:32:9:32:17 | ...++ | | -| AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:28:10:28:11 | exit M3 (normal) | | -| AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:32:9:32:12 | this access | | +| AccessorCalls.cs:32:9:32:15 | After access to indexer | AccessorCalls.cs:32:9:32:17 | ...++ | | +| AccessorCalls.cs:32:9:32:15 | Before access to indexer | AccessorCalls.cs:32:9:32:12 | this access | | +| AccessorCalls.cs:32:9:32:15 | access to indexer | AccessorCalls.cs:32:9:32:15 | After access to indexer | | +| AccessorCalls.cs:32:9:32:17 | ...++ | AccessorCalls.cs:32:9:32:17 | After ...++ | | +| AccessorCalls.cs:32:9:32:17 | After ...++ | AccessorCalls.cs:32:9:32:18 | After ...; | | +| AccessorCalls.cs:32:9:32:17 | Before ...++ | AccessorCalls.cs:32:9:32:15 | Before access to indexer | | +| AccessorCalls.cs:32:9:32:18 | ...; | AccessorCalls.cs:32:9:32:17 | Before ...++ | | +| AccessorCalls.cs:32:9:32:18 | After ...; | AccessorCalls.cs:29:5:33:5 | After {...} | | | AccessorCalls.cs:32:14:32:14 | 0 | AccessorCalls.cs:32:9:32:15 | access to indexer | | -| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:36:5:40:5 | {...} | | -| AccessorCalls.cs:35:10:35:11 | exit M4 (normal) | AccessorCalls.cs:35:10:35:11 | exit M4 | | +| AccessorCalls.cs:35:10:35:11 | Entry | AccessorCalls.cs:36:5:40:5 | {...} | | +| AccessorCalls.cs:35:10:35:11 | Normal Exit | AccessorCalls.cs:35:10:35:11 | Exit | | +| AccessorCalls.cs:36:5:40:5 | After {...} | AccessorCalls.cs:35:10:35:11 | Normal Exit | | | AccessorCalls.cs:36:5:40:5 | {...} | AccessorCalls.cs:37:9:37:23 | ...; | | | AccessorCalls.cs:37:9:37:12 | this access | AccessorCalls.cs:37:9:37:14 | access to field x | | -| AccessorCalls.cs:37:9:37:14 | access to field x | AccessorCalls.cs:37:9:37:20 | access to field Field | | -| AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:37:9:37:22 | ...++ | | -| AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:38:9:38:22 | ...; | | -| AccessorCalls.cs:37:9:37:23 | ...; | AccessorCalls.cs:37:9:37:12 | this access | | +| AccessorCalls.cs:37:9:37:14 | After access to field x | AccessorCalls.cs:37:9:37:20 | access to field Field | | +| AccessorCalls.cs:37:9:37:14 | Before access to field x | AccessorCalls.cs:37:9:37:12 | this access | | +| AccessorCalls.cs:37:9:37:14 | access to field x | AccessorCalls.cs:37:9:37:14 | After access to field x | | +| AccessorCalls.cs:37:9:37:20 | After access to field Field | AccessorCalls.cs:37:9:37:22 | ...++ | | +| AccessorCalls.cs:37:9:37:20 | Before access to field Field | AccessorCalls.cs:37:9:37:14 | Before access to field x | | +| AccessorCalls.cs:37:9:37:20 | access to field Field | AccessorCalls.cs:37:9:37:20 | After access to field Field | | +| AccessorCalls.cs:37:9:37:22 | ...++ | AccessorCalls.cs:37:9:37:22 | After ...++ | | +| AccessorCalls.cs:37:9:37:22 | After ...++ | AccessorCalls.cs:37:9:37:23 | After ...; | | +| AccessorCalls.cs:37:9:37:22 | Before ...++ | AccessorCalls.cs:37:9:37:20 | Before access to field Field | | +| AccessorCalls.cs:37:9:37:23 | ...; | AccessorCalls.cs:37:9:37:22 | Before ...++ | | +| AccessorCalls.cs:37:9:37:23 | After ...; | AccessorCalls.cs:38:9:38:22 | ...; | | | AccessorCalls.cs:38:9:38:12 | this access | AccessorCalls.cs:38:9:38:14 | access to field x | | -| AccessorCalls.cs:38:9:38:14 | access to field x | AccessorCalls.cs:38:9:38:19 | access to property Prop | | -| AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:38:9:38:21 | ...++ | | -| AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:39:9:39:20 | ...; | | -| AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:38:9:38:12 | this access | | +| AccessorCalls.cs:38:9:38:14 | After access to field x | AccessorCalls.cs:38:9:38:19 | access to property Prop | | +| AccessorCalls.cs:38:9:38:14 | Before access to field x | AccessorCalls.cs:38:9:38:12 | this access | | +| AccessorCalls.cs:38:9:38:14 | access to field x | AccessorCalls.cs:38:9:38:14 | After access to field x | | +| AccessorCalls.cs:38:9:38:19 | After access to property Prop | AccessorCalls.cs:38:9:38:21 | ...++ | | +| AccessorCalls.cs:38:9:38:19 | Before access to property Prop | AccessorCalls.cs:38:9:38:14 | Before access to field x | | +| AccessorCalls.cs:38:9:38:19 | access to property Prop | AccessorCalls.cs:38:9:38:19 | After access to property Prop | | +| AccessorCalls.cs:38:9:38:21 | ...++ | AccessorCalls.cs:38:9:38:21 | After ...++ | | +| AccessorCalls.cs:38:9:38:21 | After ...++ | AccessorCalls.cs:38:9:38:22 | After ...; | | +| AccessorCalls.cs:38:9:38:21 | Before ...++ | AccessorCalls.cs:38:9:38:19 | Before access to property Prop | | +| AccessorCalls.cs:38:9:38:22 | ...; | AccessorCalls.cs:38:9:38:21 | Before ...++ | | +| AccessorCalls.cs:38:9:38:22 | After ...; | AccessorCalls.cs:39:9:39:20 | ...; | | | AccessorCalls.cs:39:9:39:12 | this access | AccessorCalls.cs:39:9:39:14 | access to field x | | -| AccessorCalls.cs:39:9:39:14 | access to field x | AccessorCalls.cs:39:16:39:16 | 0 | | -| AccessorCalls.cs:39:9:39:17 | access to indexer | AccessorCalls.cs:39:9:39:19 | ...++ | | -| AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:35:10:35:11 | exit M4 (normal) | | -| AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:39:9:39:12 | this access | | +| AccessorCalls.cs:39:9:39:14 | After access to field x | AccessorCalls.cs:39:16:39:16 | 0 | | +| AccessorCalls.cs:39:9:39:14 | Before access to field x | AccessorCalls.cs:39:9:39:12 | this access | | +| AccessorCalls.cs:39:9:39:14 | access to field x | AccessorCalls.cs:39:9:39:14 | After access to field x | | +| AccessorCalls.cs:39:9:39:17 | After access to indexer | AccessorCalls.cs:39:9:39:19 | ...++ | | +| AccessorCalls.cs:39:9:39:17 | Before access to indexer | AccessorCalls.cs:39:9:39:14 | Before access to field x | | +| AccessorCalls.cs:39:9:39:17 | access to indexer | AccessorCalls.cs:39:9:39:17 | After access to indexer | | +| AccessorCalls.cs:39:9:39:19 | ...++ | AccessorCalls.cs:39:9:39:19 | After ...++ | | +| AccessorCalls.cs:39:9:39:19 | After ...++ | AccessorCalls.cs:39:9:39:20 | After ...; | | +| AccessorCalls.cs:39:9:39:19 | Before ...++ | AccessorCalls.cs:39:9:39:17 | Before access to indexer | | +| AccessorCalls.cs:39:9:39:20 | ...; | AccessorCalls.cs:39:9:39:19 | Before ...++ | | +| AccessorCalls.cs:39:9:39:20 | After ...; | AccessorCalls.cs:36:5:40:5 | After {...} | | | AccessorCalls.cs:39:16:39:16 | 0 | AccessorCalls.cs:39:9:39:17 | access to indexer | | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:43:5:47:5 | {...} | | -| AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | AccessorCalls.cs:42:10:42:11 | exit M5 | | +| AccessorCalls.cs:42:10:42:11 | Entry | AccessorCalls.cs:43:5:47:5 | {...} | | +| AccessorCalls.cs:42:10:42:11 | Normal Exit | AccessorCalls.cs:42:10:42:11 | Exit | | +| AccessorCalls.cs:43:5:47:5 | After {...} | AccessorCalls.cs:42:10:42:11 | Normal Exit | | | AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; | | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | | -| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | | -| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:45:9:45:31 | ...; | | -| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access | | +| AccessorCalls.cs:44:9:44:18 | After access to field Field | AccessorCalls.cs:44:23:44:32 | Before access to field Field | | +| AccessorCalls.cs:44:9:44:18 | Before access to field Field | AccessorCalls.cs:44:9:44:12 | this access | | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:18 | After access to field Field | | +| AccessorCalls.cs:44:9:44:32 | ... += ... | AccessorCalls.cs:44:9:44:32 | After ... += ... | | +| AccessorCalls.cs:44:9:44:32 | After ... += ... | AccessorCalls.cs:44:9:44:33 | After ...; | | +| AccessorCalls.cs:44:9:44:32 | Before ... += ... | AccessorCalls.cs:44:9:44:18 | Before access to field Field | | +| AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:32 | Before ... += ... | | +| AccessorCalls.cs:44:9:44:33 | After ...; | AccessorCalls.cs:45:9:45:31 | ...; | | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field | | -| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... += ... | | +| AccessorCalls.cs:44:23:44:32 | After access to field Field | AccessorCalls.cs:44:9:44:32 | ... += ... | | +| AccessorCalls.cs:44:23:44:32 | Before access to field Field | AccessorCalls.cs:44:23:44:26 | this access | | +| AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:23:44:32 | After access to field Field | | | AccessorCalls.cs:45:9:45:12 | this access | AccessorCalls.cs:45:9:45:17 | access to property Prop | | -| AccessorCalls.cs:45:9:45:17 | access to property Prop | AccessorCalls.cs:45:22:45:25 | this access | | -| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:46:9:46:27 | ...; | | -| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:45:9:45:12 | this access | | +| AccessorCalls.cs:45:9:45:17 | After access to property Prop | AccessorCalls.cs:45:22:45:30 | Before access to property Prop | | +| AccessorCalls.cs:45:9:45:17 | Before access to property Prop | AccessorCalls.cs:45:9:45:12 | this access | | +| AccessorCalls.cs:45:9:45:17 | access to property Prop | AccessorCalls.cs:45:9:45:17 | After access to property Prop | | +| AccessorCalls.cs:45:9:45:30 | ... += ... | AccessorCalls.cs:45:9:45:30 | After ... += ... | | +| AccessorCalls.cs:45:9:45:30 | After ... += ... | AccessorCalls.cs:45:9:45:31 | After ...; | | +| AccessorCalls.cs:45:9:45:30 | Before ... += ... | AccessorCalls.cs:45:9:45:17 | Before access to property Prop | | +| AccessorCalls.cs:45:9:45:31 | ...; | AccessorCalls.cs:45:9:45:30 | Before ... += ... | | +| AccessorCalls.cs:45:9:45:31 | After ...; | AccessorCalls.cs:46:9:46:27 | ...; | | | AccessorCalls.cs:45:22:45:25 | this access | AccessorCalls.cs:45:22:45:30 | access to property Prop | | -| AccessorCalls.cs:45:22:45:30 | access to property Prop | AccessorCalls.cs:45:9:45:30 | ... += ... | | +| AccessorCalls.cs:45:22:45:30 | After access to property Prop | AccessorCalls.cs:45:9:45:30 | ... += ... | | +| AccessorCalls.cs:45:22:45:30 | Before access to property Prop | AccessorCalls.cs:45:22:45:25 | this access | | +| AccessorCalls.cs:45:22:45:30 | access to property Prop | AccessorCalls.cs:45:22:45:30 | After access to property Prop | | | AccessorCalls.cs:46:9:46:12 | this access | AccessorCalls.cs:46:14:46:14 | 0 | | -| AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:46:20:46:23 | this access | | -| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:42:10:42:11 | exit M5 (normal) | | -| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:46:9:46:12 | this access | | +| AccessorCalls.cs:46:9:46:15 | After access to indexer | AccessorCalls.cs:46:20:46:26 | Before access to indexer | | +| AccessorCalls.cs:46:9:46:15 | Before access to indexer | AccessorCalls.cs:46:9:46:12 | this access | | +| AccessorCalls.cs:46:9:46:15 | access to indexer | AccessorCalls.cs:46:9:46:15 | After access to indexer | | +| AccessorCalls.cs:46:9:46:26 | ... += ... | AccessorCalls.cs:46:9:46:26 | After ... += ... | | +| AccessorCalls.cs:46:9:46:26 | After ... += ... | AccessorCalls.cs:46:9:46:27 | After ...; | | +| AccessorCalls.cs:46:9:46:26 | Before ... += ... | AccessorCalls.cs:46:9:46:15 | Before access to indexer | | +| AccessorCalls.cs:46:9:46:27 | ...; | AccessorCalls.cs:46:9:46:26 | Before ... += ... | | +| AccessorCalls.cs:46:9:46:27 | After ...; | AccessorCalls.cs:43:5:47:5 | After {...} | | | AccessorCalls.cs:46:14:46:14 | 0 | AccessorCalls.cs:46:9:46:15 | access to indexer | | | AccessorCalls.cs:46:20:46:23 | this access | AccessorCalls.cs:46:25:46:25 | 0 | | -| AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:46:9:46:26 | ... += ... | | +| AccessorCalls.cs:46:20:46:26 | After access to indexer | AccessorCalls.cs:46:9:46:26 | ... += ... | | +| AccessorCalls.cs:46:20:46:26 | Before access to indexer | AccessorCalls.cs:46:20:46:23 | this access | | +| AccessorCalls.cs:46:20:46:26 | access to indexer | AccessorCalls.cs:46:20:46:26 | After access to indexer | | | AccessorCalls.cs:46:25:46:25 | 0 | AccessorCalls.cs:46:20:46:26 | access to indexer | | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:50:5:54:5 | {...} | | -| AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | AccessorCalls.cs:49:10:49:11 | exit M6 | | +| AccessorCalls.cs:49:10:49:11 | Entry | AccessorCalls.cs:50:5:54:5 | {...} | | +| AccessorCalls.cs:49:10:49:11 | Normal Exit | AccessorCalls.cs:49:10:49:11 | Exit | | +| AccessorCalls.cs:50:5:54:5 | After {...} | AccessorCalls.cs:49:10:49:11 | Normal Exit | | | AccessorCalls.cs:50:5:54:5 | {...} | AccessorCalls.cs:51:9:51:37 | ...; | | | AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x | | -| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | | -| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access | | -| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:52:9:52:35 | ...; | | -| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access | | +| AccessorCalls.cs:51:9:51:14 | After access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | | +| AccessorCalls.cs:51:9:51:14 | Before access to field x | AccessorCalls.cs:51:9:51:12 | this access | | +| AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:14 | After access to field x | | +| AccessorCalls.cs:51:9:51:20 | After access to field Field | AccessorCalls.cs:51:25:51:36 | Before access to field Field | | +| AccessorCalls.cs:51:9:51:20 | Before access to field Field | AccessorCalls.cs:51:9:51:14 | Before access to field x | | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:20 | After access to field Field | | +| AccessorCalls.cs:51:9:51:36 | ... += ... | AccessorCalls.cs:51:9:51:36 | After ... += ... | | +| AccessorCalls.cs:51:9:51:36 | After ... += ... | AccessorCalls.cs:51:9:51:37 | After ...; | | +| AccessorCalls.cs:51:9:51:36 | Before ... += ... | AccessorCalls.cs:51:9:51:20 | Before access to field Field | | +| AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:36 | Before ... += ... | | +| AccessorCalls.cs:51:9:51:37 | After ...; | AccessorCalls.cs:52:9:52:35 | ...; | | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x | | -| AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:36 | access to field Field | | -| AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... += ... | | +| AccessorCalls.cs:51:25:51:30 | After access to field x | AccessorCalls.cs:51:25:51:36 | access to field Field | | +| AccessorCalls.cs:51:25:51:30 | Before access to field x | AccessorCalls.cs:51:25:51:28 | this access | | +| AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:30 | After access to field x | | +| AccessorCalls.cs:51:25:51:36 | After access to field Field | AccessorCalls.cs:51:9:51:36 | ... += ... | | +| AccessorCalls.cs:51:25:51:36 | Before access to field Field | AccessorCalls.cs:51:25:51:30 | Before access to field x | | +| AccessorCalls.cs:51:25:51:36 | access to field Field | AccessorCalls.cs:51:25:51:36 | After access to field Field | | | AccessorCalls.cs:52:9:52:12 | this access | AccessorCalls.cs:52:9:52:14 | access to field x | | -| AccessorCalls.cs:52:9:52:14 | access to field x | AccessorCalls.cs:52:9:52:19 | access to property Prop | | -| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:24:52:27 | this access | | -| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:53:9:53:31 | ...; | | -| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:52:9:52:12 | this access | | +| AccessorCalls.cs:52:9:52:14 | After access to field x | AccessorCalls.cs:52:9:52:19 | access to property Prop | | +| AccessorCalls.cs:52:9:52:14 | Before access to field x | AccessorCalls.cs:52:9:52:12 | this access | | +| AccessorCalls.cs:52:9:52:14 | access to field x | AccessorCalls.cs:52:9:52:14 | After access to field x | | +| AccessorCalls.cs:52:9:52:19 | After access to property Prop | AccessorCalls.cs:52:24:52:34 | Before access to property Prop | | +| AccessorCalls.cs:52:9:52:19 | Before access to property Prop | AccessorCalls.cs:52:9:52:14 | Before access to field x | | +| AccessorCalls.cs:52:9:52:19 | access to property Prop | AccessorCalls.cs:52:9:52:19 | After access to property Prop | | +| AccessorCalls.cs:52:9:52:34 | ... += ... | AccessorCalls.cs:52:9:52:34 | After ... += ... | | +| AccessorCalls.cs:52:9:52:34 | After ... += ... | AccessorCalls.cs:52:9:52:35 | After ...; | | +| AccessorCalls.cs:52:9:52:34 | Before ... += ... | AccessorCalls.cs:52:9:52:19 | Before access to property Prop | | +| AccessorCalls.cs:52:9:52:35 | ...; | AccessorCalls.cs:52:9:52:34 | Before ... += ... | | +| AccessorCalls.cs:52:9:52:35 | After ...; | AccessorCalls.cs:53:9:53:31 | ...; | | | AccessorCalls.cs:52:24:52:27 | this access | AccessorCalls.cs:52:24:52:29 | access to field x | | -| AccessorCalls.cs:52:24:52:29 | access to field x | AccessorCalls.cs:52:24:52:34 | access to property Prop | | -| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:9:52:34 | ... += ... | | +| AccessorCalls.cs:52:24:52:29 | After access to field x | AccessorCalls.cs:52:24:52:34 | access to property Prop | | +| AccessorCalls.cs:52:24:52:29 | Before access to field x | AccessorCalls.cs:52:24:52:27 | this access | | +| AccessorCalls.cs:52:24:52:29 | access to field x | AccessorCalls.cs:52:24:52:29 | After access to field x | | +| AccessorCalls.cs:52:24:52:34 | After access to property Prop | AccessorCalls.cs:52:9:52:34 | ... += ... | | +| AccessorCalls.cs:52:24:52:34 | Before access to property Prop | AccessorCalls.cs:52:24:52:29 | Before access to field x | | +| AccessorCalls.cs:52:24:52:34 | access to property Prop | AccessorCalls.cs:52:24:52:34 | After access to property Prop | | | AccessorCalls.cs:53:9:53:12 | this access | AccessorCalls.cs:53:9:53:14 | access to field x | | -| AccessorCalls.cs:53:9:53:14 | access to field x | AccessorCalls.cs:53:16:53:16 | 0 | | -| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:22:53:25 | this access | | -| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:49:10:49:11 | exit M6 (normal) | | -| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:53:9:53:12 | this access | | +| AccessorCalls.cs:53:9:53:14 | After access to field x | AccessorCalls.cs:53:16:53:16 | 0 | | +| AccessorCalls.cs:53:9:53:14 | Before access to field x | AccessorCalls.cs:53:9:53:12 | this access | | +| AccessorCalls.cs:53:9:53:14 | access to field x | AccessorCalls.cs:53:9:53:14 | After access to field x | | +| AccessorCalls.cs:53:9:53:17 | After access to indexer | AccessorCalls.cs:53:22:53:30 | Before access to indexer | | +| AccessorCalls.cs:53:9:53:17 | Before access to indexer | AccessorCalls.cs:53:9:53:14 | Before access to field x | | +| AccessorCalls.cs:53:9:53:17 | access to indexer | AccessorCalls.cs:53:9:53:17 | After access to indexer | | +| AccessorCalls.cs:53:9:53:30 | ... += ... | AccessorCalls.cs:53:9:53:30 | After ... += ... | | +| AccessorCalls.cs:53:9:53:30 | After ... += ... | AccessorCalls.cs:53:9:53:31 | After ...; | | +| AccessorCalls.cs:53:9:53:30 | Before ... += ... | AccessorCalls.cs:53:9:53:17 | Before access to indexer | | +| AccessorCalls.cs:53:9:53:31 | ...; | AccessorCalls.cs:53:9:53:30 | Before ... += ... | | +| AccessorCalls.cs:53:9:53:31 | After ...; | AccessorCalls.cs:50:5:54:5 | After {...} | | | AccessorCalls.cs:53:16:53:16 | 0 | AccessorCalls.cs:53:9:53:17 | access to indexer | | | AccessorCalls.cs:53:22:53:25 | this access | AccessorCalls.cs:53:22:53:27 | access to field x | | -| AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:53:29:53:29 | 0 | | -| AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:53:9:53:30 | ... += ... | | +| AccessorCalls.cs:53:22:53:27 | After access to field x | AccessorCalls.cs:53:29:53:29 | 0 | | +| AccessorCalls.cs:53:22:53:27 | Before access to field x | AccessorCalls.cs:53:22:53:25 | this access | | +| AccessorCalls.cs:53:22:53:27 | access to field x | AccessorCalls.cs:53:22:53:27 | After access to field x | | +| AccessorCalls.cs:53:22:53:30 | After access to indexer | AccessorCalls.cs:53:9:53:30 | ... += ... | | +| AccessorCalls.cs:53:22:53:30 | Before access to indexer | AccessorCalls.cs:53:22:53:27 | Before access to field x | | +| AccessorCalls.cs:53:22:53:30 | access to indexer | AccessorCalls.cs:53:22:53:30 | After access to indexer | | | AccessorCalls.cs:53:29:53:29 | 0 | AccessorCalls.cs:53:22:53:30 | access to indexer | | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:57:5:59:5 | {...} | | -| AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | AccessorCalls.cs:56:10:56:11 | exit M7 | | +| AccessorCalls.cs:56:10:56:11 | Entry | AccessorCalls.cs:57:5:59:5 | {...} | | +| AccessorCalls.cs:56:10:56:11 | Normal Exit | AccessorCalls.cs:56:10:56:11 | Exit | | +| AccessorCalls.cs:57:5:59:5 | After {...} | AccessorCalls.cs:56:10:56:11 | Normal Exit | | | AccessorCalls.cs:57:5:59:5 | {...} | AccessorCalls.cs:58:9:58:86 | ...; | | -| AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:58:50:58:53 | this access | | -| AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | | -| AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:10:58:13 | this access | | -| AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:22:58:25 | this access | | -| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:22:58:30 | access to property Prop | | -| AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:37:58:40 | this access | | -| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:37:58:43 | access to indexer | | -| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | | +| AccessorCalls.cs:58:9:58:45 | (..., ...) | AccessorCalls.cs:58:9:58:45 | After (..., ...) | | +| AccessorCalls.cs:58:9:58:45 | After (..., ...) | AccessorCalls.cs:58:49:58:85 | Before (..., ...) | | +| AccessorCalls.cs:58:9:58:45 | Before (..., ...) | AccessorCalls.cs:58:10:58:19 | Before access to field Field | | +| AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:58:9:58:85 | After ... = ... | | +| AccessorCalls.cs:58:9:58:85 | After ... = ... | AccessorCalls.cs:58:9:58:86 | After ...; | | +| AccessorCalls.cs:58:9:58:85 | Before ... = ... | AccessorCalls.cs:58:9:58:45 | Before (..., ...) | | +| AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:9:58:85 | Before ... = ... | | +| AccessorCalls.cs:58:9:58:86 | After ...; | AccessorCalls.cs:57:5:59:5 | After {...} | | +| AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:10:58:19 | access to field Field | | +| AccessorCalls.cs:58:10:58:19 | After access to field Field | AccessorCalls.cs:58:22:58:30 | Before access to property Prop | | +| AccessorCalls.cs:58:10:58:19 | Before access to field Field | AccessorCalls.cs:58:10:58:13 | this access | | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:10:58:19 | After access to field Field | | +| AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:22:58:30 | access to property Prop | | +| AccessorCalls.cs:58:22:58:30 | After access to property Prop | AccessorCalls.cs:58:33:58:44 | Before (..., ...) | | +| AccessorCalls.cs:58:22:58:30 | Before access to property Prop | AccessorCalls.cs:58:22:58:25 | this access | | +| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:22:58:30 | After access to property Prop | | +| AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:33:58:44 | After (..., ...) | | +| AccessorCalls.cs:58:33:58:44 | After (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | | +| AccessorCalls.cs:58:33:58:44 | Before (..., ...) | AccessorCalls.cs:58:34:58:34 | access to parameter i | | +| AccessorCalls.cs:58:34:58:34 | access to parameter i | AccessorCalls.cs:58:37:58:43 | Before access to indexer | | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:42:58:42 | 0 | | -| AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:9:58:85 | ... = ... | | -| AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:33:58:44 | (..., ...) | | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:10:58:19 | access to field Field | | +| AccessorCalls.cs:58:37:58:43 | After access to indexer | AccessorCalls.cs:58:33:58:44 | (..., ...) | | +| AccessorCalls.cs:58:37:58:43 | Before access to indexer | AccessorCalls.cs:58:37:58:40 | this access | | +| AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:37:58:43 | After access to indexer | | +| AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:37:58:43 | access to indexer | | +| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:49:58:85 | After (..., ...) | | +| AccessorCalls.cs:58:49:58:85 | After (..., ...) | AccessorCalls.cs:58:9:58:85 | ... = ... | | +| AccessorCalls.cs:58:49:58:85 | Before (..., ...) | AccessorCalls.cs:58:50:58:59 | Before access to field Field | | | AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:59 | access to field Field | | -| AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:62:58:65 | this access | | +| AccessorCalls.cs:58:50:58:59 | After access to field Field | AccessorCalls.cs:58:62:58:70 | Before access to property Prop | | +| AccessorCalls.cs:58:50:58:59 | Before access to field Field | AccessorCalls.cs:58:50:58:53 | this access | | +| AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:50:58:59 | After access to field Field | | | AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:70 | access to property Prop | | -| AccessorCalls.cs:58:62:58:70 | access to property Prop | AccessorCalls.cs:58:74:58:74 | 0 | | -| AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:58:49:58:85 | (..., ...) | | -| AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:58:77:58:80 | this access | | +| AccessorCalls.cs:58:62:58:70 | After access to property Prop | AccessorCalls.cs:58:73:58:84 | Before (..., ...) | | +| AccessorCalls.cs:58:62:58:70 | Before access to property Prop | AccessorCalls.cs:58:62:58:65 | this access | | +| AccessorCalls.cs:58:62:58:70 | access to property Prop | AccessorCalls.cs:58:62:58:70 | After access to property Prop | | +| AccessorCalls.cs:58:73:58:84 | (..., ...) | AccessorCalls.cs:58:73:58:84 | After (..., ...) | | +| AccessorCalls.cs:58:73:58:84 | After (..., ...) | AccessorCalls.cs:58:49:58:85 | (..., ...) | | +| AccessorCalls.cs:58:73:58:84 | Before (..., ...) | AccessorCalls.cs:58:74:58:74 | 0 | | +| AccessorCalls.cs:58:74:58:74 | 0 | AccessorCalls.cs:58:77:58:83 | Before access to indexer | | | AccessorCalls.cs:58:77:58:80 | this access | AccessorCalls.cs:58:82:58:82 | 1 | | -| AccessorCalls.cs:58:77:58:83 | access to indexer | AccessorCalls.cs:58:73:58:84 | (..., ...) | | +| AccessorCalls.cs:58:77:58:83 | After access to indexer | AccessorCalls.cs:58:73:58:84 | (..., ...) | | +| AccessorCalls.cs:58:77:58:83 | Before access to indexer | AccessorCalls.cs:58:77:58:80 | this access | | +| AccessorCalls.cs:58:77:58:83 | access to indexer | AccessorCalls.cs:58:77:58:83 | After access to indexer | | | AccessorCalls.cs:58:82:58:82 | 1 | AccessorCalls.cs:58:77:58:83 | access to indexer | | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:62:5:64:5 | {...} | | -| AccessorCalls.cs:61:10:61:11 | exit M8 (normal) | AccessorCalls.cs:61:10:61:11 | exit M8 | | +| AccessorCalls.cs:61:10:61:11 | Entry | AccessorCalls.cs:62:5:64:5 | {...} | | +| AccessorCalls.cs:61:10:61:11 | Normal Exit | AccessorCalls.cs:61:10:61:11 | Exit | | +| AccessorCalls.cs:62:5:64:5 | After {...} | AccessorCalls.cs:61:10:61:11 | Normal Exit | | | AccessorCalls.cs:62:5:64:5 | {...} | AccessorCalls.cs:63:9:63:98 | ...; | | -| AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:63:56:63:59 | this access | | -| AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:61:10:61:11 | exit M8 (normal) | | -| AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:10:63:13 | this access | | +| AccessorCalls.cs:63:9:63:51 | (..., ...) | AccessorCalls.cs:63:9:63:51 | After (..., ...) | | +| AccessorCalls.cs:63:9:63:51 | After (..., ...) | AccessorCalls.cs:63:55:63:97 | Before (..., ...) | | +| AccessorCalls.cs:63:9:63:51 | Before (..., ...) | AccessorCalls.cs:63:10:63:21 | Before access to field Field | | +| AccessorCalls.cs:63:9:63:97 | ... = ... | AccessorCalls.cs:63:9:63:97 | After ... = ... | | +| AccessorCalls.cs:63:9:63:97 | After ... = ... | AccessorCalls.cs:63:9:63:98 | After ...; | | +| AccessorCalls.cs:63:9:63:97 | Before ... = ... | AccessorCalls.cs:63:9:63:51 | Before (..., ...) | | +| AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:9:63:97 | Before ... = ... | | +| AccessorCalls.cs:63:9:63:98 | After ...; | AccessorCalls.cs:62:5:64:5 | After {...} | | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | | -| AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | | -| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:24:63:34 | access to property Prop | | +| AccessorCalls.cs:63:10:63:15 | After access to field x | AccessorCalls.cs:63:10:63:21 | access to field Field | | +| AccessorCalls.cs:63:10:63:15 | Before access to field x | AccessorCalls.cs:63:10:63:13 | this access | | +| AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:10:63:15 | After access to field x | | +| AccessorCalls.cs:63:10:63:21 | After access to field Field | AccessorCalls.cs:63:24:63:34 | Before access to property Prop | | +| AccessorCalls.cs:63:10:63:21 | Before access to field Field | AccessorCalls.cs:63:10:63:15 | Before access to field x | | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:10:63:21 | After access to field Field | | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | | -| AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | | -| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:41:63:49 | access to indexer | | -| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:9:63:51 | (..., ...) | | +| AccessorCalls.cs:63:24:63:29 | After access to field x | AccessorCalls.cs:63:24:63:34 | access to property Prop | | +| AccessorCalls.cs:63:24:63:29 | Before access to field x | AccessorCalls.cs:63:24:63:27 | this access | | +| AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:24:63:29 | After access to field x | | +| AccessorCalls.cs:63:24:63:34 | After access to property Prop | AccessorCalls.cs:63:37:63:50 | Before (..., ...) | | +| AccessorCalls.cs:63:24:63:34 | Before access to property Prop | AccessorCalls.cs:63:24:63:29 | Before access to field x | | +| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:24:63:34 | After access to property Prop | | +| AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:37:63:50 | After (..., ...) | | +| AccessorCalls.cs:63:37:63:50 | After (..., ...) | AccessorCalls.cs:63:9:63:51 | (..., ...) | | +| AccessorCalls.cs:63:37:63:50 | Before (..., ...) | AccessorCalls.cs:63:38:63:38 | access to parameter i | | +| AccessorCalls.cs:63:38:63:38 | access to parameter i | AccessorCalls.cs:63:41:63:49 | Before access to indexer | | | AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:41:63:46 | access to field x | | -| AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:48:63:48 | 0 | | -| AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:9:63:97 | ... = ... | | -| AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:37:63:50 | (..., ...) | | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:10:63:21 | access to field Field | | +| AccessorCalls.cs:63:41:63:46 | After access to field x | AccessorCalls.cs:63:48:63:48 | 0 | | +| AccessorCalls.cs:63:41:63:46 | Before access to field x | AccessorCalls.cs:63:41:63:44 | this access | | +| AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:41:63:46 | After access to field x | | +| AccessorCalls.cs:63:41:63:49 | After access to indexer | AccessorCalls.cs:63:37:63:50 | (..., ...) | | +| AccessorCalls.cs:63:41:63:49 | Before access to indexer | AccessorCalls.cs:63:41:63:46 | Before access to field x | | +| AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:41:63:49 | After access to indexer | | +| AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:41:63:49 | access to indexer | | +| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:55:63:97 | After (..., ...) | | +| AccessorCalls.cs:63:55:63:97 | After (..., ...) | AccessorCalls.cs:63:9:63:97 | ... = ... | | +| AccessorCalls.cs:63:55:63:97 | Before (..., ...) | AccessorCalls.cs:63:56:63:67 | Before access to field Field | | | AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:61 | access to field x | | -| AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | | -| AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:70:63:73 | this access | | +| AccessorCalls.cs:63:56:63:61 | After access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | | +| AccessorCalls.cs:63:56:63:61 | Before access to field x | AccessorCalls.cs:63:56:63:59 | this access | | +| AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:61 | After access to field x | | +| AccessorCalls.cs:63:56:63:67 | After access to field Field | AccessorCalls.cs:63:70:63:80 | Before access to property Prop | | +| AccessorCalls.cs:63:56:63:67 | Before access to field Field | AccessorCalls.cs:63:56:63:61 | Before access to field x | | +| AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:56:63:67 | After access to field Field | | | AccessorCalls.cs:63:70:63:73 | this access | AccessorCalls.cs:63:70:63:75 | access to field x | | -| AccessorCalls.cs:63:70:63:75 | access to field x | AccessorCalls.cs:63:70:63:80 | access to property Prop | | -| AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:63:84:63:84 | 0 | | -| AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:63:55:63:97 | (..., ...) | | -| AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:63:87:63:90 | this access | | +| AccessorCalls.cs:63:70:63:75 | After access to field x | AccessorCalls.cs:63:70:63:80 | access to property Prop | | +| AccessorCalls.cs:63:70:63:75 | Before access to field x | AccessorCalls.cs:63:70:63:73 | this access | | +| AccessorCalls.cs:63:70:63:75 | access to field x | AccessorCalls.cs:63:70:63:75 | After access to field x | | +| AccessorCalls.cs:63:70:63:80 | After access to property Prop | AccessorCalls.cs:63:83:63:96 | Before (..., ...) | | +| AccessorCalls.cs:63:70:63:80 | Before access to property Prop | AccessorCalls.cs:63:70:63:75 | Before access to field x | | +| AccessorCalls.cs:63:70:63:80 | access to property Prop | AccessorCalls.cs:63:70:63:80 | After access to property Prop | | +| AccessorCalls.cs:63:83:63:96 | (..., ...) | AccessorCalls.cs:63:83:63:96 | After (..., ...) | | +| AccessorCalls.cs:63:83:63:96 | After (..., ...) | AccessorCalls.cs:63:55:63:97 | (..., ...) | | +| AccessorCalls.cs:63:83:63:96 | Before (..., ...) | AccessorCalls.cs:63:84:63:84 | 0 | | +| AccessorCalls.cs:63:84:63:84 | 0 | AccessorCalls.cs:63:87:63:95 | Before access to indexer | | | AccessorCalls.cs:63:87:63:90 | this access | AccessorCalls.cs:63:87:63:92 | access to field x | | -| AccessorCalls.cs:63:87:63:92 | access to field x | AccessorCalls.cs:63:94:63:94 | 1 | | -| AccessorCalls.cs:63:87:63:95 | access to indexer | AccessorCalls.cs:63:83:63:96 | (..., ...) | | +| AccessorCalls.cs:63:87:63:92 | After access to field x | AccessorCalls.cs:63:94:63:94 | 1 | | +| AccessorCalls.cs:63:87:63:92 | Before access to field x | AccessorCalls.cs:63:87:63:90 | this access | | +| AccessorCalls.cs:63:87:63:92 | access to field x | AccessorCalls.cs:63:87:63:92 | After access to field x | | +| AccessorCalls.cs:63:87:63:95 | After access to indexer | AccessorCalls.cs:63:83:63:96 | (..., ...) | | +| AccessorCalls.cs:63:87:63:95 | Before access to indexer | AccessorCalls.cs:63:87:63:92 | Before access to field x | | +| AccessorCalls.cs:63:87:63:95 | access to indexer | AccessorCalls.cs:63:87:63:95 | After access to indexer | | | AccessorCalls.cs:63:94:63:94 | 1 | AccessorCalls.cs:63:87:63:95 | access to indexer | | -| AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:67:5:74:5 | {...} | | -| AccessorCalls.cs:66:10:66:11 | exit M9 (normal) | AccessorCalls.cs:66:10:66:11 | exit M9 | | +| AccessorCalls.cs:66:10:66:11 | Entry | AccessorCalls.cs:67:5:74:5 | {...} | | +| AccessorCalls.cs:66:10:66:11 | Normal Exit | AccessorCalls.cs:66:10:66:11 | Exit | | +| AccessorCalls.cs:67:5:74:5 | After {...} | AccessorCalls.cs:66:10:66:11 | Normal Exit | | | AccessorCalls.cs:67:5:74:5 | {...} | AccessorCalls.cs:68:9:68:22 | ... ...; | | -| AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:68:21:68:21 | access to parameter o | | -| AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:69:9:69:36 | ...; | | +| AccessorCalls.cs:68:9:68:22 | ... ...; | AccessorCalls.cs:68:17:68:21 | Before dynamic d = ... | | +| AccessorCalls.cs:68:9:68:22 | After ... ...; | AccessorCalls.cs:69:9:69:36 | ...; | | +| AccessorCalls.cs:68:17:68:17 | access to local variable d | AccessorCalls.cs:68:21:68:21 | access to parameter o | | +| AccessorCalls.cs:68:17:68:21 | After dynamic d = ... | AccessorCalls.cs:68:9:68:22 | After ... ...; | | +| AccessorCalls.cs:68:17:68:21 | Before dynamic d = ... | AccessorCalls.cs:68:17:68:17 | access to local variable d | | +| AccessorCalls.cs:68:17:68:21 | dynamic d = ... | AccessorCalls.cs:68:17:68:21 | After dynamic d = ... | | | AccessorCalls.cs:68:21:68:21 | access to parameter o | AccessorCalls.cs:68:17:68:21 | dynamic d = ... | | -| AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:24:69:24 | access to local variable d | | -| AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:35 | ... = ... | | -| AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:70:9:70:22 | ...; | | -| AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:69:9:69:9 | access to local variable d | | +| AccessorCalls.cs:69:9:69:9 | access to local variable d | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:69:9:69:20 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:69:24:69:35 | Before dynamic access to member MaybeProp2 | | +| AccessorCalls.cs:69:9:69:20 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:9 | access to local variable d | | +| AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | AccessorCalls.cs:69:9:69:20 | After dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:69:9:69:35 | ... = ... | AccessorCalls.cs:69:9:69:35 | After ... = ... | | +| AccessorCalls.cs:69:9:69:35 | After ... = ... | AccessorCalls.cs:69:9:69:36 | After ...; | | +| AccessorCalls.cs:69:9:69:35 | Before ... = ... | AccessorCalls.cs:69:9:69:20 | Before dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:69:9:69:36 | ...; | AccessorCalls.cs:69:9:69:35 | Before ... = ... | | +| AccessorCalls.cs:69:9:69:36 | After ...; | AccessorCalls.cs:70:9:70:22 | ...; | | | AccessorCalls.cs:69:24:69:24 | access to local variable d | AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | | -| AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | AccessorCalls.cs:69:9:69:20 | dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:69:24:69:35 | After dynamic access to member MaybeProp2 | AccessorCalls.cs:69:9:69:35 | ... = ... | | +| AccessorCalls.cs:69:24:69:35 | Before dynamic access to member MaybeProp2 | AccessorCalls.cs:69:24:69:24 | access to local variable d | | +| AccessorCalls.cs:69:24:69:35 | dynamic access to member MaybeProp2 | AccessorCalls.cs:69:24:69:35 | After dynamic access to member MaybeProp2 | | | AccessorCalls.cs:70:9:70:9 | access to local variable d | AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | | -| AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | | -| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:71:9:71:26 | ...; | | -| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:70:9:70:9 | access to local variable d | | +| AccessorCalls.cs:70:9:70:19 | After dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | | +| AccessorCalls.cs:70:9:70:19 | Before dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:9 | access to local variable d | | +| AccessorCalls.cs:70:9:70:19 | dynamic access to member MaybeProp | AccessorCalls.cs:70:9:70:19 | After dynamic access to member MaybeProp | | +| AccessorCalls.cs:70:9:70:21 | After dynamic call to operator ++ | AccessorCalls.cs:70:9:70:22 | After ...; | | +| AccessorCalls.cs:70:9:70:21 | Before dynamic call to operator ++ | AccessorCalls.cs:70:9:70:19 | Before dynamic access to member MaybeProp | | +| AccessorCalls.cs:70:9:70:21 | dynamic call to operator ++ | AccessorCalls.cs:70:9:70:21 | After dynamic call to operator ++ | | +| AccessorCalls.cs:70:9:70:22 | ...; | AccessorCalls.cs:70:9:70:21 | Before dynamic call to operator ++ | | +| AccessorCalls.cs:70:9:70:22 | After ...; | AccessorCalls.cs:71:9:71:26 | ...; | | | AccessorCalls.cs:71:9:71:9 | access to local variable d | AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | | -| AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:71:25:71:25 | access to parameter e | | -| AccessorCalls.cs:71:9:71:25 | ... += ... | AccessorCalls.cs:72:9:72:21 | ...; | | -| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:71:9:71:9 | access to local variable d | | +| AccessorCalls.cs:71:9:71:20 | After dynamic access to member MaybeEvent | AccessorCalls.cs:71:25:71:25 | access to parameter e | | +| AccessorCalls.cs:71:9:71:20 | Before dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:9 | access to local variable d | | +| AccessorCalls.cs:71:9:71:20 | dynamic access to member MaybeEvent | AccessorCalls.cs:71:9:71:20 | After dynamic access to member MaybeEvent | | +| AccessorCalls.cs:71:9:71:25 | ... += ... | AccessorCalls.cs:71:9:71:25 | After ... += ... | | +| AccessorCalls.cs:71:9:71:25 | After ... += ... | AccessorCalls.cs:71:9:71:26 | After ...; | | +| AccessorCalls.cs:71:9:71:25 | Before ... += ... | AccessorCalls.cs:71:9:71:20 | Before dynamic access to member MaybeEvent | | +| AccessorCalls.cs:71:9:71:26 | ...; | AccessorCalls.cs:71:9:71:25 | Before ... += ... | | +| AccessorCalls.cs:71:9:71:26 | After ...; | AccessorCalls.cs:72:9:72:21 | ...; | | | AccessorCalls.cs:71:25:71:25 | access to parameter e | AccessorCalls.cs:71:9:71:25 | ... += ... | | | AccessorCalls.cs:72:9:72:9 | access to local variable d | AccessorCalls.cs:72:11:72:11 | 0 | | -| AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:72:17:72:17 | access to local variable d | | -| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:73:9:73:84 | ...; | | -| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:72:9:72:9 | access to local variable d | | +| AccessorCalls.cs:72:9:72:12 | After dynamic access to element | AccessorCalls.cs:72:17:72:20 | Before dynamic access to element | | +| AccessorCalls.cs:72:9:72:12 | Before dynamic access to element | AccessorCalls.cs:72:9:72:9 | access to local variable d | | +| AccessorCalls.cs:72:9:72:12 | dynamic access to element | AccessorCalls.cs:72:9:72:12 | After dynamic access to element | | +| AccessorCalls.cs:72:9:72:20 | ... += ... | AccessorCalls.cs:72:9:72:20 | After ... += ... | | +| AccessorCalls.cs:72:9:72:20 | After ... += ... | AccessorCalls.cs:72:9:72:21 | After ...; | | +| AccessorCalls.cs:72:9:72:20 | Before ... += ... | AccessorCalls.cs:72:9:72:12 | Before dynamic access to element | | +| AccessorCalls.cs:72:9:72:21 | ...; | AccessorCalls.cs:72:9:72:20 | Before ... += ... | | +| AccessorCalls.cs:72:9:72:21 | After ...; | AccessorCalls.cs:73:9:73:84 | ...; | | | AccessorCalls.cs:72:11:72:11 | 0 | AccessorCalls.cs:72:9:72:12 | dynamic access to element | | | AccessorCalls.cs:72:17:72:17 | access to local variable d | AccessorCalls.cs:72:19:72:19 | 1 | | -| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:9:72:20 | ... += ... | | +| AccessorCalls.cs:72:17:72:20 | After dynamic access to element | AccessorCalls.cs:72:9:72:20 | ... += ... | | +| AccessorCalls.cs:72:17:72:20 | Before dynamic access to element | AccessorCalls.cs:72:17:72:17 | access to local variable d | | +| AccessorCalls.cs:72:17:72:20 | dynamic access to element | AccessorCalls.cs:72:17:72:20 | After dynamic access to element | | | AccessorCalls.cs:72:19:72:19 | 1 | AccessorCalls.cs:72:17:72:20 | dynamic access to element | | -| AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:73:49:73:49 | access to local variable d | | -| AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:66:10:66:11 | exit M9 (normal) | | -| AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:73:10:73:10 | access to local variable d | | -| AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:73:24:73:27 | this access | | -| AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:24:73:32 | access to property Prop | | -| AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:39:73:39 | access to local variable d | | -| AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:39:73:42 | dynamic access to element | | -| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:9:73:44 | (..., ...) | | +| AccessorCalls.cs:73:9:73:44 | (..., ...) | AccessorCalls.cs:73:9:73:44 | After (..., ...) | | +| AccessorCalls.cs:73:9:73:44 | After (..., ...) | AccessorCalls.cs:73:48:73:83 | Before (..., ...) | | +| AccessorCalls.cs:73:9:73:44 | Before (..., ...) | AccessorCalls.cs:73:10:73:21 | Before dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:73:9:73:83 | ... = ... | AccessorCalls.cs:73:9:73:83 | After ... = ... | | +| AccessorCalls.cs:73:9:73:83 | After ... = ... | AccessorCalls.cs:73:9:73:84 | After ...; | | +| AccessorCalls.cs:73:9:73:83 | Before ... = ... | AccessorCalls.cs:73:9:73:44 | Before (..., ...) | | +| AccessorCalls.cs:73:9:73:84 | ...; | AccessorCalls.cs:73:9:73:83 | Before ... = ... | | +| AccessorCalls.cs:73:9:73:84 | After ...; | AccessorCalls.cs:67:5:74:5 | After {...} | | +| AccessorCalls.cs:73:10:73:10 | access to local variable d | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:73:10:73:21 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:73:24:73:32 | Before access to property Prop | | +| AccessorCalls.cs:73:10:73:21 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:10 | access to local variable d | | +| AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:10:73:21 | After dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:73:24:73:27 | this access | AccessorCalls.cs:73:24:73:32 | access to property Prop | | +| AccessorCalls.cs:73:24:73:32 | After access to property Prop | AccessorCalls.cs:73:35:73:43 | Before (..., ...) | | +| AccessorCalls.cs:73:24:73:32 | Before access to property Prop | AccessorCalls.cs:73:24:73:27 | this access | | +| AccessorCalls.cs:73:24:73:32 | access to property Prop | AccessorCalls.cs:73:24:73:32 | After access to property Prop | | +| AccessorCalls.cs:73:35:73:43 | (..., ...) | AccessorCalls.cs:73:35:73:43 | After (..., ...) | | +| AccessorCalls.cs:73:35:73:43 | After (..., ...) | AccessorCalls.cs:73:9:73:44 | (..., ...) | | +| AccessorCalls.cs:73:35:73:43 | Before (..., ...) | AccessorCalls.cs:73:36:73:36 | access to parameter i | | +| AccessorCalls.cs:73:36:73:36 | access to parameter i | AccessorCalls.cs:73:39:73:42 | Before dynamic access to element | | | AccessorCalls.cs:73:39:73:39 | access to local variable d | AccessorCalls.cs:73:41:73:41 | 0 | | -| AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:9:73:83 | ... = ... | | -| AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:73:35:73:43 | (..., ...) | | -| AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:73:10:73:21 | dynamic access to member MaybeProp1 | | +| AccessorCalls.cs:73:39:73:42 | After dynamic access to element | AccessorCalls.cs:73:35:73:43 | (..., ...) | | +| AccessorCalls.cs:73:39:73:42 | Before dynamic access to element | AccessorCalls.cs:73:39:73:39 | access to local variable d | | +| AccessorCalls.cs:73:39:73:42 | dynamic access to element | AccessorCalls.cs:73:39:73:42 | After dynamic access to element | | +| AccessorCalls.cs:73:41:73:41 | 0 | AccessorCalls.cs:73:39:73:42 | dynamic access to element | | +| AccessorCalls.cs:73:48:73:83 | (..., ...) | AccessorCalls.cs:73:48:73:83 | After (..., ...) | | +| AccessorCalls.cs:73:48:73:83 | After (..., ...) | AccessorCalls.cs:73:9:73:83 | ... = ... | | +| AccessorCalls.cs:73:48:73:83 | Before (..., ...) | AccessorCalls.cs:73:49:73:60 | Before dynamic access to member MaybeProp1 | | | AccessorCalls.cs:73:49:73:49 | access to local variable d | AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | | -| AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:63:73:66 | this access | | +| AccessorCalls.cs:73:49:73:60 | After dynamic access to member MaybeProp1 | AccessorCalls.cs:73:63:73:71 | Before access to property Prop | | +| AccessorCalls.cs:73:49:73:60 | Before dynamic access to member MaybeProp1 | AccessorCalls.cs:73:49:73:49 | access to local variable d | | +| AccessorCalls.cs:73:49:73:60 | dynamic access to member MaybeProp1 | AccessorCalls.cs:73:49:73:60 | After dynamic access to member MaybeProp1 | | | AccessorCalls.cs:73:63:73:66 | this access | AccessorCalls.cs:73:63:73:71 | access to property Prop | | -| AccessorCalls.cs:73:63:73:71 | access to property Prop | AccessorCalls.cs:73:75:73:75 | 0 | | -| AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:73:48:73:83 | (..., ...) | | -| AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:73:78:73:78 | access to local variable d | | +| AccessorCalls.cs:73:63:73:71 | After access to property Prop | AccessorCalls.cs:73:74:73:82 | Before (..., ...) | | +| AccessorCalls.cs:73:63:73:71 | Before access to property Prop | AccessorCalls.cs:73:63:73:66 | this access | | +| AccessorCalls.cs:73:63:73:71 | access to property Prop | AccessorCalls.cs:73:63:73:71 | After access to property Prop | | +| AccessorCalls.cs:73:74:73:82 | (..., ...) | AccessorCalls.cs:73:74:73:82 | After (..., ...) | | +| AccessorCalls.cs:73:74:73:82 | After (..., ...) | AccessorCalls.cs:73:48:73:83 | (..., ...) | | +| AccessorCalls.cs:73:74:73:82 | Before (..., ...) | AccessorCalls.cs:73:75:73:75 | 0 | | +| AccessorCalls.cs:73:75:73:75 | 0 | AccessorCalls.cs:73:78:73:81 | Before 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:78:73:81 | dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | | +| AccessorCalls.cs:73:78:73:81 | After dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | | +| AccessorCalls.cs:73:78:73:81 | Before dynamic access to element | AccessorCalls.cs:73:78:73:78 | access to local variable d | | +| AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:78:73:81 | After dynamic access to element | | | 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 | 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 | After call to constructor Object | ArrayCreation.cs:1:7:1:19 | {...} | | +| ArrayCreation.cs:1:7:1:19 | After call to method | ArrayCreation.cs:1:7:1:19 | Before call to constructor Object | | +| ArrayCreation.cs:1:7:1:19 | Before call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to constructor Object | | +| ArrayCreation.cs:1:7:1:19 | Before call to method | ArrayCreation.cs:1:7:1:19 | this access | | +| ArrayCreation.cs:1:7:1:19 | Entry | ArrayCreation.cs:1:7:1:19 | Before call to method | | +| ArrayCreation.cs:1:7:1:19 | Normal Exit | ArrayCreation.cs:1:7:1:19 | Exit | | +| ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | After call to constructor Object | | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | After call to method | | | 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 | | -| ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | | +| ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | Normal Exit | | +| ArrayCreation.cs:3:11:3:12 | Entry | ArrayCreation.cs:3:19:3:28 | Before array creation of type Int32[] | | +| ArrayCreation.cs:3:11:3:12 | Normal Exit | ArrayCreation.cs:3:11:3:12 | Exit | | +| ArrayCreation.cs:3:19:3:28 | After array creation of type Int32[] | ArrayCreation.cs:3:11:3:12 | Normal Exit | | +| ArrayCreation.cs:3:19:3:28 | Before array creation of type Int32[] | ArrayCreation.cs:3:27:3:27 | 0 | | +| ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:19:3:28 | After array creation of type Int32[] | | | ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | | -| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:28:5:28 | 0 | | -| ArrayCreation.cs:5:12:5:13 | exit M2 (normal) | ArrayCreation.cs:5:12:5:13 | exit M2 | | -| ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | exit M2 (normal) | | +| ArrayCreation.cs:5:12:5:13 | Entry | ArrayCreation.cs:5:20:5:32 | Before array creation of type Int32[,] | | +| ArrayCreation.cs:5:12:5:13 | Normal Exit | ArrayCreation.cs:5:12:5:13 | Exit | | +| ArrayCreation.cs:5:20:5:32 | After array creation of type Int32[,] | ArrayCreation.cs:5:12:5:13 | Normal Exit | | +| ArrayCreation.cs:5:20:5:32 | Before array creation of type Int32[,] | ArrayCreation.cs:5:28:5:28 | 0 | | +| ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | ArrayCreation.cs:5:20:5:32 | After array creation of type Int32[,] | | | ArrayCreation.cs:5:28:5:28 | 0 | ArrayCreation.cs:5:31:5:31 | 1 | | | ArrayCreation.cs:5:31:5:31 | 1 | ArrayCreation.cs:5:20:5:32 | array creation of type Int32[,] | | -| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:19:7:36 | 2 | | -| ArrayCreation.cs:7:11:7:12 | exit M3 (normal) | ArrayCreation.cs:7:11:7:12 | exit M3 | | +| ArrayCreation.cs:7:11:7:12 | Entry | ArrayCreation.cs:7:19:7:36 | Before array creation of type Int32[] | | +| ArrayCreation.cs:7:11:7:12 | Normal Exit | ArrayCreation.cs:7:11:7:12 | Exit | | | ArrayCreation.cs:7:19:7:36 | 2 | ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | | -| ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:31:7:31 | 0 | | -| ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:11:7:12 | exit M3 (normal) | | +| ArrayCreation.cs:7:19:7:36 | After array creation of type Int32[] | ArrayCreation.cs:7:11:7:12 | Normal Exit | | +| ArrayCreation.cs:7:19:7:36 | Before array creation of type Int32[] | ArrayCreation.cs:7:29:7:36 | Before { ..., ... } | | +| ArrayCreation.cs:7:19:7:36 | array creation of type Int32[] | ArrayCreation.cs:7:19:7:36 | After array creation of type Int32[] | | +| ArrayCreation.cs:7:29:7:36 | After { ..., ... } | ArrayCreation.cs:7:19:7:36 | 2 | | +| ArrayCreation.cs:7:29:7:36 | Before { ..., ... } | ArrayCreation.cs:7:31:7:31 | 0 | | +| ArrayCreation.cs:7:29:7:36 | { ..., ... } | ArrayCreation.cs:7:29:7:36 | After { ..., ... } | | | ArrayCreation.cs:7:31:7:31 | 0 | ArrayCreation.cs:7:34:7:34 | 1 | | | ArrayCreation.cs:7:34:7:34 | 1 | ArrayCreation.cs:7:29:7:36 | { ..., ... } | | -| ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:20:9:52 | 2 | | -| ArrayCreation.cs:9:12:9:13 | exit M4 (normal) | ArrayCreation.cs:9:12:9:13 | exit M4 | | +| ArrayCreation.cs:9:12:9:13 | Entry | ArrayCreation.cs:9:20:9:52 | Before array creation of type Int32[,] | | +| ArrayCreation.cs:9:12:9:13 | Normal Exit | ArrayCreation.cs:9:12:9:13 | Exit | | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | 2 | | | ArrayCreation.cs:9:20:9:52 | 2 | ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | | -| ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:35:9:35 | 0 | | -| ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:12:9:13 | exit M4 (normal) | | -| ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:45:9:45 | 2 | | +| ArrayCreation.cs:9:20:9:52 | After array creation of type Int32[,] | ArrayCreation.cs:9:12:9:13 | Normal Exit | | +| ArrayCreation.cs:9:20:9:52 | Before array creation of type Int32[,] | ArrayCreation.cs:9:31:9:52 | Before { ..., ... } | | +| ArrayCreation.cs:9:20:9:52 | array creation of type Int32[,] | ArrayCreation.cs:9:20:9:52 | After array creation of type Int32[,] | | +| ArrayCreation.cs:9:31:9:52 | After { ..., ... } | ArrayCreation.cs:9:20:9:52 | 2 | | +| ArrayCreation.cs:9:31:9:52 | Before { ..., ... } | ArrayCreation.cs:9:33:9:40 | Before { ..., ... } | | +| ArrayCreation.cs:9:31:9:52 | { ..., ... } | ArrayCreation.cs:9:31:9:52 | After { ..., ... } | | +| ArrayCreation.cs:9:33:9:40 | After { ..., ... } | ArrayCreation.cs:9:43:9:50 | Before { ..., ... } | | +| ArrayCreation.cs:9:33:9:40 | Before { ..., ... } | ArrayCreation.cs:9:35:9:35 | 0 | | +| ArrayCreation.cs:9:33:9:40 | { ..., ... } | ArrayCreation.cs:9:33:9:40 | After { ..., ... } | | | ArrayCreation.cs:9:35:9:35 | 0 | ArrayCreation.cs:9:38:9:38 | 1 | | | ArrayCreation.cs:9:38:9:38 | 1 | ArrayCreation.cs:9:33:9:40 | { ..., ... } | | -| ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:31:9:52 | { ..., ... } | | +| ArrayCreation.cs:9:43:9:50 | After { ..., ... } | ArrayCreation.cs:9:31:9:52 | { ..., ... } | | +| ArrayCreation.cs:9:43:9:50 | Before { ..., ... } | ArrayCreation.cs:9:45:9:45 | 2 | | +| ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:43:9:50 | After { ..., ... } | | | 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 | 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 | After call to constructor Object | Assert.cs:5:7:5:17 | {...} | | +| Assert.cs:5:7:5:17 | After call to method | Assert.cs:5:7:5:17 | Before call to constructor Object | | +| Assert.cs:5:7:5:17 | Before call to constructor Object | Assert.cs:5:7:5:17 | call to constructor Object | | +| Assert.cs:5:7:5:17 | Before call to method | Assert.cs:5:7:5:17 | this access | | +| Assert.cs:5:7:5:17 | Entry | Assert.cs:5:7:5:17 | Before call to method | | +| Assert.cs:5:7:5:17 | Normal Exit | Assert.cs:5:7:5:17 | Exit | | +| Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | After call to constructor Object | | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | After call to method | | | 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 | | -| Assert.cs:7:10:7:11 | exit M1 (normal) | Assert.cs:7:10:7:11 | exit M1 | | +| Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | Normal Exit | | +| Assert.cs:7:10:7:11 | Entry | Assert.cs:8:5:12:5 | {...} | | +| Assert.cs:7:10:7:11 | Exceptional Exit | Assert.cs:7:10:7:11 | Exit | | +| Assert.cs:7:10:7:11 | Normal Exit | Assert.cs:7:10:7:11 | Exit | | +| Assert.cs:8:5:12:5 | After {...} | Assert.cs:7:10:7:11 | Normal Exit | | | Assert.cs:8:5:12:5 | {...} | Assert.cs:9:9:9:33 | ... ...; | | -| Assert.cs:9:9:9:33 | ... ...; | Assert.cs:9:20:9:20 | access to parameter b | | -| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:10:9:10:32 | ...; | | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:24:9:27 | null | true | -| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:31:9:32 | "" | false | -| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:16:9:32 | String s = ... | | -| Assert.cs:9:24:9:27 | null | Assert.cs:9:20:9:32 | ... ? ... : ... | | -| Assert.cs:9:31:9:32 | "" | Assert.cs:9:20:9:32 | ... ? ... : ... | | -| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:7:10:7:11 | exit M1 (abnormal) | exit | -| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:11:9:11:36 | ...; | | -| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:22:10:22 | access to local variable s | | +| Assert.cs:9:9:9:33 | ... ...; | Assert.cs:9:16:9:32 | Before String s = ... | | +| Assert.cs:9:9:9:33 | After ... ...; | Assert.cs:10:9:10:32 | ...; | | +| Assert.cs:9:16:9:16 | access to local variable s | Assert.cs:9:20:9:32 | ... ? ... : ... | | +| Assert.cs:9:16:9:32 | After String s = ... | Assert.cs:9:9:9:33 | After ... ...; | | +| Assert.cs:9:16:9:32 | Before String s = ... | Assert.cs:9:16:9:16 | access to local variable s | | +| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:9:16:9:32 | After String s = ... | | +| Assert.cs:9:20:9:20 | After access to parameter b [false] | Assert.cs:9:31:9:32 | "" | | +| Assert.cs:9:20:9:20 | After access to parameter b [true] | Assert.cs:9:24:9:27 | null | | +| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | After access to parameter b [false] | false | +| Assert.cs:9:20:9:20 | access to parameter b | Assert.cs:9:20:9:20 | After access to parameter b [true] | true | +| Assert.cs:9:20:9:32 | ... ? ... : ... | Assert.cs:9:20:9:20 | access to parameter b | | +| Assert.cs:9:20:9:32 | After ... ? ... : ... | Assert.cs:9:16:9:32 | String s = ... | | +| Assert.cs:9:24:9:27 | null | Assert.cs:9:20:9:32 | After ... ? ... : ... | | +| Assert.cs:9:31:9:32 | "" | Assert.cs:9:20:9:32 | After ... ? ... : ... | | +| Assert.cs:10:9:10:31 | After call to method Assert | Assert.cs:10:9:10:32 | After ...; | | +| Assert.cs:10:9:10:31 | Before call to method Assert | Assert.cs:10:22:10:30 | Before ... != ... | | +| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:7:10:7:11 | Exceptional Exit | exception | +| Assert.cs:10:9:10:31 | call to method Assert | Assert.cs:10:9:10:31 | After call to method Assert | | +| Assert.cs:10:9:10:32 | ...; | Assert.cs:10:9:10:31 | Before call to method Assert | | +| Assert.cs:10:9:10:32 | After ...; | Assert.cs:11:9:11:36 | ...; | | | Assert.cs:10:22:10:22 | access to local variable s | Assert.cs:10:27:10:30 | null | | -| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:9:10:31 | call to method Assert | | +| Assert.cs:10:22:10:30 | ... != ... | Assert.cs:10:22:10:30 | After ... != ... | | +| Assert.cs:10:22:10:30 | After ... != ... | Assert.cs:10:9:10:31 | call to method Assert | | +| Assert.cs:10:22:10:30 | Before ... != ... | Assert.cs:10:22:10:22 | access to local variable s | | | Assert.cs:10:27:10:30 | null | Assert.cs:10:22:10:30 | ... != ... | | -| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:7:10:7:11 | exit M1 (normal) | | -| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:27:11:27 | access to local variable s | | +| Assert.cs:11:9:11:35 | After call to method WriteLine | Assert.cs:11:9:11:36 | After ...; | | +| Assert.cs:11:9:11:35 | Before call to method WriteLine | Assert.cs:11:27:11:34 | Before access to property Length | | +| Assert.cs:11:9:11:35 | call to method WriteLine | Assert.cs:11:9:11:35 | After call to method WriteLine | | +| Assert.cs:11:9:11:36 | ...; | Assert.cs:11:9:11:35 | Before call to method WriteLine | | +| Assert.cs:11:9:11:36 | After ...; | Assert.cs:8:5:12:5 | After {...} | | | Assert.cs:11:27:11:27 | access to local variable s | Assert.cs:11:27:11:34 | access to property Length | | -| Assert.cs:11:27:11:34 | access to property Length | Assert.cs:11:9:11:35 | call to method WriteLine | | -| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:15:5:19:5 | {...} | | -| Assert.cs:14:10:14:11 | exit M2 (abnormal) | Assert.cs:14:10:14:11 | exit M2 | | -| Assert.cs:14:10:14:11 | exit M2 (normal) | Assert.cs:14:10:14:11 | exit M2 | | +| Assert.cs:11:27:11:34 | After access to property Length | Assert.cs:11:9:11:35 | call to method WriteLine | | +| Assert.cs:11:27:11:34 | Before access to property Length | Assert.cs:11:27:11:27 | access to local variable s | | +| Assert.cs:11:27:11:34 | access to property Length | Assert.cs:11:27:11:34 | After access to property Length | | +| Assert.cs:14:10:14:11 | Entry | Assert.cs:15:5:19:5 | {...} | | +| Assert.cs:14:10:14:11 | Exceptional Exit | Assert.cs:14:10:14:11 | Exit | | +| Assert.cs:14:10:14:11 | Normal Exit | Assert.cs:14:10:14:11 | Exit | | +| Assert.cs:15:5:19:5 | After {...} | Assert.cs:14:10:14:11 | Normal Exit | | | Assert.cs:15:5:19:5 | {...} | Assert.cs:16:9:16:33 | ... ...; | | -| Assert.cs:16:9:16:33 | ... ...; | Assert.cs:16:20:16:20 | access to parameter b | | -| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:17:9:17:25 | ...; | | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:24:16:27 | null | true | -| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:31:16:32 | "" | false | -| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:16:16:32 | String s = ... | | -| Assert.cs:16:24:16:27 | null | Assert.cs:16:20:16:32 | ... ? ... : ... | | -| Assert.cs:16:31:16:32 | "" | Assert.cs:16:20:16:32 | ... ? ... : ... | | -| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | exception | -| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:18:9:18:36 | ...; | | -| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:23:17:23 | access to local variable s | | +| Assert.cs:16:9:16:33 | ... ...; | Assert.cs:16:16:16:32 | Before String s = ... | | +| Assert.cs:16:9:16:33 | After ... ...; | Assert.cs:17:9:17:25 | ...; | | +| Assert.cs:16:16:16:16 | access to local variable s | Assert.cs:16:20:16:32 | ... ? ... : ... | | +| Assert.cs:16:16:16:32 | After String s = ... | Assert.cs:16:9:16:33 | After ... ...; | | +| Assert.cs:16:16:16:32 | Before String s = ... | Assert.cs:16:16:16:16 | access to local variable s | | +| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:16:16:16:32 | After String s = ... | | +| Assert.cs:16:20:16:20 | After access to parameter b [false] | Assert.cs:16:31:16:32 | "" | | +| Assert.cs:16:20:16:20 | After access to parameter b [true] | Assert.cs:16:24:16:27 | null | | +| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | After access to parameter b [false] | false | +| Assert.cs:16:20:16:20 | access to parameter b | Assert.cs:16:20:16:20 | After access to parameter b [true] | true | +| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:20:16:20 | access to parameter b | | +| Assert.cs:16:20:16:32 | After ... ? ... : ... | Assert.cs:16:16:16:32 | String s = ... | | +| Assert.cs:16:24:16:27 | null | Assert.cs:16:20:16:32 | After ... ? ... : ... | | +| Assert.cs:16:31:16:32 | "" | Assert.cs:16:20:16:32 | After ... ? ... : ... | | +| Assert.cs:17:9:17:24 | After call to method IsNull | Assert.cs:17:9:17:25 | After ...; | | +| Assert.cs:17:9:17:24 | Before call to method IsNull | Assert.cs:17:23:17:23 | access to local variable s | | +| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:14:10:14:11 | Exceptional Exit | exception | +| Assert.cs:17:9:17:24 | call to method IsNull | Assert.cs:17:9:17:24 | After call to method IsNull | | +| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:9:17:24 | Before call to method IsNull | | +| Assert.cs:17:9:17:25 | After ...; | Assert.cs:18:9:18:36 | ...; | | | Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | call to method IsNull | | -| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:14:10:14:11 | exit M2 (normal) | | -| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:27:18:27 | access to local variable s | | +| Assert.cs:18:9:18:35 | After call to method WriteLine | Assert.cs:18:9:18:36 | After ...; | | +| Assert.cs:18:9:18:35 | Before call to method WriteLine | Assert.cs:18:27:18:34 | Before access to property Length | | +| Assert.cs:18:9:18:35 | call to method WriteLine | Assert.cs:18:9:18:35 | After call to method WriteLine | | +| Assert.cs:18:9:18:36 | ...; | Assert.cs:18:9:18:35 | Before call to method WriteLine | | +| Assert.cs:18:9:18:36 | After ...; | Assert.cs:15:5:19:5 | After {...} | | | Assert.cs:18:27:18:27 | access to local variable s | Assert.cs:18:27:18:34 | access to property Length | | -| Assert.cs:18:27:18:34 | access to property Length | Assert.cs:18:9:18:35 | call to method WriteLine | | -| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:22:5:26:5 | {...} | | -| Assert.cs:21:10:21:11 | exit M3 (abnormal) | Assert.cs:21:10:21:11 | exit M3 | | -| Assert.cs:21:10:21:11 | exit M3 (normal) | Assert.cs:21:10:21:11 | exit M3 | | +| Assert.cs:18:27:18:34 | After access to property Length | Assert.cs:18:9:18:35 | call to method WriteLine | | +| Assert.cs:18:27:18:34 | Before access to property Length | Assert.cs:18:27:18:27 | access to local variable s | | +| Assert.cs:18:27:18:34 | access to property Length | Assert.cs:18:27:18:34 | After access to property Length | | +| Assert.cs:21:10:21:11 | Entry | Assert.cs:22:5:26:5 | {...} | | +| Assert.cs:21:10:21:11 | Exceptional Exit | Assert.cs:21:10:21:11 | Exit | | +| Assert.cs:21:10:21:11 | Normal Exit | Assert.cs:21:10:21:11 | Exit | | +| Assert.cs:22:5:26:5 | After {...} | Assert.cs:21:10:21:11 | Normal Exit | | | Assert.cs:22:5:26:5 | {...} | Assert.cs:23:9:23:33 | ... ...; | | -| Assert.cs:23:9:23:33 | ... ...; | Assert.cs:23:20:23:20 | access to parameter b | | -| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:24:9:24:28 | ...; | | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:24:23:27 | null | true | -| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:31:23:32 | "" | false | -| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:16:23:32 | String s = ... | | -| Assert.cs:23:24:23:27 | null | Assert.cs:23:20:23:32 | ... ? ... : ... | | -| Assert.cs:23:31:23:32 | "" | Assert.cs:23:20:23:32 | ... ? ... : ... | | -| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | exception | -| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:25:9:25:36 | ...; | | -| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:26:24:26 | access to local variable s | | +| Assert.cs:23:9:23:33 | ... ...; | Assert.cs:23:16:23:32 | Before String s = ... | | +| Assert.cs:23:9:23:33 | After ... ...; | Assert.cs:24:9:24:28 | ...; | | +| Assert.cs:23:16:23:16 | access to local variable s | Assert.cs:23:20:23:32 | ... ? ... : ... | | +| Assert.cs:23:16:23:32 | After String s = ... | Assert.cs:23:9:23:33 | After ... ...; | | +| Assert.cs:23:16:23:32 | Before String s = ... | Assert.cs:23:16:23:16 | access to local variable s | | +| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:23:16:23:32 | After String s = ... | | +| Assert.cs:23:20:23:20 | After access to parameter b [false] | Assert.cs:23:31:23:32 | "" | | +| Assert.cs:23:20:23:20 | After access to parameter b [true] | Assert.cs:23:24:23:27 | null | | +| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | After access to parameter b [false] | false | +| Assert.cs:23:20:23:20 | access to parameter b | Assert.cs:23:20:23:20 | After access to parameter b [true] | true | +| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:20:23:20 | access to parameter b | | +| Assert.cs:23:20:23:32 | After ... ? ... : ... | Assert.cs:23:16:23:32 | String s = ... | | +| Assert.cs:23:24:23:27 | null | Assert.cs:23:20:23:32 | After ... ? ... : ... | | +| Assert.cs:23:31:23:32 | "" | Assert.cs:23:20:23:32 | After ... ? ... : ... | | +| Assert.cs:24:9:24:27 | After call to method IsNotNull | Assert.cs:24:9:24:28 | After ...; | | +| Assert.cs:24:9:24:27 | Before call to method IsNotNull | Assert.cs:24:26:24:26 | access to local variable s | | +| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:21:10:21:11 | Exceptional Exit | exception | +| Assert.cs:24:9:24:27 | call to method IsNotNull | Assert.cs:24:9:24:27 | After call to method IsNotNull | | +| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:9:24:27 | Before call to method IsNotNull | | +| Assert.cs:24:9:24:28 | After ...; | Assert.cs:25:9:25:36 | ...; | | | Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | call to method IsNotNull | | -| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:21:10:21:11 | exit M3 (normal) | | -| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:27:25:27 | access to local variable s | | +| Assert.cs:25:9:25:35 | After call to method WriteLine | Assert.cs:25:9:25:36 | After ...; | | +| Assert.cs:25:9:25:35 | Before call to method WriteLine | Assert.cs:25:27:25:34 | Before access to property Length | | +| Assert.cs:25:9:25:35 | call to method WriteLine | Assert.cs:25:9:25:35 | After call to method WriteLine | | +| Assert.cs:25:9:25:36 | ...; | Assert.cs:25:9:25:35 | Before call to method WriteLine | | +| Assert.cs:25:9:25:36 | After ...; | Assert.cs:22:5:26:5 | After {...} | | | Assert.cs:25:27:25:27 | access to local variable s | Assert.cs:25:27:25:34 | access to property Length | | -| Assert.cs:25:27:25:34 | access to property Length | Assert.cs:25:9:25:35 | call to method WriteLine | | -| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:29:5:33:5 | {...} | | -| Assert.cs:28:10:28:11 | exit M4 (abnormal) | Assert.cs:28:10:28:11 | exit M4 | | -| Assert.cs:28:10:28:11 | exit M4 (normal) | Assert.cs:28:10:28:11 | exit M4 | | +| Assert.cs:25:27:25:34 | After access to property Length | Assert.cs:25:9:25:35 | call to method WriteLine | | +| Assert.cs:25:27:25:34 | Before access to property Length | Assert.cs:25:27:25:27 | access to local variable s | | +| Assert.cs:25:27:25:34 | access to property Length | Assert.cs:25:27:25:34 | After access to property Length | | +| Assert.cs:28:10:28:11 | Entry | Assert.cs:29:5:33:5 | {...} | | +| Assert.cs:28:10:28:11 | Exceptional Exit | Assert.cs:28:10:28:11 | Exit | | +| Assert.cs:28:10:28:11 | Normal Exit | Assert.cs:28:10:28:11 | Exit | | +| Assert.cs:29:5:33:5 | After {...} | Assert.cs:28:10:28:11 | Normal Exit | | | Assert.cs:29:5:33:5 | {...} | Assert.cs:30:9:30:33 | ... ...; | | -| Assert.cs:30:9:30:33 | ... ...; | Assert.cs:30:20:30:20 | access to parameter b | | -| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:31:9:31:33 | ...; | | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:24:30:27 | null | true | -| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:31:30:32 | "" | false | -| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:16:30:32 | String s = ... | | -| Assert.cs:30:24:30:27 | null | Assert.cs:30:20:30:32 | ... ? ... : ... | | -| Assert.cs:30:31:30:32 | "" | Assert.cs:30:20:30:32 | ... ? ... : ... | | -| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | exception | -| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:32:9:32:36 | ...; | | -| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:23:31:23 | access to local variable s | | +| Assert.cs:30:9:30:33 | ... ...; | Assert.cs:30:16:30:32 | Before String s = ... | | +| Assert.cs:30:9:30:33 | After ... ...; | Assert.cs:31:9:31:33 | ...; | | +| Assert.cs:30:16:30:16 | access to local variable s | Assert.cs:30:20:30:32 | ... ? ... : ... | | +| Assert.cs:30:16:30:32 | After String s = ... | Assert.cs:30:9:30:33 | After ... ...; | | +| Assert.cs:30:16:30:32 | Before String s = ... | Assert.cs:30:16:30:16 | access to local variable s | | +| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:30:16:30:32 | After String s = ... | | +| Assert.cs:30:20:30:20 | After access to parameter b [false] | Assert.cs:30:31:30:32 | "" | | +| Assert.cs:30:20:30:20 | After access to parameter b [true] | Assert.cs:30:24:30:27 | null | | +| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | After access to parameter b [false] | false | +| Assert.cs:30:20:30:20 | access to parameter b | Assert.cs:30:20:30:20 | After access to parameter b [true] | true | +| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:20:30:20 | access to parameter b | | +| Assert.cs:30:20:30:32 | After ... ? ... : ... | Assert.cs:30:16:30:32 | String s = ... | | +| Assert.cs:30:24:30:27 | null | Assert.cs:30:20:30:32 | After ... ? ... : ... | | +| Assert.cs:30:31:30:32 | "" | Assert.cs:30:20:30:32 | After ... ? ... : ... | | +| Assert.cs:31:9:31:32 | After call to method IsTrue | Assert.cs:31:9:31:33 | After ...; | | +| Assert.cs:31:9:31:32 | Before call to method IsTrue | Assert.cs:31:23:31:31 | Before ... == ... | | +| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:28:10:28:11 | Exceptional Exit | exception | +| Assert.cs:31:9:31:32 | call to method IsTrue | Assert.cs:31:9:31:32 | After call to method IsTrue | | +| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:9:31:32 | Before call to method IsTrue | | +| Assert.cs:31:9:31:33 | After ...; | Assert.cs:32:9:32:36 | ...; | | | Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:28:31:31 | null | | -| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:9:31:32 | call to method IsTrue | | +| Assert.cs:31:23:31:31 | ... == ... | Assert.cs:31:23:31:31 | After ... == ... | | +| Assert.cs:31:23:31:31 | After ... == ... | Assert.cs:31:9:31:32 | call to method IsTrue | | +| Assert.cs:31:23:31:31 | Before ... == ... | Assert.cs:31:23:31:23 | access to local variable s | | | Assert.cs:31:28:31:31 | null | Assert.cs:31:23:31:31 | ... == ... | | -| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:28:10:28:11 | exit M4 (normal) | | -| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:27:32:27 | access to local variable s | | +| Assert.cs:32:9:32:35 | After call to method WriteLine | Assert.cs:32:9:32:36 | After ...; | | +| Assert.cs:32:9:32:35 | Before call to method WriteLine | Assert.cs:32:27:32:34 | Before access to property Length | | +| Assert.cs:32:9:32:35 | call to method WriteLine | Assert.cs:32:9:32:35 | After call to method WriteLine | | +| Assert.cs:32:9:32:36 | ...; | Assert.cs:32:9:32:35 | Before call to method WriteLine | | +| Assert.cs:32:9:32:36 | After ...; | Assert.cs:29:5:33:5 | After {...} | | | Assert.cs:32:27:32:27 | access to local variable s | Assert.cs:32:27:32:34 | access to property Length | | -| Assert.cs:32:27:32:34 | access to property Length | Assert.cs:32:9:32:35 | call to method WriteLine | | -| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:36:5:40:5 | {...} | | -| Assert.cs:35:10:35:11 | exit M5 (abnormal) | Assert.cs:35:10:35:11 | exit M5 | | -| Assert.cs:35:10:35:11 | exit M5 (normal) | Assert.cs:35:10:35:11 | exit M5 | | +| Assert.cs:32:27:32:34 | After access to property Length | Assert.cs:32:9:32:35 | call to method WriteLine | | +| Assert.cs:32:27:32:34 | Before access to property Length | Assert.cs:32:27:32:27 | access to local variable s | | +| Assert.cs:32:27:32:34 | access to property Length | Assert.cs:32:27:32:34 | After access to property Length | | +| Assert.cs:35:10:35:11 | Entry | Assert.cs:36:5:40:5 | {...} | | +| Assert.cs:35:10:35:11 | Exceptional Exit | Assert.cs:35:10:35:11 | Exit | | +| Assert.cs:35:10:35:11 | Normal Exit | Assert.cs:35:10:35:11 | Exit | | +| Assert.cs:36:5:40:5 | After {...} | Assert.cs:35:10:35:11 | Normal Exit | | | Assert.cs:36:5:40:5 | {...} | Assert.cs:37:9:37:33 | ... ...; | | -| Assert.cs:37:9:37:33 | ... ...; | Assert.cs:37:20:37:20 | access to parameter b | | -| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:38:9:38:33 | ...; | | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:24:37:27 | null | true | -| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:31:37:32 | "" | false | -| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:16:37:32 | String s = ... | | -| Assert.cs:37:24:37:27 | null | Assert.cs:37:20:37:32 | ... ? ... : ... | | -| Assert.cs:37:31:37:32 | "" | Assert.cs:37:20:37:32 | ... ? ... : ... | | -| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | exception | -| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:39:9:39:36 | ...; | | -| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:23:38:23 | access to local variable s | | +| Assert.cs:37:9:37:33 | ... ...; | Assert.cs:37:16:37:32 | Before String s = ... | | +| Assert.cs:37:9:37:33 | After ... ...; | Assert.cs:38:9:38:33 | ...; | | +| Assert.cs:37:16:37:16 | access to local variable s | Assert.cs:37:20:37:32 | ... ? ... : ... | | +| Assert.cs:37:16:37:32 | After String s = ... | Assert.cs:37:9:37:33 | After ... ...; | | +| Assert.cs:37:16:37:32 | Before String s = ... | Assert.cs:37:16:37:16 | access to local variable s | | +| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:37:16:37:32 | After String s = ... | | +| Assert.cs:37:20:37:20 | After access to parameter b [false] | Assert.cs:37:31:37:32 | "" | | +| Assert.cs:37:20:37:20 | After access to parameter b [true] | Assert.cs:37:24:37:27 | null | | +| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | After access to parameter b [false] | false | +| Assert.cs:37:20:37:20 | access to parameter b | Assert.cs:37:20:37:20 | After access to parameter b [true] | true | +| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:20:37:20 | access to parameter b | | +| Assert.cs:37:20:37:32 | After ... ? ... : ... | Assert.cs:37:16:37:32 | String s = ... | | +| Assert.cs:37:24:37:27 | null | Assert.cs:37:20:37:32 | After ... ? ... : ... | | +| Assert.cs:37:31:37:32 | "" | Assert.cs:37:20:37:32 | After ... ? ... : ... | | +| Assert.cs:38:9:38:32 | After call to method IsTrue | Assert.cs:38:9:38:33 | After ...; | | +| Assert.cs:38:9:38:32 | Before call to method IsTrue | Assert.cs:38:23:38:31 | Before ... != ... | | +| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:35:10:35:11 | Exceptional Exit | exception | +| Assert.cs:38:9:38:32 | call to method IsTrue | Assert.cs:38:9:38:32 | After call to method IsTrue | | +| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:9:38:32 | Before call to method IsTrue | | +| Assert.cs:38:9:38:33 | After ...; | Assert.cs:39:9:39:36 | ...; | | | Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:28:38:31 | null | | -| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:9:38:32 | call to method IsTrue | | +| Assert.cs:38:23:38:31 | ... != ... | Assert.cs:38:23:38:31 | After ... != ... | | +| Assert.cs:38:23:38:31 | After ... != ... | Assert.cs:38:9:38:32 | call to method IsTrue | | +| Assert.cs:38:23:38:31 | Before ... != ... | Assert.cs:38:23:38:23 | access to local variable s | | | Assert.cs:38:28:38:31 | null | Assert.cs:38:23:38:31 | ... != ... | | -| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:35:10:35:11 | exit M5 (normal) | | -| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:27:39:27 | access to local variable s | | +| Assert.cs:39:9:39:35 | After call to method WriteLine | Assert.cs:39:9:39:36 | After ...; | | +| Assert.cs:39:9:39:35 | Before call to method WriteLine | Assert.cs:39:27:39:34 | Before access to property Length | | +| Assert.cs:39:9:39:35 | call to method WriteLine | Assert.cs:39:9:39:35 | After call to method WriteLine | | +| Assert.cs:39:9:39:36 | ...; | Assert.cs:39:9:39:35 | Before call to method WriteLine | | +| Assert.cs:39:9:39:36 | After ...; | Assert.cs:36:5:40:5 | After {...} | | | Assert.cs:39:27:39:27 | access to local variable s | Assert.cs:39:27:39:34 | access to property Length | | -| Assert.cs:39:27:39:34 | access to property Length | Assert.cs:39:9:39:35 | call to method WriteLine | | -| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:43:5:47:5 | {...} | | -| Assert.cs:42:10:42:11 | exit M6 (abnormal) | Assert.cs:42:10:42:11 | exit M6 | | -| Assert.cs:42:10:42:11 | exit M6 (normal) | Assert.cs:42:10:42:11 | exit M6 | | +| Assert.cs:39:27:39:34 | After access to property Length | Assert.cs:39:9:39:35 | call to method WriteLine | | +| Assert.cs:39:27:39:34 | Before access to property Length | Assert.cs:39:27:39:27 | access to local variable s | | +| Assert.cs:39:27:39:34 | access to property Length | Assert.cs:39:27:39:34 | After access to property Length | | +| Assert.cs:42:10:42:11 | Entry | Assert.cs:43:5:47:5 | {...} | | +| Assert.cs:42:10:42:11 | Exceptional Exit | Assert.cs:42:10:42:11 | Exit | | +| Assert.cs:42:10:42:11 | Normal Exit | Assert.cs:42:10:42:11 | Exit | | +| Assert.cs:43:5:47:5 | After {...} | Assert.cs:42:10:42:11 | Normal Exit | | | Assert.cs:43:5:47:5 | {...} | Assert.cs:44:9:44:33 | ... ...; | | -| Assert.cs:44:9:44:33 | ... ...; | Assert.cs:44:20:44:20 | access to parameter b | | -| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:45:9:45:34 | ...; | | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:24:44:27 | null | true | -| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:31:44:32 | "" | false | -| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:16:44:32 | String s = ... | | -| Assert.cs:44:24:44:27 | null | Assert.cs:44:20:44:32 | ... ? ... : ... | | -| Assert.cs:44:31:44:32 | "" | Assert.cs:44:20:44:32 | ... ? ... : ... | | -| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | exception | -| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:46:9:46:36 | ...; | | -| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:24:45:24 | access to local variable s | | +| Assert.cs:44:9:44:33 | ... ...; | Assert.cs:44:16:44:32 | Before String s = ... | | +| Assert.cs:44:9:44:33 | After ... ...; | Assert.cs:45:9:45:34 | ...; | | +| Assert.cs:44:16:44:16 | access to local variable s | Assert.cs:44:20:44:32 | ... ? ... : ... | | +| Assert.cs:44:16:44:32 | After String s = ... | Assert.cs:44:9:44:33 | After ... ...; | | +| Assert.cs:44:16:44:32 | Before String s = ... | Assert.cs:44:16:44:16 | access to local variable s | | +| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:44:16:44:32 | After String s = ... | | +| Assert.cs:44:20:44:20 | After access to parameter b [false] | Assert.cs:44:31:44:32 | "" | | +| Assert.cs:44:20:44:20 | After access to parameter b [true] | Assert.cs:44:24:44:27 | null | | +| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | After access to parameter b [false] | false | +| Assert.cs:44:20:44:20 | access to parameter b | Assert.cs:44:20:44:20 | After access to parameter b [true] | true | +| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:20:44:20 | access to parameter b | | +| Assert.cs:44:20:44:32 | After ... ? ... : ... | Assert.cs:44:16:44:32 | String s = ... | | +| Assert.cs:44:24:44:27 | null | Assert.cs:44:20:44:32 | After ... ? ... : ... | | +| Assert.cs:44:31:44:32 | "" | Assert.cs:44:20:44:32 | After ... ? ... : ... | | +| Assert.cs:45:9:45:33 | After call to method IsFalse | Assert.cs:45:9:45:34 | After ...; | | +| Assert.cs:45:9:45:33 | Before call to method IsFalse | Assert.cs:45:24:45:32 | Before ... != ... | | +| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:42:10:42:11 | Exceptional Exit | exception | +| Assert.cs:45:9:45:33 | call to method IsFalse | Assert.cs:45:9:45:33 | After call to method IsFalse | | +| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:9:45:33 | Before call to method IsFalse | | +| Assert.cs:45:9:45:34 | After ...; | Assert.cs:46:9:46:36 | ...; | | | Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:29:45:32 | null | | -| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:9:45:33 | call to method IsFalse | | +| Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:32 | After ... != ... | | +| Assert.cs:45:24:45:32 | After ... != ... | Assert.cs:45:9:45:33 | call to method IsFalse | | +| Assert.cs:45:24:45:32 | Before ... != ... | Assert.cs:45:24:45:24 | access to local variable s | | | Assert.cs:45:29:45:32 | null | Assert.cs:45:24:45:32 | ... != ... | | -| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:42:10:42:11 | exit M6 (normal) | | -| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:27:46:27 | access to local variable s | | +| Assert.cs:46:9:46:35 | After call to method WriteLine | Assert.cs:46:9:46:36 | After ...; | | +| Assert.cs:46:9:46:35 | Before call to method WriteLine | Assert.cs:46:27:46:34 | Before access to property Length | | +| Assert.cs:46:9:46:35 | call to method WriteLine | Assert.cs:46:9:46:35 | After call to method WriteLine | | +| Assert.cs:46:9:46:36 | ...; | Assert.cs:46:9:46:35 | Before call to method WriteLine | | +| Assert.cs:46:9:46:36 | After ...; | Assert.cs:43:5:47:5 | After {...} | | | Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:46:27:46:34 | access to property Length | | -| Assert.cs:46:27:46:34 | access to property Length | Assert.cs:46:9:46:35 | call to method WriteLine | | -| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:50:5:54:5 | {...} | | -| Assert.cs:49:10:49:11 | exit M7 (abnormal) | Assert.cs:49:10:49:11 | exit M7 | | -| Assert.cs:49:10:49:11 | exit M7 (normal) | Assert.cs:49:10:49:11 | exit M7 | | +| Assert.cs:46:27:46:34 | After access to property Length | Assert.cs:46:9:46:35 | call to method WriteLine | | +| Assert.cs:46:27:46:34 | Before access to property Length | Assert.cs:46:27:46:27 | access to local variable s | | +| Assert.cs:46:27:46:34 | access to property Length | Assert.cs:46:27:46:34 | After access to property Length | | +| Assert.cs:49:10:49:11 | Entry | Assert.cs:50:5:54:5 | {...} | | +| Assert.cs:49:10:49:11 | Exceptional Exit | Assert.cs:49:10:49:11 | Exit | | +| Assert.cs:49:10:49:11 | Normal Exit | Assert.cs:49:10:49:11 | Exit | | +| Assert.cs:50:5:54:5 | After {...} | Assert.cs:49:10:49:11 | Normal Exit | | | Assert.cs:50:5:54:5 | {...} | Assert.cs:51:9:51:33 | ... ...; | | -| Assert.cs:51:9:51:33 | ... ...; | Assert.cs:51:20:51:20 | access to parameter b | | -| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:52:9:52:34 | ...; | | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:24:51:27 | null | true | -| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:31:51:32 | "" | false | -| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:16:51:32 | String s = ... | | -| Assert.cs:51:24:51:27 | null | Assert.cs:51:20:51:32 | ... ? ... : ... | | -| Assert.cs:51:31:51:32 | "" | Assert.cs:51:20:51:32 | ... ? ... : ... | | -| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | exception | -| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:53:9:53:36 | ...; | | -| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:24:52:24 | access to local variable s | | +| Assert.cs:51:9:51:33 | ... ...; | Assert.cs:51:16:51:32 | Before String s = ... | | +| Assert.cs:51:9:51:33 | After ... ...; | Assert.cs:52:9:52:34 | ...; | | +| Assert.cs:51:16:51:16 | access to local variable s | Assert.cs:51:20:51:32 | ... ? ... : ... | | +| Assert.cs:51:16:51:32 | After String s = ... | Assert.cs:51:9:51:33 | After ... ...; | | +| Assert.cs:51:16:51:32 | Before String s = ... | Assert.cs:51:16:51:16 | access to local variable s | | +| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:51:16:51:32 | After String s = ... | | +| Assert.cs:51:20:51:20 | After access to parameter b [false] | Assert.cs:51:31:51:32 | "" | | +| Assert.cs:51:20:51:20 | After access to parameter b [true] | Assert.cs:51:24:51:27 | null | | +| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | After access to parameter b [false] | false | +| Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:20:51:20 | After access to parameter b [true] | true | +| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:20:51:20 | access to parameter b | | +| Assert.cs:51:20:51:32 | After ... ? ... : ... | Assert.cs:51:16:51:32 | String s = ... | | +| Assert.cs:51:24:51:27 | null | Assert.cs:51:20:51:32 | After ... ? ... : ... | | +| Assert.cs:51:31:51:32 | "" | Assert.cs:51:20:51:32 | After ... ? ... : ... | | +| Assert.cs:52:9:52:33 | After call to method IsFalse | Assert.cs:52:9:52:34 | After ...; | | +| Assert.cs:52:9:52:33 | Before call to method IsFalse | Assert.cs:52:24:52:32 | Before ... == ... | | +| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:49:10:49:11 | Exceptional Exit | exception | +| Assert.cs:52:9:52:33 | call to method IsFalse | Assert.cs:52:9:52:33 | After call to method IsFalse | | +| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:9:52:33 | Before call to method IsFalse | | +| Assert.cs:52:9:52:34 | After ...; | Assert.cs:53:9:53:36 | ...; | | | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:29:52:32 | null | | -| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | call to method IsFalse | | +| Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:32 | After ... == ... | | +| Assert.cs:52:24:52:32 | After ... == ... | Assert.cs:52:9:52:33 | call to method IsFalse | | +| Assert.cs:52:24:52:32 | Before ... == ... | Assert.cs:52:24:52:24 | access to local variable s | | | Assert.cs:52:29:52:32 | null | Assert.cs:52:24:52:32 | ... == ... | | -| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:49:10:49:11 | exit M7 (normal) | | -| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:27:53:27 | access to local variable s | | +| Assert.cs:53:9:53:35 | After call to method WriteLine | Assert.cs:53:9:53:36 | After ...; | | +| Assert.cs:53:9:53:35 | Before call to method WriteLine | Assert.cs:53:27:53:34 | Before access to property Length | | +| Assert.cs:53:9:53:35 | call to method WriteLine | Assert.cs:53:9:53:35 | After call to method WriteLine | | +| Assert.cs:53:9:53:36 | ...; | Assert.cs:53:9:53:35 | Before call to method WriteLine | | +| Assert.cs:53:9:53:36 | After ...; | Assert.cs:50:5:54:5 | After {...} | | | Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:53:27:53:34 | access to property Length | | -| Assert.cs:53:27:53:34 | access to property Length | Assert.cs:53:9:53:35 | call to method WriteLine | | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:57:5:61:5 | {...} | | -| Assert.cs:56:10:56:11 | exit M8 (abnormal) | Assert.cs:56:10:56:11 | exit M8 | | -| Assert.cs:56:10:56:11 | exit M8 (normal) | Assert.cs:56:10:56:11 | exit M8 | | +| Assert.cs:53:27:53:34 | After access to property Length | Assert.cs:53:9:53:35 | call to method WriteLine | | +| Assert.cs:53:27:53:34 | Before access to property Length | Assert.cs:53:27:53:27 | access to local variable s | | +| Assert.cs:53:27:53:34 | access to property Length | Assert.cs:53:27:53:34 | After access to property Length | | +| Assert.cs:56:10:56:11 | Entry | Assert.cs:57:5:61:5 | {...} | | +| Assert.cs:56:10:56:11 | Exceptional Exit | Assert.cs:56:10:56:11 | Exit | | +| Assert.cs:56:10:56:11 | Normal Exit | Assert.cs:56:10:56:11 | Exit | | +| Assert.cs:57:5:61:5 | After {...} | Assert.cs:56:10:56:11 | Normal Exit | | | Assert.cs:57:5:61:5 | {...} | Assert.cs:58:9:58:33 | ... ...; | | -| Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:20:58:20 | access to parameter b | | -| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:59:9:59:38 | ...; | | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | null | true | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | "" | false | -| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:16:58:32 | String s = ... | | -| Assert.cs:58:24:58:27 | null | Assert.cs:58:20:58:32 | ... ? ... : ... | | -| Assert.cs:58:31:58:32 | "" | Assert.cs:58:20:58:32 | ... ? ... : ... | | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | exception | -| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:60:9:60:36 | ...; | | -| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:23:59:23 | access to local variable s | | +| Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:16:58:32 | Before String s = ... | | +| Assert.cs:58:9:58:33 | After ... ...; | Assert.cs:59:9:59:38 | ...; | | +| Assert.cs:58:16:58:16 | access to local variable s | Assert.cs:58:20:58:32 | ... ? ... : ... | | +| Assert.cs:58:16:58:32 | After String s = ... | Assert.cs:58:9:58:33 | After ... ...; | | +| Assert.cs:58:16:58:32 | Before String s = ... | Assert.cs:58:16:58:16 | access to local variable s | | +| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:16:58:32 | After String s = ... | | +| Assert.cs:58:20:58:20 | After access to parameter b [false] | Assert.cs:58:31:58:32 | "" | | +| Assert.cs:58:20:58:20 | After access to parameter b [true] | Assert.cs:58:24:58:27 | null | | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | After access to parameter b [false] | false | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | After access to parameter b [true] | true | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | | +| Assert.cs:58:20:58:32 | After ... ? ... : ... | Assert.cs:58:16:58:32 | String s = ... | | +| Assert.cs:58:24:58:27 | null | Assert.cs:58:20:58:32 | After ... ? ... : ... | | +| Assert.cs:58:31:58:32 | "" | Assert.cs:58:20:58:32 | After ... ? ... : ... | | +| Assert.cs:59:9:59:37 | After call to method IsTrue | Assert.cs:59:9:59:38 | After ...; | | +| Assert.cs:59:9:59:37 | Before call to method IsTrue | Assert.cs:59:23:59:36 | ... && ... | | +| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | Exceptional Exit | exception | +| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:59:9:59:37 | After call to method IsTrue | | +| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:9:59:37 | Before call to method IsTrue | | +| Assert.cs:59:9:59:38 | After ...; | Assert.cs:60:9:60:36 | ...; | | | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:28:59:31 | null | | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | ... && ... | false | -| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | true | -| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | After ... != ... [false] | false | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:31 | After ... != ... [true] | true | +| Assert.cs:59:23:59:31 | After ... != ... [false] | Assert.cs:59:23:59:36 | After ... && ... | | +| Assert.cs:59:23:59:31 | After ... != ... [true] | Assert.cs:59:36:59:36 | access to parameter b | | +| Assert.cs:59:23:59:31 | Before ... != ... | Assert.cs:59:23:59:23 | access to local variable s | | +| Assert.cs:59:23:59:36 | ... && ... | Assert.cs:59:23:59:31 | Before ... != ... | | +| Assert.cs:59:23:59:36 | After ... && ... | Assert.cs:59:9:59:37 | call to method IsTrue | | | Assert.cs:59:28:59:31 | null | Assert.cs:59:23:59:31 | ... != ... | | -| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | ... && ... | | -| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | exit M8 (normal) | | -| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:27:60:27 | access to local variable s | | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | After ... && ... | | +| Assert.cs:60:9:60:35 | After call to method WriteLine | Assert.cs:60:9:60:36 | After ...; | | +| Assert.cs:60:9:60:35 | Before call to method WriteLine | Assert.cs:60:27:60:34 | Before access to property Length | | +| Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:9:60:35 | After call to method WriteLine | | +| Assert.cs:60:9:60:36 | ...; | Assert.cs:60:9:60:35 | Before call to method WriteLine | | +| Assert.cs:60:9:60:36 | After ...; | Assert.cs:57:5:61:5 | After {...} | | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:34 | access to property Length | | -| Assert.cs:60:27:60:34 | access to property Length | Assert.cs:60:9:60:35 | call to method WriteLine | | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:64:5:68:5 | {...} | | -| Assert.cs:63:10:63:11 | exit M9 (abnormal) | Assert.cs:63:10:63:11 | exit M9 | | -| Assert.cs:63:10:63:11 | exit M9 (normal) | Assert.cs:63:10:63:11 | exit M9 | | +| Assert.cs:60:27:60:34 | After access to property Length | Assert.cs:60:9:60:35 | call to method WriteLine | | +| Assert.cs:60:27:60:34 | Before access to property Length | Assert.cs:60:27:60:27 | access to local variable s | | +| Assert.cs:60:27:60:34 | access to property Length | Assert.cs:60:27:60:34 | After access to property Length | | +| Assert.cs:63:10:63:11 | Entry | Assert.cs:64:5:68:5 | {...} | | +| Assert.cs:63:10:63:11 | Exceptional Exit | Assert.cs:63:10:63:11 | Exit | | +| Assert.cs:63:10:63:11 | Normal Exit | Assert.cs:63:10:63:11 | Exit | | +| Assert.cs:64:5:68:5 | After {...} | Assert.cs:63:10:63:11 | Normal Exit | | | Assert.cs:64:5:68:5 | {...} | Assert.cs:65:9:65:33 | ... ...; | | -| Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:20:65:20 | access to parameter b | | -| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:66:9:66:39 | ...; | | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | null | true | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | "" | false | -| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:16:65:32 | String s = ... | | -| Assert.cs:65:24:65:27 | null | Assert.cs:65:20:65:32 | ... ? ... : ... | | -| Assert.cs:65:31:65:32 | "" | Assert.cs:65:20:65:32 | ... ? ... : ... | | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | exception | -| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:67:9:67:36 | ...; | | -| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:24:66:24 | access to local variable s | | +| Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:16:65:32 | Before String s = ... | | +| Assert.cs:65:9:65:33 | After ... ...; | Assert.cs:66:9:66:39 | ...; | | +| Assert.cs:65:16:65:16 | access to local variable s | Assert.cs:65:20:65:32 | ... ? ... : ... | | +| Assert.cs:65:16:65:32 | After String s = ... | Assert.cs:65:9:65:33 | After ... ...; | | +| Assert.cs:65:16:65:32 | Before String s = ... | Assert.cs:65:16:65:16 | access to local variable s | | +| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:16:65:32 | After String s = ... | | +| Assert.cs:65:20:65:20 | After access to parameter b [false] | Assert.cs:65:31:65:32 | "" | | +| Assert.cs:65:20:65:20 | After access to parameter b [true] | Assert.cs:65:24:65:27 | null | | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | After access to parameter b [false] | false | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | After access to parameter b [true] | true | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | | +| Assert.cs:65:20:65:32 | After ... ? ... : ... | Assert.cs:65:16:65:32 | String s = ... | | +| Assert.cs:65:24:65:27 | null | Assert.cs:65:20:65:32 | After ... ? ... : ... | | +| Assert.cs:65:31:65:32 | "" | Assert.cs:65:20:65:32 | After ... ? ... : ... | | +| Assert.cs:66:9:66:38 | After call to method IsFalse | Assert.cs:66:9:66:39 | After ...; | | +| Assert.cs:66:9:66:38 | Before call to method IsFalse | Assert.cs:66:24:66:37 | ... \|\| ... | | +| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | Exceptional Exit | exception | +| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:66:9:66:38 | After call to method IsFalse | | +| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:9:66:38 | Before call to method IsFalse | | +| Assert.cs:66:9:66:39 | After ...; | Assert.cs:67:9:67:36 | ...; | | | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:29:66:32 | null | | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | ... \|\| ... | true | -| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | false | -| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | After ... == ... [false] | false | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:32 | After ... == ... [true] | true | +| Assert.cs:66:24:66:32 | After ... == ... [false] | Assert.cs:66:37:66:37 | access to parameter b | | +| Assert.cs:66:24:66:32 | After ... == ... [true] | Assert.cs:66:24:66:37 | After ... \|\| ... | | +| Assert.cs:66:24:66:32 | Before ... == ... | Assert.cs:66:24:66:24 | access to local variable s | | +| Assert.cs:66:24:66:37 | ... \|\| ... | Assert.cs:66:24:66:32 | Before ... == ... | | +| Assert.cs:66:24:66:37 | After ... \|\| ... | Assert.cs:66:9:66:38 | call to method IsFalse | | | Assert.cs:66:29:66:32 | null | Assert.cs:66:24:66:32 | ... == ... | | -| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | ... \|\| ... | | -| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | exit M9 (normal) | | -| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:27:67:27 | access to local variable s | | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | After ... \|\| ... | | +| Assert.cs:67:9:67:35 | After call to method WriteLine | Assert.cs:67:9:67:36 | After ...; | | +| Assert.cs:67:9:67:35 | Before call to method WriteLine | Assert.cs:67:27:67:34 | Before access to property Length | | +| Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:9:67:35 | After call to method WriteLine | | +| Assert.cs:67:9:67:36 | ...; | Assert.cs:67:9:67:35 | Before call to method WriteLine | | +| Assert.cs:67:9:67:36 | After ...; | Assert.cs:64:5:68:5 | After {...} | | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:34 | access to property Length | | -| Assert.cs:67:27:67:34 | access to property Length | Assert.cs:67:9:67:35 | call to method WriteLine | | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:71:5:75:5 | {...} | | -| Assert.cs:70:10:70:12 | exit M10 (abnormal) | Assert.cs:70:10:70:12 | exit M10 | | -| Assert.cs:70:10:70:12 | exit M10 (normal) | Assert.cs:70:10:70:12 | exit M10 | | +| Assert.cs:67:27:67:34 | After access to property Length | Assert.cs:67:9:67:35 | call to method WriteLine | | +| Assert.cs:67:27:67:34 | Before access to property Length | Assert.cs:67:27:67:27 | access to local variable s | | +| Assert.cs:67:27:67:34 | access to property Length | Assert.cs:67:27:67:34 | After access to property Length | | +| Assert.cs:70:10:70:12 | Entry | Assert.cs:71:5:75:5 | {...} | | +| Assert.cs:70:10:70:12 | Exceptional Exit | Assert.cs:70:10:70:12 | Exit | | +| Assert.cs:70:10:70:12 | Normal Exit | Assert.cs:70:10:70:12 | Exit | | +| Assert.cs:71:5:75:5 | After {...} | Assert.cs:70:10:70:12 | Normal Exit | | | Assert.cs:71:5:75:5 | {...} | Assert.cs:72:9:72:33 | ... ...; | | -| Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:20:72:20 | access to parameter b | | -| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:73:9:73:38 | ...; | | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | null | true | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | "" | false | -| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:16:72:32 | String s = ... | | -| Assert.cs:72:24:72:27 | null | Assert.cs:72:20:72:32 | ... ? ... : ... | | -| Assert.cs:72:31:72:32 | "" | Assert.cs:72:20:72:32 | ... ? ... : ... | | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | exception | -| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:74:9:74:36 | ...; | | -| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:23:73:23 | access to local variable s | | +| Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:16:72:32 | Before String s = ... | | +| Assert.cs:72:9:72:33 | After ... ...; | Assert.cs:73:9:73:38 | ...; | | +| Assert.cs:72:16:72:16 | access to local variable s | Assert.cs:72:20:72:32 | ... ? ... : ... | | +| Assert.cs:72:16:72:32 | After String s = ... | Assert.cs:72:9:72:33 | After ... ...; | | +| Assert.cs:72:16:72:32 | Before String s = ... | Assert.cs:72:16:72:16 | access to local variable s | | +| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:16:72:32 | After String s = ... | | +| Assert.cs:72:20:72:20 | After access to parameter b [false] | Assert.cs:72:31:72:32 | "" | | +| Assert.cs:72:20:72:20 | After access to parameter b [true] | Assert.cs:72:24:72:27 | null | | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | After access to parameter b [false] | false | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | After access to parameter b [true] | true | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | | +| Assert.cs:72:20:72:32 | After ... ? ... : ... | Assert.cs:72:16:72:32 | String s = ... | | +| Assert.cs:72:24:72:27 | null | Assert.cs:72:20:72:32 | After ... ? ... : ... | | +| Assert.cs:72:31:72:32 | "" | Assert.cs:72:20:72:32 | After ... ? ... : ... | | +| Assert.cs:73:9:73:37 | After call to method IsTrue | Assert.cs:73:9:73:38 | After ...; | | +| Assert.cs:73:9:73:37 | Before call to method IsTrue | Assert.cs:73:23:73:36 | ... && ... | | +| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | Exceptional Exit | exception | +| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:73:9:73:37 | After call to method IsTrue | | +| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:9:73:37 | Before call to method IsTrue | | +| Assert.cs:73:9:73:38 | After ...; | Assert.cs:74:9:74:36 | ...; | | | Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:28:73:31 | null | | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | ... && ... | false | -| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | true | -| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | After ... == ... [false] | false | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:31 | After ... == ... [true] | true | +| Assert.cs:73:23:73:31 | After ... == ... [false] | Assert.cs:73:23:73:36 | After ... && ... | | +| Assert.cs:73:23:73:31 | After ... == ... [true] | Assert.cs:73:36:73:36 | access to parameter b | | +| Assert.cs:73:23:73:31 | Before ... == ... | Assert.cs:73:23:73:23 | access to local variable s | | +| Assert.cs:73:23:73:36 | ... && ... | Assert.cs:73:23:73:31 | Before ... == ... | | +| Assert.cs:73:23:73:36 | After ... && ... | Assert.cs:73:9:73:37 | call to method IsTrue | | | Assert.cs:73:28:73:31 | null | Assert.cs:73:23:73:31 | ... == ... | | -| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | ... && ... | | -| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | exit M10 (normal) | | -| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:27:74:27 | access to local variable s | | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | After ... && ... | | +| Assert.cs:74:9:74:35 | After call to method WriteLine | Assert.cs:74:9:74:36 | After ...; | | +| Assert.cs:74:9:74:35 | Before call to method WriteLine | Assert.cs:74:27:74:34 | Before access to property Length | | +| Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:9:74:35 | After call to method WriteLine | | +| Assert.cs:74:9:74:36 | ...; | Assert.cs:74:9:74:35 | Before call to method WriteLine | | +| Assert.cs:74:9:74:36 | After ...; | Assert.cs:71:5:75:5 | After {...} | | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:34 | access to property Length | | -| Assert.cs:74:27:74:34 | access to property Length | Assert.cs:74:9:74:35 | call to method WriteLine | | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:78:5:82:5 | {...} | | -| Assert.cs:77:10:77:12 | exit M11 (abnormal) | Assert.cs:77:10:77:12 | exit M11 | | -| Assert.cs:77:10:77:12 | exit M11 (normal) | Assert.cs:77:10:77:12 | exit M11 | | +| Assert.cs:74:27:74:34 | After access to property Length | Assert.cs:74:9:74:35 | call to method WriteLine | | +| Assert.cs:74:27:74:34 | Before access to property Length | Assert.cs:74:27:74:27 | access to local variable s | | +| Assert.cs:74:27:74:34 | access to property Length | Assert.cs:74:27:74:34 | After access to property Length | | +| Assert.cs:77:10:77:12 | Entry | Assert.cs:78:5:82:5 | {...} | | +| Assert.cs:77:10:77:12 | Exceptional Exit | Assert.cs:77:10:77:12 | Exit | | +| Assert.cs:77:10:77:12 | Normal Exit | Assert.cs:77:10:77:12 | Exit | | +| Assert.cs:78:5:82:5 | After {...} | Assert.cs:77:10:77:12 | Normal Exit | | | Assert.cs:78:5:82:5 | {...} | Assert.cs:79:9:79:33 | ... ...; | | -| Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:20:79:20 | access to parameter b | | -| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:80:9:80:39 | ...; | | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | null | true | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | "" | false | -| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:16:79:32 | String s = ... | | -| Assert.cs:79:24:79:27 | null | Assert.cs:79:20:79:32 | ... ? ... : ... | | -| Assert.cs:79:31:79:32 | "" | Assert.cs:79:20:79:32 | ... ? ... : ... | | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | exception | -| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:81:9:81:36 | ...; | | -| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:24:80:24 | access to local variable s | | +| Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:16:79:32 | Before String s = ... | | +| Assert.cs:79:9:79:33 | After ... ...; | Assert.cs:80:9:80:39 | ...; | | +| Assert.cs:79:16:79:16 | access to local variable s | Assert.cs:79:20:79:32 | ... ? ... : ... | | +| Assert.cs:79:16:79:32 | After String s = ... | Assert.cs:79:9:79:33 | After ... ...; | | +| Assert.cs:79:16:79:32 | Before String s = ... | Assert.cs:79:16:79:16 | access to local variable s | | +| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:16:79:32 | After String s = ... | | +| Assert.cs:79:20:79:20 | After access to parameter b [false] | Assert.cs:79:31:79:32 | "" | | +| Assert.cs:79:20:79:20 | After access to parameter b [true] | Assert.cs:79:24:79:27 | null | | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | After access to parameter b [false] | false | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | After access to parameter b [true] | true | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | | +| Assert.cs:79:20:79:32 | After ... ? ... : ... | Assert.cs:79:16:79:32 | String s = ... | | +| Assert.cs:79:24:79:27 | null | Assert.cs:79:20:79:32 | After ... ? ... : ... | | +| Assert.cs:79:31:79:32 | "" | Assert.cs:79:20:79:32 | After ... ? ... : ... | | +| Assert.cs:80:9:80:38 | After call to method IsFalse | Assert.cs:80:9:80:39 | After ...; | | +| Assert.cs:80:9:80:38 | Before call to method IsFalse | Assert.cs:80:24:80:37 | ... \|\| ... | | +| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | Exceptional Exit | exception | +| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:80:9:80:38 | After call to method IsFalse | | +| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:9:80:38 | Before call to method IsFalse | | +| Assert.cs:80:9:80:39 | After ...; | Assert.cs:81:9:81:36 | ...; | | | Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:29:80:32 | null | | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | ... \|\| ... | true | -| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | false | -| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | After ... != ... [false] | false | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:32 | After ... != ... [true] | true | +| Assert.cs:80:24:80:32 | After ... != ... [false] | Assert.cs:80:37:80:37 | access to parameter b | | +| Assert.cs:80:24:80:32 | After ... != ... [true] | Assert.cs:80:24:80:37 | After ... \|\| ... | | +| Assert.cs:80:24:80:32 | Before ... != ... | Assert.cs:80:24:80:24 | access to local variable s | | +| Assert.cs:80:24:80:37 | ... \|\| ... | Assert.cs:80:24:80:32 | Before ... != ... | | +| Assert.cs:80:24:80:37 | After ... \|\| ... | Assert.cs:80:9:80:38 | call to method IsFalse | | | Assert.cs:80:29:80:32 | null | Assert.cs:80:24:80:32 | ... != ... | | -| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | ... \|\| ... | | -| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | exit M11 (normal) | | -| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:27:81:27 | access to local variable s | | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | After ... \|\| ... | | +| Assert.cs:81:9:81:35 | After call to method WriteLine | Assert.cs:81:9:81:36 | After ...; | | +| Assert.cs:81:9:81:35 | Before call to method WriteLine | Assert.cs:81:27:81:34 | Before access to property Length | | +| Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:9:81:35 | After call to method WriteLine | | +| Assert.cs:81:9:81:36 | ...; | Assert.cs:81:9:81:35 | Before call to method WriteLine | | +| Assert.cs:81:9:81:36 | After ...; | Assert.cs:78:5:82:5 | After {...} | | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:34 | access to property Length | | -| Assert.cs:81:27:81:34 | access to property Length | Assert.cs:81:9:81:35 | call to method WriteLine | | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:85:5:129:5 | {...} | | -| Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 | | -| Assert.cs:84:10:84:12 | exit M12 (normal) | Assert.cs:84:10:84:12 | exit M12 | | +| Assert.cs:81:27:81:34 | After access to property Length | Assert.cs:81:9:81:35 | call to method WriteLine | | +| Assert.cs:81:27:81:34 | Before access to property Length | Assert.cs:81:27:81:27 | access to local variable s | | +| Assert.cs:81:27:81:34 | access to property Length | Assert.cs:81:27:81:34 | After access to property Length | | +| Assert.cs:84:10:84:12 | Entry | Assert.cs:85:5:129:5 | {...} | | +| Assert.cs:84:10:84:12 | Exceptional Exit | Assert.cs:84:10:84:12 | Exit | | +| Assert.cs:84:10:84:12 | Normal Exit | Assert.cs:84:10:84:12 | Exit | | +| Assert.cs:85:5:129:5 | After {...} | Assert.cs:84:10:84:12 | Normal Exit | | | Assert.cs:85:5:129:5 | {...} | Assert.cs:86:9:86:33 | ... ...; | | -| Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:20:86:20 | access to parameter b | | -| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:87:9:87:32 | ...; | | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | null | true | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | "" | false | -| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:16:86:32 | String s = ... | | -| Assert.cs:86:24:86:27 | null | Assert.cs:86:20:86:32 | ... ? ... : ... | | -| Assert.cs:86:31:86:32 | "" | Assert.cs:86:20:86:32 | ... ? ... : ... | | -| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exit | -| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:88:9:88:36 | ...; | | -| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:22:87:22 | access to local variable s | | +| Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:16:86:32 | Before String s = ... | | +| Assert.cs:86:9:86:33 | After ... ...; | Assert.cs:87:9:87:32 | ...; | | +| Assert.cs:86:16:86:16 | access to local variable s | Assert.cs:86:20:86:32 | ... ? ... : ... | | +| Assert.cs:86:16:86:32 | After String s = ... | Assert.cs:86:9:86:33 | After ... ...; | | +| Assert.cs:86:16:86:32 | Before String s = ... | Assert.cs:86:16:86:16 | access to local variable s | | +| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:16:86:32 | After String s = ... | | +| Assert.cs:86:20:86:20 | After access to parameter b [false] | Assert.cs:86:31:86:32 | "" | | +| Assert.cs:86:20:86:20 | After access to parameter b [true] | Assert.cs:86:24:86:27 | null | | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | After access to parameter b [false] | false | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:20:86:20 | After access to parameter b [true] | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:20 | access to parameter b | | +| Assert.cs:86:20:86:32 | After ... ? ... : ... | Assert.cs:86:16:86:32 | String s = ... | | +| Assert.cs:86:24:86:27 | null | Assert.cs:86:20:86:32 | After ... ? ... : ... | | +| Assert.cs:86:31:86:32 | "" | Assert.cs:86:20:86:32 | After ... ? ... : ... | | +| Assert.cs:87:9:87:31 | After call to method Assert | Assert.cs:87:9:87:32 | After ...; | | +| Assert.cs:87:9:87:31 | Before call to method Assert | Assert.cs:87:22:87:30 | Before ... != ... | | +| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:87:9:87:31 | call to method Assert | Assert.cs:87:9:87:31 | After call to method Assert | | +| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:9:87:31 | Before call to method Assert | | +| Assert.cs:87:9:87:32 | After ...; | Assert.cs:88:9:88:36 | ...; | | | Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:27:87:30 | null | | -| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | call to method Assert | | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:22:87:30 | After ... != ... | | +| Assert.cs:87:22:87:30 | After ... != ... | Assert.cs:87:9:87:31 | call to method Assert | | +| Assert.cs:87:22:87:30 | Before ... != ... | Assert.cs:87:22:87:22 | access to local variable s | | | Assert.cs:87:27:87:30 | null | Assert.cs:87:22:87:30 | ... != ... | | -| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:90:9:90:26 | ...; | | -| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:27:88:27 | access to local variable s | | +| Assert.cs:88:9:88:35 | After call to method WriteLine | Assert.cs:88:9:88:36 | After ...; | | +| Assert.cs:88:9:88:35 | Before call to method WriteLine | Assert.cs:88:27:88:34 | Before access to property Length | | +| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:88:9:88:35 | After call to method WriteLine | | +| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:9:88:35 | Before call to method WriteLine | | +| Assert.cs:88:9:88:36 | After ...; | Assert.cs:90:9:90:26 | ...; | | | Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:27:88:34 | access to property Length | | -| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:9:88:35 | call to method WriteLine | | -| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:91:9:91:25 | ...; | | -| Assert.cs:90:9:90:26 | ...; | Assert.cs:90:13:90:13 | access to parameter b | | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:17:90:20 | null | true | -| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:24:90:25 | "" | false | -| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:9:90:25 | ... = ... | | -| Assert.cs:90:17:90:20 | null | Assert.cs:90:13:90:25 | ... ? ... : ... | | -| Assert.cs:90:24:90:25 | "" | Assert.cs:90:13:90:25 | ... ? ... : ... | | -| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:92:9:92:36 | ...; | | -| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:23:91:23 | access to local variable s | | +| Assert.cs:88:27:88:34 | After access to property Length | Assert.cs:88:9:88:35 | call to method WriteLine | | +| Assert.cs:88:27:88:34 | Before access to property Length | Assert.cs:88:27:88:27 | access to local variable s | | +| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:27:88:34 | After access to property Length | | +| Assert.cs:90:9:90:9 | access to local variable s | Assert.cs:90:13:90:25 | ... ? ... : ... | | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:9:90:25 | After ... = ... | | +| Assert.cs:90:9:90:25 | After ... = ... | Assert.cs:90:9:90:26 | After ...; | | +| Assert.cs:90:9:90:25 | Before ... = ... | Assert.cs:90:9:90:9 | access to local variable s | | +| Assert.cs:90:9:90:26 | ...; | Assert.cs:90:9:90:25 | Before ... = ... | | +| Assert.cs:90:9:90:26 | After ...; | Assert.cs:91:9:91:25 | ...; | | +| Assert.cs:90:13:90:13 | After access to parameter b [false] | Assert.cs:90:24:90:25 | "" | | +| Assert.cs:90:13:90:13 | After access to parameter b [true] | Assert.cs:90:17:90:20 | null | | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | After access to parameter b [false] | false | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:13:90:13 | After access to parameter b [true] | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:13 | access to parameter b | | +| Assert.cs:90:13:90:25 | After ... ? ... : ... | Assert.cs:90:9:90:25 | ... = ... | | +| Assert.cs:90:17:90:20 | null | Assert.cs:90:13:90:25 | After ... ? ... : ... | | +| Assert.cs:90:24:90:25 | "" | Assert.cs:90:13:90:25 | After ... ? ... : ... | | +| Assert.cs:91:9:91:24 | After call to method IsNull | Assert.cs:91:9:91:25 | After ...; | | +| Assert.cs:91:9:91:24 | Before call to method IsNull | Assert.cs:91:23:91:23 | access to local variable s | | +| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:91:9:91:24 | call to method IsNull | Assert.cs:91:9:91:24 | After call to method IsNull | | +| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:9:91:24 | Before call to method IsNull | | +| Assert.cs:91:9:91:25 | After ...; | Assert.cs:92:9:92:36 | ...; | | | Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | call to method IsNull | | -| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:94:9:94:26 | ...; | | -| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:27:92:27 | access to local variable s | | +| Assert.cs:92:9:92:35 | After call to method WriteLine | Assert.cs:92:9:92:36 | After ...; | | +| Assert.cs:92:9:92:35 | Before call to method WriteLine | Assert.cs:92:27:92:34 | Before access to property Length | | +| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:92:9:92:35 | After call to method WriteLine | | +| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:9:92:35 | Before call to method WriteLine | | +| Assert.cs:92:9:92:36 | After ...; | Assert.cs:94:9:94:26 | ...; | | | Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:34 | access to property Length | | -| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:9:92:35 | call to method WriteLine | | -| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:95:9:95:28 | ...; | | -| Assert.cs:94:9:94:26 | ...; | Assert.cs:94:13:94:13 | access to parameter b | | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:17:94:20 | null | true | -| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:24:94:25 | "" | false | -| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:9:94:25 | ... = ... | | -| Assert.cs:94:17:94:20 | null | Assert.cs:94:13:94:25 | ... ? ... : ... | | -| Assert.cs:94:24:94:25 | "" | Assert.cs:94:13:94:25 | ... ? ... : ... | | -| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:96:9:96:36 | ...; | | -| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:26:95:26 | access to local variable s | | +| Assert.cs:92:27:92:34 | After access to property Length | Assert.cs:92:9:92:35 | call to method WriteLine | | +| Assert.cs:92:27:92:34 | Before access to property Length | Assert.cs:92:27:92:27 | access to local variable s | | +| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:27:92:34 | After access to property Length | | +| Assert.cs:94:9:94:9 | access to local variable s | Assert.cs:94:13:94:25 | ... ? ... : ... | | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:9:94:25 | After ... = ... | | +| Assert.cs:94:9:94:25 | After ... = ... | Assert.cs:94:9:94:26 | After ...; | | +| Assert.cs:94:9:94:25 | Before ... = ... | Assert.cs:94:9:94:9 | access to local variable s | | +| Assert.cs:94:9:94:26 | ...; | Assert.cs:94:9:94:25 | Before ... = ... | | +| Assert.cs:94:9:94:26 | After ...; | Assert.cs:95:9:95:28 | ...; | | +| Assert.cs:94:13:94:13 | After access to parameter b [false] | Assert.cs:94:24:94:25 | "" | | +| Assert.cs:94:13:94:13 | After access to parameter b [true] | Assert.cs:94:17:94:20 | null | | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | After access to parameter b [false] | false | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:13:94:13 | After access to parameter b [true] | true | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:13 | access to parameter b | | +| Assert.cs:94:13:94:25 | After ... ? ... : ... | Assert.cs:94:9:94:25 | ... = ... | | +| Assert.cs:94:17:94:20 | null | Assert.cs:94:13:94:25 | After ... ? ... : ... | | +| Assert.cs:94:24:94:25 | "" | Assert.cs:94:13:94:25 | After ... ? ... : ... | | +| Assert.cs:95:9:95:27 | After call to method IsNotNull | Assert.cs:95:9:95:28 | After ...; | | +| Assert.cs:95:9:95:27 | Before call to method IsNotNull | Assert.cs:95:26:95:26 | access to local variable s | | +| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:95:9:95:27 | call to method IsNotNull | Assert.cs:95:9:95:27 | After call to method IsNotNull | | +| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:9:95:27 | Before call to method IsNotNull | | +| Assert.cs:95:9:95:28 | After ...; | Assert.cs:96:9:96:36 | ...; | | | Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | call to method IsNotNull | | -| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:98:9:98:26 | ...; | | -| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:27:96:27 | access to local variable s | | +| Assert.cs:96:9:96:35 | After call to method WriteLine | Assert.cs:96:9:96:36 | After ...; | | +| Assert.cs:96:9:96:35 | Before call to method WriteLine | Assert.cs:96:27:96:34 | Before access to property Length | | +| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:96:9:96:35 | After call to method WriteLine | | +| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:9:96:35 | Before call to method WriteLine | | +| Assert.cs:96:9:96:36 | After ...; | Assert.cs:98:9:98:26 | ...; | | | Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:34 | access to property Length | | -| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:9:96:35 | call to method WriteLine | | -| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:99:9:99:33 | ...; | | -| Assert.cs:98:9:98:26 | ...; | Assert.cs:98:13:98:13 | access to parameter b | | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:17:98:20 | null | true | -| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:24:98:25 | "" | false | -| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:9:98:25 | ... = ... | | -| Assert.cs:98:17:98:20 | null | Assert.cs:98:13:98:25 | ... ? ... : ... | | -| Assert.cs:98:24:98:25 | "" | Assert.cs:98:13:98:25 | ... ? ... : ... | | -| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:100:9:100:36 | ...; | | -| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:23:99:23 | access to local variable s | | +| Assert.cs:96:27:96:34 | After access to property Length | Assert.cs:96:9:96:35 | call to method WriteLine | | +| Assert.cs:96:27:96:34 | Before access to property Length | Assert.cs:96:27:96:27 | access to local variable s | | +| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:27:96:34 | After access to property Length | | +| Assert.cs:98:9:98:9 | access to local variable s | Assert.cs:98:13:98:25 | ... ? ... : ... | | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:9:98:25 | After ... = ... | | +| Assert.cs:98:9:98:25 | After ... = ... | Assert.cs:98:9:98:26 | After ...; | | +| Assert.cs:98:9:98:25 | Before ... = ... | Assert.cs:98:9:98:9 | access to local variable s | | +| Assert.cs:98:9:98:26 | ...; | Assert.cs:98:9:98:25 | Before ... = ... | | +| Assert.cs:98:9:98:26 | After ...; | Assert.cs:99:9:99:33 | ...; | | +| Assert.cs:98:13:98:13 | After access to parameter b [false] | Assert.cs:98:24:98:25 | "" | | +| Assert.cs:98:13:98:13 | After access to parameter b [true] | Assert.cs:98:17:98:20 | null | | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | After access to parameter b [false] | false | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:13:98:13 | After access to parameter b [true] | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:13 | access to parameter b | | +| Assert.cs:98:13:98:25 | After ... ? ... : ... | Assert.cs:98:9:98:25 | ... = ... | | +| Assert.cs:98:17:98:20 | null | Assert.cs:98:13:98:25 | After ... ? ... : ... | | +| Assert.cs:98:24:98:25 | "" | Assert.cs:98:13:98:25 | After ... ? ... : ... | | +| Assert.cs:99:9:99:32 | After call to method IsTrue | Assert.cs:99:9:99:33 | After ...; | | +| Assert.cs:99:9:99:32 | Before call to method IsTrue | Assert.cs:99:23:99:31 | Before ... == ... | | +| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:99:9:99:32 | call to method IsTrue | Assert.cs:99:9:99:32 | After call to method IsTrue | | +| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:9:99:32 | Before call to method IsTrue | | +| Assert.cs:99:9:99:33 | After ...; | Assert.cs:100:9:100:36 | ...; | | | Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:28:99:31 | null | | -| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | call to method IsTrue | | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:23:99:31 | After ... == ... | | +| Assert.cs:99:23:99:31 | After ... == ... | Assert.cs:99:9:99:32 | call to method IsTrue | | +| Assert.cs:99:23:99:31 | Before ... == ... | Assert.cs:99:23:99:23 | access to local variable s | | | Assert.cs:99:28:99:31 | null | Assert.cs:99:23:99:31 | ... == ... | | -| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:102:9:102:26 | ...; | | -| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:27:100:27 | access to local variable s | | +| Assert.cs:100:9:100:35 | After call to method WriteLine | Assert.cs:100:9:100:36 | After ...; | | +| Assert.cs:100:9:100:35 | Before call to method WriteLine | Assert.cs:100:27:100:34 | Before access to property Length | | +| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:100:9:100:35 | After call to method WriteLine | | +| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:9:100:35 | Before call to method WriteLine | | +| Assert.cs:100:9:100:36 | After ...; | Assert.cs:102:9:102:26 | ...; | | | Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:27:100:34 | access to property Length | | -| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:9:100:35 | call to method WriteLine | | -| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:103:9:103:33 | ...; | | -| Assert.cs:102:9:102:26 | ...; | Assert.cs:102:13:102:13 | access to parameter b | | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:17:102:20 | null | true | -| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:24:102:25 | "" | false | -| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:9:102:25 | ... = ... | | -| Assert.cs:102:17:102:20 | null | Assert.cs:102:13:102:25 | ... ? ... : ... | | -| Assert.cs:102:24:102:25 | "" | Assert.cs:102:13:102:25 | ... ? ... : ... | | -| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:104:9:104:36 | ...; | | -| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:23:103:23 | access to local variable s | | +| Assert.cs:100:27:100:34 | After access to property Length | Assert.cs:100:9:100:35 | call to method WriteLine | | +| Assert.cs:100:27:100:34 | Before access to property Length | Assert.cs:100:27:100:27 | access to local variable s | | +| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:27:100:34 | After access to property Length | | +| Assert.cs:102:9:102:9 | access to local variable s | Assert.cs:102:13:102:25 | ... ? ... : ... | | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:9:102:25 | After ... = ... | | +| Assert.cs:102:9:102:25 | After ... = ... | Assert.cs:102:9:102:26 | After ...; | | +| Assert.cs:102:9:102:25 | Before ... = ... | Assert.cs:102:9:102:9 | access to local variable s | | +| Assert.cs:102:9:102:26 | ...; | Assert.cs:102:9:102:25 | Before ... = ... | | +| Assert.cs:102:9:102:26 | After ...; | Assert.cs:103:9:103:33 | ...; | | +| Assert.cs:102:13:102:13 | After access to parameter b [false] | Assert.cs:102:24:102:25 | "" | | +| Assert.cs:102:13:102:13 | After access to parameter b [true] | Assert.cs:102:17:102:20 | null | | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | After access to parameter b [false] | false | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:13:102:13 | After access to parameter b [true] | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:13 | access to parameter b | | +| Assert.cs:102:13:102:25 | After ... ? ... : ... | Assert.cs:102:9:102:25 | ... = ... | | +| Assert.cs:102:17:102:20 | null | Assert.cs:102:13:102:25 | After ... ? ... : ... | | +| Assert.cs:102:24:102:25 | "" | Assert.cs:102:13:102:25 | After ... ? ... : ... | | +| Assert.cs:103:9:103:32 | After call to method IsTrue | Assert.cs:103:9:103:33 | After ...; | | +| Assert.cs:103:9:103:32 | Before call to method IsTrue | Assert.cs:103:23:103:31 | Before ... != ... | | +| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:103:9:103:32 | call to method IsTrue | Assert.cs:103:9:103:32 | After call to method IsTrue | | +| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:9:103:32 | Before call to method IsTrue | | +| Assert.cs:103:9:103:33 | After ...; | Assert.cs:104:9:104:36 | ...; | | | Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:28:103:31 | null | | -| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | call to method IsTrue | | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:23:103:31 | After ... != ... | | +| Assert.cs:103:23:103:31 | After ... != ... | Assert.cs:103:9:103:32 | call to method IsTrue | | +| Assert.cs:103:23:103:31 | Before ... != ... | Assert.cs:103:23:103:23 | access to local variable s | | | Assert.cs:103:28:103:31 | null | Assert.cs:103:23:103:31 | ... != ... | | -| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:106:9:106:26 | ...; | | -| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:27:104:27 | access to local variable s | | +| Assert.cs:104:9:104:35 | After call to method WriteLine | Assert.cs:104:9:104:36 | After ...; | | +| Assert.cs:104:9:104:35 | Before call to method WriteLine | Assert.cs:104:27:104:34 | Before access to property Length | | +| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:104:9:104:35 | After call to method WriteLine | | +| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:9:104:35 | Before call to method WriteLine | | +| Assert.cs:104:9:104:36 | After ...; | Assert.cs:106:9:106:26 | ...; | | | Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:27:104:34 | access to property Length | | -| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:9:104:35 | call to method WriteLine | | -| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:107:9:107:34 | ...; | | -| Assert.cs:106:9:106:26 | ...; | Assert.cs:106:13:106:13 | access to parameter b | | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:17:106:20 | null | true | -| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:24:106:25 | "" | false | -| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:9:106:25 | ... = ... | | -| Assert.cs:106:17:106:20 | null | Assert.cs:106:13:106:25 | ... ? ... : ... | | -| Assert.cs:106:24:106:25 | "" | Assert.cs:106:13:106:25 | ... ? ... : ... | | -| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:108:9:108:36 | ...; | | -| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:24:107:24 | access to local variable s | | +| Assert.cs:104:27:104:34 | After access to property Length | Assert.cs:104:9:104:35 | call to method WriteLine | | +| Assert.cs:104:27:104:34 | Before access to property Length | Assert.cs:104:27:104:27 | access to local variable s | | +| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:27:104:34 | After access to property Length | | +| Assert.cs:106:9:106:9 | access to local variable s | Assert.cs:106:13:106:25 | ... ? ... : ... | | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:9:106:25 | After ... = ... | | +| Assert.cs:106:9:106:25 | After ... = ... | Assert.cs:106:9:106:26 | After ...; | | +| Assert.cs:106:9:106:25 | Before ... = ... | Assert.cs:106:9:106:9 | access to local variable s | | +| Assert.cs:106:9:106:26 | ...; | Assert.cs:106:9:106:25 | Before ... = ... | | +| Assert.cs:106:9:106:26 | After ...; | Assert.cs:107:9:107:34 | ...; | | +| Assert.cs:106:13:106:13 | After access to parameter b [false] | Assert.cs:106:24:106:25 | "" | | +| Assert.cs:106:13:106:13 | After access to parameter b [true] | Assert.cs:106:17:106:20 | null | | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | After access to parameter b [false] | false | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:13:106:13 | After access to parameter b [true] | true | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:13 | access to parameter b | | +| Assert.cs:106:13:106:25 | After ... ? ... : ... | Assert.cs:106:9:106:25 | ... = ... | | +| Assert.cs:106:17:106:20 | null | Assert.cs:106:13:106:25 | After ... ? ... : ... | | +| Assert.cs:106:24:106:25 | "" | Assert.cs:106:13:106:25 | After ... ? ... : ... | | +| Assert.cs:107:9:107:33 | After call to method IsFalse | Assert.cs:107:9:107:34 | After ...; | | +| Assert.cs:107:9:107:33 | Before call to method IsFalse | Assert.cs:107:24:107:32 | Before ... != ... | | +| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:107:9:107:33 | call to method IsFalse | Assert.cs:107:9:107:33 | After call to method IsFalse | | +| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:9:107:33 | Before call to method IsFalse | | +| Assert.cs:107:9:107:34 | After ...; | Assert.cs:108:9:108:36 | ...; | | | Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:29:107:32 | null | | -| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | call to method IsFalse | | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:24:107:32 | After ... != ... | | +| Assert.cs:107:24:107:32 | After ... != ... | Assert.cs:107:9:107:33 | call to method IsFalse | | +| Assert.cs:107:24:107:32 | Before ... != ... | Assert.cs:107:24:107:24 | access to local variable s | | | Assert.cs:107:29:107:32 | null | Assert.cs:107:24:107:32 | ... != ... | | -| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:110:9:110:26 | ...; | | -| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:27:108:27 | access to local variable s | | +| Assert.cs:108:9:108:35 | After call to method WriteLine | Assert.cs:108:9:108:36 | After ...; | | +| Assert.cs:108:9:108:35 | Before call to method WriteLine | Assert.cs:108:27:108:34 | Before access to property Length | | +| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:108:9:108:35 | After call to method WriteLine | | +| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:9:108:35 | Before call to method WriteLine | | +| Assert.cs:108:9:108:36 | After ...; | Assert.cs:110:9:110:26 | ...; | | | Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:27:108:34 | access to property Length | | -| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:9:108:35 | call to method WriteLine | | -| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:111:9:111:34 | ...; | | -| Assert.cs:110:9:110:26 | ...; | Assert.cs:110:13:110:13 | access to parameter b | | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:17:110:20 | null | true | -| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:24:110:25 | "" | false | -| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:9:110:25 | ... = ... | | -| Assert.cs:110:17:110:20 | null | Assert.cs:110:13:110:25 | ... ? ... : ... | | -| Assert.cs:110:24:110:25 | "" | Assert.cs:110:13:110:25 | ... ? ... : ... | | -| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:112:9:112:36 | ...; | | -| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:24:111:24 | access to local variable s | | +| Assert.cs:108:27:108:34 | After access to property Length | Assert.cs:108:9:108:35 | call to method WriteLine | | +| Assert.cs:108:27:108:34 | Before access to property Length | Assert.cs:108:27:108:27 | access to local variable s | | +| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:27:108:34 | After access to property Length | | +| Assert.cs:110:9:110:9 | access to local variable s | Assert.cs:110:13:110:25 | ... ? ... : ... | | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:9:110:25 | After ... = ... | | +| Assert.cs:110:9:110:25 | After ... = ... | Assert.cs:110:9:110:26 | After ...; | | +| Assert.cs:110:9:110:25 | Before ... = ... | Assert.cs:110:9:110:9 | access to local variable s | | +| Assert.cs:110:9:110:26 | ...; | Assert.cs:110:9:110:25 | Before ... = ... | | +| Assert.cs:110:9:110:26 | After ...; | Assert.cs:111:9:111:34 | ...; | | +| Assert.cs:110:13:110:13 | After access to parameter b [false] | Assert.cs:110:24:110:25 | "" | | +| Assert.cs:110:13:110:13 | After access to parameter b [true] | Assert.cs:110:17:110:20 | null | | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | After access to parameter b [false] | false | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:13:110:13 | After access to parameter b [true] | true | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:13 | access to parameter b | | +| Assert.cs:110:13:110:25 | After ... ? ... : ... | Assert.cs:110:9:110:25 | ... = ... | | +| Assert.cs:110:17:110:20 | null | Assert.cs:110:13:110:25 | After ... ? ... : ... | | +| Assert.cs:110:24:110:25 | "" | Assert.cs:110:13:110:25 | After ... ? ... : ... | | +| Assert.cs:111:9:111:33 | After call to method IsFalse | Assert.cs:111:9:111:34 | After ...; | | +| Assert.cs:111:9:111:33 | Before call to method IsFalse | Assert.cs:111:24:111:32 | Before ... == ... | | +| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:111:9:111:33 | call to method IsFalse | Assert.cs:111:9:111:33 | After call to method IsFalse | | +| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:9:111:33 | Before call to method IsFalse | | +| Assert.cs:111:9:111:34 | After ...; | Assert.cs:112:9:112:36 | ...; | | | Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:29:111:32 | null | | -| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | call to method IsFalse | | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:24:111:32 | After ... == ... | | +| Assert.cs:111:24:111:32 | After ... == ... | Assert.cs:111:9:111:33 | call to method IsFalse | | +| Assert.cs:111:24:111:32 | Before ... == ... | Assert.cs:111:24:111:24 | access to local variable s | | | Assert.cs:111:29:111:32 | null | Assert.cs:111:24:111:32 | ... == ... | | -| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:114:9:114:26 | ...; | | -| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:27:112:27 | access to local variable s | | +| Assert.cs:112:9:112:35 | After call to method WriteLine | Assert.cs:112:9:112:36 | After ...; | | +| Assert.cs:112:9:112:35 | Before call to method WriteLine | Assert.cs:112:27:112:34 | Before access to property Length | | +| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:112:9:112:35 | After call to method WriteLine | | +| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:9:112:35 | Before call to method WriteLine | | +| Assert.cs:112:9:112:36 | After ...; | Assert.cs:114:9:114:26 | ...; | | | Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:27:112:34 | access to property Length | | -| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:9:112:35 | call to method WriteLine | | -| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:115:9:115:38 | ...; | | -| Assert.cs:114:9:114:26 | ...; | Assert.cs:114:13:114:13 | access to parameter b | | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:17:114:20 | null | true | -| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:24:114:25 | "" | false | -| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:9:114:25 | ... = ... | | -| Assert.cs:114:17:114:20 | null | Assert.cs:114:13:114:25 | ... ? ... : ... | | -| Assert.cs:114:24:114:25 | "" | Assert.cs:114:13:114:25 | ... ? ... : ... | | -| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:116:9:116:36 | ...; | | -| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:23:115:23 | access to local variable s | | +| Assert.cs:112:27:112:34 | After access to property Length | Assert.cs:112:9:112:35 | call to method WriteLine | | +| Assert.cs:112:27:112:34 | Before access to property Length | Assert.cs:112:27:112:27 | access to local variable s | | +| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:27:112:34 | After access to property Length | | +| Assert.cs:114:9:114:9 | access to local variable s | Assert.cs:114:13:114:25 | ... ? ... : ... | | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:9:114:25 | After ... = ... | | +| Assert.cs:114:9:114:25 | After ... = ... | Assert.cs:114:9:114:26 | After ...; | | +| Assert.cs:114:9:114:25 | Before ... = ... | Assert.cs:114:9:114:9 | access to local variable s | | +| Assert.cs:114:9:114:26 | ...; | Assert.cs:114:9:114:25 | Before ... = ... | | +| Assert.cs:114:9:114:26 | After ...; | Assert.cs:115:9:115:38 | ...; | | +| Assert.cs:114:13:114:13 | After access to parameter b [false] | Assert.cs:114:24:114:25 | "" | | +| Assert.cs:114:13:114:13 | After access to parameter b [true] | Assert.cs:114:17:114:20 | null | | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | After access to parameter b [false] | false | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:13:114:13 | After access to parameter b [true] | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:13 | access to parameter b | | +| Assert.cs:114:13:114:25 | After ... ? ... : ... | Assert.cs:114:9:114:25 | ... = ... | | +| Assert.cs:114:17:114:20 | null | Assert.cs:114:13:114:25 | After ... ? ... : ... | | +| Assert.cs:114:24:114:25 | "" | Assert.cs:114:13:114:25 | After ... ? ... : ... | | +| Assert.cs:115:9:115:37 | After call to method IsTrue | Assert.cs:115:9:115:38 | After ...; | | +| Assert.cs:115:9:115:37 | Before call to method IsTrue | Assert.cs:115:23:115:36 | ... && ... | | +| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:115:9:115:37 | call to method IsTrue | Assert.cs:115:9:115:37 | After call to method IsTrue | | +| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:9:115:37 | Before call to method IsTrue | | +| Assert.cs:115:9:115:38 | After ...; | Assert.cs:116:9:116:36 | ...; | | | Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:28:115:31 | null | | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | ... && ... | false | -| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | true | -| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | After ... != ... [false] | false | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:31 | After ... != ... [true] | true | +| Assert.cs:115:23:115:31 | After ... != ... [false] | Assert.cs:115:23:115:36 | After ... && ... | | +| Assert.cs:115:23:115:31 | After ... != ... [true] | Assert.cs:115:36:115:36 | access to parameter b | | +| Assert.cs:115:23:115:31 | Before ... != ... | Assert.cs:115:23:115:23 | access to local variable s | | +| Assert.cs:115:23:115:36 | ... && ... | Assert.cs:115:23:115:31 | Before ... != ... | | +| Assert.cs:115:23:115:36 | After ... && ... | Assert.cs:115:9:115:37 | call to method IsTrue | | | Assert.cs:115:28:115:31 | null | Assert.cs:115:23:115:31 | ... != ... | | -| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | ... && ... | | -| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:118:9:118:26 | ...; | | -| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:27:116:27 | access to local variable s | | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | After ... && ... | | +| Assert.cs:116:9:116:35 | After call to method WriteLine | Assert.cs:116:9:116:36 | After ...; | | +| Assert.cs:116:9:116:35 | Before call to method WriteLine | Assert.cs:116:27:116:34 | Before access to property Length | | +| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:9:116:35 | After call to method WriteLine | | +| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:9:116:35 | Before call to method WriteLine | | +| Assert.cs:116:9:116:36 | After ...; | Assert.cs:118:9:118:26 | ...; | | | Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:34 | access to property Length | | -| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:9:116:35 | call to method WriteLine | | -| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:119:9:119:40 | ...; | | -| Assert.cs:118:9:118:26 | ...; | Assert.cs:118:13:118:13 | access to parameter b | | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:17:118:20 | null | true | -| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:24:118:25 | "" | false | -| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:9:118:25 | ... = ... | | -| Assert.cs:118:17:118:20 | null | Assert.cs:118:13:118:25 | ... ? ... : ... | | -| Assert.cs:118:24:118:25 | "" | Assert.cs:118:13:118:25 | ... ? ... : ... | | -| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:120:9:120:36 | ...; | | -| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:24:119:24 | access to local variable s | | +| Assert.cs:116:27:116:34 | After access to property Length | Assert.cs:116:9:116:35 | call to method WriteLine | | +| Assert.cs:116:27:116:34 | Before access to property Length | Assert.cs:116:27:116:27 | access to local variable s | | +| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:27:116:34 | After access to property Length | | +| Assert.cs:118:9:118:9 | access to local variable s | Assert.cs:118:13:118:25 | ... ? ... : ... | | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:9:118:25 | After ... = ... | | +| Assert.cs:118:9:118:25 | After ... = ... | Assert.cs:118:9:118:26 | After ...; | | +| Assert.cs:118:9:118:25 | Before ... = ... | Assert.cs:118:9:118:9 | access to local variable s | | +| Assert.cs:118:9:118:26 | ...; | Assert.cs:118:9:118:25 | Before ... = ... | | +| Assert.cs:118:9:118:26 | After ...; | Assert.cs:119:9:119:40 | ...; | | +| Assert.cs:118:13:118:13 | After access to parameter b [false] | Assert.cs:118:24:118:25 | "" | | +| Assert.cs:118:13:118:13 | After access to parameter b [true] | Assert.cs:118:17:118:20 | null | | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | After access to parameter b [false] | false | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:13:118:13 | After access to parameter b [true] | true | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:13 | access to parameter b | | +| Assert.cs:118:13:118:25 | After ... ? ... : ... | Assert.cs:118:9:118:25 | ... = ... | | +| Assert.cs:118:17:118:20 | null | Assert.cs:118:13:118:25 | After ... ? ... : ... | | +| Assert.cs:118:24:118:25 | "" | Assert.cs:118:13:118:25 | After ... ? ... : ... | | +| Assert.cs:119:9:119:39 | After call to method IsFalse | Assert.cs:119:9:119:40 | After ...; | | +| Assert.cs:119:9:119:39 | Before call to method IsFalse | Assert.cs:119:24:119:38 | ... \|\| ... | | +| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:119:9:119:39 | call to method IsFalse | Assert.cs:119:9:119:39 | After call to method IsFalse | | +| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:9:119:39 | Before call to method IsFalse | | +| Assert.cs:119:9:119:40 | After ...; | Assert.cs:120:9:120:36 | ...; | | | Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:29:119:32 | null | | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | ... \|\| ... | true | -| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | false | -| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | After ... == ... [false] | false | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:32 | After ... == ... [true] | true | +| Assert.cs:119:24:119:32 | After ... == ... [false] | Assert.cs:119:37:119:38 | !... | | +| Assert.cs:119:24:119:32 | After ... == ... [true] | Assert.cs:119:24:119:38 | After ... \|\| ... | | +| Assert.cs:119:24:119:32 | Before ... == ... | Assert.cs:119:24:119:24 | access to local variable s | | +| Assert.cs:119:24:119:38 | ... \|\| ... | Assert.cs:119:24:119:32 | Before ... == ... | | +| Assert.cs:119:24:119:38 | After ... \|\| ... | Assert.cs:119:9:119:39 | call to method IsFalse | | | Assert.cs:119:29:119:32 | null | Assert.cs:119:24:119:32 | ... == ... | | -| Assert.cs:119:37:119:38 | !... | Assert.cs:119:24:119:38 | ... \|\| ... | | -| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | !... | | -| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:122:9:122:26 | ...; | | -| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:27:120:27 | access to local variable s | | +| Assert.cs:119:37:119:38 | !... | Assert.cs:119:38:119:38 | access to parameter b | | +| Assert.cs:119:37:119:38 | After !... | Assert.cs:119:24:119:38 | After ... \|\| ... | | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | After !... | | +| Assert.cs:120:9:120:35 | After call to method WriteLine | Assert.cs:120:9:120:36 | After ...; | | +| Assert.cs:120:9:120:35 | Before call to method WriteLine | Assert.cs:120:27:120:34 | Before access to property Length | | +| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:9:120:35 | After call to method WriteLine | | +| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:9:120:35 | Before call to method WriteLine | | +| Assert.cs:120:9:120:36 | After ...; | Assert.cs:122:9:122:26 | ...; | | | Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:34 | access to property Length | | -| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:9:120:35 | call to method WriteLine | | -| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:123:9:123:38 | ...; | | -| Assert.cs:122:9:122:26 | ...; | Assert.cs:122:13:122:13 | access to parameter b | | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:17:122:20 | null | true | -| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:24:122:25 | "" | false | -| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:9:122:25 | ... = ... | | -| Assert.cs:122:17:122:20 | null | Assert.cs:122:13:122:25 | ... ? ... : ... | | -| Assert.cs:122:24:122:25 | "" | Assert.cs:122:13:122:25 | ... ? ... : ... | | -| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:124:9:124:36 | ...; | | -| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:23:123:23 | access to local variable s | | +| Assert.cs:120:27:120:34 | After access to property Length | Assert.cs:120:9:120:35 | call to method WriteLine | | +| Assert.cs:120:27:120:34 | Before access to property Length | Assert.cs:120:27:120:27 | access to local variable s | | +| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:27:120:34 | After access to property Length | | +| Assert.cs:122:9:122:9 | access to local variable s | Assert.cs:122:13:122:25 | ... ? ... : ... | | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:9:122:25 | After ... = ... | | +| Assert.cs:122:9:122:25 | After ... = ... | Assert.cs:122:9:122:26 | After ...; | | +| Assert.cs:122:9:122:25 | Before ... = ... | Assert.cs:122:9:122:9 | access to local variable s | | +| Assert.cs:122:9:122:26 | ...; | Assert.cs:122:9:122:25 | Before ... = ... | | +| Assert.cs:122:9:122:26 | After ...; | Assert.cs:123:9:123:38 | ...; | | +| Assert.cs:122:13:122:13 | After access to parameter b [false] | Assert.cs:122:24:122:25 | "" | | +| Assert.cs:122:13:122:13 | After access to parameter b [true] | Assert.cs:122:17:122:20 | null | | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | After access to parameter b [false] | false | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:13:122:13 | After access to parameter b [true] | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:13 | access to parameter b | | +| Assert.cs:122:13:122:25 | After ... ? ... : ... | Assert.cs:122:9:122:25 | ... = ... | | +| Assert.cs:122:17:122:20 | null | Assert.cs:122:13:122:25 | After ... ? ... : ... | | +| Assert.cs:122:24:122:25 | "" | Assert.cs:122:13:122:25 | After ... ? ... : ... | | +| Assert.cs:123:9:123:37 | After call to method IsTrue | Assert.cs:123:9:123:38 | After ...; | | +| Assert.cs:123:9:123:37 | Before call to method IsTrue | Assert.cs:123:23:123:36 | ... && ... | | +| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:123:9:123:37 | call to method IsTrue | Assert.cs:123:9:123:37 | After call to method IsTrue | | +| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:9:123:37 | Before call to method IsTrue | | +| Assert.cs:123:9:123:38 | After ...; | Assert.cs:124:9:124:36 | ...; | | | Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:28:123:31 | null | | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | ... && ... | false | -| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | true | -| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | After ... == ... [false] | false | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:31 | After ... == ... [true] | true | +| Assert.cs:123:23:123:31 | After ... == ... [false] | Assert.cs:123:23:123:36 | After ... && ... | | +| Assert.cs:123:23:123:31 | After ... == ... [true] | Assert.cs:123:36:123:36 | access to parameter b | | +| Assert.cs:123:23:123:31 | Before ... == ... | Assert.cs:123:23:123:23 | access to local variable s | | +| Assert.cs:123:23:123:36 | ... && ... | Assert.cs:123:23:123:31 | Before ... == ... | | +| Assert.cs:123:23:123:36 | After ... && ... | Assert.cs:123:9:123:37 | call to method IsTrue | | | Assert.cs:123:28:123:31 | null | Assert.cs:123:23:123:31 | ... == ... | | -| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | ... && ... | | -| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:126:9:126:26 | ...; | | -| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:27:124:27 | access to local variable s | | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | After ... && ... | | +| Assert.cs:124:9:124:35 | After call to method WriteLine | Assert.cs:124:9:124:36 | After ...; | | +| Assert.cs:124:9:124:35 | Before call to method WriteLine | Assert.cs:124:27:124:34 | Before access to property Length | | +| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:9:124:35 | After call to method WriteLine | | +| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:9:124:35 | Before call to method WriteLine | | +| Assert.cs:124:9:124:36 | After ...; | Assert.cs:126:9:126:26 | ...; | | | Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:34 | access to property Length | | -| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:9:124:35 | call to method WriteLine | | -| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:127:9:127:40 | ...; | | -| Assert.cs:126:9:126:26 | ...; | Assert.cs:126:13:126:13 | access to parameter b | | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:17:126:20 | null | true | -| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:24:126:25 | "" | false | -| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:9:126:25 | ... = ... | | -| Assert.cs:126:17:126:20 | null | Assert.cs:126:13:126:25 | ... ? ... : ... | | -| Assert.cs:126:24:126:25 | "" | Assert.cs:126:13:126:25 | ... ? ... : ... | | -| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | -| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:128:9:128:36 | ...; | | -| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:24:127:24 | access to local variable s | | +| Assert.cs:124:27:124:34 | After access to property Length | Assert.cs:124:9:124:35 | call to method WriteLine | | +| Assert.cs:124:27:124:34 | Before access to property Length | Assert.cs:124:27:124:27 | access to local variable s | | +| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:27:124:34 | After access to property Length | | +| Assert.cs:126:9:126:9 | access to local variable s | Assert.cs:126:13:126:25 | ... ? ... : ... | | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:9:126:25 | After ... = ... | | +| Assert.cs:126:9:126:25 | After ... = ... | Assert.cs:126:9:126:26 | After ...; | | +| Assert.cs:126:9:126:25 | Before ... = ... | Assert.cs:126:9:126:9 | access to local variable s | | +| Assert.cs:126:9:126:26 | ...; | Assert.cs:126:9:126:25 | Before ... = ... | | +| Assert.cs:126:9:126:26 | After ...; | Assert.cs:127:9:127:40 | ...; | | +| Assert.cs:126:13:126:13 | After access to parameter b [false] | Assert.cs:126:24:126:25 | "" | | +| Assert.cs:126:13:126:13 | After access to parameter b [true] | Assert.cs:126:17:126:20 | null | | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | After access to parameter b [false] | false | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:13:126:13 | After access to parameter b [true] | true | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:13 | access to parameter b | | +| Assert.cs:126:13:126:25 | After ... ? ... : ... | Assert.cs:126:9:126:25 | ... = ... | | +| Assert.cs:126:17:126:20 | null | Assert.cs:126:13:126:25 | After ... ? ... : ... | | +| Assert.cs:126:24:126:25 | "" | Assert.cs:126:13:126:25 | After ... ? ... : ... | | +| Assert.cs:127:9:127:39 | After call to method IsFalse | Assert.cs:127:9:127:40 | After ...; | | +| Assert.cs:127:9:127:39 | Before call to method IsFalse | Assert.cs:127:24:127:38 | ... \|\| ... | | +| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:84:10:84:12 | Exceptional Exit | exception | +| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:127:9:127:39 | After call to method IsFalse | | +| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:9:127:39 | Before call to method IsFalse | | +| Assert.cs:127:9:127:40 | After ...; | Assert.cs:128:9:128:36 | ...; | | | Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:29:127:32 | null | | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | ... \|\| ... | true | -| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | false | -| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | After ... != ... [false] | false | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:32 | After ... != ... [true] | true | +| Assert.cs:127:24:127:32 | After ... != ... [false] | Assert.cs:127:37:127:38 | !... | | +| Assert.cs:127:24:127:32 | After ... != ... [true] | Assert.cs:127:24:127:38 | After ... \|\| ... | | +| Assert.cs:127:24:127:32 | Before ... != ... | Assert.cs:127:24:127:24 | access to local variable s | | +| Assert.cs:127:24:127:38 | ... \|\| ... | Assert.cs:127:24:127:32 | Before ... != ... | | +| Assert.cs:127:24:127:38 | After ... \|\| ... | Assert.cs:127:9:127:39 | call to method IsFalse | | | Assert.cs:127:29:127:32 | null | Assert.cs:127:24:127:32 | ... != ... | | -| Assert.cs:127:37:127:38 | !... | Assert.cs:127:24:127:38 | ... \|\| ... | | -| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | !... | | -| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | exit M12 (normal) | | -| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:27:128:27 | access to local variable s | | +| Assert.cs:127:37:127:38 | !... | Assert.cs:127:38:127:38 | access to parameter b | | +| Assert.cs:127:37:127:38 | After !... | Assert.cs:127:24:127:38 | After ... \|\| ... | | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | After !... | | +| Assert.cs:128:9:128:35 | After call to method WriteLine | Assert.cs:128:9:128:36 | After ...; | | +| Assert.cs:128:9:128:35 | Before call to method WriteLine | Assert.cs:128:27:128:34 | Before access to property Length | | +| Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:9:128:35 | After call to method WriteLine | | +| Assert.cs:128:9:128:36 | ...; | Assert.cs:128:9:128:35 | Before call to method WriteLine | | +| Assert.cs:128:9:128:36 | After ...; | Assert.cs:85:5:129:5 | After {...} | | | Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:34 | access to property Length | | -| Assert.cs:128:27:128:34 | access to property Length | Assert.cs:128:9:128:35 | call to method WriteLine | | -| Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:135:5:136:5 | {...} | | -| Assert.cs:131:18:131:32 | exit AssertTrueFalse (normal) | Assert.cs:131:18:131:32 | exit AssertTrueFalse | | -| Assert.cs:135:5:136:5 | {...} | Assert.cs:131:18:131:32 | exit AssertTrueFalse (normal) | | -| Assert.cs:138:10:138:12 | enter M13 | Assert.cs:139:5:142:5 | {...} | | -| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 | | -| Assert.cs:138:10:138:12 | exit M13 (normal) | Assert.cs:138:10:138:12 | exit M13 | | +| Assert.cs:128:27:128:34 | After access to property Length | Assert.cs:128:9:128:35 | call to method WriteLine | | +| Assert.cs:128:27:128:34 | Before access to property Length | Assert.cs:128:27:128:27 | access to local variable s | | +| Assert.cs:128:27:128:34 | access to property Length | Assert.cs:128:27:128:34 | After access to property Length | | +| Assert.cs:131:18:131:32 | Entry | Assert.cs:135:5:136:5 | {...} | | +| Assert.cs:131:18:131:32 | Normal Exit | Assert.cs:131:18:131:32 | Exit | | +| Assert.cs:135:5:136:5 | {...} | Assert.cs:131:18:131:32 | Normal Exit | | +| Assert.cs:138:10:138:12 | Entry | Assert.cs:139:5:142:5 | {...} | | +| Assert.cs:138:10:138:12 | Exceptional Exit | Assert.cs:138:10:138:12 | Exit | | +| Assert.cs:138:10:138:12 | Normal Exit | Assert.cs:138:10:138:12 | Exit | | | Assert.cs:139:5:142:5 | {...} | Assert.cs:140:9:140:36 | ...; | | -| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception | -| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:141:9:141:15 | return ...; | | +| Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | Assert.cs:140:9:140:36 | After ...; | | +| Assert.cs:140:9:140:35 | Before call to method AssertTrueFalse | Assert.cs:140:9:140:35 | this access | | +| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:138:10:138:12 | Exceptional Exit | exception | +| Assert.cs:140:9:140:35 | call to method AssertTrueFalse | Assert.cs:140:9:140:35 | After call to method AssertTrueFalse | | | Assert.cs:140:9:140:35 | this access | Assert.cs:140:25:140:26 | access to parameter b1 | | -| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | this access | | +| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | Before call to method AssertTrueFalse | | +| Assert.cs:140:9:140:36 | After ...; | Assert.cs:141:9:141:15 | Before return ...; | | | Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | access to parameter b2 | | | Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:33:140:34 | access to parameter b3 | | | 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 | 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 | | +| Assert.cs:141:9:141:15 | Before return ...; | Assert.cs:141:9:141:15 | return ...; | | +| Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | Normal Exit | return | +| Assignments.cs:1:7:1:17 | After call to constructor Object | Assignments.cs:1:7:1:17 | {...} | | +| Assignments.cs:1:7:1:17 | After call to method | Assignments.cs:1:7:1:17 | Before call to constructor Object | | +| Assignments.cs:1:7:1:17 | Before call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | | +| Assignments.cs:1:7:1:17 | Before call to method | Assignments.cs:1:7:1:17 | this access | | +| Assignments.cs:1:7:1:17 | Entry | Assignments.cs:1:7:1:17 | Before call to method | | +| Assignments.cs:1:7:1:17 | Normal Exit | Assignments.cs:1:7:1:17 | Exit | | +| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | After call to constructor Object | | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | After call to method | | | 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 | | +| Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | Normal Exit | | +| Assignments.cs:3:10:3:10 | Entry | Assignments.cs:4:5:15:5 | {...} | | +| Assignments.cs:3:10:3:10 | Normal Exit | Assignments.cs:3:10:3:10 | Exit | | +| Assignments.cs:4:5:15:5 | After {...} | Assignments.cs:3:10:3:10 | Normal Exit | | | Assignments.cs:4:5:15:5 | {...} | Assignments.cs:5:9:5:18 | ... ...; | | -| Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:17:5:17 | 0 | | -| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:6:9:6:15 | ...; | | +| Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:13:5:17 | Before Int32 x = ... | | +| Assignments.cs:5:9:5:18 | After ... ...; | Assignments.cs:6:9:6:15 | ...; | | +| Assignments.cs:5:13:5:13 | access to local variable x | Assignments.cs:5:17:5:17 | 0 | | +| Assignments.cs:5:13:5:17 | After Int32 x = ... | Assignments.cs:5:9:5:18 | After ... ...; | | +| Assignments.cs:5:13:5:17 | Before Int32 x = ... | Assignments.cs:5:13:5:13 | access to local variable x | | +| Assignments.cs:5:13:5:17 | Int32 x = ... | Assignments.cs:5:13:5:17 | After Int32 x = ... | | | Assignments.cs:5:17:5:17 | 0 | Assignments.cs:5:13:5:17 | Int32 x = ... | | | Assignments.cs:6:9:6:9 | access to local variable x | Assignments.cs:6:14:6:14 | 1 | | -| Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:8:9:8:22 | ... ...; | | -| Assignments.cs:6:9:6:15 | ...; | Assignments.cs:6:9:6:9 | access to local variable x | | +| Assignments.cs:6:9:6:14 | ... += ... | Assignments.cs:6:9:6:14 | After ... += ... | | +| Assignments.cs:6:9:6:14 | After ... += ... | Assignments.cs:6:9:6:15 | After ...; | | +| Assignments.cs:6:9:6:14 | Before ... += ... | Assignments.cs:6:9:6:9 | access to local variable x | | +| Assignments.cs:6:9:6:15 | ...; | Assignments.cs:6:9:6:14 | Before ... += ... | | +| Assignments.cs:6:9:6:15 | After ...; | Assignments.cs:8:9:8:22 | ... ...; | | | Assignments.cs:6:14:6:14 | 1 | Assignments.cs:6:9:6:14 | ... += ... | | -| Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:8:21:8:21 | 0 | | -| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:9:9:9:15 | ...; | | +| Assignments.cs:8:9:8:22 | ... ...; | Assignments.cs:8:17:8:21 | Before dynamic d = ... | | +| Assignments.cs:8:9:8:22 | After ... ...; | Assignments.cs:9:9:9:15 | ...; | | +| Assignments.cs:8:17:8:17 | access to local variable d | Assignments.cs:8:21:8:21 | Before (...) ... | | +| Assignments.cs:8:17:8:21 | After dynamic d = ... | Assignments.cs:8:9:8:22 | After ... ...; | | +| Assignments.cs:8:17:8:21 | Before dynamic d = ... | Assignments.cs:8:17:8:17 | access to local variable d | | +| Assignments.cs:8:17:8:21 | dynamic d = ... | Assignments.cs:8:17:8:21 | After dynamic d = ... | | | Assignments.cs:8:21:8:21 | 0 | Assignments.cs:8:21:8:21 | (...) ... | | -| Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:8:17:8:21 | dynamic d = ... | | +| Assignments.cs:8:21:8:21 | (...) ... | Assignments.cs:8:21:8:21 | After (...) ... | | +| Assignments.cs:8:21:8:21 | After (...) ... | Assignments.cs:8:17:8:21 | dynamic d = ... | | +| Assignments.cs:8:21:8:21 | Before (...) ... | Assignments.cs:8:21:8:21 | 0 | | | Assignments.cs:9:9:9:9 | access to local variable d | Assignments.cs:9:14:9:14 | 2 | | -| Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:11:9:11:34 | ... ...; | | -| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:9:9:9:9 | access to local variable d | | +| Assignments.cs:9:9:9:14 | ... -= ... | Assignments.cs:9:9:9:14 | After ... -= ... | | +| Assignments.cs:9:9:9:14 | After ... -= ... | Assignments.cs:9:9:9:15 | After ...; | | +| Assignments.cs:9:9:9:14 | Before ... -= ... | Assignments.cs:9:9:9:9 | access to local variable d | | +| Assignments.cs:9:9:9:15 | ...; | Assignments.cs:9:9:9:14 | Before ... -= ... | | +| Assignments.cs:9:9:9:15 | After ...; | Assignments.cs:11:9:11:34 | ... ...; | | | Assignments.cs:9:14:9:14 | 2 | Assignments.cs:9:9:9:14 | ... -= ... | | -| Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:11:17:11:33 | object creation of type Assignments | | -| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:12:9:12:18 | ...; | | -| Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:13:11:33 | Assignments a = ... | | +| Assignments.cs:11:9:11:34 | ... ...; | Assignments.cs:11:13:11:33 | Before Assignments a = ... | | +| Assignments.cs:11:9:11:34 | After ... ...; | Assignments.cs:12:9:12:18 | ...; | | +| Assignments.cs:11:13:11:13 | access to local variable a | Assignments.cs:11:17:11:33 | Before object creation of type Assignments | | +| Assignments.cs:11:13:11:33 | After Assignments a = ... | Assignments.cs:11:9:11:34 | After ... ...; | | +| Assignments.cs:11:13:11:33 | Assignments a = ... | Assignments.cs:11:13:11:33 | After Assignments a = ... | | +| Assignments.cs:11:13:11:33 | Before Assignments a = ... | Assignments.cs:11:13:11:13 | access to local variable a | | +| Assignments.cs:11:17:11:33 | After object creation of type Assignments | Assignments.cs:11:13:11:33 | Assignments a = ... | | +| Assignments.cs:11:17:11:33 | Before object creation of type Assignments | Assignments.cs:11:17:11:33 | object creation of type Assignments | | +| Assignments.cs:11:17:11:33 | object creation of type Assignments | Assignments.cs:11:17:11:33 | After object creation of type Assignments | | | Assignments.cs:12:9:12:9 | access to local variable a | Assignments.cs:12:14:12:17 | this access | | -| Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:14:9:14:36 | ...; | | -| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:12:9:12:9 | access to local variable a | | +| Assignments.cs:12:9:12:17 | ... += ... | Assignments.cs:12:9:12:17 | After ... += ... | | +| Assignments.cs:12:9:12:17 | After ... += ... | Assignments.cs:12:9:12:18 | After ...; | | +| Assignments.cs:12:9:12:17 | Before ... += ... | Assignments.cs:12:9:12:9 | access to local variable a | | +| Assignments.cs:12:9:12:18 | ...; | Assignments.cs:12:9:12:17 | Before ... += ... | | +| Assignments.cs:12:9:12:18 | After ...; | Assignments.cs:14:9:14:36 | ...; | | | Assignments.cs:12:14:12:17 | this access | Assignments.cs:12:9:12:17 | ... += ... | | -| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:9:14:35 | ... += ... | | -| Assignments.cs:14:9:14:13 | this access | Assignments.cs:14:18:14:35 | (...) => ... | | -| Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:3:10:3:10 | exit M (normal) | | -| Assignments.cs:14:9:14:36 | ...; | Assignments.cs:14:9:14:13 | this access | | -| Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:9:14:13 | access to event Event | | -| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:33:14:35 | {...} | | -| Assignments.cs:14:18:14:35 | exit (...) => ... (normal) | Assignments.cs:14:18:14:35 | exit (...) => ... | | -| Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:18:14:35 | exit (...) => ... (normal) | | -| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:18:5:20:5 | {...} | | -| Assignments.cs:17:40:17:40 | exit + (normal) | Assignments.cs:17:40:17:40 | exit + | | -| Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:16:19:16 | access to parameter x | | -| Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | return | +| Assignments.cs:14:9:14:13 | After access to event Event | Assignments.cs:14:18:14:35 | (...) => ... | | +| Assignments.cs:14:9:14:13 | Before access to event Event | Assignments.cs:14:9:14:13 | this access | | +| Assignments.cs:14:9:14:13 | access to event Event | Assignments.cs:14:9:14:13 | After access to event Event | | +| Assignments.cs:14:9:14:13 | this access | Assignments.cs:14:9:14:13 | access to event Event | | +| Assignments.cs:14:9:14:35 | ... += ... | Assignments.cs:14:9:14:35 | After ... += ... | | +| Assignments.cs:14:9:14:35 | After ... += ... | Assignments.cs:14:9:14:36 | After ...; | | +| Assignments.cs:14:9:14:35 | Before ... += ... | Assignments.cs:14:9:14:13 | Before access to event Event | | +| Assignments.cs:14:9:14:36 | ...; | Assignments.cs:14:9:14:35 | Before ... += ... | | +| Assignments.cs:14:9:14:36 | After ...; | Assignments.cs:4:5:15:5 | After {...} | | +| Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:9:14:35 | ... += ... | | +| Assignments.cs:14:18:14:35 | Entry | Assignments.cs:14:33:14:35 | {...} | | +| Assignments.cs:14:18:14:35 | Normal Exit | Assignments.cs:14:18:14:35 | Exit | | +| Assignments.cs:14:33:14:35 | {...} | Assignments.cs:14:18:14:35 | Normal Exit | | +| Assignments.cs:17:40:17:40 | Entry | Assignments.cs:18:5:20:5 | {...} | | +| Assignments.cs:17:40:17:40 | Normal Exit | Assignments.cs:17:40:17:40 | Exit | | +| Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:9:19:17 | Before return ...; | | +| Assignments.cs:19:9:19:17 | Before return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | +| Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | Normal Exit | return | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | | -| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:28:5:30:5 | {...} | | -| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | exit SetParamSingle | | +| Assignments.cs:27:10:27:23 | Entry | Assignments.cs:28:5:30:5 | {...} | | +| Assignments.cs:27:10:27:23 | Normal Exit | Assignments.cs:27:10:27:23 | Exit | | +| Assignments.cs:28:5:30:5 | After {...} | Assignments.cs:27:10:27:23 | Normal Exit | | | Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:15 | ...; | | -| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | | -| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:13:29:14 | 42 | | +| Assignments.cs:29:9:29:9 | access to parameter x | Assignments.cs:29:13:29:14 | 42 | | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:9:29:14 | After ... = ... | | +| Assignments.cs:29:9:29:14 | After ... = ... | Assignments.cs:29:9:29:15 | After ...; | | +| Assignments.cs:29:9:29:14 | Before ... = ... | Assignments.cs:29:9:29:9 | access to parameter x | | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:14 | Before ... = ... | | +| Assignments.cs:29:9:29:15 | After ...; | Assignments.cs:28:5:30:5 | After {...} | | | Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:14 | ... = ... | | -| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:33:5:36:5 | {...} | | -| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | exit SetParamMulti | | +| Assignments.cs:32:10:32:22 | Entry | Assignments.cs:33:5:36:5 | {...} | | +| Assignments.cs:32:10:32:22 | Normal Exit | Assignments.cs:32:10:32:22 | Exit | | +| Assignments.cs:33:5:36:5 | After {...} | Assignments.cs:32:10:32:22 | Normal Exit | | | Assignments.cs:33:5:36:5 | {...} | Assignments.cs:34:9:34:15 | ...; | | -| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:35:9:35:20 | ...; | | -| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:13:34:14 | 42 | | +| Assignments.cs:34:9:34:9 | access to parameter x | Assignments.cs:34:13:34:14 | 42 | | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:9:34:14 | After ... = ... | | +| Assignments.cs:34:9:34:14 | After ... = ... | Assignments.cs:34:9:34:15 | After ...; | | +| Assignments.cs:34:9:34:14 | Before ... = ... | Assignments.cs:34:9:34:9 | access to parameter x | | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:14 | Before ... = ... | | +| Assignments.cs:34:9:34:15 | After ...; | Assignments.cs:35:9:35:20 | ...; | | | Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:14 | ... = ... | | -| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | | -| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:13:35:19 | "Hello" | | +| Assignments.cs:35:9:35:9 | access to parameter y | Assignments.cs:35:13:35:19 | "Hello" | | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:9:35:19 | After ... = ... | | +| Assignments.cs:35:9:35:19 | After ... = ... | Assignments.cs:35:9:35:20 | After ...; | | +| Assignments.cs:35:9:35:19 | Before ... = ... | Assignments.cs:35:9:35:9 | access to parameter y | | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:19 | Before ... = ... | | +| Assignments.cs:35:9:35:20 | After ...; | Assignments.cs:33:5:36:5 | After {...} | | | Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:19 | ... = ... | | -| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:39:5:45:5 | {...} | | -| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | exit M2 | | +| Assignments.cs:38:10:38:11 | Entry | Assignments.cs:39:5:45:5 | {...} | | +| Assignments.cs:38:10:38:11 | Normal Exit | Assignments.cs:38:10:38:11 | Exit | | +| Assignments.cs:39:5:45:5 | After {...} | Assignments.cs:38:10:38:11 | Normal Exit | | | Assignments.cs:39:5:45:5 | {...} | Assignments.cs:40:9:40:15 | ... ...; | | | Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | | -| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:41:9:41:31 | ...; | | -| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | | -| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | | -| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:43:9:43:56 | ...; | | -| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | | -| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | | -| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | | +| Assignments.cs:40:9:40:15 | After ... ...; | Assignments.cs:41:9:41:31 | ...; | | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:9:40:15 | After ... ...; | | +| Assignments.cs:41:9:41:30 | After call to method SetParamSingle | Assignments.cs:41:9:41:31 | After ...; | | +| Assignments.cs:41:9:41:30 | Before call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | After call to method SetParamSingle | | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:28:41:29 | access to local variable x1 | | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | Before call to method SetParamSingle | | +| Assignments.cs:41:9:41:31 | After ...; | Assignments.cs:42:9:42:37 | ...; | | +| Assignments.cs:41:28:41:29 | access to local variable x1 | Assignments.cs:41:9:41:30 | call to method SetParamSingle | | +| Assignments.cs:42:9:42:36 | After call to method SetParamSingle | Assignments.cs:42:9:42:37 | After ...; | | +| Assignments.cs:42:9:42:36 | Before call to method SetParamSingle | Assignments.cs:42:9:42:36 | this access | | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | After call to method SetParamSingle | | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | Before access to field IntField | | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | Before call to method SetParamSingle | | +| Assignments.cs:42:9:42:37 | After ...; | Assignments.cs:43:9:43:56 | ...; | | +| Assignments.cs:42:28:42:35 | After access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | | +| Assignments.cs:42:28:42:35 | Before access to field IntField | Assignments.cs:42:28:42:35 | this access | | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | After access to field IntField | | | Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | access to field IntField | | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:44:9:44:59 | ...; | | -| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | | -| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | | -| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | | -| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | | +| Assignments.cs:43:9:43:55 | After call to method SetParamMulti | Assignments.cs:43:9:43:56 | After ...; | | +| Assignments.cs:43:9:43:55 | Before call to method SetParamMulti | Assignments.cs:43:9:43:55 | this access | | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | After call to method SetParamMulti | | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:31:43:31 | Int32 y | | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | Before call to method SetParamMulti | | +| Assignments.cs:43:9:43:56 | After ...; | Assignments.cs:44:9:44:59 | ...; | | +| Assignments.cs:43:31:43:31 | Int32 y | Assignments.cs:43:34:43:37 | null | | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | Before access to field StringField | | +| Assignments.cs:43:44:43:54 | After access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | | +| Assignments.cs:43:44:43:54 | Before access to field StringField | Assignments.cs:43:44:43:54 | this access | | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | After access to field StringField | | | Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | access to field StringField | | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | exit M2 (normal) | | -| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | | -| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | | -| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:37:44:40 | null | | +| Assignments.cs:44:9:44:58 | After call to method SetParamMulti | Assignments.cs:44:9:44:59 | After ...; | | +| Assignments.cs:44:9:44:58 | Before call to method SetParamMulti | Assignments.cs:44:9:44:58 | this access | | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:9:44:58 | After call to method SetParamMulti | | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | Before access to field IntField | | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | Before call to method SetParamMulti | | +| Assignments.cs:44:9:44:59 | After ...; | Assignments.cs:39:5:45:5 | After {...} | | +| Assignments.cs:44:27:44:34 | After access to field IntField | Assignments.cs:44:37:44:40 | null | | +| Assignments.cs:44:27:44:34 | Before access to field IntField | Assignments.cs:44:27:44:34 | this access | | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | After access to field IntField | | | Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | access to field IntField | | -| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | | -| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | Before access to field StringField | | +| Assignments.cs:44:47:44:57 | After access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | +| Assignments.cs:44:47:44:57 | Before access to field StringField | Assignments.cs:44:47:44:57 | this access | | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | After access to field StringField | | | Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | access to field StringField | | -| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | -| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | -| BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | exit BreakInTry | | +| BreakInTry.cs:1:7:1:16 | After call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | +| BreakInTry.cs:1:7:1:16 | After call to method | BreakInTry.cs:1:7:1:16 | Before call to constructor Object | | +| BreakInTry.cs:1:7:1:16 | Before call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | | +| BreakInTry.cs:1:7:1:16 | Before call to method | BreakInTry.cs:1:7:1:16 | this access | | +| BreakInTry.cs:1:7:1:16 | Entry | BreakInTry.cs:1:7:1:16 | Before call to method | | +| BreakInTry.cs:1:7:1:16 | Normal Exit | BreakInTry.cs:1:7:1:16 | Exit | | +| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | After call to constructor Object | | +| BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | After call to method | | | 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 | | +| BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | Normal Exit | | +| BreakInTry.cs:3:10:3:11 | Entry | BreakInTry.cs:4:5:18:5 | {...} | | +| BreakInTry.cs:3:10:3:11 | Normal Exit | BreakInTry.cs:3:10:3:11 | Exit | | +| BreakInTry.cs:4:5:18:5 | After {...} | BreakInTry.cs:3:10:3:11 | Normal Exit | | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:5:9:17:9 | try {...} ... | | +| BreakInTry.cs:5:9:17:9 | After try {...} ... | BreakInTry.cs:4:5:18:5 | After {...} | | | BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:6:9:12:9 | {...} | | -| BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:7:33:7:36 | access to parameter args | | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:26:7:28 | String arg | non-empty | -| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:14:9:17:9 | {...} | empty | +| BreakInTry.cs:6:9:12:9 | After {...} | BreakInTry.cs:14:9:17:9 | {...} | | +| BreakInTry.cs:6:9:12:9 | {...} | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | | +| BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | BreakInTry.cs:6:9:12:9 | After {...} | | +| BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:7:26:7:28 | String arg | | +| BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:33:7:36 | access to parameter args | | | BreakInTry.cs:7:26:7:28 | String arg | BreakInTry.cs:8:13:11:13 | {...} | | -| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | BreakInTry.cs:7:26:7:28 | String arg | | +| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:33:7:36 | After access to parameter args [empty] | empty | +| BreakInTry.cs:7:33:7:36 | access to parameter args | BreakInTry.cs:7:33:7:36 | After access to parameter args [non-empty] | non-empty | +| BreakInTry.cs:8:13:11:13 | After {...} | BreakInTry.cs:7:13:11:13 | [LoopHeader] foreach (... ... in ...) ... | | | BreakInTry.cs:8:13:11:13 | {...} | BreakInTry.cs:9:17:10:26 | if (...) ... | | -| BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:9:21:9:23 | access to local variable arg | | +| BreakInTry.cs:9:17:10:26 | After if (...) ... | BreakInTry.cs:8:13:11:13 | After {...} | | +| BreakInTry.cs:9:17:10:26 | if (...) ... | BreakInTry.cs:9:21:9:31 | Before ... == ... | | | BreakInTry.cs:9:21:9:23 | access to local variable arg | BreakInTry.cs:9:28:9:31 | null | | -| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:10:21:10:26 | break; | true | +| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | After ... == ... [false] | false | +| BreakInTry.cs:9:21:9:31 | ... == ... | BreakInTry.cs:9:21:9:31 | After ... == ... [true] | true | +| BreakInTry.cs:9:21:9:31 | After ... == ... [false] | BreakInTry.cs:9:17:10:26 | After if (...) ... | | +| BreakInTry.cs:9:21:9:31 | After ... == ... [true] | BreakInTry.cs:10:21:10:26 | Before break; | | +| BreakInTry.cs:9:21:9:31 | Before ... == ... | BreakInTry.cs:9:21:9:23 | access to local variable arg | | | BreakInTry.cs:9:28:9:31 | null | BreakInTry.cs:9:21:9:31 | ... == ... | | -| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:14:9:17:9 | {...} | break | +| BreakInTry.cs:10:21:10:26 | Before break; | BreakInTry.cs:10:21:10:26 | break; | | +| BreakInTry.cs:10:21:10:26 | break; | BreakInTry.cs:7:13:11:13 | After foreach (... ... in ...) ... | break | +| BreakInTry.cs:14:9:17:9 | After {...} | BreakInTry.cs:5:9:17:9 | After try {...} ... | | | BreakInTry.cs:14:9:17:9 | {...} | BreakInTry.cs:15:13:16:17 | if (...) ... | | -| BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:15:17:15:20 | access to parameter args | | +| BreakInTry.cs:15:13:16:17 | After if (...) ... | BreakInTry.cs:14:9:17:9 | After {...} | | +| BreakInTry.cs:15:13:16:17 | if (...) ... | BreakInTry.cs:15:17:15:28 | Before ... == ... | | | BreakInTry.cs:15:17:15:20 | access to parameter args | BreakInTry.cs:15:25:15:28 | null | | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | false | -| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:16:17:16:17 | ; | true | +| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | After ... == ... [false] | false | +| BreakInTry.cs:15:17:15:28 | ... == ... | BreakInTry.cs:15:17:15:28 | After ... == ... [true] | true | +| BreakInTry.cs:15:17:15:28 | After ... == ... [false] | BreakInTry.cs:15:13:16:17 | After if (...) ... | | +| BreakInTry.cs:15:17:15:28 | After ... == ... [true] | BreakInTry.cs:16:17:16:17 | ; | | +| BreakInTry.cs:15:17:15:28 | Before ... == ... | BreakInTry.cs:15:17:15:20 | access to parameter args | | | BreakInTry.cs:15:25:15:28 | null | BreakInTry.cs:15:17:15:28 | ... == ... | | -| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:21:5:36:5 | {...} | | -| BreakInTry.cs:20:10:20:11 | exit M2 (normal) | BreakInTry.cs:20:10:20:11 | exit M2 | | -| BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:22:29:22:32 | access to parameter args | | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:22:22:24 | String arg | non-empty | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:35:7:35:7 | ; | empty | +| BreakInTry.cs:16:17:16:17 | ; | BreakInTry.cs:15:13:16:17 | After if (...) ... | | +| BreakInTry.cs:20:10:20:11 | Entry | BreakInTry.cs:21:5:36:5 | {...} | | +| BreakInTry.cs:20:10:20:11 | Normal Exit | BreakInTry.cs:20:10:20:11 | Exit | | +| BreakInTry.cs:21:5:36:5 | After {...} | BreakInTry.cs:20:10:20:11 | Normal Exit | | +| BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | | +| BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | BreakInTry.cs:35:7:35:7 | ; | | +| BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:22:22:22:24 | String arg | | +| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | access to parameter args | | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:23:9:34:9 | {...} | | -| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | BreakInTry.cs:22:22:22:24 | String arg | | +| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:29:22:32 | After access to parameter args [empty] | empty | +| BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:22:29:22:32 | After access to parameter args [non-empty] | non-empty | +| BreakInTry.cs:23:9:34:9 | After {...} | BreakInTry.cs:22:9:34:9 | [LoopHeader] foreach (... ... in ...) ... | | | BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:24:13:33:13 | try {...} ... | | +| BreakInTry.cs:24:13:33:13 | After try {...} ... | BreakInTry.cs:23:9:34:9 | After {...} | | | BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:25:13:28:13 | {...} | | +| BreakInTry.cs:25:13:28:13 | After {...} | BreakInTry.cs:30:13:33:13 | {...} | | | BreakInTry.cs:25:13:28:13 | {...} | BreakInTry.cs:26:17:27:26 | if (...) ... | | -| BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:26:21:26:23 | access to local variable arg | | +| BreakInTry.cs:26:17:27:26 | After if (...) ... | BreakInTry.cs:25:13:28:13 | After {...} | | +| BreakInTry.cs:26:17:27:26 | if (...) ... | BreakInTry.cs:26:21:26:31 | Before ... == ... | | | BreakInTry.cs:26:21:26:23 | access to local variable arg | BreakInTry.cs:26:28:26:31 | null | | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:27:21:27:26 | break; | true | -| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:30:13:33:13 | {...} | false | +| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | After ... == ... [false] | false | +| BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:21:26:31 | After ... == ... [true] | true | +| BreakInTry.cs:26:21:26:31 | After ... == ... [false] | BreakInTry.cs:26:17:27:26 | After if (...) ... | | +| BreakInTry.cs:26:21:26:31 | After ... == ... [true] | BreakInTry.cs:27:21:27:26 | Before break; | | +| BreakInTry.cs:26:21:26:31 | Before ... == ... | BreakInTry.cs:26:21:26:23 | access to local variable arg | | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:26:21:26:31 | ... == ... | | +| BreakInTry.cs:27:21:27:26 | Before break; | BreakInTry.cs:27:21:27:26 | break; | | | BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:30:13:33:13 | {...} | break | +| BreakInTry.cs:30:13:33:13 | After {...} | BreakInTry.cs:22:9:34:9 | After foreach (... ... in ...) ... | break | +| BreakInTry.cs:30:13:33:13 | After {...} | BreakInTry.cs:24:13:33:13 | After try {...} ... | | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:17:32:21 | if (...) ... | | -| BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:31:21:31:24 | access to parameter args | | +| BreakInTry.cs:31:17:32:21 | After if (...) ... | BreakInTry.cs:30:13:33:13 | After {...} | | +| BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:31:21:31:32 | Before ... == ... | | | BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:29:31:32 | null | | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:32:21:32:21 | ; | true | -| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:35:7:35:7 | ; | false | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | After ... == ... [false] | false | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:21:31:32 | After ... == ... [true] | true | +| BreakInTry.cs:31:21:31:32 | After ... == ... [false] | BreakInTry.cs:31:17:32:21 | After if (...) ... | | +| BreakInTry.cs:31:21:31:32 | After ... == ... [true] | BreakInTry.cs:32:21:32:21 | ; | | +| BreakInTry.cs:31:21:31:32 | Before ... == ... | BreakInTry.cs:31:21:31:24 | access to parameter args | | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:31:21:31:32 | ... == ... | | -| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | | -| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:35:7:35:7 | ; | break | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | exit M2 (normal) | | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:39:5:54:5 | {...} | | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 | | +| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:31:17:32:21 | After if (...) ... | | +| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:21:5:36:5 | After {...} | | +| BreakInTry.cs:38:10:38:11 | Entry | BreakInTry.cs:39:5:54:5 | {...} | | +| BreakInTry.cs:38:10:38:11 | Normal Exit | BreakInTry.cs:38:10:38:11 | Exit | | +| BreakInTry.cs:39:5:54:5 | After {...} | BreakInTry.cs:38:10:38:11 | Normal Exit | | | BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:40:9:52:9 | try {...} ... | | +| BreakInTry.cs:40:9:52:9 | After try {...} ... | BreakInTry.cs:53:7:53:7 | ; | | | BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:41:9:44:9 | {...} | | +| BreakInTry.cs:41:9:44:9 | After {...} | BreakInTry.cs:46:9:52:9 | {...} | | | BreakInTry.cs:41:9:44:9 | {...} | BreakInTry.cs:42:13:43:23 | if (...) ... | | -| BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:42:17:42:20 | access to parameter args | | +| BreakInTry.cs:42:13:43:23 | After if (...) ... | BreakInTry.cs:41:9:44:9 | After {...} | | +| BreakInTry.cs:42:13:43:23 | if (...) ... | BreakInTry.cs:42:17:42:28 | Before ... == ... | | | BreakInTry.cs:42:17:42:20 | access to parameter args | BreakInTry.cs:42:25:42:28 | null | | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:43:17:43:23 | return ...; | true | -| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:46:9:52:9 | {...} | false | +| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | After ... == ... [false] | false | +| BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:17:42:28 | After ... == ... [true] | true | +| BreakInTry.cs:42:17:42:28 | After ... == ... [false] | BreakInTry.cs:42:13:43:23 | After if (...) ... | | +| BreakInTry.cs:42:17:42:28 | After ... == ... [true] | BreakInTry.cs:43:17:43:23 | Before return ...; | | +| BreakInTry.cs:42:17:42:28 | Before ... == ... | BreakInTry.cs:42:17:42:20 | access to parameter args | | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:17:42:28 | ... == ... | | +| BreakInTry.cs:43:17:43:23 | Before return ...; | BreakInTry.cs:43:17:43:23 | return ...; | | | BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:46:9:52:9 | {...} | return | -| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | access to parameter args | | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | return | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | non-empty | -| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:53:7:53:7 | ; | empty | +| BreakInTry.cs:46:9:52:9 | After {...} | BreakInTry.cs:38:10:38:11 | Normal Exit | return | +| BreakInTry.cs:46:9:52:9 | After {...} | BreakInTry.cs:40:9:52:9 | After try {...} ... | | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | +| BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | BreakInTry.cs:46:9:52:9 | After {...} | | +| BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | access to parameter args | | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:48:13:51:13 | {...} | | -| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | BreakInTry.cs:47:26:47:28 | String arg | | +| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:33:47:36 | After access to parameter args [empty] | empty | +| BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:33:47:36 | After access to parameter args [non-empty] | non-empty | +| BreakInTry.cs:48:13:51:13 | After {...} | BreakInTry.cs:47:13:51:13 | [LoopHeader] foreach (... ... in ...) ... | | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:49:17:50:26 | if (...) ... | | -| BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:49:21:49:23 | access to local variable arg | | +| BreakInTry.cs:49:17:50:26 | After if (...) ... | BreakInTry.cs:48:13:51:13 | After {...} | | +| BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:49:21:49:31 | Before ... == ... | | | BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:28:49:31 | null | | -| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:50:21:50:26 | break; | true | +| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | After ... == ... [false] | false | +| BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:21:49:31 | After ... == ... [true] | true | +| BreakInTry.cs:49:21:49:31 | After ... == ... [false] | BreakInTry.cs:49:17:50:26 | After if (...) ... | | +| BreakInTry.cs:49:21:49:31 | After ... == ... [true] | BreakInTry.cs:50:21:50:26 | Before break; | | +| BreakInTry.cs:49:21:49:31 | Before ... == ... | BreakInTry.cs:49:21:49:23 | access to local variable arg | | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:49:21:49:31 | ... == ... | | -| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | return | -| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:53:7:53:7 | ; | break | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:57:5:71:5 | {...} | | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 | | +| BreakInTry.cs:50:21:50:26 | Before break; | BreakInTry.cs:50:21:50:26 | break; | | +| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:47:13:51:13 | After foreach (... ... in ...) ... | break | +| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:39:5:54:5 | After {...} | | +| BreakInTry.cs:56:10:56:11 | Entry | BreakInTry.cs:57:5:71:5 | {...} | | +| BreakInTry.cs:56:10:56:11 | Normal Exit | BreakInTry.cs:56:10:56:11 | Exit | | +| BreakInTry.cs:57:5:71:5 | After {...} | BreakInTry.cs:56:10:56:11 | Normal Exit | | | BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:58:9:70:9 | try {...} ... | | +| BreakInTry.cs:58:9:70:9 | After try {...} ... | BreakInTry.cs:57:5:71:5 | After {...} | | | BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:59:9:62:9 | {...} | | +| BreakInTry.cs:59:9:62:9 | After {...} | BreakInTry.cs:64:9:70:9 | {...} | | | BreakInTry.cs:59:9:62:9 | {...} | BreakInTry.cs:60:13:61:23 | if (...) ... | | -| BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:60:17:60:20 | access to parameter args | | +| BreakInTry.cs:60:13:61:23 | After if (...) ... | BreakInTry.cs:59:9:62:9 | After {...} | | +| BreakInTry.cs:60:13:61:23 | if (...) ... | BreakInTry.cs:60:17:60:28 | Before ... == ... | | | BreakInTry.cs:60:17:60:20 | access to parameter args | BreakInTry.cs:60:25:60:28 | null | | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:61:17:61:23 | return ...; | true | -| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:64:9:70:9 | {...} | false | +| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | After ... == ... [false] | false | +| BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:17:60:28 | After ... == ... [true] | true | +| BreakInTry.cs:60:17:60:28 | After ... == ... [false] | BreakInTry.cs:60:13:61:23 | After if (...) ... | | +| BreakInTry.cs:60:17:60:28 | After ... == ... [true] | BreakInTry.cs:61:17:61:23 | Before return ...; | | +| BreakInTry.cs:60:17:60:28 | Before ... == ... | BreakInTry.cs:60:17:60:20 | access to parameter args | | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:17:60:28 | ... == ... | | +| BreakInTry.cs:61:17:61:23 | Before return ...; | BreakInTry.cs:61:17:61:23 | return ...; | | | BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:64:9:70:9 | {...} | return | -| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | access to parameter args | | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | empty, return | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | non-empty | +| BreakInTry.cs:64:9:70:9 | After {...} | BreakInTry.cs:56:10:56:11 | Normal Exit | return | +| BreakInTry.cs:64:9:70:9 | After {...} | BreakInTry.cs:58:9:70:9 | After try {...} ... | | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | +| BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | BreakInTry.cs:64:9:70:9 | After {...} | | +| BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | access to parameter args | | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:66:13:69:13 | {...} | | -| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | | +| BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | BreakInTry.cs:65:26:65:28 | String arg | | +| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:33:65:36 | After access to parameter args [empty] | empty | +| BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:33:65:36 | After access to parameter args [non-empty] | non-empty | +| BreakInTry.cs:66:13:69:13 | After {...} | BreakInTry.cs:65:13:69:13 | [LoopHeader] foreach (... ... in ...) ... | | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:67:17:68:26 | if (...) ... | | -| BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:67:21:67:23 | access to local variable arg | | +| BreakInTry.cs:67:17:68:26 | After if (...) ... | BreakInTry.cs:66:13:69:13 | After {...} | | +| BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:67:21:67:31 | Before ... == ... | | | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:28:67:31 | null | | -| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | true | +| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | After ... == ... [false] | false | +| BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:21:67:31 | After ... == ... [true] | true | +| BreakInTry.cs:67:21:67:31 | After ... == ... [false] | BreakInTry.cs:67:17:68:26 | After if (...) ... | | +| BreakInTry.cs:67:21:67:31 | After ... == ... [true] | BreakInTry.cs:68:21:68:26 | Before break; | | +| BreakInTry.cs:67:21:67:31 | Before ... == ... | BreakInTry.cs:67:21:67:23 | access to local variable arg | | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:31 | ... == ... | | -| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs: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 | 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 | | +| BreakInTry.cs:68:21:68:26 | Before break; | BreakInTry.cs:68:21:68:26 | break; | | +| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:65:13:69:13 | After foreach (... ... in ...) ... | break | +| CompileTimeOperators.cs:3:7:3:26 | After call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | | +| CompileTimeOperators.cs:3:7:3:26 | After call to method | CompileTimeOperators.cs:3:7:3:26 | Before call to constructor Object | | +| CompileTimeOperators.cs:3:7:3:26 | Before call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | +| CompileTimeOperators.cs:3:7:3:26 | Before call to method | CompileTimeOperators.cs:3:7:3:26 | this access | | +| CompileTimeOperators.cs:3:7:3:26 | Entry | CompileTimeOperators.cs:3:7:3:26 | Before call to method | | +| CompileTimeOperators.cs:3:7:3:26 | Normal Exit | CompileTimeOperators.cs:3:7:3:26 | Exit | | +| CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | After call to constructor Object | | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | After call to method | | | 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 | | -| CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:7:16:7:27 | default(...) | | -| CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | return | +| CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | Normal Exit | | +| CompileTimeOperators.cs:5:9:5:15 | Entry | CompileTimeOperators.cs:6:5:8:5 | {...} | | +| CompileTimeOperators.cs:5:9:5:15 | Normal Exit | CompileTimeOperators.cs:5:9:5:15 | Exit | | +| CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:7:9:7:28 | Before return ...; | | +| CompileTimeOperators.cs:7:9:7:28 | Before return ...; | CompileTimeOperators.cs:7:16:7:27 | default(...) | | +| CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:5:9:5:15 | Normal Exit | return | | CompileTimeOperators.cs:7:16:7:27 | default(...) | CompileTimeOperators.cs:7:9:7:28 | return ...; | | -| CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:11:5:13:5 | {...} | | -| CompileTimeOperators.cs:10:9:10:14 | exit Sizeof (normal) | CompileTimeOperators.cs:10:9:10:14 | exit Sizeof | | -| CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | | -| CompileTimeOperators.cs:12:9:12:27 | return ...; | CompileTimeOperators.cs:10:9:10:14 | exit Sizeof (normal) | return | +| CompileTimeOperators.cs:10:9:10:14 | Entry | CompileTimeOperators.cs:11:5:13:5 | {...} | | +| CompileTimeOperators.cs:10:9:10:14 | Normal Exit | CompileTimeOperators.cs:10:9:10:14 | Exit | | +| CompileTimeOperators.cs:11:5:13:5 | {...} | CompileTimeOperators.cs:12:9:12:27 | Before return ...; | | +| CompileTimeOperators.cs:12:9:12:27 | Before return ...; | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | | +| CompileTimeOperators.cs:12:9:12:27 | return ...; | CompileTimeOperators.cs:10:9:10:14 | Normal Exit | return | | CompileTimeOperators.cs:12:16:12:26 | sizeof(..) | CompileTimeOperators.cs:12:9:12:27 | return ...; | | -| CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:16:5:18:5 | {...} | | -| CompileTimeOperators.cs:15:10:15:15 | exit Typeof (normal) | CompileTimeOperators.cs:15:10:15:15 | exit Typeof | | -| CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | | -| CompileTimeOperators.cs:17:9:17:27 | return ...; | CompileTimeOperators.cs:15:10:15:15 | exit Typeof (normal) | return | +| CompileTimeOperators.cs:15:10:15:15 | Entry | CompileTimeOperators.cs:16:5:18:5 | {...} | | +| CompileTimeOperators.cs:15:10:15:15 | Normal Exit | CompileTimeOperators.cs:15:10:15:15 | Exit | | +| CompileTimeOperators.cs:16:5:18:5 | {...} | CompileTimeOperators.cs:17:9:17:27 | Before return ...; | | +| CompileTimeOperators.cs:17:9:17:27 | Before return ...; | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | | +| CompileTimeOperators.cs:17:9:17:27 | return ...; | CompileTimeOperators.cs:15:10:15:15 | Normal Exit | return | | CompileTimeOperators.cs:17:16:17:26 | typeof(...) | CompileTimeOperators.cs:17:9:17:27 | return ...; | | -| CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:21:5:23:5 | {...} | | -| CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | CompileTimeOperators.cs:20:12:20:17 | exit Nameof | | -| CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | | -| CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | return | +| CompileTimeOperators.cs:20:12:20:17 | Entry | CompileTimeOperators.cs:21:5:23:5 | {...} | | +| CompileTimeOperators.cs:20:12:20:17 | Normal Exit | CompileTimeOperators.cs:20:12:20:17 | Exit | | +| CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:22:9:22:25 | Before return ...; | | +| CompileTimeOperators.cs:22:9:22:25 | Before return ...; | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | | +| CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | Normal Exit | 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 | 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 | After call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | {...} | | +| CompileTimeOperators.cs:26:7:26:22 | After call to method | CompileTimeOperators.cs:26:7:26:22 | Before call to constructor Object | | +| CompileTimeOperators.cs:26:7:26:22 | Before call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | | +| CompileTimeOperators.cs:26:7:26:22 | Before call to method | CompileTimeOperators.cs:26:7:26:22 | this access | | +| CompileTimeOperators.cs:26:7:26:22 | Entry | CompileTimeOperators.cs:26:7:26:22 | Before call to method | | +| CompileTimeOperators.cs:26:7:26:22 | Normal Exit | CompileTimeOperators.cs:26:7:26:22 | Exit | | +| CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | After call to constructor Object | | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | After call to method | | | 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 | | -| CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:28:10:28:10 | exit M | | +| CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | Normal Exit | | +| CompileTimeOperators.cs:28:10:28:10 | Entry | CompileTimeOperators.cs:29:5:41:5 | {...} | | +| CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | CompileTimeOperators.cs:28:10:28:10 | Exit | | +| CompileTimeOperators.cs:28:10:28:10 | Normal Exit | CompileTimeOperators.cs:28:10:28:10 | Exit | | +| CompileTimeOperators.cs:29:5:41:5 | After {...} | CompileTimeOperators.cs:28:10:28:10 | Normal Exit | | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | | +| CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | CompileTimeOperators.cs:39:9:39:34 | ...; | | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:31:9:34:9 | {...} | | -| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | | +| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | Before goto ...; | | +| CompileTimeOperators.cs:32:13:32:21 | Before goto ...; | CompileTimeOperators.cs:32:13:32:21 | goto ...; | | | CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | {...} | goto | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:28:10:28:10 | Exceptional Exit | exception | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:30:9:38:9 | After try {...} ... | | +| CompileTimeOperators.cs:36:9:38:9 | After {...} | CompileTimeOperators.cs:40:9:40:11 | End: | goto | | CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:37:13:37:41 | ...; | | -| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | exception | -| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:39:9:39:34 | ...; | | -| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | goto | -| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:31:37:39 | "Finally" | | +| CompileTimeOperators.cs:37:13:37:40 | After call to method WriteLine | CompileTimeOperators.cs:37:13:37:41 | After ...; | | +| CompileTimeOperators.cs:37:13:37:40 | Before call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | "Finally" | | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:37:13:37:40 | After call to method WriteLine | | +| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:13:37:40 | Before call to method WriteLine | | +| CompileTimeOperators.cs:37:13:37:41 | After ...; | CompileTimeOperators.cs:36:9:38:9 | After {...} | | | CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | | -| CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | | -| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:27:39:32 | "Dead" | | +| CompileTimeOperators.cs:39:9:39:33 | After call to method WriteLine | CompileTimeOperators.cs:39:9:39:34 | After ...; | | +| CompileTimeOperators.cs:39:9:39:33 | Before call to method WriteLine | CompileTimeOperators.cs:39:27:39:32 | "Dead" | | +| CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:39:9:39:33 | After call to method WriteLine | | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:33 | Before call to method WriteLine | | +| CompileTimeOperators.cs:39:9:39:34 | After ...; | CompileTimeOperators.cs:40:9:40:11 | End: | | | CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:14:40:38 | ...; | | -| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | | -| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | | +| CompileTimeOperators.cs:40:14:40:37 | After call to method WriteLine | CompileTimeOperators.cs:40:14:40:38 | After ...; | | +| CompileTimeOperators.cs:40:14:40:37 | Before call to method WriteLine | CompileTimeOperators.cs:40:32:40:36 | "End" | | +| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:40:14:40:37 | After call to method WriteLine | | +| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:14:40:37 | Before call to method WriteLine | | +| CompileTimeOperators.cs:40:14:40:38 | After ...; | CompileTimeOperators.cs:29:5:41:5 | After {...} | | | 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 | 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 | After call to constructor Object | ConditionalAccess.cs:1:7:1:23 | {...} | | +| ConditionalAccess.cs:1:7:1:23 | After call to method | ConditionalAccess.cs:1:7:1:23 | Before call to constructor Object | | +| ConditionalAccess.cs:1:7:1:23 | Before call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | | +| ConditionalAccess.cs:1:7:1:23 | Before call to method | ConditionalAccess.cs:1:7:1:23 | this access | | +| ConditionalAccess.cs:1:7:1:23 | Entry | ConditionalAccess.cs:1:7:1:23 | Before call to method | | +| ConditionalAccess.cs:1:7:1:23 | Normal Exit | ConditionalAccess.cs:1:7:1:23 | Exit | | +| ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | After call to constructor Object | | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | After call to method | | | 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 | | -| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | null | -| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:38 | call to method ToString | non-null | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | null | -| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | non-null | -| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | | -| ConditionalAccess.cs:5:10:5:11 | enter M2 | ConditionalAccess.cs:5:26:5:26 | access to parameter s | | -| ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | ConditionalAccess.cs:5:10:5:11 | exit M2 | | -| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | null | -| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:34 | access to property Length | non-null | -| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:10:5:11 | exit M2 (normal) | | -| ConditionalAccess.cs:7:10:7:11 | enter M3 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | | -| ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | ConditionalAccess.cs:7:10:7:11 | exit M3 | | -| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | | -| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | non-null | -| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | null | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | null | -| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:38:7:55 | access to property Length | non-null | -| ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | ConditionalAccess.cs:7:38:7:55 | access to property Length | non-null | -| ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | ConditionalAccess.cs:7:10:7:11 | exit M3 (normal) | null | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [non-null] ... ?? ... | non-null | -| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:39:7:46 | [null] ... ?? ... | null | -| ConditionalAccess.cs:9:9:9:10 | enter M4 | ConditionalAccess.cs:9:25:9:25 | access to parameter s | | -| ConditionalAccess.cs:9:9:9:10 | exit M4 (normal) | ConditionalAccess.cs:9:9:9:10 | exit M4 | | -| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:33 | access to property Length | non-null | -| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:38:9:38 | 0 | null | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | non-null | -| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:38:9:38 | 0 | null | -| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:9:9:10 | exit M4 (normal) | | -| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | | -| ConditionalAccess.cs:11:9:11:10 | enter M5 | ConditionalAccess.cs:12:5:17:5 | {...} | | -| ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | ConditionalAccess.cs:11:9:11:10 | exit M5 | | +| ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | Normal Exit | | +| ConditionalAccess.cs:3:12:3:13 | Entry | ConditionalAccess.cs:3:26:3:49 | Before call to method ToLower | | +| ConditionalAccess.cs:3:12:3:13 | Normal Exit | ConditionalAccess.cs:3:12:3:13 | Exit | | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | ConditionalAccess.cs:3:26:3:38 | call to method ToString | | +| ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | null | +| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [non-null] | non-null | +| ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | After access to parameter i [null] | null | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [non-null] | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | | +| ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | | +| ConditionalAccess.cs:3:26:3:38 | Before call to method ToString | 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:38 | After call to method ToString [non-null] | non-null | +| ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:38 | After call to method ToString [null] | null | +| ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | ConditionalAccess.cs:3:12:3:13 | Normal Exit | | +| ConditionalAccess.cs:3:26:3:49 | Before call to method ToLower | ConditionalAccess.cs:3:26:3:38 | Before call to method ToString | | +| ConditionalAccess.cs:3:26:3:49 | call to method ToLower | ConditionalAccess.cs:3:26:3:49 | After call to method ToLower | | +| ConditionalAccess.cs:5:10:5:11 | Entry | ConditionalAccess.cs:5:26:5:34 | Before access to property Length | | +| ConditionalAccess.cs:5:10:5:11 | Normal Exit | ConditionalAccess.cs:5:10:5:11 | Exit | | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | ConditionalAccess.cs:5:26:5:34 | access to property Length | | +| ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | ConditionalAccess.cs:5:26:5:34 | After access to property Length | | +| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [non-null] | non-null | +| ConditionalAccess.cs:5:26:5:26 | access to parameter s | ConditionalAccess.cs:5:26:5:26 | After access to parameter s [null] | null | +| ConditionalAccess.cs:5:26:5:34 | After access to property Length | ConditionalAccess.cs:5:10:5:11 | Normal Exit | | +| ConditionalAccess.cs:5:26:5:34 | Before access to property Length | ConditionalAccess.cs:5:26:5:26 | access to parameter s | | +| ConditionalAccess.cs:5:26:5:34 | access to property Length | ConditionalAccess.cs:5:26:5:34 | After access to property Length | | +| ConditionalAccess.cs:7:10:7:11 | Entry | ConditionalAccess.cs:7:38:7:55 | Before access to property Length | | +| ConditionalAccess.cs:7:10:7:11 | Normal Exit | ConditionalAccess.cs:7:10:7:11 | Exit | | +| ConditionalAccess.cs:7:38:7:55 | After access to property Length | ConditionalAccess.cs:7:10:7:11 | Normal Exit | | +| ConditionalAccess.cs:7:38:7:55 | Before access to property Length | ConditionalAccess.cs:7:39:7:46 | ... ?? ... | | +| ConditionalAccess.cs:7:38:7:55 | access to property Length | ConditionalAccess.cs:7:38:7:55 | After access to property Length | | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | non-null | +| ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | | +| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [non-null] | non-null | +| ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | ConditionalAccess.cs:7:39:7:40 | After access to parameter s1 [null] | null | +| ConditionalAccess.cs:7:39:7:46 | ... ?? ... | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | ConditionalAccess.cs:7:38:7:55 | access to property Length | | +| ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [null] | ConditionalAccess.cs:7:38:7:55 | After access to property Length | | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [non-null] | non-null | +| ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | ConditionalAccess.cs:7:39:7:46 | After ... ?? ... [null] | null | +| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [non-null] | non-null | +| ConditionalAccess.cs:7:45:7:46 | access to parameter s2 | ConditionalAccess.cs:7:45:7:46 | After access to parameter s2 [null] | null | +| ConditionalAccess.cs:9:9:9:10 | Entry | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | | +| ConditionalAccess.cs:9:9:9:10 | Normal Exit | ConditionalAccess.cs:9:9:9:10 | Exit | | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | ConditionalAccess.cs:9:25:9:33 | access to property Length | | +| ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | null | +| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [non-null] | non-null | +| ConditionalAccess.cs:9:25:9:25 | access to parameter s | ConditionalAccess.cs:9:25:9:25 | After access to parameter s [null] | null | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | | +| ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | ConditionalAccess.cs:9:38:9:38 | 0 | | +| ConditionalAccess.cs:9:25:9:33 | Before access to property Length | ConditionalAccess.cs:9:25:9:25 | access to parameter s | | +| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | After access to property Length [non-null] | non-null | +| ConditionalAccess.cs:9:25:9:33 | access to property Length | ConditionalAccess.cs:9:25:9:33 | After access to property Length [null] | null | +| ConditionalAccess.cs:9:25:9:38 | ... ?? ... | ConditionalAccess.cs:9:25:9:33 | Before access to property Length | | +| ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | ConditionalAccess.cs:9:9:9:10 | Normal Exit | | +| ConditionalAccess.cs:9:38:9:38 | 0 | ConditionalAccess.cs:9:25:9:38 | After ... ?? ... | | +| ConditionalAccess.cs:11:9:11:10 | Entry | ConditionalAccess.cs:12:5:17:5 | {...} | | +| ConditionalAccess.cs:11:9:11:10 | Normal Exit | ConditionalAccess.cs:11:9:11:10 | Exit | | | ConditionalAccess.cs:12:5:17:5 | {...} | ConditionalAccess.cs:13:9:16:21 | if (...) ... | | -| ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:13:13:13:13 | access to parameter s | | -| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:21 | access to property Length | non-null | -| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:25:13:25 | 0 | null | -| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:25:13:25 | 0 | | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:14:20:14:20 | 0 | true | -| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:16:20:16:20 | 1 | false | +| ConditionalAccess.cs:13:9:16:21 | if (...) ... | ConditionalAccess.cs:13:13:13:25 | Before ... > ... | | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | ConditionalAccess.cs:13:13:13:21 | access to property Length | | +| ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | ConditionalAccess.cs:13:13:13:21 | After access to property Length | | +| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [non-null] | non-null | +| ConditionalAccess.cs:13:13:13:13 | access to parameter s | ConditionalAccess.cs:13:13:13:13 | After access to parameter s [null] | null | +| ConditionalAccess.cs:13:13:13:21 | After access to property Length | ConditionalAccess.cs:13:25:13:25 | Before (...) ... | | +| ConditionalAccess.cs:13:13:13:21 | Before access to property Length | ConditionalAccess.cs:13:13:13:13 | access to parameter s | | +| ConditionalAccess.cs:13:13:13:21 | access to property Length | ConditionalAccess.cs:13:13:13:21 | After access to property Length | | +| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | false | +| ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | true | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [false] | ConditionalAccess.cs:16:13:16:21 | Before return ...; | | +| ConditionalAccess.cs:13:13:13:25 | After ... > ... [true] | ConditionalAccess.cs:14:13:14:21 | Before return ...; | | +| ConditionalAccess.cs:13:13:13:25 | Before ... > ... | ConditionalAccess.cs:13:13:13:21 | Before access to property Length | | | ConditionalAccess.cs:13:25:13:25 | 0 | ConditionalAccess.cs:13:25:13:25 | (...) ... | | -| ConditionalAccess.cs:13:25:13:25 | (...) ... | ConditionalAccess.cs:13:13:13:25 | ... > ... | | -| ConditionalAccess.cs:14:13:14:21 | return ...; | ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | return | +| ConditionalAccess.cs:13:25:13:25 | (...) ... | ConditionalAccess.cs:13:25:13:25 | After (...) ... | | +| ConditionalAccess.cs:13:25:13:25 | After (...) ... | ConditionalAccess.cs:13:13:13:25 | ... > ... | | +| ConditionalAccess.cs:13:25:13:25 | Before (...) ... | ConditionalAccess.cs:13:25:13:25 | 0 | | +| ConditionalAccess.cs:14:13:14:21 | Before return ...; | ConditionalAccess.cs:14:20:14:20 | 0 | | +| ConditionalAccess.cs:14:13:14:21 | return ...; | ConditionalAccess.cs:11:9:11:10 | Normal Exit | return | | ConditionalAccess.cs:14:20:14:20 | 0 | ConditionalAccess.cs:14:13:14:21 | return ...; | | -| ConditionalAccess.cs:16:13:16:21 | return ...; | ConditionalAccess.cs:11:9:11:10 | exit M5 (normal) | return | +| ConditionalAccess.cs:16:13:16:21 | Before return ...; | ConditionalAccess.cs:16:20:16:20 | 1 | | +| ConditionalAccess.cs:16:13:16:21 | return ...; | ConditionalAccess.cs:11:9:11:10 | Normal Exit | return | | ConditionalAccess.cs:16:20:16:20 | 1 | ConditionalAccess.cs:16:13:16:21 | return ...; | | -| ConditionalAccess.cs:19:12:19:13 | enter M6 | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | | -| ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | ConditionalAccess.cs:19:12:19:13 | exit M6 | | -| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | null | -| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | non-null | -| ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | exit M6 (normal) | | +| ConditionalAccess.cs:19:12:19:13 | Entry | ConditionalAccess.cs:19:40:19:60 | Before call to method CommaJoinWith | | +| ConditionalAccess.cs:19:12:19:13 | Normal Exit | ConditionalAccess.cs:19:12:19:13 | Exit | | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | | +| ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | | +| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [non-null] | non-null | +| ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | ConditionalAccess.cs:19:40:19:41 | After access to parameter s1 [null] | null | +| ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | ConditionalAccess.cs:19:12:19:13 | Normal Exit | | +| ConditionalAccess.cs:19:40:19:60 | Before call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | | +| ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | ConditionalAccess.cs:19:40:19:60 | After call to method CommaJoinWith | | | ConditionalAccess.cs:19:58:19:59 | access to parameter s2 | ConditionalAccess.cs:19:40:19:60 | call to method CommaJoinWith | | -| ConditionalAccess.cs:21:10:21:11 | enter M7 | ConditionalAccess.cs:22:5:26:5 | {...} | | -| ConditionalAccess.cs:21:10:21:11 | exit M7 (normal) | ConditionalAccess.cs:21:10:21:11 | exit M7 | | +| ConditionalAccess.cs:21:10:21:11 | Entry | ConditionalAccess.cs:22:5:26:5 | {...} | | +| ConditionalAccess.cs:21:10:21:11 | Normal Exit | ConditionalAccess.cs:21:10:21:11 | Exit | | +| ConditionalAccess.cs:22:5:26:5 | After {...} | ConditionalAccess.cs:21:10:21:11 | Normal Exit | | | ConditionalAccess.cs:22:5:26:5 | {...} | ConditionalAccess.cs:23:9:23:39 | ... ...; | | -| ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:23:26:23:29 | null | | -| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:24:9:24:38 | ... ...; | | -| ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | null | +| ConditionalAccess.cs:23:9:23:39 | ... ...; | ConditionalAccess.cs:23:13:23:38 | Before Nullable j = ... | | +| ConditionalAccess.cs:23:9:23:39 | After ... ...; | ConditionalAccess.cs:24:9:24:38 | ... ...; | | +| ConditionalAccess.cs:23:13:23:13 | access to local variable j | ConditionalAccess.cs:23:17:23:38 | Before access to property Length | | +| ConditionalAccess.cs:23:13:23:38 | After Nullable j = ... | ConditionalAccess.cs:23:9:23:39 | After ... ...; | | +| ConditionalAccess.cs:23:13:23:38 | Before Nullable j = ... | ConditionalAccess.cs:23:13:23:13 | access to local variable j | | +| ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:23:13:23:38 | After Nullable j = ... | | +| ConditionalAccess.cs:23:17:23:38 | After access to property Length | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | | +| ConditionalAccess.cs:23:17:23:38 | Before access to property Length | ConditionalAccess.cs:23:18:23:29 | Before (...) ... | | +| ConditionalAccess.cs:23:17:23:38 | access to property Length | ConditionalAccess.cs:23:17:23:38 | After access to property Length | | +| ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | non-null | +| ConditionalAccess.cs:23:18:23:29 | (...) ... | ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | null | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [non-null] | ConditionalAccess.cs:23:17:23:38 | access to property Length | | +| ConditionalAccess.cs:23:18:23:29 | After (...) ... [null] | ConditionalAccess.cs:23:17:23:38 | After access to property Length | | +| ConditionalAccess.cs:23:18:23:29 | Before (...) ... | ConditionalAccess.cs:23:26:23:29 | null | | | ConditionalAccess.cs:23:26:23:29 | null | ConditionalAccess.cs:23:18:23:29 | (...) ... | | -| ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:24:24:24:24 | access to parameter i | | -| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:25:9:25:33 | ...; | | -| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:13:24:37 | String s = ... | | -| ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:17:24:37 | call to method ToString | non-null | +| ConditionalAccess.cs:24:9:24:38 | ... ...; | ConditionalAccess.cs:24:13:24:37 | Before String s = ... | | +| ConditionalAccess.cs:24:9:24:38 | After ... ...; | ConditionalAccess.cs:25:9:25:33 | ...; | | +| ConditionalAccess.cs:24:13:24:13 | access to local variable s | ConditionalAccess.cs:24:17:24:37 | Before call to method ToString | | +| ConditionalAccess.cs:24:13:24:37 | After String s = ... | ConditionalAccess.cs:24:9:24:38 | After ... ...; | | +| ConditionalAccess.cs:24:13:24:37 | Before String s = ... | ConditionalAccess.cs:24:13:24:13 | access to local variable s | | +| ConditionalAccess.cs:24:13:24:37 | String s = ... | ConditionalAccess.cs:24:13:24:37 | After String s = ... | | +| ConditionalAccess.cs:24:17:24:37 | After call to method ToString | ConditionalAccess.cs:24:13:24:37 | String s = ... | | +| ConditionalAccess.cs:24:17:24:37 | Before call to method ToString | ConditionalAccess.cs:24:18:24:24 | Before (...) ... | | +| ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | | +| ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | non-null | +| ConditionalAccess.cs:24:18:24:24 | (...) ... | ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | null | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [non-null] | ConditionalAccess.cs:24:17:24:37 | call to method ToString | | +| ConditionalAccess.cs:24:18:24:24 | After (...) ... [null] | ConditionalAccess.cs:24:17:24:37 | After call to method ToString | | +| ConditionalAccess.cs:24:18:24:24 | Before (...) ... | ConditionalAccess.cs:24:24:24:24 | access to parameter i | | | ConditionalAccess.cs:24:24:24:24 | access to parameter i | ConditionalAccess.cs:24:18:24:24 | (...) ... | | -| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:21:10:21:11 | exit M7 (normal) | | -| ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:25:13:25:14 | "" | | -| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:31:25:31 | access to local variable s | non-null | -| ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | ConditionalAccess.cs:25:9:25:32 | ... = ... | | +| ConditionalAccess.cs:25:9:25:9 | access to local variable s | ConditionalAccess.cs:25:13:25:32 | Before call to method CommaJoinWith | | +| ConditionalAccess.cs:25:9:25:32 | ... = ... | ConditionalAccess.cs:25:9:25:32 | After ... = ... | | +| ConditionalAccess.cs:25:9:25:32 | After ... = ... | ConditionalAccess.cs:25:9:25:33 | After ...; | | +| ConditionalAccess.cs:25:9:25:32 | Before ... = ... | ConditionalAccess.cs:25:9:25:9 | access to local variable s | | +| ConditionalAccess.cs:25:9:25:33 | ...; | ConditionalAccess.cs:25:9:25:32 | Before ... = ... | | +| ConditionalAccess.cs:25:9:25:33 | After ...; | ConditionalAccess.cs:22:5:26:5 | After {...} | | +| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | non-null | +| ConditionalAccess.cs:25:13:25:14 | "" | ConditionalAccess.cs:25:13:25:14 | After "" [null] | null | +| ConditionalAccess.cs:25:13:25:14 | After "" [non-null] | ConditionalAccess.cs:25:31:25:31 | access to local variable s | | +| ConditionalAccess.cs:25:13:25:14 | After "" [null] | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | | +| ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | ConditionalAccess.cs:25:9:25:32 | ... = ... | | +| ConditionalAccess.cs:25:13:25:32 | Before call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:14 | "" | | +| ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | ConditionalAccess.cs:25:13:25:32 | After call to method CommaJoinWith | | | ConditionalAccess.cs:25:31:25:31 | access to local variable s | ConditionalAccess.cs:25:13:25:32 | call to method CommaJoinWith | | -| ConditionalAccess.cs:30:10:30:12 | enter Out | ConditionalAccess.cs:30:32:30:32 | 0 | | -| ConditionalAccess.cs:30:10:30:12 | exit Out (normal) | ConditionalAccess.cs:30:10:30:12 | exit Out | | -| ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:10:30:12 | exit Out (normal) | | +| ConditionalAccess.cs:30:10:30:12 | Entry | ConditionalAccess.cs:30:28:30:32 | Before ... = ... | | +| ConditionalAccess.cs:30:10:30:12 | Normal Exit | ConditionalAccess.cs:30:10:30:12 | Exit | | +| ConditionalAccess.cs:30:28:30:28 | access to parameter i | ConditionalAccess.cs:30:32:30:32 | 0 | | +| ConditionalAccess.cs:30:28:30:32 | ... = ... | ConditionalAccess.cs:30:28:30:32 | After ... = ... | | +| ConditionalAccess.cs:30:28:30:32 | After ... = ... | ConditionalAccess.cs:30:10:30:12 | Normal Exit | | +| ConditionalAccess.cs:30:28:30:32 | Before ... = ... | ConditionalAccess.cs:30:28:30:28 | access to parameter i | | | ConditionalAccess.cs:30:32:30:32 | 0 | ConditionalAccess.cs:30:28:30:32 | ... = ... | | -| ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:33:5:36:5 | {...} | | -| ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 | | +| ConditionalAccess.cs:32:10:32:11 | Entry | ConditionalAccess.cs:33:5:36:5 | {...} | | +| ConditionalAccess.cs:32:10:32:11 | Normal Exit | ConditionalAccess.cs:32:10:32:11 | Exit | | +| ConditionalAccess.cs:33:5:36:5 | After {...} | ConditionalAccess.cs:32:10:32:11 | Normal Exit | | | ConditionalAccess.cs:33:5:36:5 | {...} | ConditionalAccess.cs:34:9:34:14 | ...; | | -| ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:35:9:35:25 | ...; | | -| ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:34:13:34:13 | 0 | | +| ConditionalAccess.cs:34:9:34:9 | access to parameter i | ConditionalAccess.cs:34:13:34:13 | 0 | | +| ConditionalAccess.cs:34:9:34:13 | ... = ... | ConditionalAccess.cs:34:9:34:13 | After ... = ... | | +| ConditionalAccess.cs:34:9:34:13 | After ... = ... | ConditionalAccess.cs:34:9:34:14 | After ...; | | +| ConditionalAccess.cs:34:9:34:13 | Before ... = ... | ConditionalAccess.cs:34:9:34:9 | access to parameter i | | +| ConditionalAccess.cs:34:9:34:14 | ...; | ConditionalAccess.cs:34:9:34:13 | Before ... = ... | | +| ConditionalAccess.cs:34:9:34:14 | After ...; | ConditionalAccess.cs:35:9:35:25 | ...; | | | ConditionalAccess.cs:34:13:34:13 | 0 | ConditionalAccess.cs:34:9:34:13 | ... = ... | | -| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | null | -| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:24 | call to method Out | non-null | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | ConditionalAccess.cs:35:23:35:23 | access to parameter i | | +| ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | ConditionalAccess.cs:35:9:35:24 | After call to method Out | | +| ConditionalAccess.cs:35:9:35:12 | Before access to property Prop | ConditionalAccess.cs:35:9:35:12 | this access | | +| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [non-null] | non-null | +| ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | After access to property Prop [null] | null | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | access to property Prop | | -| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | | -| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | this access | | -| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | | -| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | exit get_Item | | -| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:22:42:25 | null | | -| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | return | +| ConditionalAccess.cs:35:9:35:24 | After call to method Out | ConditionalAccess.cs:35:9:35:25 | After ...; | | +| ConditionalAccess.cs:35:9:35:24 | Before call to method Out | ConditionalAccess.cs:35:9:35:12 | Before access to property Prop | | +| ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | After call to method Out | | +| ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:24 | Before call to method Out | | +| ConditionalAccess.cs:35:9:35:25 | After ...; | ConditionalAccess.cs:33:5:36:5 | After {...} | | +| ConditionalAccess.cs:35:23:35:23 | access to parameter i | ConditionalAccess.cs:35:9:35:24 | call to method Out | | +| ConditionalAccess.cs:42:9:42:11 | Entry | ConditionalAccess.cs:42:13:42:28 | {...} | | +| ConditionalAccess.cs:42:9:42:11 | Normal Exit | ConditionalAccess.cs:42:9:42:11 | Exit | | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:15:42:26 | Before return ...; | | +| ConditionalAccess.cs:42:15:42:26 | Before return ...; | ConditionalAccess.cs:42:22:42:25 | null | | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | Normal Exit | return | | ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:15:42:26 | return ...; | | -| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | | -| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | exit set_Item | | -| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | | -| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:47:5:55:5 | {...} | | -| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | | +| ConditionalAccess.cs:43:9:43:11 | Entry | ConditionalAccess.cs:43:13:43:15 | {...} | | +| ConditionalAccess.cs:43:9:43:11 | Normal Exit | ConditionalAccess.cs:43:9:43:11 | Exit | | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | Normal Exit | | +| ConditionalAccess.cs:46:10:46:11 | Entry | ConditionalAccess.cs:47:5:55:5 | {...} | | +| ConditionalAccess.cs:46:10:46:11 | Normal Exit | ConditionalAccess.cs:46:10:46:11 | Exit | | +| ConditionalAccess.cs:47:5:55:5 | After {...} | ConditionalAccess.cs:46:10:46:11 | Normal Exit | | | ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:48:9:48:26 | ...; | | -| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:24:48:25 | 42 | non-null | -| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | null | -| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:12:48:25 | ... = ... | | -| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | | -| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:49:9:49:33 | ...; | | -| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:9:48:20 | access to field IntField | | -| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:26:49:32 | "Hello" | non-null | -| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | null | -| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:12:49:32 | ... = ... | | -| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | | -| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:50:9:50:24 | ...; | | -| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | | -| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:13:50:13 | 0 | non-null | -| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | null | -| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:12:50:23 | ... = ... | | -| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | | -| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:51:9:51:32 | ...; | | -| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:18:50:23 | "Set0" | | -| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:9:50:14 | access to indexer | | -| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | -| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | null | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | non-null | -| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:52:9:52:39 | ...; | null | -| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:18:51:31 | ... = ... | | -| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | | -| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:52:9:52:39 | ...; | | -| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:9:51:26 | access to field IntField | | -| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | -| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | null | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | non-null | -| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:53:9:53:26 | ...; | null | -| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:18:52:38 | ... = ... | | -| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | | -| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:53:9:53:26 | ...; | | -| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | | -| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | non-null | -| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | null | -| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:25:53:25 | 1 | | -| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | | -| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:54:9:54:30 | ...; | | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:48:9:48:20 | access to field IntField | | +| ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | ConditionalAccess.cs:48:12:48:25 | After ... = ... | | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [non-null] | non-null | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | After access to parameter ca [null] | null | +| ConditionalAccess.cs:48:9:48:20 | After access to field IntField | ConditionalAccess.cs:48:24:48:25 | 42 | | +| ConditionalAccess.cs:48:9:48:20 | Before access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:20 | After access to field IntField | | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:12:48:25 | Before ... = ... | | +| ConditionalAccess.cs:48:9:48:26 | After ...; | ConditionalAccess.cs:49:9:49:33 | ...; | | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:12:48:25 | After ... = ... | | +| ConditionalAccess.cs:48:12:48:25 | After ... = ... | ConditionalAccess.cs:48:9:48:26 | After ...; | | +| ConditionalAccess.cs:48:12:48:25 | Before ... = ... | ConditionalAccess.cs:48:9:48:20 | Before access to field IntField | | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:12:48:25 | ... = ... | | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | | +| ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | ConditionalAccess.cs:49:12:49:32 | After ... = ... | | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [non-null] | non-null | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | After access to parameter ca [null] | null | +| ConditionalAccess.cs:49:9:49:22 | After access to property StringProp | ConditionalAccess.cs:49:26:49:32 | "Hello" | | +| ConditionalAccess.cs:49:9:49:22 | Before access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:22 | After access to property StringProp | | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:12:49:32 | Before ... = ... | | +| ConditionalAccess.cs:49:9:49:33 | After ...; | ConditionalAccess.cs:50:9:50:24 | ...; | | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:12:49:32 | After ... = ... | | +| ConditionalAccess.cs:49:12:49:32 | After ... = ... | ConditionalAccess.cs:49:9:49:33 | After ...; | | +| ConditionalAccess.cs:49:12:49:32 | Before ... = ... | ConditionalAccess.cs:49:9:49:22 | Before access to property StringProp | | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:12:49:32 | ... = ... | | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:50:13:50:13 | 0 | | +| ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | ConditionalAccess.cs:50:12:50:23 | After ... = ... | | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [non-null] | non-null | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | After access to parameter ca [null] | null | +| ConditionalAccess.cs:50:9:50:14 | After access to indexer | ConditionalAccess.cs:50:18:50:23 | "Set0" | | +| ConditionalAccess.cs:50:9:50:14 | Before access to indexer | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:9:50:14 | After access to indexer | | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:12:50:23 | Before ... = ... | | +| ConditionalAccess.cs:50:9:50:24 | After ...; | ConditionalAccess.cs:51:9:51:32 | ...; | | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:12:50:23 | After ... = ... | | +| ConditionalAccess.cs:50:12:50:23 | After ... = ... | ConditionalAccess.cs:50:9:50:24 | After ...; | | +| ConditionalAccess.cs:50:12:50:23 | Before ... = ... | ConditionalAccess.cs:50:9:50:14 | Before access to indexer | | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:9:50:14 | access to indexer | | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:12:50:23 | ... = ... | | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:51:9:51:16 | access to property Prop | | +| ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | null | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [non-null] | non-null | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | After access to parameter ca [null] | null | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | ConditionalAccess.cs:51:9:51:26 | access to field IntField | | +| ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | ConditionalAccess.cs:51:18:51:31 | After ... = ... | | +| ConditionalAccess.cs:51:9:51:16 | Before access to property Prop | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [non-null] | non-null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | After access to property Prop [null] | null | +| ConditionalAccess.cs:51:9:51:26 | After access to field IntField | ConditionalAccess.cs:51:30:51:31 | 84 | | +| ConditionalAccess.cs:51:9:51:26 | Before access to field IntField | ConditionalAccess.cs:51:9:51:16 | Before access to property Prop | | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:26 | After access to field IntField | | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:18:51:31 | Before ... = ... | | +| ConditionalAccess.cs:51:9:51:32 | After ...; | ConditionalAccess.cs:52:9:52:39 | ...; | | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:18:51:31 | After ... = ... | | +| ConditionalAccess.cs:51:18:51:31 | After ... = ... | ConditionalAccess.cs:51:9:51:32 | After ...; | | +| ConditionalAccess.cs:51:18:51:31 | Before ... = ... | ConditionalAccess.cs:51:9:51:26 | Before access to field IntField | | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:18:51:31 | ... = ... | | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:52:9:52:16 | access to property Prop | | +| ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | null | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [non-null] | non-null | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | After access to parameter ca [null] | null | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | | +| ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | ConditionalAccess.cs:52:18:52:38 | After ... = ... | | +| ConditionalAccess.cs:52:9:52:16 | Before access to property Prop | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [non-null] | non-null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | After access to property Prop [null] | null | +| ConditionalAccess.cs:52:9:52:28 | After access to property StringProp | ConditionalAccess.cs:52:32:52:38 | "World" | | +| ConditionalAccess.cs:52:9:52:28 | Before access to property StringProp | ConditionalAccess.cs:52:9:52:16 | Before access to property Prop | | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:28 | After access to property StringProp | | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:18:52:38 | Before ... = ... | | +| ConditionalAccess.cs:52:9:52:39 | After ...; | ConditionalAccess.cs:53:9:53:26 | ...; | | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:18:52:38 | After ... = ... | | +| ConditionalAccess.cs:52:18:52:38 | After ... = ... | ConditionalAccess.cs:52:9:52:39 | After ...; | | +| ConditionalAccess.cs:52:18:52:38 | Before ... = ... | ConditionalAccess.cs:52:9:52:28 | Before access to property StringProp | | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:18:52:38 | ... = ... | | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:53:9:53:20 | access to field IntField | | +| ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [non-null] | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | After access to parameter ca [null] | null | +| ConditionalAccess.cs:53:9:53:20 | After access to field IntField | ConditionalAccess.cs:53:25:53:25 | 1 | | +| ConditionalAccess.cs:53:9:53:20 | Before access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | After access to field IntField | | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:12:53:25 | Before ... -= ... | | +| ConditionalAccess.cs:53:9:53:26 | After ...; | ConditionalAccess.cs:54:9:54:30 | ...; | | +| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:12:53:25 | After ... -= ... | | +| ConditionalAccess.cs:53:12:53:25 | After ... -= ... | ConditionalAccess.cs:53:9:53:26 | After ...; | | +| ConditionalAccess.cs:53:12:53:25 | Before ... -= ... | ConditionalAccess.cs:53:9:53:20 | Before access to field IntField | | | ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... -= ... | | -| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | non-null | -| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | null | -| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:27:54:29 | "!" | | -| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | | -| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | | +| ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | ConditionalAccess.cs:54:12:54:29 | After ... += ... | | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [non-null] | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | After access to parameter ca [null] | null | +| ConditionalAccess.cs:54:9:54:22 | After access to property StringProp | ConditionalAccess.cs:54:27:54:29 | "!" | | +| ConditionalAccess.cs:54:9:54:22 | Before access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | After access to property StringProp | | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:12:54:29 | Before ... += ... | | +| ConditionalAccess.cs:54:9:54:30 | After ...; | ConditionalAccess.cs:47:5:55:5 | After {...} | | +| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:12:54:29 | After ... += ... | | +| ConditionalAccess.cs:54:12:54:29 | After ... += ... | ConditionalAccess.cs:54:9:54:30 | After ...; | | +| ConditionalAccess.cs:54:12:54:29 | Before ... += ... | ConditionalAccess.cs:54:9:54:22 | Before access to property StringProp | | | ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... += ... | | -| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | | -| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | | +| ConditionalAccess.cs:60:26:60:38 | Entry | ConditionalAccess.cs:60:70:60:83 | Before ... + ... | | +| ConditionalAccess.cs:60:26:60:38 | Normal Exit | ConditionalAccess.cs:60:26:60:38 | Exit | | | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " | | -| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | | -| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:78 | After ... + ... | | +| ConditionalAccess.cs:60:70:60:78 | After ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | | +| ConditionalAccess.cs:60:70:60:78 | Before ... + ... | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:70:60:83 | After ... + ... | | +| ConditionalAccess.cs:60:70:60:83 | After ... + ... | ConditionalAccess.cs:60:26:60:38 | Normal Exit | | +| ConditionalAccess.cs:60:70:60:83 | Before ... + ... | ConditionalAccess.cs:60:70:60:78 | Before ... + ... | | | ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:78 | ... + ... | | | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:83 | ... + ... | | -| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | -| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | | -| Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | exit Conditions | | +| Conditions.cs:1:7:1:16 | After call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | +| Conditions.cs:1:7:1:16 | After call to method | Conditions.cs:1:7:1:16 | Before call to constructor Object | | +| Conditions.cs:1:7:1:16 | Before call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | | +| Conditions.cs:1:7:1:16 | Before call to method | Conditions.cs:1:7:1:16 | this access | | +| Conditions.cs:1:7:1:16 | Entry | Conditions.cs:1:7:1:16 | Before call to method | | +| Conditions.cs:1:7:1:16 | Normal Exit | Conditions.cs:1:7:1:16 | Exit | | +| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | After call to constructor Object | | +| Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | After call to method | | | 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 | | +| Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | Normal Exit | | +| Conditions.cs:3:10:3:19 | Entry | Conditions.cs:4:5:9:5 | {...} | | +| Conditions.cs:3:10:3:19 | Normal Exit | Conditions.cs:3:10:3:19 | Exit | | +| Conditions.cs:4:5:9:5 | After {...} | Conditions.cs:3:10:3:19 | Normal Exit | | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:5:9:6:16 | if (...) ... | | +| Conditions.cs:5:9:6:16 | After if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... | | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | ...; | true | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | false | +| Conditions.cs:5:13:5:15 | After access to parameter inc [false] | Conditions.cs:5:9:6:16 | After if (...) ... | | +| Conditions.cs:5:13:5:15 | After access to parameter inc [true] | Conditions.cs:6:13:6:16 | ...; | | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | After access to parameter inc [false] | false | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:13:5:15 | After access to parameter inc [true] | true | | Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:15 | ...++ | | -| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:7:9:8:16 | if (...) ... | | -| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:13 | access to parameter x | | -| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | false | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | true | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | true | -| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | false | +| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:15 | After ...++ | | +| Conditions.cs:6:13:6:15 | After ...++ | Conditions.cs:6:13:6:16 | After ...; | | +| Conditions.cs:6:13:6:15 | Before ...++ | Conditions.cs:6:13:6:13 | access to parameter x | | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | Before ...++ | | +| Conditions.cs:6:13:6:16 | After ...; | Conditions.cs:5:9:6:16 | After if (...) ... | | +| Conditions.cs:7:9:8:16 | After if (...) ... | Conditions.cs:4:5:9:5 | After {...} | | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | !... | | +| Conditions.cs:7:13:7:16 | !... | Conditions.cs:7:14:7:16 | access to parameter inc | | +| Conditions.cs:7:13:7:16 | After !... [false] | Conditions.cs:7:9:8:16 | After if (...) ... | | +| Conditions.cs:7:13:7:16 | After !... [true] | Conditions.cs:8:13:8:16 | ...; | | +| Conditions.cs:7:14:7:16 | After access to parameter inc [false] | Conditions.cs:7:13:7:16 | After !... [true] | true | +| Conditions.cs:7:14:7:16 | After access to parameter inc [true] | Conditions.cs:7:13:7:16 | After !... [false] | false | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | After access to parameter inc [false] | false | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:14:7:16 | After access to parameter inc [true] | true | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | ...-- | | -| Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:13 | access to parameter x | | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:12:5:20:5 | {...} | | -| Conditions.cs:11:9:11:10 | exit M1 (normal) | Conditions.cs:11:9:11:10 | exit M1 | | +| Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:15 | After ...-- | | +| Conditions.cs:8:13:8:15 | After ...-- | Conditions.cs:8:13:8:16 | After ...; | | +| Conditions.cs:8:13:8:15 | Before ...-- | Conditions.cs:8:13:8:13 | access to parameter x | | +| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:15 | Before ...-- | | +| Conditions.cs:8:13:8:16 | After ...; | Conditions.cs:7:9:8:16 | After if (...) ... | | +| Conditions.cs:11:9:11:10 | Entry | Conditions.cs:12:5:20:5 | {...} | | +| Conditions.cs:11:9:11:10 | Normal Exit | Conditions.cs:11:9:11:10 | Exit | | | Conditions.cs:12:5:20:5 | {...} | Conditions.cs:13:9:13:18 | ... ...; | | -| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:17:13:17 | 0 | | -| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:14:9:15:16 | if (...) ... | | +| Conditions.cs:13:9:13:18 | ... ...; | Conditions.cs:13:13:13:17 | Before Int32 x = ... | | +| Conditions.cs:13:9:13:18 | After ... ...; | Conditions.cs:14:9:15:16 | if (...) ... | | +| Conditions.cs:13:13:13:13 | access to local variable x | Conditions.cs:13:17:13:17 | 0 | | +| Conditions.cs:13:13:13:17 | After Int32 x = ... | Conditions.cs:13:9:13:18 | After ... ...; | | +| Conditions.cs:13:13:13:17 | Before Int32 x = ... | Conditions.cs:13:13:13:13 | access to local variable x | | +| Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:13:13:13:17 | After Int32 x = ... | | | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:17 | Int32 x = ... | | +| Conditions.cs:14:9:15:16 | After if (...) ... | Conditions.cs:16:9:18:20 | if (...) ... | | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | ...; | true | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | if (...) ... | false | +| Conditions.cs:14:13:14:13 | After access to parameter b [false] | Conditions.cs:14:9:15:16 | After if (...) ... | | +| Conditions.cs:14:13:14:13 | After access to parameter b [true] | Conditions.cs:15:13:15:16 | ...; | | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | After access to parameter b [false] | false | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:13:14:13 | After access to parameter b [true] | true | | Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:15 | ...++ | | -| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:16:9:18:20 | if (...) ... | | -| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:13 | access to local variable x | | -| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:13 | access to local variable x | | +| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:15:13:15:15 | After ...++ | | +| Conditions.cs:15:13:15:15 | After ...++ | Conditions.cs:15:13:15:16 | After ...; | | +| Conditions.cs:15:13:15:15 | Before ...++ | Conditions.cs:15:13:15:13 | access to local variable x | | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:15 | Before ...++ | | +| Conditions.cs:15:13:15:16 | After ...; | Conditions.cs:14:9:15:16 | After if (...) ... | | +| Conditions.cs:16:9:18:20 | After if (...) ... | Conditions.cs:19:9:19:17 | Before return ...; | | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:17 | Before ... > ... | | | Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:17:16:17 | 0 | | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:17:13:18:20 | if (...) ... | true | -| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | After ... > ... [false] | false | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:13:16:17 | After ... > ... [true] | true | +| Conditions.cs:16:13:16:17 | After ... > ... [false] | Conditions.cs:16:9:18:20 | After if (...) ... | | +| Conditions.cs:16:13:16:17 | After ... > ... [true] | Conditions.cs:17:13:18:20 | if (...) ... | | +| Conditions.cs:16:13:16:17 | Before ... > ... | Conditions.cs:16:13:16:13 | access to local variable x | | | Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:13:16:17 | ... > ... | | -| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:19:16:19:16 | access to local variable x | false | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | true | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | true | -| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | false | +| Conditions.cs:17:13:18:20 | After if (...) ... | Conditions.cs:16:9:18:20 | After if (...) ... | | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | !... | | +| Conditions.cs:17:17:17:18 | !... | Conditions.cs:17:18:17:18 | access to parameter b | | +| Conditions.cs:17:17:17:18 | After !... [false] | Conditions.cs:17:13:18:20 | After if (...) ... | | +| Conditions.cs:17:17:17:18 | After !... [true] | Conditions.cs:18:17:18:20 | ...; | | +| Conditions.cs:17:18:17:18 | After access to parameter b [false] | Conditions.cs:17:17:17:18 | After !... [true] | true | +| Conditions.cs:17:18:17:18 | After access to parameter b [true] | Conditions.cs:17:17:17:18 | After !... [false] | false | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | After access to parameter b [false] | false | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:18:17:18 | After access to parameter b [true] | true | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | | -| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:19:16:19:16 | access to local variable x | | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:17 | access to local variable x | | -| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | exit M1 (normal) | return | +| Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:19 | After ...-- | | +| Conditions.cs:18:17:18:19 | After ...-- | Conditions.cs:18:17:18:20 | After ...; | | +| Conditions.cs:18:17:18:19 | Before ...-- | Conditions.cs:18:17:18:17 | access to local variable x | | +| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:19 | Before ...-- | | +| Conditions.cs:18:17:18:20 | After ...; | Conditions.cs:17:13:18:20 | After if (...) ... | | +| Conditions.cs:19:9:19:17 | Before return ...; | Conditions.cs:19:16:19:16 | access to local variable x | | +| Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | Normal Exit | return | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:9:19:17 | return ...; | | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:23:5:31:5 | {...} | | -| Conditions.cs:22:9:22:10 | exit M2 (normal) | Conditions.cs:22:9:22:10 | exit M2 | | +| Conditions.cs:22:9:22:10 | Entry | Conditions.cs:23:5:31:5 | {...} | | +| Conditions.cs:22:9:22:10 | Normal Exit | Conditions.cs:22:9:22:10 | Exit | | | Conditions.cs:23:5:31:5 | {...} | Conditions.cs:24:9:24:18 | ... ...; | | -| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:17:24:17 | 0 | | -| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:25:9:27:20 | if (...) ... | | +| Conditions.cs:24:9:24:18 | ... ...; | Conditions.cs:24:13:24:17 | Before Int32 x = ... | | +| Conditions.cs:24:9:24:18 | After ... ...; | Conditions.cs:25:9:27:20 | if (...) ... | | +| Conditions.cs:24:13:24:13 | access to local variable x | Conditions.cs:24:17:24:17 | 0 | | +| Conditions.cs:24:13:24:17 | After Int32 x = ... | Conditions.cs:24:9:24:18 | After ... ...; | | +| Conditions.cs:24:13:24:17 | Before Int32 x = ... | Conditions.cs:24:13:24:13 | access to local variable x | | +| Conditions.cs:24:13:24:17 | Int32 x = ... | Conditions.cs:24:13:24:17 | After Int32 x = ... | | | Conditions.cs:24:17:24:17 | 0 | Conditions.cs:24:13:24:17 | Int32 x = ... | | +| Conditions.cs:25:9:27:20 | After if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... | | | Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | true | -| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | false | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | Conditions.cs:25:9:27:20 | After if (...) ... | | +| Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | Conditions.cs:26:13:27:20 | if (...) ... | | +| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | After access to parameter b1 [false] | false | +| Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:13:25:14 | After access to parameter b1 [true] | true | +| Conditions.cs:26:13:27:20 | After if (...) ... | Conditions.cs:25:9:27:20 | After if (...) ... | | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | ...; | true | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... | false | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | Conditions.cs:26:13:27:20 | After if (...) ... | | +| Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | Conditions.cs:27:17:27:20 | ...; | | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | After access to parameter b2 [false] | false | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:17:26:18 | After access to parameter b2 [true] | true | | Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:19 | ...++ | | -| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:28:9:29:16 | if (...) ... | | -| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:17 | access to local variable x | | +| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:27:17:27:19 | After ...++ | | +| Conditions.cs:27:17:27:19 | After ...++ | Conditions.cs:27:17:27:20 | After ...; | | +| Conditions.cs:27:17:27:19 | Before ...++ | Conditions.cs:27:17:27:17 | access to local variable x | | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:19 | Before ...++ | | +| Conditions.cs:27:17:27:20 | After ...; | Conditions.cs:26:13:27:20 | After if (...) ... | | +| Conditions.cs:28:9:29:16 | After if (...) ... | Conditions.cs:30:9:30:17 | Before return ...; | | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | true | -| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | false | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | Conditions.cs:28:9:29:16 | After if (...) ... | | +| Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | Conditions.cs:29:13:29:16 | ...; | | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | After access to parameter b2 [false] | false | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:13:28:14 | After access to parameter b2 [true] | true | | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | | -| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:30:16:30:16 | access to local variable x | | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:13 | access to local variable x | | -| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | exit M2 (normal) | return | +| Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:15 | After ...++ | | +| Conditions.cs:29:13:29:15 | After ...++ | Conditions.cs:29:13:29:16 | After ...; | | +| Conditions.cs:29:13:29:15 | Before ...++ | Conditions.cs:29:13:29:13 | access to local variable x | | +| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:15 | Before ...++ | | +| Conditions.cs:29:13:29:16 | After ...; | Conditions.cs:28:9:29:16 | After if (...) ... | | +| Conditions.cs:30:9:30:17 | Before return ...; | Conditions.cs:30:16:30:16 | access to local variable x | | +| Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | Normal Exit | return | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:9:30:17 | return ...; | | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:34:5:44:5 | {...} | | -| Conditions.cs:33:9:33:10 | exit M3 (normal) | Conditions.cs:33:9:33:10 | exit M3 | | +| Conditions.cs:33:9:33:10 | Entry | Conditions.cs:34:5:44:5 | {...} | | +| Conditions.cs:33:9:33:10 | Normal Exit | Conditions.cs:33:9:33:10 | Exit | | | Conditions.cs:34:5:44:5 | {...} | Conditions.cs:35:9:35:18 | ... ...; | | -| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:17:35:17 | 0 | | -| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:36:9:36:23 | ... ...; | | +| Conditions.cs:35:9:35:18 | ... ...; | Conditions.cs:35:13:35:17 | Before Int32 x = ... | | +| Conditions.cs:35:9:35:18 | After ... ...; | Conditions.cs:36:9:36:23 | ... ...; | | +| Conditions.cs:35:13:35:13 | access to local variable x | Conditions.cs:35:17:35:17 | 0 | | +| Conditions.cs:35:13:35:17 | After Int32 x = ... | Conditions.cs:35:9:35:18 | After ... ...; | | +| Conditions.cs:35:13:35:17 | Before Int32 x = ... | Conditions.cs:35:13:35:13 | access to local variable x | | +| Conditions.cs:35:13:35:17 | Int32 x = ... | Conditions.cs:35:13:35:17 | After Int32 x = ... | | | Conditions.cs:35:17:35:17 | 0 | Conditions.cs:35:13:35:17 | Int32 x = ... | | -| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:18:36:22 | false | | -| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:37:9:38:20 | if (...) ... | | +| Conditions.cs:36:9:36:23 | ... ...; | Conditions.cs:36:13:36:22 | Before Boolean b2 = ... | | +| Conditions.cs:36:9:36:23 | After ... ...; | Conditions.cs:37:9:38:20 | if (...) ... | | +| Conditions.cs:36:13:36:14 | access to local variable b2 | Conditions.cs:36:18:36:22 | false | | +| Conditions.cs:36:13:36:22 | After Boolean b2 = ... | Conditions.cs:36:9:36:23 | After ... ...; | | +| Conditions.cs:36:13:36:22 | Before Boolean b2 = ... | Conditions.cs:36:13:36:14 | access to local variable b2 | | +| Conditions.cs:36:13:36:22 | Boolean b2 = ... | Conditions.cs:36:13:36:22 | After Boolean b2 = ... | | | Conditions.cs:36:18:36:22 | false | Conditions.cs:36:13:36:22 | Boolean b2 = ... | | +| Conditions.cs:37:9:38:20 | After if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | | | Conditions.cs:37:9:38:20 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | true | -| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:39:9:40:16 | if (...) ... | false | -| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:39:9:40:16 | if (...) ... | | -| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:18:38:19 | access to parameter b1 | | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | Conditions.cs:37:9:38:20 | After if (...) ... | | +| Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | Conditions.cs:38:13:38:20 | ...; | | +| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | After access to parameter b1 [false] | false | +| Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:37:13:37:14 | After access to parameter b1 [true] | true | +| Conditions.cs:38:13:38:14 | access to local variable b2 | Conditions.cs:38:18:38:19 | access to parameter b1 | | +| Conditions.cs:38:13:38:19 | ... = ... | Conditions.cs:38:13:38:19 | After ... = ... | | +| Conditions.cs:38:13:38:19 | After ... = ... | Conditions.cs:38:13:38:20 | After ...; | | +| Conditions.cs:38:13:38:19 | Before ... = ... | Conditions.cs:38:13:38:14 | access to local variable b2 | | +| Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:19 | Before ... = ... | | +| Conditions.cs:38:13:38:20 | After ...; | Conditions.cs:37:9:38:20 | After if (...) ... | | | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:19 | ... = ... | | +| Conditions.cs:39:9:40:16 | After if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | ...; | true | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | false | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | Conditions.cs:39:9:40:16 | After if (...) ... | | +| Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | Conditions.cs:40:13:40:16 | ...; | | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | After access to local variable b2 [false] | false | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:13:39:14 | After access to local variable b2 [true] | true | | Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:15 | ...++ | | -| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:41:9:42:16 | if (...) ... | | -| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:13 | access to local variable x | | +| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:40:13:40:15 | After ...++ | | +| Conditions.cs:40:13:40:15 | After ...++ | Conditions.cs:40:13:40:16 | After ...; | | +| Conditions.cs:40:13:40:15 | Before ...++ | Conditions.cs:40:13:40:13 | access to local variable x | | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:15 | Before ...++ | | +| Conditions.cs:40:13:40:16 | After ...; | Conditions.cs:39:9:40:16 | After if (...) ... | | +| Conditions.cs:41:9:42:16 | After if (...) ... | Conditions.cs:43:9:43:17 | Before return ...; | | | Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | true | -| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | false | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | Conditions.cs:41:9:42:16 | After if (...) ... | | +| Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | Conditions.cs:42:13:42:16 | ...; | | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | After access to local variable b2 [false] | false | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:13:41:14 | After access to local variable b2 [true] | true | | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | | -| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:43:16:43:16 | access to local variable x | | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:13 | access to local variable x | | -| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | exit M3 (normal) | return | +| Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:15 | After ...++ | | +| Conditions.cs:42:13:42:15 | After ...++ | Conditions.cs:42:13:42:16 | After ...; | | +| Conditions.cs:42:13:42:15 | Before ...++ | Conditions.cs:42:13:42:13 | access to local variable x | | +| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:15 | Before ...++ | | +| Conditions.cs:42:13:42:16 | After ...; | Conditions.cs:41:9:42:16 | After if (...) ... | | +| Conditions.cs:43:9:43:17 | Before return ...; | Conditions.cs:43:16:43:16 | access to local variable x | | +| Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | Normal Exit | return | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:9:43:17 | return ...; | | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:47:5:55:5 | {...} | | -| Conditions.cs:46:9:46:10 | exit M4 (normal) | Conditions.cs:46:9:46:10 | exit M4 | | +| Conditions.cs:46:9:46:10 | Entry | Conditions.cs:47:5:55:5 | {...} | | +| Conditions.cs:46:9:46:10 | Normal Exit | Conditions.cs:46:9:46:10 | Exit | | | Conditions.cs:47:5:55:5 | {...} | Conditions.cs:48:9:48:18 | ... ...; | | -| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:17:48:17 | 0 | | -| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:49:9:53:9 | while (...) ... | | +| Conditions.cs:48:9:48:18 | ... ...; | Conditions.cs:48:13:48:17 | Before Int32 y = ... | | +| Conditions.cs:48:9:48:18 | After ... ...; | Conditions.cs:49:9:53:9 | while (...) ... | | +| Conditions.cs:48:13:48:13 | access to local variable y | Conditions.cs:48:17:48:17 | 0 | | +| Conditions.cs:48:13:48:17 | After Int32 y = ... | Conditions.cs:48:9:48:18 | After ... ...; | | +| Conditions.cs:48:13:48:17 | Before Int32 y = ... | Conditions.cs:48:13:48:13 | access to local variable y | | +| Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:13:48:17 | After Int32 y = ... | | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:17 | Int32 y = ... | | -| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:16 | access to parameter x | | +| Conditions.cs:49:9:53:9 | After while (...) ... | Conditions.cs:54:9:54:17 | Before return ...; | | +| Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | Conditions.cs:49:16:49:22 | Before ... > ... | | +| Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | ...-- | | -| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:22:49:22 | 0 | | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | true | -| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | +| Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:18 | After ...-- | | +| Conditions.cs:49:16:49:18 | After ...-- | Conditions.cs:49:22:49:22 | 0 | | +| Conditions.cs:49:16:49:18 | Before ...-- | Conditions.cs:49:16:49:16 | access to parameter x | | +| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | After ... > ... [false] | false | +| Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:16:49:22 | After ... > ... [true] | true | +| Conditions.cs:49:16:49:22 | After ... > ... [false] | Conditions.cs:49:9:53:9 | After while (...) ... | | +| Conditions.cs:49:16:49:22 | After ... > ... [true] | Conditions.cs:50:9:53:9 | {...} | | +| Conditions.cs:49:16:49:22 | Before ... > ... | Conditions.cs:49:16:49:18 | Before ...-- | | | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:22 | ... > ... | | +| Conditions.cs:50:9:53:9 | After {...} | Conditions.cs:49:9:53:9 | [LoopHeader] while (...) ... | | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:13:52:20 | if (...) ... | | +| Conditions.cs:51:13:52:20 | After if (...) ... | Conditions.cs:50:9:53:9 | After {...} | | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | access to parameter x | false | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | ...; | true | +| Conditions.cs:51:17:51:17 | After access to parameter b [false] | Conditions.cs:51:13:52:20 | After if (...) ... | | +| Conditions.cs:51:17:51:17 | After access to parameter b [true] | Conditions.cs:52:17:52:20 | ...; | | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | After access to parameter b [false] | false | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:17:51:17 | After access to parameter b [true] | true | | Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:19 | ...++ | | -| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:49:16:49:16 | access to parameter x | | -| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:17 | access to local variable y | | -| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | exit M4 (normal) | return | +| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:52:17:52:19 | After ...++ | | +| Conditions.cs:52:17:52:19 | After ...++ | Conditions.cs:52:17:52:20 | After ...; | | +| Conditions.cs:52:17:52:19 | Before ...++ | Conditions.cs:52:17:52:17 | access to local variable y | | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:19 | Before ...++ | | +| Conditions.cs:52:17:52:20 | After ...; | Conditions.cs:51:13:52:20 | After if (...) ... | | +| Conditions.cs:54:9:54:17 | Before return ...; | Conditions.cs:54:16:54:16 | access to local variable y | | +| Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | Normal Exit | return | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | return ...; | | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:58:5:68:5 | {...} | | -| Conditions.cs:57:9:57:10 | exit M5 (normal) | Conditions.cs:57:9:57:10 | exit M5 | | +| Conditions.cs:57:9:57:10 | Entry | Conditions.cs:58:5:68:5 | {...} | | +| Conditions.cs:57:9:57:10 | Normal Exit | Conditions.cs:57:9:57:10 | Exit | | | Conditions.cs:58:5:68:5 | {...} | Conditions.cs:59:9:59:18 | ... ...; | | -| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:17:59:17 | 0 | | -| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:60:9:64:9 | while (...) ... | | +| Conditions.cs:59:9:59:18 | ... ...; | Conditions.cs:59:13:59:17 | Before Int32 y = ... | | +| Conditions.cs:59:9:59:18 | After ... ...; | Conditions.cs:60:9:64:9 | while (...) ... | | +| Conditions.cs:59:13:59:13 | access to local variable y | Conditions.cs:59:17:59:17 | 0 | | +| Conditions.cs:59:13:59:17 | After Int32 y = ... | Conditions.cs:59:9:59:18 | After ... ...; | | +| Conditions.cs:59:13:59:17 | Before Int32 y = ... | Conditions.cs:59:13:59:13 | access to local variable y | | +| Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:13:59:17 | After Int32 y = ... | | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:17 | Int32 y = ... | | -| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | | +| Conditions.cs:60:9:64:9 | After while (...) ... | Conditions.cs:65:9:66:16 | if (...) ... | | +| Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | Conditions.cs:60:16:60:22 | Before ... > ... | | +| Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | ...-- | | -| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:22:60:22 | 0 | | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | true | -| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | false | +| Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:18 | After ...-- | | +| Conditions.cs:60:16:60:18 | After ...-- | Conditions.cs:60:22:60:22 | 0 | | +| Conditions.cs:60:16:60:18 | Before ...-- | Conditions.cs:60:16:60:16 | access to parameter x | | +| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | After ... > ... [false] | false | +| Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:16:60:22 | After ... > ... [true] | true | +| Conditions.cs:60:16:60:22 | After ... > ... [false] | Conditions.cs:60:9:64:9 | After while (...) ... | | +| Conditions.cs:60:16:60:22 | After ... > ... [true] | Conditions.cs:61:9:64:9 | {...} | | +| Conditions.cs:60:16:60:22 | Before ... > ... | Conditions.cs:60:16:60:18 | Before ...-- | | | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:22 | ... > ... | | +| Conditions.cs:61:9:64:9 | After {...} | Conditions.cs:60:9:64:9 | [LoopHeader] while (...) ... | | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:13:63:20 | if (...) ... | | +| Conditions.cs:62:13:63:20 | After if (...) ... | Conditions.cs:61:9:64:9 | After {...} | | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | access to parameter x | false | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | ...; | true | +| Conditions.cs:62:17:62:17 | After access to parameter b [false] | Conditions.cs:62:13:63:20 | After if (...) ... | | +| Conditions.cs:62:17:62:17 | After access to parameter b [true] | Conditions.cs:63:17:63:20 | ...; | | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | After access to parameter b [false] | false | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:17:62:17 | After access to parameter b [true] | true | | Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:19 | ...++ | | -| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:60:16:60:16 | access to parameter x | | -| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:17 | access to local variable y | | +| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:63:17:63:19 | After ...++ | | +| Conditions.cs:63:17:63:19 | After ...++ | Conditions.cs:63:17:63:20 | After ...; | | +| Conditions.cs:63:17:63:19 | Before ...++ | Conditions.cs:63:17:63:17 | access to local variable y | | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:19 | Before ...++ | | +| Conditions.cs:63:17:63:20 | After ...; | Conditions.cs:62:13:63:20 | After if (...) ... | | +| Conditions.cs:65:9:66:16 | After if (...) ... | Conditions.cs:67:9:67:17 | Before return ...; | | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | true | -| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | false | +| Conditions.cs:65:13:65:13 | After access to parameter b [false] | Conditions.cs:65:9:66:16 | After if (...) ... | | +| Conditions.cs:65:13:65:13 | After access to parameter b [true] | Conditions.cs:66:13:66:16 | ...; | | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | After access to parameter b [false] | false | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:13:65:13 | After access to parameter b [true] | true | | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | | -| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:67:16:67:16 | access to local variable y | | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:13 | access to local variable y | | -| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | exit M5 (normal) | return | +| Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:15 | After ...++ | | +| Conditions.cs:66:13:66:15 | After ...++ | Conditions.cs:66:13:66:16 | After ...; | | +| Conditions.cs:66:13:66:15 | Before ...++ | Conditions.cs:66:13:66:13 | access to local variable y | | +| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:15 | Before ...++ | | +| Conditions.cs:66:13:66:16 | After ...; | Conditions.cs:65:9:66:16 | After if (...) ... | | +| Conditions.cs:67:9:67:17 | Before return ...; | Conditions.cs:67:16:67:16 | access to local variable y | | +| Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | Normal Exit | return | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:9:67:17 | return ...; | | -| Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:71:5:84:5 | {...} | | -| Conditions.cs:70:9:70:10 | exit M6 (normal) | Conditions.cs:70:9:70:10 | exit M6 | | +| Conditions.cs:70:9:70:10 | Entry | Conditions.cs:71:5:84:5 | {...} | | +| Conditions.cs:70:9:70:10 | Normal Exit | Conditions.cs:70:9:70:10 | Exit | | | Conditions.cs:71:5:84:5 | {...} | Conditions.cs:72:9:72:30 | ... ...; | | -| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:17:72:18 | access to parameter ss | | -| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:73:9:73:18 | ... ...; | | +| Conditions.cs:72:9:72:30 | ... ...; | Conditions.cs:72:13:72:29 | Before Boolean b = ... | | +| Conditions.cs:72:9:72:30 | After ... ...; | Conditions.cs:73:9:73:18 | ... ...; | | +| Conditions.cs:72:13:72:13 | access to local variable b | Conditions.cs:72:17:72:29 | Before ... > ... | | +| Conditions.cs:72:13:72:29 | After Boolean b = ... | Conditions.cs:72:9:72:30 | After ... ...; | | +| Conditions.cs:72:13:72:29 | Before Boolean b = ... | Conditions.cs:72:13:72:13 | access to local variable b | | +| Conditions.cs:72:13:72:29 | Boolean b = ... | Conditions.cs:72:13:72:29 | After Boolean b = ... | | | Conditions.cs:72:17:72:18 | access to parameter ss | Conditions.cs:72:17:72:25 | access to property Length | | -| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:29:72:29 | 0 | | -| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:13:72:29 | Boolean b = ... | | +| Conditions.cs:72:17:72:25 | After access to property Length | Conditions.cs:72:29:72:29 | 0 | | +| Conditions.cs:72:17:72:25 | Before access to property Length | Conditions.cs:72:17:72:18 | access to parameter ss | | +| Conditions.cs:72:17:72:25 | access to property Length | Conditions.cs:72:17:72:25 | After access to property Length | | +| Conditions.cs:72:17:72:29 | ... > ... | Conditions.cs:72:17:72:29 | After ... > ... | | +| Conditions.cs:72:17:72:29 | After ... > ... | Conditions.cs:72:13:72:29 | Boolean b = ... | | +| Conditions.cs:72:17:72:29 | Before ... > ... | Conditions.cs:72:17:72:25 | Before access to property Length | | | Conditions.cs:72:29:72:29 | 0 | Conditions.cs:72:17:72:29 | ... > ... | | -| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:17:73:17 | 0 | | -| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:74:27:74:28 | access to parameter ss | | +| Conditions.cs:73:9:73:18 | ... ...; | Conditions.cs:73:13:73:17 | Before Int32 x = ... | | +| Conditions.cs:73:9:73:18 | After ... ...; | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | | +| Conditions.cs:73:13:73:13 | access to local variable x | Conditions.cs:73:17:73:17 | 0 | | +| Conditions.cs:73:13:73:17 | After Int32 x = ... | Conditions.cs:73:9:73:18 | After ... ...; | | +| Conditions.cs:73:13:73:17 | Before Int32 x = ... | Conditions.cs:73:13:73:13 | access to local variable x | | +| Conditions.cs:73:13:73:17 | Int32 x = ... | Conditions.cs:73:13:73:17 | After Int32 x = ... | | | Conditions.cs:73:17:73:17 | 0 | Conditions.cs:73:13:73:17 | Int32 x = ... | | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | non-empty | -| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | empty | +| Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | Conditions.cs:81:9:82:16 | if (...) ... | | +| Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | | +| Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | | +| Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:27:74:28 | access to parameter ss | | | Conditions.cs:74:22:74:22 | String _ | Conditions.cs:75:9:80:9 | {...} | | -| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | | +| Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | Conditions.cs:74:9:80:9 | After foreach (... ... in ...) ... | | +| Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | Conditions.cs:74:22:74:22 | String _ | | +| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | After access to parameter ss [empty] | empty | +| Conditions.cs:74:27:74:28 | access to parameter ss | Conditions.cs:74:27:74:28 | After access to parameter ss [non-empty] | non-empty | +| Conditions.cs:75:9:80:9 | After {...} | Conditions.cs:74:9:80:9 | [LoopHeader] foreach (... ... in ...) ... | | | Conditions.cs:75:9:80:9 | {...} | Conditions.cs:76:13:77:20 | if (...) ... | | +| Conditions.cs:76:13:77:20 | After if (...) ... | Conditions.cs:78:13:79:26 | if (...) ... | | | Conditions.cs:76:13:77:20 | if (...) ... | Conditions.cs:76:17:76:17 | access to local variable b | | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; | true | -| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:78:13:79:26 | if (...) ... | false | +| Conditions.cs:76:17:76:17 | After access to local variable b [false] | Conditions.cs:76:13:77:20 | After if (...) ... | | +| Conditions.cs:76:17:76:17 | After access to local variable b [true] | Conditions.cs:77:17:77:20 | ...; | | +| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | After access to local variable b [false] | false | +| Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:76:17:76:17 | After access to local variable b [true] | true | | Conditions.cs:77:17:77:17 | access to local variable x | Conditions.cs:77:17:77:19 | ...++ | | -| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:78:13:79:26 | if (...) ... | | -| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:17 | access to local variable x | | -| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:17 | access to local variable x | | +| Conditions.cs:77:17:77:19 | ...++ | Conditions.cs:77:17:77:19 | After ...++ | | +| Conditions.cs:77:17:77:19 | After ...++ | Conditions.cs:77:17:77:20 | After ...; | | +| Conditions.cs:77:17:77:19 | Before ...++ | Conditions.cs:77:17:77:17 | access to local variable x | | +| Conditions.cs:77:17:77:20 | ...; | Conditions.cs:77:17:77:19 | Before ...++ | | +| Conditions.cs:77:17:77:20 | After ...; | Conditions.cs:76:13:77:20 | After if (...) ... | | +| Conditions.cs:78:13:79:26 | After if (...) ... | Conditions.cs:75:9:80:9 | After {...} | | +| Conditions.cs:78:13:79:26 | if (...) ... | Conditions.cs:78:17:78:21 | Before ... > ... | | | Conditions.cs:78:17:78:17 | access to local variable x | Conditions.cs:78:21:78:21 | 0 | | -| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | false | -| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:79:17:79:26 | ...; | true | +| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | After ... > ... [false] | false | +| Conditions.cs:78:17:78:21 | ... > ... | Conditions.cs:78:17:78:21 | After ... > ... [true] | true | +| Conditions.cs:78:17:78:21 | After ... > ... [false] | Conditions.cs:78:13:79:26 | After if (...) ... | | +| Conditions.cs:78:17:78:21 | After ... > ... [true] | Conditions.cs:79:17:79:26 | ...; | | +| Conditions.cs:78:17:78:21 | Before ... > ... | Conditions.cs:78:17:78:17 | access to local variable x | | | Conditions.cs:78:21:78:21 | 0 | Conditions.cs:78:17:78:21 | ... > ... | | -| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | | -| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:21:79:25 | false | | +| Conditions.cs:79:17:79:17 | access to local variable b | Conditions.cs:79:21:79:25 | false | | +| Conditions.cs:79:17:79:25 | ... = ... | Conditions.cs:79:17:79:25 | After ... = ... | | +| Conditions.cs:79:17:79:25 | After ... = ... | Conditions.cs:79:17:79:26 | After ...; | | +| Conditions.cs:79:17:79:25 | Before ... = ... | Conditions.cs:79:17:79:17 | access to local variable b | | +| Conditions.cs:79:17:79:26 | ...; | Conditions.cs:79:17:79:25 | Before ... = ... | | +| Conditions.cs:79:17:79:26 | After ...; | Conditions.cs:78:13:79:26 | After if (...) ... | | | Conditions.cs:79:21:79:25 | false | Conditions.cs:79:17:79:25 | ... = ... | | +| Conditions.cs:81:9:82:16 | After if (...) ... | Conditions.cs:83:9:83:17 | Before return ...; | | | Conditions.cs:81:9:82:16 | if (...) ... | Conditions.cs:81:13:81:13 | access to local variable b | | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:82:13:82:16 | ...; | true | -| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:83:16:83:16 | access to local variable x | false | +| Conditions.cs:81:13:81:13 | After access to local variable b [false] | Conditions.cs:81:9:82:16 | After if (...) ... | | +| Conditions.cs:81:13:81:13 | After access to local variable b [true] | Conditions.cs:82:13:82:16 | ...; | | +| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | After access to local variable b [false] | false | +| Conditions.cs:81:13:81:13 | access to local variable b | Conditions.cs:81:13:81:13 | After access to local variable b [true] | true | | Conditions.cs:82:13:82:13 | access to local variable x | Conditions.cs:82:13:82:15 | ...++ | | -| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:83:16:83:16 | access to local variable x | | -| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:13 | access to local variable x | | -| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:70:9:70:10 | exit M6 (normal) | return | +| Conditions.cs:82:13:82:15 | ...++ | Conditions.cs:82:13:82:15 | After ...++ | | +| Conditions.cs:82:13:82:15 | After ...++ | Conditions.cs:82:13:82:16 | After ...; | | +| Conditions.cs:82:13:82:15 | Before ...++ | Conditions.cs:82:13:82:13 | access to local variable x | | +| Conditions.cs:82:13:82:16 | ...; | Conditions.cs:82:13:82:15 | Before ...++ | | +| Conditions.cs:82:13:82:16 | After ...; | Conditions.cs:81:9:82:16 | After if (...) ... | | +| Conditions.cs:83:9:83:17 | Before return ...; | Conditions.cs:83:16:83:16 | access to local variable x | | +| Conditions.cs:83:9:83:17 | return ...; | Conditions.cs:70:9:70:10 | Normal Exit | return | | Conditions.cs:83:16:83:16 | access to local variable x | Conditions.cs:83:9:83:17 | return ...; | | -| Conditions.cs:86:9:86:10 | enter M7 | Conditions.cs:87:5:100:5 | {...} | | -| Conditions.cs:86:9:86:10 | exit M7 (normal) | Conditions.cs:86:9:86:10 | exit M7 | | +| Conditions.cs:86:9:86:10 | Entry | Conditions.cs:87:5:100:5 | {...} | | +| Conditions.cs:86:9:86:10 | Normal Exit | Conditions.cs:86:9:86:10 | Exit | | | Conditions.cs:87:5:100:5 | {...} | Conditions.cs:88:9:88:30 | ... ...; | | -| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:17:88:18 | access to parameter ss | | -| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:89:9:89:18 | ... ...; | | +| Conditions.cs:88:9:88:30 | ... ...; | Conditions.cs:88:13:88:29 | Before Boolean b = ... | | +| Conditions.cs:88:9:88:30 | After ... ...; | Conditions.cs:89:9:89:18 | ... ...; | | +| Conditions.cs:88:13:88:13 | access to local variable b | Conditions.cs:88:17:88:29 | Before ... > ... | | +| Conditions.cs:88:13:88:29 | After Boolean b = ... | Conditions.cs:88:9:88:30 | After ... ...; | | +| Conditions.cs:88:13:88:29 | Before Boolean b = ... | Conditions.cs:88:13:88:13 | access to local variable b | | +| Conditions.cs:88:13:88:29 | Boolean b = ... | Conditions.cs:88:13:88:29 | After Boolean b = ... | | | Conditions.cs:88:17:88:18 | access to parameter ss | Conditions.cs:88:17:88:25 | access to property Length | | -| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:29:88:29 | 0 | | -| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:13:88:29 | Boolean b = ... | | +| Conditions.cs:88:17:88:25 | After access to property Length | Conditions.cs:88:29:88:29 | 0 | | +| Conditions.cs:88:17:88:25 | Before access to property Length | Conditions.cs:88:17:88:18 | access to parameter ss | | +| Conditions.cs:88:17:88:25 | access to property Length | Conditions.cs:88:17:88:25 | After access to property Length | | +| Conditions.cs:88:17:88:29 | ... > ... | Conditions.cs:88:17:88:29 | After ... > ... | | +| Conditions.cs:88:17:88:29 | After ... > ... | Conditions.cs:88:13:88:29 | Boolean b = ... | | +| Conditions.cs:88:17:88:29 | Before ... > ... | Conditions.cs:88:17:88:25 | Before access to property Length | | | Conditions.cs:88:29:88:29 | 0 | Conditions.cs:88:17:88:29 | ... > ... | | -| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:17:89:17 | 0 | | -| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:90:27:90:28 | access to parameter ss | | +| Conditions.cs:89:9:89:18 | ... ...; | Conditions.cs:89:13:89:17 | Before Int32 x = ... | | +| Conditions.cs:89:9:89:18 | After ... ...; | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | | +| Conditions.cs:89:13:89:13 | access to local variable x | Conditions.cs:89:17:89:17 | 0 | | +| Conditions.cs:89:13:89:17 | After Int32 x = ... | Conditions.cs:89:9:89:18 | After ... ...; | | +| Conditions.cs:89:13:89:17 | Before Int32 x = ... | Conditions.cs:89:13:89:13 | access to local variable x | | +| Conditions.cs:89:13:89:17 | Int32 x = ... | Conditions.cs:89:13:89:17 | After Int32 x = ... | | | Conditions.cs:89:17:89:17 | 0 | Conditions.cs:89:13:89:17 | Int32 x = ... | | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:22:90:22 | String _ | non-empty | -| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:99:16:99:16 | access to local variable x | empty | +| Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | Conditions.cs:99:9:99:17 | Before return ...; | | +| Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | | +| Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | Conditions.cs:90:22:90:22 | String _ | | +| Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | Conditions.cs:90:27:90:28 | access to parameter ss | | | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:91:9:98:9 | {...} | | -| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | | +| Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | Conditions.cs:90:9:98:9 | After foreach (... ... in ...) ... | | +| Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | Conditions.cs:90:22:90:22 | String _ | | +| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | After access to parameter ss [empty] | empty | +| Conditions.cs:90:27:90:28 | access to parameter ss | Conditions.cs:90:27:90:28 | After access to parameter ss [non-empty] | non-empty | +| Conditions.cs:91:9:98:9 | After {...} | Conditions.cs:90:9:98:9 | [LoopHeader] foreach (... ... in ...) ... | | | Conditions.cs:91:9:98:9 | {...} | Conditions.cs:92:13:93:20 | if (...) ... | | +| Conditions.cs:92:13:93:20 | After if (...) ... | Conditions.cs:94:13:95:26 | if (...) ... | | | Conditions.cs:92:13:93:20 | if (...) ... | Conditions.cs:92:17:92:17 | access to local variable b | | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:93:17:93:20 | ...; | true | -| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:94:13:95:26 | if (...) ... | false | +| Conditions.cs:92:17:92:17 | After access to local variable b [false] | Conditions.cs:92:13:93:20 | After if (...) ... | | +| Conditions.cs:92:17:92:17 | After access to local variable b [true] | Conditions.cs:93:17:93:20 | ...; | | +| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | After access to local variable b [false] | false | +| Conditions.cs:92:17:92:17 | access to local variable b | Conditions.cs:92:17:92:17 | After access to local variable b [true] | true | | Conditions.cs:93:17:93:17 | access to local variable x | Conditions.cs:93:17:93:19 | ...++ | | -| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:94:13:95:26 | if (...) ... | | -| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:17 | access to local variable x | | -| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:17 | access to local variable x | | +| Conditions.cs:93:17:93:19 | ...++ | Conditions.cs:93:17:93:19 | After ...++ | | +| Conditions.cs:93:17:93:19 | After ...++ | Conditions.cs:93:17:93:20 | After ...; | | +| Conditions.cs:93:17:93:19 | Before ...++ | Conditions.cs:93:17:93:17 | access to local variable x | | +| Conditions.cs:93:17:93:20 | ...; | Conditions.cs:93:17:93:19 | Before ...++ | | +| Conditions.cs:93:17:93:20 | After ...; | Conditions.cs:92:13:93:20 | After if (...) ... | | +| Conditions.cs:94:13:95:26 | After if (...) ... | Conditions.cs:96:13:97:20 | if (...) ... | | +| Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:94:17:94:21 | Before ... > ... | | | Conditions.cs:94:17:94:17 | access to local variable x | Conditions.cs:94:21:94:21 | 0 | | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:95:17:95:26 | ...; | true | -| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:96:13:97:20 | if (...) ... | false | +| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | After ... > ... [false] | false | +| Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:94:17:94:21 | After ... > ... [true] | true | +| Conditions.cs:94:17:94:21 | After ... > ... [false] | Conditions.cs:94:13:95:26 | After if (...) ... | | +| Conditions.cs:94:17:94:21 | After ... > ... [true] | Conditions.cs:95:17:95:26 | ...; | | +| Conditions.cs:94:17:94:21 | Before ... > ... | Conditions.cs:94:17:94:17 | access to local variable x | | | Conditions.cs:94:21:94:21 | 0 | Conditions.cs:94:17:94:21 | ... > ... | | -| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:96:13:97:20 | if (...) ... | | -| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:21:95:25 | false | | +| Conditions.cs:95:17:95:17 | access to local variable b | Conditions.cs:95:21:95:25 | false | | +| Conditions.cs:95:17:95:25 | ... = ... | Conditions.cs:95:17:95:25 | After ... = ... | | +| Conditions.cs:95:17:95:25 | After ... = ... | Conditions.cs:95:17:95:26 | After ...; | | +| Conditions.cs:95:17:95:25 | Before ... = ... | Conditions.cs:95:17:95:17 | access to local variable b | | +| Conditions.cs:95:17:95:26 | ...; | Conditions.cs:95:17:95:25 | Before ... = ... | | +| Conditions.cs:95:17:95:26 | After ...; | Conditions.cs:94:13:95:26 | After if (...) ... | | | Conditions.cs:95:21:95:25 | false | Conditions.cs:95:17:95:25 | ... = ... | | +| Conditions.cs:96:13:97:20 | After if (...) ... | Conditions.cs:91:9:98:9 | After {...} | | | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:96:17:96:17 | access to local variable b | | -| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | false | -| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; | true | +| Conditions.cs:96:17:96:17 | After access to local variable b [false] | Conditions.cs:96:13:97:20 | After if (...) ... | | +| Conditions.cs:96:17:96:17 | After access to local variable b [true] | Conditions.cs:97:17:97:20 | ...; | | +| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | After access to local variable b [false] | false | +| Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:96:17:96:17 | After access to local variable b [true] | true | | Conditions.cs:97:17:97:17 | access to local variable x | Conditions.cs:97:17:97:19 | ...++ | | -| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | | -| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:17 | access to local variable x | | -| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:86:9:86:10 | exit M7 (normal) | return | +| Conditions.cs:97:17:97:19 | ...++ | Conditions.cs:97:17:97:19 | After ...++ | | +| Conditions.cs:97:17:97:19 | After ...++ | Conditions.cs:97:17:97:20 | After ...; | | +| Conditions.cs:97:17:97:19 | Before ...++ | Conditions.cs:97:17:97:17 | access to local variable x | | +| Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:19 | Before ...++ | | +| Conditions.cs:97:17:97:20 | After ...; | Conditions.cs:96:13:97:20 | After if (...) ... | | +| Conditions.cs:99:9:99:17 | Before return ...; | Conditions.cs:99:16:99:16 | access to local variable x | | +| Conditions.cs:99:9:99:17 | return ...; | Conditions.cs:86:9:86:10 | Normal Exit | return | | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:9:99:17 | return ...; | | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:103:5:111:5 | {...} | | -| Conditions.cs:102:12:102:13 | exit M8 (normal) | Conditions.cs:102:12:102:13 | exit M8 | | +| Conditions.cs:102:12:102:13 | Entry | Conditions.cs:103:5:111:5 | {...} | | +| Conditions.cs:102:12:102:13 | Normal Exit | Conditions.cs:102:12:102:13 | Exit | | | Conditions.cs:103:5:111:5 | {...} | Conditions.cs:104:9:104:29 | ... ...; | | -| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:17:104:17 | access to parameter b | | -| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:105:9:106:20 | if (...) ... | | +| Conditions.cs:104:9:104:29 | ... ...; | Conditions.cs:104:13:104:28 | Before String x = ... | | +| Conditions.cs:104:9:104:29 | After ... ...; | Conditions.cs:105:9:106:20 | if (...) ... | | +| Conditions.cs:104:13:104:13 | access to local variable x | Conditions.cs:104:17:104:28 | Before call to method ToString | | +| Conditions.cs:104:13:104:28 | After String x = ... | Conditions.cs:104:9:104:29 | After ... ...; | | +| Conditions.cs:104:13:104:28 | Before String x = ... | Conditions.cs:104:13:104:13 | access to local variable x | | +| Conditions.cs:104:13:104:28 | String x = ... | Conditions.cs:104:13:104:28 | After String x = ... | | | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | call to method ToString | | -| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | | +| Conditions.cs:104:17:104:28 | After call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | | +| Conditions.cs:104:17:104:28 | Before call to method ToString | Conditions.cs:104:17:104:17 | access to parameter b | | +| Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:28 | After call to method ToString | | +| Conditions.cs:105:9:106:20 | After if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... | | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | ...; | true | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | if (...) ... | false | +| Conditions.cs:105:13:105:13 | After access to parameter b [false] | Conditions.cs:105:9:106:20 | After if (...) ... | | +| Conditions.cs:105:13:105:13 | After access to parameter b [true] | Conditions.cs:106:13:106:20 | ...; | | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | After access to parameter b [false] | false | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:13:105:13 | After access to parameter b [true] | true | | Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:18:106:19 | "" | | -| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:107:9:109:24 | if (...) ... | | -| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:13 | access to local variable x | | +| Conditions.cs:106:13:106:19 | ... += ... | Conditions.cs:106:13:106:19 | After ... += ... | | +| Conditions.cs:106:13:106:19 | After ... += ... | Conditions.cs:106:13:106:20 | After ...; | | +| Conditions.cs:106:13:106:19 | Before ... += ... | Conditions.cs:106:13:106:13 | access to local variable x | | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:19 | Before ... += ... | | +| Conditions.cs:106:13:106:20 | After ...; | Conditions.cs:105:9:106:20 | After if (...) ... | | | Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:13:106:19 | ... += ... | | -| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:13 | access to local variable x | | +| Conditions.cs:107:9:109:24 | After if (...) ... | Conditions.cs:110:9:110:17 | Before return ...; | | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:24 | Before ... > ... | | | Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:20 | access to property Length | | -| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:24:107:24 | 0 | | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:108:13:109:24 | if (...) ... | true | -| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | +| Conditions.cs:107:13:107:20 | After access to property Length | Conditions.cs:107:24:107:24 | 0 | | +| Conditions.cs:107:13:107:20 | Before access to property Length | Conditions.cs:107:13:107:13 | access to local variable x | | +| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:13:107:20 | After access to property Length | | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | After ... > ... [false] | false | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:13:107:24 | After ... > ... [true] | true | +| Conditions.cs:107:13:107:24 | After ... > ... [false] | Conditions.cs:107:9:109:24 | After if (...) ... | | +| Conditions.cs:107:13:107:24 | After ... > ... [true] | Conditions.cs:108:13:109:24 | if (...) ... | | +| Conditions.cs:107:13:107:24 | Before ... > ... | Conditions.cs:107:13:107:20 | Before access to property Length | | | Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:24 | ... > ... | | -| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:110:16:110:16 | access to local variable x | false | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | true | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | true | -| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | false | +| Conditions.cs:108:13:109:24 | After if (...) ... | Conditions.cs:107:9:109:24 | After if (...) ... | | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | !... | | +| Conditions.cs:108:17:108:18 | !... | Conditions.cs:108:18:108:18 | access to parameter b | | +| Conditions.cs:108:17:108:18 | After !... [false] | Conditions.cs:108:13:109:24 | After if (...) ... | | +| Conditions.cs:108:17:108:18 | After !... [true] | Conditions.cs:109:17:109:24 | ...; | | +| Conditions.cs:108:18:108:18 | After access to parameter b [false] | Conditions.cs:108:17:108:18 | After !... [true] | true | +| Conditions.cs:108:18:108:18 | After access to parameter b [true] | Conditions.cs:108:17:108:18 | After !... [false] | false | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | After access to parameter b [false] | false | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:18:108:18 | After access to parameter b [true] | true | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" | | -| Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:110:16:110:16 | access to local variable x | | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:17 | access to local variable x | | +| Conditions.cs:109:17:109:23 | ... += ... | Conditions.cs:109:17:109:23 | After ... += ... | | +| Conditions.cs:109:17:109:23 | After ... += ... | Conditions.cs:109:17:109:24 | After ...; | | +| Conditions.cs:109:17:109:23 | Before ... += ... | Conditions.cs:109:17:109:17 | access to local variable x | | +| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:23 | Before ... += ... | | +| Conditions.cs:109:17:109:24 | After ...; | Conditions.cs:108:13:109:24 | After if (...) ... | | | Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:23 | ... += ... | | -| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:102:12:102:13 | exit M8 (normal) | return | +| Conditions.cs:110:9:110:17 | Before return ...; | Conditions.cs:110:16:110:16 | access to local variable x | | +| Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:102:12:102:13 | Normal Exit | return | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:110:9:110:17 | return ...; | | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:114:5:124:5 | {...} | | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | exit M9 | | +| Conditions.cs:113:10:113:11 | Entry | Conditions.cs:114:5:124:5 | {...} | | +| Conditions.cs:113:10:113:11 | Normal Exit | Conditions.cs:113:10:113:11 | Exit | | +| Conditions.cs:114:5:124:5 | After {...} | Conditions.cs:113:10:113:11 | Normal Exit | | | Conditions.cs:114:5:124:5 | {...} | Conditions.cs:115:9:115:24 | ... ...; | | -| Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:115:20:115:23 | null | | -| Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:116:9:123:9 | for (...;...;...) ... | | +| Conditions.cs:115:9:115:24 | ... ...; | Conditions.cs:115:16:115:23 | Before String s = ... | | +| Conditions.cs:115:9:115:24 | After ... ...; | Conditions.cs:116:9:123:9 | for (...;...;...) ... | | +| Conditions.cs:115:16:115:16 | access to local variable s | Conditions.cs:115:20:115:23 | null | | +| Conditions.cs:115:16:115:23 | After String s = ... | Conditions.cs:115:9:115:24 | After ... ...; | | +| Conditions.cs:115:16:115:23 | Before String s = ... | Conditions.cs:115:16:115:16 | access to local variable s | | +| Conditions.cs:115:16:115:23 | String s = ... | Conditions.cs:115:16:115:23 | After String s = ... | | | Conditions.cs:115:20:115:23 | null | Conditions.cs:115:16:115:23 | String s = ... | | -| Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:116:22:116:22 | 0 | | -| Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:25:116:25 | access to local variable i | | +| Conditions.cs:116:9:123:9 | After for (...;...;...) ... | Conditions.cs:114:5:124:5 | After {...} | | +| Conditions.cs:116:9:123:9 | [LoopHeader] for (...;...;...) ... | Conditions.cs:116:42:116:44 | Before ...++ | | +| Conditions.cs:116:9:123:9 | for (...;...;...) ... | Conditions.cs:116:18:116:22 | Before Int32 i = ... | | +| Conditions.cs:116:18:116:18 | access to local variable i | Conditions.cs:116:22:116:22 | 0 | | +| Conditions.cs:116:18:116:22 | After Int32 i = ... | Conditions.cs:116:25:116:39 | Before ... < ... | | +| Conditions.cs:116:18:116:22 | Before Int32 i = ... | Conditions.cs:116:18:116:18 | access to local variable i | | +| Conditions.cs:116:18:116:22 | Int32 i = ... | Conditions.cs:116:18:116:22 | After Int32 i = ... | | | Conditions.cs:116:22:116:22 | 0 | Conditions.cs:116:18:116:22 | Int32 i = ... | | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:29:116:32 | access to parameter args | | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:113:10:113:11 | exit M9 (normal) | false | -| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:117:9:123:9 | {...} | true | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:29:116:39 | Before access to property Length | | +| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [false] | false | +| Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:25:116:39 | After ... < ... [true] | true | +| Conditions.cs:116:25:116:39 | After ... < ... [false] | Conditions.cs:116:9:123:9 | After for (...;...;...) ... | | +| Conditions.cs:116:25:116:39 | After ... < ... [true] | Conditions.cs:117:9:123:9 | {...} | | +| Conditions.cs:116:25:116:39 | Before ... < ... | Conditions.cs:116:25:116:25 | access to local variable i | | | Conditions.cs:116:29:116:32 | access to parameter args | Conditions.cs:116:29:116:39 | access to property Length | | -| Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:116:25:116:39 | ... < ... | | +| Conditions.cs:116:29:116:39 | After access to property Length | Conditions.cs:116:25:116:39 | ... < ... | | +| Conditions.cs:116:29:116:39 | Before access to property Length | Conditions.cs:116:29:116:32 | access to parameter args | | +| Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:116:29:116:39 | After access to property Length | | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:44 | ...++ | | -| Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:116:25:116:25 | access to local variable i | | +| Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:116:42:116:44 | After ...++ | | +| Conditions.cs:116:42:116:44 | After ...++ | Conditions.cs:116:25:116:39 | Before ... < ... | | +| Conditions.cs:116:42:116:44 | Before ...++ | Conditions.cs:116:42:116:42 | access to local variable i | | +| Conditions.cs:117:9:123:9 | After {...} | Conditions.cs:116:9:123:9 | [LoopHeader] for (...;...;...) ... | | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:118:13:118:44 | ... ...; | | -| Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:118:24:118:24 | access to local variable i | | -| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:119:13:120:23 | if (...) ... | | -| Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:29:118:32 | access to parameter args | | -| Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:17:118:43 | Boolean last = ... | | +| Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:118:17:118:43 | Before Boolean last = ... | | +| Conditions.cs:118:13:118:44 | After ... ...; | Conditions.cs:119:13:120:23 | if (...) ... | | +| Conditions.cs:118:17:118:20 | access to local variable last | Conditions.cs:118:24:118:43 | Before ... == ... | | +| Conditions.cs:118:17:118:43 | After Boolean last = ... | Conditions.cs:118:13:118:44 | After ... ...; | | +| Conditions.cs:118:17:118:43 | Before Boolean last = ... | Conditions.cs:118:17:118:20 | access to local variable last | | +| Conditions.cs:118:17:118:43 | Boolean last = ... | Conditions.cs:118:17:118:43 | After Boolean last = ... | | +| Conditions.cs:118:24:118:24 | access to local variable i | Conditions.cs:118:29:118:43 | Before ... - ... | | +| Conditions.cs:118:24:118:43 | ... == ... | Conditions.cs:118:24:118:43 | After ... == ... | | +| Conditions.cs:118:24:118:43 | After ... == ... | Conditions.cs:118:17:118:43 | Boolean last = ... | | +| Conditions.cs:118:24:118:43 | Before ... == ... | Conditions.cs:118:24:118:24 | access to local variable i | | | Conditions.cs:118:29:118:32 | access to parameter args | Conditions.cs:118:29:118:39 | access to property Length | | -| Conditions.cs:118:29:118:39 | access to property Length | Conditions.cs:118:43:118:43 | 1 | | -| Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:24:118:43 | ... == ... | | +| Conditions.cs:118:29:118:39 | After access to property Length | Conditions.cs:118:43:118:43 | 1 | | +| Conditions.cs:118:29:118:39 | Before access to property Length | Conditions.cs:118:29:118:32 | access to parameter args | | +| Conditions.cs:118:29:118:39 | access to property Length | Conditions.cs:118:29:118:39 | After access to property Length | | +| Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:29:118:43 | After ... - ... | | +| Conditions.cs:118:29:118:43 | After ... - ... | Conditions.cs:118:24:118:43 | ... == ... | | +| Conditions.cs:118:29:118:43 | Before ... - ... | Conditions.cs:118:29:118:39 | Before access to property Length | | | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:29:118:43 | ... - ... | | -| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:18:119:21 | access to local variable last | | -| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:121:13:122:25 | if (...) ... | false | -| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false] !... | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true] !... | false | -| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:121:13:122:25 | if (...) ... | | -| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:21:120:22 | "" | | +| Conditions.cs:119:13:120:23 | After if (...) ... | Conditions.cs:121:13:122:25 | if (...) ... | | +| Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:17:119:21 | !... | | +| Conditions.cs:119:17:119:21 | !... | Conditions.cs:119:18:119:21 | access to local variable last | | +| Conditions.cs:119:17:119:21 | After !... [false] | Conditions.cs:119:13:120:23 | After if (...) ... | | +| Conditions.cs:119:17:119:21 | After !... [true] | Conditions.cs:120:17:120:23 | ...; | | +| Conditions.cs:119:18:119:21 | After access to local variable last [false] | Conditions.cs:119:17:119:21 | After !... [true] | true | +| Conditions.cs:119:18:119:21 | After access to local variable last [true] | Conditions.cs:119:17:119:21 | After !... [false] | false | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | After access to local variable last [false] | false | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:18:119:21 | After access to local variable last [true] | true | +| Conditions.cs:120:17:120:17 | access to local variable s | Conditions.cs:120:21:120:22 | "" | | +| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:120:17:120:22 | After ... = ... | | +| Conditions.cs:120:17:120:22 | After ... = ... | Conditions.cs:120:17:120:23 | After ...; | | +| Conditions.cs:120:17:120:22 | Before ... = ... | Conditions.cs:120:17:120:17 | access to local variable s | | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:22 | Before ... = ... | | +| Conditions.cs:120:17:120:23 | After ...; | Conditions.cs:119:13:120:23 | After if (...) ... | | | Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:17:120:22 | ... = ... | | +| Conditions.cs:121:13:122:25 | After if (...) ... | Conditions.cs:117:9:123:9 | After {...} | | | Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | false | -| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:116:42:116:42 | access to local variable i | | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:21:122:24 | null | | +| Conditions.cs:121:17:121:20 | After access to local variable last [false] | Conditions.cs:121:13:122:25 | After if (...) ... | | +| Conditions.cs:121:17:121:20 | After access to local variable last [true] | Conditions.cs:122:17:122:25 | ...; | | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | After access to local variable last [false] | false | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:17:121:20 | After access to local variable last [true] | true | +| Conditions.cs:122:17:122:17 | access to local variable s | Conditions.cs:122:21:122:24 | null | | +| Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:122:17:122:24 | After ... = ... | | +| Conditions.cs:122:17:122:24 | After ... = ... | Conditions.cs:122:17:122:25 | After ...; | | +| Conditions.cs:122:17:122:24 | Before ... = ... | Conditions.cs:122:17:122:17 | access to local variable s | | +| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:24 | Before ... = ... | | +| Conditions.cs:122:17:122:25 | After ...; | Conditions.cs:121:13:122:25 | After if (...) ... | | | Conditions.cs:122:21:122:24 | null | Conditions.cs:122:17:122:24 | ... = ... | | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:130:5:141:5 | {...} | | +| Conditions.cs:129:10:129:12 | Entry | Conditions.cs:130:5:141:5 | {...} | | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:131:9:140:9 | while (...) ... | | -| Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:131:16:131:19 | true | | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | true | +| Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | Conditions.cs:131:16:131:19 | true | | +| Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | | +| Conditions.cs:131:16:131:19 | After true [true] | Conditions.cs:132:9:140:9 | {...} | | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | After true [true] | true | +| Conditions.cs:132:9:140:9 | After {...} | Conditions.cs:131:9:140:9 | [LoopHeader] while (...) ... | | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:133:13:139:13 | if (...) ... | | -| Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:133:17:133:22 | this access | | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:131:16:131:19 | true | false | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | {...} | true | +| Conditions.cs:133:13:139:13 | After if (...) ... | Conditions.cs:132:9:140:9 | After {...} | | +| Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:133:17:133:22 | Before access to field Field1 | | +| Conditions.cs:133:17:133:22 | After access to field Field1 [false] | Conditions.cs:133:13:139:13 | After if (...) ... | | +| Conditions.cs:133:17:133:22 | After access to field Field1 [true] | Conditions.cs:134:13:139:13 | {...} | | +| Conditions.cs:133:17:133:22 | Before access to field Field1 | Conditions.cs:133:17:133:22 | this access | | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | After access to field Field1 [false] | false | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | After access to field Field1 [true] | true | | Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:17:133:22 | access to field Field1 | | +| Conditions.cs:134:13:139:13 | After {...} | Conditions.cs:133:13:139:13 | After if (...) ... | | | Conditions.cs:134:13:139:13 | {...} | Conditions.cs:135:17:138:17 | if (...) ... | | -| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:135:21:135:26 | this access | | -| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:131:16:131:19 | true | false | -| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:136:17:138:17 | {...} | true | +| Conditions.cs:135:17:138:17 | After if (...) ... | Conditions.cs:134:13:139:13 | After {...} | | +| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:135:21:135:26 | Before access to field Field2 | | +| Conditions.cs:135:21:135:26 | After access to field Field2 [false] | Conditions.cs:135:17:138:17 | After if (...) ... | | +| Conditions.cs:135:21:135:26 | After access to field Field2 [true] | Conditions.cs:136:17:138:17 | {...} | | +| Conditions.cs:135:21:135:26 | Before access to field Field2 | Conditions.cs:135:21:135:26 | this access | | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | After access to field Field2 [false] | false | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | After access to field Field2 [true] | true | | Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:21:135:26 | access to field Field2 | | +| Conditions.cs:136:17:138:17 | After {...} | Conditions.cs:135:17:138:17 | After if (...) ... | | | Conditions.cs:136:17:138:17 | {...} | Conditions.cs:137:21:137:38 | ...; | | -| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:37 | call to method ToString | | +| Conditions.cs:137:21:137:26 | After access to field Field1 | Conditions.cs:137:21:137:37 | call to method ToString | | +| Conditions.cs:137:21:137:26 | Before access to field Field1 | Conditions.cs:137:21:137:26 | this access | | +| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:26 | After access to field Field1 | | | Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:26 | access to field Field1 | | -| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:131:16:131:19 | true | | -| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:26 | this access | | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:144:5:150:5 | {...} | | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 | | +| Conditions.cs:137:21:137:37 | After call to method ToString | Conditions.cs:137:21:137:38 | After ...; | | +| Conditions.cs:137:21:137:37 | Before call to method ToString | Conditions.cs:137:21:137:26 | Before access to field Field1 | | +| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:137:21:137:37 | After call to method ToString | | +| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:37 | Before call to method ToString | | +| Conditions.cs:137:21:137:38 | After ...; | Conditions.cs:136:17:138:17 | After {...} | | +| Conditions.cs:143:10:143:12 | Entry | Conditions.cs:144:5:150:5 | {...} | | +| Conditions.cs:143:10:143:12 | Normal Exit | Conditions.cs:143:10:143:12 | Exit | | +| Conditions.cs:144:5:150:5 | After {...} | Conditions.cs:143:10:143:12 | Normal Exit | | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:145:9:145:30 | ... ...; | | -| Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:17:145:17 | access to parameter b | | -| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:146:9:149:49 | if (...) ... | | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | "a" | true | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | "b" | false | -| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:13:145:29 | String s = ... | | -| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:17:145:29 | ... ? ... : ... | | -| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:17:145:29 | ... ? ... : ... | | +| Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:13:145:29 | Before String s = ... | | +| Conditions.cs:145:9:145:30 | After ... ...; | Conditions.cs:146:9:149:49 | if (...) ... | | +| Conditions.cs:145:13:145:13 | access to local variable s | Conditions.cs:145:17:145:29 | ... ? ... : ... | | +| Conditions.cs:145:13:145:29 | After String s = ... | Conditions.cs:145:9:145:30 | After ... ...; | | +| Conditions.cs:145:13:145:29 | Before String s = ... | Conditions.cs:145:13:145:13 | access to local variable s | | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:13:145:29 | After String s = ... | | +| Conditions.cs:145:17:145:17 | After access to parameter b [false] | Conditions.cs:145:27:145:29 | "b" | | +| Conditions.cs:145:17:145:17 | After access to parameter b [true] | Conditions.cs:145:21:145:23 | "a" | | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | After access to parameter b [false] | false | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:17:145:17 | After access to parameter b [true] | true | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:17 | access to parameter b | | +| Conditions.cs:145:17:145:29 | After ... ? ... : ... | Conditions.cs:145:13:145:29 | String s = ... | | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:17:145:29 | After ... ? ... : ... | | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:17:145:29 | After ... ? ... : ... | | +| Conditions.cs:146:9:149:49 | After if (...) ... | Conditions.cs:144:5:150:5 | After {...} | | | Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:146:13:146:13 | access to parameter b | | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:147:13:147:49 | ...; | true | -| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:149:13:149:49 | ...; | false | -| Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:143:10:143:12 | exit M11 (normal) | | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:40:147:43 | "a = " | | -| Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:13:147:48 | call to method WriteLine | | -| Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:45:147:45 | access to local variable s | | -| Conditions.cs:147:44:147:46 | {...} | Conditions.cs:147:38:147:47 | $"..." | | +| Conditions.cs:146:13:146:13 | After access to parameter b [false] | Conditions.cs:149:13:149:49 | ...; | | +| Conditions.cs:146:13:146:13 | After access to parameter b [true] | Conditions.cs:147:13:147:49 | ...; | | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | After access to parameter b [false] | false | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:13:146:13 | After access to parameter b [true] | true | +| Conditions.cs:147:13:147:48 | After call to method WriteLine | Conditions.cs:147:13:147:49 | After ...; | | +| Conditions.cs:147:13:147:48 | Before call to method WriteLine | Conditions.cs:147:38:147:47 | Before $"..." | | +| Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:147:13:147:48 | After call to method WriteLine | | +| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:48 | Before call to method WriteLine | | +| Conditions.cs:147:13:147:49 | After ...; | Conditions.cs:146:9:149:49 | After if (...) ... | | +| Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:38:147:47 | After $"..." | | +| Conditions.cs:147:38:147:47 | After $"..." | Conditions.cs:147:13:147:48 | call to method WriteLine | | +| Conditions.cs:147:38:147:47 | Before $"..." | Conditions.cs:147:40:147:43 | "a = " | | +| Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:44:147:46 | Before {...} | | +| Conditions.cs:147:44:147:46 | After {...} | Conditions.cs:147:38:147:47 | $"..." | | +| Conditions.cs:147:44:147:46 | Before {...} | Conditions.cs:147:45:147:45 | access to local variable s | | +| Conditions.cs:147:44:147:46 | {...} | Conditions.cs:147:44:147:46 | After {...} | | | Conditions.cs:147:45:147:45 | access to local variable s | Conditions.cs:147:44:147:46 | {...} | | -| Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:143:10:143:12 | exit M11 (normal) | | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:40:149:43 | "b = " | | -| Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:13:149:48 | call to method WriteLine | | -| Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:45:149:45 | access to local variable s | | -| Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:38:149:47 | $"..." | | +| Conditions.cs:149:13:149:48 | After call to method WriteLine | Conditions.cs:149:13:149:49 | After ...; | | +| Conditions.cs:149:13:149:48 | Before call to method WriteLine | Conditions.cs:149:38:149:47 | Before $"..." | | +| Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:149:13:149:48 | After call to method WriteLine | | +| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:48 | Before call to method WriteLine | | +| Conditions.cs:149:13:149:49 | After ...; | Conditions.cs:146:9:149:49 | After if (...) ... | | +| Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:38:149:47 | After $"..." | | +| Conditions.cs:149:38:149:47 | After $"..." | Conditions.cs:149:13:149:48 | call to method WriteLine | | +| Conditions.cs:149:38:149:47 | Before $"..." | Conditions.cs:149:40:149:43 | "b = " | | +| Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:44:149:46 | Before {...} | | +| Conditions.cs:149:44:149:46 | After {...} | Conditions.cs:149:38:149:47 | $"..." | | +| Conditions.cs:149:44:149:46 | Before {...} | Conditions.cs:149:45:149:45 | access to local variable s | | +| Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:44:149:46 | After {...} | | | 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 | 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 | After call to constructor Object | ExitMethods.cs:6:7:6:17 | {...} | | +| ExitMethods.cs:6:7:6:17 | After call to method | ExitMethods.cs:6:7:6:17 | Before call to constructor Object | | +| ExitMethods.cs:6:7:6:17 | Before call to constructor Object | ExitMethods.cs:6:7:6:17 | call to constructor Object | | +| ExitMethods.cs:6:7:6:17 | Before call to method | ExitMethods.cs:6:7:6:17 | this access | | +| ExitMethods.cs:6:7:6:17 | Entry | ExitMethods.cs:6:7:6:17 | Before call to method | | +| ExitMethods.cs:6:7:6:17 | Normal Exit | ExitMethods.cs:6:7:6:17 | Exit | | +| ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | After call to constructor Object | | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | After call to method | | | 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 | | +| ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | Normal Exit | | +| ExitMethods.cs:8:10:8:11 | Entry | ExitMethods.cs:9:5:12:5 | {...} | | +| ExitMethods.cs:8:10:8:11 | Normal Exit | ExitMethods.cs:8:10:8:11 | Exit | | | ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:10:9:10:25 | ...; | | -| ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:11:9:11:15 | return ...; | | -| ExitMethods.cs:10:9:10:25 | ...; | ExitMethods.cs:10:20:10:23 | true | | +| ExitMethods.cs:10:9:10:24 | After call to method ErrorMaybe | ExitMethods.cs:10:9:10:25 | After ...; | | +| ExitMethods.cs:10:9:10:24 | Before call to method ErrorMaybe | ExitMethods.cs:10:20:10:23 | true | | +| ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:10:9:10:24 | After call to method ErrorMaybe | | +| ExitMethods.cs:10:9:10:25 | ...; | ExitMethods.cs:10:9:10:24 | Before call to method ErrorMaybe | | +| ExitMethods.cs:10:9:10:25 | After ...; | ExitMethods.cs:11:9:11:15 | Before return ...; | | | ExitMethods.cs:10:20:10:23 | true | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | | -| ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | return | -| ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:15:5:18:5 | {...} | | -| ExitMethods.cs:14:10:14:11 | exit M2 (normal) | ExitMethods.cs:14:10:14:11 | exit M2 | | +| ExitMethods.cs:11:9:11:15 | Before return ...; | ExitMethods.cs:11:9:11:15 | return ...; | | +| ExitMethods.cs:11:9:11:15 | return ...; | ExitMethods.cs:8:10:8:11 | Normal Exit | return | +| ExitMethods.cs:14:10:14:11 | Entry | ExitMethods.cs:15:5:18:5 | {...} | | +| ExitMethods.cs:14:10:14:11 | Normal Exit | ExitMethods.cs:14:10:14:11 | Exit | | | ExitMethods.cs:15:5:18:5 | {...} | ExitMethods.cs:16:9:16:26 | ...; | | -| ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | ExitMethods.cs:17:9:17:15 | return ...; | | -| ExitMethods.cs:16:9:16:26 | ...; | ExitMethods.cs:16:20:16:24 | false | | +| ExitMethods.cs:16:9:16:25 | After call to method ErrorMaybe | ExitMethods.cs:16:9:16:26 | After ...; | | +| ExitMethods.cs:16:9:16:25 | Before call to method ErrorMaybe | ExitMethods.cs:16:20:16:24 | false | | +| ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | ExitMethods.cs:16:9:16:25 | After call to method ErrorMaybe | | +| ExitMethods.cs:16:9:16:26 | ...; | ExitMethods.cs:16:9:16:25 | Before call to method ErrorMaybe | | +| ExitMethods.cs:16:9:16:26 | After ...; | ExitMethods.cs:17:9:17:15 | Before return ...; | | | ExitMethods.cs:16:20:16:24 | false | ExitMethods.cs:16:9:16:25 | call to method ErrorMaybe | | -| ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:14:10:14:11 | exit M2 (normal) | return | -| ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:21:5:24:5 | {...} | | -| ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | ExitMethods.cs:20:10:20:11 | exit M3 | | +| ExitMethods.cs:17:9:17:15 | Before return ...; | ExitMethods.cs:17:9:17:15 | return ...; | | +| ExitMethods.cs:17:9:17:15 | return ...; | ExitMethods.cs:14:10:14:11 | Normal Exit | return | +| ExitMethods.cs:20:10:20:11 | Entry | ExitMethods.cs:21:5:24:5 | {...} | | +| ExitMethods.cs:20:10:20:11 | Exceptional Exit | ExitMethods.cs:20:10:20:11 | Exit | | | ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:22:9:22:26 | ...; | | -| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | exception | -| ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:21:22:24 | true | | +| ExitMethods.cs:22:9:22:25 | Before call to method ErrorAlways | ExitMethods.cs:22:21:22:24 | true | | +| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | Exceptional Exit | exception | +| ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:9:22:25 | Before call to method ErrorAlways | | | ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | | -| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:27:5:30:5 | {...} | | -| ExitMethods.cs:26:10:26:11 | exit M4 (abnormal) | ExitMethods.cs:26:10:26:11 | exit M4 | | +| ExitMethods.cs:26:10:26:11 | Entry | ExitMethods.cs:27:5:30:5 | {...} | | +| ExitMethods.cs:26:10:26:11 | Exceptional Exit | ExitMethods.cs:26:10:26:11 | Exit | | | ExitMethods.cs:27:5:30:5 | {...} | ExitMethods.cs:28:9:28:15 | ...; | | -| ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:26:10:26:11 | exit M4 (abnormal) | exit | +| ExitMethods.cs:28:9:28:14 | Before call to method Exit | ExitMethods.cs:28:9:28:14 | this access | | +| ExitMethods.cs:28:9:28:14 | call to method Exit | ExitMethods.cs:26:10:26:11 | Exceptional Exit | exception | | ExitMethods.cs:28:9:28:14 | this access | ExitMethods.cs:28:9:28:14 | call to method Exit | | -| ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:28:9:28:14 | this access | | -| ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:33:5:36:5 | {...} | | -| ExitMethods.cs:32:10:32:11 | exit M5 (abnormal) | ExitMethods.cs:32:10:32:11 | exit M5 | | +| ExitMethods.cs:28:9:28:15 | ...; | ExitMethods.cs:28:9:28:14 | Before call to method Exit | | +| ExitMethods.cs:32:10:32:11 | Entry | ExitMethods.cs:33:5:36:5 | {...} | | +| ExitMethods.cs:32:10:32:11 | Exceptional Exit | ExitMethods.cs:32:10:32:11 | Exit | | | ExitMethods.cs:33:5:36:5 | {...} | ExitMethods.cs:34:9:34:26 | ...; | | -| ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:32:10:32:11 | exit M5 (abnormal) | exit | +| ExitMethods.cs:34:9:34:25 | Before call to method ApplicationExit | ExitMethods.cs:34:9:34:25 | this access | | +| ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | ExitMethods.cs:32:10:32:11 | Exceptional Exit | exception | | ExitMethods.cs:34:9:34:25 | this access | ExitMethods.cs:34:9:34:25 | call to method ApplicationExit | | -| ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:34:9:34:25 | this access | | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:39:5:52:5 | {...} | | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 | | +| ExitMethods.cs:34:9:34:26 | ...; | ExitMethods.cs:34:9:34:25 | Before call to method ApplicationExit | | +| ExitMethods.cs:38:10:38:11 | Entry | ExitMethods.cs:39:5:52:5 | {...} | | +| ExitMethods.cs:38:10:38:11 | Exceptional Exit | ExitMethods.cs:38:10:38:11 | Exit | | +| ExitMethods.cs:38:10:38:11 | Normal Exit | ExitMethods.cs:38:10:38:11 | Exit | | | ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:40:9:51:9 | try {...} ... | | | ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:41:9:43:9 | {...} | | | ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:42:13:42:31 | ...; | | +| ExitMethods.cs:42:13:42:30 | Before call to method ErrorAlways | ExitMethods.cs:42:25:42:29 | false | | | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | catch (...) {...} | exception | -| ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:25:42:29 | false | | +| ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:13:42:30 | Before call to method ErrorAlways | | | ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | | -| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:45:9:47:9 | {...} | match | -| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | no-match | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | | -| ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | return | -| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | match | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | | -| ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | return | -| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:55:5:58:5 | {...} | | -| ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | ExitMethods.cs:54:10:54:11 | exit M7 | | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | ExitMethods.cs:45:9:47:9 | {...} | | +| ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | ExitMethods.cs:48:9:51:9 | catch (...) {...} | | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [match] | match | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:44:9:47:9 | After catch (...) {...} [no-match] | no-match | +| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | Before return ...; | | +| ExitMethods.cs:46:13:46:19 | Before return ...; | ExitMethods.cs:46:13:46:19 | return ...; | | +| ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:38:10:38:11 | Normal Exit | return | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | ExitMethods.cs:49:9:51:9 | {...} | | +| ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | ExitMethods.cs:38:10:38:11 | Exceptional Exit | exception | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [match] | match | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | After catch (...) {...} [no-match] | no-match | +| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | Before return ...; | | +| ExitMethods.cs:50:13:50:19 | Before return ...; | ExitMethods.cs:50:13:50:19 | return ...; | | +| ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:38:10:38:11 | Normal Exit | return | +| ExitMethods.cs:54:10:54:11 | Entry | ExitMethods.cs:55:5:58:5 | {...} | | +| ExitMethods.cs:54:10:54:11 | Exceptional Exit | ExitMethods.cs:54:10:54:11 | Exit | | | ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:56:9:56:23 | ...; | | -| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | exception | -| ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | | -| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:61:5:64:5 | {...} | | -| ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | ExitMethods.cs:60:10:60:11 | exit M8 | | +| ExitMethods.cs:56:9:56:22 | Before call to method ErrorAlways2 | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | | +| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | Exceptional Exit | exception | +| ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:22 | Before call to method ErrorAlways2 | | +| ExitMethods.cs:60:10:60:11 | Entry | ExitMethods.cs:61:5:64:5 | {...} | | +| ExitMethods.cs:60:10:60:11 | Exceptional Exit | ExitMethods.cs:60:10:60:11 | Exit | | | ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:62:9:62:23 | ...; | | -| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | exception | -| ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | | -| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:67:5:70:5 | {...} | | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | | -| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | | +| ExitMethods.cs:62:9:62:22 | Before call to method ErrorAlways3 | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | | +| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | Exceptional Exit | exception | +| ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:22 | Before call to method ErrorAlways3 | | +| ExitMethods.cs:66:17:66:26 | Entry | ExitMethods.cs:67:5:70:5 | {...} | | +| ExitMethods.cs:66:17:66:26 | Exceptional Exit | ExitMethods.cs:66:17:66:26 | Exit | | +| ExitMethods.cs:66:17:66:26 | Normal Exit | ExitMethods.cs:66:17:66:26 | Exit | | +| ExitMethods.cs:67:5:70:5 | After {...} | ExitMethods.cs:66:17:66:26 | Normal Exit | | | ExitMethods.cs:67:5:70:5 | {...} | ExitMethods.cs:68:9:69:34 | if (...) ... | | +| ExitMethods.cs:68:9:69:34 | After if (...) ... | ExitMethods.cs:67:5:70:5 | After {...} | | | ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:68:13:68:13 | access to parameter b | | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | false | -| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:69:19:69:33 | object creation of type Exception | true | -| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | exception | -| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:13:69:34 | throw ...; | | -| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:73:5:78:5 | {...} | | -| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | exit ErrorAlways | | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | ExitMethods.cs:68:9:69:34 | After if (...) ... | | +| ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | ExitMethods.cs:69:13:69:34 | Before throw ...; | | +| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | After access to parameter b [false] | false | +| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:68:13:68:13 | After access to parameter b [true] | true | +| ExitMethods.cs:69:13:69:34 | Before throw ...; | ExitMethods.cs:69:19:69:33 | Before object creation of type Exception | | +| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | Exceptional Exit | exception | +| ExitMethods.cs:69:19:69:33 | After object creation of type Exception | ExitMethods.cs:69:13:69:34 | throw ...; | | +| ExitMethods.cs:69:19:69:33 | Before object creation of type Exception | ExitMethods.cs:69:19:69:33 | object creation of type Exception | | +| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:19:69:33 | After object creation of type Exception | | +| ExitMethods.cs:72:17:72:27 | Entry | ExitMethods.cs:73:5:78:5 | {...} | | +| ExitMethods.cs:72:17:72:27 | Exceptional Exit | ExitMethods.cs:72:17:72:27 | Exit | | | ExitMethods.cs:73:5:78:5 | {...} | ExitMethods.cs:74:9:77:45 | if (...) ... | | | ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:74:13:74:13 | access to parameter b | | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:75:19:75:33 | object creation of type Exception | true | -| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:77:41:77:43 | "b" | false | -| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception | -| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:13:75:34 | throw ...; | | -| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception | -| ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:13:77:45 | throw ...; | | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | ExitMethods.cs:77:13:77:45 | Before throw ...; | | +| ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | ExitMethods.cs:75:13:75:34 | Before throw ...; | | +| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | After access to parameter b [false] | false | +| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:74:13:74:13 | After access to parameter b [true] | true | +| ExitMethods.cs:75:13:75:34 | Before throw ...; | ExitMethods.cs:75:19:75:33 | Before object creation of type Exception | | +| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:72:17:72:27 | Exceptional Exit | exception | +| ExitMethods.cs:75:19:75:33 | After object creation of type Exception | ExitMethods.cs:75:13:75:34 | throw ...; | | +| ExitMethods.cs:75:19:75:33 | Before object creation of type Exception | ExitMethods.cs:75:19:75:33 | object creation of type Exception | | +| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:19:75:33 | After object creation of type Exception | | +| ExitMethods.cs:77:13:77:45 | Before throw ...; | ExitMethods.cs:77:19:77:44 | Before object creation of type ArgumentException | | +| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:72:17:72:27 | Exceptional Exit | exception | +| ExitMethods.cs:77:19:77:44 | After object creation of type ArgumentException | ExitMethods.cs:77:13:77:45 | throw ...; | | +| ExitMethods.cs:77:19:77:44 | Before object creation of type ArgumentException | ExitMethods.cs:77:41:77:43 | "b" | | +| ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:19:77:44 | After object creation of type ArgumentException | | | ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | | -| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:81:5:83:5 | {...} | | -| ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 | | -| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:82:15:82:29 | object creation of type Exception | | -| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | exception | -| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:9:82:30 | throw ...; | | -| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:41:85:55 | object creation of type Exception | | -| ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 | | -| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | exception | -| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:35:85:55 | throw ... | | -| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:88:5:90:5 | {...} | | -| ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | ExitMethods.cs:87:10:87:13 | exit Exit | | +| ExitMethods.cs:80:17:80:28 | Entry | ExitMethods.cs:81:5:83:5 | {...} | | +| ExitMethods.cs:80:17:80:28 | Exceptional Exit | ExitMethods.cs:80:17:80:28 | Exit | | +| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:82:9:82:30 | Before throw ...; | | +| ExitMethods.cs:82:9:82:30 | Before throw ...; | ExitMethods.cs:82:15:82:29 | Before object creation of type Exception | | +| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | Exceptional Exit | exception | +| ExitMethods.cs:82:15:82:29 | After object creation of type Exception | ExitMethods.cs:82:9:82:30 | throw ...; | | +| ExitMethods.cs:82:15:82:29 | Before object creation of type Exception | ExitMethods.cs:82:15:82:29 | object creation of type Exception | | +| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:15:82:29 | After object creation of type Exception | | +| ExitMethods.cs:85:17:85:28 | Entry | ExitMethods.cs:85:35:85:55 | Before throw ... | | +| ExitMethods.cs:85:17:85:28 | Exceptional Exit | ExitMethods.cs:85:17:85:28 | Exit | | +| ExitMethods.cs:85:35:85:55 | Before throw ... | ExitMethods.cs:85:41:85:55 | Before object creation of type Exception | | +| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | Exceptional Exit | exception | +| ExitMethods.cs:85:41:85:55 | After object creation of type Exception | ExitMethods.cs:85:35:85:55 | throw ... | | +| ExitMethods.cs:85:41:85:55 | Before object creation of type Exception | ExitMethods.cs:85:41:85:55 | object creation of type Exception | | +| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:41:85:55 | After object creation of type Exception | | +| ExitMethods.cs:87:10:87:13 | Entry | ExitMethods.cs:88:5:90:5 | {...} | | +| ExitMethods.cs:87:10:87:13 | Exceptional Exit | ExitMethods.cs:87:10:87:13 | Exit | | | ExitMethods.cs:88:5:90:5 | {...} | ExitMethods.cs:89:9:89:28 | ...; | | -| ExitMethods.cs:89:9:89:27 | call to method Exit | ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | exit | -| ExitMethods.cs:89:9:89:28 | ...; | ExitMethods.cs:89:26:89:26 | 0 | | +| ExitMethods.cs:89:9:89:27 | Before call to method Exit | ExitMethods.cs:89:26:89:26 | 0 | | +| ExitMethods.cs:89:9:89:27 | call to method Exit | ExitMethods.cs:87:10:87:13 | Exceptional Exit | exception | +| ExitMethods.cs:89:9:89:28 | ...; | ExitMethods.cs:89:9:89:27 | Before call to method Exit | | | ExitMethods.cs:89:26:89:26 | 0 | ExitMethods.cs:89:9:89:27 | call to method Exit | | -| ExitMethods.cs:92:10:92:18 | enter ExitInTry | ExitMethods.cs:93:5:103:5 | {...} | | -| ExitMethods.cs:92:10:92:18 | exit ExitInTry (abnormal) | ExitMethods.cs:92:10:92:18 | exit ExitInTry | | +| ExitMethods.cs:92:10:92:18 | Entry | ExitMethods.cs:93:5:103:5 | {...} | | +| ExitMethods.cs:92:10:92:18 | Exceptional Exit | ExitMethods.cs:92:10:92:18 | Exit | | +| ExitMethods.cs:92:10:92:18 | Normal Exit | ExitMethods.cs:92:10:92:18 | Exit | | +| ExitMethods.cs:93:5:103:5 | After {...} | ExitMethods.cs:92:10:92:18 | Normal Exit | | | ExitMethods.cs:93:5:103:5 | {...} | ExitMethods.cs:94:9:102:9 | try {...} ... | | +| ExitMethods.cs:94:9:102:9 | After try {...} ... | ExitMethods.cs:93:5:103:5 | After {...} | | | ExitMethods.cs:94:9:102:9 | try {...} ... | ExitMethods.cs:95:9:97:9 | {...} | | | ExitMethods.cs:95:9:97:9 | {...} | ExitMethods.cs:96:13:96:19 | ...; | | -| ExitMethods.cs:96:13:96:18 | call to method Exit | ExitMethods.cs:92:10:92:18 | exit ExitInTry (abnormal) | exit | +| ExitMethods.cs:96:13:96:18 | Before call to method Exit | ExitMethods.cs:96:13:96:18 | this access | | +| ExitMethods.cs:96:13:96:18 | call to method Exit | ExitMethods.cs:99:9:102:9 | {...} | exception | | ExitMethods.cs:96:13:96:18 | this access | ExitMethods.cs:96:13:96:18 | call to method Exit | | -| ExitMethods.cs:96:13:96:19 | ...; | ExitMethods.cs:96:13:96:18 | this access | | -| ExitMethods.cs:105:10:105:24 | enter ApplicationExit | ExitMethods.cs:106:5:108:5 | {...} | | -| ExitMethods.cs:105:10:105:24 | exit ApplicationExit (abnormal) | ExitMethods.cs:105:10:105:24 | exit ApplicationExit | | +| ExitMethods.cs:96:13:96:19 | ...; | ExitMethods.cs:96:13:96:18 | Before call to method Exit | | +| ExitMethods.cs:99:9:102:9 | After {...} | ExitMethods.cs:92:10:92:18 | Exceptional Exit | exception | +| ExitMethods.cs:99:9:102:9 | After {...} | ExitMethods.cs:94:9:102:9 | After try {...} ... | | +| ExitMethods.cs:99:9:102:9 | {...} | ExitMethods.cs:101:13:101:41 | ...; | | +| ExitMethods.cs:101:13:101:40 | After call to method WriteLine | ExitMethods.cs:101:13:101:41 | After ...; | | +| ExitMethods.cs:101:13:101:40 | Before call to method WriteLine | ExitMethods.cs:101:38:101:39 | "" | | +| ExitMethods.cs:101:13:101:40 | call to method WriteLine | ExitMethods.cs:101:13:101:40 | After call to method WriteLine | | +| ExitMethods.cs:101:13:101:41 | ...; | ExitMethods.cs:101:13:101:40 | Before call to method WriteLine | | +| ExitMethods.cs:101:13:101:41 | After ...; | ExitMethods.cs:99:9:102:9 | After {...} | | +| ExitMethods.cs:101:38:101:39 | "" | ExitMethods.cs:101:13:101:40 | call to method WriteLine | | +| ExitMethods.cs:105:10:105:24 | Entry | ExitMethods.cs:106:5:108:5 | {...} | | +| ExitMethods.cs:105:10:105:24 | Exceptional Exit | ExitMethods.cs:105:10:105:24 | Exit | | | ExitMethods.cs:106:5:108:5 | {...} | ExitMethods.cs:107:9:107:48 | ...; | | -| ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:105:10:105:24 | exit ApplicationExit (abnormal) | exit | -| ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:107:9:107:47 | call to method Exit | | -| ExitMethods.cs:110:13:110:21 | enter ThrowExpr | ExitMethods.cs:111:5:113:5 | {...} | | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | ExitMethods.cs:110:13:110:21 | exit ThrowExpr | | -| ExitMethods.cs:110:13:110:21 | exit ThrowExpr (normal) | ExitMethods.cs:110:13:110:21 | exit ThrowExpr | | -| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:112:16:112:20 | access to parameter input | | -| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (normal) | return | -| ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:112:25:112:25 | 0 | | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:29:112:29 | 1 | true | -| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:69:112:75 | "input" | false | -| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:9:112:77 | return ...; | | +| ExitMethods.cs:107:9:107:47 | Before call to method Exit | ExitMethods.cs:107:9:107:47 | call to method Exit | | +| ExitMethods.cs:107:9:107:47 | call to method Exit | ExitMethods.cs:105:10:105:24 | Exceptional Exit | exception | +| ExitMethods.cs:107:9:107:48 | ...; | ExitMethods.cs:107:9:107:47 | Before call to method Exit | | +| ExitMethods.cs:110:13:110:21 | Entry | ExitMethods.cs:111:5:113:5 | {...} | | +| ExitMethods.cs:110:13:110:21 | Exceptional Exit | ExitMethods.cs:110:13:110:21 | Exit | | +| ExitMethods.cs:110:13:110:21 | Normal Exit | ExitMethods.cs:110:13:110:21 | Exit | | +| ExitMethods.cs:111:5:113:5 | {...} | ExitMethods.cs:112:9:112:77 | Before return ...; | | +| ExitMethods.cs:112:9:112:77 | Before return ...; | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | | +| ExitMethods.cs:112:9:112:77 | return ...; | ExitMethods.cs:110:13:110:21 | Normal Exit | return | +| ExitMethods.cs:112:16:112:20 | access to parameter input | ExitMethods.cs:112:25:112:25 | Before (...) ... | | +| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | After ... != ... [false] | false | +| ExitMethods.cs:112:16:112:25 | ... != ... | ExitMethods.cs:112:16:112:25 | After ... != ... [true] | true | +| ExitMethods.cs:112:16:112:25 | After ... != ... [false] | ExitMethods.cs:112:41:112:76 | Before throw ... | | +| ExitMethods.cs:112:16:112:25 | After ... != ... [true] | ExitMethods.cs:112:29:112:37 | Before ... / ... | | +| ExitMethods.cs:112:16:112:25 | Before ... != ... | ExitMethods.cs:112:16:112:20 | access to parameter input | | +| ExitMethods.cs:112:16:112:76 | ... ? ... : ... | ExitMethods.cs:112:16:112:25 | Before ... != ... | | +| ExitMethods.cs:112:16:112:76 | After ... ? ... : ... | ExitMethods.cs:112:9:112:77 | return ...; | | | ExitMethods.cs:112:25:112:25 | 0 | ExitMethods.cs:112:25:112:25 | (...) ... | | -| ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:112:16:112:25 | ... != ... | | +| ExitMethods.cs:112:25:112:25 | (...) ... | ExitMethods.cs:112:25:112:25 | After (...) ... | | +| ExitMethods.cs:112:25:112:25 | After (...) ... | ExitMethods.cs:112:16:112:25 | ... != ... | | +| ExitMethods.cs:112:25:112:25 | Before (...) ... | ExitMethods.cs:112:25:112:25 | 0 | | | ExitMethods.cs:112:29:112:29 | 1 | ExitMethods.cs:112:29:112:29 | (...) ... | | -| ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:33:112:37 | access to parameter input | | -| ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | | +| ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:29:112:29 | After (...) ... | | +| ExitMethods.cs:112:29:112:29 | After (...) ... | ExitMethods.cs:112:33:112:37 | access to parameter input | | +| ExitMethods.cs:112:29:112:29 | Before (...) ... | ExitMethods.cs:112:29:112:29 | 1 | | +| ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:29:112:37 | After ... / ... | | +| ExitMethods.cs:112:29:112:37 | After ... / ... | ExitMethods.cs:112:16:112:76 | After ... ? ... : ... | | +| ExitMethods.cs:112:29:112:37 | Before ... / ... | ExitMethods.cs:112:29:112:29 | Before (...) ... | | | ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:112:29:112:37 | ... / ... | | -| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | exception | -| ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:41:112:76 | throw ... | | +| ExitMethods.cs:112:41:112:76 | Before throw ... | ExitMethods.cs:112:47:112:76 | Before object creation of type ArgumentException | | +| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | Exceptional Exit | exception | +| ExitMethods.cs:112:47:112:76 | After object creation of type ArgumentException | ExitMethods.cs:112:41:112:76 | throw ... | | +| ExitMethods.cs:112:47:112:76 | Before object creation of type ArgumentException | ExitMethods.cs:112:69:112:75 | "input" | | +| ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:47:112:76 | After object creation of type ArgumentException | | | ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | | -| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:116:5:118:5 | {...} | | -| ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall (normal) | ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall | | -| ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:117:16:117:16 | access to parameter s | | -| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:115:16:115:34 | exit ExtensionMethodCall (normal) | return | +| ExitMethods.cs:115:16:115:34 | Entry | ExitMethods.cs:116:5:118:5 | {...} | | +| ExitMethods.cs:115:16:115:34 | Normal Exit | ExitMethods.cs:115:16:115:34 | Exit | | +| ExitMethods.cs:116:5:118:5 | {...} | ExitMethods.cs:117:9:117:39 | Before return ...; | | +| ExitMethods.cs:117:9:117:39 | Before return ...; | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | | +| ExitMethods.cs:117:9:117:39 | return ...; | ExitMethods.cs:115:16:115:34 | Normal Exit | return | | ExitMethods.cs:117:16:117:16 | access to parameter s | ExitMethods.cs:117:27:117:29 | - | | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:34:117:34 | 0 | true | -| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:38:117:38 | 1 | false | -| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:9:117:39 | return ...; | | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | ExitMethods.cs:117:38:117:38 | 1 | | +| ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | ExitMethods.cs:117:34:117:34 | 0 | | +| ExitMethods.cs:117:16:117:30 | Before call to method Contains | ExitMethods.cs:117:16:117:16 | access to parameter s | | +| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | After call to method Contains [false] | false | +| ExitMethods.cs:117:16:117:30 | call to method Contains | ExitMethods.cs:117:16:117:30 | After call to method Contains [true] | true | +| ExitMethods.cs:117:16:117:38 | ... ? ... : ... | ExitMethods.cs:117:16:117:30 | Before call to method Contains | | +| ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | ExitMethods.cs:117:9:117:39 | return ...; | | | ExitMethods.cs:117:27:117:29 | - | ExitMethods.cs:117:16:117:30 | call to method Contains | | -| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | | -| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:16:117:38 | ... ? ... : ... | | -| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:121:5:124:5 | {...} | | -| ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | | +| ExitMethods.cs:117:34:117:34 | 0 | ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | | +| ExitMethods.cs:117:38:117:38 | 1 | ExitMethods.cs:117:16:117:38 | After ... ? ... : ... | | +| ExitMethods.cs:120:17:120:32 | Entry | ExitMethods.cs:121:5:124:5 | {...} | | +| ExitMethods.cs:120:17:120:32 | Exceptional Exit | ExitMethods.cs:120:17:120:32 | Exit | | | ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:122:9:122:29 | ...; | | -| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | exception | -| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:23:122:27 | false | | +| ExitMethods.cs:122:9:122:28 | Before call to method IsTrue | ExitMethods.cs:122:23:122:27 | false | | +| ExitMethods.cs:122:9:122:28 | call to method IsTrue | ExitMethods.cs:120:17:120:32 | Exceptional Exit | exception | +| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:9:122:28 | Before call to method IsTrue | | | ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | call to method IsTrue | | -| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:127:5:130:5 | {...} | | -| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | | +| ExitMethods.cs:126:17:126:33 | Entry | ExitMethods.cs:127:5:130:5 | {...} | | +| ExitMethods.cs:126:17:126:33 | Exceptional Exit | ExitMethods.cs:126:17:126:33 | Exit | | | ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:128:9:128:27 | ...; | | -| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | exception | +| ExitMethods.cs:128:9:128:26 | Before call to method FailingAssertion | ExitMethods.cs:128:9:128:26 | this access | | +| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | Exceptional Exit | exception | | ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | | -| ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:26 | this access | | -| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | | -| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | | -| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | exception | -| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | | +| ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:26 | Before call to method FailingAssertion | | +| ExitMethods.cs:132:10:132:20 | Entry | ExitMethods.cs:132:33:132:49 | Before call to method IsFalse | | +| ExitMethods.cs:132:10:132:20 | Exceptional Exit | ExitMethods.cs:132:10:132:20 | Exit | | +| ExitMethods.cs:132:10:132:20 | Normal Exit | ExitMethods.cs:132:10:132:20 | Exit | | +| ExitMethods.cs:132:33:132:49 | After call to method IsFalse | ExitMethods.cs:132:10:132:20 | Normal Exit | | +| ExitMethods.cs:132:33:132:49 | Before call to method IsFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | | +| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:10:132:20 | Exceptional Exit | exception | +| ExitMethods.cs:132:33:132:49 | call to method IsFalse | ExitMethods.cs:132:33:132:49 | After call to method IsFalse | | | ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | call to method IsFalse | | -| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:135:5:138:5 | {...} | | -| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | | +| ExitMethods.cs:134:17:134:33 | Entry | ExitMethods.cs:135:5:138:5 | {...} | | +| ExitMethods.cs:134:17:134:33 | Exceptional Exit | ExitMethods.cs:134:17:134:33 | Exit | | | ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:136:9:136:26 | ...; | | -| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | exception | +| ExitMethods.cs:136:9:136:25 | Before call to method AssertFalse | ExitMethods.cs:136:9:136:25 | this access | | +| ExitMethods.cs:136:9:136:25 | call to method AssertFalse | ExitMethods.cs:134:17:134:33 | Exceptional Exit | exception | | ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:21:136:24 | true | | -| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | this access | | +| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | Before call to method AssertFalse | | | ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | call to method AssertFalse | | -| ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:141:5:147:5 | {...} | | -| ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow | | +| ExitMethods.cs:140:17:140:42 | Entry | ExitMethods.cs:141:5:147:5 | {...} | | +| ExitMethods.cs:140:17:140:42 | Exceptional Exit | ExitMethods.cs:140:17:140:42 | Exit | | | ExitMethods.cs:141:5:147:5 | {...} | ExitMethods.cs:142:9:145:53 | if (...) ... | | | ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:142:13:142:13 | access to parameter b | | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:143:13:143:43 | ...; | true | -| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:145:13:145:53 | ...; | false | -| ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception | -| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:41:143:41 | access to parameter e | | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | ExitMethods.cs:145:13:145:53 | ...; | | +| ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | ExitMethods.cs:143:13:143:43 | ...; | | +| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | After access to parameter b [false] | false | +| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:142:13:142:13 | After access to parameter b [true] | true | +| ExitMethods.cs:143:13:143:42 | Before call to method Throw | ExitMethods.cs:143:41:143:41 | access to parameter e | | +| ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:140:17:140:42 | Exceptional Exit | exception | +| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:13:143:42 | Before call to method Throw | | | ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:143:13:143:42 | call to method Throw | | -| ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:13:145:52 | call to method Throw | | -| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception | -| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:43:145:43 | access to parameter e | | +| ExitMethods.cs:145:13:145:44 | After call to method Capture | ExitMethods.cs:145:13:145:52 | call to method Throw | | +| ExitMethods.cs:145:13:145:44 | Before call to method Capture | ExitMethods.cs:145:43:145:43 | access to parameter e | | +| ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:13:145:44 | After call to method Capture | | +| ExitMethods.cs:145:13:145:52 | Before call to method Throw | ExitMethods.cs:145:13:145:44 | Before call to method Capture | | +| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:140:17:140:42 | Exceptional Exit | exception | +| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:13:145:52 | Before call to method Throw | | | ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:13:145:44 | call to method Capture | | -| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:6:5:8:5 | {...} | | -| Extensions.cs:5:23:5:29 | exit ToInt32 (normal) | Extensions.cs:5:23:5:29 | exit ToInt32 | | -| Extensions.cs:6:5:8:5 | {...} | Extensions.cs:7:28:7:28 | access to parameter s | | -| Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:5:23:5:29 | exit ToInt32 (normal) | return | -| Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:7:9:7:30 | return ...; | | +| Extensions.cs:5:23:5:29 | Entry | Extensions.cs:6:5:8:5 | {...} | | +| Extensions.cs:5:23:5:29 | Normal Exit | Extensions.cs:5:23:5:29 | Exit | | +| Extensions.cs:6:5:8:5 | {...} | Extensions.cs:7:9:7:30 | Before return ...; | | +| Extensions.cs:7:9:7:30 | Before return ...; | Extensions.cs:7:16:7:29 | Before call to method Parse | | +| Extensions.cs:7:9:7:30 | return ...; | Extensions.cs:5:23:5:29 | Normal Exit | return | +| Extensions.cs:7:16:7:29 | After call to method Parse | Extensions.cs:7:9:7:30 | return ...; | | +| Extensions.cs:7:16:7:29 | Before call to method Parse | Extensions.cs:7:28:7:28 | access to parameter s | | +| Extensions.cs:7:16:7:29 | call to method Parse | Extensions.cs:7:16:7:29 | After call to method Parse | | | Extensions.cs:7:28:7:28 | access to parameter s | Extensions.cs:7:16:7:29 | call to method Parse | | -| Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:11:5:13:5 | {...} | | -| Extensions.cs:10:24:10:29 | exit ToBool (normal) | Extensions.cs:10:24:10:29 | exit ToBool | | -| Extensions.cs:11:5:13:5 | {...} | Extensions.cs:12:16:12:16 | access to parameter f | | -| Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:10:24:10:29 | exit ToBool (normal) | return | +| Extensions.cs:10:24:10:29 | Entry | Extensions.cs:11:5:13:5 | {...} | | +| Extensions.cs:10:24:10:29 | Normal Exit | Extensions.cs:10:24:10:29 | Exit | | +| Extensions.cs:11:5:13:5 | {...} | Extensions.cs:12:9:12:20 | Before return ...; | | +| Extensions.cs:12:9:12:20 | Before return ...; | Extensions.cs:12:16:12:19 | Before delegate call | | +| Extensions.cs:12:9:12:20 | return ...; | Extensions.cs:10:24:10:29 | Normal Exit | return | | Extensions.cs:12:16:12:16 | access to parameter f | Extensions.cs:12:18:12:18 | access to parameter s | | -| Extensions.cs:12:16:12:19 | delegate call | Extensions.cs:12:9:12:20 | return ...; | | +| Extensions.cs:12:16:12:19 | After delegate call | Extensions.cs:12:9:12:20 | return ...; | | +| Extensions.cs:12:16:12:19 | Before delegate call | Extensions.cs:12:16:12:16 | access to parameter f | | +| Extensions.cs:12:16:12:19 | delegate call | Extensions.cs:12:16:12:19 | After delegate call | | | Extensions.cs:12:18:12:18 | access to parameter s | Extensions.cs:12:16:12:19 | delegate call | | -| Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:48:15:50 | "0" | | -| Extensions.cs:15:23:15:33 | exit CallToInt32 (normal) | Extensions.cs:15:23:15:33 | exit CallToInt32 | | -| Extensions.cs:15:40:15:51 | call to method ToInt32 | Extensions.cs:15:23:15:33 | exit CallToInt32 (normal) | | +| Extensions.cs:15:23:15:33 | Entry | Extensions.cs:15:40:15:51 | Before call to method ToInt32 | | +| Extensions.cs:15:23:15:33 | Normal Exit | Extensions.cs:15:23:15:33 | Exit | | +| Extensions.cs:15:40:15:51 | After call to method ToInt32 | Extensions.cs:15:23:15:33 | Normal Exit | | +| Extensions.cs:15:40:15:51 | Before call to method ToInt32 | Extensions.cs:15:48:15:50 | "0" | | +| Extensions.cs:15:40:15:51 | call to method ToInt32 | Extensions.cs:15:40:15:51 | After call to method ToInt32 | | | Extensions.cs:15:48:15:50 | "0" | Extensions.cs:15:40:15:51 | call to method ToInt32 | | -| Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:21:5:26:5 | {...} | | -| Extensions.cs:20:17:20:20 | exit Main (normal) | Extensions.cs:20:17:20:20 | exit Main | | +| Extensions.cs:20:17:20:20 | Entry | Extensions.cs:21:5:26:5 | {...} | | +| Extensions.cs:20:17:20:20 | Normal Exit | Extensions.cs:20:17:20:20 | Exit | | +| Extensions.cs:21:5:26:5 | After {...} | Extensions.cs:20:17:20:20 | Normal Exit | | | Extensions.cs:21:5:26:5 | {...} | Extensions.cs:22:9:22:20 | ...; | | | Extensions.cs:22:9:22:9 | access to parameter s | Extensions.cs:22:9:22:19 | call to method ToInt32 | | -| Extensions.cs:22:9:22:19 | call to method ToInt32 | Extensions.cs:23:9:23:31 | ...; | | -| Extensions.cs:22:9:22:20 | ...; | Extensions.cs:22:9:22:9 | access to parameter s | | -| Extensions.cs:23:9:23:30 | call to method ToInt32 | Extensions.cs:24:9:24:46 | ...; | | -| Extensions.cs:23:9:23:31 | ...; | Extensions.cs:23:28:23:29 | "" | | +| Extensions.cs:22:9:22:19 | After call to method ToInt32 | Extensions.cs:22:9:22:20 | After ...; | | +| Extensions.cs:22:9:22:19 | Before call to method ToInt32 | Extensions.cs:22:9:22:9 | access to parameter s | | +| Extensions.cs:22:9:22:19 | call to method ToInt32 | Extensions.cs:22:9:22:19 | After call to method ToInt32 | | +| Extensions.cs:22:9:22:20 | ...; | Extensions.cs:22:9:22:19 | Before call to method ToInt32 | | +| Extensions.cs:22:9:22:20 | After ...; | Extensions.cs:23:9:23:31 | ...; | | +| Extensions.cs:23:9:23:30 | After call to method ToInt32 | Extensions.cs:23:9:23:31 | After ...; | | +| Extensions.cs:23:9:23:30 | Before call to method ToInt32 | Extensions.cs:23:28:23:29 | "" | | +| Extensions.cs:23:9:23:30 | call to method ToInt32 | Extensions.cs:23:9:23:30 | After call to method ToInt32 | | +| Extensions.cs:23:9:23:31 | ...; | Extensions.cs:23:9:23:30 | Before call to method ToInt32 | | +| Extensions.cs:23:9:23:31 | After ...; | Extensions.cs:24:9:24:46 | ...; | | | Extensions.cs:23:28:23:29 | "" | Extensions.cs:23:9:23:30 | call to method ToInt32 | | -| Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:25:9:25:34 | ...; | | -| Extensions.cs:24:9:24:46 | ...; | Extensions.cs:24:27:24:32 | "true" | | -| Extensions.cs:24:27:24:32 | "true" | Extensions.cs:24:35:24:44 | access to method Parse | | +| Extensions.cs:24:9:24:45 | After call to method ToBool | Extensions.cs:24:9:24:46 | After ...; | | +| Extensions.cs:24:9:24:45 | Before call to method ToBool | Extensions.cs:24:27:24:32 | "true" | | +| Extensions.cs:24:9:24:45 | call to method ToBool | Extensions.cs:24:9:24:45 | After call to method ToBool | | +| Extensions.cs:24:9:24:46 | ...; | Extensions.cs:24:9:24:45 | Before call to method ToBool | | +| Extensions.cs:24:9:24:46 | After ...; | Extensions.cs:25:9:25:34 | ...; | | +| Extensions.cs:24:27:24:32 | "true" | Extensions.cs:24:35:24:44 | Before delegate creation of type Func | | +| Extensions.cs:24:35:24:44 | After delegate creation of type Func | Extensions.cs:24:9:24:45 | call to method ToBool | | +| Extensions.cs:24:35:24:44 | Before delegate creation of type Func | Extensions.cs:24:35:24:44 | access to method Parse | | | Extensions.cs:24:35:24:44 | access to method Parse | Extensions.cs:24:35:24:44 | delegate creation of type Func | | -| Extensions.cs:24:35:24:44 | delegate creation of type Func | Extensions.cs:24:9:24:45 | call to method ToBool | | -| Extensions.cs:25:9:25:14 | "true" | Extensions.cs:25:23:25:32 | access to method Parse | | -| Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:20:17:20:20 | exit Main (normal) | | -| Extensions.cs:25:9:25:34 | ...; | Extensions.cs:25:9:25:14 | "true" | | +| Extensions.cs:24:35:24:44 | delegate creation of type Func | Extensions.cs:24:35:24:44 | After delegate creation of type Func | | +| Extensions.cs:25:9:25:14 | "true" | Extensions.cs:25:23:25:32 | Before delegate creation of type Func | | +| Extensions.cs:25:9:25:33 | After call to method ToBool | Extensions.cs:25:9:25:34 | After ...; | | +| Extensions.cs:25:9:25:33 | Before call to method ToBool | Extensions.cs:25:9:25:14 | "true" | | +| Extensions.cs:25:9:25:33 | call to method ToBool | Extensions.cs:25:9:25:33 | After call to method ToBool | | +| Extensions.cs:25:9:25:34 | ...; | Extensions.cs:25:9:25:33 | Before call to method ToBool | | +| Extensions.cs:25:9:25:34 | After ...; | Extensions.cs:21:5:26:5 | After {...} | | +| Extensions.cs:25:23:25:32 | After delegate creation of type Func | Extensions.cs:25:9:25:33 | call to method ToBool | | +| Extensions.cs:25:23:25:32 | Before delegate creation of type Func | 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 | 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 | 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 | | +| Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | After delegate creation of type Func | | +| Finally.cs:3:14:3:20 | After call to constructor Object | Finally.cs:3:14:3:20 | {...} | | +| Finally.cs:3:14:3:20 | After call to method | Finally.cs:3:14:3:20 | Before call to constructor Object | | +| Finally.cs:3:14:3:20 | Before call to constructor Object | Finally.cs:3:14:3:20 | call to constructor Object | | +| Finally.cs:3:14:3:20 | Before call to method | Finally.cs:3:14:3:20 | this access | | +| Finally.cs:3:14:3:20 | Entry | Finally.cs:3:14:3:20 | Before call to method | | +| Finally.cs:3:14:3:20 | Normal Exit | Finally.cs:3:14:3:20 | Exit | | +| Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | After call to constructor Object | | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | After call to method | | | 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 | | -| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | exit M1 | | +| Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | Normal Exit | | +| Finally.cs:7:10:7:11 | Entry | Finally.cs:8:5:17:5 | {...} | | +| Finally.cs:7:10:7:11 | Exceptional Exit | Finally.cs:7:10:7:11 | Exit | | +| Finally.cs:7:10:7:11 | Normal Exit | Finally.cs:7:10:7:11 | Exit | | +| Finally.cs:8:5:17:5 | After {...} | Finally.cs:7:10:7:11 | Normal Exit | | | Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... | | +| Finally.cs:9:9:16:9 | After try {...} ... | Finally.cs:8:5:17:5 | After {...} | | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:10:9:12:9 | {...} | | +| Finally.cs:10:9:12:9 | After {...} | Finally.cs:14:9:16:9 | {...} | | | Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:38 | ...; | | -| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} | , exception | -| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:31:11:36 | "Try1" | | +| Finally.cs:11:13:11:37 | After call to method WriteLine | Finally.cs:11:13:11:38 | After ...; | | +| Finally.cs:11:13:11:37 | Before call to method WriteLine | Finally.cs:11:31:11:36 | "Try1" | | +| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:11:13:11:37 | After call to method WriteLine | | +| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} | exception | +| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:13:11:37 | Before call to method WriteLine | | +| Finally.cs:11:13:11:38 | After ...; | Finally.cs:10:9:12:9 | After {...} | | | Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:37 | call to method WriteLine | | +| Finally.cs:14:9:16:9 | After {...} | Finally.cs:7:10:7:11 | Exceptional Exit | exception | +| Finally.cs:14:9:16:9 | After {...} | Finally.cs:9:9:16:9 | After try {...} ... | | | Finally.cs:14:9:16:9 | {...} | Finally.cs:15:13:15:41 | ...; | | -| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | exception | -| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (normal) | | -| Finally.cs:15:13:15:41 | ...; | Finally.cs:15:31:15:39 | "Finally" | | +| Finally.cs:15:13:15:40 | After call to method WriteLine | Finally.cs:15:13:15:41 | After ...; | | +| Finally.cs:15:13:15:40 | Before call to method WriteLine | Finally.cs:15:31:15:39 | "Finally" | | +| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:15:13:15:40 | After call to method WriteLine | | +| Finally.cs:15:13:15:41 | ...; | Finally.cs:15:13:15:40 | Before call to method WriteLine | | +| Finally.cs:15:13:15:41 | After ...; | Finally.cs:14:9:16:9 | After {...} | | | Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:40 | call to method WriteLine | | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:20:5:52:5 | {...} | | -| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 | | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 | | +| Finally.cs:19:10:19:11 | Entry | Finally.cs:20:5:52:5 | {...} | | +| Finally.cs:19:10:19:11 | Exceptional Exit | Finally.cs:19:10:19:11 | Exit | | +| Finally.cs:19:10:19:11 | Normal Exit | Finally.cs:19:10:19:11 | Exit | | +| Finally.cs:20:5:52:5 | After {...} | Finally.cs:19:10:19:11 | Normal Exit | | | Finally.cs:20:5:52:5 | {...} | Finally.cs:21:9:51:9 | try {...} ... | | +| Finally.cs:21:9:51:9 | After try {...} ... | Finally.cs:20:5:52:5 | After {...} | | | Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:22:9:25:9 | {...} | | | Finally.cs:22:9:25:9 | {...} | Finally.cs:23:13:23:38 | ...; | | -| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:24:13:24:19 | return ...; | | +| Finally.cs:23:13:23:37 | After call to method WriteLine | Finally.cs:23:13:23:38 | After ...; | | +| Finally.cs:23:13:23:37 | Before call to method WriteLine | Finally.cs:23:31:23:36 | "Try2" | | +| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:23:13:23:37 | After call to method WriteLine | | | Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | catch (...) {...} | exception | -| Finally.cs:23:13:23:38 | ...; | Finally.cs:23:31:23:36 | "Try2" | | +| Finally.cs:23:13:23:38 | ...; | Finally.cs:23:13:23:37 | Before call to method WriteLine | | +| Finally.cs:23:13:23:38 | After ...; | Finally.cs:24:13:24:19 | Before return ...; | | | Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:13:23:37 | call to method WriteLine | | +| Finally.cs:24:13:24:19 | Before return ...; | Finally.cs:24:13:24:19 | return ...; | | | Finally.cs:24:13:24:19 | return ...; | Finally.cs:49:9:51:9 | {...} | return | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | match | -| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | no-match | +| Finally.cs:26:9:29:9 | After catch (...) {...} [match] | Finally.cs:26:38:26:39 | IOException ex | | +| Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | Finally.cs:30:9:40:9 | catch (...) {...} | | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [match] | match | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | After catch (...) {...} [no-match] | no-match | | Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:48:26:51 | true | | -| Finally.cs:26:48:26:51 | true | Finally.cs:27:9:29:9 | {...} | true | -| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | | +| Finally.cs:26:48:26:51 | After true [true] | Finally.cs:27:9:29:9 | {...} | | +| Finally.cs:26:48:26:51 | true | Finally.cs:26:48:26:51 | After true [true] | true | +| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | Before throw ...; | | +| Finally.cs:28:13:28:18 | Before throw ...; | Finally.cs:28:13:28:18 | throw ...; | | | Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | {...} | exception | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | match | -| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | no-match | +| Finally.cs:30:9:40:9 | After catch (...) {...} [match] | Finally.cs:30:41:30:42 | ArgumentException ex | | +| Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | Finally.cs:41:9:43:9 | catch (...) {...} | | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [match] | match | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | After catch (...) {...} [no-match] | no-match | | Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:31:9:40:9 | {...} | | | Finally.cs:31:9:40:9 | {...} | Finally.cs:32:13:39:13 | try {...} ... | | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:33:13:35:13 | {...} | | | Finally.cs:33:13:35:13 | {...} | Finally.cs:34:17:34:32 | if (...) ... | | | Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:34:21:34:24 | true | | -| Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; | true | +| Finally.cs:34:21:34:24 | After true [true] | Finally.cs:34:27:34:32 | Before throw ...; | | +| Finally.cs:34:21:34:24 | true | Finally.cs:34:21:34:24 | After true [true] | true | +| Finally.cs:34:27:34:32 | Before throw ...; | Finally.cs:34:27:34:32 | throw ...; | | | Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | {...} | exception | -| Finally.cs:37:13:39:13 | {...} | Finally.cs:38:37:38:42 | "Boo!" | | +| Finally.cs:37:13:39:13 | {...} | Finally.cs:38:17:38:44 | Before throw ...; | | +| Finally.cs:38:17:38:44 | Before throw ...; | Finally.cs:38:23:38:43 | Before object creation of type Exception | | | Finally.cs:38:17:38:44 | throw ...; | Finally.cs:49:9:51:9 | {...} | exception | -| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:17:38:44 | throw ...; | | +| Finally.cs:38:23:38:43 | After object creation of type Exception | Finally.cs:38:17:38:44 | throw ...; | | +| Finally.cs:38:23:38:43 | Before object creation of type Exception | Finally.cs:38:37:38:42 | "Boo!" | | +| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:23:38:43 | After object creation of type Exception | | | Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:38:23:38:43 | object creation of type Exception | | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | match | -| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | no-match | +| Finally.cs:41:9:43:9 | After catch (...) {...} [match] | Finally.cs:42:9:43:9 | {...} | | +| Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | Finally.cs:44:9:47:9 | catch {...} | | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [match] | match | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | After catch (...) {...} [no-match] | no-match | | Finally.cs:42:9:43:9 | {...} | Finally.cs:49:9:51:9 | {...} | | -| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:45:9:47:9 | {...} | | -| Finally.cs:45:9:47:9 | {...} | Finally.cs:46:13:46:19 | return ...; | | +| Finally.cs:44:9:47:9 | After catch {...} [match] | Finally.cs:45:9:47:9 | {...} | | +| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:44:9:47:9 | After catch {...} [match] | match | +| Finally.cs:45:9:47:9 | {...} | Finally.cs:46:13:46:19 | Before return ...; | | +| Finally.cs:46:13:46:19 | Before return ...; | Finally.cs:46:13:46:19 | return ...; | | | Finally.cs:46:13:46:19 | return ...; | Finally.cs:49:9:51:9 | {...} | return | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:19:10:19:11 | Exceptional Exit | exception | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:19:10:19:11 | Normal Exit | return | +| Finally.cs:49:9:51:9 | After {...} | Finally.cs:21:9:51:9 | After try {...} ... | | | Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:41 | ...; | | -| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception | -| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (normal) | , return | -| Finally.cs:50:13:50:41 | ...; | Finally.cs:50:31:50:39 | "Finally" | | +| Finally.cs:50:13:50:40 | After call to method WriteLine | Finally.cs:50:13:50:41 | After ...; | | +| Finally.cs:50:13:50:40 | Before call to method WriteLine | Finally.cs:50:31:50:39 | "Finally" | | +| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:50:13:50:40 | After call to method WriteLine | | +| Finally.cs:50:13:50:41 | ...; | Finally.cs:50:13:50:40 | Before call to method WriteLine | | +| Finally.cs:50:13:50:41 | After ...; | Finally.cs:49:9:51:9 | After {...} | | | Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:40 | call to method WriteLine | | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:55:5:72:5 | {...} | | -| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 | | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 | | +| Finally.cs:54:10:54:11 | Entry | Finally.cs:55:5:72:5 | {...} | | +| Finally.cs:54:10:54:11 | Exceptional Exit | Finally.cs:54:10:54:11 | Exit | | +| Finally.cs:54:10:54:11 | Normal Exit | Finally.cs:54:10:54:11 | Exit | | +| Finally.cs:55:5:72:5 | After {...} | Finally.cs:54:10:54:11 | Normal Exit | | | Finally.cs:55:5:72:5 | {...} | Finally.cs:56:9:71:9 | try {...} ... | | +| Finally.cs:56:9:71:9 | After try {...} ... | Finally.cs:55:5:72:5 | After {...} | | | Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:57:9:60:9 | {...} | | | Finally.cs:57:9:60:9 | {...} | Finally.cs:58:13:58:38 | ...; | | -| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:59:13:59:19 | return ...; | | +| Finally.cs:58:13:58:37 | After call to method WriteLine | Finally.cs:58:13:58:38 | After ...; | | +| Finally.cs:58:13:58:37 | Before call to method WriteLine | Finally.cs:58:31:58:36 | "Try3" | | +| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:58:13:58:37 | After call to method WriteLine | | | Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | catch (...) {...} | exception | -| Finally.cs:58:13:58:38 | ...; | Finally.cs:58:31:58:36 | "Try3" | | +| Finally.cs:58:13:58:38 | ...; | Finally.cs:58:13:58:37 | Before call to method WriteLine | | +| Finally.cs:58:13:58:38 | After ...; | Finally.cs:59:13:59:19 | Before return ...; | | | Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:13:58:37 | call to method WriteLine | | +| Finally.cs:59:13:59:19 | Before return ...; | Finally.cs:59:13:59:19 | return ...; | | | Finally.cs:59:13:59:19 | return ...; | Finally.cs:69:9:71:9 | {...} | return | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | match | -| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | no-match | +| Finally.cs:61:9:64:9 | After catch (...) {...} [match] | Finally.cs:61:38:61:39 | IOException ex | | +| Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | Finally.cs:65:9:67:9 | catch (...) {...} | | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [match] | match | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | After catch (...) {...} [no-match] | no-match | | Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:48:61:51 | true | | -| Finally.cs:61:48:61:51 | true | Finally.cs:62:9:64:9 | {...} | true | -| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | | +| Finally.cs:61:48:61:51 | After true [true] | Finally.cs:62:9:64:9 | {...} | | +| Finally.cs:61:48:61:51 | true | Finally.cs:61:48:61:51 | After true [true] | true | +| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | Before throw ...; | | +| Finally.cs:63:13:63:18 | Before throw ...; | Finally.cs:63:13:63:18 | throw ...; | | | Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | {...} | exception | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | match | -| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:69:9:71:9 | {...} | exception | -| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:35 | access to local variable e | | +| Finally.cs:65:9:67:9 | After catch (...) {...} [match] | Finally.cs:65:26:65:26 | Exception e | | +| Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | Finally.cs:69:9:71:9 | {...} | exception | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [match] | match | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | no-match | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:51 | Before ... != ... | | | Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:35:65:43 | access to property Message | | -| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:48:65:51 | null | | -| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:66:9:67:9 | {...} | true | -| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:69:9:71:9 | {...} | exception | +| Finally.cs:65:35:65:43 | After access to property Message | Finally.cs:65:48:65:51 | null | | +| Finally.cs:65:35:65:43 | Before access to property Message | Finally.cs:65:35:65:35 | access to local variable e | | +| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:35:65:43 | After access to property Message | | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | After ... != ... [false] | false | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:35:65:51 | After ... != ... [true] | true | +| Finally.cs:65:35:65:51 | After ... != ... [false] | Finally.cs:65:9:67:9 | After catch (...) {...} [no-match] | no-match | +| Finally.cs:65:35:65:51 | After ... != ... [true] | Finally.cs:66:9:67:9 | {...} | | +| Finally.cs:65:35:65:51 | Before ... != ... | Finally.cs:65:35:65:43 | Before access to property Message | | | Finally.cs:65:48:65:51 | null | Finally.cs:65:35:65:51 | ... != ... | | | Finally.cs:66:9:67:9 | {...} | Finally.cs:69:9:71:9 | {...} | | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:54:10:54:11 | Exceptional Exit | exception | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:54:10:54:11 | Normal Exit | return | +| Finally.cs:69:9:71:9 | After {...} | Finally.cs:56:9:71:9 | After try {...} ... | | | Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:41 | ...; | | -| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception | -| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (normal) | , return | -| Finally.cs:70:13:70:41 | ...; | Finally.cs:70:31:70:39 | "Finally" | | +| Finally.cs:70:13:70:40 | After call to method WriteLine | Finally.cs:70:13:70:41 | After ...; | | +| Finally.cs:70:13:70:40 | Before call to method WriteLine | Finally.cs:70:31:70:39 | "Finally" | | +| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:70:13:70:40 | After call to method WriteLine | | +| Finally.cs:70:13:70:41 | ...; | Finally.cs:70:13:70:40 | Before call to method WriteLine | | +| Finally.cs:70:13:70:41 | After ...; | Finally.cs:69:9:71:9 | After {...} | | | Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:40 | call to method WriteLine | | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:75:5:101:5 | {...} | | -| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 | | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | exit M4 | | +| Finally.cs:74:10:74:11 | Entry | Finally.cs:75:5:101:5 | {...} | | +| Finally.cs:74:10:74:11 | Exceptional Exit | Finally.cs:74:10:74:11 | Exit | | +| Finally.cs:74:10:74:11 | Normal Exit | Finally.cs:74:10:74:11 | Exit | | +| Finally.cs:75:5:101:5 | After {...} | Finally.cs:74:10:74:11 | Normal Exit | | | Finally.cs:75:5:101:5 | {...} | Finally.cs:76:9:76:19 | ... ...; | | -| Finally.cs:76:9:76:19 | ... ...; | Finally.cs:76:17:76:18 | 10 | | -| Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:77:9:100:9 | while (...) ... | | +| Finally.cs:76:9:76:19 | ... ...; | Finally.cs:76:13:76:18 | Before Int32 i = ... | | +| Finally.cs:76:9:76:19 | After ... ...; | Finally.cs:77:9:100:9 | while (...) ... | | +| Finally.cs:76:13:76:13 | access to local variable i | Finally.cs:76:17:76:18 | 10 | | +| Finally.cs:76:13:76:18 | After Int32 i = ... | Finally.cs:76:9:76:19 | After ... ...; | | +| Finally.cs:76:13:76:18 | Before Int32 i = ... | Finally.cs:76:13:76:13 | access to local variable i | | +| Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:76:13:76:18 | After Int32 i = ... | | | Finally.cs:76:17:76:18 | 10 | Finally.cs:76:13:76:18 | Int32 i = ... | | -| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:77:16:77:16 | access to local variable i | | +| Finally.cs:77:9:100:9 | After while (...) ... | Finally.cs:75:5:101:5 | After {...} | | +| Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | Finally.cs:77:16:77:20 | Before ... > ... | | +| Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:20:77:20 | 0 | | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:74:10:74:11 | exit M4 (normal) | false | -| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:78:9:100:9 | {...} | true | +| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | After ... > ... [false] | false | +| Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:16:77:20 | After ... > ... [true] | true | +| Finally.cs:77:16:77:20 | After ... > ... [false] | Finally.cs:77:9:100:9 | After while (...) ... | | +| Finally.cs:77:16:77:20 | After ... > ... [true] | Finally.cs:78:9:100:9 | {...} | | +| Finally.cs:77:16:77:20 | Before ... > ... | Finally.cs:77:16:77:16 | access to local variable i | | | Finally.cs:77:20:77:20 | 0 | Finally.cs:77:16:77:20 | ... > ... | | +| Finally.cs:78:9:100:9 | After {...} | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | | | Finally.cs:78:9:100:9 | {...} | Finally.cs:79:13:99:13 | try {...} ... | | +| Finally.cs:79:13:99:13 | After try {...} ... | Finally.cs:78:9:100:9 | After {...} | | | Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:80:13:87:13 | {...} | | +| Finally.cs:80:13:87:13 | After {...} | Finally.cs:89:13:99:13 | {...} | | | Finally.cs:80:13:87:13 | {...} | Finally.cs:81:17:82:27 | if (...) ... | | -| Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:81:21:81:21 | access to local variable i | | +| Finally.cs:81:17:82:27 | After if (...) ... | Finally.cs:83:17:84:29 | if (...) ... | | +| Finally.cs:81:17:82:27 | if (...) ... | Finally.cs:81:21:81:26 | Before ... == ... | | | Finally.cs:81:21:81:21 | access to local variable i | Finally.cs:81:26:81:26 | 0 | | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:82:21:82:27 | return ...; | true | -| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:83:17:84:29 | if (...) ... | false | +| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | After ... == ... [false] | false | +| Finally.cs:81:21:81:26 | ... == ... | Finally.cs:81:21:81:26 | After ... == ... [true] | true | +| Finally.cs:81:21:81:26 | After ... == ... [false] | Finally.cs:81:17:82:27 | After if (...) ... | | +| Finally.cs:81:21:81:26 | After ... == ... [true] | Finally.cs:82:21:82:27 | Before return ...; | | +| Finally.cs:81:21:81:26 | Before ... == ... | Finally.cs:81:21:81:21 | access to local variable i | | | Finally.cs:81:26:81:26 | 0 | Finally.cs:81:21:81:26 | ... == ... | | +| Finally.cs:82:21:82:27 | Before return ...; | Finally.cs:82:21:82:27 | return ...; | | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:89:13:99:13 | {...} | return | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:21 | access to local variable i | | +| Finally.cs:83:17:84:29 | After if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | | +| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:26 | Before ... == ... | | | Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:83:26:83:26 | 1 | | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:84:21:84:29 | continue; | true | -| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:85:17:86:26 | if (...) ... | false | +| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | After ... == ... [false] | false | +| Finally.cs:83:21:83:26 | ... == ... | Finally.cs:83:21:83:26 | After ... == ... [true] | true | +| Finally.cs:83:21:83:26 | After ... == ... [false] | Finally.cs:83:17:84:29 | After if (...) ... | | +| Finally.cs:83:21:83:26 | After ... == ... [true] | Finally.cs:84:21:84:29 | Before continue; | | +| Finally.cs:83:21:83:26 | Before ... == ... | Finally.cs:83:21:83:21 | access to local variable i | | | Finally.cs:83:26:83:26 | 1 | Finally.cs:83:21:83:26 | ... == ... | | +| Finally.cs:84:21:84:29 | Before continue; | Finally.cs:84:21:84:29 | continue; | | | Finally.cs:84:21:84:29 | continue; | Finally.cs:89:13:99:13 | {...} | continue | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:21 | access to local variable i | | +| Finally.cs:85:17:86:26 | After if (...) ... | Finally.cs:80:13:87:13 | After {...} | | +| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:26 | Before ... == ... | | | Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:26:85:26 | 2 | | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:86:21:86:26 | break; | true | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:89:13:99:13 | {...} | false | +| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | After ... == ... [false] | false | +| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:21:85:26 | After ... == ... [true] | true | +| Finally.cs:85:21:85:26 | After ... == ... [false] | Finally.cs:85:17:86:26 | After if (...) ... | | +| Finally.cs:85:21:85:26 | After ... == ... [true] | Finally.cs:86:21:86:26 | Before break; | | +| Finally.cs:85:21:85:26 | Before ... == ... | Finally.cs:85:21:85:21 | access to local variable i | | | Finally.cs:85:26:85:26 | 2 | Finally.cs:85:21:85:26 | ... == ... | | +| Finally.cs:86:21:86:26 | Before break; | Finally.cs:86:21:86:26 | break; | | | Finally.cs:86:21:86:26 | break; | Finally.cs:89:13:99:13 | {...} | break | +| Finally.cs:89:13:99:13 | After {...} | Finally.cs:74:10:74:11 | Normal Exit | return | +| Finally.cs:89:13:99:13 | After {...} | Finally.cs:77:9:100:9 | After while (...) ... | break | +| Finally.cs:89:13:99:13 | After {...} | Finally.cs:77:9:100:9 | [LoopHeader] while (...) ... | continue | +| Finally.cs:89:13:99:13 | After {...} | Finally.cs:79:13:99:13 | After try {...} ... | | | Finally.cs:89:13:99:13 | {...} | Finally.cs:90:17:98:17 | try {...} ... | | +| Finally.cs:90:17:98:17 | After try {...} ... | Finally.cs:89:13:99:13 | After {...} | | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:91:17:94:17 | {...} | | +| Finally.cs:91:17:94:17 | After {...} | Finally.cs:96:17:98:17 | {...} | | | Finally.cs:91:17:94:17 | {...} | Finally.cs:92:21:93:46 | if (...) ... | | -| Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:92:25:92:25 | access to local variable i | | +| Finally.cs:92:21:93:46 | After if (...) ... | Finally.cs:91:17:94:17 | After {...} | | +| Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:92:25:92:30 | Before ... == ... | | | Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:30:92:30 | 3 | | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:93:31:93:45 | object creation of type Exception | true | -| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:96:17:98:17 | {...} | false | +| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | After ... == ... [false] | false | +| Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:25:92:30 | After ... == ... [true] | true | +| Finally.cs:92:25:92:30 | After ... == ... [false] | Finally.cs:92:21:93:46 | After if (...) ... | | +| Finally.cs:92:25:92:30 | After ... == ... [true] | Finally.cs:93:25:93:46 | Before throw ...; | | +| Finally.cs:92:25:92:30 | Before ... == ... | Finally.cs:92:25:92:25 | access to local variable i | | | Finally.cs:92:30:92:30 | 3 | Finally.cs:92:25:92:30 | ... == ... | | +| Finally.cs:93:25:93:46 | Before throw ...; | Finally.cs:93:31:93:45 | Before object creation of type Exception | | | Finally.cs:93:25:93:46 | throw ...; | Finally.cs:96:17:98:17 | {...} | exception | -| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | | +| Finally.cs:93:31:93:45 | After object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | | +| Finally.cs:93:31:93:45 | Before object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | | +| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | After object creation of type Exception | | | Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | {...} | exception | +| Finally.cs:96:17:98:17 | After {...} | Finally.cs:74:10:74:11 | Exceptional Exit | exception | +| Finally.cs:96:17:98:17 | After {...} | Finally.cs:90:17:98:17 | After try {...} ... | | | Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:24 | ...; | | | Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:23 | ...-- | | -| Finally.cs:97:21:97:23 | ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception | -| Finally.cs:97:21:97:23 | ...-- | Finally.cs:74:10:74:11 | exit M4 (normal) | break, return | -| Finally.cs:97:21:97:23 | ...-- | Finally.cs:77:16:77:16 | access to local variable i | , continue | -| Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:21 | access to local variable i | | -| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:104:5:119:5 | {...} | | -| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 | | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | exit M5 | | +| Finally.cs:97:21:97:23 | ...-- | Finally.cs:97:21:97:23 | After ...-- | | +| Finally.cs:97:21:97:23 | After ...-- | Finally.cs:97:21:97:24 | After ...; | | +| Finally.cs:97:21:97:23 | Before ...-- | Finally.cs:97:21:97:21 | access to local variable i | | +| Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:23 | Before ...-- | | +| Finally.cs:97:21:97:24 | After ...; | Finally.cs:96:17:98:17 | After {...} | | +| Finally.cs:103:10:103:11 | Entry | Finally.cs:104:5:119:5 | {...} | | +| Finally.cs:103:10:103:11 | Exceptional Exit | Finally.cs:103:10:103:11 | Exit | | +| Finally.cs:103:10:103:11 | Normal Exit | Finally.cs:103:10:103:11 | Exit | | +| Finally.cs:104:5:119:5 | After {...} | Finally.cs:103:10:103:11 | Normal Exit | | | Finally.cs:104:5:119:5 | {...} | Finally.cs:105:9:118:9 | try {...} ... | | +| Finally.cs:105:9:118:9 | After try {...} ... | Finally.cs:104:5:119:5 | After {...} | | | Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:106:9:111:9 | {...} | | +| Finally.cs:106:9:111:9 | After {...} | Finally.cs:113:9:118:9 | {...} | | | Finally.cs:106:9:111:9 | {...} | Finally.cs:107:13:108:23 | if (...) ... | | -| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:21 | this access | | -| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:28 | access to property Length | | +| Finally.cs:107:13:108:23 | After if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | | +| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:33 | Before ... == ... | | +| Finally.cs:107:17:107:21 | After access to field Field | Finally.cs:107:17:107:28 | access to property Length | | +| Finally.cs:107:17:107:21 | Before access to field Field | Finally.cs:107:17:107:21 | this access | | +| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:21 | After access to field Field | | | Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | {...} | exception | | Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | access to field Field | | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:33:107:33 | 0 | | +| Finally.cs:107:17:107:28 | After access to property Length | Finally.cs:107:33:107:33 | 0 | | +| Finally.cs:107:17:107:28 | Before access to property Length | Finally.cs:107:17:107:21 | Before access to field Field | | +| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | After access to property Length | | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | {...} | exception | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:108:17:108:23 | return ...; | true | -| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | false | +| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | After ... == ... [false] | false | +| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:17:107:33 | After ... == ... [true] | true | +| Finally.cs:107:17:107:33 | After ... == ... [false] | Finally.cs:107:13:108:23 | After if (...) ... | | +| Finally.cs:107:17:107:33 | After ... == ... [true] | Finally.cs:108:17:108:23 | Before return ...; | | +| Finally.cs:107:17:107:33 | Before ... == ... | Finally.cs:107:17:107:28 | Before access to property Length | | | Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... | | +| Finally.cs:108:17:108:23 | Before return ...; | Finally.cs:108:17:108:23 | return ...; | | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:113:9:118:9 | {...} | return | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | this access | | -| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:28 | access to property Length | | +| Finally.cs:109:13:110:49 | After if (...) ... | Finally.cs:106:9:111:9 | After {...} | | +| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:33 | Before ... == ... | | +| Finally.cs:109:17:109:21 | After access to field Field | Finally.cs:109:17:109:28 | access to property Length | | +| Finally.cs:109:17:109:21 | Before access to field Field | Finally.cs:109:17:109:21 | this access | | +| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:21 | After access to field Field | | | Finally.cs:109:17:109:21 | access to field Field | Finally.cs:113:9:118:9 | {...} | exception | | Finally.cs:109:17:109:21 | this access | Finally.cs:109:17:109:21 | access to field Field | | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | | +| Finally.cs:109:17:109:28 | After access to property Length | Finally.cs:109:33:109:33 | 1 | | +| Finally.cs:109:17:109:28 | Before access to property Length | Finally.cs:109:17:109:21 | Before access to field Field | | +| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | After access to property Length | | | Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | {...} | exception | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true | -| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} | false | +| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | After ... == ... [false] | false | +| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:17:109:33 | After ... == ... [true] | true | +| Finally.cs:109:17:109:33 | After ... == ... [false] | Finally.cs:109:13:110:49 | After if (...) ... | | +| Finally.cs:109:17:109:33 | After ... == ... [true] | Finally.cs:110:17:110:49 | Before throw ...; | | +| Finally.cs:109:17:109:33 | Before ... == ... | Finally.cs:109:17:109:28 | Before access to property Length | | | Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | | +| Finally.cs:110:17:110:49 | Before throw ...; | Finally.cs:110:23:110:48 | Before object creation of type OutOfMemoryException | | | Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | {...} | exception | -| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | | +| Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | | +| Finally.cs:110:23:110:48 | Before object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | +| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | After object creation of type OutOfMemoryException | | | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:113:9:118:9 | {...} | exception | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:103:10:103:11 | Exceptional Exit | exception | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:103:10:103:11 | Normal Exit | return | +| Finally.cs:113:9:118:9 | After {...} | Finally.cs:105:9:118:9 | After try {...} ... | | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | if (...) ... | | -| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:19:114:23 | this access | | -| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:116:13:117:37 | if (...) ... | false | -| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true | -| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:30 | access to property Length | | +| Finally.cs:114:13:115:41 | After if (...) ... | Finally.cs:116:13:117:37 | if (...) ... | | +| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:17:114:36 | !... | | +| Finally.cs:114:17:114:36 | !... | Finally.cs:114:19:114:35 | Before ... == ... | | +| Finally.cs:114:17:114:36 | After !... [false] | Finally.cs:114:13:115:41 | After if (...) ... | | +| Finally.cs:114:17:114:36 | After !... [true] | Finally.cs:115:17:115:41 | ...; | | +| Finally.cs:114:19:114:23 | After access to field Field | Finally.cs:114:19:114:30 | access to property Length | | +| Finally.cs:114:19:114:23 | Before access to field Field | Finally.cs:114:19:114:23 | this access | | +| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:23 | After access to field Field | | | Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | access to field Field | | -| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:35:114:35 | 0 | | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | true | -| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | false | +| Finally.cs:114:19:114:30 | After access to property Length | Finally.cs:114:35:114:35 | 0 | | +| Finally.cs:114:19:114:30 | Before access to property Length | Finally.cs:114:19:114:23 | Before access to field Field | | +| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:30 | After access to property Length | | +| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | After ... == ... [false] | false | +| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:19:114:35 | After ... == ... [true] | true | +| Finally.cs:114:19:114:35 | After ... == ... [false] | Finally.cs:114:17:114:36 | After !... [true] | true | +| Finally.cs:114:19:114:35 | After ... == ... [true] | Finally.cs:114:17:114:36 | After !... [false] | false | +| Finally.cs:114:19:114:35 | Before ... == ... | Finally.cs:114:19:114:30 | Before access to property Length | | | Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:35 | ... == ... | | -| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:116:13:117:37 | if (...) ... | | -| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:35:115:39 | this access | | -| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine | | +| Finally.cs:115:17:115:40 | After call to method WriteLine | Finally.cs:115:17:115:41 | After ...; | | +| Finally.cs:115:17:115:40 | Before call to method WriteLine | Finally.cs:115:35:115:39 | Before access to field Field | | +| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:115:17:115:40 | After call to method WriteLine | | +| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:40 | Before call to method WriteLine | | +| Finally.cs:115:17:115:41 | After ...; | Finally.cs:114:13:115:41 | After if (...) ... | | +| Finally.cs:115:35:115:39 | After access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine | | +| Finally.cs:115:35:115:39 | Before access to field Field | Finally.cs:115:35:115:39 | this access | | +| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:35:115:39 | After access to field Field | | | Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | access to field Field | | -| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:21 | this access | | -| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:28 | access to property Length | | +| Finally.cs:116:13:117:37 | After if (...) ... | Finally.cs:113:9:118:9 | After {...} | | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:32 | Before ... > ... | | +| Finally.cs:116:17:116:21 | After access to field Field | Finally.cs:116:17:116:28 | access to property Length | | +| Finally.cs:116:17:116:21 | Before access to field Field | Finally.cs:116:17:116:21 | this access | | +| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:21 | After access to field Field | | | Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | access to field Field | | -| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:32:116:32 | 0 | | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | false, return | -| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | true | +| Finally.cs:116:17:116:28 | After access to property Length | Finally.cs:116:32:116:32 | 0 | | +| Finally.cs:116:17:116:28 | Before access to property Length | Finally.cs:116:17:116:21 | Before access to field Field | | +| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:17:116:28 | After access to property Length | | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | After ... > ... [false] | false | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:17:116:32 | After ... > ... [true] | true | +| Finally.cs:116:17:116:32 | After ... > ... [false] | Finally.cs:116:13:117:37 | After if (...) ... | | +| Finally.cs:116:17:116:32 | After ... > ... [true] | Finally.cs:117:17:117:37 | ...; | | +| Finally.cs:116:17:116:32 | Before ... > ... | Finally.cs:116:17:116:28 | Before access to property Length | | | Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:32 | ... > ... | | -| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception | -| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (normal) | , return | -| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:35:117:35 | 1 | | +| Finally.cs:117:17:117:36 | After call to method WriteLine | Finally.cs:117:17:117:37 | After ...; | | +| Finally.cs:117:17:117:36 | Before call to method WriteLine | Finally.cs:117:35:117:35 | 1 | | +| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:117:17:117:36 | After call to method WriteLine | | +| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:36 | Before call to method WriteLine | | +| Finally.cs:117:17:117:37 | After ...; | Finally.cs:116:13:117:37 | After if (...) ... | | | Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:36 | call to method WriteLine | | -| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:122:5:131:5 | {...} | | -| Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | exit M6 | | +| Finally.cs:121:10:121:11 | Entry | Finally.cs:122:5:131:5 | {...} | | +| Finally.cs:121:10:121:11 | Normal Exit | Finally.cs:121:10:121:11 | Exit | | +| Finally.cs:122:5:131:5 | After {...} | Finally.cs:121:10:121:11 | Normal Exit | | | Finally.cs:122:5:131:5 | {...} | Finally.cs:123:9:130:9 | try {...} ... | | +| Finally.cs:123:9:130:9 | After try {...} ... | Finally.cs:122:5:131:5 | After {...} | | | Finally.cs:123:9:130:9 | try {...} ... | Finally.cs:124:9:126:9 | {...} | | +| Finally.cs:124:9:126:9 | After {...} | Finally.cs:123:9:130:9 | After try {...} ... | | | Finally.cs:124:9:126:9 | {...} | Finally.cs:125:13:125:41 | ... ...; | | -| Finally.cs:125:13:125:41 | ... ...; | Finally.cs:125:24:125:24 | 0 | | -| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:121:10:121:11 | exit M6 (normal) | | +| Finally.cs:125:13:125:41 | ... ...; | Finally.cs:125:17:125:40 | Before Double temp = ... | | +| Finally.cs:125:13:125:41 | After ... ...; | Finally.cs:124:9:126:9 | After {...} | | +| Finally.cs:125:17:125:20 | access to local variable temp | Finally.cs:125:24:125:40 | Before ... / ... | | +| Finally.cs:125:17:125:40 | After Double temp = ... | Finally.cs:125:13:125:41 | After ... ...; | | +| Finally.cs:125:17:125:40 | Before Double temp = ... | Finally.cs:125:17:125:20 | access to local variable temp | | +| Finally.cs:125:17:125:40 | Double temp = ... | Finally.cs:125:17:125:40 | After Double temp = ... | | | Finally.cs:125:24:125:24 | 0 | Finally.cs:125:24:125:24 | (...) ... | | -| Finally.cs:125:24:125:24 | (...) ... | Finally.cs:125:28:125:40 | access to constant E | | -| Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:17:125:40 | Double temp = ... | | +| Finally.cs:125:24:125:24 | (...) ... | Finally.cs:125:24:125:24 | After (...) ... | | +| Finally.cs:125:24:125:24 | After (...) ... | Finally.cs:125:28:125:40 | access to constant E | | +| Finally.cs:125:24:125:24 | Before (...) ... | Finally.cs:125:24:125:24 | 0 | | +| Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:24:125:40 | After ... / ... | | +| Finally.cs:125:24:125:40 | After ... / ... | Finally.cs:125:17:125:40 | Double temp = ... | | +| Finally.cs:125:24:125:40 | Before ... / ... | Finally.cs:125:24:125:24 | Before (...) ... | | | Finally.cs:125:28:125:40 | access to constant E | Finally.cs:125:24:125:40 | ... / ... | | -| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:134:5:145:5 | {...} | | -| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 | | +| Finally.cs:133:10:133:11 | Entry | Finally.cs:134:5:145:5 | {...} | | +| Finally.cs:133:10:133:11 | Exceptional Exit | Finally.cs:133:10:133:11 | Exit | | | Finally.cs:134:5:145:5 | {...} | Finally.cs:135:9:143:9 | try {...} ... | | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:136:9:138:9 | {...} | | +| Finally.cs:136:9:138:9 | After {...} | Finally.cs:140:9:143:9 | {...} | | | Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:37 | ...; | | -| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} | , exception | -| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:31:137:35 | "Try" | | +| Finally.cs:137:13:137:36 | After call to method WriteLine | Finally.cs:137:13:137:37 | After ...; | | +| Finally.cs:137:13:137:36 | Before call to method WriteLine | Finally.cs:137:31:137:35 | "Try" | | +| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:137:13:137:36 | After call to method WriteLine | | +| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} | exception | +| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:13:137:36 | Before call to method WriteLine | | +| Finally.cs:137:13:137:37 | After ...; | Finally.cs:136:9:138:9 | After {...} | | | Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:36 | call to method WriteLine | | -| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:41:141:42 | "" | | -| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception | -| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; | | +| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:13:141:44 | Before throw ...; | | +| Finally.cs:141:13:141:44 | Before throw ...; | Finally.cs:141:19:141:43 | Before object creation of type ArgumentException | | +| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | Exceptional Exit | exception | +| Finally.cs:141:19:141:43 | After object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; | | +| Finally.cs:141:19:141:43 | Before object creation of type ArgumentException | Finally.cs:141:41:141:42 | "" | | +| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:19:141:43 | After object creation of type ArgumentException | | | Finally.cs:141:41:141:42 | "" | Finally.cs:141:19:141:43 | object creation of type ArgumentException | | -| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:148:5:170:5 | {...} | | -| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 | | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 | | +| Finally.cs:147:10:147:11 | Entry | Finally.cs:148:5:170:5 | {...} | | +| Finally.cs:147:10:147:11 | Exceptional Exit | Finally.cs:147:10:147:11 | Exit | | +| Finally.cs:147:10:147:11 | Normal Exit | Finally.cs:147:10:147:11 | Exit | | +| Finally.cs:148:5:170:5 | After {...} | Finally.cs:147:10:147:11 | Normal Exit | | | Finally.cs:148:5:170:5 | {...} | Finally.cs:149:9:169:9 | try {...} ... | | +| Finally.cs:149:9:169:9 | After try {...} ... | Finally.cs:148:5:170:5 | After {...} | | | Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:150:9:153:9 | {...} | | +| Finally.cs:150:9:153:9 | After {...} | Finally.cs:155:9:169:9 | {...} | | | Finally.cs:150:9:153:9 | {...} | Finally.cs:151:13:152:50 | if (...) ... | | -| Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:151:17:151:20 | access to parameter args | | +| Finally.cs:151:13:152:50 | After if (...) ... | Finally.cs:150:9:153:9 | After {...} | | +| Finally.cs:151:13:152:50 | if (...) ... | Finally.cs:151:17:151:28 | Before ... == ... | | | Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:151:25:151:28 | null | | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true | -| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | false | +| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | After ... == ... [false] | false | +| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:17:151:28 | After ... == ... [true] | true | +| Finally.cs:151:17:151:28 | After ... == ... [false] | Finally.cs:151:13:152:50 | After if (...) ... | | +| Finally.cs:151:17:151:28 | After ... == ... [true] | Finally.cs:152:17:152:50 | Before throw ...; | | +| Finally.cs:151:17:151:28 | Before ... == ... | Finally.cs:151:17:151:20 | access to parameter args | | | Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:28 | ... == ... | | +| Finally.cs:152:17:152:50 | Before throw ...; | Finally.cs:152:23:152:49 | Before object creation of type ArgumentNullException | | | Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | {...} | exception | -| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | | +| Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | | +| Finally.cs:152:23:152:49 | Before object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | After object creation of type ArgumentNullException | | | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | {...} | exception | +| Finally.cs:155:9:169:9 | After {...} | Finally.cs:147:10:147:11 | Exceptional Exit | exception | +| Finally.cs:155:9:169:9 | After {...} | Finally.cs:149:9:169:9 | After try {...} ... | | | Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | try {...} ... | | +| Finally.cs:156:13:168:13 | After try {...} ... | Finally.cs:155:9:169:9 | After {...} | | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:157:13:160:13 | {...} | | +| Finally.cs:157:13:160:13 | After {...} | Finally.cs:156:13:168:13 | After try {...} ... | | | Finally.cs:157:13:160:13 | {...} | Finally.cs:158:17:159:45 | if (...) ... | | -| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:24 | access to parameter args | | +| Finally.cs:158:17:159:45 | After if (...) ... | Finally.cs:157:13:160:13 | After {...} | | +| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:36 | Before ... == ... | | | Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:31 | access to property Length | | -| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:36:158:36 | 1 | | +| Finally.cs:158:21:158:31 | After access to property Length | Finally.cs:158:36:158:36 | 1 | | +| Finally.cs:158:21:158:31 | Before access to property Length | Finally.cs:158:21:158:24 | access to parameter args | | +| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:31 | After access to property Length | | | Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | catch (...) {...} | exception | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (normal) | false | -| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | true | +| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | After ... == ... [false] | false | +| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:21:158:36 | After ... == ... [true] | true | +| Finally.cs:158:21:158:36 | After ... == ... [false] | Finally.cs:158:17:159:45 | After if (...) ... | | +| Finally.cs:158:21:158:36 | After ... == ... [true] | Finally.cs:159:21:159:45 | Before throw ...; | | +| Finally.cs:158:21:158:36 | Before ... == ... | Finally.cs:158:21:158:31 | Before access to property Length | | | Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | | +| Finally.cs:159:21:159:45 | Before throw ...; | Finally.cs:159:27:159:44 | Before object creation of type Exception | | | Finally.cs:159:21:159:45 | throw ...; | Finally.cs:161:13:164:13 | catch (...) {...} | exception | -| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | | +| Finally.cs:159:27:159:44 | After object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | | +| Finally.cs:159:27:159:44 | Before object creation of type Exception | Finally.cs:159:41:159:43 | "1" | | +| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:27:159:44 | After object creation of type Exception | | | Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:161:13:164:13 | catch (...) {...} | exception | | Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | match | -| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:165:13:168:13 | catch {...} | no-match | -| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:39 | access to local variable e | | +| Finally.cs:161:13:164:13 | After catch (...) {...} [match] | Finally.cs:161:30:161:30 | Exception e | | +| Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | Finally.cs:165:13:168:13 | catch {...} | | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [match] | match | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | no-match | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:54 | Before ... == ... | | | Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:39:161:47 | access to property Message | | -| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:52:161:54 | "1" | | -| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:162:13:164:13 | {...} | true | -| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | +| Finally.cs:161:39:161:47 | After access to property Message | Finally.cs:161:52:161:54 | "1" | | +| Finally.cs:161:39:161:47 | Before access to property Message | Finally.cs:161:39:161:39 | access to local variable e | | +| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:39:161:47 | After access to property Message | | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | After ... == ... [false] | false | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:39:161:54 | After ... == ... [true] | true | +| Finally.cs:161:39:161:54 | After ... == ... [false] | Finally.cs:161:13:164:13 | After catch (...) {...} [no-match] | no-match | +| Finally.cs:161:39:161:54 | After ... == ... [true] | Finally.cs:162:13:164:13 | {...} | | +| Finally.cs:161:39:161:54 | Before ... == ... | Finally.cs:161:39:161:47 | Before access to property Message | | | Finally.cs:161:52:161:54 | "1" | Finally.cs:161:39:161:54 | ... == ... | | +| Finally.cs:162:13:164:13 | After {...} | Finally.cs:156:13:168:13 | After try {...} ... | | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:43 | ...; | | -| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception | -| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (normal) | | -| Finally.cs:163:17:163:43 | ...; | Finally.cs:163:35:163:38 | access to parameter args | | +| Finally.cs:163:17:163:42 | After call to method WriteLine | Finally.cs:163:17:163:43 | After ...; | | +| Finally.cs:163:17:163:42 | Before call to method WriteLine | Finally.cs:163:35:163:41 | Before access to array element | | +| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:163:17:163:42 | After call to method WriteLine | | +| Finally.cs:163:17:163:43 | ...; | Finally.cs:163:17:163:42 | Before call to method WriteLine | | +| Finally.cs:163:17:163:43 | After ...; | Finally.cs:162:13:164:13 | After {...} | | | Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:40:163:40 | 0 | | -| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:17:163:42 | call to method WriteLine | | +| Finally.cs:163:35:163:41 | After access to array element | Finally.cs:163:17:163:42 | call to method WriteLine | | +| Finally.cs:163:35:163:41 | Before access to array element | Finally.cs:163:35:163:38 | access to parameter args | | +| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:35:163:41 | After access to array element | | | Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:41 | access to array element | | -| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:166:13:168:13 | {...} | | +| Finally.cs:165:13:168:13 | After catch {...} [match] | Finally.cs:166:13:168:13 | {...} | | +| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | After catch {...} [match] | match | +| Finally.cs:166:13:168:13 | After {...} | Finally.cs:156:13:168:13 | After try {...} ... | | | Finally.cs:166:13:168:13 | {...} | Finally.cs:167:17:167:38 | ...; | | -| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception | -| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (normal) | | -| Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | | +| Finally.cs:167:17:167:37 | After call to method WriteLine | Finally.cs:167:17:167:38 | After ...; | | +| Finally.cs:167:17:167:37 | Before call to method WriteLine | Finally.cs:167:35:167:36 | "" | | +| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:167:17:167:37 | After call to method WriteLine | | +| Finally.cs:167:17:167:38 | ...; | Finally.cs:167:17:167:37 | Before call to method WriteLine | | +| Finally.cs:167:17:167:38 | After ...; | Finally.cs:166:13:168:13 | After {...} | | | 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 | 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 | After call to constructor Exception | Finally.cs:172:11:172:20 | {...} | | +| Finally.cs:172:11:172:20 | After call to method | Finally.cs:172:11:172:20 | Before call to constructor Exception | | +| Finally.cs:172:11:172:20 | Before call to constructor Exception | Finally.cs:172:11:172:20 | call to constructor Exception | | +| Finally.cs:172:11:172:20 | Before call to method | Finally.cs:172:11:172:20 | this access | | +| Finally.cs:172:11:172:20 | Entry | Finally.cs:172:11:172:20 | Before call to method | | +| Finally.cs:172:11:172:20 | Normal Exit | Finally.cs:172:11:172:20 | Exit | | +| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | After call to constructor Exception | | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | After call to method | | | 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 | 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:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | Normal Exit | | +| Finally.cs:173:11:173:20 | After call to constructor Exception | Finally.cs:173:11:173:20 | {...} | | +| Finally.cs:173:11:173:20 | After call to method | Finally.cs:173:11:173:20 | Before call to constructor Exception | | +| Finally.cs:173:11:173:20 | Before call to constructor Exception | Finally.cs:173:11:173:20 | call to constructor Exception | | +| Finally.cs:173:11:173:20 | Before call to method | Finally.cs:173:11:173:20 | this access | | +| Finally.cs:173:11:173:20 | Entry | Finally.cs:173:11:173:20 | Before call to method | | +| Finally.cs:173:11:173:20 | Normal Exit | Finally.cs:173:11:173:20 | Exit | | +| Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | After call to constructor Exception | | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | After call to method | | | 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 | 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:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | Normal Exit | | +| Finally.cs:174:11:174:20 | After call to constructor Exception | Finally.cs:174:11:174:20 | {...} | | +| Finally.cs:174:11:174:20 | After call to method | Finally.cs:174:11:174:20 | Before call to constructor Exception | | +| Finally.cs:174:11:174:20 | Before call to constructor Exception | Finally.cs:174:11:174:20 | call to constructor Exception | | +| Finally.cs:174:11:174:20 | Before call to method | Finally.cs:174:11:174:20 | this access | | +| Finally.cs:174:11:174:20 | Entry | Finally.cs:174:11:174:20 | Before call to method | | +| Finally.cs:174:11:174:20 | Normal Exit | Finally.cs:174:11:174:20 | Exit | | +| Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | After call to constructor Exception | | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | After call to method | | | 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 | | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 | | +| Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | Normal Exit | | +| Finally.cs:176:10:176:11 | Entry | Finally.cs:177:5:193:5 | {...} | | +| Finally.cs:176:10:176:11 | Exceptional Exit | Finally.cs:176:10:176:11 | Exit | | +| Finally.cs:176:10:176:11 | Normal Exit | Finally.cs:176:10:176:11 | Exit | | +| Finally.cs:177:5:193:5 | After {...} | Finally.cs:176:10:176:11 | Normal Exit | | | Finally.cs:177:5:193:5 | {...} | Finally.cs:178:9:192:9 | try {...} ... | | +| Finally.cs:178:9:192:9 | After try {...} ... | Finally.cs:177:5:193:5 | After {...} | | | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:179:9:181:9 | {...} | | +| Finally.cs:179:9:181:9 | After {...} | Finally.cs:183:9:192:9 | {...} | | | Finally.cs:179:9:181:9 | {...} | Finally.cs:180:13:180:43 | if (...) ... | | +| Finally.cs:180:13:180:43 | After if (...) ... | Finally.cs:179:9:181:9 | After {...} | | | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:17:180:18 | access to parameter b1 | | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | true | -| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | {...} | false | +| Finally.cs:180:17:180:18 | After access to parameter b1 [false] | Finally.cs:180:13:180:43 | After if (...) ... | | +| Finally.cs:180:17:180:18 | After access to parameter b1 [true] | Finally.cs:180:21:180:43 | Before throw ...; | | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | After access to parameter b1 [false] | false | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:17:180:18 | After access to parameter b1 [true] | true | +| Finally.cs:180:21:180:43 | Before throw ...; | Finally.cs:180:27:180:42 | Before object creation of type ExceptionA | | | Finally.cs:180:21:180:43 | throw ...; | Finally.cs:183:9:192:9 | {...} | exception | -| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | | +| Finally.cs:180:27:180:42 | After object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | | +| Finally.cs:180:27:180:42 | Before object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | After object creation of type ExceptionA | | | Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:183:9:192:9 | {...} | exception | +| Finally.cs:183:9:192:9 | After {...} | Finally.cs:176:10:176:11 | Exceptional Exit | exception | +| Finally.cs:183:9:192:9 | After {...} | Finally.cs:178:9:192:9 | After try {...} ... | | | Finally.cs:183:9:192:9 | {...} | Finally.cs:184:13:191:13 | try {...} ... | | +| Finally.cs:184:13:191:13 | After try {...} ... | Finally.cs:183:9:192:9 | After {...} | | | Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:185:13:187:13 | {...} | | +| Finally.cs:185:13:187:13 | After {...} | Finally.cs:184:13:191:13 | After try {...} ... | | | Finally.cs:185:13:187:13 | {...} | Finally.cs:186:17:186:47 | if (...) ... | | +| Finally.cs:186:17:186:47 | After if (...) ... | Finally.cs:185:13:187:13 | After {...} | | | Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:186:21:186:22 | access to parameter b2 | | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | -| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | true | +| Finally.cs:186:21:186:22 | After access to parameter b2 [false] | Finally.cs:186:17:186:47 | After if (...) ... | | +| Finally.cs:186:21:186:22 | After access to parameter b2 [true] | Finally.cs:186:25:186:47 | Before throw ...; | | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | After access to parameter b2 [false] | false | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:21:186:22 | After access to parameter b2 [true] | true | +| Finally.cs:186:25:186:47 | Before throw ...; | Finally.cs:186:31:186:46 | Before object creation of type ExceptionB | | | Finally.cs:186:25:186:47 | throw ...; | Finally.cs:188:13:191:13 | catch (...) {...} | exception | -| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | | +| Finally.cs:186:31:186:46 | After object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | | +| Finally.cs:186:31:186:46 | Before object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | After object creation of type ExceptionB | | | Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:13:191:13 | catch (...) {...} | exception | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | -| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | match | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | -| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | true | +| Finally.cs:188:13:191:13 | After catch (...) {...} [match] | Finally.cs:188:38:188:39 | access to parameter b2 | | +| Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | Finally.cs:176:10:176:11 | Exceptional Exit | exception | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [match] | match | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | no-match | +| Finally.cs:188:38:188:39 | After access to parameter b2 [false] | Finally.cs:188:13:191:13 | After catch (...) {...} [no-match] | no-match | +| Finally.cs:188:38:188:39 | After access to parameter b2 [true] | Finally.cs:189:13:191:13 | {...} | | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | After access to parameter b2 [false] | false | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | After access to parameter b2 [true] | true | +| Finally.cs:189:13:191:13 | After {...} | Finally.cs:184:13:191:13 | After try {...} ... | | | Finally.cs:189:13:191:13 | {...} | Finally.cs:190:17:190:47 | if (...) ... | | +| Finally.cs:190:17:190:47 | After if (...) ... | Finally.cs:189:13:191:13 | After {...} | | | Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:190:21:190:22 | access to parameter b1 | | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | -| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | -| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | -| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:25:190:47 | throw ...; | | -| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:196:5:214:5 | {...} | | -| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 | | -| Finally.cs:195:10:195:12 | exit M10 (normal) | Finally.cs:195:10:195:12 | exit M10 | | +| Finally.cs:190:21:190:22 | After access to parameter b1 [false] | Finally.cs:190:17:190:47 | After if (...) ... | | +| Finally.cs:190:21:190:22 | After access to parameter b1 [true] | Finally.cs:190:25:190:47 | Before throw ...; | | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | After access to parameter b1 [false] | false | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:21:190:22 | After access to parameter b1 [true] | true | +| Finally.cs:190:25:190:47 | Before throw ...; | Finally.cs:190:31:190:46 | Before object creation of type ExceptionC | | +| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:176:10:176:11 | Exceptional Exit | exception | +| Finally.cs:190:31:190:46 | After object creation of type ExceptionC | Finally.cs:190:25:190:47 | throw ...; | | +| Finally.cs:190:31:190:46 | Before object creation of type ExceptionC | Finally.cs:190:31:190:46 | object creation of type ExceptionC | | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | After object creation of type ExceptionC | | +| Finally.cs:195:10:195:12 | Entry | Finally.cs:196:5:214:5 | {...} | | +| Finally.cs:195:10:195:12 | Exceptional Exit | Finally.cs:195:10:195:12 | Exit | | +| Finally.cs:195:10:195:12 | Normal Exit | Finally.cs:195:10:195:12 | Exit | | +| Finally.cs:196:5:214:5 | After {...} | Finally.cs:195:10:195:12 | Normal Exit | | | Finally.cs:196:5:214:5 | {...} | Finally.cs:197:9:212:9 | try {...} ... | | +| Finally.cs:197:9:212:9 | After try {...} ... | Finally.cs:213:9:213:25 | ...; | | | Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:198:9:200:9 | {...} | | +| Finally.cs:198:9:200:9 | After {...} | Finally.cs:202:9:212:9 | {...} | | | Finally.cs:198:9:200:9 | {...} | Finally.cs:199:13:199:43 | if (...) ... | | +| Finally.cs:199:13:199:43 | After if (...) ... | Finally.cs:198:9:200:9 | After {...} | | | Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:17:199:18 | access to parameter b1 | | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true | -| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | false | +| Finally.cs:199:17:199:18 | After access to parameter b1 [false] | Finally.cs:199:13:199:43 | After if (...) ... | | +| Finally.cs:199:17:199:18 | After access to parameter b1 [true] | Finally.cs:199:21:199:43 | Before throw ...; | | +| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | After access to parameter b1 [false] | false | +| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:17:199:18 | After access to parameter b1 [true] | true | +| Finally.cs:199:21:199:43 | Before throw ...; | Finally.cs:199:27:199:42 | Before object creation of type ExceptionA | | | Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | {...} | exception | -| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | | +| Finally.cs:199:27:199:42 | After object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | | +| Finally.cs:199:27:199:42 | Before object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | After object creation of type ExceptionA | | | Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | {...} | exception | +| Finally.cs:202:9:212:9 | After {...} | Finally.cs:195:10:195:12 | Exceptional Exit | exception | +| Finally.cs:202:9:212:9 | After {...} | Finally.cs:197:9:212:9 | After try {...} ... | | | Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | try {...} ... | | +| Finally.cs:203:13:210:13 | After try {...} ... | Finally.cs:211:13:211:29 | ...; | | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:204:13:206:13 | {...} | | +| Finally.cs:204:13:206:13 | After {...} | Finally.cs:208:13:210:13 | {...} | | | Finally.cs:204:13:206:13 | {...} | Finally.cs:205:17:205:47 | if (...) ... | | +| Finally.cs:205:17:205:47 | After if (...) ... | Finally.cs:204:13:206:13 | After {...} | | | Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:21:205:22 | access to parameter b2 | | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true | -| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | false | +| Finally.cs:205:21:205:22 | After access to parameter b2 [false] | Finally.cs:205:17:205:47 | After if (...) ... | | +| Finally.cs:205:21:205:22 | After access to parameter b2 [true] | Finally.cs:205:25:205:47 | Before throw ...; | | +| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | After access to parameter b2 [false] | false | +| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:21:205:22 | After access to parameter b2 [true] | true | +| Finally.cs:205:25:205:47 | Before throw ...; | Finally.cs:205:31:205:46 | Before object creation of type ExceptionB | | | Finally.cs:205:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | {...} | exception | -| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | | +| Finally.cs:205:31:205:46 | After object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | | +| Finally.cs:205:31:205:46 | Before object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | | +| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | After object creation of type ExceptionB | | | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | {...} | exception | +| Finally.cs:208:13:210:13 | After {...} | Finally.cs:195:10:195:12 | Exceptional Exit | exception | +| Finally.cs:208:13:210:13 | After {...} | Finally.cs:203:13:210:13 | After try {...} ... | | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:17:209:47 | if (...) ... | | +| Finally.cs:209:17:209:47 | After if (...) ... | Finally.cs:208:13:210:13 | After {...} | | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:21:209:22 | access to parameter b3 | | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true | -| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | false | -| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | -| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | | -| Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | | -| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:28 | ... = ... | | -| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | -| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | | -| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:22 | access to field Field | | -| Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | | -| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:24 | ... = ... | | -| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) | | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access | | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:18 | access to field Field | | -| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:217:5:231:5 | {...} | | -| Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:216:10:216:12 | exit M11 | | +| Finally.cs:209:21:209:22 | After access to parameter b3 [false] | Finally.cs:209:17:209:47 | After if (...) ... | | +| Finally.cs:209:21:209:22 | After access to parameter b3 [true] | Finally.cs:209:25:209:47 | Before throw ...; | | +| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | After access to parameter b3 [false] | false | +| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:21:209:22 | After access to parameter b3 [true] | true | +| Finally.cs:209:25:209:47 | Before throw ...; | Finally.cs:209:31:209:46 | Before object creation of type ExceptionC | | +| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | Exceptional Exit | exception | +| Finally.cs:209:31:209:46 | After object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | | +| Finally.cs:209:31:209:46 | Before object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | +| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | After object creation of type ExceptionC | | +| Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:22 | access to field Field | | +| Finally.cs:211:13:211:22 | After access to field Field | Finally.cs:211:26:211:28 | "0" | | +| Finally.cs:211:13:211:22 | Before access to field Field | Finally.cs:211:13:211:16 | this access | | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:22 | After access to field Field | | +| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:13:211:28 | After ... = ... | | +| Finally.cs:211:13:211:28 | After ... = ... | Finally.cs:211:13:211:29 | After ...; | | +| Finally.cs:211:13:211:28 | Before ... = ... | Finally.cs:211:13:211:22 | Before access to field Field | | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | Before ... = ... | | +| Finally.cs:211:13:211:29 | After ...; | Finally.cs:202:9:212:9 | After {...} | | +| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | | +| Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:18 | access to field Field | | +| Finally.cs:213:9:213:18 | After access to field Field | Finally.cs:213:22:213:24 | "1" | | +| Finally.cs:213:9:213:18 | Before access to field Field | Finally.cs:213:9:213:12 | this access | | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:18 | After access to field Field | | +| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:9:213:24 | After ... = ... | | +| Finally.cs:213:9:213:24 | After ... = ... | Finally.cs:213:9:213:25 | After ...; | | +| Finally.cs:213:9:213:24 | Before ... = ... | Finally.cs:213:9:213:18 | Before access to field Field | | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:24 | Before ... = ... | | +| Finally.cs:213:9:213:25 | After ...; | Finally.cs:196:5:214:5 | After {...} | | +| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:24 | ... = ... | | +| Finally.cs:216:10:216:12 | Entry | Finally.cs:217:5:231:5 | {...} | | +| Finally.cs:216:10:216:12 | Normal Exit | Finally.cs:216:10:216:12 | Exit | | +| Finally.cs:217:5:231:5 | After {...} | Finally.cs:216:10:216:12 | Normal Exit | | | Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | | +| Finally.cs:218:9:229:9 | After try {...} ... | Finally.cs:230:9:230:34 | ...; | | | Finally.cs:218:9:229:9 | try {...} ... | Finally.cs:219:9:221:9 | {...} | | +| Finally.cs:219:9:221:9 | After {...} | Finally.cs:227:9:229:9 | {...} | | | Finally.cs:219:9:221:9 | {...} | Finally.cs:220:13:220:37 | ...; | | +| Finally.cs:220:13:220:36 | After call to method WriteLine | Finally.cs:220:13:220:37 | After ...; | | +| Finally.cs:220:13:220:36 | Before call to method WriteLine | Finally.cs:220:31:220:35 | "Try" | | +| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:220:13:220:36 | After call to method WriteLine | | | Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:222:9:225:9 | catch {...} | exception | -| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:227:9:229:9 | {...} | | -| Finally.cs:220:13:220:37 | ...; | Finally.cs:220:31:220:35 | "Try" | | +| Finally.cs:220:13:220:37 | ...; | Finally.cs:220:13:220:36 | Before call to method WriteLine | | +| Finally.cs:220:13:220:37 | After ...; | Finally.cs:219:9:221:9 | After {...} | | | Finally.cs:220:31:220:35 | "Try" | Finally.cs:220:13:220:36 | call to method WriteLine | | -| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:223:9:225:9 | {...} | | +| Finally.cs:222:9:225:9 | After catch {...} [match] | Finally.cs:223:9:225:9 | {...} | | +| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:222:9:225:9 | After catch {...} [match] | match | +| Finally.cs:223:9:225:9 | After {...} | Finally.cs:227:9:229:9 | {...} | | | Finally.cs:223:9:225:9 | {...} | Finally.cs:224:13:224:39 | ...; | | -| Finally.cs:224:13:224:38 | call to method WriteLine | Finally.cs:227:9:229:9 | {...} | | -| Finally.cs:224:13:224:39 | ...; | Finally.cs:224:31:224:37 | "Catch" | | +| Finally.cs:224:13:224:38 | After call to method WriteLine | Finally.cs:224:13:224:39 | After ...; | | +| Finally.cs:224:13:224:38 | Before call to method WriteLine | Finally.cs:224:31:224:37 | "Catch" | | +| Finally.cs:224:13:224:38 | call to method WriteLine | Finally.cs:224:13:224:38 | After call to method WriteLine | | +| Finally.cs:224:13:224:39 | ...; | Finally.cs:224:13:224:38 | Before call to method WriteLine | | +| Finally.cs:224:13:224:39 | After ...; | Finally.cs:223:9:225:9 | After {...} | | | Finally.cs:224:31:224:37 | "Catch" | Finally.cs:224:13:224:38 | call to method WriteLine | | +| Finally.cs:227:9:229:9 | After {...} | Finally.cs:218:9:229:9 | After try {...} ... | | | Finally.cs:227:9:229:9 | {...} | Finally.cs:228:13:228:41 | ...; | | -| Finally.cs:228:13:228:40 | call to method WriteLine | Finally.cs:230:9:230:34 | ...; | | -| Finally.cs:228:13:228:41 | ...; | Finally.cs:228:31:228:39 | "Finally" | | +| Finally.cs:228:13:228:40 | After call to method WriteLine | Finally.cs:228:13:228:41 | After ...; | | +| Finally.cs:228:13:228:40 | Before call to method WriteLine | Finally.cs:228:31:228:39 | "Finally" | | +| Finally.cs:228:13:228:40 | call to method WriteLine | Finally.cs:228:13:228:40 | After call to method WriteLine | | +| Finally.cs:228:13:228:41 | ...; | Finally.cs:228:13:228:40 | Before call to method WriteLine | | +| Finally.cs:228:13:228:41 | After ...; | Finally.cs:227:9:229:9 | After {...} | | | Finally.cs:228:31:228:39 | "Finally" | Finally.cs:228:13:228:40 | call to method WriteLine | | -| Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:216:10:216:12 | exit M11 (normal) | | -| Finally.cs:230:9:230:34 | ...; | Finally.cs:230:27:230:32 | "Done" | | +| Finally.cs:230:9:230:33 | After call to method WriteLine | Finally.cs:230:9:230:34 | After ...; | | +| Finally.cs:230:9:230:33 | Before call to method WriteLine | Finally.cs:230:27:230:32 | "Done" | | +| Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:230:9:230:33 | After call to method WriteLine | | +| Finally.cs:230:9:230:34 | ...; | Finally.cs:230:9:230:33 | Before call to method WriteLine | | +| Finally.cs:230:9:230:34 | After ...; | Finally.cs:217:5:231:5 | After {...} | | | Finally.cs:230:27:230:32 | "Done" | Finally.cs:230:9:230:33 | call to method WriteLine | | -| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:234:5:261:5 | {...} | | -| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 | | -| Finally.cs:233:10:233:12 | exit M12 (normal) | Finally.cs:233:10:233:12 | exit M12 | | +| Finally.cs:233:10:233:12 | Entry | Finally.cs:234:5:261:5 | {...} | | +| Finally.cs:233:10:233:12 | Exceptional Exit | Finally.cs:233:10:233:12 | Exit | | +| Finally.cs:233:10:233:12 | Normal Exit | Finally.cs:233:10:233:12 | Exit | | +| Finally.cs:234:5:261:5 | After {...} | Finally.cs:233:10:233:12 | Normal Exit | | | Finally.cs:234:5:261:5 | {...} | Finally.cs:235:9:259:9 | try {...} ... | | +| Finally.cs:235:9:259:9 | After try {...} ... | Finally.cs:260:9:260:34 | ...; | | | Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:236:9:255:9 | {...} | | +| Finally.cs:236:9:255:9 | After {...} | Finally.cs:257:9:259:9 | {...} | | | Finally.cs:236:9:255:9 | {...} | Finally.cs:237:13:253:13 | try {...} ... | | +| Finally.cs:237:13:253:13 | After try {...} ... | Finally.cs:254:13:254:45 | ...; | | | Finally.cs:237:13:253:13 | try {...} ... | Finally.cs:238:13:241:13 | {...} | | +| Finally.cs:238:13:241:13 | After {...} | Finally.cs:243:13:253:13 | {...} | | | Finally.cs:238:13:241:13 | {...} | Finally.cs:239:17:240:43 | if (...) ... | | +| Finally.cs:239:17:240:43 | After if (...) ... | Finally.cs:238:13:241:13 | After {...} | | | Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:239:21:239:22 | access to parameter b1 | | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true | -| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | false | +| Finally.cs:239:21:239:22 | After access to parameter b1 [false] | Finally.cs:239:17:240:43 | After if (...) ... | | +| Finally.cs:239:21:239:22 | After access to parameter b1 [true] | Finally.cs:240:21:240:43 | Before throw ...; | | +| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | After access to parameter b1 [false] | false | +| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:21:239:22 | After access to parameter b1 [true] | true | +| Finally.cs:240:21:240:43 | Before throw ...; | Finally.cs:240:27:240:42 | Before object creation of type ExceptionA | | | Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | {...} | exception | -| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | | +| Finally.cs:240:27:240:42 | After object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | | +| Finally.cs:240:27:240:42 | Before object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | After object creation of type ExceptionA | | | Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | {...} | exception | +| Finally.cs:243:13:253:13 | After {...} | Finally.cs:237:13:253:13 | After try {...} ... | | +| Finally.cs:243:13:253:13 | After {...} | Finally.cs:257:9:259:9 | {...} | exception | | Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | try {...} ... | | +| Finally.cs:244:17:252:17 | After try {...} ... | Finally.cs:243:13:253:13 | After {...} | | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:245:17:248:17 | {...} | | +| Finally.cs:245:17:248:17 | After {...} | Finally.cs:250:17:252:17 | {...} | | | Finally.cs:245:17:248:17 | {...} | Finally.cs:246:21:247:47 | if (...) ... | | +| Finally.cs:246:21:247:47 | After if (...) ... | Finally.cs:245:17:248:17 | After {...} | | | Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:246:25:246:26 | access to parameter b2 | | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true | -| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | false | +| Finally.cs:246:25:246:26 | After access to parameter b2 [false] | Finally.cs:246:21:247:47 | After if (...) ... | | +| Finally.cs:246:25:246:26 | After access to parameter b2 [true] | Finally.cs:247:25:247:47 | Before throw ...; | | +| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | After access to parameter b2 [false] | false | +| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:25:246:26 | After access to parameter b2 [true] | true | +| Finally.cs:247:25:247:47 | Before throw ...; | Finally.cs:247:31:247:46 | Before object creation of type ExceptionA | | | Finally.cs:247:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | {...} | exception | -| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | | +| Finally.cs:247:31:247:46 | After object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | | +| Finally.cs:247:31:247:46 | Before object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | | +| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | After object creation of type ExceptionA | | | Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | {...} | exception | +| Finally.cs:250:17:252:17 | After {...} | Finally.cs:244:17:252:17 | After try {...} ... | | +| Finally.cs:250:17:252:17 | After {...} | Finally.cs:257:9:259:9 | {...} | exception | | Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:55 | ...; | | -| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:254:13:254:45 | ...; | | -| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | exception | -| Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "Inner finally" | | +| Finally.cs:251:21:251:54 | After call to method WriteLine | Finally.cs:251:21:251:55 | After ...; | | +| Finally.cs:251:21:251:54 | Before call to method WriteLine | Finally.cs:251:39:251:53 | "Inner finally" | | +| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:251:21:251:54 | After call to method WriteLine | | +| Finally.cs:251:21:251:55 | ...; | Finally.cs:251:21:251:54 | Before call to method WriteLine | | +| Finally.cs:251:21:251:55 | After ...; | Finally.cs:250:17:252:17 | After {...} | | | Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:54 | call to method WriteLine | | -| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | , exception | -| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:31:254:43 | "Mid finally" | | +| Finally.cs:254:13:254:44 | After call to method WriteLine | Finally.cs:254:13:254:45 | After ...; | | +| Finally.cs:254:13:254:44 | Before call to method WriteLine | Finally.cs:254:31:254:43 | "Mid finally" | | +| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:254:13:254:44 | After call to method WriteLine | | +| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | exception | +| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:44 | Before call to method WriteLine | | +| Finally.cs:254:13:254:45 | After ...; | Finally.cs:236:9:255:9 | After {...} | | | Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:44 | call to method WriteLine | | +| Finally.cs:257:9:259:9 | After {...} | Finally.cs:233:10:233:12 | Exceptional Exit | exception | +| Finally.cs:257:9:259:9 | After {...} | Finally.cs:235:9:259:9 | After try {...} ... | | | Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:47 | ...; | | -| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | exception | -| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:260:9:260:34 | ...; | | -| Finally.cs:258:13:258:47 | ...; | Finally.cs:258:31:258:45 | "Outer finally" | | +| Finally.cs:258:13:258:46 | After call to method WriteLine | Finally.cs:258:13:258:47 | After ...; | | +| Finally.cs:258:13:258:46 | Before call to method WriteLine | Finally.cs:258:31:258:45 | "Outer finally" | | +| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:258:13:258:46 | After call to method WriteLine | | +| Finally.cs:258:13:258:47 | ...; | Finally.cs:258:13:258:46 | Before call to method WriteLine | | +| Finally.cs:258:13:258:47 | After ...; | Finally.cs:257:9:259:9 | After {...} | | | Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:46 | call to method WriteLine | | -| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (normal) | | -| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:27:260:32 | "Done" | | +| Finally.cs:260:9:260:33 | After call to method WriteLine | Finally.cs:260:9:260:34 | After ...; | | +| Finally.cs:260:9:260:33 | Before call to method WriteLine | Finally.cs:260:27:260:32 | "Done" | | +| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:260:9:260:33 | After call to method WriteLine | | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:9:260:33 | Before call to method WriteLine | | +| Finally.cs:260:9:260:34 | After ...; | Finally.cs:234:5:261:5 | After {...} | | | Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:33 | call to method WriteLine | | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:264:5:274:5 | {...} | | -| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 | | -| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 | | +| Finally.cs:263:10:263:12 | Entry | Finally.cs:264:5:274:5 | {...} | | +| Finally.cs:263:10:263:12 | Exceptional Exit | Finally.cs:263:10:263:12 | Exit | | +| Finally.cs:263:10:263:12 | Normal Exit | Finally.cs:263:10:263:12 | Exit | | +| Finally.cs:264:5:274:5 | After {...} | Finally.cs:263:10:263:12 | Normal Exit | | | Finally.cs:264:5:274:5 | {...} | Finally.cs:265:9:273:9 | try {...} ... | | +| Finally.cs:265:9:273:9 | After try {...} ... | Finally.cs:264:5:274:5 | After {...} | | | Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:266:9:268:9 | {...} | | +| Finally.cs:266:9:268:9 | After {...} | Finally.cs:270:9:273:9 | {...} | | | Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:35 | ...; | | -| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} | , exception | -| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:31:267:33 | "1" | | +| Finally.cs:267:13:267:34 | After call to method WriteLine | Finally.cs:267:13:267:35 | After ...; | | +| Finally.cs:267:13:267:34 | Before call to method WriteLine | Finally.cs:267:31:267:33 | "1" | | +| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:267:13:267:34 | After call to method WriteLine | | +| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} | exception | +| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:13:267:34 | Before call to method WriteLine | | +| Finally.cs:267:13:267:35 | After ...; | Finally.cs:266:9:268:9 | After {...} | | | Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:34 | call to method WriteLine | | +| Finally.cs:270:9:273:9 | After {...} | Finally.cs:263:10:263:12 | Exceptional Exit | exception | +| Finally.cs:270:9:273:9 | After {...} | Finally.cs:265:9:273:9 | After try {...} ... | | | Finally.cs:270:9:273:9 | {...} | Finally.cs:271:13:271:35 | ...; | | -| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:272:13:272:19 | ...; | | -| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" | | +| Finally.cs:271:13:271:34 | After call to method WriteLine | Finally.cs:271:13:271:35 | After ...; | | +| Finally.cs:271:13:271:34 | Before call to method WriteLine | Finally.cs:271:31:271:33 | "3" | | +| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:271:13:271:34 | After call to method WriteLine | | +| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:13:271:34 | Before call to method WriteLine | | +| Finally.cs:271:13:271:35 | After ...; | Finally.cs:272:13:272:19 | ...; | | | Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:34 | call to method WriteLine | | | Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:18:272:18 | 3 | | -| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | exception | -| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:263:10:263:12 | exit M13 (normal) | | -| Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | | +| Finally.cs:272:13:272:18 | ... += ... | Finally.cs:272:13:272:18 | After ... += ... | | +| Finally.cs:272:13:272:18 | After ... += ... | Finally.cs:272:13:272:19 | After ...; | | +| Finally.cs:272:13:272:18 | Before ... += ... | Finally.cs:272:13:272:13 | access to parameter i | | +| Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:18 | Before ... += ... | | +| Finally.cs:272:13:272:19 | After ...; | Finally.cs:270:9:273:9 | After {...} | | | 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 | 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 | After call to constructor Object | Foreach.cs:4:7:4:13 | {...} | | +| Foreach.cs:4:7:4:13 | After call to method | Foreach.cs:4:7:4:13 | Before call to constructor Object | | +| Foreach.cs:4:7:4:13 | Before call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object | | +| Foreach.cs:4:7:4:13 | Before call to method | Foreach.cs:4:7:4:13 | this access | | +| Foreach.cs:4:7:4:13 | Entry | Foreach.cs:4:7:4:13 | Before call to method | | +| Foreach.cs:4:7:4:13 | Normal Exit | Foreach.cs:4:7:4:13 | Exit | | +| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | After call to constructor Object | | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | After call to method | | | 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 | | -| Foreach.cs:7:5:10:5 | {...} | Foreach.cs:8:29:8:32 | access to parameter args | | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | exit M1 (normal) | empty | -| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | non-empty | +| Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | Normal Exit | | +| Foreach.cs:6:10:6:11 | Entry | Foreach.cs:7:5:10:5 | {...} | | +| Foreach.cs:6:10:6:11 | Normal Exit | Foreach.cs:6:10:6:11 | Exit | | +| Foreach.cs:7:5:10:5 | After {...} | Foreach.cs:6:10:6:11 | Normal Exit | | +| Foreach.cs:7:5:10:5 | {...} | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | | +| Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | Foreach.cs:7:5:10:5 | After {...} | | +| Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | | +| Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | | +| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | access to parameter args | | | Foreach.cs:8:22:8:24 | String arg | Foreach.cs:9:13:9:13 | ; | | -| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | | -| Foreach.cs:9:13:9:13 | ; | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | | -| Foreach.cs:12:10:12:11 | enter M2 | Foreach.cs:13:5:16:5 | {...} | | -| Foreach.cs:12:10:12:11 | exit M2 (normal) | Foreach.cs:12:10:12:11 | exit M2 | | -| Foreach.cs:13:5:16:5 | {...} | Foreach.cs:14:27:14:30 | access to parameter args | | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | exit M2 (normal) | empty | -| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:22:14:22 | String _ | non-empty | +| Foreach.cs:8:29:8:32 | After access to parameter args [empty] | Foreach.cs:8:9:9:13 | After foreach (... ... in ...) ... | | +| Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | Foreach.cs:8:22:8:24 | String arg | | +| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:29:8:32 | After access to parameter args [empty] | empty | +| Foreach.cs:8:29:8:32 | access to parameter args | Foreach.cs:8:29:8:32 | After access to parameter args [non-empty] | non-empty | +| Foreach.cs:9:13:9:13 | ; | Foreach.cs:8:9:9:13 | [LoopHeader] foreach (... ... in ...) ... | | +| Foreach.cs:12:10:12:11 | Entry | Foreach.cs:13:5:16:5 | {...} | | +| Foreach.cs:12:10:12:11 | Normal Exit | Foreach.cs:12:10:12:11 | Exit | | +| Foreach.cs:13:5:16:5 | After {...} | Foreach.cs:12:10:12:11 | Normal Exit | | +| Foreach.cs:13:5:16:5 | {...} | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | | +| Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | Foreach.cs:13:5:16:5 | After {...} | | +| Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | | +| Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:14:22:14:22 | String _ | | +| Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:14:27:14:30 | access to parameter args | | | Foreach.cs:14:22:14:22 | String _ | Foreach.cs:15:13:15:13 | ; | | -| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | | -| Foreach.cs:15:13:15:13 | ; | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | | -| Foreach.cs:18:10:18:11 | enter M3 | Foreach.cs:19:5:22:5 | {...} | | -| Foreach.cs:18:10:18:11 | exit M3 (normal) | Foreach.cs:18:10:18:11 | exit M3 | | -| Foreach.cs:19:5:22:5 | {...} | Foreach.cs:20:27:20:27 | access to parameter e | | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:18:10:18:11 | exit M3 (normal) | empty | -| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x | non-empty | +| Foreach.cs:14:27:14:30 | After access to parameter args [empty] | Foreach.cs:14:9:15:13 | After foreach (... ... in ...) ... | | +| Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | Foreach.cs:14:22:14:22 | String _ | | +| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:27:14:30 | After access to parameter args [empty] | empty | +| Foreach.cs:14:27:14:30 | access to parameter args | Foreach.cs:14:27:14:30 | After access to parameter args [non-empty] | non-empty | +| Foreach.cs:15:13:15:13 | ; | Foreach.cs:14:9:15:13 | [LoopHeader] foreach (... ... in ...) ... | | +| Foreach.cs:18:10:18:11 | Entry | Foreach.cs:19:5:22:5 | {...} | | +| Foreach.cs:18:10:18:11 | Normal Exit | Foreach.cs:18:10:18:11 | Exit | | +| Foreach.cs:19:5:22:5 | After {...} | Foreach.cs:18:10:18:11 | Normal Exit | | +| Foreach.cs:19:5:22:5 | {...} | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | | +| Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | Foreach.cs:19:5:22:5 | After {...} | | +| Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:20:22:20:22 | String x | | +| Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | Foreach.cs:20:27:20:68 | ... ?? ... | | | Foreach.cs:20:22:20:22 | String x | Foreach.cs:21:11:21:11 | ; | | -| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:38 | call to method ToArray | non-null | -| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:43:20:68 | call to method Empty | null | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:68 | ... ?? ... | non-null | -| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:43:20:68 | call to method Empty | null | -| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | | -| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:27:20:68 | ... ?? ... | | -| Foreach.cs:21:11:21:11 | ; | Foreach.cs:20:9:21:11 | foreach (... ... in ...) ... | | -| Foreach.cs:24:10:24:11 | enter M4 | Foreach.cs:25:5:28:5 | {...} | | -| Foreach.cs:24:10:24:11 | exit M4 (normal) | Foreach.cs:24:10:24:11 | exit M4 | | -| Foreach.cs:25:5:28:5 | {...} | Foreach.cs:26:36:26:39 | access to parameter args | | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:24:10:24:11 | exit M4 (normal) | empty | -| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:23:26:23 | String x | non-empty | -| Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:27:11:27:11 | ; | | +| Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | Foreach.cs:20:27:20:38 | call to method ToArray | | +| Foreach.cs:20:27:20:27 | After access to parameter e [null] | Foreach.cs:20:27:20:38 | After call to method ToArray [null] | null | +| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:27 | After access to parameter e [non-null] | non-null | +| Foreach.cs:20:27:20:27 | access to parameter e | Foreach.cs:20:27:20:27 | After access to parameter e [null] | null | +| Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | empty | +| Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | non-empty | +| Foreach.cs:20:27:20:38 | After call to method ToArray [null] | Foreach.cs:20:43:20:68 | Before call to method Empty | | +| Foreach.cs:20:27:20:38 | Before call to method ToArray | Foreach.cs:20:27:20:27 | access to parameter e | | +| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | After call to method ToArray [non-null] | non-null | +| Foreach.cs:20:27:20:38 | call to method ToArray | Foreach.cs:20:27:20:38 | After call to method ToArray [null] | null | +| Foreach.cs:20:27:20:68 | ... ?? ... | Foreach.cs:20:27:20:38 | Before call to method ToArray | | +| Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | Foreach.cs:20:9:21:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | Foreach.cs:20:22:20:22 | String x | | +| Foreach.cs:20:43:20:68 | After call to method Empty [empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [empty] | empty | +| Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | Foreach.cs:20:27:20:68 | After ... ?? ... [non-empty] | non-empty | +| Foreach.cs:20:43:20:68 | Before call to method Empty | Foreach.cs:20:43:20:68 | call to method Empty | | +| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | After call to method Empty [empty] | empty | +| Foreach.cs:20:43:20:68 | call to method Empty | Foreach.cs:20:43:20:68 | After call to method Empty [non-empty] | non-empty | +| Foreach.cs:21:11:21:11 | ; | Foreach.cs:20:9:21:11 | [LoopHeader] foreach (... ... in ...) ... | | +| Foreach.cs:24:10:24:11 | Entry | Foreach.cs:25:5:28:5 | {...} | | +| Foreach.cs:24:10:24:11 | Normal Exit | Foreach.cs:24:10:24:11 | Exit | | +| Foreach.cs:25:5:28:5 | After {...} | Foreach.cs:24:10:24:11 | Normal Exit | | +| Foreach.cs:25:5:28:5 | {...} | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | | +| Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | Foreach.cs:25:5:28:5 | After {...} | | +| Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:26:18:26:31 | Before (..., ...) | | +| Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | Foreach.cs:26:36:26:39 | access to parameter args | | +| Foreach.cs:26:18:26:31 | (..., ...) | Foreach.cs:26:18:26:31 | After (..., ...) | | +| Foreach.cs:26:18:26:31 | After (..., ...) | Foreach.cs:27:11:27:11 | ; | | +| Foreach.cs:26:18:26:31 | Before (..., ...) | Foreach.cs:26:23:26:23 | String x | | | Foreach.cs:26:23:26:23 | String x | Foreach.cs:26:30:26:30 | Int32 y | | | Foreach.cs:26:30:26:30 | Int32 y | Foreach.cs:26:18:26:31 | (..., ...) | | -| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | | -| Foreach.cs:27:11:27:11 | ; | Foreach.cs:26:9:27:11 | foreach (... ... in ...) ... | | -| Foreach.cs:30:10:30:11 | enter M5 | Foreach.cs:31:5:34:5 | {...} | | -| Foreach.cs:30:10:30:11 | exit M5 (normal) | Foreach.cs:30:10:30:11 | exit M5 | | -| Foreach.cs:31:5:34:5 | {...} | Foreach.cs:32:32:32:35 | access to parameter args | | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:30:10:30:11 | exit M5 (normal) | empty | -| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:23:32:23 | String x | non-empty | -| Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:33:11:33:11 | ; | | +| Foreach.cs:26:36:26:39 | After access to parameter args [empty] | Foreach.cs:26:9:27:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | Foreach.cs:26:18:26:31 | Before (..., ...) | | +| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:36:26:39 | After access to parameter args [empty] | empty | +| Foreach.cs:26:36:26:39 | access to parameter args | Foreach.cs:26:36:26:39 | After access to parameter args [non-empty] | non-empty | +| Foreach.cs:27:11:27:11 | ; | Foreach.cs:26:9:27:11 | [LoopHeader] foreach (... ... in ...) ... | | +| Foreach.cs:30:10:30:11 | Entry | Foreach.cs:31:5:34:5 | {...} | | +| Foreach.cs:30:10:30:11 | Normal Exit | Foreach.cs:30:10:30:11 | Exit | | +| Foreach.cs:31:5:34:5 | After {...} | Foreach.cs:30:10:30:11 | Normal Exit | | +| Foreach.cs:31:5:34:5 | {...} | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | | +| Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | Foreach.cs:31:5:34:5 | After {...} | | +| Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:32:18:32:27 | Before (..., ...) | | +| Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | Foreach.cs:32:32:32:35 | access to parameter args | | +| Foreach.cs:32:18:32:27 | (..., ...) | Foreach.cs:32:18:32:27 | After (..., ...) | | +| Foreach.cs:32:18:32:27 | After (..., ...) | Foreach.cs:33:11:33:11 | ; | | +| Foreach.cs:32:18:32:27 | Before (..., ...) | Foreach.cs:32:23:32:23 | String x | | | Foreach.cs:32:23:32:23 | String x | Foreach.cs:32:26:32:26 | Int32 y | | | Foreach.cs:32:26:32:26 | Int32 y | Foreach.cs:32:18:32:27 | (..., ...) | | -| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | | -| Foreach.cs:33:11:33:11 | ; | Foreach.cs:32:9:33:11 | foreach (... ... in ...) ... | | -| Foreach.cs:36:10:36:11 | enter M6 | Foreach.cs:37:5:40:5 | {...} | | -| Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | exit M6 | | -| Foreach.cs:37:5:40:5 | {...} | Foreach.cs:38:39:38:42 | access to parameter args | | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | exit M6 (normal) | empty | -| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | non-empty | -| Foreach.cs:38:18:38:34 | (..., ...) | Foreach.cs:39:11:39:11 | ; | | +| Foreach.cs:32:32:32:35 | After access to parameter args [empty] | Foreach.cs:32:9:33:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | Foreach.cs:32:18:32:27 | Before (..., ...) | | +| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:32:32:35 | After access to parameter args [empty] | empty | +| Foreach.cs:32:32:32:35 | access to parameter args | Foreach.cs:32:32:32:35 | After access to parameter args [non-empty] | non-empty | +| Foreach.cs:33:11:33:11 | ; | Foreach.cs:32:9:33:11 | [LoopHeader] foreach (... ... in ...) ... | | +| Foreach.cs:36:10:36:11 | Entry | Foreach.cs:37:5:40:5 | {...} | | +| Foreach.cs:36:10:36:11 | Normal Exit | Foreach.cs:36:10:36:11 | Exit | | +| Foreach.cs:37:5:40:5 | After {...} | Foreach.cs:36:10:36:11 | Normal Exit | | +| Foreach.cs:37:5:40:5 | {...} | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | +| Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | Foreach.cs:37:5:40:5 | After {...} | | +| Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | Foreach.cs:38:18:38:34 | Before (..., ...) | | +| Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:39:38:42 | access to parameter args | | +| Foreach.cs:38:18:38:34 | (..., ...) | Foreach.cs:38:18:38:34 | After (..., ...) | | +| Foreach.cs:38:18:38:34 | After (..., ...) | Foreach.cs:39:11:39:11 | ; | | +| Foreach.cs:38:18:38:34 | Before (..., ...) | Foreach.cs:38:26:38:26 | String x | | | 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 ...) ... | | -| 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 | access to field F | Initializers.cs:5:9:5:17 | ... = ... | | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | +| Foreach.cs:38:39:38:42 | After access to parameter args [empty] | Foreach.cs:38:9:39:11 | After foreach (... ... in ...) ... | | +| Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | Foreach.cs:38:18:38:34 | Before (..., ...) | | +| Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:39:38:42 | After access to parameter args [empty] | empty | +| Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:39:38:42 | After access to parameter args [non-empty] | non-empty | +| Foreach.cs:39:11:39:11 | ; | Foreach.cs:38:9:39:11 | [LoopHeader] foreach (... ... in ...) ... | | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:5:9:5:17 | Before ... = ... | | +| Initializers.cs:3:7:3:18 | Entry | Initializers.cs:18:16:18:20 | Before ... = ... | | +| Initializers.cs:3:7:3:18 | Normal Exit | Initializers.cs:3:7:3:18 | Exit | | +| Initializers.cs:3:7:3:18 | Normal Exit | Initializers.cs:3:7:3:18 | Exit | | +| Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | Normal Exit | | +| Initializers.cs:5:9:5:9 | After access to field F | Initializers.cs:5:13:5:17 | Before ... + ... | | +| Initializers.cs:5:9:5:9 | Before access to field F | Initializers.cs:5:9:5:9 | this access | | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:9 | After access to field F | | +| Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:9:5:9 | access to field F | | +| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:9:5:17 | After ... = ... | | +| Initializers.cs:5:9:5:17 | After ... = ... | Initializers.cs:6:25:6:31 | Before ... = ... | | +| Initializers.cs:5:9:5:17 | Before ... = ... | Initializers.cs:5:9:5:9 | Before access to field F | | | 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:9 | access to field F | | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:13:5:17 | After ... + ... | | +| Initializers.cs:5:13:5:17 | After ... + ... | Initializers.cs:5:9:5:17 | ... = ... | | +| Initializers.cs:5:13:5:17 | Before ... + ... | 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: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:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | exit (normal) | | +| Initializers.cs:6:9:6:9 | After access to property G | Initializers.cs:6:27:6:31 | Before ... + ... | | +| Initializers.cs:6:9:6:9 | Before access to property G | Initializers.cs:6:9:6:9 | this access | | +| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:9:6:9 | After access to property G | | +| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:9:6:9 | access to property G | | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:25:6:31 | After ... = ... | | +| Initializers.cs:6:25:6:31 | After ... = ... | Initializers.cs:3:7:3:18 | Normal Exit | | +| Initializers.cs:6:25:6:31 | Before ... = ... | Initializers.cs:6:9:6:9 | Before access to property G | | | 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:27:6:31 | After ... + ... | | +| Initializers.cs:6:27:6:31 | After ... + ... | Initializers.cs:6:25:6:31 | ... = ... | | +| Initializers.cs:6:27:6:31 | Before ... + ... | 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: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 | After call to constructor Object | Initializers.cs:8:20:8:22 | {...} | | +| Initializers.cs:8:5:8:16 | After call to method | Initializers.cs:8:5:8:16 | Before call to constructor Object | | +| Initializers.cs:8:5:8:16 | Before call to constructor Object | Initializers.cs:8:5:8:16 | call to constructor Object | | +| Initializers.cs:8:5:8:16 | Before call to method | Initializers.cs:8:5:8:16 | this access | | +| Initializers.cs:8:5:8:16 | Entry | Initializers.cs:8:5:8:16 | Before call to method | | +| Initializers.cs:8:5:8:16 | Normal Exit | Initializers.cs:8:5:8:16 | Exit | | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | After call to constructor Object | | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | After call to method | | | 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: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:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | Normal Exit | | +| Initializers.cs:10:5:10:16 | After call to constructor Object | Initializers.cs:10:28:10:30 | {...} | | +| Initializers.cs:10:5:10:16 | After call to method | Initializers.cs:10:5:10:16 | Before call to constructor Object | | +| Initializers.cs:10:5:10:16 | Before call to constructor Object | Initializers.cs:10:5:10:16 | call to constructor Object | | +| Initializers.cs:10:5:10:16 | Before call to method | Initializers.cs:10:5:10:16 | this access | | +| Initializers.cs:10:5:10:16 | Entry | Initializers.cs:10:5:10:16 | Before call to method | | +| Initializers.cs:10:5:10:16 | Normal Exit | Initializers.cs:10:5:10:16 | Exit | | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | After call to constructor Object | | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | After call to method | | | 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 | | +| Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | Normal Exit | | +| Initializers.cs:12:10:12:10 | Entry | Initializers.cs:13:5:16:5 | {...} | | +| Initializers.cs:12:10:12:10 | Normal Exit | Initializers.cs:12:10:12:10 | Exit | | +| Initializers.cs:13:5:16:5 | After {...} | Initializers.cs:12:10:12:10 | Normal Exit | | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:14:9:14:54 | ... ...; | | -| Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:34:14:35 | "" | | -| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:15:9:15:64 | ... ...; | | -| Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:44:14:44 | 0 | | +| Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:13:14:53 | Before Initializers i = ... | | +| Initializers.cs:14:9:14:54 | After ... ...; | Initializers.cs:15:9:15:64 | ... ...; | | +| Initializers.cs:14:13:14:13 | access to local variable i | Initializers.cs:14:17:14:53 | Before object creation of type Initializers | | +| Initializers.cs:14:13:14:53 | After Initializers i = ... | Initializers.cs:14:9:14:54 | After ... ...; | | +| Initializers.cs:14:13:14:53 | Before Initializers i = ... | Initializers.cs:14:13:14:13 | access to local variable i | | +| Initializers.cs:14:13:14:53 | Initializers i = ... | Initializers.cs:14:13:14:53 | After Initializers i = ... | | +| Initializers.cs:14:17:14:53 | After object creation of type Initializers | Initializers.cs:14:13:14:53 | Initializers i = ... | | +| Initializers.cs:14:17:14:53 | Before object creation of type Initializers | Initializers.cs:14:34:14:35 | "" | | +| Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:38:14:53 | Before { ..., ... } | | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:17:14:53 | object creation of type Initializers | | -| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:13:14:53 | Initializers i = ... | | -| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:44 | ... = ... | | -| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:51:14:51 | 1 | | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:40 | access to field F | | -| Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:51 | ... = ... | | -| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | | -| Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:47 | access to property G | | -| Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:15:18:15:63 | 2 | | -| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:12:10:12:10 | exit M (normal) | | +| Initializers.cs:14:38:14:53 | After { ..., ... } | Initializers.cs:14:17:14:53 | After object creation of type Initializers | | +| Initializers.cs:14:38:14:53 | Before { ..., ... } | Initializers.cs:14:40:14:44 | Before ... = ... | | +| Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:38:14:53 | After { ..., ... } | | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:44:14:44 | 0 | | +| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:40:14:44 | After ... = ... | | +| Initializers.cs:14:40:14:44 | After ... = ... | Initializers.cs:14:47:14:51 | Before ... = ... | | +| Initializers.cs:14:40:14:44 | Before ... = ... | Initializers.cs:14:40:14:40 | access to field F | | +| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:44 | ... = ... | | +| Initializers.cs:14:47:14:47 | After access to property G | Initializers.cs:14:51:14:51 | 1 | | +| Initializers.cs:14:47:14:47 | Before access to property G | Initializers.cs:14:47:14:47 | access to property G | | +| Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:47 | After access to property G | | +| Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:47:14:51 | After ... = ... | | +| Initializers.cs:14:47:14:51 | After ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | | +| Initializers.cs:14:47:14:51 | Before ... = ... | Initializers.cs:14:47:14:47 | Before access to property G | | +| Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:51 | ... = ... | | +| Initializers.cs:15:9:15:64 | ... ...; | Initializers.cs:15:13:15:63 | Before Initializers[] iz = ... | | +| Initializers.cs:15:9:15:64 | After ... ...; | Initializers.cs:13:5:16:5 | After {...} | | +| Initializers.cs:15:13:15:14 | access to local variable iz | Initializers.cs:15:18:15:63 | Before array creation of type Initializers[] | | +| Initializers.cs:15:13:15:63 | After Initializers[] iz = ... | Initializers.cs:15:9:15:64 | After ... ...; | | +| Initializers.cs:15:13:15:63 | Before Initializers[] iz = ... | Initializers.cs:15:13:15:14 | access to local variable iz | | +| Initializers.cs:15:13:15:63 | Initializers[] iz = ... | Initializers.cs:15:13:15:63 | After Initializers[] iz = ... | | | Initializers.cs:15:18:15:63 | 2 | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | | -| Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:39:15:39 | access to local variable i | | -| Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | | -| Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:59:15:60 | "" | | -| Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | | +| Initializers.cs:15:18:15:63 | After array creation of type Initializers[] | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | | +| Initializers.cs:15:18:15:63 | Before array creation of type Initializers[] | Initializers.cs:15:37:15:63 | Before { ..., ... } | | +| Initializers.cs:15:18:15:63 | array creation of type Initializers[] | Initializers.cs:15:18:15:63 | After array creation of type Initializers[] | | +| Initializers.cs:15:37:15:63 | After { ..., ... } | Initializers.cs:15:18:15:63 | 2 | | +| Initializers.cs:15:37:15:63 | Before { ..., ... } | Initializers.cs:15:39:15:39 | access to local variable i | | +| Initializers.cs:15:37:15:63 | { ..., ... } | Initializers.cs:15:37:15:63 | After { ..., ... } | | +| Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:42:15:61 | Before object creation of type Initializers | | +| Initializers.cs:15:42:15:61 | After object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | | +| Initializers.cs:15:42:15:61 | Before object creation of type Initializers | Initializers.cs:15:59:15:60 | "" | | +| Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:42:15:61 | After object creation of type Initializers | | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:42:15:61 | object creation of type Initializers | | -| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:20 | ... = ... | | -| Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:20:18:20 | 1 | | -| Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | | -| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | | -| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | access to field H | | -| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | | -| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | | -| Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | | -| 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:18:16:18:16 | access to field H | Initializers.cs:18:20:18:20 | 1 | | +| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:20 | After ... = ... | | +| Initializers.cs:18:16:18:20 | After ... = ... | Initializers.cs:3:7:3:18 | {...} | | +| Initializers.cs:18:16:18:20 | Before ... = ... | Initializers.cs:18:16:18:16 | access to field H | | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | | +| Initializers.cs:20:11:20:23 | After call to constructor Object | Initializers.cs:20:11:20:23 | {...} | | +| Initializers.cs:20:11:20:23 | After call to method | Initializers.cs:20:11:20:23 | Before call to constructor Object | | +| Initializers.cs:20:11:20:23 | Before call to constructor Object | Initializers.cs:20:11:20:23 | call to constructor Object | | +| Initializers.cs:20:11:20:23 | Before call to method | Initializers.cs:20:11:20:23 | this access | | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:20:11:20:23 | Before call to method | | +| Initializers.cs:20:11:20:23 | Entry | Initializers.cs:22:23:22:27 | Before ... = ... | | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:20:11:20:23 | Exit | | +| Initializers.cs:20:11:20:23 | Normal Exit | Initializers.cs:20:11:20:23 | Exit | | +| Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | After call to constructor Object | | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | After call to method | | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | | -| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | | -| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:27 | ... = ... | | -| Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | access to field F | | -| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:27 | ... = ... | | -| Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | access to field G | | -| Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | | -| Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | | -| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:17 | ... = ... | | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | access to field H | | -| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | | -| Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | | +| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | Normal Exit | | +| Initializers.cs:22:23:22:23 | After access to field F | Initializers.cs:22:27:22:27 | 0 | | +| Initializers.cs:22:23:22:23 | Before access to field F | Initializers.cs:22:23:22:23 | this access | | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:23 | After access to field F | | +| Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:23:22:23 | access to field F | | +| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:23:22:27 | After ... = ... | | +| Initializers.cs:22:23:22:27 | After ... = ... | Initializers.cs:23:23:23:27 | Before ... = ... | | +| Initializers.cs:22:23:22:27 | Before ... = ... | Initializers.cs:22:23:22:23 | Before access to field F | | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | | +| Initializers.cs:23:23:23:23 | After access to field G | Initializers.cs:23:27:23:27 | 1 | | +| Initializers.cs:23:23:23:23 | Before access to field G | Initializers.cs:23:23:23:23 | this access | | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:23 | After access to field G | | +| Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:23:23:23 | access to field G | | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:23:23:27 | After ... = ... | | +| Initializers.cs:23:23:23:27 | After ... = ... | Initializers.cs:20:11:20:23 | Normal Exit | | +| Initializers.cs:23:23:23:27 | Before ... = ... | Initializers.cs:23:23:23:23 | Before access to field G | | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | | +| Initializers.cs:26:11:26:13 | Entry | Initializers.cs:28:13:28:17 | Before ... = ... | | +| Initializers.cs:26:11:26:13 | Normal Exit | Initializers.cs:26:11:26:13 | Exit | | +| Initializers.cs:28:13:28:13 | After access to field H | Initializers.cs:28:17:28:17 | 2 | | +| Initializers.cs:28:13:28:13 | Before access to field H | Initializers.cs:28:13:28:13 | this access | | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:13 | After access to field H | | +| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:13:28:13 | access to field H | | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:17 | After ... = ... | | +| Initializers.cs:28:13:28:17 | After ... = ... | Initializers.cs:26:11:26:13 | Normal Exit | | +| Initializers.cs:28:13:28:17 | Before ... = ... | Initializers.cs:28:13:28:13 | Before access to field H | | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | | +| Initializers.cs:31:9:31:11 | After call to method | Initializers.cs:31:17:31:20 | Before call to constructor NoConstructor | | +| Initializers.cs:31:9:31:11 | Before call to method | Initializers.cs:31:9:31:11 | this access | | +| Initializers.cs:31:9:31:11 | Entry | Initializers.cs:31:9:31:11 | Before call to method | | +| Initializers.cs:31:9:31:11 | Normal Exit | Initializers.cs:31:9:31:11 | Exit | | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | After call to method | | | 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:17:31:20 | After call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | | +| Initializers.cs:31:17:31:20 | Before call to constructor NoConstructor | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | +| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:17:31:20 | After call to constructor NoConstructor | | +| Initializers.cs:31:24:31:33 | After {...} | Initializers.cs:31:9:31:11 | Normal Exit | | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | | -| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:30 | ... = ... | | -| Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | | -| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | | -| Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:26 | this access | | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | access to field I | | -| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | | -| Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | exit Sub | | -| Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | | +| Initializers.cs:31:26:31:26 | After access to field I | Initializers.cs:31:30:31:30 | 3 | | +| Initializers.cs:31:26:31:26 | Before access to field I | Initializers.cs:31:26:31:26 | this access | | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:26 | After access to field I | | +| Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:26 | access to field I | | +| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:26:31:30 | After ... = ... | | +| Initializers.cs:31:26:31:30 | After ... = ... | Initializers.cs:31:26:31:31 | After ...; | | +| Initializers.cs:31:26:31:30 | Before ... = ... | Initializers.cs:31:26:31:26 | Before access to field I | | +| Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:30 | Before ... = ... | | +| Initializers.cs:31:26:31:31 | After ...; | Initializers.cs:31:24:31:33 | After {...} | | +| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:30 | ... = ... | | +| Initializers.cs:33:9:33:11 | Entry | Initializers.cs:33:22:33:25 | Before call to constructor Sub | | +| Initializers.cs:33:9:33:11 | Normal Exit | Initializers.cs:33:9:33:11 | Exit | | +| Initializers.cs:33:22:33:25 | After call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | | +| Initializers.cs:33:22:33:25 | Before call to constructor Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | | +| Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:22:33:25 | After call to constructor Sub | | +| Initializers.cs:33:29:33:38 | After {...} | Initializers.cs:33:9:33:11 | Normal Exit | | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:31:33:36 | ...; | | -| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:35 | ... = ... | | -| Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:35:33:35 | access to parameter i | | -| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | | -| Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | | -| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | access to field I | | -| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | | -| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | | -| Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | | +| Initializers.cs:33:31:33:31 | After access to field I | Initializers.cs:33:35:33:35 | access to parameter i | | +| Initializers.cs:33:31:33:31 | Before access to field I | Initializers.cs:33:31:33:31 | this access | | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:31 | After access to field I | | +| Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:31:33:31 | access to field I | | +| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:31:33:35 | After ... = ... | | +| Initializers.cs:33:31:33:35 | After ... = ... | Initializers.cs:33:31:33:36 | After ...; | | +| Initializers.cs:33:31:33:35 | Before ... = ... | Initializers.cs:33:31:33:31 | Before access to field I | | +| Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:35 | Before ... = ... | | +| Initializers.cs:33:31:33:36 | After ...; | Initializers.cs:33:29:33:38 | After {...} | | +| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | | +| Initializers.cs:35:9:35:11 | After call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | | +| Initializers.cs:35:9:35:11 | After call to method | Initializers.cs:35:9:35:11 | Before call to constructor NoConstructor | | +| Initializers.cs:35:9:35:11 | Before call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | +| Initializers.cs:35:9:35:11 | Before call to method | Initializers.cs:35:9:35:11 | this access | | +| Initializers.cs:35:9:35:11 | Entry | Initializers.cs:35:9:35:11 | Before call to method | | +| Initializers.cs:35:9:35:11 | Normal Exit | Initializers.cs:35:9:35:11 | Exit | | +| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | After call to constructor NoConstructor | | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | After call to method | | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | | +| Initializers.cs:35:27:35:40 | After {...} | Initializers.cs:35:9:35:11 | Normal Exit | | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | | -| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:37 | ... = ... | | -| Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | | -| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | | -| Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:29 | this access | | +| Initializers.cs:35:29:35:29 | After access to field I | Initializers.cs:35:33:35:37 | Before ... + ... | | +| Initializers.cs:35:29:35:29 | Before access to field I | Initializers.cs:35:29:35:29 | this access | | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:29 | After access to field I | | +| Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:29 | access to field I | | +| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:29:35:37 | After ... = ... | | +| Initializers.cs:35:29:35:37 | After ... = ... | Initializers.cs:35:29:35:38 | After ...; | | +| Initializers.cs:35:29:35:37 | Before ... = ... | Initializers.cs:35:29:35:29 | Before access to field I | | +| Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:37 | Before ... = ... | | +| Initializers.cs:35:29:35:38 | After ...; | Initializers.cs:35:27:35:40 | After {...} | | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:37:35:37 | access to parameter j | | -| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:29 | access to field I | | +| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:33:35:37 | After ... + ... | | +| Initializers.cs:35:33:35:37 | After ... + ... | Initializers.cs:35:29:35:37 | ... = ... | | +| Initializers.cs:35:33:35:37 | Before ... + ... | Initializers.cs:35:33:35:33 | access to parameter i | | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | | -| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | | -| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | | -| 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 | After call to constructor Object | Initializers.cs:39:7:39:23 | {...} | | +| Initializers.cs:39:7:39:23 | After call to method | Initializers.cs:39:7:39:23 | Before call to constructor Object | | +| Initializers.cs:39:7:39:23 | Before call to constructor Object | Initializers.cs:39:7:39:23 | call to constructor Object | | +| Initializers.cs:39:7:39:23 | Before call to method | Initializers.cs:39:7:39:23 | this access | | +| Initializers.cs:39:7:39:23 | Entry | Initializers.cs:39:7:39:23 | Before call to method | | +| Initializers.cs:39:7:39:23 | Normal Exit | Initializers.cs:39:7:39:23 | Exit | | +| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | After call to constructor Object | | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | After call to method | | | 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 | 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:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | Normal Exit | | +| Initializers.cs:41:11:41:18 | After call to constructor Object | Initializers.cs:41:11:41:18 | {...} | | +| Initializers.cs:41:11:41:18 | After call to method | Initializers.cs:41:11:41:18 | Before call to constructor Object | | +| Initializers.cs:41:11:41:18 | Before call to constructor Object | Initializers.cs:41:11:41:18 | call to constructor Object | | +| Initializers.cs:41:11:41:18 | Before call to method | Initializers.cs:41:11:41:18 | this access | | +| Initializers.cs:41:11:41:18 | Entry | Initializers.cs:41:11:41:18 | Before call to method | | +| Initializers.cs:41:11:41:18 | Normal Exit | Initializers.cs:41:11:41:18 | Exit | | +| Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | After call to constructor Object | | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | After call to method | | | 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 | | +| Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | Normal Exit | | +| Initializers.cs:51:10:51:13 | Entry | Initializers.cs:52:5:66:5 | {...} | | +| Initializers.cs:51:10:51:13 | Normal Exit | Initializers.cs:51:10:51:13 | Exit | | +| Initializers.cs:52:5:66:5 | After {...} | Initializers.cs:51:10:51:13 | Normal Exit | | | Initializers.cs:52:5:66:5 | {...} | Initializers.cs:54:9:54:96 | ... ...; | | -| Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:20:54:95 | object creation of type Dictionary | | -| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:57:9:65:10 | ... ...; | | -| Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:53:54:53 | 0 | | -| Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:13:54:95 | Dictionary dict = ... | | -| Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:52:54:63 | ... = ... | | -| Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:54:67:54:67 | 1 | | -| Initializers.cs:54:53:54:53 | 0 | Initializers.cs:54:58:54:63 | "Zero" | | -| Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:54:52:54:54 | access to indexer | | -| Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:54:66:54:76 | ... = ... | | -| Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:54:80:54:80 | access to parameter i | | -| Initializers.cs:54:67:54:67 | 1 | Initializers.cs:54:72:54:76 | "One" | | -| Initializers.cs:54:72:54:76 | "One" | Initializers.cs:54:66:54:68 | access to indexer | | -| Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:54:79:54:93 | ... = ... | | -| Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:54:50:54:95 | { ..., ... } | | +| Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:13:54:95 | Before Dictionary dict = ... | | +| Initializers.cs:54:9:54:96 | After ... ...; | Initializers.cs:57:9:65:10 | ... ...; | | +| Initializers.cs:54:13:54:16 | access to local variable dict | Initializers.cs:54:20:54:95 | Before object creation of type Dictionary | | +| Initializers.cs:54:13:54:95 | After Dictionary dict = ... | Initializers.cs:54:9:54:96 | After ... ...; | | +| Initializers.cs:54:13:54:95 | Before Dictionary dict = ... | Initializers.cs:54:13:54:16 | access to local variable dict | | +| Initializers.cs:54:13:54:95 | Dictionary dict = ... | Initializers.cs:54:13:54:95 | After Dictionary dict = ... | | +| Initializers.cs:54:20:54:95 | After object creation of type Dictionary | Initializers.cs:54:13:54:95 | Dictionary dict = ... | | +| Initializers.cs:54:20:54:95 | Before object creation of type Dictionary | Initializers.cs:54:20:54:95 | object creation of type Dictionary | | +| Initializers.cs:54:20:54:95 | object creation of type Dictionary | Initializers.cs:54:50:54:95 | Before { ..., ... } | | +| Initializers.cs:54:50:54:95 | After { ..., ... } | Initializers.cs:54:20:54:95 | After object creation of type Dictionary | | +| Initializers.cs:54:50:54:95 | Before { ..., ... } | Initializers.cs:54:52:54:63 | Before ... = ... | | +| Initializers.cs:54:50:54:95 | { ..., ... } | Initializers.cs:54:50:54:95 | After { ..., ... } | | +| Initializers.cs:54:52:54:54 | After access to indexer | Initializers.cs:54:58:54:63 | "Zero" | | +| Initializers.cs:54:52:54:54 | Before access to indexer | Initializers.cs:54:53:54:53 | 0 | | +| Initializers.cs:54:52:54:54 | access to indexer | Initializers.cs:54:52:54:54 | After access to indexer | | +| Initializers.cs:54:52:54:63 | ... = ... | Initializers.cs:54:52:54:63 | After ... = ... | | +| Initializers.cs:54:52:54:63 | After ... = ... | Initializers.cs:54:66:54:76 | Before ... = ... | | +| Initializers.cs:54:52:54:63 | Before ... = ... | Initializers.cs:54:52:54:54 | Before access to indexer | | +| Initializers.cs:54:53:54:53 | 0 | Initializers.cs:54:52:54:54 | access to indexer | | +| Initializers.cs:54:58:54:63 | "Zero" | Initializers.cs:54:52:54:63 | ... = ... | | +| Initializers.cs:54:66:54:68 | After access to indexer | Initializers.cs:54:72:54:76 | "One" | | +| Initializers.cs:54:66:54:68 | Before access to indexer | Initializers.cs:54:67:54:67 | 1 | | +| Initializers.cs:54:66:54:68 | access to indexer | Initializers.cs:54:66:54:68 | After access to indexer | | +| Initializers.cs:54:66:54:76 | ... = ... | Initializers.cs:54:66:54:76 | After ... = ... | | +| Initializers.cs:54:66:54:76 | After ... = ... | Initializers.cs:54:79:54:93 | Before ... = ... | | +| Initializers.cs:54:66:54:76 | Before ... = ... | Initializers.cs:54:66:54:68 | Before access to indexer | | +| Initializers.cs:54:67:54:67 | 1 | Initializers.cs:54:66:54:68 | access to indexer | | +| Initializers.cs:54:72:54:76 | "One" | Initializers.cs:54:66:54:76 | ... = ... | | +| Initializers.cs:54:79:54:85 | After access to indexer | Initializers.cs:54:89:54:93 | "Two" | | +| Initializers.cs:54:79:54:85 | Before access to indexer | Initializers.cs:54:80:54:84 | Before ... + ... | | +| Initializers.cs:54:79:54:85 | access to indexer | Initializers.cs:54:79:54:85 | After access to indexer | | +| Initializers.cs:54:79:54:93 | ... = ... | Initializers.cs:54:79:54:93 | After ... = ... | | +| Initializers.cs:54:79:54:93 | After ... = ... | Initializers.cs:54:50:54:95 | { ..., ... } | | +| Initializers.cs:54:79:54:93 | Before ... = ... | Initializers.cs:54:79:54:85 | Before access to indexer | | | Initializers.cs:54:80:54:80 | access to parameter i | Initializers.cs:54:84:54:84 | 2 | | -| Initializers.cs:54:80:54:84 | ... + ... | Initializers.cs:54:89:54:93 | "Two" | | +| Initializers.cs:54:80:54:84 | ... + ... | Initializers.cs:54:80:54:84 | After ... + ... | | +| Initializers.cs:54:80:54:84 | After ... + ... | Initializers.cs:54:79:54:85 | access to indexer | | +| Initializers.cs:54:80:54:84 | Before ... + ... | Initializers.cs:54:80:54:80 | access to parameter i | | | Initializers.cs:54:84:54:84 | 2 | Initializers.cs:54:80:54:84 | ... + ... | | -| Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:79:54:85 | access to indexer | | -| Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:57:24:65:9 | object creation of type Compound | | -| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | exit Test (normal) | | -| Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:59:34:59:34 | 0 | | -| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:57:13:65:9 | Compound compound = ... | | -| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:76 | ... = ... | | -| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:60:37:60:37 | 3 | | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | | -| Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:44 | ... = ... | | -| Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:48:59:48 | 1 | | -| Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:39:59:44 | "Zero" | | -| Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:59:33:59:35 | access to indexer | | -| Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:59:47:59:57 | ... = ... | | -| Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:59:61:59:61 | access to parameter i | | -| Initializers.cs:59:48:59:48 | 1 | Initializers.cs:59:53:59:57 | "One" | | -| Initializers.cs:59:53:59:57 | "One" | Initializers.cs:59:47:59:49 | access to indexer | | -| Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:59:60:59:74 | ... = ... | | -| Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:59:31:59:76 | { ..., ... } | | +| Initializers.cs:54:89:54:93 | "Two" | Initializers.cs:54:79:54:93 | ... = ... | | +| Initializers.cs:57:9:65:10 | ... ...; | Initializers.cs:57:13:65:9 | Before Compound compound = ... | | +| Initializers.cs:57:9:65:10 | After ... ...; | Initializers.cs:52:5:66:5 | After {...} | | +| Initializers.cs:57:13:57:20 | access to local variable compound | Initializers.cs:57:24:65:9 | Before object creation of type Compound | | +| Initializers.cs:57:13:65:9 | After Compound compound = ... | Initializers.cs:57:9:65:10 | After ... ...; | | +| Initializers.cs:57:13:65:9 | Before Compound compound = ... | Initializers.cs:57:13:57:20 | access to local variable compound | | +| Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:57:13:65:9 | After Compound compound = ... | | +| Initializers.cs:57:24:65:9 | After object creation of type Compound | Initializers.cs:57:13:65:9 | Compound compound = ... | | +| Initializers.cs:57:24:65:9 | Before object creation of type Compound | Initializers.cs:57:24:65:9 | object creation of type Compound | | +| Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:58:9:65:9 | Before { ..., ... } | | +| Initializers.cs:58:9:65:9 | After { ..., ... } | Initializers.cs:57:24:65:9 | After object creation of type Compound | | +| Initializers.cs:58:9:65:9 | Before { ..., ... } | Initializers.cs:59:13:59:76 | Before ... = ... | | +| Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:58:9:65:9 | After { ..., ... } | | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:31:59:76 | Before { ..., ... } | | +| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:13:59:76 | After ... = ... | | +| Initializers.cs:59:13:59:76 | After ... = ... | Initializers.cs:60:13:60:80 | Before ... = ... | | +| Initializers.cs:59:13:59:76 | Before ... = ... | Initializers.cs:59:13:59:27 | access to field DictionaryField | | +| Initializers.cs:59:31:59:76 | After { ..., ... } | Initializers.cs:59:13:59:76 | ... = ... | | +| Initializers.cs:59:31:59:76 | Before { ..., ... } | Initializers.cs:59:33:59:44 | Before ... = ... | | +| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:31:59:76 | After { ..., ... } | | +| Initializers.cs:59:33:59:35 | After access to indexer | Initializers.cs:59:39:59:44 | "Zero" | | +| Initializers.cs:59:33:59:35 | Before access to indexer | Initializers.cs:59:34:59:34 | 0 | | +| Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:35 | After access to indexer | | +| Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:33:59:44 | After ... = ... | | +| Initializers.cs:59:33:59:44 | After ... = ... | Initializers.cs:59:47:59:57 | Before ... = ... | | +| Initializers.cs:59:33:59:44 | Before ... = ... | Initializers.cs:59:33:59:35 | Before access to indexer | | +| Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:33:59:35 | access to indexer | | +| Initializers.cs:59:39:59:44 | "Zero" | Initializers.cs:59:33:59:44 | ... = ... | | +| Initializers.cs:59:47:59:49 | After access to indexer | Initializers.cs:59:53:59:57 | "One" | | +| Initializers.cs:59:47:59:49 | Before access to indexer | Initializers.cs:59:48:59:48 | 1 | | +| Initializers.cs:59:47:59:49 | access to indexer | Initializers.cs:59:47:59:49 | After access to indexer | | +| Initializers.cs:59:47:59:57 | ... = ... | Initializers.cs:59:47:59:57 | After ... = ... | | +| Initializers.cs:59:47:59:57 | After ... = ... | Initializers.cs:59:60:59:74 | Before ... = ... | | +| Initializers.cs:59:47:59:57 | Before ... = ... | Initializers.cs:59:47:59:49 | Before access to indexer | | +| Initializers.cs:59:48:59:48 | 1 | Initializers.cs:59:47:59:49 | access to indexer | | +| Initializers.cs:59:53:59:57 | "One" | Initializers.cs:59:47:59:57 | ... = ... | | +| Initializers.cs:59:60:59:66 | After access to indexer | Initializers.cs:59:70:59:74 | "Two" | | +| Initializers.cs:59:60:59:66 | Before access to indexer | Initializers.cs:59:61:59:65 | Before ... + ... | | +| Initializers.cs:59:60:59:66 | access to indexer | Initializers.cs:59:60:59:66 | After access to indexer | | +| Initializers.cs:59:60:59:74 | ... = ... | Initializers.cs:59:60:59:74 | After ... = ... | | +| Initializers.cs:59:60:59:74 | After ... = ... | Initializers.cs:59:31:59:76 | { ..., ... } | | +| Initializers.cs:59:60:59:74 | Before ... = ... | Initializers.cs:59:60:59:66 | Before access to indexer | | | Initializers.cs:59:61:59:61 | access to parameter i | Initializers.cs:59:65:59:65 | 2 | | -| Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:59:70:59:74 | "Two" | | +| Initializers.cs:59:61:59:65 | ... + ... | Initializers.cs:59:61:59:65 | After ... + ... | | +| Initializers.cs:59:61:59:65 | After ... + ... | Initializers.cs:59:60:59:66 | access to indexer | | +| Initializers.cs:59:61:59:65 | Before ... + ... | Initializers.cs:59:61:59:61 | access to parameter i | | | Initializers.cs:59:65:59:65 | 2 | Initializers.cs:59:61:59:65 | ... + ... | | -| Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:60:59:66 | access to indexer | | -| Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:60:13:60:80 | ... = ... | | -| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:61:29:61:29 | 0 | | -| Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | | -| Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:36:60:48 | ... = ... | | -| Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:52:60:52 | 2 | | -| Initializers.cs:60:37:60:37 | 3 | Initializers.cs:60:42:60:48 | "Three" | | -| Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:60:36:60:38 | access to indexer | | -| Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:60:51:60:61 | ... = ... | | -| Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:60:65:60:65 | access to parameter i | | -| Initializers.cs:60:52:60:52 | 2 | Initializers.cs:60:57:60:61 | "Two" | | -| Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:60:51:60:53 | access to indexer | | -| Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:60:64:60:78 | ... = ... | | -| Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:60:34:60:80 | { ..., ... } | | +| Initializers.cs:59:70:59:74 | "Two" | Initializers.cs:59:60:59:74 | ... = ... | | +| Initializers.cs:60:13:60:30 | After access to property DictionaryProperty | Initializers.cs:60:34:60:80 | Before { ..., ... } | | +| Initializers.cs:60:13:60:30 | Before access to property DictionaryProperty | Initializers.cs:60:13:60:30 | access to property DictionaryProperty | | +| Initializers.cs:60:13:60:30 | access to property DictionaryProperty | Initializers.cs:60:13:60:30 | After access to property DictionaryProperty | | +| Initializers.cs:60:13:60:80 | ... = ... | Initializers.cs:60:13:60:80 | After ... = ... | | +| Initializers.cs:60:13:60:80 | After ... = ... | Initializers.cs:61:13:61:58 | Before ... = ... | | +| Initializers.cs:60:13:60:80 | Before ... = ... | Initializers.cs:60:13:60:30 | Before access to property DictionaryProperty | | +| Initializers.cs:60:34:60:80 | After { ..., ... } | Initializers.cs:60:13:60:80 | ... = ... | | +| Initializers.cs:60:34:60:80 | Before { ..., ... } | Initializers.cs:60:36:60:48 | Before ... = ... | | +| Initializers.cs:60:34:60:80 | { ..., ... } | Initializers.cs:60:34:60:80 | After { ..., ... } | | +| Initializers.cs:60:36:60:38 | After access to indexer | Initializers.cs:60:42:60:48 | "Three" | | +| Initializers.cs:60:36:60:38 | Before access to indexer | Initializers.cs:60:37:60:37 | 3 | | +| Initializers.cs:60:36:60:38 | access to indexer | Initializers.cs:60:36:60:38 | After access to indexer | | +| Initializers.cs:60:36:60:48 | ... = ... | Initializers.cs:60:36:60:48 | After ... = ... | | +| Initializers.cs:60:36:60:48 | After ... = ... | Initializers.cs:60:51:60:61 | Before ... = ... | | +| Initializers.cs:60:36:60:48 | Before ... = ... | Initializers.cs:60:36:60:38 | Before access to indexer | | +| Initializers.cs:60:37:60:37 | 3 | Initializers.cs:60:36:60:38 | access to indexer | | +| Initializers.cs:60:42:60:48 | "Three" | Initializers.cs:60:36:60:48 | ... = ... | | +| Initializers.cs:60:51:60:53 | After access to indexer | Initializers.cs:60:57:60:61 | "Two" | | +| Initializers.cs:60:51:60:53 | Before access to indexer | Initializers.cs:60:52:60:52 | 2 | | +| Initializers.cs:60:51:60:53 | access to indexer | Initializers.cs:60:51:60:53 | After access to indexer | | +| Initializers.cs:60:51:60:61 | ... = ... | Initializers.cs:60:51:60:61 | After ... = ... | | +| Initializers.cs:60:51:60:61 | After ... = ... | Initializers.cs:60:64:60:78 | Before ... = ... | | +| Initializers.cs:60:51:60:61 | Before ... = ... | Initializers.cs:60:51:60:53 | Before access to indexer | | +| Initializers.cs:60:52:60:52 | 2 | Initializers.cs:60:51:60:53 | access to indexer | | +| Initializers.cs:60:57:60:61 | "Two" | Initializers.cs:60:51:60:61 | ... = ... | | +| Initializers.cs:60:64:60:70 | After access to indexer | Initializers.cs:60:74:60:78 | "One" | | +| Initializers.cs:60:64:60:70 | Before access to indexer | Initializers.cs:60:65:60:69 | Before ... + ... | | +| Initializers.cs:60:64:60:70 | access to indexer | Initializers.cs:60:64:60:70 | After access to indexer | | +| Initializers.cs:60:64:60:78 | ... = ... | Initializers.cs:60:64:60:78 | After ... = ... | | +| Initializers.cs:60:64:60:78 | After ... = ... | Initializers.cs:60:34:60:80 | { ..., ... } | | +| Initializers.cs:60:64:60:78 | Before ... = ... | Initializers.cs:60:64:60:70 | Before access to indexer | | | Initializers.cs:60:65:60:65 | access to parameter i | Initializers.cs:60:69:60:69 | 1 | | -| Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:74:60:78 | "One" | | +| Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:65:60:69 | After ... + ... | | +| Initializers.cs:60:65:60:69 | After ... + ... | Initializers.cs:60:64:60:70 | access to indexer | | +| Initializers.cs:60:65:60:69 | Before ... + ... | Initializers.cs:60:65:60:65 | access to parameter i | | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:69 | ... + ... | | -| Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:70 | access to indexer | | -| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:58 | ... = ... | | -| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:62:30:62:30 | 0 | | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:22 | access to field ArrayField | | -| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:39 | ... = ... | | -| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:43:61:43 | access to parameter i | | -| Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:34:61:39 | "Zero" | | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:30 | access to array element | | -| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:56 | ... = ... | | -| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | | +| Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:78 | ... = ... | | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:26:61:58 | Before { ..., ... } | | +| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:13:61:58 | After ... = ... | | +| Initializers.cs:61:13:61:58 | After ... = ... | Initializers.cs:62:13:62:60 | Before ... = ... | | +| Initializers.cs:61:13:61:58 | Before ... = ... | Initializers.cs:61:13:61:22 | access to field ArrayField | | +| Initializers.cs:61:26:61:58 | After { ..., ... } | Initializers.cs:61:13:61:58 | ... = ... | | +| Initializers.cs:61:26:61:58 | Before { ..., ... } | Initializers.cs:61:28:61:39 | Before ... = ... | | +| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:26:61:58 | After { ..., ... } | | +| Initializers.cs:61:28:61:30 | After access to array element | Initializers.cs:61:34:61:39 | "Zero" | | +| Initializers.cs:61:28:61:30 | Before access to array element | Initializers.cs:61:29:61:29 | 0 | | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:30 | After access to array element | | +| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:28:61:39 | After ... = ... | | +| Initializers.cs:61:28:61:39 | After ... = ... | Initializers.cs:61:42:61:56 | Before ... = ... | | +| Initializers.cs:61:28:61:39 | Before ... = ... | Initializers.cs:61:28:61:30 | Before access to array element | | +| Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:28:61:30 | access to array element | | +| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:39 | ... = ... | | +| Initializers.cs:61:42:61:48 | After access to array element | Initializers.cs:61:52:61:56 | "One" | | +| Initializers.cs:61:42:61:48 | Before access to array element | Initializers.cs:61:43:61:47 | Before ... + ... | | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:48 | After access to array element | | +| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:42:61:56 | After ... = ... | | +| Initializers.cs:61:42:61:56 | After ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | | +| Initializers.cs:61:42:61:56 | Before ... = ... | Initializers.cs:61:42:61:48 | Before access to array element | | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:47:61:47 | 1 | | -| Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:52:61:56 | "One" | | +| Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:43:61:47 | After ... + ... | | +| Initializers.cs:61:43:61:47 | After ... + ... | Initializers.cs:61:42:61:48 | access to array element | | +| Initializers.cs:61:43:61:47 | Before ... + ... | Initializers.cs:61:43:61:43 | access to parameter i | | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:47 | ... + ... | | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:48 | access to array element | | -| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:60 | ... = ... | | -| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:63:32:63:32 | 1 | | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:23 | access to field ArrayField2 | | -| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:40 | ... = ... | | -| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:44:62:44 | 1 | | +| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:56 | ... = ... | | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:27:62:60 | Before { ..., ... } | | +| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:13:62:60 | After ... = ... | | +| Initializers.cs:62:13:62:60 | After ... = ... | Initializers.cs:63:13:63:60 | Before ... = ... | | +| Initializers.cs:62:13:62:60 | Before ... = ... | Initializers.cs:62:13:62:23 | access to field ArrayField2 | | +| Initializers.cs:62:27:62:60 | After { ..., ... } | Initializers.cs:62:13:62:60 | ... = ... | | +| Initializers.cs:62:27:62:60 | Before { ..., ... } | Initializers.cs:62:29:62:40 | Before ... = ... | | +| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:27:62:60 | After { ..., ... } | | +| Initializers.cs:62:29:62:34 | After access to array element | Initializers.cs:62:38:62:40 | "i" | | +| Initializers.cs:62:29:62:34 | Before access to array element | Initializers.cs:62:30:62:30 | 0 | | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:34 | After access to array element | | +| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:29:62:40 | After ... = ... | | +| Initializers.cs:62:29:62:40 | After ... = ... | Initializers.cs:62:43:62:58 | Before ... = ... | | +| Initializers.cs:62:29:62:40 | Before ... = ... | Initializers.cs:62:29:62:34 | Before access to array element | | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:33:62:33 | 1 | | -| Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:38:62:40 | "i" | | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:34 | access to array element | | -| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:58 | ... = ... | | -| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | | -| Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:47 | access to parameter i | | +| Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:29:62:34 | access to array element | | +| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:40 | ... = ... | | +| Initializers.cs:62:43:62:52 | After access to array element | Initializers.cs:62:56:62:58 | "1" | | +| Initializers.cs:62:43:62:52 | Before access to array element | Initializers.cs:62:44:62:44 | 1 | | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:52 | After access to array element | | +| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:43:62:58 | After ... = ... | | +| Initializers.cs:62:43:62:58 | After ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | | +| Initializers.cs:62:43:62:58 | Before ... = ... | Initializers.cs:62:43:62:52 | Before access to array element | | +| Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:51 | Before ... + ... | | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:51:62:51 | 0 | | -| Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:56:62:58 | "1" | | +| Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:47:62:51 | After ... + ... | | +| Initializers.cs:62:47:62:51 | After ... + ... | Initializers.cs:62:43:62:52 | access to array element | | +| Initializers.cs:62:47:62:51 | Before ... + ... | Initializers.cs:62:47:62:47 | access to parameter i | | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:47:62:51 | ... + ... | | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:52 | access to array element | | -| Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:60 | ... = ... | | -| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:64:33:64:33 | 0 | | -| Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:13:63:25 | access to property ArrayProperty | | -| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:41 | ... = ... | | -| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:45:63:45 | access to parameter i | | -| Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:37:63:41 | "One" | | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:33 | access to array element | | -| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:58 | ... = ... | | -| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | | +| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:58 | ... = ... | | +| Initializers.cs:63:13:63:25 | After access to property ArrayProperty | Initializers.cs:63:29:63:60 | Before { ..., ... } | | +| Initializers.cs:63:13:63:25 | Before access to property ArrayProperty | Initializers.cs:63:13:63:25 | access to property ArrayProperty | | +| Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:25 | After access to property ArrayProperty | | +| Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:13:63:60 | After ... = ... | | +| Initializers.cs:63:13:63:60 | After ... = ... | Initializers.cs:64:13:64:63 | Before ... = ... | | +| Initializers.cs:63:13:63:60 | Before ... = ... | Initializers.cs:63:13:63:25 | Before access to property ArrayProperty | | +| Initializers.cs:63:29:63:60 | After { ..., ... } | Initializers.cs:63:13:63:60 | ... = ... | | +| Initializers.cs:63:29:63:60 | Before { ..., ... } | Initializers.cs:63:31:63:41 | Before ... = ... | | +| Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:29:63:60 | After { ..., ... } | | +| Initializers.cs:63:31:63:33 | After access to array element | Initializers.cs:63:37:63:41 | "One" | | +| Initializers.cs:63:31:63:33 | Before access to array element | Initializers.cs:63:32:63:32 | 1 | | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:33 | After access to array element | | +| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:31:63:41 | After ... = ... | | +| Initializers.cs:63:31:63:41 | After ... = ... | Initializers.cs:63:44:63:58 | Before ... = ... | | +| Initializers.cs:63:31:63:41 | Before ... = ... | Initializers.cs:63:31:63:33 | Before access to array element | | +| Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:31:63:33 | access to array element | | +| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:41 | ... = ... | | +| Initializers.cs:63:44:63:50 | After access to array element | Initializers.cs:63:54:63:58 | "Two" | | +| Initializers.cs:63:44:63:50 | Before access to array element | Initializers.cs:63:45:63:49 | Before ... + ... | | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:50 | After access to array element | | +| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:44:63:58 | After ... = ... | | +| Initializers.cs:63:44:63:58 | After ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | | +| Initializers.cs:63:44:63:58 | Before ... = ... | Initializers.cs:63:44:63:50 | Before access to array element | | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:49:63:49 | 2 | | -| Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:54:63:58 | "Two" | | +| Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:45:63:49 | After ... + ... | | +| Initializers.cs:63:45:63:49 | After ... + ... | Initializers.cs:63:44:63:50 | access to array element | | +| Initializers.cs:63:45:63:49 | Before ... + ... | Initializers.cs:63:45:63:45 | access to parameter i | | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:49 | ... + ... | | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:50 | access to array element | | -| Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:63 | ... = ... | | -| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | -| Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | | -| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:43 | ... = ... | | -| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:47:64:47 | 1 | | +| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:58 | ... = ... | | +| Initializers.cs:64:13:64:26 | After access to property ArrayProperty2 | Initializers.cs:64:30:64:63 | Before { ..., ... } | | +| Initializers.cs:64:13:64:26 | Before access to property ArrayProperty2 | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | | +| Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:26 | After access to property ArrayProperty2 | | +| Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:13:64:63 | After ... = ... | | +| Initializers.cs:64:13:64:63 | After ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | +| Initializers.cs:64:13:64:63 | Before ... = ... | Initializers.cs:64:13:64:26 | Before access to property ArrayProperty2 | | +| Initializers.cs:64:30:64:63 | After { ..., ... } | Initializers.cs:64:13:64:63 | ... = ... | | +| Initializers.cs:64:30:64:63 | Before { ..., ... } | Initializers.cs:64:32:64:43 | Before ... = ... | | +| Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:30:64:63 | After { ..., ... } | | +| Initializers.cs:64:32:64:37 | After access to array element | Initializers.cs:64:41:64:43 | "i" | | +| Initializers.cs:64:32:64:37 | Before access to array element | Initializers.cs:64:33:64:33 | 0 | | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:37 | After access to array element | | +| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:32:64:43 | After ... = ... | | +| Initializers.cs:64:32:64:43 | After ... = ... | Initializers.cs:64:46:64:61 | Before ... = ... | | +| Initializers.cs:64:32:64:43 | Before ... = ... | Initializers.cs:64:32:64:37 | Before access to array element | | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:36:64:36 | 1 | | -| Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:41:64:43 | "i" | | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:37 | access to array element | | -| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:61 | ... = ... | | -| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | | -| Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:50 | access to parameter i | | +| Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:32:64:37 | access to array element | | +| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:43 | ... = ... | | +| Initializers.cs:64:46:64:55 | After access to array element | Initializers.cs:64:59:64:61 | "1" | | +| Initializers.cs:64:46:64:55 | Before access to array element | Initializers.cs:64:47:64:47 | 1 | | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:55 | After access to array element | | +| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:46:64:61 | After ... = ... | | +| Initializers.cs:64:46:64:61 | After ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | | +| Initializers.cs:64:46:64:61 | Before ... = ... | Initializers.cs:64:46:64:55 | Before access to array element | | +| Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:54 | Before ... + ... | | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:54:64:54 | 0 | | -| Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:59:64:61 | "1" | | +| Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:50:64:54 | After ... + ... | | +| Initializers.cs:64:50:64:54 | After ... + ... | Initializers.cs:64:46:64:55 | access to array element | | +| Initializers.cs:64:50:64:54 | Before ... + ... | Initializers.cs:64:50:64:50 | access to parameter i | | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | | -| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:55 | access to array element | | -| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | -| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | | -| LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | | +| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | | +| LoopUnrolling.cs:5:7:5:19 | After call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | +| LoopUnrolling.cs:5:7:5:19 | After call to method | LoopUnrolling.cs:5:7:5:19 | Before call to constructor Object | | +| LoopUnrolling.cs:5:7:5:19 | Before call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | +| LoopUnrolling.cs:5:7:5:19 | Before call to method | LoopUnrolling.cs:5:7:5:19 | this access | | +| LoopUnrolling.cs:5:7:5:19 | Entry | LoopUnrolling.cs:5:7:5:19 | Before call to method | | +| LoopUnrolling.cs:5:7:5:19 | Normal Exit | LoopUnrolling.cs:5:7:5:19 | Exit | | +| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | After call to constructor Object | | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | After call to method | | | 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 | | +| LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | Normal Exit | | +| LoopUnrolling.cs:7:10:7:11 | Entry | LoopUnrolling.cs:8:5:13:5 | {...} | | +| LoopUnrolling.cs:7:10:7:11 | Normal Exit | LoopUnrolling.cs:7:10:7:11 | Exit | | +| LoopUnrolling.cs:8:5:13:5 | After {...} | LoopUnrolling.cs:7:10:7:11 | Normal Exit | | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:9:9:10:19 | if (...) ... | | -| LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:9:13:9:16 | access to parameter args | | +| LoopUnrolling.cs:9:9:10:19 | After if (...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:9:13:9:28 | Before ... == ... | | | LoopUnrolling.cs:9:13:9:16 | access to parameter args | LoopUnrolling.cs:9:13:9:23 | access to property Length | | -| LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:9:28:9:28 | 0 | | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:10:13:10:19 | return ...; | true | -| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | false | +| LoopUnrolling.cs:9:13:9:23 | After access to property Length | LoopUnrolling.cs:9:28:9:28 | 0 | | +| LoopUnrolling.cs:9:13:9:23 | Before access to property Length | LoopUnrolling.cs:9:13:9:16 | access to parameter args | | +| LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:9:13:9:23 | After access to property Length | | +| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | false | +| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | true | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [false] | LoopUnrolling.cs:9:9:10:19 | After if (...) ... | | +| LoopUnrolling.cs:9:13:9:28 | After ... == ... [true] | LoopUnrolling.cs:10:13:10:19 | Before return ...; | | +| LoopUnrolling.cs:9:13:9:28 | Before ... == ... | LoopUnrolling.cs:9:13:9:23 | Before access to property Length | | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:13:9:28 | ... == ... | | -| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | return | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | empty | -| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | non-empty | +| LoopUnrolling.cs:10:13:10:19 | Before return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | | +| LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:7:10:7:11 | Normal Exit | return | +| LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:8:5:13:5 | After {...} | | +| LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:12:13:12:35 | ...; | | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | LoopUnrolling.cs:11:9:12:35 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:11:22:11:24 | String arg | | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [empty] | empty | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | After access to parameter args [non-empty] | non-empty | +| LoopUnrolling.cs:12:13:12:34 | After call to method WriteLine | LoopUnrolling.cs:12:13:12:35 | After ...; | | +| LoopUnrolling.cs:12:13:12:34 | Before call to method WriteLine | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | | +| LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:12:13:12:34 | After call to method WriteLine | | +| LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:12:13:12:34 | Before call to method WriteLine | | +| LoopUnrolling.cs:12:13:12:35 | After ...; | LoopUnrolling.cs:11:9:12:35 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:16:5:20:5 | {...} | | -| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 | | +| LoopUnrolling.cs:15:10:15:11 | Entry | LoopUnrolling.cs:16:5:20:5 | {...} | | +| LoopUnrolling.cs:15:10:15:11 | Normal Exit | LoopUnrolling.cs:15:10:15:11 | Exit | | +| LoopUnrolling.cs:16:5:20:5 | After {...} | LoopUnrolling.cs:15:10:15:11 | Normal Exit | | | LoopUnrolling.cs:16:5:20:5 | {...} | LoopUnrolling.cs:17:9:17:48 | ... ...; | | -| LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:17:18:17:47 | 3 | | -| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | | +| LoopUnrolling.cs:17:9:17:48 | ... ...; | LoopUnrolling.cs:17:13:17:47 | Before String[] xs = ... | | +| LoopUnrolling.cs:17:9:17:48 | After ... ...; | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:17:13:17:14 | access to local variable xs | LoopUnrolling.cs:17:18:17:47 | Before array creation of type String[] | | +| LoopUnrolling.cs:17:13:17:47 | After String[] xs = ... | LoopUnrolling.cs:17:9:17:48 | After ... ...; | | +| LoopUnrolling.cs:17:13:17:47 | Before String[] xs = ... | LoopUnrolling.cs:17:13:17:14 | access to local variable xs | | +| LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | LoopUnrolling.cs:17:13:17:47 | After String[] xs = ... | | | LoopUnrolling.cs:17:18:17:47 | 3 | LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | | -| LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:33:17:35 | "a" | | -| LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | | +| LoopUnrolling.cs:17:18:17:47 | After array creation of type String[] | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | | +| LoopUnrolling.cs:17:18:17:47 | Before array creation of type String[] | LoopUnrolling.cs:17:31:17:47 | Before { ..., ... } | | +| LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | LoopUnrolling.cs:17:18:17:47 | After array creation of type String[] | | +| LoopUnrolling.cs:17:31:17:47 | After { ..., ... } | LoopUnrolling.cs:17:18:17:47 | 3 | | +| LoopUnrolling.cs:17:31:17:47 | Before { ..., ... } | LoopUnrolling.cs:17:33:17:35 | "a" | | +| LoopUnrolling.cs:17:31:17:47 | { ..., ... } | LoopUnrolling.cs:17:31:17:47 | After { ..., ... } | | | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:38:17:40 | "b" | | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:43:17:45 | "c" | | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | empty | -| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | non-empty | +| LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:16:5:20:5 | After {...} | | +| LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:19:13:19:33 | ...; | | -| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | LoopUnrolling.cs:18:9:19:33 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:18:22:18:22 | String x | | +| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:27:18:28 | After access to local variable xs [non-empty] | non-empty | +| LoopUnrolling.cs:19:13:19:32 | After call to method WriteLine | LoopUnrolling.cs:19:13:19:33 | After ...; | | +| LoopUnrolling.cs:19:13:19:32 | Before call to method WriteLine | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | +| LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:19:13:19:32 | After call to method WriteLine | | +| LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:13:19:32 | Before call to method WriteLine | | +| LoopUnrolling.cs:19:13:19:33 | After ...; | LoopUnrolling.cs:18:9:19:33 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | | -| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:23:5:27:5 | {...} | | -| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 | | -| LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:24:29:24:32 | access to parameter args | | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | empty | -| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | non-empty | -| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | access to parameter args | | -| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | non-empty | +| LoopUnrolling.cs:22:10:22:11 | Entry | LoopUnrolling.cs:23:5:27:5 | {...} | | +| LoopUnrolling.cs:22:10:22:11 | Normal Exit | LoopUnrolling.cs:22:10:22:11 | Exit | | +| LoopUnrolling.cs:23:5:27:5 | After {...} | LoopUnrolling.cs:22:10:22:11 | Normal Exit | | +| LoopUnrolling.cs:23:5:27:5 | {...} | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:23:5:27:5 | After {...} | | +| LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | | +| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | access to parameter args | | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | LoopUnrolling.cs:24:9:26:40 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:24:22:24:24 | Char arg | | +| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [empty] | empty | +| LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:29:24:32 | After access to parameter args [non-empty] | non-empty | +| LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | [LoopHeader] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | access to parameter args | | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:26:17:26:40 | ...; | | -| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | LoopUnrolling.cs:25:13:26:40 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | +| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [empty] | empty | +| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:34:25:37 | After access to parameter args [non-empty] | non-empty | +| LoopUnrolling.cs:26:17:26:39 | After call to method WriteLine | LoopUnrolling.cs:26:17:26:40 | After ...; | | +| LoopUnrolling.cs:26:17:26:39 | Before call to method WriteLine | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | | +| LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:26:17:26:39 | After call to method WriteLine | | +| LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:26:17:26:39 | Before call to method WriteLine | | +| LoopUnrolling.cs:26:17:26:40 | After ...; | LoopUnrolling.cs:25:13:26:40 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:30:5:34:5 | {...} | | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 | | +| LoopUnrolling.cs:29:10:29:11 | Entry | LoopUnrolling.cs:30:5:34:5 | {...} | | +| LoopUnrolling.cs:29:10:29:11 | Normal Exit | LoopUnrolling.cs:29:10:29:11 | Exit | | +| LoopUnrolling.cs:30:5:34:5 | After {...} | LoopUnrolling.cs:29:10:29:11 | Normal Exit | | | LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:31:9:31:31 | ... ...; | | -| LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:31:29:31:29 | 0 | | -| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | | -| LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | | +| LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:31:13:31:30 | Before String[] xs = ... | | +| LoopUnrolling.cs:31:9:31:31 | After ... ...; | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:31:13:31:14 | access to local variable xs | LoopUnrolling.cs:31:18:31:30 | Before array creation of type String[] | | +| LoopUnrolling.cs:31:13:31:30 | After String[] xs = ... | LoopUnrolling.cs:31:9:31:31 | After ... ...; | | +| LoopUnrolling.cs:31:13:31:30 | Before String[] xs = ... | LoopUnrolling.cs:31:13:31:14 | access to local variable xs | | +| LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:13:31:30 | After String[] xs = ... | | +| LoopUnrolling.cs:31:18:31:30 | After array creation of type String[] | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | | +| LoopUnrolling.cs:31:18:31:30 | Before array creation of type String[] | LoopUnrolling.cs:31:29:31:29 | 0 | | +| LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:18:31:30 | After array creation of type String[] | | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | empty | -| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | non-empty | +| LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | LoopUnrolling.cs:30:5:34:5 | After {...} | | +| LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | | | LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:33:13:33:33 | ...; | | -| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:33:31:33:31 | access to local variable x | | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | LoopUnrolling.cs:32:9:33:33 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:32:22:32:22 | String x | | +| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:27:32:28 | After access to local variable xs [non-empty] | non-empty | +| LoopUnrolling.cs:33:13:33:32 | After call to method WriteLine | LoopUnrolling.cs:33:13:33:33 | After ...; | | +| LoopUnrolling.cs:33:13:33:32 | Before call to method WriteLine | LoopUnrolling.cs:33:31:33:31 | access to local variable x | | +| LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:33:13:33:32 | After call to method WriteLine | | +| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:33:13:33:32 | Before call to method WriteLine | | +| LoopUnrolling.cs:33:13:33:33 | After ...; | LoopUnrolling.cs:32:9:33:33 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:37:5:43:5 | {...} | | -| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 | | +| LoopUnrolling.cs:36:10:36:11 | Entry | LoopUnrolling.cs:37:5:43:5 | {...} | | +| LoopUnrolling.cs:36:10:36:11 | Normal Exit | LoopUnrolling.cs:36:10:36:11 | Exit | | +| LoopUnrolling.cs:37:5:43:5 | After {...} | LoopUnrolling.cs:36:10:36:11 | Normal Exit | | | LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:38:9:38:48 | ... ...; | | -| LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:38:18:38:47 | 3 | | -| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:39:9:39:48 | ... ...; | | +| LoopUnrolling.cs:38:9:38:48 | ... ...; | LoopUnrolling.cs:38:13:38:47 | Before String[] xs = ... | | +| LoopUnrolling.cs:38:9:38:48 | After ... ...; | LoopUnrolling.cs:39:9:39:48 | ... ...; | | +| LoopUnrolling.cs:38:13:38:14 | access to local variable xs | LoopUnrolling.cs:38:18:38:47 | Before array creation of type String[] | | +| LoopUnrolling.cs:38:13:38:47 | After String[] xs = ... | LoopUnrolling.cs:38:9:38:48 | After ... ...; | | +| LoopUnrolling.cs:38:13:38:47 | Before String[] xs = ... | LoopUnrolling.cs:38:13:38:14 | access to local variable xs | | +| LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | LoopUnrolling.cs:38:13:38:47 | After String[] xs = ... | | | LoopUnrolling.cs:38:18:38:47 | 3 | LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | | -| LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:33:38:35 | "a" | | -| LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | | +| LoopUnrolling.cs:38:18:38:47 | After array creation of type String[] | LoopUnrolling.cs:38:13:38:47 | String[] xs = ... | | +| LoopUnrolling.cs:38:18:38:47 | Before array creation of type String[] | LoopUnrolling.cs:38:31:38:47 | Before { ..., ... } | | +| LoopUnrolling.cs:38:18:38:47 | array creation of type String[] | LoopUnrolling.cs:38:18:38:47 | After array creation of type String[] | | +| LoopUnrolling.cs:38:31:38:47 | After { ..., ... } | LoopUnrolling.cs:38:18:38:47 | 3 | | +| LoopUnrolling.cs:38:31:38:47 | Before { ..., ... } | LoopUnrolling.cs:38:33:38:35 | "a" | | +| LoopUnrolling.cs:38:31:38:47 | { ..., ... } | LoopUnrolling.cs:38:31:38:47 | After { ..., ... } | | | LoopUnrolling.cs:38:33:38:35 | "a" | LoopUnrolling.cs:38:38:38:40 | "b" | | | LoopUnrolling.cs:38:38:38:40 | "b" | LoopUnrolling.cs:38:43:38:45 | "c" | | | LoopUnrolling.cs:38:43:38:45 | "c" | LoopUnrolling.cs:38:31:38:47 | { ..., ... } | | -| LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:39:18:39:47 | 3 | | -| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | | +| LoopUnrolling.cs:39:9:39:48 | ... ...; | LoopUnrolling.cs:39:13:39:47 | Before String[] ys = ... | | +| LoopUnrolling.cs:39:9:39:48 | After ... ...; | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:39:13:39:14 | access to local variable ys | LoopUnrolling.cs:39:18:39:47 | Before array creation of type String[] | | +| LoopUnrolling.cs:39:13:39:47 | After String[] ys = ... | LoopUnrolling.cs:39:9:39:48 | After ... ...; | | +| LoopUnrolling.cs:39:13:39:47 | Before String[] ys = ... | LoopUnrolling.cs:39:13:39:14 | access to local variable ys | | +| LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | LoopUnrolling.cs:39:13:39:47 | After String[] ys = ... | | | LoopUnrolling.cs:39:18:39:47 | 3 | LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | | -| LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:33:39:35 | "0" | | -| LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | | +| LoopUnrolling.cs:39:18:39:47 | After array creation of type String[] | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | | +| LoopUnrolling.cs:39:18:39:47 | Before array creation of type String[] | LoopUnrolling.cs:39:31:39:47 | Before { ..., ... } | | +| LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | LoopUnrolling.cs:39:18:39:47 | After array creation of type String[] | | +| LoopUnrolling.cs:39:31:39:47 | After { ..., ... } | LoopUnrolling.cs:39:18:39:47 | 3 | | +| LoopUnrolling.cs:39:31:39:47 | Before { ..., ... } | LoopUnrolling.cs:39:33:39:35 | "0" | | +| LoopUnrolling.cs:39:31:39:47 | { ..., ... } | LoopUnrolling.cs:39:31:39:47 | After { ..., ... } | | | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:38:39:40 | "1" | | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:43:39:45 | "2" | | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | empty | -| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | non-empty | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | | -| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | empty | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | non-empty | +| LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:37:5:43:5 | After {...} | | +| LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | LoopUnrolling.cs:40:9:42:41 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:40:22:40:22 | String x | | +| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:27:40:28 | After access to local variable xs [non-empty] | non-empty | +| LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | [LoopHeader] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:42:17:42:41 | ...; | | -| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:42:35:42:35 | access to local variable x | | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | LoopUnrolling.cs:41:13:42:41 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | LoopUnrolling.cs:41:26:41:26 | String y | | +| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [empty] | empty | +| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:31:41:32 | After access to local variable ys [non-empty] | non-empty | +| LoopUnrolling.cs:42:17:42:40 | After call to method WriteLine | LoopUnrolling.cs:42:17:42:41 | After ...; | | +| LoopUnrolling.cs:42:17:42:40 | Before call to method WriteLine | LoopUnrolling.cs:42:35:42:39 | Before ... + ... | | +| LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:42:17:42:40 | After call to method WriteLine | | +| LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:42:17:42:40 | Before call to method WriteLine | | +| LoopUnrolling.cs:42:17:42:41 | After ...; | LoopUnrolling.cs:41:13:42:41 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:39:42:39 | access to local variable y | | -| LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | | +| LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:35:42:39 | After ... + ... | | +| LoopUnrolling.cs:42:35:42:39 | After ... + ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | | +| LoopUnrolling.cs:42:35:42:39 | Before ... + ... | LoopUnrolling.cs:42:35:42:35 | access to local variable x | | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:35:42:39 | ... + ... | | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:46:5:53:5 | {...} | | -| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 | | +| LoopUnrolling.cs:45:10:45:11 | Entry | LoopUnrolling.cs:46:5:53:5 | {...} | | +| LoopUnrolling.cs:45:10:45:11 | Normal Exit | LoopUnrolling.cs:45:10:45:11 | Exit | | +| LoopUnrolling.cs:46:5:53:5 | After {...} | LoopUnrolling.cs:45:10:45:11 | Normal Exit | | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:47:9:47:48 | ... ...; | | -| LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:18:47:47 | 3 | | -| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | | +| LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:13:47:47 | Before String[] xs = ... | | +| LoopUnrolling.cs:47:9:47:48 | After ... ...; | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:47:13:47:14 | access to local variable xs | LoopUnrolling.cs:47:18:47:47 | Before array creation of type String[] | | +| LoopUnrolling.cs:47:13:47:47 | After String[] xs = ... | LoopUnrolling.cs:47:9:47:48 | After ... ...; | | +| LoopUnrolling.cs:47:13:47:47 | Before String[] xs = ... | LoopUnrolling.cs:47:13:47:14 | access to local variable xs | | +| LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:13:47:47 | After String[] xs = ... | | | LoopUnrolling.cs:47:18:47:47 | 3 | LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | | -| LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:33:47:35 | "a" | | -| LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | | +| LoopUnrolling.cs:47:18:47:47 | After array creation of type String[] | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | | +| LoopUnrolling.cs:47:18:47:47 | Before array creation of type String[] | LoopUnrolling.cs:47:31:47:47 | Before { ..., ... } | | +| LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | LoopUnrolling.cs:47:18:47:47 | After array creation of type String[] | | +| LoopUnrolling.cs:47:31:47:47 | After { ..., ... } | LoopUnrolling.cs:47:18:47:47 | 3 | | +| LoopUnrolling.cs:47:31:47:47 | Before { ..., ... } | LoopUnrolling.cs:47:33:47:35 | "a" | | +| LoopUnrolling.cs:47:31:47:47 | { ..., ... } | LoopUnrolling.cs:47:31:47:47 | After { ..., ... } | | | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:38:47:40 | "b" | | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:43:47:45 | "c" | | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | empty | -| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:22:48:22 | String x | non-empty | +| LoopUnrolling.cs:48:9:52:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:46:5:53:5 | After {...} | | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:49:9:52:9 | {...} | | -| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | LoopUnrolling.cs:48:9:52:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:48:22:48:22 | String x | | +| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:27:48:28 | After access to local variable xs [non-empty] | non-empty | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:50:9:50:13 | Label: | | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:16:50:36 | ...; | | -| LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:51:13:51:23 | goto ...; | | -| LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:34:50:34 | access to local variable x | | +| LoopUnrolling.cs:50:16:50:35 | After call to method WriteLine | LoopUnrolling.cs:50:16:50:36 | After ...; | | +| LoopUnrolling.cs:50:16:50:35 | Before call to method WriteLine | LoopUnrolling.cs:50:34:50:34 | access to local variable x | | +| LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:50:16:50:35 | After call to method WriteLine | | +| LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:16:50:35 | Before call to method WriteLine | | +| LoopUnrolling.cs:50:16:50:36 | After ...; | LoopUnrolling.cs:51:13:51:23 | Before goto ...; | | | LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | | +| LoopUnrolling.cs:51:13:51:23 | Before goto ...; | LoopUnrolling.cs:51:13:51:23 | goto ...; | | | LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:50:9:50:13 | Label: | goto | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:56:5:65:5 | {...} | | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 | | +| LoopUnrolling.cs:55:10:55:11 | Entry | LoopUnrolling.cs:56:5:65:5 | {...} | | +| LoopUnrolling.cs:55:10:55:11 | Normal Exit | LoopUnrolling.cs:55:10:55:11 | Exit | | +| LoopUnrolling.cs:56:5:65:5 | After {...} | LoopUnrolling.cs:55:10:55:11 | Normal Exit | | | LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:57:9:57:48 | ... ...; | | -| LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:57:18:57:47 | 3 | | -| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | | +| LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:57:13:57:47 | Before String[] xs = ... | | +| LoopUnrolling.cs:57:9:57:48 | After ... ...; | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:57:13:57:14 | access to local variable xs | LoopUnrolling.cs:57:18:57:47 | Before array creation of type String[] | | +| LoopUnrolling.cs:57:13:57:47 | After String[] xs = ... | LoopUnrolling.cs:57:9:57:48 | After ... ...; | | +| LoopUnrolling.cs:57:13:57:47 | Before String[] xs = ... | LoopUnrolling.cs:57:13:57:14 | access to local variable xs | | +| LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:13:57:47 | After String[] xs = ... | | | LoopUnrolling.cs:57:18:57:47 | 3 | LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | | -| LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:33:57:35 | "a" | | -| LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | | +| LoopUnrolling.cs:57:18:57:47 | After array creation of type String[] | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | | +| LoopUnrolling.cs:57:18:57:47 | Before array creation of type String[] | LoopUnrolling.cs:57:31:57:47 | Before { ..., ... } | | +| LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | LoopUnrolling.cs:57:18:57:47 | After array creation of type String[] | | +| LoopUnrolling.cs:57:31:57:47 | After { ..., ... } | LoopUnrolling.cs:57:18:57:47 | 3 | | +| LoopUnrolling.cs:57:31:57:47 | Before { ..., ... } | LoopUnrolling.cs:57:33:57:35 | "a" | | +| LoopUnrolling.cs:57:31:57:47 | { ..., ... } | LoopUnrolling.cs:57:31:57:47 | After { ..., ... } | | | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:38:57:40 | "b" | | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:43:57:45 | "c" | | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | empty | -| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | non-empty | +| LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:56:5:65:5 | After {...} | | +| LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:59:9:64:9 | {...} | | -| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | LoopUnrolling.cs:58:9:64:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:58:22:58:22 | String x | | +| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:27:58:28 | After access to local variable xs [non-empty] | non-empty | +| LoopUnrolling.cs:59:9:64:9 | After {...} | LoopUnrolling.cs:58:9:64:9 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:60:13:61:37 | if (...) ... | | +| LoopUnrolling.cs:60:13:61:37 | After if (...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:60:17:60:17 | access to parameter b | | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | ...; | true | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | false | -| LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:62:13:63:37 | if (...) ... | | -| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:35:61:35 | access to local variable x | | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | | +| LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | LoopUnrolling.cs:61:17:61:37 | ...; | | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:17:60:17 | After access to parameter b [true] | true | +| LoopUnrolling.cs:61:17:61:36 | After call to method WriteLine | LoopUnrolling.cs:61:17:61:37 | After ...; | | +| LoopUnrolling.cs:61:17:61:36 | Before call to method WriteLine | LoopUnrolling.cs:61:35:61:35 | access to local variable x | | +| LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:61:17:61:36 | After call to method WriteLine | | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:36 | Before call to method WriteLine | | +| LoopUnrolling.cs:61:17:61:37 | After ...; | LoopUnrolling.cs:60:13:61:37 | After if (...) ... | | | LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | | +| LoopUnrolling.cs:62:13:63:37 | After if (...) ... | LoopUnrolling.cs:59:9:64:9 | After {...} | | | LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | | -| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:63:17:63:37 | ...; | true | -| LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:35:63:35 | access to local variable x | | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | | +| LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | LoopUnrolling.cs:63:17:63:37 | ...; | | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [false] | false | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:17:62:17 | After access to parameter b [true] | true | +| LoopUnrolling.cs:63:17:63:36 | After call to method WriteLine | LoopUnrolling.cs:63:17:63:37 | After ...; | | +| LoopUnrolling.cs:63:17:63:36 | Before call to method WriteLine | LoopUnrolling.cs:63:35:63:35 | access to local variable x | | +| LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:63:17:63:36 | After call to method WriteLine | | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:36 | Before call to method WriteLine | | +| LoopUnrolling.cs:63:17:63:37 | After ...; | LoopUnrolling.cs:62:13:63:37 | After if (...) ... | | | LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | | -| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:68:5:74:5 | {...} | | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 | | +| LoopUnrolling.cs:67:10:67:11 | Entry | LoopUnrolling.cs:68:5:74:5 | {...} | | +| LoopUnrolling.cs:67:10:67:11 | Normal Exit | LoopUnrolling.cs:67:10:67:11 | Exit | | +| LoopUnrolling.cs:68:5:74:5 | After {...} | LoopUnrolling.cs:67:10:67:11 | Normal Exit | | | LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:69:9:70:19 | if (...) ... | | -| LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:69:14:69:17 | access to parameter args | | -| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | false | -| LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | true | +| LoopUnrolling.cs:69:9:70:19 | After if (...) ... | LoopUnrolling.cs:71:9:71:21 | ...; | | +| LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:69:13:69:23 | !... | | +| LoopUnrolling.cs:69:13:69:23 | !... | LoopUnrolling.cs:69:14:69:23 | Before call to method Any | | +| LoopUnrolling.cs:69:13:69:23 | After !... [false] | LoopUnrolling.cs:69:9:70:19 | After if (...) ... | | +| LoopUnrolling.cs:69:13:69:23 | After !... [true] | LoopUnrolling.cs:70:13:70:19 | Before return ...; | | | LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:69:14:69:23 | call to method Any | | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:13:69:23 | [false] !... | true | -| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:13:69:23 | [true] !... | false | -| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | return | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | LoopUnrolling.cs:69:13:69:23 | After !... [true] | true | +| LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | LoopUnrolling.cs:69:13:69:23 | After !... [false] | false | +| LoopUnrolling.cs:69:14:69:23 | Before call to method Any | LoopUnrolling.cs:69:14:69:17 | access to parameter args | | +| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | After call to method Any [false] | false | +| LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:14:69:23 | After call to method Any [true] | true | +| LoopUnrolling.cs:70:13:70:19 | Before return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | | +| LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:67:10:67:11 | Normal Exit | return | | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:20 | call to method Clear | | -| LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:72:29:72:32 | access to parameter args | | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:12 | access to parameter args | | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | empty | -| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | non-empty | +| LoopUnrolling.cs:71:9:71:20 | After call to method Clear | LoopUnrolling.cs:71:9:71:21 | After ...; | | +| LoopUnrolling.cs:71:9:71:20 | Before call to method Clear | LoopUnrolling.cs:71:9:71:12 | access to parameter args | | +| LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:71:9:71:20 | After call to method Clear | | +| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:20 | Before call to method Clear | | +| LoopUnrolling.cs:71:9:71:21 | After ...; | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | LoopUnrolling.cs:68:5:74:5 | After {...} | | +| LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | access to parameter args | | | LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:73:13:73:35 | ...; | | -| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | LoopUnrolling.cs:72:9:73:35 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | LoopUnrolling.cs:72:22:72:24 | String arg | | +| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [empty] | empty | +| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:29:72:32 | After access to parameter args [non-empty] | non-empty | +| LoopUnrolling.cs:73:13:73:34 | After call to method WriteLine | LoopUnrolling.cs:73:13:73:35 | After ...; | | +| LoopUnrolling.cs:73:13:73:34 | Before call to method WriteLine | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | | +| LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:73:13:73:34 | After call to method WriteLine | | +| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:73:13:73:34 | Before call to method WriteLine | | +| LoopUnrolling.cs:73:13:73:35 | After ...; | LoopUnrolling.cs:72:9:73:35 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:77:5:83:5 | {...} | | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 | | +| LoopUnrolling.cs:76:10:76:11 | Entry | LoopUnrolling.cs:77:5:83:5 | {...} | | +| LoopUnrolling.cs:76:10:76:11 | Normal Exit | LoopUnrolling.cs:76:10:76:11 | Exit | | +| LoopUnrolling.cs:77:5:83:5 | After {...} | LoopUnrolling.cs:76:10:76:11 | Normal Exit | | | LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:78:9:78:34 | ... ...; | | -| LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:78:29:78:29 | 2 | | -| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | | -| LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | | +| LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:78:13:78:33 | Before String[,] xs = ... | | +| LoopUnrolling.cs:78:9:78:34 | After ... ...; | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:78:13:78:14 | access to local variable xs | LoopUnrolling.cs:78:18:78:33 | Before array creation of type String[,] | | +| LoopUnrolling.cs:78:13:78:33 | After String[,] xs = ... | LoopUnrolling.cs:78:9:78:34 | After ... ...; | | +| LoopUnrolling.cs:78:13:78:33 | Before String[,] xs = ... | LoopUnrolling.cs:78:13:78:14 | access to local variable xs | | +| LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:13:78:33 | After String[,] xs = ... | | +| LoopUnrolling.cs:78:18:78:33 | After array creation of type String[,] | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | | +| LoopUnrolling.cs:78:18:78:33 | Before array creation of type String[,] | LoopUnrolling.cs:78:29:78:29 | 2 | | +| LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:18:78:33 | After array creation of type String[,] | | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:32:78:32 | 0 | | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | empty | -| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | non-empty | +| LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:77:5:83:5 | After {...} | | +| LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | | | LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:80:9:82:9 | {...} | | -| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | LoopUnrolling.cs:79:9:82:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:79:22:79:22 | String x | | +| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:27:79:28 | After access to local variable xs [non-empty] | non-empty | +| LoopUnrolling.cs:80:9:82:9 | After {...} | LoopUnrolling.cs:79:9:82:9 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:81:13:81:33 | ...; | | -| LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:81:31:81:31 | access to local variable x | | +| LoopUnrolling.cs:81:13:81:32 | After call to method WriteLine | LoopUnrolling.cs:81:13:81:33 | After ...; | | +| LoopUnrolling.cs:81:13:81:32 | Before call to method WriteLine | LoopUnrolling.cs:81:31:81:31 | access to local variable x | | +| LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:81:13:81:32 | After call to method WriteLine | | +| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:81:13:81:32 | Before call to method WriteLine | | +| LoopUnrolling.cs:81:13:81:33 | After ...; | LoopUnrolling.cs:80:9:82:9 | After {...} | | | LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:86:5:92:5 | {...} | | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 | | +| LoopUnrolling.cs:85:10:85:12 | Entry | LoopUnrolling.cs:86:5:92:5 | {...} | | +| LoopUnrolling.cs:85:10:85:12 | Normal Exit | LoopUnrolling.cs:85:10:85:12 | Exit | | +| LoopUnrolling.cs:86:5:92:5 | After {...} | LoopUnrolling.cs:85:10:85:12 | Normal Exit | | | LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:87:9:87:34 | ... ...; | | -| LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:87:29:87:29 | 0 | | -| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | | -| LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | | +| LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:87:13:87:33 | Before String[,] xs = ... | | +| LoopUnrolling.cs:87:9:87:34 | After ... ...; | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:87:13:87:14 | access to local variable xs | LoopUnrolling.cs:87:18:87:33 | Before array creation of type String[,] | | +| LoopUnrolling.cs:87:13:87:33 | After String[,] xs = ... | LoopUnrolling.cs:87:9:87:34 | After ... ...; | | +| LoopUnrolling.cs:87:13:87:33 | Before String[,] xs = ... | LoopUnrolling.cs:87:13:87:14 | access to local variable xs | | +| LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:13:87:33 | After String[,] xs = ... | | +| LoopUnrolling.cs:87:18:87:33 | After array creation of type String[,] | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | | +| LoopUnrolling.cs:87:18:87:33 | Before array creation of type String[,] | LoopUnrolling.cs:87:29:87:29 | 0 | | +| LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:18:87:33 | After array creation of type String[,] | | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:32:87:32 | 2 | | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | empty | -| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | non-empty | +| LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:86:5:92:5 | After {...} | | +| LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | | | LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:89:9:91:9 | {...} | | -| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | LoopUnrolling.cs:88:9:91:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:88:22:88:22 | String x | | +| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:27:88:28 | After access to local variable xs [non-empty] | non-empty | +| LoopUnrolling.cs:89:9:91:9 | After {...} | LoopUnrolling.cs:88:9:91:9 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:90:13:90:33 | ...; | | -| LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:90:31:90:31 | access to local variable x | | +| LoopUnrolling.cs:90:13:90:32 | After call to method WriteLine | LoopUnrolling.cs:90:13:90:33 | After ...; | | +| LoopUnrolling.cs:90:13:90:32 | Before call to method WriteLine | LoopUnrolling.cs:90:31:90:31 | access to local variable x | | +| LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:90:13:90:32 | After call to method WriteLine | | +| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:90:13:90:32 | Before call to method WriteLine | | +| LoopUnrolling.cs:90:13:90:33 | After ...; | LoopUnrolling.cs:89:9:91:9 | After {...} | | | LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:95:5:101:5 | {...} | | -| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | | +| LoopUnrolling.cs:94:10:94:12 | Entry | LoopUnrolling.cs:95:5:101:5 | {...} | | +| LoopUnrolling.cs:94:10:94:12 | Normal Exit | LoopUnrolling.cs:94:10:94:12 | Exit | | +| LoopUnrolling.cs:95:5:101:5 | After {...} | LoopUnrolling.cs:94:10:94:12 | Normal Exit | | | LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:96:9:96:34 | ... ...; | | -| LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:96:29:96:29 | 2 | | -| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | | -| LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | | +| LoopUnrolling.cs:96:9:96:34 | ... ...; | LoopUnrolling.cs:96:13:96:33 | Before String[,] xs = ... | | +| LoopUnrolling.cs:96:9:96:34 | After ... ...; | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:96:13:96:14 | access to local variable xs | LoopUnrolling.cs:96:18:96:33 | Before array creation of type String[,] | | +| LoopUnrolling.cs:96:13:96:33 | After String[,] xs = ... | LoopUnrolling.cs:96:9:96:34 | After ... ...; | | +| LoopUnrolling.cs:96:13:96:33 | Before String[,] xs = ... | LoopUnrolling.cs:96:13:96:14 | access to local variable xs | | +| LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | LoopUnrolling.cs:96:13:96:33 | After String[,] xs = ... | | +| LoopUnrolling.cs:96:18:96:33 | After array creation of type String[,] | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | | +| LoopUnrolling.cs:96:18:96:33 | Before array creation of type String[,] | LoopUnrolling.cs:96:29:96:29 | 2 | | +| LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:18:96:33 | After array creation of type String[,] | | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:32:96:32 | 2 | | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | empty | -| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | non-empty | +| LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | LoopUnrolling.cs:95:5:101:5 | After {...} | | +| LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:98:9:100:9 | {...} | | -| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | LoopUnrolling.cs:97:9:100:9 | After foreach (... ... in ...) ... | | +| LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | LoopUnrolling.cs:97:22:97:22 | String x | | +| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [empty] | empty | +| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:27:97:28 | After access to local variable xs [non-empty] | non-empty | +| LoopUnrolling.cs:98:9:100:9 | After {...} | LoopUnrolling.cs:97:9:100:9 | [LoopHeader] foreach (... ... in ...) ... | | | LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:99:13:99:33 | ...; | | -| LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | +| LoopUnrolling.cs:99:13:99:32 | After call to method WriteLine | LoopUnrolling.cs:99:13:99:33 | After ...; | | +| LoopUnrolling.cs:99:13:99:32 | Before call to method WriteLine | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | +| LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:99:13:99:32 | After call to method WriteLine | | +| LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:13:99:32 | Before call to method WriteLine | | +| LoopUnrolling.cs:99:13:99:33 | After ...; | LoopUnrolling.cs:98:9:100:9 | After {...} | | | 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 | 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 | After call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | | +| MultiImplementationA.cs:4:7:4:8 | After call to method | MultiImplementationA.cs:4:7:4:8 | Before call to constructor Object | | +| MultiImplementationA.cs:4:7:4:8 | Before call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | +| MultiImplementationA.cs:4:7:4:8 | Before call to method | MultiImplementationA.cs:4:7:4:8 | this access | | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationA.cs:4:7:4:8 | Before call to method | | +| MultiImplementationA.cs:4:7:4:8 | Entry | MultiImplementationB.cs:1:7:1:8 | Before call to method | | +| MultiImplementationA.cs:4:7:4:8 | Normal Exit | MultiImplementationA.cs:4:7:4:8 | Exit | | +| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | After call to constructor Object | | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | After call to method | | | 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 | | -| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | -| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | -| MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | exception | +| MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | Normal Exit | | +| MultiImplementationA.cs:6:22:6:31 | Before throw ... | MultiImplementationA.cs:6:28:6:31 | null | | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationA.cs:6:22:6:31 | Before throw ... | | +| MultiImplementationA.cs:6:22:6:31 | Entry | MultiImplementationB.cs:3:22:3:22 | 0 | | +| MultiImplementationA.cs:6:22:6:31 | Exceptional Exit | MultiImplementationA.cs:6:22:6:31 | Exit | | +| MultiImplementationA.cs:6:22:6:31 | Normal Exit | MultiImplementationA.cs:6:22:6:31 | Exit | | +| MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | Exceptional Exit | exception | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | throw ... | | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:25:7:39 | {...} | | -| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationB.cs:4:25:4:37 | {...} | | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | | -| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | | -| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:33:7:36 | null | | -| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | exception | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationA.cs:7:25:7:39 | {...} | | +| MultiImplementationA.cs:7:21:7:23 | Entry | MultiImplementationB.cs:4:25:4:37 | {...} | | +| MultiImplementationA.cs:7:21:7:23 | Exceptional Exit | MultiImplementationA.cs:7:21:7:23 | Exit | | +| MultiImplementationA.cs:7:21:7:23 | Normal Exit | MultiImplementationA.cs:7:21:7:23 | Exit | | +| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:27:7:37 | Before throw ...; | | +| MultiImplementationA.cs:7:27:7:37 | Before throw ...; | MultiImplementationA.cs:7:33:7:36 | null | | +| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | Exceptional Exit | exception | | MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:27:7:37 | throw ...; | | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:45:7:59 | {...} | | -| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationB.cs:4:43:4:45 | {...} | | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | | -| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | | -| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:53:7:56 | null | | -| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | exception | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationA.cs:7:45:7:59 | {...} | | +| MultiImplementationA.cs:7:41:7:43 | Entry | MultiImplementationB.cs:4:43:4:45 | {...} | | +| MultiImplementationA.cs:7:41:7:43 | Exceptional Exit | MultiImplementationA.cs:7:41:7:43 | Exit | | +| MultiImplementationA.cs:7:41:7:43 | Normal Exit | MultiImplementationA.cs:7:41:7:43 | Exit | | +| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:47:7:57 | Before throw ...; | | +| MultiImplementationA.cs:7:47:7:57 | Before throw ...; | MultiImplementationA.cs:7:53:7:56 | null | | +| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | Exceptional Exit | exception | | MultiImplementationA.cs:7:53:7:56 | null | MultiImplementationA.cs:7:47:7:57 | throw ...; | | -| MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:29:8:32 | null | | -| MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | | -| MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | MultiImplementationA.cs:8:16:8:16 | exit M | | -| MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | exit M | | -| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | exception | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationA.cs:8:23:8:32 | Before throw ... | | +| MultiImplementationA.cs:8:16:8:16 | Entry | MultiImplementationB.cs:5:23:5:23 | 2 | | +| MultiImplementationA.cs:8:16:8:16 | Exceptional Exit | MultiImplementationA.cs:8:16:8:16 | Exit | | +| MultiImplementationA.cs:8:16:8:16 | Normal Exit | MultiImplementationA.cs:8:16:8:16 | Exit | | +| MultiImplementationA.cs:8:23:8:32 | Before throw ... | MultiImplementationA.cs:8:29:8:32 | null | | +| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | Exceptional Exit | 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 | access to field F | MultiImplementationA.cs:13:16:13:20 | ... = ... | | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | access to field F | | -| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | | -| MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | -| MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationB.cs:12:37:12:40 | null | | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | MultiImplementationA.cs:14:31:14:31 | exit get_Item | | -| MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | MultiImplementationA.cs:14:31:14:31 | exit get_Item | | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationA.cs:15:40:15:52 | {...} | | -| MultiImplementationA.cs:15:36:15:38 | enter get_Item | MultiImplementationB.cs:13:40:13:54 | {...} | | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | MultiImplementationA.cs:15:36:15:38 | exit get_Item | | -| MultiImplementationA.cs:15:36:15:38 | exit get_Item (normal) | MultiImplementationA.cs:15:36:15:38 | exit get_Item | | -| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:49:15:49 | access to parameter s | | -| MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (normal) | return | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationA.cs:13:16:13:20 | Before ... = ... | | +| MultiImplementationA.cs:11:7:11:8 | Entry | MultiImplementationB.cs:11:16:11:20 | Before ... = ... | | +| MultiImplementationA.cs:11:7:11:8 | Normal Exit | MultiImplementationA.cs:11:7:11:8 | Exit | | +| MultiImplementationA.cs:13:16:13:16 | After access to field F | MultiImplementationA.cs:13:20:13:20 | 0 | | +| MultiImplementationA.cs:13:16:13:16 | Before access to field F | MultiImplementationA.cs:13:16:13:16 | this access | | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:16 | After access to field F | | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | access to field F | | +| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:16:13:20 | After ... = ... | | +| MultiImplementationA.cs:13:16:13:20 | After ... = ... | MultiImplementationA.cs:24:32:24:34 | Before ... = ... | | +| MultiImplementationA.cs:13:16:13:20 | Before ... = ... | MultiImplementationA.cs:13:16:13:16 | Before access to field F | | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | +| MultiImplementationA.cs:14:31:14:31 | Entry | MultiImplementationB.cs:12:31:12:40 | Before throw ... | | +| MultiImplementationA.cs:14:31:14:31 | Exceptional Exit | MultiImplementationA.cs:14:31:14:31 | Exit | | +| MultiImplementationA.cs:14:31:14:31 | Normal Exit | MultiImplementationA.cs:14:31:14:31 | Exit | | +| MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | Normal Exit | | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationA.cs:15:40:15:52 | {...} | | +| MultiImplementationA.cs:15:36:15:38 | Entry | MultiImplementationB.cs:13:40:13:54 | {...} | | +| MultiImplementationA.cs:15:36:15:38 | Exceptional Exit | MultiImplementationA.cs:15:36:15:38 | Exit | | +| MultiImplementationA.cs:15:36:15:38 | Normal Exit | MultiImplementationA.cs:15:36:15:38 | Exit | | +| MultiImplementationA.cs:15:40:15:52 | {...} | MultiImplementationA.cs:15:42:15:50 | Before return ...; | | +| MultiImplementationA.cs:15:42:15:50 | Before return ...; | MultiImplementationA.cs:15:49:15:49 | access to parameter s | | +| MultiImplementationA.cs:15:42:15:50 | return ...; | MultiImplementationA.cs:15:36:15:38 | Normal Exit | return | | MultiImplementationA.cs:15:49:15:49 | access to parameter s | MultiImplementationA.cs:15:42:15:50 | return ...; | | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationA.cs:15:58:15:60 | {...} | | -| MultiImplementationA.cs:15:54:15:56 | enter set_Item | MultiImplementationB.cs:13:60:13:62 | {...} | | -| MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | MultiImplementationA.cs:15:54:15:56 | exit set_Item | | -| MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationA.cs:17:5:19:5 | {...} | | -| MultiImplementationA.cs:16:17:16:18 | enter M1 | MultiImplementationB.cs:15:5:17:5 | {...} | | -| MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | exit M1 | | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationA.cs:15:58:15:60 | {...} | | +| MultiImplementationA.cs:15:54:15:56 | Entry | MultiImplementationB.cs:13:60:13:62 | {...} | | +| MultiImplementationA.cs:15:54:15:56 | Normal Exit | MultiImplementationA.cs:15:54:15:56 | Exit | | +| MultiImplementationA.cs:15:58:15:60 | {...} | MultiImplementationA.cs:15:54:15:56 | Normal Exit | | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationA.cs:17:5:19:5 | {...} | | +| MultiImplementationA.cs:16:17:16:18 | Entry | MultiImplementationB.cs:15:5:17:5 | {...} | | +| MultiImplementationA.cs:16:17:16:18 | Normal Exit | MultiImplementationA.cs:16:17:16:18 | Exit | | +| MultiImplementationA.cs:17:5:19:5 | After {...} | MultiImplementationA.cs:16:17:16:18 | Normal Exit | | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:18:9:18:22 | M2(...) | | -| MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | | -| 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: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:18:9:18:22 | Entry | MultiImplementationA.cs:18:21:18:21 | 0 | | +| MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:17:5:19:5 | After {...} | | +| MultiImplementationA.cs:18:9:18:22 | Normal Exit | MultiImplementationA.cs:18:9:18:22 | Exit | | +| MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | Normal Exit | | +| MultiImplementationA.cs:20:12:20:13 | After call to constructor Object | MultiImplementationA.cs:20:22:20:31 | {...} | | +| MultiImplementationA.cs:20:12:20:13 | After call to method | MultiImplementationA.cs:20:12:20:13 | Before call to constructor Object | | +| MultiImplementationA.cs:20:12:20:13 | Before call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | +| MultiImplementationA.cs:20:12:20:13 | Before call to method | MultiImplementationA.cs:20:12:20:13 | this access | | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationA.cs:20:12:20:13 | Before call to method | | +| MultiImplementationA.cs:20:12:20:13 | Entry | MultiImplementationB.cs:18:12:18:13 | Before call to method | | +| MultiImplementationA.cs:20:12:20:13 | Exceptional Exit | MultiImplementationA.cs:20:12:20:13 | Exit | | +| MultiImplementationA.cs:20:12:20:13 | Normal Exit | MultiImplementationA.cs:20:12:20:13 | Exit | | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | After call to constructor Object | | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | After call to method | | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | | +| MultiImplementationA.cs:20:22:20:31 | After {...} | MultiImplementationA.cs:20:12:20:13 | Normal Exit | | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | | -| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:28 | ... = ... | | -| MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | -| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | | -| MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:24 | this access | | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | access to field F | | -| MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | -| MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | -| MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | | -| MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | MultiImplementationA.cs:21:27:21:29 | {...} | | +| MultiImplementationA.cs:20:24:20:24 | After access to field F | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | +| MultiImplementationA.cs:20:24:20:24 | Before access to field F | MultiImplementationA.cs:20:24:20:24 | this access | | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:24 | After access to field F | | +| MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:24 | access to field F | | +| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:24:20:28 | After ... = ... | | +| MultiImplementationA.cs:20:24:20:28 | After ... = ... | MultiImplementationA.cs:20:24:20:29 | After ...; | | +| MultiImplementationA.cs:20:24:20:28 | Before ... = ... | MultiImplementationA.cs:20:24:20:24 | Before access to field F | | +| MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:28 | Before ... = ... | | +| MultiImplementationA.cs:20:24:20:29 | After ...; | MultiImplementationA.cs:20:22:20:31 | After {...} | | +| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:28 | ... = ... | | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | | +| MultiImplementationA.cs:21:12:21:13 | Entry | MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | | +| MultiImplementationA.cs:21:12:21:13 | Normal Exit | MultiImplementationA.cs:21:12:21:13 | Exit | | +| MultiImplementationA.cs:21:19:21:22 | After call to constructor C2 | MultiImplementationA.cs:21:27:21:29 | {...} | | +| MultiImplementationA.cs:21:19:21:22 | Before call to constructor C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | +| MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | MultiImplementationA.cs:21:19:21:22 | After call to constructor C2 | | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:19:21:22 | call to constructor C2 | | -| MultiImplementationA.cs:21:27:21:29 | {...} | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationA.cs:22:11:22:13 | {...} | | -| MultiImplementationA.cs:22:6:22:7 | enter ~C2 | MultiImplementationB.cs:20:11:20:25 | {...} | | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | MultiImplementationA.cs:22:6:22:7 | exit ~C2 | | -| MultiImplementationA.cs:22:6:22:7 | exit ~C2 (normal) | MultiImplementationA.cs:22:6:22:7 | exit ~C2 | | -| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (normal) | | -| MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:50:23:53 | null | | -| 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 (abnormal) | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | | -| MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | | -| 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: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 | 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:21:27:21:29 | {...} | MultiImplementationA.cs:21:12:21:13 | Normal Exit | | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationA.cs:22:11:22:13 | {...} | | +| MultiImplementationA.cs:22:6:22:7 | Entry | MultiImplementationB.cs:20:11:20:25 | {...} | | +| MultiImplementationA.cs:22:6:22:7 | Exceptional Exit | MultiImplementationA.cs:22:6:22:7 | Exit | | +| MultiImplementationA.cs:22:6:22:7 | Normal Exit | MultiImplementationA.cs:22:6:22:7 | Exit | | +| MultiImplementationA.cs:22:11:22:13 | {...} | MultiImplementationA.cs:22:6:22:7 | Normal Exit | | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationA.cs:23:50:23:53 | null | | +| MultiImplementationA.cs:23:28:23:35 | Entry | MultiImplementationB.cs:21:50:21:59 | Before throw ... | | +| MultiImplementationA.cs:23:28:23:35 | Exceptional Exit | MultiImplementationA.cs:23:28:23:35 | Exit | | +| MultiImplementationA.cs:23:28:23:35 | Normal Exit | MultiImplementationA.cs:23:28:23:35 | Exit | | +| MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | Normal Exit | | +| MultiImplementationA.cs:24:16:24:16 | After access to property P | MultiImplementationA.cs:24:34:24:34 | 0 | | +| MultiImplementationA.cs:24:16:24:16 | Before access to property P | MultiImplementationA.cs:24:16:24:16 | this access | | +| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:16:24:16 | After access to property P | | +| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:16:24:16 | access to property P | | +| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:32:24:34 | After ... = ... | | +| MultiImplementationA.cs:24:32:24:34 | After ... = ... | MultiImplementationA.cs:11:7:11:8 | Normal Exit | | +| MultiImplementationA.cs:24:32:24:34 | Before ... = ... | MultiImplementationA.cs:24:16:24:16 | Before access to property P | | +| MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:32:24:34 | ... = ... | | +| MultiImplementationA.cs:28:7:28:8 | After call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | | +| MultiImplementationA.cs:28:7:28:8 | After call to method | MultiImplementationA.cs:28:7:28:8 | Before call to constructor Object | | +| MultiImplementationA.cs:28:7:28:8 | Before call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | +| MultiImplementationA.cs:28:7:28:8 | Before call to method | MultiImplementationA.cs:28:7:28:8 | this access | | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationA.cs:28:7:28:8 | Before call to method | | +| MultiImplementationA.cs:28:7:28:8 | Entry | MultiImplementationB.cs:25:7:25:8 | Before call to method | | +| MultiImplementationA.cs:28:7:28:8 | Normal Exit | MultiImplementationA.cs:28:7:28:8 | Exit | | +| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | After call to constructor Object | | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | After call to method | | | 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:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | Normal Exit | | +| MultiImplementationA.cs:30:21:30:23 | Entry | MultiImplementationA.cs:30:28:30:37 | Before throw ... | | +| MultiImplementationA.cs:30:21:30:23 | Exceptional Exit | MultiImplementationA.cs:30:21:30:23 | Exit | | +| MultiImplementationA.cs:30:28:30:37 | Before throw ... | MultiImplementationA.cs:30:34:30:37 | null | | +| MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | Exceptional Exit | 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 | 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 | After call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | | +| MultiImplementationA.cs:34:15:34:16 | After call to method | MultiImplementationA.cs:34:15:34:16 | Before call to constructor Object | | +| MultiImplementationA.cs:34:15:34:16 | Before call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | +| MultiImplementationA.cs:34:15:34:16 | Before call to method | MultiImplementationA.cs:34:15:34:16 | this access | | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationA.cs:34:15:34:16 | Before call to method | | +| MultiImplementationA.cs:34:15:34:16 | Entry | MultiImplementationB.cs:30:15:30:16 | Before call to method | | +| MultiImplementationA.cs:34:15:34:16 | Normal Exit | MultiImplementationA.cs:34:15:34:16 | Exit | | +| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | After call to constructor Object | | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | After call to method | | | 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 | | -| MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | MultiImplementationA.cs:36:9:36:10 | exit M1 | | -| MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | MultiImplementationA.cs:36:9:36:10 | exit M1 | | -| MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:22:36:25 | null | | -| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | exception | +| MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | Normal Exit | | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationA.cs:36:14:36:28 | {...} | | +| MultiImplementationA.cs:36:9:36:10 | Entry | MultiImplementationB.cs:32:17:32:17 | 0 | | +| MultiImplementationA.cs:36:9:36:10 | Exceptional Exit | MultiImplementationA.cs:36:9:36:10 | Exit | | +| MultiImplementationA.cs:36:9:36:10 | Normal Exit | MultiImplementationA.cs:36:9:36:10 | Exit | | +| MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:16:36:26 | Before throw ...; | | +| MultiImplementationA.cs:36:16:36:26 | Before throw ...; | MultiImplementationA.cs:36:22:36:25 | null | | +| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | Exceptional Exit | exception | | MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:16:36:26 | throw ...; | | -| MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:14:37:28 | {...} | | -| MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | MultiImplementationA.cs:37:9:37:10 | exit M2 | | -| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:22:37:25 | null | | -| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | exception | +| MultiImplementationA.cs:37:9:37:10 | Entry | MultiImplementationA.cs:37:14:37:28 | {...} | | +| MultiImplementationA.cs:37:9:37:10 | Exceptional Exit | MultiImplementationA.cs:37:9:37:10 | Exit | | +| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:16:37:26 | Before throw ...; | | +| MultiImplementationA.cs:37:16:37:26 | Before throw ...; | MultiImplementationA.cs:37:22:37:25 | null | | +| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | Exceptional Exit | 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 | After call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | | +| MultiImplementationB.cs:1:7:1:8 | After call to method | MultiImplementationB.cs:1:7:1:8 | Before call to constructor Object | | +| MultiImplementationB.cs:1:7:1:8 | Before call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | | +| MultiImplementationB.cs:1:7:1:8 | Before call to method | MultiImplementationB.cs:1:7:1:8 | this access | | +| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | After call to constructor Object | | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | After call to method | | | 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 | | -| MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | return | +| MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationA.cs:4:7:4:8 | Normal Exit | | +| MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | Normal Exit | | +| MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:27:4:35 | Before return ...; | | +| MultiImplementationB.cs:4:27:4:35 | Before return ...; | MultiImplementationB.cs:4:34:4:34 | 1 | | +| MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationA.cs:7:21:7:23 | Normal Exit | return | | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:27:4:35 | return ...; | | -| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | | -| MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | | -| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:20 | ... = ... | | -| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:20:11:20 | 1 | | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | access to field F | | -| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | exception | +| MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | Normal Exit | | +| MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | Normal Exit | | +| MultiImplementationB.cs:11:16:11:16 | After access to field F | MultiImplementationB.cs:11:20:11:20 | 1 | | +| MultiImplementationB.cs:11:16:11:16 | Before access to field F | MultiImplementationB.cs:11:16:11:16 | this access | | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:16 | After access to field F | | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | access to field F | | +| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:16:11:20 | After ... = ... | | +| MultiImplementationB.cs:11:16:11:20 | After ... = ... | MultiImplementationB.cs:22:32:22:34 | Before ... = ... | | +| MultiImplementationB.cs:11:16:11:20 | Before ... = ... | MultiImplementationB.cs:11:16:11:16 | Before access to field F | | +| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:20 | ... = ... | | +| MultiImplementationB.cs:12:31:12:40 | Before throw ... | MultiImplementationB.cs:12:37:12:40 | null | | +| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | Exceptional Exit | exception | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:31:12:40 | throw ... | | -| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:48:13:51 | null | | -| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | exception | +| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:42:13:52 | Before throw ...; | | +| MultiImplementationB.cs:13:42:13:52 | Before throw ...; | MultiImplementationB.cs:13:48:13:51 | null | | +| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | Exceptional Exit | exception | | MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:42:13:52 | throw ...; | | -| MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | | +| MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationA.cs:15:54:15:56 | Normal Exit | | +| MultiImplementationB.cs:15:5:17:5 | After {...} | MultiImplementationA.cs:16:17:16:18 | Normal Exit | | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | | -| MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | | -| MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:27:16:30 | null | | -| MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | | -| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | exception | +| MultiImplementationB.cs:16:9:16:31 | Entry | MultiImplementationB.cs:16:21:16:30 | Before throw ... | | +| MultiImplementationB.cs:16:9:16:31 | Exceptional Exit | MultiImplementationB.cs:16:9:16:31 | Exit | | +| MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationB.cs:15:5:17:5 | After {...} | | +| MultiImplementationB.cs:16:21:16:30 | Before throw ... | MultiImplementationB.cs:16:27:16:30 | null | | +| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | Exceptional Exit | 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: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 | After call to constructor Object | MultiImplementationB.cs:18:22:18:36 | {...} | | +| MultiImplementationB.cs:18:12:18:13 | After call to method | MultiImplementationB.cs:18:12:18:13 | Before call to constructor Object | | +| MultiImplementationB.cs:18:12:18:13 | Before call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | +| MultiImplementationB.cs:18:12:18:13 | Before call to method | MultiImplementationB.cs:18:12:18:13 | this access | | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | After call to constructor Object | | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | After call to method | | | 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:22:18:36 | {...} | MultiImplementationB.cs:18:24:18:34 | Before throw ...; | | +| MultiImplementationB.cs:18:24:18:34 | Before throw ...; | MultiImplementationB.cs:18:30:18:33 | null | | +| MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | Exceptional Exit | exception | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | | -| MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:27:19:29 | {...} | | +| MultiImplementationB.cs:19:19:19:22 | After call to constructor C2 | MultiImplementationB.cs:19:27:19:29 | {...} | | +| MultiImplementationB.cs:19:19:19:22 | Before call to constructor C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | +| MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:19:19:22 | After call to constructor C2 | | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | | -| MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | | -| MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:19:20:22 | null | | -| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | exception | +| MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationA.cs:21:12:21:13 | Normal Exit | | +| MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:13:20:23 | Before throw ...; | | +| MultiImplementationB.cs:20:13:20:23 | Before throw ...; | MultiImplementationB.cs:20:19:20:22 | null | | +| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | Exceptional Exit | exception | | MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationB.cs:20:13:20:23 | throw ...; | | -| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | exception | +| MultiImplementationB.cs:21:50:21:59 | Before throw ... | MultiImplementationB.cs:21:56:21:59 | null | | +| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | Exceptional Exit | exception | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | throw ... | | -| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:32:22:34 | ... = ... | | -| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:34:22:34 | 1 | | -| 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:22:16:22:16 | After access to property P | MultiImplementationB.cs:22:34:22:34 | 1 | | +| MultiImplementationB.cs:22:16:22:16 | Before access to property P | MultiImplementationB.cs:22:16:22:16 | this access | | +| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:16:22:16 | After access to property P | | +| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:16:22:16 | access to property P | | +| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:32:22:34 | After ... = ... | | +| MultiImplementationB.cs:22:32:22:34 | After ... = ... | MultiImplementationA.cs:11:7:11:8 | Normal Exit | | +| MultiImplementationB.cs:22:32:22:34 | Before ... = ... | MultiImplementationB.cs:22:16:22:16 | Before access to property P | | +| MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:32:22:34 | ... = ... | | +| MultiImplementationB.cs:25:7:25:8 | After call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | | +| MultiImplementationB.cs:25:7:25:8 | After call to method | MultiImplementationB.cs:25:7:25:8 | Before call to constructor Object | | +| MultiImplementationB.cs:25:7:25:8 | Before call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | | +| MultiImplementationB.cs:25:7:25:8 | Before call to method | MultiImplementationB.cs:25:7:25:8 | this access | | +| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | After call to constructor Object | | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | After call to method | | | 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:25:7:25:8 | {...} | MultiImplementationA.cs:28:7:28:8 | Normal Exit | | +| MultiImplementationB.cs:30:15:30:16 | After call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | | +| MultiImplementationB.cs:30:15:30:16 | After call to method | MultiImplementationB.cs:30:15:30:16 | Before call to constructor Object | | +| MultiImplementationB.cs:30:15:30:16 | Before call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | | +| MultiImplementationB.cs:30:15:30:16 | Before call to method | MultiImplementationB.cs:30:15:30:16 | this access | | +| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | After call to constructor Object | | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | After call to method | | | 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 | 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 | | +| MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationA.cs:34:15:34:16 | Normal Exit | | +| MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | Normal Exit | | +| NullCoalescing.cs:1:7:1:20 | After call to constructor Object | NullCoalescing.cs:1:7:1:20 | {...} | | +| NullCoalescing.cs:1:7:1:20 | After call to method | NullCoalescing.cs:1:7:1:20 | Before call to constructor Object | | +| NullCoalescing.cs:1:7:1:20 | Before call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to constructor Object | | +| NullCoalescing.cs:1:7:1:20 | Before call to method | NullCoalescing.cs:1:7:1:20 | this access | | +| NullCoalescing.cs:1:7:1:20 | Entry | NullCoalescing.cs:1:7:1:20 | Before call to method | | +| NullCoalescing.cs:1:7:1:20 | Normal Exit | NullCoalescing.cs:1:7:1:20 | Exit | | +| NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | After call to constructor Object | | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | After call to method | | | 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 | | -| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:28 | ... ?? ... | non-null | -| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:28:3:28 | 0 | null | -| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | | -| NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:23:3:28 | ... ?? ... | | -| NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:25:5:25 | access to parameter b | | -| NullCoalescing.cs:5:9:5:10 | exit M2 (normal) | NullCoalescing.cs:5:9:5:10 | exit M2 | | -| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | exit M2 (normal) | | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | false | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | true | -| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:30:5:34 | false | null | -| NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | NullCoalescing.cs:5:43:5:43 | 1 | false | -| NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | NullCoalescing.cs:5:39:5:39 | 0 | true | -| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:25:5:34 | [false] ... ?? ... | false | -| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | | -| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | | -| NullCoalescing.cs:7:12:7:13 | enter M3 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | | -| NullCoalescing.cs:7:12:7:13 | exit M3 (normal) | NullCoalescing.cs:7:12:7:13 | exit M3 | | -| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:53 | ... ?? ... | non-null | -| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | null | -| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:12:7:13 | exit M3 (normal) | | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:53 | ... ?? ... | non-null | -| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:52:7:53 | "" | null | -| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:53 | ... ?? ... | | -| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:46:7:53 | ... ?? ... | | -| NullCoalescing.cs:9:12:9:13 | enter M4 | NullCoalescing.cs:9:37:9:37 | access to parameter b | | -| NullCoalescing.cs:9:12:9:13 | exit M4 (normal) | NullCoalescing.cs:9:12:9:13 | exit M4 | | -| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:12:9:13 | exit M4 (normal) | | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:41:9:41 | access to parameter s | true | -| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:45:9:45 | access to parameter s | false | -| NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | NullCoalescing.cs:9:36:9:58 | ... ?? ... | non-null | -| NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | NullCoalescing.cs:9:51:9:52 | "" | null | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | non-null | -| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | null | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:37:9:45 | [non-null] ... ? ... : ... | non-null | -| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:37:9:45 | [null] ... ? ... : ... | null | -| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:58 | ... ?? ... | non-null | -| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:36:9:58 | ... ?? ... | | -| NullCoalescing.cs:11:9:11:10 | enter M5 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | | -| NullCoalescing.cs:11:9:11:10 | exit M5 (normal) | NullCoalescing.cs:11:9:11:10 | exit M5 | | -| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | exit M5 (normal) | | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | false | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | true | -| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | null | -| NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | NullCoalescing.cs:11:68:11:68 | 1 | false | -| NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | NullCoalescing.cs:11:64:11:64 | 0 | true | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | false | -| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | true | -| NullCoalescing.cs:11:51:11:58 | [false] ... && ... | NullCoalescing.cs:11:44:11:59 | [false] ... ?? ... | false | -| NullCoalescing.cs:11:51:11:58 | [true] ... && ... | NullCoalescing.cs:11:44:11:59 | [true] ... ?? ... | true | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:58 | [false] ... && ... | false | -| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:51:11:58 | [true] ... && ... | true | -| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | | -| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | | -| NullCoalescing.cs:13:10:13:11 | enter M6 | NullCoalescing.cs:14:5:18:5 | {...} | | -| NullCoalescing.cs:13:10:13:11 | exit M6 (normal) | NullCoalescing.cs:13:10:13:11 | exit M6 | | +| NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | Normal Exit | | +| NullCoalescing.cs:3:9:3:10 | Entry | NullCoalescing.cs:3:23:3:28 | ... ?? ... | | +| NullCoalescing.cs:3:9:3:10 | Normal Exit | NullCoalescing.cs:3:9:3:10 | Exit | | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | NullCoalescing.cs:3:23:3:28 | After ... ?? ... | | +| NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | NullCoalescing.cs:3:28:3:28 | 0 | | +| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | After access to parameter i [non-null] | non-null | +| NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | After access to parameter i [null] | null | +| NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:23 | access to parameter i | | +| NullCoalescing.cs:3:23:3:28 | After ... ?? ... | NullCoalescing.cs:3:9:3:10 | Normal Exit | | +| NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:23:3:28 | After ... ?? ... | | +| NullCoalescing.cs:5:9:5:10 | Entry | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | | +| NullCoalescing.cs:5:9:5:10 | Normal Exit | NullCoalescing.cs:5:9:5:10 | Exit | | +| NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | NullCoalescing.cs:5:25:5:34 | ... ?? ... | | +| NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | NullCoalescing.cs:5:9:5:10 | Normal Exit | | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | false | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | true | +| NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | NullCoalescing.cs:5:30:5:34 | false | | +| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | After access to parameter b [non-null] | non-null | +| NullCoalescing.cs:5:25:5:25 | access to parameter b | NullCoalescing.cs:5:25:5:25 | After access to parameter b [null] | null | +| NullCoalescing.cs:5:25:5:34 | ... ?? ... | NullCoalescing.cs:5:25:5:25 | access to parameter b | | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | NullCoalescing.cs:5:43:5:43 | 1 | | +| NullCoalescing.cs:5:25:5:34 | After ... ?? ... [true] | NullCoalescing.cs:5:39:5:39 | 0 | | +| NullCoalescing.cs:5:30:5:34 | After false [false] | NullCoalescing.cs:5:25:5:34 | After ... ?? ... [false] | false | +| NullCoalescing.cs:5:30:5:34 | false | NullCoalescing.cs:5:30:5:34 | After false [false] | false | +| NullCoalescing.cs:5:39:5:39 | 0 | NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | | +| NullCoalescing.cs:5:43:5:43 | 1 | NullCoalescing.cs:5:24:5:43 | After ... ? ... : ... | | +| NullCoalescing.cs:7:12:7:13 | Entry | NullCoalescing.cs:7:40:7:53 | ... ?? ... | | +| NullCoalescing.cs:7:12:7:13 | Normal Exit | NullCoalescing.cs:7:12:7:13 | Exit | | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | NullCoalescing.cs:7:40:7:53 | After ... ?? ... | | +| NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | NullCoalescing.cs:7:46:7:53 | ... ?? ... | | +| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [non-null] | non-null | +| NullCoalescing.cs:7:40:7:41 | access to parameter s1 | NullCoalescing.cs:7:40:7:41 | After access to parameter s1 [null] | null | +| NullCoalescing.cs:7:40:7:53 | ... ?? ... | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | | +| NullCoalescing.cs:7:40:7:53 | After ... ?? ... | NullCoalescing.cs:7:12:7:13 | Normal Exit | | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | | +| NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | NullCoalescing.cs:7:52:7:53 | "" | | +| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [non-null] | non-null | +| NullCoalescing.cs:7:46:7:47 | access to parameter s2 | NullCoalescing.cs:7:46:7:47 | After access to parameter s2 [null] | null | +| NullCoalescing.cs:7:46:7:53 | ... ?? ... | NullCoalescing.cs:7:46:7:47 | access to parameter s2 | | +| NullCoalescing.cs:7:46:7:53 | After ... ?? ... | NullCoalescing.cs:7:40:7:53 | After ... ?? ... | | +| NullCoalescing.cs:7:52:7:53 | "" | NullCoalescing.cs:7:46:7:53 | After ... ?? ... | | +| NullCoalescing.cs:9:12:9:13 | Entry | NullCoalescing.cs:9:36:9:58 | ... ?? ... | | +| NullCoalescing.cs:9:12:9:13 | Normal Exit | NullCoalescing.cs:9:12:9:13 | Exit | | +| NullCoalescing.cs:9:36:9:58 | ... ?? ... | NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | | +| NullCoalescing.cs:9:36:9:58 | After ... ?? ... | NullCoalescing.cs:9:12:9:13 | Normal Exit | | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | NullCoalescing.cs:9:45:9:45 | access to parameter s | | +| NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | NullCoalescing.cs:9:41:9:41 | access to parameter s | | +| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | After access to parameter b [false] | false | +| NullCoalescing.cs:9:37:9:37 | access to parameter b | NullCoalescing.cs:9:37:9:37 | After access to parameter b [true] | true | +| NullCoalescing.cs:9:37:9:45 | ... ? ... : ... | NullCoalescing.cs:9:37:9:37 | access to parameter b | | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | NullCoalescing.cs:9:36:9:58 | After ... ?? ... | | +| NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | NullCoalescing.cs:9:51:9:58 | ... ?? ... | | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | non-null | +| NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | null | +| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | After access to parameter s [non-null] | non-null | +| NullCoalescing.cs:9:41:9:41 | access to parameter s | NullCoalescing.cs:9:41:9:41 | After access to parameter s [null] | null | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [non-null] | non-null | +| NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | NullCoalescing.cs:9:37:9:45 | After ... ? ... : ... [null] | null | +| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | After access to parameter s [non-null] | non-null | +| NullCoalescing.cs:9:45:9:45 | access to parameter s | NullCoalescing.cs:9:45:9:45 | After access to parameter s [null] | null | +| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | After "" [non-null] | non-null | +| NullCoalescing.cs:9:51:9:52 | "" | NullCoalescing.cs:9:51:9:52 | After "" [null] | null | +| NullCoalescing.cs:9:51:9:52 | After "" [non-null] | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | | +| NullCoalescing.cs:9:51:9:52 | After "" [null] | NullCoalescing.cs:9:57:9:58 | "" | | +| NullCoalescing.cs:9:51:9:58 | ... ?? ... | NullCoalescing.cs:9:51:9:52 | "" | | +| NullCoalescing.cs:9:51:9:58 | After ... ?? ... | NullCoalescing.cs:9:36:9:58 | After ... ?? ... | | +| NullCoalescing.cs:9:57:9:58 | "" | NullCoalescing.cs:9:51:9:58 | After ... ?? ... | | +| NullCoalescing.cs:11:9:11:10 | Entry | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | | +| NullCoalescing.cs:11:9:11:10 | Normal Exit | NullCoalescing.cs:11:9:11:10 | Exit | | +| NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | NullCoalescing.cs:11:44:11:59 | ... ?? ... | | +| NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | NullCoalescing.cs:11:9:11:10 | Normal Exit | | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | false | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | true | +| NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | NullCoalescing.cs:11:51:11:58 | ... && ... | | +| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [non-null] | non-null | +| NullCoalescing.cs:11:44:11:45 | access to parameter b1 | NullCoalescing.cs:11:44:11:45 | After access to parameter b1 [null] | null | +| NullCoalescing.cs:11:44:11:59 | ... ?? ... | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | NullCoalescing.cs:11:68:11:68 | 1 | | +| NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | NullCoalescing.cs:11:64:11:64 | 0 | | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | false | +| NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | | +| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [false] | false | +| NullCoalescing.cs:11:51:11:52 | access to parameter b2 | NullCoalescing.cs:11:51:11:52 | After access to parameter b2 [true] | true | +| NullCoalescing.cs:11:51:11:58 | ... && ... | NullCoalescing.cs:11:51:11:52 | access to parameter b2 | | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [false] | false | +| NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | NullCoalescing.cs:11:44:11:59 | After ... ?? ... [true] | true | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | NullCoalescing.cs:11:51:11:58 | After ... && ... [false] | false | +| NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | NullCoalescing.cs:11:51:11:58 | After ... && ... [true] | true | +| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | false | +| NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | true | +| NullCoalescing.cs:11:64:11:64 | 0 | NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | | +| NullCoalescing.cs:11:68:11:68 | 1 | NullCoalescing.cs:11:43:11:68 | After ... ? ... : ... | | +| NullCoalescing.cs:13:10:13:11 | Entry | NullCoalescing.cs:14:5:18:5 | {...} | | +| NullCoalescing.cs:13:10:13:11 | Normal Exit | NullCoalescing.cs:13:10:13:11 | Exit | | +| NullCoalescing.cs:14:5:18:5 | After {...} | NullCoalescing.cs:13:10:13:11 | Normal Exit | | | NullCoalescing.cs:14:5:18:5 | {...} | NullCoalescing.cs:15:9:15:32 | ... ...; | | -| NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:15:23:15:26 | null | | -| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:16:9:16:26 | ... ...; | | -| NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:31:15:31 | 0 | null | -| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | | +| NullCoalescing.cs:15:9:15:32 | ... ...; | NullCoalescing.cs:15:13:15:31 | Before Int32 j = ... | | +| NullCoalescing.cs:15:9:15:32 | After ... ...; | NullCoalescing.cs:16:9:16:26 | ... ...; | | +| NullCoalescing.cs:15:13:15:13 | access to local variable j | NullCoalescing.cs:15:17:15:31 | ... ?? ... | | +| NullCoalescing.cs:15:13:15:31 | After Int32 j = ... | NullCoalescing.cs:15:9:15:32 | After ... ...; | | +| NullCoalescing.cs:15:13:15:31 | Before Int32 j = ... | NullCoalescing.cs:15:13:15:13 | access to local variable j | | +| NullCoalescing.cs:15:13:15:31 | Int32 j = ... | NullCoalescing.cs:15:13:15:31 | After Int32 j = ... | | +| NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | non-null | +| NullCoalescing.cs:15:17:15:26 | (...) ... | NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | null | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [non-null] | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | | +| NullCoalescing.cs:15:17:15:26 | After (...) ... [null] | NullCoalescing.cs:15:31:15:31 | 0 | | +| NullCoalescing.cs:15:17:15:26 | Before (...) ... | NullCoalescing.cs:15:23:15:26 | null | | +| NullCoalescing.cs:15:17:15:31 | ... ?? ... | NullCoalescing.cs:15:17:15:26 | Before (...) ... | | +| NullCoalescing.cs:15:17:15:31 | After ... ?? ... | NullCoalescing.cs:15:13:15:31 | Int32 j = ... | | | NullCoalescing.cs:15:23:15:26 | null | NullCoalescing.cs:15:17:15:26 | (...) ... | | -| NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:15:17:15:31 | ... ?? ... | | -| NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:16:17:16:18 | "" | | -| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:17:9:17:25 | ...; | | -| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:25 | ... ?? ... | non-null | -| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:13:16:25 | String s = ... | | -| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:13:10:13:11 | exit M6 (normal) | | -| NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:17:19:17:19 | access to parameter i | | -| 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:15:31:15:31 | 0 | NullCoalescing.cs:15:17:15:31 | After ... ?? ... | | +| NullCoalescing.cs:16:9:16:26 | ... ...; | NullCoalescing.cs:16:13:16:25 | Before String s = ... | | +| NullCoalescing.cs:16:9:16:26 | After ... ...; | NullCoalescing.cs:17:9:17:25 | ...; | | +| NullCoalescing.cs:16:13:16:13 | access to local variable s | NullCoalescing.cs:16:17:16:25 | ... ?? ... | | +| NullCoalescing.cs:16:13:16:25 | After String s = ... | NullCoalescing.cs:16:9:16:26 | After ... ...; | | +| NullCoalescing.cs:16:13:16:25 | Before String s = ... | NullCoalescing.cs:16:13:16:13 | access to local variable s | | +| NullCoalescing.cs:16:13:16:25 | String s = ... | NullCoalescing.cs:16:13:16:25 | After String s = ... | | +| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:18 | After "" [non-null] | non-null | +| NullCoalescing.cs:16:17:16:18 | "" | NullCoalescing.cs:16:17:16:18 | After "" [null] | null | +| NullCoalescing.cs:16:17:16:18 | After "" [non-null] | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | | +| NullCoalescing.cs:16:17:16:18 | After "" [null] | NullCoalescing.cs:16:23:16:25 | "a" | | +| NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:18 | "" | | +| NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:16:13:16:25 | String s = ... | | +| NullCoalescing.cs:16:23:16:25 | "a" | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | | +| NullCoalescing.cs:17:9:17:9 | access to local variable j | NullCoalescing.cs:17:13:17:24 | ... ?? ... | | +| NullCoalescing.cs:17:9:17:24 | ... = ... | NullCoalescing.cs:17:9:17:24 | After ... = ... | | +| NullCoalescing.cs:17:9:17:24 | After ... = ... | NullCoalescing.cs:17:9:17:25 | After ...; | | +| NullCoalescing.cs:17:9:17:24 | Before ... = ... | NullCoalescing.cs:17:9:17:9 | access to local variable j | | +| NullCoalescing.cs:17:9:17:25 | ...; | NullCoalescing.cs:17:9:17:24 | Before ... = ... | | +| NullCoalescing.cs:17:9:17:25 | After ...; | NullCoalescing.cs:14:5:18:5 | After {...} | | +| NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | non-null | +| NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | null | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | | +| NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | NullCoalescing.cs:17:24:17:24 | 1 | | +| NullCoalescing.cs:17:13:17:19 | Before (...) ... | NullCoalescing.cs:17:19:17:19 | access to parameter i | | +| NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | Before (...) ... | | +| NullCoalescing.cs:17:13:17:24 | After ... ?? ... | NullCoalescing.cs:17:9:17:24 | ... = ... | | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:13:17:19 | (...) ... | | -| 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 | | +| NullCoalescing.cs:17:24:17:24 | 1 | NullCoalescing.cs:17:13:17:24 | After ... ?? ... | | +| PartialImplementationA.cs:1:15:1:21 | Entry | PartialImplementationB.cs:3:16:3:20 | Before ... = ... | | +| PartialImplementationA.cs:1:15:1:21 | Normal Exit | PartialImplementationA.cs:1:15:1:21 | Exit | | +| PartialImplementationA.cs:3:12:3:18 | After call to constructor Object | PartialImplementationA.cs:3:27:3:29 | {...} | | +| PartialImplementationA.cs:3:12:3:18 | After call to method | PartialImplementationA.cs:3:12:3:18 | Before call to constructor Object | | +| PartialImplementationA.cs:3:12:3:18 | Before call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | | +| PartialImplementationA.cs:3:12:3:18 | Before call to method | PartialImplementationA.cs:3:12:3:18 | this access | | +| PartialImplementationA.cs:3:12:3:18 | Entry | PartialImplementationA.cs:3:12:3:18 | Before call to method | | +| PartialImplementationA.cs:3:12:3:18 | Normal Exit | PartialImplementationA.cs:3:12:3:18 | Exit | | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | After call to constructor Object | | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | After call to method | | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | | -| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | | -| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:20 | ... = ... | | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | access to field F | | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | | -| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | | -| PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | exit Partial | | +| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | Normal Exit | | +| PartialImplementationB.cs:3:16:3:16 | After access to field F | PartialImplementationB.cs:3:20:3:20 | 0 | | +| PartialImplementationB.cs:3:16:3:16 | Before access to field F | PartialImplementationB.cs:3:16:3:16 | this access | | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:16 | After access to field F | | +| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:16:3:16 | access to field F | | +| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:20 | After ... = ... | | +| PartialImplementationB.cs:3:16:3:20 | After ... = ... | PartialImplementationB.cs:5:32:5:34 | Before ... = ... | | +| PartialImplementationB.cs:3:16:3:20 | Before ... = ... | PartialImplementationB.cs:3:16:3:16 | Before access to field F | | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | | +| PartialImplementationB.cs:4:12:4:18 | After call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | | +| PartialImplementationB.cs:4:12:4:18 | After call to method | PartialImplementationB.cs:4:12:4:18 | Before call to constructor Object | | +| PartialImplementationB.cs:4:12:4:18 | Before call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | +| PartialImplementationB.cs:4:12:4:18 | Before call to method | PartialImplementationB.cs:4:12:4:18 | this access | | +| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Before call to method | | +| PartialImplementationB.cs:4:12:4:18 | Normal Exit | PartialImplementationB.cs:4:12:4:18 | Exit | | +| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | After call to constructor Object | | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | After call to method | | | 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 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | | -| 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 | 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 | | +| PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | Normal Exit | | +| PartialImplementationB.cs:5:16:5:16 | After access to property P | PartialImplementationB.cs:5:34:5:34 | 0 | | +| PartialImplementationB.cs:5:16:5:16 | Before access to property P | PartialImplementationB.cs:5:16:5:16 | this access | | +| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:16:5:16 | After access to property P | | +| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:16:5:16 | access to property P | | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:32:5:34 | After ... = ... | | +| PartialImplementationB.cs:5:32:5:34 | After ... = ... | PartialImplementationA.cs:1:15:1:21 | Normal Exit | | +| PartialImplementationB.cs:5:32:5:34 | Before ... = ... | PartialImplementationB.cs:5:16:5:16 | Before access to property P | | +| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:32:5:34 | ... = ... | | +| Patterns.cs:3:7:3:14 | After call to constructor Object | Patterns.cs:3:7:3:14 | {...} | | +| Patterns.cs:3:7:3:14 | After call to method | Patterns.cs:3:7:3:14 | Before call to constructor Object | | +| Patterns.cs:3:7:3:14 | Before call to constructor Object | Patterns.cs:3:7:3:14 | call to constructor Object | | +| Patterns.cs:3:7:3:14 | Before call to method | Patterns.cs:3:7:3:14 | this access | | +| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Before call to method | | +| Patterns.cs:3:7:3:14 | Normal Exit | Patterns.cs:3:7:3:14 | Exit | | +| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | After call to constructor Object | | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | After call to method | | | 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 | | +| Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | Normal Exit | | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:6:5:43:5 | {...} | | +| Patterns.cs:5:10:5:11 | Normal Exit | Patterns.cs:5:10:5:11 | Exit | | +| Patterns.cs:6:5:43:5 | After {...} | Patterns.cs:5:10:5:11 | Normal Exit | | | Patterns.cs:6:5:43:5 | {...} | Patterns.cs:7:9:7:24 | ... ...; | | -| Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:20:7:23 | null | | -| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:8:9:18:9 | if (...) ... | | +| Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:16:7:23 | Before Object o = ... | | +| Patterns.cs:7:9:7:24 | After ... ...; | Patterns.cs:8:9:18:9 | if (...) ... | | +| Patterns.cs:7:16:7:16 | access to local variable o | Patterns.cs:7:20:7:23 | null | | +| Patterns.cs:7:16:7:23 | After Object o = ... | Patterns.cs:7:9:7:24 | After ... ...; | | +| Patterns.cs:7:16:7:23 | Before Object o = ... | Patterns.cs:7:16:7:16 | access to local variable o | | +| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:16:7:23 | After Object o = ... | | | Patterns.cs:7:20:7:23 | null | Patterns.cs:7:16:7:23 | Object o = ... | | -| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:8:13:8:13 | access to local variable o | | -| Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:18:8:23 | Int32 i1 | | -| Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:12:14:18:9 | if (...) ... | false | -| Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:9:9:11:9 | {...} | true | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | [false] ... is ... | no-match | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | [true] ... is ... | match | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:20:9:38:9 | switch (...) {...} | | +| Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:8:13:8:23 | Before ... is ... | | +| Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:13:8:23 | ... is ... | | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | false | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | true | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:14:18:9 | if (...) ... | | +| Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:9:9:11:9 | {...} | | +| Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:8:13:8:13 | access to local variable o | | +| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:18:8:23 | Int32 i1 | | +| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | After ... is ... [true] | true | +| Patterns.cs:9:9:11:9 | After {...} | Patterns.cs:8:9:18:9 | After if (...) ... | | | Patterns.cs:9:9:11:9 | {...} | Patterns.cs:10:13:10:43 | ...; | | -| Patterns.cs:10:13:10:42 | call to method WriteLine | Patterns.cs:20:9:38:9 | switch (...) {...} | | -| Patterns.cs:10:13:10:43 | ...; | Patterns.cs:10:33:10:36 | "int " | | -| Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:10:13:10:42 | call to method WriteLine | | -| Patterns.cs:10:33:10:36 | "int " | Patterns.cs:10:38:10:39 | access to local variable i1 | | -| Patterns.cs:10:37:10:40 | {...} | Patterns.cs:10:31:10:41 | $"..." | | +| Patterns.cs:10:13:10:42 | After call to method WriteLine | Patterns.cs:10:13:10:43 | After ...; | | +| Patterns.cs:10:13:10:42 | Before call to method WriteLine | Patterns.cs:10:31:10:41 | Before $"..." | | +| Patterns.cs:10:13:10:42 | call to method WriteLine | Patterns.cs:10:13:10:42 | After call to method WriteLine | | +| Patterns.cs:10:13:10:43 | ...; | Patterns.cs:10:13:10:42 | Before call to method WriteLine | | +| Patterns.cs:10:13:10:43 | After ...; | Patterns.cs:9:9:11:9 | After {...} | | +| Patterns.cs:10:31:10:41 | $"..." | Patterns.cs:10:31:10:41 | After $"..." | | +| Patterns.cs:10:31:10:41 | After $"..." | Patterns.cs:10:13:10:42 | call to method WriteLine | | +| Patterns.cs:10:31:10:41 | Before $"..." | Patterns.cs:10:33:10:36 | "int " | | +| Patterns.cs:10:33:10:36 | "int " | Patterns.cs:10:37:10:40 | Before {...} | | +| Patterns.cs:10:37:10:40 | After {...} | Patterns.cs:10:31:10:41 | $"..." | | +| Patterns.cs:10:37:10:40 | Before {...} | Patterns.cs:10:38:10:39 | access to local variable i1 | | +| Patterns.cs:10:37:10:40 | {...} | Patterns.cs:10:37:10:40 | After {...} | | | Patterns.cs:10:38:10:39 | access to local variable i1 | Patterns.cs:10:37:10:40 | {...} | | -| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:18 | access to local variable o | | -| Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:23:12:31 | String s1 | | -| Patterns.cs:12:18:12:31 | [false] ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | false | -| Patterns.cs:12:18:12:31 | [true] ... is ... | Patterns.cs:13:9:15:9 | {...} | true | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | [false] ... is ... | no-match | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | [true] ... is ... | match | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:8:9:18:9 | After if (...) ... | | +| Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | Before ... is ... | | +| Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:18:12:31 | ... is ... | | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | true | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:14:18:9 | if (...) ... | | +| Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:13:9:15:9 | {...} | | +| Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:12:18:12:18 | access to local variable o | | +| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:23:12:31 | String s1 | | +| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | After ... is ... [true] | true | +| Patterns.cs:13:9:15:9 | After {...} | Patterns.cs:12:14:18:9 | After if (...) ... | | | Patterns.cs:13:9:15:9 | {...} | Patterns.cs:14:13:14:46 | ...; | | -| Patterns.cs:14:13:14:45 | call to method WriteLine | Patterns.cs:20:9:38:9 | switch (...) {...} | | -| Patterns.cs:14:13:14:46 | ...; | Patterns.cs:14:33:14:39 | "string " | | -| Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:14:13:14:45 | call to method WriteLine | | -| Patterns.cs:14:33:14:39 | "string " | Patterns.cs:14:41:14:42 | access to local variable s1 | | -| Patterns.cs:14:40:14:43 | {...} | Patterns.cs:14:31:14:44 | $"..." | | +| Patterns.cs:14:13:14:45 | After call to method WriteLine | Patterns.cs:14:13:14:46 | After ...; | | +| Patterns.cs:14:13:14:45 | Before call to method WriteLine | Patterns.cs:14:31:14:44 | Before $"..." | | +| Patterns.cs:14:13:14:45 | call to method WriteLine | Patterns.cs:14:13:14:45 | After call to method WriteLine | | +| Patterns.cs:14:13:14:46 | ...; | Patterns.cs:14:13:14:45 | Before call to method WriteLine | | +| Patterns.cs:14:13:14:46 | After ...; | Patterns.cs:13:9:15:9 | After {...} | | +| Patterns.cs:14:31:14:44 | $"..." | Patterns.cs:14:31:14:44 | After $"..." | | +| Patterns.cs:14:31:14:44 | After $"..." | Patterns.cs:14:13:14:45 | call to method WriteLine | | +| Patterns.cs:14:31:14:44 | Before $"..." | Patterns.cs:14:33:14:39 | "string " | | +| Patterns.cs:14:33:14:39 | "string " | Patterns.cs:14:40:14:43 | Before {...} | | +| Patterns.cs:14:40:14:43 | After {...} | Patterns.cs:14:31:14:44 | $"..." | | +| Patterns.cs:14:40:14:43 | Before {...} | Patterns.cs:14:41:14:42 | access to local variable s1 | | +| Patterns.cs:14:40:14:43 | {...} | Patterns.cs:14:40:14:43 | After {...} | | | Patterns.cs:14:41:14:42 | access to local variable s1 | Patterns.cs:14:40:14:43 | {...} | | -| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:18 | access to local variable o | | -| Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:23:16:28 | Object v1 | | -| Patterns.cs:16:18:16:28 | [false] ... is ... | Patterns.cs:20:9:38:9 | switch (...) {...} | false | -| Patterns.cs:16:18:16:28 | [true] ... is ... | Patterns.cs:17:9:18:9 | {...} | true | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | [false] ... is ... | no-match | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | [true] ... is ... | match | -| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:20:9:38:9 | switch (...) {...} | | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | | +| Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | Before ... is ... | | +| Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:18:16:28 | ... is ... | | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | true | +| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | | +| Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:17:9:18:9 | {...} | | +| Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:16:18:16:18 | access to local variable o | | +| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:23:16:28 | Object v1 | | +| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | After ... is ... [true] | true | +| Patterns.cs:17:9:18:9 | {...} | Patterns.cs:16:14:18:9 | After if (...) ... | | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | | | Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:20:17:20:17 | access to local variable o | | | Patterns.cs:20:17:20:17 | access to local variable o | Patterns.cs:22:13:22:23 | case ...: | | -| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:18:22:22 | "xyz" | | -| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:23:17:23:22 | break; | match | -| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:24:13:24:36 | case ...: | no-match | -| Patterns.cs:23:17:23:22 | break; | Patterns.cs:40:9:42:9 | switch (...) {...} | break | -| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:18:24:23 | Int32 i2 | | -| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:30:24:31 | access to local variable i2 | match | -| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:27:13:27:24 | case ...: | no-match | +| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:22:18:22:22 | "xyz" | | +| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | case ...: | | +| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:13:22:23 | After case ...: [match] | match | +| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:13:22:23 | After case ...: [no-match] | no-match | +| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:23:17:23:22 | Before break; | | +| Patterns.cs:23:17:23:22 | Before break; | Patterns.cs:23:17:23:22 | break; | | +| Patterns.cs:23:17:23:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break | +| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:18:24:23 | Int32 i2 | | +| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:27:13:27:24 | case ...: | | +| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [match] | match | +| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [no-match] | no-match | +| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:30:24:35 | Before ... > ... | | | Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:35:24:35 | 0 | | -| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:25:17:25:52 | ...; | true | -| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:27:13:27:24 | case ...: | false | +| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | false | +| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | true | +| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:27:13:27:24 | case ...: | | +| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:25:17:25:52 | ...; | | +| Patterns.cs:24:30:24:35 | Before ... > ... | Patterns.cs:24:30:24:31 | access to local variable i2 | | | Patterns.cs:24:35:24:35 | 0 | Patterns.cs:24:30:24:35 | ... > ... | | -| Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:26:17:26:22 | break; | | -| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:25:37:25:45 | "positive " | | -| Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:25:17:25:51 | call to method WriteLine | | -| Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:25:47:25:48 | access to local variable i2 | | -| Patterns.cs:25:46:25:49 | {...} | Patterns.cs:25:35:25:50 | $"..." | | +| Patterns.cs:25:17:25:51 | After call to method WriteLine | Patterns.cs:25:17:25:52 | After ...; | | +| Patterns.cs:25:17:25:51 | Before call to method WriteLine | Patterns.cs:25:35:25:50 | Before $"..." | | +| Patterns.cs:25:17:25:51 | call to method WriteLine | Patterns.cs:25:17:25:51 | After call to method WriteLine | | +| Patterns.cs:25:17:25:52 | ...; | Patterns.cs:25:17:25:51 | Before call to method WriteLine | | +| Patterns.cs:25:17:25:52 | After ...; | Patterns.cs:26:17:26:22 | Before break; | | +| Patterns.cs:25:35:25:50 | $"..." | Patterns.cs:25:35:25:50 | After $"..." | | +| Patterns.cs:25:35:25:50 | After $"..." | Patterns.cs:25:17:25:51 | call to method WriteLine | | +| Patterns.cs:25:35:25:50 | Before $"..." | Patterns.cs:25:37:25:45 | "positive " | | +| Patterns.cs:25:37:25:45 | "positive " | Patterns.cs:25:46:25:49 | Before {...} | | +| Patterns.cs:25:46:25:49 | After {...} | Patterns.cs:25:35:25:50 | $"..." | | +| Patterns.cs:25:46:25:49 | Before {...} | Patterns.cs:25:47:25:48 | access to local variable i2 | | +| Patterns.cs:25:46:25:49 | {...} | Patterns.cs:25:46:25:49 | After {...} | | | Patterns.cs:25:47:25:48 | access to local variable i2 | Patterns.cs:25:46:25:49 | {...} | | -| Patterns.cs:26:17:26:22 | break; | Patterns.cs:40:9:42:9 | switch (...) {...} | break | -| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | Int32 i3 | | -| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:28:17:28:47 | ...; | match | -| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:30:13:30:27 | case ...: | no-match | -| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:29:17:29:22 | break; | | -| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:28:37:28:40 | "int " | | -| Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:28:17:28:46 | call to method WriteLine | | -| Patterns.cs:28:37:28:40 | "int " | Patterns.cs:28:42:28:43 | access to local variable i3 | | -| Patterns.cs:28:41:28:44 | {...} | Patterns.cs:28:35:28:45 | $"..." | | +| Patterns.cs:26:17:26:22 | Before break; | Patterns.cs:26:17:26:22 | break; | | +| Patterns.cs:26:17:26:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break | +| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:27:18:27:23 | Int32 i3 | | +| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | case ...: | | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [match] | match | +| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [no-match] | no-match | +| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:28:17:28:47 | ...; | | +| Patterns.cs:28:17:28:46 | After call to method WriteLine | Patterns.cs:28:17:28:47 | After ...; | | +| Patterns.cs:28:17:28:46 | Before call to method WriteLine | Patterns.cs:28:35:28:45 | Before $"..." | | +| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:28:17:28:46 | After call to method WriteLine | | +| Patterns.cs:28:17:28:47 | ...; | Patterns.cs:28:17:28:46 | Before call to method WriteLine | | +| Patterns.cs:28:17:28:47 | After ...; | Patterns.cs:29:17:29:22 | Before break; | | +| Patterns.cs:28:35:28:45 | $"..." | Patterns.cs:28:35:28:45 | After $"..." | | +| Patterns.cs:28:35:28:45 | After $"..." | Patterns.cs:28:17:28:46 | call to method WriteLine | | +| Patterns.cs:28:35:28:45 | Before $"..." | Patterns.cs:28:37:28:40 | "int " | | +| Patterns.cs:28:37:28:40 | "int " | Patterns.cs:28:41:28:44 | Before {...} | | +| Patterns.cs:28:41:28:44 | After {...} | Patterns.cs:28:35:28:45 | $"..." | | +| Patterns.cs:28:41:28:44 | Before {...} | Patterns.cs:28:42:28:43 | access to local variable i3 | | +| Patterns.cs:28:41:28:44 | {...} | Patterns.cs:28:41:28:44 | After {...} | | | Patterns.cs:28:42:28:43 | access to local variable i3 | Patterns.cs:28:41:28:44 | {...} | | -| Patterns.cs:29:17:29:22 | break; | Patterns.cs:40:9:42:9 | switch (...) {...} | break | -| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:18:30:26 | String s2 | | -| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:31:17:31:50 | ...; | match | -| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:33:13:33:24 | case ...: | no-match | -| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:32:17:32:22 | break; | | -| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:31:37:31:43 | "string " | | -| Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:31:17:31:49 | call to method WriteLine | | -| Patterns.cs:31:37:31:43 | "string " | Patterns.cs:31:45:31:46 | access to local variable s2 | | -| Patterns.cs:31:44:31:47 | {...} | Patterns.cs:31:35:31:48 | $"..." | | +| Patterns.cs:29:17:29:22 | Before break; | Patterns.cs:29:17:29:22 | break; | | +| Patterns.cs:29:17:29:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break | +| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:30:18:30:26 | String s2 | | +| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | case ...: | | +| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [match] | match | +| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [no-match] | no-match | +| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:31:17:31:50 | ...; | | +| Patterns.cs:31:17:31:49 | After call to method WriteLine | Patterns.cs:31:17:31:50 | After ...; | | +| Patterns.cs:31:17:31:49 | Before call to method WriteLine | Patterns.cs:31:35:31:48 | Before $"..." | | +| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:31:17:31:49 | After call to method WriteLine | | +| Patterns.cs:31:17:31:50 | ...; | Patterns.cs:31:17:31:49 | Before call to method WriteLine | | +| Patterns.cs:31:17:31:50 | After ...; | Patterns.cs:32:17:32:22 | Before break; | | +| Patterns.cs:31:35:31:48 | $"..." | Patterns.cs:31:35:31:48 | After $"..." | | +| Patterns.cs:31:35:31:48 | After $"..." | Patterns.cs:31:17:31:49 | call to method WriteLine | | +| Patterns.cs:31:35:31:48 | Before $"..." | Patterns.cs:31:37:31:43 | "string " | | +| Patterns.cs:31:37:31:43 | "string " | Patterns.cs:31:44:31:47 | Before {...} | | +| Patterns.cs:31:44:31:47 | After {...} | Patterns.cs:31:35:31:48 | $"..." | | +| Patterns.cs:31:44:31:47 | Before {...} | Patterns.cs:31:45:31:46 | access to local variable s2 | | +| Patterns.cs:31:44:31:47 | {...} | Patterns.cs:31:44:31:47 | After {...} | | | Patterns.cs:31:45:31:46 | access to local variable s2 | Patterns.cs:31:44:31:47 | {...} | | -| Patterns.cs:32:17:32:22 | break; | Patterns.cs:40:9:42:9 | switch (...) {...} | break | -| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:18:33:23 | Object v2 | | -| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:34:17:34:22 | break; | match | -| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:35:13:35:20 | default: | no-match | -| Patterns.cs:34:17:34:22 | break; | Patterns.cs:40:9:42:9 | switch (...) {...} | break | -| Patterns.cs:35:13:35:20 | default: | Patterns.cs:36:17:36:52 | ...; | | -| Patterns.cs:36:17:36:51 | call to method WriteLine | Patterns.cs:37:17:37:22 | break; | | -| Patterns.cs:36:17:36:52 | ...; | Patterns.cs:36:35:36:50 | "Something else" | | +| Patterns.cs:32:17:32:22 | Before break; | Patterns.cs:32:17:32:22 | break; | | +| Patterns.cs:32:17:32:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break | +| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:33:18:33:23 | Object v2 | | +| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:35:13:35:20 | default: | | +| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [match] | match | +| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | no-match | +| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:34:17:34:22 | Before break; | | +| Patterns.cs:34:17:34:22 | Before break; | Patterns.cs:34:17:34:22 | break; | | +| Patterns.cs:34:17:34:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break | +| Patterns.cs:35:13:35:20 | After default: [match] | Patterns.cs:36:17:36:52 | ...; | | +| Patterns.cs:35:13:35:20 | default: | Patterns.cs:35:13:35:20 | After default: [match] | match | +| Patterns.cs:36:17:36:51 | After call to method WriteLine | Patterns.cs:36:17:36:52 | After ...; | | +| Patterns.cs:36:17:36:51 | Before call to method WriteLine | Patterns.cs:36:35:36:50 | "Something else" | | +| Patterns.cs:36:17:36:51 | call to method WriteLine | Patterns.cs:36:17:36:51 | After call to method WriteLine | | +| Patterns.cs:36:17:36:52 | ...; | Patterns.cs:36:17:36:51 | Before call to method WriteLine | | +| Patterns.cs:36:17:36:52 | After ...; | Patterns.cs:37:17:37:22 | Before break; | | | Patterns.cs:36:35:36:50 | "Something else" | Patterns.cs:36:17:36:51 | call to method WriteLine | | -| Patterns.cs:37:17:37:22 | break; | Patterns.cs:40:9:42:9 | switch (...) {...} | break | +| Patterns.cs:37:17:37:22 | Before break; | Patterns.cs:37:17:37:22 | break; | | +| Patterns.cs:37:17:37:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break | +| Patterns.cs:40:9:42:9 | After switch (...) {...} | Patterns.cs:6:5:43:5 | After {...} | | | Patterns.cs:40:9:42:9 | switch (...) {...} | Patterns.cs:40:17:40:17 | access to local variable o | | -| Patterns.cs:40:17:40:17 | access to local variable o | Patterns.cs:5:10:5:11 | exit M1 (normal) | | -| Patterns.cs:47:24:47:25 | enter M2 | Patterns.cs:48:9:48:9 | access to parameter c | | -| Patterns.cs:47:24:47:25 | exit M2 (normal) | Patterns.cs:47:24:47:25 | exit M2 | | -| Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:18:48:20 | a | | -| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:47:24:47:25 | exit M2 (normal) | | -| Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:9:48:20 | ... is ... | | +| Patterns.cs:40:17:40:17 | access to local variable o | Patterns.cs:40:9:42:9 | After switch (...) {...} | | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | Before ... is ... | | +| Patterns.cs:47:24:47:25 | Normal Exit | Patterns.cs:47:24:47:25 | Exit | | +| Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:9:48:20 | ... is ... | | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | true | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Normal Exit | | +| Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:48:9:48:9 | access to parameter c | | +| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:14:48:20 | Before not ... | | +| Patterns.cs:48:14:48:20 | After not ... | Patterns.cs:48:9:48:20 | After ... is ... | | +| Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:48:18:48:20 | a | | +| Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:14:48:20 | After not ... | | | Patterns.cs:48:18:48:20 | a | Patterns.cs:48:14:48:20 | not ... | | -| Patterns.cs:50:24:50:25 | enter M3 | Patterns.cs:51:9:51:9 | access to parameter c | | -| Patterns.cs:50:24:50:25 | exit M3 (normal) | Patterns.cs:50:24:50:25 | exit M3 | | -| Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:18:51:21 | null | | -| Patterns.cs:51:9:51:21 | [false] ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | false | -| Patterns.cs:51:9:51:21 | [true] ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | true | -| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | exit M3 (normal) | | -| Patterns.cs:51:14:51:21 | [match] not ... | Patterns.cs:51:9:51:21 | [true] ... is ... | match | -| Patterns.cs:51:14:51:21 | [no-match] not ... | Patterns.cs:51:9:51:21 | [false] ... is ... | no-match | -| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | [match] not ... | no-match | -| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | [no-match] not ... | match | -| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:30:51:30 | 1 | | -| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:9:51:39 | ... ? ... : ... | | -| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:30 | ... is ... | | -| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:39:51:39 | 2 | | -| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:9:51:39 | ... ? ... : ... | | -| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:39 | ... is ... | | -| Patterns.cs:53:24:53:25 | enter M4 | Patterns.cs:54:9:54:9 | access to parameter c | | -| Patterns.cs:53:24:53:25 | exit M4 (normal) | Patterns.cs:53:24:53:25 | exit M4 | | -| Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:18:54:37 | Patterns u | | -| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:53:24:53:25 | exit M4 (normal) | | -| Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:9:54:37 | ... is ... | | -| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:18:54:37 | { ... } | no-match | -| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:33:54:33 | 1 | match | -| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:14:54:37 | not ... | | -| Patterns.cs:54:27:54:35 | [match] { ... } | Patterns.cs:54:18:54:37 | { ... } | match | -| Patterns.cs:54:27:54:35 | [no-match] { ... } | Patterns.cs:54:18:54:37 | { ... } | no-match | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [match] { ... } | match | -| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | [no-match] { ... } | no-match | -| Patterns.cs:56:26:56:27 | enter M5 | Patterns.cs:57:5:63:5 | {...} | | -| Patterns.cs:56:26:56:27 | exit M5 (normal) | Patterns.cs:56:26:56:27 | exit M5 | | -| Patterns.cs:57:5:63:5 | {...} | Patterns.cs:58:16:58:16 | access to parameter i | | -| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:56:26:56:27 | exit M5 (normal) | return | -| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:60:17:60:17 | 1 | | -| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:9:62:10 | return ...; | | -| Patterns.cs:60:13:60:17 | [match] not ... | Patterns.cs:60:22:60:28 | "not 1" | match | -| Patterns.cs:60:13:60:17 | [no-match] not ... | Patterns.cs:61:13:61:13 | _ | no-match | -| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:58:16:62:9 | ... switch { ... } | | -| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | [match] not ... | no-match | -| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | [no-match] not ... | match | -| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:60:13:60:28 | ... => ... | | -| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:18:61:24 | "other" | match | -| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:58:16:62:9 | ... switch { ... } | | -| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:61:13:61:24 | ... => ... | | -| Patterns.cs:65:26:65:27 | enter M6 | Patterns.cs:66:5:72:5 | {...} | | -| Patterns.cs:65:26:65:27 | exit M6 (normal) | Patterns.cs:65:26:65:27 | exit M6 | | -| Patterns.cs:66:5:72:5 | {...} | Patterns.cs:67:16:67:16 | 2 | | -| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:65:26:65:27 | exit M6 (normal) | return | -| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:69:17:69:17 | 2 | | -| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:9:71:10 | return ...; | | -| Patterns.cs:69:13:69:17 | [no-match] not ... | Patterns.cs:70:13:70:13 | 2 | no-match | -| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:13:69:17 | [no-match] not ... | match | -| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:18:70:27 | "possible" | match | -| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:67:16:71:9 | ... switch { ... } | | -| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:70:13:70:27 | ... => ... | | -| Patterns.cs:74:26:74:27 | enter M7 | Patterns.cs:75:5:83:5 | {...} | | -| Patterns.cs:74:26:74:27 | exit M7 (normal) | Patterns.cs:74:26:74:27 | exit M7 | | -| Patterns.cs:75:5:83:5 | {...} | Patterns.cs:76:16:76:16 | access to parameter i | | -| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:74:26:74:27 | exit M7 (normal) | return | -| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:78:15:78:15 | 1 | | -| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:9:82:10 | return ...; | | -| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:20:78:24 | "> 1" | match | -| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:79:15:79:15 | 0 | no-match | -| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:76:16:82:9 | ... switch { ... } | | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:39 | ... ? ... : ... | | +| Patterns.cs:50:24:50:25 | Normal Exit | Patterns.cs:50:24:50:25 | Exit | | +| Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:9:51:21 | ... is ... | | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | false | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | true | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | Before ... is ... | | +| Patterns.cs:51:9:51:21 | After ... is ... [true] | Patterns.cs:51:25:51:30 | Before ... is ... | | +| Patterns.cs:51:9:51:21 | Before ... is ... | Patterns.cs:51:9:51:9 | access to parameter c | | +| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:14:51:21 | Before not ... | | +| Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:21 | Before ... is ... | | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Normal Exit | | +| Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | true | +| Patterns.cs:51:14:51:21 | Before not ... | Patterns.cs:51:18:51:21 | null | | +| Patterns.cs:51:14:51:21 | not ... | Patterns.cs:51:14:51:21 | After not ... | | +| Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | not ... | | +| Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:30 | ... is ... | | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | | +| Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | | +| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:30:51:30 | 1 | | +| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:30 | After ... is ... | | +| Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:39 | ... is ... | | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | true | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | | +| Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | | +| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:39:51:39 | 2 | | +| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:39 | After ... is ... | | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | Before ... is ... | | +| Patterns.cs:53:24:53:25 | Normal Exit | Patterns.cs:53:24:53:25 | Exit | | +| Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:9:54:37 | ... is ... | | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | true | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Normal Exit | | +| Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:54:9:54:9 | access to parameter c | | +| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:14:54:37 | Before not ... | | +| Patterns.cs:54:14:54:37 | After not ... | Patterns.cs:54:9:54:37 | After ... is ... | | +| Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:54:18:54:37 | Before { ... } | | +| Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:14:54:37 | After not ... | | +| Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:54:27:54:35 | Before { ... } | | +| Patterns.cs:54:18:54:37 | After { ... } | Patterns.cs:54:14:54:37 | not ... | | +| Patterns.cs:54:18:54:37 | Before { ... } | Patterns.cs:54:18:54:37 | Patterns u | | +| Patterns.cs:54:18:54:37 | Patterns u | Patterns.cs:54:18:54:25 | access to type Patterns | | +| Patterns.cs:54:18:54:37 | { ... } | Patterns.cs:54:18:54:37 | After { ... } | | +| Patterns.cs:54:27:54:35 | After { ... } | Patterns.cs:54:18:54:37 | { ... } | | +| Patterns.cs:54:27:54:35 | Before { ... } | Patterns.cs:54:33:54:33 | 1 | | +| Patterns.cs:54:27:54:35 | { ... } | Patterns.cs:54:27:54:35 | After { ... } | | +| Patterns.cs:54:33:54:33 | 1 | Patterns.cs:54:27:54:35 | { ... } | | +| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:57:5:63:5 | {...} | | +| Patterns.cs:56:26:56:27 | Normal Exit | Patterns.cs:56:26:56:27 | Exit | | +| Patterns.cs:57:5:63:5 | {...} | Patterns.cs:58:9:62:10 | Before return ...; | | +| Patterns.cs:58:9:62:10 | Before return ...; | Patterns.cs:58:16:62:9 | ... switch { ... } | | +| Patterns.cs:58:9:62:10 | return ...; | Patterns.cs:56:26:56:27 | Normal Exit | return | +| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:60:13:60:28 | ... => ... | | +| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:58:16 | access to parameter i | | +| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:58:9:62:10 | return ...; | | +| Patterns.cs:60:13:60:17 | After not ... | Patterns.cs:60:22:60:28 | "not 1" | | +| Patterns.cs:60:13:60:17 | Before not ... | Patterns.cs:60:17:60:17 | 1 | | +| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:13:60:17 | After not ... | | +| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | After ... => ... [match] | match | +| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | no-match | +| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:13:60:17 | Before not ... | | +| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:61:13:61:24 | ... => ... | | +| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | not ... | | +| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:58:16:62:9 | After ... switch { ... } | | +| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:18:61:24 | "other" | | +| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:13:61:24 | After ... => ... [match] | match | +| Patterns.cs:61:13:61:24 | After ... => ... [match] | Patterns.cs:61:13:61:13 | _ | | +| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:58:16:62:9 | After ... switch { ... } | | +| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:66:5:72:5 | {...} | | +| Patterns.cs:65:26:65:27 | Normal Exit | Patterns.cs:65:26:65:27 | Exit | | +| Patterns.cs:66:5:72:5 | {...} | Patterns.cs:67:9:71:10 | Before return ...; | | +| Patterns.cs:67:9:71:10 | Before return ...; | Patterns.cs:67:16:71:9 | ... switch { ... } | | +| Patterns.cs:67:9:71:10 | return ...; | Patterns.cs:65:26:65:27 | Normal Exit | return | +| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:69:13:69:33 | ... => ... | | +| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:16:67:16 | 2 | | +| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:67:9:71:10 | return ...; | | +| Patterns.cs:69:13:69:17 | After not ... | Patterns.cs:69:22:69:33 | "impossible" | | +| Patterns.cs:69:13:69:17 | Before not ... | Patterns.cs:69:17:69:17 | 2 | | +| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:13:69:17 | After not ... | | +| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | After ... => ... [match] | match | +| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | no-match | +| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:13:69:17 | Before not ... | | +| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | ... => ... | | +| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:13:69:17 | not ... | | +| Patterns.cs:69:22:69:33 | "impossible" | Patterns.cs:67:16:71:9 | After ... switch { ... } | | +| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:18:70:27 | "possible" | | +| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | After ... => ... [match] | match | +| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | no-match | +| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:13:70:13 | 2 | | +| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:67:16:71:9 | After ... switch { ... } | | +| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:67:16:71:9 | After ... switch { ... } | | +| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:75:5:83:5 | {...} | | +| Patterns.cs:74:26:74:27 | Normal Exit | Patterns.cs:74:26:74:27 | Exit | | +| Patterns.cs:75:5:83:5 | {...} | Patterns.cs:76:9:82:10 | Before return ...; | | +| Patterns.cs:76:9:82:10 | Before return ...; | Patterns.cs:76:16:82:9 | ... switch { ... } | | +| Patterns.cs:76:9:82:10 | return ...; | Patterns.cs:74:26:74:27 | Normal Exit | return | +| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:78:13:78:24 | ... => ... | | +| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:76:16 | access to parameter i | | +| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:76:9:82:10 | return ...; | | +| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:13:78:15 | After > ... | | +| Patterns.cs:78:13:78:15 | After > ... | Patterns.cs:78:20:78:24 | "> 1" | | +| Patterns.cs:78:13:78:15 | Before > ... | Patterns.cs:78:15:78:15 | 1 | | +| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | After ... => ... [match] | match | +| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | no-match | +| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:13:78:15 | Before > ... | | +| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | ... => ... | | | Patterns.cs:78:15:78:15 | 1 | Patterns.cs:78:13:78:15 | > ... | | -| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:78:13:78:24 | ... => ... | | -| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:20:79:24 | "< 0" | match | -| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:80:13:80:13 | 1 | no-match | -| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:76:16:82:9 | ... switch { ... } | | +| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:76:16:82:9 | After ... switch { ... } | | +| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:13:79:15 | After < ... | | +| Patterns.cs:79:13:79:15 | After < ... | Patterns.cs:79:20:79:24 | "< 0" | | +| Patterns.cs:79:13:79:15 | Before < ... | Patterns.cs:79:15:79:15 | 0 | | +| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | After ... => ... [match] | match | +| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | no-match | +| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:13:79:15 | Before < ... | | +| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | ... => ... | | | Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:13:79:15 | < ... | | -| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:79:13:79:24 | ... => ... | | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:18:80:20 | "1" | match | -| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:81:13:81:13 | _ | no-match | -| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:76:16:82:9 | ... switch { ... } | | -| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:80:13:80:20 | ... => ... | | -| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:18:81:20 | "0" | match | -| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:76:16:82:9 | ... switch { ... } | | -| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:81:13:81:20 | ... => ... | | -| Patterns.cs:85:26:85:27 | enter M8 | Patterns.cs:85:39:85:39 | access to parameter i | | -| Patterns.cs:85:26:85:27 | exit M8 (normal) | Patterns.cs:85:26:85:27 | exit M8 | | -| Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:44:85:44 | 1 | | -| Patterns.cs:85:39:85:53 | [false] ... is ... | Patterns.cs:85:67:85:69 | "2" | false | -| Patterns.cs:85:39:85:53 | [true] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | true | -| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | exit M8 (normal) | | -| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:44:85:53 | [match] ... or ... | match | -| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:53:85:53 | 2 | no-match | -| Patterns.cs:85:44:85:53 | [match] ... or ... | Patterns.cs:85:39:85:53 | [true] ... is ... | match | -| Patterns.cs:85:44:85:53 | [no-match] ... or ... | Patterns.cs:85:39:85:53 | [false] ... is ... | no-match | -| Patterns.cs:85:49:85:53 | [match] not ... | Patterns.cs:85:44:85:53 | [match] ... or ... | match | -| Patterns.cs:85:49:85:53 | [no-match] not ... | Patterns.cs:85:44:85:53 | [no-match] ... or ... | no-match | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [match] not ... | no-match | -| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | [no-match] not ... | match | -| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:39:85:69 | ... ? ... : ... | | -| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:39:85:69 | ... ? ... : ... | | -| Patterns.cs:87:26:87:27 | enter M9 | Patterns.cs:87:39:87:39 | access to parameter i | | -| Patterns.cs:87:26:87:27 | exit M9 (normal) | Patterns.cs:87:26:87:27 | exit M9 | | -| Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:44:87:44 | 1 | | -| Patterns.cs:87:39:87:54 | [false] ... is ... | Patterns.cs:87:64:87:70 | "not 1" | false | -| Patterns.cs:87:39:87:54 | [true] ... is ... | Patterns.cs:87:58:87:60 | "1" | true | -| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | exit M9 (normal) | | -| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:44:87:54 | [no-match] ... and ... | no-match | -| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:54:87:54 | 2 | match | -| Patterns.cs:87:44:87:54 | [match] ... and ... | Patterns.cs:87:39:87:54 | [true] ... is ... | match | -| Patterns.cs:87:44:87:54 | [no-match] ... and ... | Patterns.cs:87:39:87:54 | [false] ... is ... | no-match | -| Patterns.cs:87:50:87:54 | [match] not ... | Patterns.cs:87:44:87:54 | [match] ... and ... | match | -| Patterns.cs:87:50:87:54 | [no-match] not ... | Patterns.cs:87:44:87:54 | [no-match] ... and ... | no-match | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [match] not ... | no-match | -| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | [no-match] not ... | match | -| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:39:87:70 | ... ? ... : ... | | -| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:39:87:70 | ... ? ... : ... | | -| Patterns.cs:93:17:93:19 | enter M10 | Patterns.cs:94:5:99:5 | {...} | | -| Patterns.cs:93:17:93:19 | exit M10 (normal) | Patterns.cs:93:17:93:19 | exit M10 | | +| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:76:16:82:9 | After ... switch { ... } | | +| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:18:80:20 | "1" | | +| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | After ... => ... [match] | match | +| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | no-match | +| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:13:80:13 | 1 | | +| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:81:13:81:20 | ... => ... | | +| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:76:16:82:9 | After ... switch { ... } | | +| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:18:81:20 | "0" | | +| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:13:81:20 | After ... => ... [match] | match | +| Patterns.cs:81:13:81:20 | After ... => ... [match] | Patterns.cs:81:13:81:13 | _ | | +| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:76:16:82:9 | After ... switch { ... } | | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:69 | ... ? ... : ... | | +| Patterns.cs:85:26:85:27 | Normal Exit | Patterns.cs:85:26:85:27 | Exit | | +| Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:39:85:53 | ... is ... | | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | false | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | true | +| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:67:85:69 | "2" | | +| Patterns.cs:85:39:85:53 | After ... is ... [true] | Patterns.cs:85:57:85:63 | "not 2" | | +| Patterns.cs:85:39:85:53 | Before ... is ... | Patterns.cs:85:39:85:39 | access to parameter i | | +| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:44:85:53 | Before ... or ... | | +| Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:53 | Before ... is ... | | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Normal Exit | | +| Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:49:85:53 | Before not ... | | +| Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:44:85:53 | After ... or ... | | +| Patterns.cs:85:44:85:53 | After ... or ... | Patterns.cs:85:39:85:53 | After ... is ... [true] | true | +| Patterns.cs:85:44:85:53 | Before ... or ... | Patterns.cs:85:44:85:44 | 1 | | +| Patterns.cs:85:49:85:53 | After not ... | Patterns.cs:85:44:85:53 | ... or ... | | +| Patterns.cs:85:49:85:53 | Before not ... | Patterns.cs:85:53:85:53 | 2 | | +| Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:49:85:53 | After not ... | | +| Patterns.cs:85:53:85:53 | 2 | Patterns.cs:85:49:85:53 | not ... | | +| Patterns.cs:85:57:85:63 | "not 2" | Patterns.cs:85:39:85:69 | After ... ? ... : ... | | +| Patterns.cs:85:67:85:69 | "2" | Patterns.cs:85:39:85:69 | After ... ? ... : ... | | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:70 | ... ? ... : ... | | +| Patterns.cs:87:26:87:27 | Normal Exit | Patterns.cs:87:26:87:27 | Exit | | +| Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:39:87:54 | ... is ... | | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | false | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | true | +| Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:64:87:70 | "not 1" | | +| Patterns.cs:87:39:87:54 | After ... is ... [true] | Patterns.cs:87:58:87:60 | "1" | | +| Patterns.cs:87:39:87:54 | Before ... is ... | Patterns.cs:87:39:87:39 | access to parameter i | | +| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:44:87:54 | Before ... and ... | | +| Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:54 | Before ... is ... | | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Normal Exit | | +| Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:50:87:54 | Before not ... | | +| Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:44:87:54 | After ... and ... | | +| Patterns.cs:87:44:87:54 | After ... and ... | Patterns.cs:87:39:87:54 | After ... is ... [true] | true | +| Patterns.cs:87:44:87:54 | Before ... and ... | Patterns.cs:87:44:87:44 | 1 | | +| Patterns.cs:87:50:87:54 | After not ... | Patterns.cs:87:44:87:54 | ... and ... | | +| Patterns.cs:87:50:87:54 | Before not ... | Patterns.cs:87:54:87:54 | 2 | | +| Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:50:87:54 | After not ... | | +| Patterns.cs:87:54:87:54 | 2 | Patterns.cs:87:50:87:54 | not ... | | +| Patterns.cs:87:58:87:60 | "1" | Patterns.cs:87:39:87:70 | After ... ? ... : ... | | +| Patterns.cs:87:64:87:70 | "not 1" | Patterns.cs:87:39:87:70 | After ... ? ... : ... | | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:94:5:99:5 | {...} | | +| Patterns.cs:93:17:93:19 | Normal Exit | Patterns.cs:93:17:93:19 | Exit | | +| Patterns.cs:94:5:99:5 | After {...} | Patterns.cs:93:17:93:19 | Normal Exit | | | Patterns.cs:94:5:99:5 | {...} | Patterns.cs:95:9:98:9 | if (...) ... | | -| Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:95:13:95:16 | this access | | -| Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:29:95:31 | access to constant A | | -| Patterns.cs:95:13:95:40 | [false] ... is ... | Patterns.cs:93:17:93:19 | exit M10 (normal) | false | -| Patterns.cs:95:13:95:40 | [true] ... is ... | Patterns.cs:96:9:98:9 | {...} | true | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:13:95:40 | [true] ... is ... | match | -| Patterns.cs:95:21:95:40 | [match] { ... } | Patterns.cs:95:21:95:40 | [match] { ... } | match | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:13:95:40 | [false] ... is ... | no-match | -| Patterns.cs:95:21:95:40 | [no-match] { ... } | Patterns.cs:95:21:95:40 | [no-match] { ... } | no-match | -| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:29:95:38 | [match] ... or ... | match | -| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:36:95:38 | access to constant B | no-match | -| Patterns.cs:95:29:95:38 | [match] ... or ... | Patterns.cs:95:21:95:40 | [match] { ... } | match | -| Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:21:95:40 | [no-match] { ... } | no-match | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:38 | [match] ... or ... | match | -| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:38 | [no-match] ... or ... | no-match | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:94:5:99:5 | After {...} | | +| Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:95:13:95:40 | Before ... is ... | | +| Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:13:95:40 | ... is ... | | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | false | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | true | +| Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:9:98:9 | After if (...) ... | | +| Patterns.cs:95:13:95:40 | After ... is ... [true] | Patterns.cs:96:9:98:9 | {...} | | +| Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:95:13:95:16 | this access | | +| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:21:95:40 | Before { ... } | | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:13:95:40 | After ... is ... [true] | true | +| Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:21:95:40 | Before { ... } | | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:29:95:38 | Before ... or ... | | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | After { ... } | | +| Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | After { ... } | | +| Patterns.cs:95:29:95:31 | access to constant A | Patterns.cs:95:36:95:38 | access to constant B | | +| Patterns.cs:95:29:95:38 | ... or ... | Patterns.cs:95:29:95:38 | After ... or ... | | +| Patterns.cs:95:29:95:38 | After ... or ... | Patterns.cs:95:21:95:40 | { ... } | | +| Patterns.cs:95:29:95:38 | Before ... or ... | Patterns.cs:95:29:95:31 | access to constant A | | +| Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:29:95:38 | ... or ... | | +| Patterns.cs:96:9:98:9 | After {...} | Patterns.cs:95:9:98:9 | After if (...) ... | | | Patterns.cs:96:9:98:9 | {...} | Patterns.cs:97:13:97:39 | ...; | | -| Patterns.cs:97:13:97:38 | call to method WriteLine | Patterns.cs:93:17:93:19 | exit M10 (normal) | | -| Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:31:97:37 | "not C" | | +| Patterns.cs:97:13:97:38 | After call to method WriteLine | Patterns.cs:97:13:97:39 | After ...; | | +| Patterns.cs:97:13:97:38 | Before call to method WriteLine | Patterns.cs:97:31:97:37 | "not C" | | +| Patterns.cs:97:13:97:38 | call to method WriteLine | Patterns.cs:97:13:97:38 | After call to method WriteLine | | +| Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:13:97:38 | Before call to method WriteLine | | +| Patterns.cs:97:13:97:39 | After ...; | Patterns.cs:96:9:98:9 | After {...} | | | 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 | 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 | After call to constructor Object | PostDominance.cs:3:7:3:19 | {...} | | +| PostDominance.cs:3:7:3:19 | After call to method | PostDominance.cs:3:7:3:19 | Before call to constructor Object | | +| PostDominance.cs:3:7:3:19 | Before call to constructor Object | PostDominance.cs:3:7:3:19 | call to constructor Object | | +| PostDominance.cs:3:7:3:19 | Before call to method | PostDominance.cs:3:7:3:19 | this access | | +| PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Before call to method | | +| PostDominance.cs:3:7:3:19 | Normal Exit | PostDominance.cs:3:7:3:19 | Exit | | +| PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | After call to constructor Object | | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | After call to method | | | 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 | | +| PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | Normal Exit | | +| PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:6:5:8:5 | {...} | | +| PostDominance.cs:5:10:5:11 | Normal Exit | PostDominance.cs:5:10:5:11 | Exit | | +| PostDominance.cs:6:5:8:5 | After {...} | PostDominance.cs:5:10:5:11 | Normal Exit | | | PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:7:9:7:29 | ...; | | -| PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:5:10:5:11 | exit M1 (normal) | | -| PostDominance.cs:7:9:7:29 | ...; | PostDominance.cs:7:27:7:27 | access to parameter s | | +| PostDominance.cs:7:9:7:28 | After call to method WriteLine | PostDominance.cs:7:9:7:29 | After ...; | | +| PostDominance.cs:7:9:7:28 | Before call to method WriteLine | PostDominance.cs:7:27:7:27 | access to parameter s | | +| PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:7:9:7:28 | After call to method WriteLine | | +| PostDominance.cs:7:9:7:29 | ...; | PostDominance.cs:7:9:7:28 | Before call to method WriteLine | | +| PostDominance.cs:7:9:7:29 | After ...; | PostDominance.cs:6:5:8:5 | After {...} | | | PostDominance.cs:7:27:7:27 | access to parameter s | PostDominance.cs:7:9:7:28 | call to method WriteLine | | -| PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:11:5:15:5 | {...} | | -| PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | exit M2 | | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:11:5:15:5 | {...} | | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Exit | | +| PostDominance.cs:11:5:15:5 | After {...} | PostDominance.cs:10:10:10:11 | Normal Exit | | | PostDominance.cs:11:5:15:5 | {...} | PostDominance.cs:12:9:13:19 | if (...) ... | | -| PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:12:13:12:13 | access to parameter s | | -| PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:18:12:21 | null | | -| PostDominance.cs:12:13:12:21 | [false] ... is ... | PostDominance.cs:14:9:14:29 | ...; | false | -| PostDominance.cs:12:13:12:21 | [true] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | true | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | [false] ... is ... | no-match | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | [true] ... is ... | match | -| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:10:10:10:11 | exit M2 (normal) | return | -| PostDominance.cs:14:9:14:28 | call to method WriteLine | PostDominance.cs:10:10:10:11 | exit M2 (normal) | | -| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:27:14:27 | access to parameter s | | +| PostDominance.cs:12:9:13:19 | After if (...) ... | PostDominance.cs:14:9:14:29 | ...; | | +| PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:12:13:12:21 | Before ... is ... | | +| PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:13:12:21 | ... is ... | | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | After ... is ... [false] | false | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | true | +| PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:9:13:19 | After if (...) ... | | +| PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:13:13:13:19 | Before return ...; | | +| PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:12:13:12:13 | access to parameter s | | +| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:18:12:21 | null | | +| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | After ... is ... [true] | true | +| PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:13:13:13:19 | return ...; | | +| PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:10:10:10:11 | Normal Exit | return | +| PostDominance.cs:14:9:14:28 | After call to method WriteLine | PostDominance.cs:14:9:14:29 | After ...; | | +| PostDominance.cs:14:9:14:28 | Before call to method WriteLine | PostDominance.cs:14:27:14:27 | access to parameter s | | +| PostDominance.cs:14:9:14:28 | call to method WriteLine | PostDominance.cs:14:9:14:28 | After call to method WriteLine | | +| PostDominance.cs:14:9:14:29 | ...; | PostDominance.cs:14:9:14:28 | Before call to method WriteLine | | +| PostDominance.cs:14:9:14:29 | After ...; | PostDominance.cs:11:5:15:5 | After {...} | | | PostDominance.cs:14:27:14:27 | access to parameter s | PostDominance.cs:14:9:14:28 | call to method WriteLine | | -| PostDominance.cs:17:10:17:11 | enter M3 | PostDominance.cs:18:5:22:5 | {...} | | -| PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | PostDominance.cs:17:10:17:11 | exit M3 | | -| PostDominance.cs:17:10:17:11 | exit M3 (normal) | PostDominance.cs:17:10:17:11 | exit M3 | | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:18:5:22:5 | {...} | | +| PostDominance.cs:17:10:17:11 | Exceptional Exit | PostDominance.cs:17:10:17:11 | Exit | | +| PostDominance.cs:17:10:17:11 | Normal Exit | PostDominance.cs:17:10:17:11 | Exit | | +| PostDominance.cs:18:5:22:5 | After {...} | PostDominance.cs:17:10:17:11 | Normal Exit | | | PostDominance.cs:18:5:22:5 | {...} | PostDominance.cs:19:9:20:55 | if (...) ... | | -| PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:19:13:19:13 | access to parameter s | | -| PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:18:19:21 | null | | -| PostDominance.cs:19:13:19:21 | [false] ... is ... | PostDominance.cs:21:9:21:29 | ...; | false | -| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:20:45:20:53 | nameof(...) | true | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [false] ... is ... | no-match | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [true] ... is ... | match | -| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | exception | -| PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:13:20:55 | throw ...; | | +| PostDominance.cs:19:9:20:55 | After if (...) ... | PostDominance.cs:21:9:21:29 | ...; | | +| PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:19:13:19:21 | Before ... is ... | | +| PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:13:19:21 | ... is ... | | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | After ... is ... [false] | false | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | true | +| PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:9:20:55 | After if (...) ... | | +| PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:20:13:20:55 | Before throw ...; | | +| PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:19:13:19:13 | access to parameter s | | +| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:18:19:21 | null | | +| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | After ... is ... [true] | true | +| PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | | +| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | Exceptional Exit | exception | +| PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | PostDominance.cs:20:13:20:55 | throw ...; | | +| PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | PostDominance.cs:20:45:20:53 | nameof(...) | | +| PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | | | PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | | -| PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:17:10:17:11 | exit M3 (normal) | | -| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:27:21:27 | access to parameter s | | +| PostDominance.cs:21:9:21:28 | After call to method WriteLine | PostDominance.cs:21:9:21:29 | After ...; | | +| PostDominance.cs:21:9:21:28 | Before call to method WriteLine | PostDominance.cs:21:27:21:27 | access to parameter s | | +| PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:21:9:21:28 | After call to method WriteLine | | +| PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:28 | Before call to method WriteLine | | +| PostDominance.cs:21:9:21:29 | After ...; | PostDominance.cs:18:5:22:5 | After {...} | | | 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 | 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 | After call to constructor Object | Qualifiers.cs:1:7:1:16 | {...} | | +| Qualifiers.cs:1:7:1:16 | After call to method | Qualifiers.cs:1:7:1:16 | Before call to constructor Object | | +| Qualifiers.cs:1:7:1:16 | Before call to constructor Object | Qualifiers.cs:1:7:1:16 | call to constructor Object | | +| Qualifiers.cs:1:7:1:16 | Before call to method | Qualifiers.cs:1:7:1:16 | this access | | +| Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Before call to method | | +| Qualifiers.cs:1:7:1:16 | Normal Exit | Qualifiers.cs:1:7:1:16 | Exit | | +| Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | After call to constructor Object | | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | After call to method | | | 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 | | -| Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:16:7:21 | exit Method (normal) | | -| Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:41:8:44 | null | | -| Qualifiers.cs:8:23:8:34 | exit StaticMethod (normal) | Qualifiers.cs:8:23:8:34 | exit StaticMethod | | -| Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:23:8:34 | exit StaticMethod (normal) | | -| Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:11:5:31:5 | {...} | | -| Qualifiers.cs:10:10:10:10 | exit M (normal) | Qualifiers.cs:10:10:10:10 | exit M | | +| Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | Normal Exit | | +| Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:28:7:31 | null | | +| Qualifiers.cs:7:16:7:21 | Normal Exit | Qualifiers.cs:7:16:7:21 | Exit | | +| Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:16:7:21 | Normal Exit | | +| Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:41:8:44 | null | | +| Qualifiers.cs:8:23:8:34 | Normal Exit | Qualifiers.cs:8:23:8:34 | Exit | | +| Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:23:8:34 | Normal Exit | | +| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:11:5:31:5 | {...} | | +| Qualifiers.cs:10:10:10:10 | Normal Exit | Qualifiers.cs:10:10:10:10 | Exit | | +| Qualifiers.cs:11:5:31:5 | After {...} | Qualifiers.cs:10:10:10:10 | Normal Exit | | | Qualifiers.cs:11:5:31:5 | {...} | Qualifiers.cs:12:9:12:22 | ... ...; | | -| Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:12:17:12:21 | this access | | -| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:13:9:13:21 | ...; | | -| Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | | +| Qualifiers.cs:12:9:12:22 | ... ...; | Qualifiers.cs:12:13:12:21 | Before Qualifiers q = ... | | +| Qualifiers.cs:12:9:12:22 | After ... ...; | Qualifiers.cs:13:9:13:21 | ...; | | +| Qualifiers.cs:12:13:12:13 | access to local variable q | Qualifiers.cs:12:17:12:21 | Before access to field Field | | +| Qualifiers.cs:12:13:12:21 | After Qualifiers q = ... | Qualifiers.cs:12:9:12:22 | After ... ...; | | +| Qualifiers.cs:12:13:12:21 | Before Qualifiers q = ... | Qualifiers.cs:12:13:12:13 | access to local variable q | | +| Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | Qualifiers.cs:12:13:12:21 | After Qualifiers q = ... | | +| Qualifiers.cs:12:17:12:21 | After access to field Field | Qualifiers.cs:12:13:12:21 | Qualifiers q = ... | | +| Qualifiers.cs:12:17:12:21 | Before access to field Field | Qualifiers.cs:12:17:12:21 | this access | | +| Qualifiers.cs:12:17:12:21 | access to field Field | Qualifiers.cs:12:17:12:21 | After access to field Field | | | Qualifiers.cs:12:17:12:21 | this access | Qualifiers.cs:12:17:12:21 | access to field Field | | -| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:14:9:14:21 | ...; | | -| Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:13:13:13:20 | this access | | -| Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:13:9:13:20 | ... = ... | | +| Qualifiers.cs:13:9:13:9 | access to local variable q | Qualifiers.cs:13:13:13:20 | Before access to property Property | | +| Qualifiers.cs:13:9:13:20 | ... = ... | Qualifiers.cs:13:9:13:20 | After ... = ... | | +| Qualifiers.cs:13:9:13:20 | After ... = ... | Qualifiers.cs:13:9:13:21 | After ...; | | +| Qualifiers.cs:13:9:13:20 | Before ... = ... | Qualifiers.cs:13:9:13:9 | access to local variable q | | +| Qualifiers.cs:13:9:13:21 | ...; | Qualifiers.cs:13:9:13:20 | Before ... = ... | | +| Qualifiers.cs:13:9:13:21 | After ...; | Qualifiers.cs:14:9:14:21 | ...; | | +| Qualifiers.cs:13:13:13:20 | After access to property Property | Qualifiers.cs:13:9:13:20 | ... = ... | | +| Qualifiers.cs:13:13:13:20 | Before access to property Property | Qualifiers.cs:13:13:13:20 | this access | | +| Qualifiers.cs:13:13:13:20 | access to property Property | Qualifiers.cs:13:13:13:20 | After access to property Property | | | Qualifiers.cs:13:13:13:20 | this access | Qualifiers.cs:13:13:13:20 | access to property Property | | -| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:16:9:16:23 | ...; | | -| Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:14:13:14:20 | this access | | -| Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:14:9:14:20 | ... = ... | | +| Qualifiers.cs:14:9:14:9 | access to local variable q | Qualifiers.cs:14:13:14:20 | Before call to method Method | | +| Qualifiers.cs:14:9:14:20 | ... = ... | Qualifiers.cs:14:9:14:20 | After ... = ... | | +| Qualifiers.cs:14:9:14:20 | After ... = ... | Qualifiers.cs:14:9:14:21 | After ...; | | +| Qualifiers.cs:14:9:14:20 | Before ... = ... | Qualifiers.cs:14:9:14:9 | access to local variable q | | +| Qualifiers.cs:14:9:14:21 | ...; | Qualifiers.cs:14:9:14:20 | Before ... = ... | | +| Qualifiers.cs:14:9:14:21 | After ...; | Qualifiers.cs:16:9:16:23 | ...; | | +| Qualifiers.cs:14:13:14:20 | After call to method Method | Qualifiers.cs:14:9:14:20 | ... = ... | | +| Qualifiers.cs:14:13:14:20 | Before call to method Method | Qualifiers.cs:14:13:14:20 | this access | | +| Qualifiers.cs:14:13:14:20 | call to method Method | Qualifiers.cs:14:13:14:20 | After call to method Method | | | Qualifiers.cs:14:13:14:20 | this access | Qualifiers.cs:14:13:14:20 | call to method Method | | -| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:17:9:17:26 | ...; | | -| Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:16:13:16:16 | this access | | +| Qualifiers.cs:16:9:16:9 | access to local variable q | Qualifiers.cs:16:13:16:22 | Before access to field Field | | +| Qualifiers.cs:16:9:16:22 | ... = ... | Qualifiers.cs:16:9:16:22 | After ... = ... | | +| Qualifiers.cs:16:9:16:22 | After ... = ... | Qualifiers.cs:16:9:16:23 | After ...; | | +| Qualifiers.cs:16:9:16:22 | Before ... = ... | Qualifiers.cs:16:9:16:9 | access to local variable q | | +| Qualifiers.cs:16:9:16:23 | ...; | Qualifiers.cs:16:9:16:22 | Before ... = ... | | +| Qualifiers.cs:16:9:16:23 | After ...; | Qualifiers.cs:17:9:17:26 | ...; | | | Qualifiers.cs:16:13:16:16 | this access | Qualifiers.cs:16:13:16:22 | access to field Field | | -| Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:16:9:16:22 | ... = ... | | -| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:18:9:18:26 | ...; | | -| Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:17:13:17:16 | this access | | +| Qualifiers.cs:16:13:16:22 | After access to field Field | Qualifiers.cs:16:9:16:22 | ... = ... | | +| Qualifiers.cs:16:13:16:22 | Before access to field Field | Qualifiers.cs:16:13:16:16 | this access | | +| Qualifiers.cs:16:13:16:22 | access to field Field | Qualifiers.cs:16:13:16:22 | After access to field Field | | +| Qualifiers.cs:17:9:17:9 | access to local variable q | Qualifiers.cs:17:13:17:25 | Before access to property Property | | +| Qualifiers.cs:17:9:17:25 | ... = ... | Qualifiers.cs:17:9:17:25 | After ... = ... | | +| Qualifiers.cs:17:9:17:25 | After ... = ... | Qualifiers.cs:17:9:17:26 | After ...; | | +| Qualifiers.cs:17:9:17:25 | Before ... = ... | Qualifiers.cs:17:9:17:9 | access to local variable q | | +| Qualifiers.cs:17:9:17:26 | ...; | Qualifiers.cs:17:9:17:25 | Before ... = ... | | +| Qualifiers.cs:17:9:17:26 | After ...; | Qualifiers.cs:18:9:18:26 | ...; | | | Qualifiers.cs:17:13:17:16 | this access | Qualifiers.cs:17:13:17:25 | access to property Property | | -| Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:17:9:17:25 | ... = ... | | -| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:20:9:20:24 | ...; | | -| Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:18:13:18:16 | this access | | +| Qualifiers.cs:17:13:17:25 | After access to property Property | Qualifiers.cs:17:9:17:25 | ... = ... | | +| Qualifiers.cs:17:13:17:25 | Before access to property Property | Qualifiers.cs:17:13:17:16 | this access | | +| Qualifiers.cs:17:13:17:25 | access to property Property | Qualifiers.cs:17:13:17:25 | After access to property Property | | +| Qualifiers.cs:18:9:18:9 | access to local variable q | Qualifiers.cs:18:13:18:25 | Before call to method Method | | +| Qualifiers.cs:18:9:18:25 | ... = ... | Qualifiers.cs:18:9:18:25 | After ... = ... | | +| Qualifiers.cs:18:9:18:25 | After ... = ... | Qualifiers.cs:18:9:18:26 | After ...; | | +| Qualifiers.cs:18:9:18:25 | Before ... = ... | Qualifiers.cs:18:9:18:9 | access to local variable q | | +| Qualifiers.cs:18:9:18:26 | ...; | Qualifiers.cs:18:9:18:25 | Before ... = ... | | +| Qualifiers.cs:18:9:18:26 | After ...; | Qualifiers.cs:20:9:20:24 | ...; | | | Qualifiers.cs:18:13:18:16 | this access | Qualifiers.cs:18:13:18:25 | call to method Method | | -| Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:18:9:18:25 | ... = ... | | -| Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:21:9:21:27 | ...; | | -| Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:20:13:20:23 | access to field StaticField | | +| Qualifiers.cs:18:13:18:25 | After call to method Method | Qualifiers.cs:18:9:18:25 | ... = ... | | +| Qualifiers.cs:18:13:18:25 | Before call to method Method | Qualifiers.cs:18:13:18:16 | this access | | +| Qualifiers.cs:18:13:18:25 | call to method Method | Qualifiers.cs:18:13:18:25 | After call to method Method | | +| Qualifiers.cs:20:9:20:9 | access to local variable q | Qualifiers.cs:20:13:20:23 | access to field StaticField | | +| Qualifiers.cs:20:9:20:23 | ... = ... | Qualifiers.cs:20:9:20:23 | After ... = ... | | +| Qualifiers.cs:20:9:20:23 | After ... = ... | Qualifiers.cs:20:9:20:24 | After ...; | | +| Qualifiers.cs:20:9:20:23 | Before ... = ... | Qualifiers.cs:20:9:20:9 | access to local variable q | | +| Qualifiers.cs:20:9:20:24 | ...; | Qualifiers.cs:20:9:20:23 | Before ... = ... | | +| Qualifiers.cs:20:9:20:24 | After ...; | Qualifiers.cs:21:9:21:27 | ...; | | | Qualifiers.cs:20:13:20:23 | access to field StaticField | Qualifiers.cs:20:9:20:23 | ... = ... | | -| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:22:9:22:27 | ...; | | -| Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | | -| Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:9:21:26 | ... = ... | | -| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:24:9:24:35 | ...; | | -| Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | | -| Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:9:22:26 | ... = ... | | -| Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:25:9:25:38 | ...; | | -| Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:24:13:24:34 | access to field StaticField | | +| Qualifiers.cs:21:9:21:9 | access to local variable q | Qualifiers.cs:21:13:21:26 | Before access to property StaticProperty | | +| Qualifiers.cs:21:9:21:26 | ... = ... | Qualifiers.cs:21:9:21:26 | After ... = ... | | +| Qualifiers.cs:21:9:21:26 | After ... = ... | Qualifiers.cs:21:9:21:27 | After ...; | | +| Qualifiers.cs:21:9:21:26 | Before ... = ... | Qualifiers.cs:21:9:21:9 | access to local variable q | | +| Qualifiers.cs:21:9:21:27 | ...; | Qualifiers.cs:21:9:21:26 | Before ... = ... | | +| Qualifiers.cs:21:9:21:27 | After ...; | Qualifiers.cs:22:9:22:27 | ...; | | +| Qualifiers.cs:21:13:21:26 | After access to property StaticProperty | Qualifiers.cs:21:9:21:26 | ... = ... | | +| Qualifiers.cs:21:13:21:26 | Before access to property StaticProperty | Qualifiers.cs:21:13:21:26 | access to property StaticProperty | | +| Qualifiers.cs:21:13:21:26 | access to property StaticProperty | Qualifiers.cs:21:13:21:26 | After access to property StaticProperty | | +| Qualifiers.cs:22:9:22:9 | access to local variable q | Qualifiers.cs:22:13:22:26 | Before call to method StaticMethod | | +| Qualifiers.cs:22:9:22:26 | ... = ... | Qualifiers.cs:22:9:22:26 | After ... = ... | | +| Qualifiers.cs:22:9:22:26 | After ... = ... | Qualifiers.cs:22:9:22:27 | After ...; | | +| Qualifiers.cs:22:9:22:26 | Before ... = ... | Qualifiers.cs:22:9:22:9 | access to local variable q | | +| Qualifiers.cs:22:9:22:27 | ...; | Qualifiers.cs:22:9:22:26 | Before ... = ... | | +| Qualifiers.cs:22:9:22:27 | After ...; | Qualifiers.cs:24:9:24:35 | ...; | | +| Qualifiers.cs:22:13:22:26 | After call to method StaticMethod | Qualifiers.cs:22:9:22:26 | ... = ... | | +| Qualifiers.cs:22:13:22:26 | Before call to method StaticMethod | Qualifiers.cs:22:13:22:26 | call to method StaticMethod | | +| Qualifiers.cs:22:13:22:26 | call to method StaticMethod | Qualifiers.cs:22:13:22:26 | After call to method StaticMethod | | +| Qualifiers.cs:24:9:24:9 | access to local variable q | Qualifiers.cs:24:13:24:34 | access to field StaticField | | +| Qualifiers.cs:24:9:24:34 | ... = ... | Qualifiers.cs:24:9:24:34 | After ... = ... | | +| Qualifiers.cs:24:9:24:34 | After ... = ... | Qualifiers.cs:24:9:24:35 | After ...; | | +| Qualifiers.cs:24:9:24:34 | Before ... = ... | Qualifiers.cs:24:9:24:9 | access to local variable q | | +| Qualifiers.cs:24:9:24:35 | ...; | Qualifiers.cs:24:9:24:34 | Before ... = ... | | +| Qualifiers.cs:24:9:24:35 | After ...; | Qualifiers.cs:25:9:25:38 | ...; | | | Qualifiers.cs:24:13:24:34 | access to field StaticField | Qualifiers.cs:24:9:24:34 | ... = ... | | -| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:26:9:26:38 | ...; | | -| Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | | -| Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:9:25:37 | ... = ... | | -| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:28:9:28:41 | ...; | | -| Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | | -| Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:9:26:37 | ... = ... | | -| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:29:9:29:47 | ...; | | -| Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:28:13:28:34 | access to field StaticField | | +| Qualifiers.cs:25:9:25:9 | access to local variable q | Qualifiers.cs:25:13:25:37 | Before access to property StaticProperty | | +| Qualifiers.cs:25:9:25:37 | ... = ... | Qualifiers.cs:25:9:25:37 | After ... = ... | | +| Qualifiers.cs:25:9:25:37 | After ... = ... | Qualifiers.cs:25:9:25:38 | After ...; | | +| Qualifiers.cs:25:9:25:37 | Before ... = ... | Qualifiers.cs:25:9:25:9 | access to local variable q | | +| Qualifiers.cs:25:9:25:38 | ...; | Qualifiers.cs:25:9:25:37 | Before ... = ... | | +| Qualifiers.cs:25:9:25:38 | After ...; | Qualifiers.cs:26:9:26:38 | ...; | | +| Qualifiers.cs:25:13:25:37 | After access to property StaticProperty | Qualifiers.cs:25:9:25:37 | ... = ... | | +| Qualifiers.cs:25:13:25:37 | Before access to property StaticProperty | Qualifiers.cs:25:13:25:37 | access to property StaticProperty | | +| Qualifiers.cs:25:13:25:37 | access to property StaticProperty | Qualifiers.cs:25:13:25:37 | After access to property StaticProperty | | +| Qualifiers.cs:26:9:26:9 | access to local variable q | Qualifiers.cs:26:13:26:37 | Before call to method StaticMethod | | +| Qualifiers.cs:26:9:26:37 | ... = ... | Qualifiers.cs:26:9:26:37 | After ... = ... | | +| Qualifiers.cs:26:9:26:37 | After ... = ... | Qualifiers.cs:26:9:26:38 | After ...; | | +| Qualifiers.cs:26:9:26:37 | Before ... = ... | Qualifiers.cs:26:9:26:9 | access to local variable q | | +| Qualifiers.cs:26:9:26:38 | ...; | Qualifiers.cs:26:9:26:37 | Before ... = ... | | +| Qualifiers.cs:26:9:26:38 | After ...; | Qualifiers.cs:28:9:28:41 | ...; | | +| Qualifiers.cs:26:13:26:37 | After call to method StaticMethod | Qualifiers.cs:26:9:26:37 | ... = ... | | +| Qualifiers.cs:26:13:26:37 | Before call to method StaticMethod | Qualifiers.cs:26:13:26:37 | call to method StaticMethod | | +| Qualifiers.cs:26:13:26:37 | call to method StaticMethod | Qualifiers.cs:26:13:26:37 | After call to method StaticMethod | | +| Qualifiers.cs:28:9:28:9 | access to local variable q | Qualifiers.cs:28:13:28:40 | Before access to field Field | | +| Qualifiers.cs:28:9:28:40 | ... = ... | Qualifiers.cs:28:9:28:40 | After ... = ... | | +| Qualifiers.cs:28:9:28:40 | After ... = ... | Qualifiers.cs:28:9:28:41 | After ...; | | +| Qualifiers.cs:28:9:28:40 | Before ... = ... | Qualifiers.cs:28:9:28:9 | access to local variable q | | +| Qualifiers.cs:28:9:28:41 | ...; | Qualifiers.cs:28:9:28:40 | Before ... = ... | | +| Qualifiers.cs:28:9:28:41 | After ...; | Qualifiers.cs:29:9:29:47 | ...; | | | Qualifiers.cs:28:13:28:34 | access to field StaticField | Qualifiers.cs:28:13:28:40 | access to field Field | | -| Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:28:9:28:40 | ... = ... | | -| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:30:9:30:47 | ...; | | -| Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | | -| Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:13:29:46 | access to property Property | | -| Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:9:29:46 | ... = ... | | -| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:10:10:10:10 | exit M (normal) | | -| Qualifiers.cs:30:9:30:47 | ...; | 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: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 | 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 | | +| Qualifiers.cs:28:13:28:40 | After access to field Field | Qualifiers.cs:28:9:28:40 | ... = ... | | +| Qualifiers.cs:28:13:28:40 | Before access to field Field | Qualifiers.cs:28:13:28:34 | access to field StaticField | | +| Qualifiers.cs:28:13:28:40 | access to field Field | Qualifiers.cs:28:13:28:40 | After access to field Field | | +| Qualifiers.cs:29:9:29:9 | access to local variable q | Qualifiers.cs:29:13:29:46 | Before access to property Property | | +| Qualifiers.cs:29:9:29:46 | ... = ... | Qualifiers.cs:29:9:29:46 | After ... = ... | | +| Qualifiers.cs:29:9:29:46 | After ... = ... | Qualifiers.cs:29:9:29:47 | After ...; | | +| Qualifiers.cs:29:9:29:46 | Before ... = ... | Qualifiers.cs:29:9:29:9 | access to local variable q | | +| Qualifiers.cs:29:9:29:47 | ...; | Qualifiers.cs:29:9:29:46 | Before ... = ... | | +| Qualifiers.cs:29:9:29:47 | After ...; | Qualifiers.cs:30:9:30:47 | ...; | | +| Qualifiers.cs:29:13:29:37 | After access to property StaticProperty | Qualifiers.cs:29:13:29:46 | access to property Property | | +| Qualifiers.cs:29:13:29:37 | Before access to property StaticProperty | Qualifiers.cs:29:13:29:37 | access to property StaticProperty | | +| Qualifiers.cs:29:13:29:37 | access to property StaticProperty | Qualifiers.cs:29:13:29:37 | After access to property StaticProperty | | +| Qualifiers.cs:29:13:29:46 | After access to property Property | Qualifiers.cs:29:9:29:46 | ... = ... | | +| Qualifiers.cs:29:13:29:46 | Before access to property Property | Qualifiers.cs:29:13:29:37 | Before access to property StaticProperty | | +| Qualifiers.cs:29:13:29:46 | access to property Property | Qualifiers.cs:29:13:29:46 | After access to property Property | | +| Qualifiers.cs:30:9:30:9 | access to local variable q | Qualifiers.cs:30:13:30:46 | Before call to method Method | | +| Qualifiers.cs:30:9:30:46 | ... = ... | Qualifiers.cs:30:9:30:46 | After ... = ... | | +| Qualifiers.cs:30:9:30:46 | After ... = ... | Qualifiers.cs:30:9:30:47 | After ...; | | +| Qualifiers.cs:30:9:30:46 | Before ... = ... | Qualifiers.cs:30:9:30:9 | access to local variable q | | +| Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:30:9:30:46 | Before ... = ... | | +| Qualifiers.cs:30:9:30:47 | After ...; | Qualifiers.cs:11:5:31:5 | After {...} | | +| Qualifiers.cs:30:13:30:37 | After call to method StaticMethod | Qualifiers.cs:30:13:30:46 | call to method Method | | +| Qualifiers.cs:30:13:30:37 | Before call to method StaticMethod | 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:37 | After call to method StaticMethod | | +| Qualifiers.cs:30:13:30:46 | After call to method Method | Qualifiers.cs:30:9:30:46 | ... = ... | | +| Qualifiers.cs:30:13:30:46 | Before call to method Method | Qualifiers.cs:30:13:30:37 | Before call to method StaticMethod | | +| Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:46 | After call to method Method | | +| Switch.cs:3:7:3:12 | After call to constructor Object | Switch.cs:3:7:3:12 | {...} | | +| Switch.cs:3:7:3:12 | After call to method | Switch.cs:3:7:3:12 | Before call to constructor Object | | +| Switch.cs:3:7:3:12 | Before call to constructor Object | Switch.cs:3:7:3:12 | call to constructor Object | | +| Switch.cs:3:7:3:12 | Before call to method | Switch.cs:3:7:3:12 | this access | | +| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Before call to method | | +| Switch.cs:3:7:3:12 | Normal Exit | Switch.cs:3:7:3:12 | Exit | | +| Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | After call to constructor Object | | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | After call to method | | | 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 | | +| Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | Normal Exit | | +| Switch.cs:5:10:5:11 | Entry | Switch.cs:6:5:8:5 | {...} | | +| Switch.cs:5:10:5:11 | Normal Exit | Switch.cs:5:10:5:11 | Exit | | +| Switch.cs:6:5:8:5 | After {...} | Switch.cs:5:10:5:11 | Normal Exit | | | Switch.cs:6:5:8:5 | {...} | Switch.cs:7:9:7:22 | switch (...) {...} | | +| Switch.cs:7:9:7:22 | After switch (...) {...} | Switch.cs:6:5:8:5 | After {...} | | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:7:17:7:17 | access to parameter o | | -| Switch.cs:7:17:7:17 | access to parameter o | Switch.cs:5:10:5:11 | exit M1 (normal) | | -| Switch.cs:10:10:10:11 | enter M2 | Switch.cs:11:5:33:5 | {...} | | -| Switch.cs:10:10:10:11 | exit M2 (abnormal) | Switch.cs:10:10:10:11 | exit M2 | | -| Switch.cs:10:10:10:11 | exit M2 (normal) | Switch.cs:10:10:10:11 | exit M2 | | +| Switch.cs:7:17:7:17 | access to parameter o | Switch.cs:7:9:7:22 | After switch (...) {...} | | +| Switch.cs:10:10:10:11 | Entry | Switch.cs:11:5:33:5 | {...} | | +| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | Exit | | +| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | Exit | | | Switch.cs:11:5:33:5 | {...} | Switch.cs:12:9:32:9 | switch (...) {...} | | | Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:12:17:12:17 | access to parameter o | | | Switch.cs:12:17:12:17 | access to parameter o | Switch.cs:14:13:14:21 | case ...: | | -| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:18:14:20 | "a" | | -| Switch.cs:14:18:14:20 | "a" | Switch.cs:15:17:15:23 | return ...; | match | -| Switch.cs:14:18:14:20 | "a" | Switch.cs:16:13:16:19 | case ...: | no-match | -| Switch.cs:15:17:15:23 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return | -| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:18:16:18 | 0 | | -| Switch.cs:16:18:16:18 | 0 | Switch.cs:17:23:17:37 | object creation of type Exception | match | -| Switch.cs:16:18:16:18 | 0 | Switch.cs:18:13:18:22 | case ...: | no-match | -| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception | -| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | | -| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:18:18:21 | null | | -| Switch.cs:18:18:18:21 | null | Switch.cs:19:17:19:29 | goto default; | match | -| Switch.cs:18:18:18:21 | null | Switch.cs:20:13:20:23 | case ...: | no-match | -| Switch.cs:19:17:19:29 | goto default; | Switch.cs:30:13:30:20 | default: | goto | -| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:18:20:22 | Int32 i | | -| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:21:17:22:27 | if (...) ... | match | -| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:24:13:24:56 | case ...: | no-match | -| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:21:21:21 | access to parameter o | | +| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:14:18:14:20 | "a" | | +| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | case ...: | | +| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:13:14:21 | After case ...: [match] | match | +| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:13:14:21 | After case ...: [no-match] | no-match | +| Switch.cs:14:18:14:20 | "a" | Switch.cs:15:17:15:23 | Before return ...; | | +| Switch.cs:15:17:15:23 | Before return ...; | Switch.cs:15:17:15:23 | return ...; | | +| Switch.cs:15:17:15:23 | return ...; | Switch.cs:10:10:10:11 | Normal Exit | return | +| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:16:18:16:18 | 0 | | +| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | case ...: | | +| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | After case ...: [match] | match | +| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | After case ...: [no-match] | no-match | +| Switch.cs:16:18:16:18 | 0 | Switch.cs:17:17:17:38 | Before throw ...; | | +| Switch.cs:17:17:17:38 | Before throw ...; | Switch.cs:17:23:17:37 | Before object creation of type Exception | | +| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | Exceptional Exit | exception | +| Switch.cs:17:23:17:37 | After object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | | +| Switch.cs:17:23:17:37 | Before object creation of type Exception | Switch.cs:17:23:17:37 | object creation of type Exception | | +| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:23:17:37 | After object creation of type Exception | | +| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:18:18:18:21 | null | | +| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | case ...: | | +| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | After case ...: [match] | match | +| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | After case ...: [no-match] | no-match | +| Switch.cs:18:18:18:21 | null | Switch.cs:19:17:19:29 | Before goto default; | | +| Switch.cs:19:17:19:29 | Before goto default; | Switch.cs:19:17:19:29 | goto default; | | +| Switch.cs:19:17:19:29 | goto default; | Switch.cs:30:13:30:20 | After default: [match] | goto | +| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:20:18:20:22 | Int32 i | | +| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | case ...: | | +| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | After case ...: [match] | match | +| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | After case ...: [no-match] | no-match | +| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:21:17:22:27 | if (...) ... | | +| Switch.cs:21:17:22:27 | After if (...) ... | Switch.cs:23:17:23:28 | Before goto case ...; | | +| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:21:21:29 | Before ... == ... | | | Switch.cs:21:21:21:21 | access to parameter o | Switch.cs:21:26:21:29 | null | | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:22:21:22:27 | return ...; | true | -| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:23:27:23:27 | 0 | false | +| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [false] | false | +| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [true] | true | +| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:21:17:22:27 | After if (...) ... | | +| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:22:21:22:27 | Before return ...; | | +| Switch.cs:21:21:21:29 | Before ... == ... | Switch.cs:21:21:21:21 | access to parameter o | | | Switch.cs:21:26:21:29 | null | Switch.cs:21:21:21:29 | ... == ... | | -| Switch.cs:22:21:22:27 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return | -| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:16:13:16:19 | case ...: | goto | +| Switch.cs:22:21:22:27 | Before return ...; | Switch.cs:22:21:22:27 | return ...; | | +| Switch.cs:22:21:22:27 | return ...; | Switch.cs:10:10:10:11 | Normal Exit | return | +| Switch.cs:23:17:23:28 | Before goto case ...; | Switch.cs:23:27:23:27 | 0 | | +| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:16:13:16:19 | After case ...: [match] | goto | | Switch.cs:23:27:23:27 | 0 | Switch.cs:23:17:23:28 | goto case ...; | | -| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:18:24:25 | String s | | -| Switch.cs:24:18:24:25 | String s | Switch.cs:24:32:24:32 | access to local variable s | match | -| Switch.cs:24:18:24:25 | String s | Switch.cs:27:13:27:39 | case ...: | no-match | +| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:18:24:25 | String s | | +| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | | +| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | After case ...: [match] | match | +| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | After case ...: [no-match] | no-match | +| Switch.cs:24:18:24:25 | String s | Switch.cs:24:32:24:55 | ... && ... | | | Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:39 | access to property Length | | -| Switch.cs:24:32:24:39 | access to property Length | Switch.cs:24:43:24:43 | 0 | | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:48:24:48 | access to local variable s | true | -| Switch.cs:24:32:24:55 | [false] ... && ... | Switch.cs:27:13:27:39 | case ...: | false | -| Switch.cs:24:32:24:55 | [true] ... && ... | Switch.cs:25:17:25:37 | ...; | true | +| Switch.cs:24:32:24:39 | After access to property Length | Switch.cs:24:43:24:43 | 0 | | +| Switch.cs:24:32:24:39 | Before access to property Length | Switch.cs:24:32:24:32 | access to local variable s | | +| Switch.cs:24:32:24:39 | access to property Length | Switch.cs:24:32:24:39 | After access to property Length | | +| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | After ... > ... [false] | false | +| Switch.cs:24:32:24:43 | ... > ... | Switch.cs:24:32:24:43 | After ... > ... [true] | true | +| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | Before ... != ... | | +| Switch.cs:24:32:24:43 | Before ... > ... | Switch.cs:24:32:24:39 | Before access to property Length | | +| Switch.cs:24:32:24:55 | ... && ... | Switch.cs:24:32:24:43 | Before ... > ... | | +| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:27:13:27:39 | case ...: | | +| Switch.cs:24:32:24:55 | After ... && ... [true] | Switch.cs:25:17:25:37 | ...; | | | Switch.cs:24:43:24:43 | 0 | Switch.cs:24:32:24:43 | ... > ... | | | Switch.cs:24:48:24:48 | access to local variable s | Switch.cs:24:53:24:55 | "a" | | -| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:32:24:55 | [false] ... && ... | false | -| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:32:24:55 | [true] ... && ... | true | +| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | After ... != ... [false] | false | +| Switch.cs:24:48:24:55 | ... != ... | Switch.cs:24:48:24:55 | After ... != ... [true] | true | +| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | false | +| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:24:32:24:55 | After ... && ... [true] | true | +| Switch.cs:24:48:24:55 | Before ... != ... | Switch.cs:24:48:24:48 | access to local variable s | | | Switch.cs:24:53:24:55 | "a" | Switch.cs:24:48:24:55 | ... != ... | | -| Switch.cs:25:17:25:36 | call to method WriteLine | Switch.cs:26:17:26:23 | return ...; | | -| Switch.cs:25:17:25:37 | ...; | Switch.cs:25:35:25:35 | access to local variable s | | +| Switch.cs:25:17:25:36 | After call to method WriteLine | Switch.cs:25:17:25:37 | After ...; | | +| Switch.cs:25:17:25:36 | Before call to method WriteLine | Switch.cs:25:35:25:35 | access to local variable s | | +| Switch.cs:25:17:25:36 | call to method WriteLine | Switch.cs:25:17:25:36 | After call to method WriteLine | | +| Switch.cs:25:17:25:37 | ...; | Switch.cs:25:17:25:36 | Before call to method WriteLine | | +| Switch.cs:25:17:25:37 | After ...; | Switch.cs:26:17:26:23 | Before return ...; | | | Switch.cs:25:35:25:35 | access to local variable s | Switch.cs:25:17:25:36 | call to method WriteLine | | -| Switch.cs:26:17:26:23 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return | -| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | | -| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:32:27:38 | call to method Throw | match | -| Switch.cs:27:18:27:25 | Double d | Switch.cs:30:13:30:20 | default: | no-match | -| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception | -| Switch.cs:28:13:28:17 | Label: | Switch.cs:29:17:29:23 | return ...; | | -| Switch.cs:29:17:29:23 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return | -| Switch.cs:30:13:30:20 | default: | Switch.cs:31:17:31:27 | goto ...; | | +| Switch.cs:26:17:26:23 | Before return ...; | Switch.cs:26:17:26:23 | return ...; | | +| Switch.cs:26:17:26:23 | return ...; | Switch.cs:10:10:10:11 | Normal Exit | return | +| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:18:27:25 | Double d | | +| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:30:13:30:20 | default: | | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [match] | match | +| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [no-match] | no-match | +| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:32:27:38 | Before call to method Throw | | +| Switch.cs:27:32:27:38 | Before call to method Throw | Switch.cs:27:32:27:38 | call to method Throw | | +| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | Exceptional Exit | exception | +| Switch.cs:28:13:28:17 | Label: | Switch.cs:29:17:29:23 | Before return ...; | | +| Switch.cs:29:17:29:23 | Before return ...; | Switch.cs:29:17:29:23 | return ...; | | +| Switch.cs:29:17:29:23 | return ...; | Switch.cs:10:10:10:11 | Normal Exit | return | +| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:31:17:31:27 | Before goto ...; | | +| Switch.cs:30:13:30:20 | default: | Switch.cs:30:13:30:20 | After default: [match] | match | +| Switch.cs:31:17:31:27 | Before goto ...; | Switch.cs:31:17:31:27 | goto ...; | | | Switch.cs:31:17:31:27 | goto ...; | Switch.cs:28:13:28:17 | Label: | goto | -| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:36:5:42:5 | {...} | | -| Switch.cs:35:10:35:11 | exit M3 (abnormal) | Switch.cs:35:10:35:11 | exit M3 | | +| Switch.cs:35:10:35:11 | Entry | Switch.cs:36:5:42:5 | {...} | | +| Switch.cs:35:10:35:11 | Exceptional Exit | Switch.cs:35:10:35:11 | Exit | | | Switch.cs:36:5:42:5 | {...} | Switch.cs:37:9:41:9 | switch (...) {...} | | -| Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:17:37:23 | call to method Throw | | -| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | exit M3 (abnormal) | exception | -| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:45:5:53:5 | {...} | | -| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | exit M4 | | +| Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:17:37:23 | Before call to method Throw | | +| Switch.cs:37:17:37:23 | Before call to method Throw | Switch.cs:37:17:37:23 | call to method Throw | | +| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | Exceptional Exit | exception | +| Switch.cs:44:10:44:11 | Entry | Switch.cs:45:5:53:5 | {...} | | +| Switch.cs:44:10:44:11 | Normal Exit | Switch.cs:44:10:44:11 | Exit | | +| Switch.cs:45:5:53:5 | After {...} | Switch.cs:44:10:44:11 | Normal Exit | | | Switch.cs:45:5:53:5 | {...} | Switch.cs:46:9:52:9 | switch (...) {...} | | +| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:45:5:53:5 | After {...} | | | Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:46:17:46:17 | access to parameter o | | | Switch.cs:46:17:46:17 | access to parameter o | Switch.cs:48:13:48:23 | case ...: | | -| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:18:48:20 | access to type Int32 | | -| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:49:17:49:22 | break; | match | -| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:50:13:50:39 | case ...: | no-match | -| Switch.cs:49:17:49:22 | break; | Switch.cs:44:10:44:11 | exit M4 (normal) | break | -| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:18:50:21 | access to type Boolean | | -| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:44:10:44:11 | exit M4 (normal) | no-match | -| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:30:50:30 | access to parameter o | match | +| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:48:18:48:20 | access to type Int32 | | +| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | case ...: | | +| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:13:48:23 | After case ...: [match] | match | +| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:13:48:23 | After case ...: [no-match] | no-match | +| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:49:17:49:22 | Before break; | | +| Switch.cs:49:17:49:22 | Before break; | Switch.cs:49:17:49:22 | break; | | +| Switch.cs:49:17:49:22 | break; | Switch.cs:46:9:52:9 | After switch (...) {...} | break | +| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:18:50:21 | access to type Boolean | | +| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:46:9:52:9 | After switch (...) {...} | | +| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | After case ...: [match] | match | +| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | After case ...: [no-match] | no-match | +| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:30:50:38 | Before ... != ... | | | Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:35:50:38 | null | | -| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:44:10:44:11 | exit M4 (normal) | false | -| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:51:17:51:22 | break; | true | +| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [false] | false | +| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [true] | true | +| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:46:9:52:9 | After switch (...) {...} | | +| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:51:17:51:22 | Before break; | | +| Switch.cs:50:30:50:38 | Before ... != ... | Switch.cs:50:30:50:30 | access to parameter o | | | Switch.cs:50:35:50:38 | null | Switch.cs:50:30:50:38 | ... != ... | | -| Switch.cs:51:17:51:22 | break; | Switch.cs:44:10:44:11 | exit M4 (normal) | break | -| Switch.cs:55:10:55:11 | enter M5 | Switch.cs:56:5:64:5 | {...} | | -| Switch.cs:55:10:55:11 | exit M5 (normal) | Switch.cs:55:10:55:11 | exit M5 | | +| Switch.cs:51:17:51:22 | Before break; | Switch.cs:51:17:51:22 | break; | | +| Switch.cs:51:17:51:22 | break; | Switch.cs:46:9:52:9 | After switch (...) {...} | break | +| Switch.cs:55:10:55:11 | Entry | Switch.cs:56:5:64:5 | {...} | | +| Switch.cs:55:10:55:11 | Normal Exit | Switch.cs:55:10:55:11 | Exit | | +| Switch.cs:56:5:64:5 | After {...} | Switch.cs:55:10:55:11 | Normal Exit | | | Switch.cs:56:5:64:5 | {...} | Switch.cs:57:9:63:9 | switch (...) {...} | | -| Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:57:17:57:17 | 1 | | +| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:56:5:64:5 | After {...} | | +| Switch.cs:57:9:63:9 | switch (...) {...} | Switch.cs:57:17:57:21 | Before ... + ... | | | Switch.cs:57:17:57:17 | 1 | Switch.cs:57:21:57:21 | 2 | | -| Switch.cs:57:17:57:21 | ... + ... | Switch.cs:59:13:59:19 | case ...: | | +| Switch.cs:57:17:57:21 | ... + ... | Switch.cs:57:17:57:21 | After ... + ... | | +| Switch.cs:57:17:57:21 | After ... + ... | Switch.cs:59:13:59:19 | case ...: | | +| Switch.cs:57:17:57:21 | Before ... + ... | Switch.cs:57:17:57:17 | 1 | | | Switch.cs:57:21:57:21 | 2 | Switch.cs:57:17:57:21 | ... + ... | | -| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:18:59:18 | 2 | | -| Switch.cs:59:18:59:18 | 2 | Switch.cs:61:13:61:19 | case ...: | no-match | -| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:18:61:18 | 3 | | -| Switch.cs:61:18:61:18 | 3 | Switch.cs:62:17:62:22 | break; | match | -| Switch.cs:62:17:62:22 | break; | Switch.cs:55:10:55:11 | exit M5 (normal) | break | -| Switch.cs:66:10:66:11 | enter M6 | Switch.cs:67:5:75:5 | {...} | | -| Switch.cs:66:10:66:11 | exit M6 (normal) | Switch.cs:66:10:66:11 | exit M6 | | +| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:59:18:59:18 | 2 | | +| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | case ...: | | +| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:13:59:19 | After case ...: [match] | match | +| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:13:59:19 | After case ...: [no-match] | no-match | +| Switch.cs:59:18:59:18 | 2 | Switch.cs:60:17:60:22 | Before break; | | +| Switch.cs:60:17:60:22 | Before break; | Switch.cs:60:17:60:22 | break; | | +| Switch.cs:60:17:60:22 | break; | Switch.cs:57:9:63:9 | After switch (...) {...} | break | +| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:61:18:61:18 | 3 | | +| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:57:9:63:9 | After switch (...) {...} | | +| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | After case ...: [match] | match | +| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | After case ...: [no-match] | no-match | +| Switch.cs:61:18:61:18 | 3 | Switch.cs:62:17:62:22 | Before break; | | +| Switch.cs:62:17:62:22 | Before break; | Switch.cs:62:17:62:22 | break; | | +| Switch.cs:62:17:62:22 | break; | Switch.cs:57:9:63:9 | After switch (...) {...} | break | +| Switch.cs:66:10:66:11 | Entry | Switch.cs:67:5:75:5 | {...} | | +| Switch.cs:66:10:66:11 | Normal Exit | Switch.cs:66:10:66:11 | Exit | | +| Switch.cs:67:5:75:5 | After {...} | Switch.cs:66:10:66:11 | Normal Exit | | | Switch.cs:67:5:75:5 | {...} | Switch.cs:68:9:74:9 | switch (...) {...} | | -| Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:68:25:68:25 | access to parameter s | | -| Switch.cs:68:17:68:25 | (...) ... | Switch.cs:70:13:70:23 | case ...: | | +| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:67:5:75:5 | After {...} | | +| Switch.cs:68:9:74:9 | switch (...) {...} | Switch.cs:68:17:68:25 | Before (...) ... | | +| Switch.cs:68:17:68:25 | (...) ... | Switch.cs:68:17:68:25 | After (...) ... | | +| Switch.cs:68:17:68:25 | After (...) ... | Switch.cs:70:13:70:23 | case ...: | | +| Switch.cs:68:17:68:25 | Before (...) ... | Switch.cs:68:25:68:25 | access to parameter s | | | Switch.cs:68:25:68:25 | access to parameter s | Switch.cs:68:17:68:25 | (...) ... | | -| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:18:70:20 | access to type Int32 | | -| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:72:13:72:20 | case ...: | no-match | -| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:18:72:19 | "" | | -| Switch.cs:72:18:72:19 | "" | Switch.cs:66:10:66:11 | exit M6 (normal) | no-match | -| Switch.cs:72:18:72:19 | "" | Switch.cs:73:17:73:22 | break; | match | -| Switch.cs:73:17:73:22 | break; | Switch.cs:66:10:66:11 | exit M6 (normal) | break | -| Switch.cs:77:10:77:11 | enter M7 | Switch.cs:78:5:89:5 | {...} | | -| Switch.cs:77:10:77:11 | exit M7 (normal) | Switch.cs:77:10:77:11 | exit M7 | | +| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:70:18:70:20 | access to type Int32 | | +| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | case ...: | | +| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:13:70:23 | After case ...: [match] | match | +| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:13:70:23 | After case ...: [no-match] | no-match | +| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:71:17:71:22 | Before break; | | +| Switch.cs:71:17:71:22 | Before break; | Switch.cs:71:17:71:22 | break; | | +| Switch.cs:71:17:71:22 | break; | Switch.cs:68:9:74:9 | After switch (...) {...} | break | +| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:72:18:72:19 | "" | | +| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:68:9:74:9 | After switch (...) {...} | | +| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | After case ...: [match] | match | +| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | After case ...: [no-match] | no-match | +| Switch.cs:72:18:72:19 | "" | Switch.cs:73:17:73:22 | Before break; | | +| Switch.cs:73:17:73:22 | Before break; | Switch.cs:73:17:73:22 | break; | | +| Switch.cs:73:17:73:22 | break; | Switch.cs:68:9:74:9 | After switch (...) {...} | break | +| Switch.cs:77:10:77:11 | Entry | Switch.cs:78:5:89:5 | {...} | | +| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | Exit | | | Switch.cs:78:5:89:5 | {...} | Switch.cs:79:9:87:9 | switch (...) {...} | | +| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:88:9:88:21 | Before return ...; | | | Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:79:17:79:17 | access to parameter i | | | Switch.cs:79:17:79:17 | access to parameter i | Switch.cs:81:13:81:19 | case ...: | | -| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:18:81:18 | 1 | | -| Switch.cs:81:18:81:18 | 1 | Switch.cs:82:24:82:27 | true | match | -| Switch.cs:81:18:81:18 | 1 | Switch.cs:83:13:83:19 | case ...: | no-match | -| Switch.cs:82:17:82:28 | return ...; | Switch.cs:77:10:77:11 | exit M7 (normal) | return | +| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:81:18:81:18 | 1 | | +| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | case ...: | | +| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:13:81:19 | After case ...: [match] | match | +| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:13:81:19 | After case ...: [no-match] | no-match | +| Switch.cs:81:18:81:18 | 1 | Switch.cs:82:17:82:28 | Before return ...; | | +| Switch.cs:82:17:82:28 | Before return ...; | Switch.cs:82:24:82:27 | true | | +| Switch.cs:82:17:82:28 | return ...; | Switch.cs:77:10:77:11 | Normal Exit | return | | Switch.cs:82:24:82:27 | true | Switch.cs:82:17:82:28 | return ...; | | -| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:18:83:18 | 2 | | -| Switch.cs:83:18:83:18 | 2 | Switch.cs:84:17:85:26 | if (...) ... | match | -| Switch.cs:83:18:83:18 | 2 | Switch.cs:88:16:88:20 | false | no-match | -| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:21:84:21 | access to parameter j | | +| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:83:18:83:18 | 2 | | +| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:79:9:87:9 | After switch (...) {...} | | +| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | After case ...: [match] | match | +| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | After case ...: [no-match] | no-match | +| Switch.cs:83:18:83:18 | 2 | Switch.cs:84:17:85:26 | if (...) ... | | +| Switch.cs:84:17:85:26 | After if (...) ... | Switch.cs:86:17:86:28 | Before return ...; | | +| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:21:84:25 | Before ... > ... | | | Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:84:25:84:25 | 2 | | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:85:21:85:26 | break; | true | -| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:86:24:86:27 | true | false | +| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | After ... > ... [false] | false | +| Switch.cs:84:21:84:25 | ... > ... | Switch.cs:84:21:84:25 | After ... > ... [true] | true | +| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:84:17:85:26 | After if (...) ... | | +| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:85:21:85:26 | Before break; | | +| Switch.cs:84:21:84:25 | Before ... > ... | Switch.cs:84:21:84:21 | access to parameter j | | | Switch.cs:84:25:84:25 | 2 | Switch.cs:84:21:84:25 | ... > ... | | -| Switch.cs:85:21:85:26 | break; | Switch.cs:88:16:88:20 | false | break | -| Switch.cs:86:17:86:28 | return ...; | Switch.cs:77:10:77:11 | exit M7 (normal) | return | +| Switch.cs:85:21:85:26 | Before break; | Switch.cs:85:21:85:26 | break; | | +| Switch.cs:85:21:85:26 | break; | Switch.cs:79:9:87:9 | After switch (...) {...} | break | +| Switch.cs:86:17:86:28 | Before return ...; | Switch.cs:86:24:86:27 | true | | +| Switch.cs:86:17:86:28 | return ...; | Switch.cs:77:10:77:11 | Normal Exit | return | | Switch.cs:86:24:86:27 | true | Switch.cs:86:17:86:28 | return ...; | | -| Switch.cs:88:9:88:21 | return ...; | Switch.cs:77:10:77:11 | exit M7 (normal) | return | +| Switch.cs:88:9:88:21 | Before return ...; | Switch.cs:88:16:88:20 | false | | +| Switch.cs:88:9:88:21 | return ...; | Switch.cs:77:10:77:11 | Normal Exit | return | | Switch.cs:88:16:88:20 | false | Switch.cs:88:9:88:21 | return ...; | | -| Switch.cs:91:10:91:11 | enter M8 | Switch.cs:92:5:99:5 | {...} | | -| Switch.cs:91:10:91:11 | exit M8 (normal) | Switch.cs:91:10:91:11 | exit M8 | | +| Switch.cs:91:10:91:11 | Entry | Switch.cs:92:5:99:5 | {...} | | +| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | Exit | | | Switch.cs:92:5:99:5 | {...} | Switch.cs:93:9:97:9 | switch (...) {...} | | +| Switch.cs:93:9:97:9 | After switch (...) {...} | Switch.cs:98:9:98:21 | Before return ...; | | | Switch.cs:93:9:97:9 | switch (...) {...} | Switch.cs:93:17:93:17 | access to parameter o | | | Switch.cs:93:17:93:17 | access to parameter o | Switch.cs:95:13:95:23 | case ...: | | -| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:18:95:20 | access to type Int32 | | -| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:96:24:96:27 | true | match | -| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:98:16:98:20 | false | no-match | -| Switch.cs:96:17:96:28 | return ...; | Switch.cs:91:10:91:11 | exit M8 (normal) | return | +| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:95:18:95:20 | access to type Int32 | | +| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:93:9:97:9 | After switch (...) {...} | | +| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:13:95:23 | After case ...: [match] | match | +| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:13:95:23 | After case ...: [no-match] | no-match | +| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:96:17:96:28 | Before return ...; | | +| Switch.cs:96:17:96:28 | Before return ...; | Switch.cs:96:24:96:27 | true | | +| Switch.cs:96:17:96:28 | return ...; | Switch.cs:91:10:91:11 | Normal Exit | return | | Switch.cs:96:24:96:27 | true | Switch.cs:96:17:96:28 | return ...; | | -| Switch.cs:98:9:98:21 | return ...; | Switch.cs:91:10:91:11 | exit M8 (normal) | return | +| Switch.cs:98:9:98:21 | Before return ...; | Switch.cs:98:16:98:20 | false | | +| Switch.cs:98:9:98:21 | return ...; | Switch.cs:91:10:91:11 | Normal Exit | return | | Switch.cs:98:16:98:20 | false | Switch.cs:98:9:98:21 | return ...; | | -| Switch.cs:101:9:101:10 | enter M9 | Switch.cs:102:5:109:5 | {...} | | -| Switch.cs:101:9:101:10 | exit M9 (normal) | Switch.cs:101:9:101:10 | exit M9 | | +| Switch.cs:101:9:101:10 | Entry | Switch.cs:102:5:109:5 | {...} | | +| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | Exit | | | Switch.cs:102:5:109:5 | {...} | Switch.cs:103:9:107:9 | switch (...) {...} | | -| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:103:17:103:17 | access to parameter s | | -| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:25 | access to property Length | non-null | -| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:105:13:105:19 | case ...: | null | -| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:105:13:105:19 | case ...: | | -| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:18:105:18 | 0 | | -| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:28:105:28 | 0 | match | -| Switch.cs:105:18:105:18 | 0 | Switch.cs:106:13:106:19 | case ...: | no-match | -| Switch.cs:105:21:105:29 | return ...; | Switch.cs:101:9:101:10 | exit M9 (normal) | return | +| Switch.cs:103:9:107:9 | After switch (...) {...} | Switch.cs:108:9:108:18 | Before return ...; | | +| Switch.cs:103:9:107:9 | switch (...) {...} | Switch.cs:103:17:103:25 | Before access to property Length | | +| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:103:17:103:25 | access to property Length | | +| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:103:17:103:25 | After access to property Length | | +| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | non-null | +| Switch.cs:103:17:103:17 | access to parameter s | Switch.cs:103:17:103:17 | After access to parameter s [null] | null | +| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | case ...: | | +| Switch.cs:103:17:103:25 | Before access to property Length | Switch.cs:103:17:103:17 | access to parameter s | | +| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:25 | After access to property Length | | +| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:18:105:18 | 0 | | +| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | case ...: | | +| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | After case ...: [match] | match | +| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | After case ...: [no-match] | no-match | +| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:21:105:29 | Before return ...; | | +| Switch.cs:105:21:105:29 | Before return ...; | Switch.cs:105:28:105:28 | 0 | | +| Switch.cs:105:21:105:29 | return ...; | Switch.cs:101:9:101:10 | Normal Exit | return | | Switch.cs:105:28:105:28 | 0 | Switch.cs:105:21:105:29 | return ...; | | -| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:18:106:18 | 1 | | -| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:28:106:28 | 1 | match | -| Switch.cs:106:18:106:18 | 1 | Switch.cs:108:17:108:17 | 1 | no-match | -| Switch.cs:106:21:106:29 | return ...; | Switch.cs:101:9:101:10 | exit M9 (normal) | return | +| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:18:106:18 | 1 | | +| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:103:9:107:9 | After switch (...) {...} | | +| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | After case ...: [match] | match | +| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | After case ...: [no-match] | no-match | +| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:21:106:29 | Before return ...; | | +| Switch.cs:106:21:106:29 | Before return ...; | Switch.cs:106:28:106:28 | 1 | | +| Switch.cs:106:21:106:29 | return ...; | Switch.cs:101:9:101:10 | Normal Exit | return | | Switch.cs:106:28:106:28 | 1 | Switch.cs:106:21:106:29 | return ...; | | -| Switch.cs:108:9:108:18 | return ...; | Switch.cs:101:9:101:10 | exit M9 (normal) | return | -| Switch.cs:108:16:108:17 | -... | Switch.cs:108:9:108:18 | return ...; | | +| Switch.cs:108:9:108:18 | Before return ...; | Switch.cs:108:16:108:17 | Before -... | | +| Switch.cs:108:9:108:18 | return ...; | Switch.cs:101:9:101:10 | Normal Exit | return | +| Switch.cs:108:16:108:17 | -... | Switch.cs:108:16:108:17 | After -... | | +| Switch.cs:108:16:108:17 | After -... | Switch.cs:108:9:108:18 | return ...; | | +| Switch.cs:108:16:108:17 | Before -... | Switch.cs:108:17:108:17 | 1 | | | Switch.cs:108:17:108:17 | 1 | Switch.cs:108:16:108:17 | -... | | -| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:34:111:48 | object creation of type Exception | | -| Switch.cs:111:17:111:21 | exit Throw (abnormal) | Switch.cs:111:17:111:21 | exit Throw | | -| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | exit Throw (abnormal) | exception | -| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:28:111:48 | throw ... | | -| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:114:5:121:5 | {...} | | -| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | exit M10 | | +| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:28:111:48 | Before throw ... | | +| Switch.cs:111:17:111:21 | Exceptional Exit | Switch.cs:111:17:111:21 | Exit | | +| Switch.cs:111:28:111:48 | Before throw ... | Switch.cs:111:34:111:48 | Before object creation of type Exception | | +| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | Exceptional Exit | exception | +| Switch.cs:111:34:111:48 | After object creation of type Exception | Switch.cs:111:28:111:48 | throw ... | | +| Switch.cs:111:34:111:48 | Before object creation of type Exception | Switch.cs:111:34:111:48 | object creation of type Exception | | +| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:34:111:48 | After object creation of type Exception | | +| Switch.cs:113:9:113:11 | Entry | Switch.cs:114:5:121:5 | {...} | | +| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | Exit | | | Switch.cs:114:5:121:5 | {...} | Switch.cs:115:9:119:9 | switch (...) {...} | | -| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:115:17:115:17 | access to parameter s | | +| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:120:9:120:18 | Before return ...; | | +| Switch.cs:115:9:119:9 | switch (...) {...} | Switch.cs:115:17:115:24 | Before access to property Length | | | Switch.cs:115:17:115:17 | access to parameter s | Switch.cs:115:17:115:24 | access to property Length | | -| Switch.cs:115:17:115:24 | access to property Length | Switch.cs:117:13:117:35 | case ...: | | -| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:18:117:18 | 3 | | -| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:25:117:25 | access to parameter s | match | -| Switch.cs:117:18:117:18 | 3 | Switch.cs:118:13:118:34 | case ...: | no-match | +| Switch.cs:115:17:115:24 | After access to property Length | Switch.cs:117:13:117:35 | case ...: | | +| Switch.cs:115:17:115:24 | Before access to property Length | Switch.cs:115:17:115:17 | access to parameter s | | +| Switch.cs:115:17:115:24 | access to property Length | Switch.cs:115:17:115:24 | After access to property Length | | +| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:18:117:18 | 3 | | +| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:118:13:118:34 | case ...: | | +| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:13:117:35 | After case ...: [match] | match | +| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:13:117:35 | After case ...: [no-match] | no-match | +| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:25:117:34 | Before ... == ... | | | Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:30:117:34 | "foo" | | -| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:44:117:44 | 1 | true | -| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:118:13:118:34 | case ...: | false | +| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [false] | false | +| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [true] | true | +| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:118:13:118:34 | case ...: | | +| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:117:37:117:45 | Before return ...; | | +| Switch.cs:117:25:117:34 | Before ... == ... | Switch.cs:117:25:117:25 | access to parameter s | | | Switch.cs:117:30:117:34 | "foo" | Switch.cs:117:25:117:34 | ... == ... | | -| Switch.cs:117:37:117:45 | return ...; | Switch.cs:113:9:113:11 | exit M10 (normal) | return | +| Switch.cs:117:37:117:45 | Before return ...; | Switch.cs:117:44:117:44 | 1 | | +| Switch.cs:117:37:117:45 | return ...; | Switch.cs:113:9:113:11 | Normal Exit | return | | Switch.cs:117:44:117:44 | 1 | Switch.cs:117:37:117:45 | return ...; | | -| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | 2 | | -| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:25:118:25 | access to parameter s | match | -| Switch.cs:118:18:118:18 | 2 | Switch.cs:120:17:120:17 | 1 | no-match | +| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:18:118:18 | 2 | | +| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:115:9:119:9 | After switch (...) {...} | | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [match] | match | +| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [no-match] | no-match | +| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:25:118:33 | Before ... == ... | | | Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:30:118:33 | "fu" | | -| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:43:118:43 | 2 | true | -| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:120:17:120:17 | 1 | false | +| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [false] | false | +| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [true] | true | +| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:115:9:119:9 | After switch (...) {...} | | +| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:118:36:118:44 | Before return ...; | | +| Switch.cs:118:25:118:33 | Before ... == ... | Switch.cs:118:25:118:25 | access to parameter s | | | Switch.cs:118:30:118:33 | "fu" | Switch.cs:118:25:118:33 | ... == ... | | -| Switch.cs:118:36:118:44 | return ...; | Switch.cs:113:9:113:11 | exit M10 (normal) | return | +| Switch.cs:118:36:118:44 | Before return ...; | Switch.cs:118:43:118:43 | 2 | | +| Switch.cs:118:36:118:44 | return ...; | Switch.cs:113:9:113:11 | Normal Exit | return | | Switch.cs:118:43:118:43 | 2 | Switch.cs:118:36:118:44 | return ...; | | -| Switch.cs:120:9:120:18 | return ...; | Switch.cs:113:9:113:11 | exit M10 (normal) | return | -| Switch.cs:120:16:120:17 | -... | Switch.cs:120:9:120:18 | return ...; | | +| Switch.cs:120:9:120:18 | Before return ...; | Switch.cs:120:16:120:17 | Before -... | | +| Switch.cs:120:9:120:18 | return ...; | Switch.cs:113:9:113:11 | Normal Exit | return | +| Switch.cs:120:16:120:17 | -... | Switch.cs:120:16:120:17 | After -... | | +| Switch.cs:120:16:120:17 | After -... | Switch.cs:120:9:120:18 | return ...; | | +| Switch.cs:120:16:120:17 | Before -... | Switch.cs:120:17:120:17 | 1 | | | Switch.cs:120:17:120:17 | 1 | Switch.cs:120:16:120:17 | -... | | -| Switch.cs:123:10:123:12 | enter M11 | Switch.cs:124:5:127:5 | {...} | | -| Switch.cs:123:10:123:12 | exit M11 (normal) | Switch.cs:123:10:123:12 | exit M11 | | +| Switch.cs:123:10:123:12 | Entry | Switch.cs:124:5:127:5 | {...} | | +| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | Exit | | +| Switch.cs:124:5:127:5 | After {...} | Switch.cs:123:10:123:12 | Normal Exit | | | Switch.cs:124:5:127:5 | {...} | Switch.cs:125:9:126:19 | if (...) ... | | -| Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:125:13:125:13 | access to parameter o | | -| Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:24:125:29 | Boolean b | | -| Switch.cs:125:13:125:48 | [false] ... switch { ... } | Switch.cs:123:10:123:12 | exit M11 (normal) | false | -| Switch.cs:125:13:125:48 | [true] ... switch { ... } | Switch.cs:126:13:126:19 | return ...; | true | -| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:34:125:34 | access to local variable b | match | -| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:37:125:37 | _ | no-match | -| Switch.cs:125:24:125:34 | [false] ... => ... | Switch.cs:125:13:125:48 | [false] ... switch { ... } | false | -| Switch.cs:125:24:125:34 | [true] ... => ... | Switch.cs:125:13:125:48 | [true] ... switch { ... } | true | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [false] ... => ... | false | -| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:24:125:34 | [true] ... => ... | true | -| Switch.cs:125:37:125:37 | _ | Switch.cs:125:42:125:46 | false | match | -| Switch.cs:125:37:125:46 | [false] ... => ... | Switch.cs:125:13:125:48 | [false] ... switch { ... } | false | -| Switch.cs:125:42:125:46 | false | Switch.cs:125:37:125:46 | [false] ... => ... | false | -| Switch.cs:126:13:126:19 | return ...; | Switch.cs:123:10:123:12 | exit M11 (normal) | return | -| Switch.cs:129:12:129:14 | enter M12 | Switch.cs:130:5:132:5 | {...} | | -| Switch.cs:129:12:129:14 | exit M12 (normal) | Switch.cs:129:12:129:14 | exit M12 | | -| Switch.cs:130:5:132:5 | {...} | Switch.cs:131:17:131:17 | access to parameter o | | -| Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | exit M12 (normal) | return | -| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:9:131:67 | return ...; | | -| Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:131:28:131:35 | String s | | -| Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | Switch.cs:131:16:131:66 | call to method ToString | non-null | -| Switch.cs:131:17:131:53 | [null] ... switch { ... } | Switch.cs:131:9:131:67 | return ...; | null | -| Switch.cs:131:28:131:35 | String s | Switch.cs:131:40:131:40 | access to local variable s | match | -| Switch.cs:131:28:131:35 | String s | Switch.cs:131:43:131:43 | _ | no-match | -| Switch.cs:131:28:131:40 | [non-null] ... => ... | Switch.cs:131:17:131:53 | [non-null] ... switch { ... } | non-null | -| Switch.cs:131:28:131:40 | [null] ... => ... | Switch.cs:131:17:131:53 | [null] ... switch { ... } | null | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [non-null] ... => ... | non-null | -| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:28:131:40 | [null] ... => ... | null | -| Switch.cs:131:43:131:43 | _ | Switch.cs:131:48:131:51 | null | match | -| Switch.cs:131:43:131:51 | [null] ... => ... | Switch.cs:131:17:131:53 | [null] ... switch { ... } | null | -| Switch.cs:131:48:131:51 | null | Switch.cs:131:43:131:51 | [null] ... => ... | null | -| Switch.cs:134:9:134:11 | enter M13 | Switch.cs:135:5:142:5 | {...} | | -| Switch.cs:134:9:134:11 | exit M13 (normal) | Switch.cs:134:9:134:11 | exit M13 | | +| Switch.cs:125:9:126:19 | After if (...) ... | Switch.cs:124:5:127:5 | After {...} | | +| Switch.cs:125:9:126:19 | if (...) ... | Switch.cs:125:13:125:48 | ... switch { ... } | | +| Switch.cs:125:13:125:13 | access to parameter o | Switch.cs:125:24:125:34 | ... => ... | | +| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:13:125:13 | access to parameter o | | +| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:125:9:126:19 | After if (...) ... | | +| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:126:13:126:19 | Before return ...; | | +| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:34:125:34 | access to local variable b | | +| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | After ... => ... [match] | match | +| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | After ... => ... [no-match] | no-match | +| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:24:125:29 | Boolean b | | +| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:125:37:125:46 | ... => ... | | +| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | false | +| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | true | +| Switch.cs:125:37:125:37 | _ | Switch.cs:125:42:125:46 | false | | +| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:46 | After ... => ... [match] | match | +| Switch.cs:125:37:125:46 | After ... => ... [match] | Switch.cs:125:37:125:37 | _ | | +| Switch.cs:125:42:125:46 | false | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | false | +| Switch.cs:125:42:125:46 | false | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | true | +| Switch.cs:126:13:126:19 | Before return ...; | Switch.cs:126:13:126:19 | return ...; | | +| Switch.cs:126:13:126:19 | return ...; | Switch.cs:123:10:123:12 | Normal Exit | return | +| Switch.cs:129:12:129:14 | Entry | Switch.cs:130:5:132:5 | {...} | | +| Switch.cs:129:12:129:14 | Normal Exit | Switch.cs:129:12:129:14 | Exit | | +| Switch.cs:130:5:132:5 | {...} | Switch.cs:131:9:131:67 | Before return ...; | | +| Switch.cs:131:9:131:67 | Before return ...; | Switch.cs:131:16:131:66 | Before call to method ToString | | +| Switch.cs:131:9:131:67 | return ...; | Switch.cs:129:12:129:14 | Normal Exit | return | +| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:131:9:131:67 | return ...; | | +| Switch.cs:131:16:131:66 | Before call to method ToString | Switch.cs:131:17:131:53 | ... switch { ... } | | +| Switch.cs:131:16:131:66 | call to method ToString | Switch.cs:131:16:131:66 | After call to method ToString | | +| Switch.cs:131:17:131:17 | access to parameter o | Switch.cs:131:28:131:40 | ... => ... | | +| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:17:131:17 | access to parameter o | | +| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:131:16:131:66 | call to method ToString | | +| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:131:16:131:66 | After call to method ToString | | +| Switch.cs:131:28:131:35 | String s | Switch.cs:131:40:131:40 | access to local variable s | | +| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | After ... => ... [match] | match | +| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | After ... => ... [no-match] | no-match | +| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:28:131:35 | String s | | +| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:131:43:131:51 | ... => ... | | +| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | non-null | +| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | null | +| Switch.cs:131:43:131:43 | _ | Switch.cs:131:48:131:51 | null | | +| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:51 | After ... => ... [match] | match | +| Switch.cs:131:43:131:51 | After ... => ... [match] | Switch.cs:131:43:131:43 | _ | | +| Switch.cs:131:48:131:51 | null | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | non-null | +| Switch.cs:131:48:131:51 | null | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | null | +| Switch.cs:134:9:134:11 | Entry | Switch.cs:135:5:142:5 | {...} | | +| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | Exit | | | Switch.cs:135:5:142:5 | {...} | Switch.cs:136:9:141:9 | switch (...) {...} | | | Switch.cs:136:9:141:9 | switch (...) {...} | Switch.cs:136:17:136:17 | access to parameter i | | | Switch.cs:136:17:136:17 | access to parameter i | Switch.cs:139:13:139:19 | case ...: | | -| Switch.cs:138:13:138:20 | default: | Switch.cs:138:30:138:30 | 1 | | -| Switch.cs:138:22:138:31 | return ...; | Switch.cs:134:9:134:11 | exit M13 (normal) | return | -| Switch.cs:138:29:138:30 | -... | Switch.cs:138:22:138:31 | return ...; | | +| Switch.cs:138:13:138:20 | After default: [match] | Switch.cs:138:22:138:31 | Before return ...; | | +| Switch.cs:138:13:138:20 | default: | Switch.cs:138:13:138:20 | After default: [match] | match | +| Switch.cs:138:22:138:31 | Before return ...; | Switch.cs:138:29:138:30 | Before -... | | +| Switch.cs:138:22:138:31 | return ...; | Switch.cs:134:9:134:11 | Normal Exit | return | +| Switch.cs:138:29:138:30 | -... | Switch.cs:138:29:138:30 | After -... | | +| Switch.cs:138:29:138:30 | After -... | Switch.cs:138:22:138:31 | return ...; | | +| Switch.cs:138:29:138:30 | Before -... | Switch.cs:138:30:138:30 | 1 | | | Switch.cs:138:30:138:30 | 1 | Switch.cs:138:29:138:30 | -... | | -| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:18:139:18 | 1 | | -| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:28:139:28 | 1 | match | -| Switch.cs:139:18:139:18 | 1 | Switch.cs:140:13:140:19 | case ...: | no-match | -| Switch.cs:139:21:139:29 | return ...; | Switch.cs:134:9:134:11 | exit M13 (normal) | return | +| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:18:139:18 | 1 | | +| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | case ...: | | +| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:13:139:19 | After case ...: [match] | match | +| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:13:139:19 | After case ...: [no-match] | no-match | +| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:21:139:29 | Before return ...; | | +| Switch.cs:139:21:139:29 | Before return ...; | Switch.cs:139:28:139:28 | 1 | | +| Switch.cs:139:21:139:29 | return ...; | Switch.cs:134:9:134:11 | Normal Exit | return | | Switch.cs:139:28:139:28 | 1 | Switch.cs:139:21:139:29 | return ...; | | -| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:18:140:18 | 2 | | -| Switch.cs:140:18:140:18 | 2 | Switch.cs:138:13:138:20 | default: | no-match | -| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:28:140:28 | 2 | match | -| Switch.cs:140:21:140:29 | return ...; | Switch.cs:134:9:134:11 | exit M13 (normal) | return | +| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:18:140:18 | 2 | | +| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:138:13:138:20 | default: | | +| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | After case ...: [match] | match | +| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | After case ...: [no-match] | no-match | +| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:21:140:29 | Before return ...; | | +| Switch.cs:140:21:140:29 | Before return ...; | Switch.cs:140:28:140:28 | 2 | | +| Switch.cs:140:21:140:29 | return ...; | Switch.cs:134:9:134:11 | Normal Exit | return | | Switch.cs:140:28:140:28 | 2 | Switch.cs:140:21:140:29 | return ...; | | -| Switch.cs:144:9:144:11 | enter M14 | Switch.cs:145:5:152:5 | {...} | | -| Switch.cs:144:9:144:11 | exit M14 (normal) | Switch.cs:144:9:144:11 | exit M14 | | +| Switch.cs:144:9:144:11 | Entry | Switch.cs:145:5:152:5 | {...} | | +| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | Exit | | | Switch.cs:145:5:152:5 | {...} | Switch.cs:146:9:151:9 | switch (...) {...} | | | Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:146:17:146:17 | access to parameter i | | | Switch.cs:146:17:146:17 | access to parameter i | Switch.cs:148:13:148:19 | case ...: | | -| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:18:148:18 | 1 | | -| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:28:148:28 | 1 | match | -| Switch.cs:148:18:148:18 | 1 | Switch.cs:150:13:150:19 | case ...: | no-match | -| Switch.cs:148:21:148:29 | return ...; | Switch.cs:144:9:144:11 | exit M14 (normal) | return | +| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:18:148:18 | 1 | | +| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | case ...: | | +| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:13:148:19 | After case ...: [match] | match | +| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:13:148:19 | After case ...: [no-match] | no-match | +| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:21:148:29 | Before return ...; | | +| Switch.cs:148:21:148:29 | Before return ...; | Switch.cs:148:28:148:28 | 1 | | +| Switch.cs:148:21:148:29 | return ...; | Switch.cs:144:9:144:11 | Normal Exit | return | | Switch.cs:148:28:148:28 | 1 | Switch.cs:148:21:148:29 | return ...; | | -| Switch.cs:149:13:149:20 | default: | Switch.cs:149:30:149:30 | 1 | | -| Switch.cs:149:22:149:31 | return ...; | Switch.cs:144:9:144:11 | exit M14 (normal) | return | -| Switch.cs:149:29:149:30 | -... | Switch.cs:149:22:149:31 | return ...; | | +| Switch.cs:149:13:149:20 | After default: [match] | Switch.cs:149:22:149:31 | Before return ...; | | +| Switch.cs:149:13:149:20 | default: | Switch.cs:149:13:149:20 | After default: [match] | match | +| Switch.cs:149:22:149:31 | Before return ...; | Switch.cs:149:29:149:30 | Before -... | | +| Switch.cs:149:22:149:31 | return ...; | Switch.cs:144:9:144:11 | Normal Exit | return | +| Switch.cs:149:29:149:30 | -... | Switch.cs:149:29:149:30 | After -... | | +| Switch.cs:149:29:149:30 | After -... | Switch.cs:149:22:149:31 | return ...; | | +| Switch.cs:149:29:149:30 | Before -... | Switch.cs:149:30:149:30 | 1 | | | Switch.cs:149:30:149:30 | 1 | Switch.cs:149:29:149:30 | -... | | -| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:18:150:18 | 2 | | -| Switch.cs:150:18:150:18 | 2 | Switch.cs:149:13:149:20 | default: | no-match | -| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:28:150:28 | 2 | match | -| Switch.cs:150:21:150:29 | return ...; | Switch.cs:144:9:144:11 | exit M14 (normal) | return | +| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:18:150:18 | 2 | | +| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:149:13:149:20 | default: | | +| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | After case ...: [match] | match | +| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | After case ...: [no-match] | no-match | +| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:21:150:29 | Before return ...; | | +| Switch.cs:150:21:150:29 | Before return ...; | Switch.cs:150:28:150:28 | 2 | | +| Switch.cs:150:21:150:29 | return ...; | Switch.cs:144:9:144:11 | Normal Exit | return | | Switch.cs:150:28:150:28 | 2 | Switch.cs:150:21:150:29 | return ...; | | -| Switch.cs:154:10:154:12 | enter M15 | Switch.cs:155:5:161:5 | {...} | | -| Switch.cs:154:10:154:12 | exit M15 (abnormal) | Switch.cs:154:10:154:12 | exit M15 | | -| Switch.cs:154:10:154:12 | exit M15 (normal) | Switch.cs:154:10:154:12 | exit M15 | | +| Switch.cs:154:10:154:12 | Entry | Switch.cs:155:5:161:5 | {...} | | +| Switch.cs:154:10:154:12 | Normal Exit | Switch.cs:154:10:154:12 | Exit | | +| Switch.cs:155:5:161:5 | After {...} | Switch.cs:154:10:154:12 | Normal Exit | | | Switch.cs:155:5:161:5 | {...} | Switch.cs:156:9:156:55 | ... ...; | | -| Switch.cs:156:9:156:55 | ... ...; | Switch.cs:156:17:156:17 | access to parameter b | | -| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:157:9:160:49 | if (...) ... | | -| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:28:156:31 | true | | -| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:13:156:54 | String s = ... | | -| Switch.cs:156:28:156:31 | true | Switch.cs:156:36:156:38 | "a" | match | -| Switch.cs:156:28:156:31 | true | Switch.cs:156:41:156:45 | false | no-match | -| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:17:156:54 | ... switch { ... } | | -| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:28:156:38 | ... => ... | | -| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | exit M15 (abnormal) | exception | -| Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | match | -| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:17:156:54 | ... switch { ... } | | -| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:41:156:52 | ... => ... | | +| Switch.cs:156:9:156:55 | ... ...; | Switch.cs:156:13:156:54 | Before String s = ... | | +| Switch.cs:156:9:156:55 | After ... ...; | Switch.cs:157:9:160:49 | if (...) ... | | +| Switch.cs:156:13:156:13 | access to local variable s | Switch.cs:156:17:156:54 | ... switch { ... } | | +| Switch.cs:156:13:156:54 | After String s = ... | Switch.cs:156:9:156:55 | After ... ...; | | +| Switch.cs:156:13:156:54 | Before String s = ... | Switch.cs:156:13:156:13 | access to local variable s | | +| Switch.cs:156:13:156:54 | String s = ... | Switch.cs:156:13:156:54 | After String s = ... | | +| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:28:156:38 | ... => ... | | +| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:17 | access to parameter b | | +| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:13:156:54 | String s = ... | | +| Switch.cs:156:28:156:31 | true | Switch.cs:156:36:156:38 | "a" | | +| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | After ... => ... [match] | match | +| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | After ... => ... [no-match] | no-match | +| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:28:156:31 | true | | +| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | ... => ... | | +| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:17:156:54 | After ... switch { ... } | | +| Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | | +| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | After ... => ... [match] | match | +| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | After ... => ... [no-match] | no-match | +| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:41:156:45 | false | | +| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:156:17:156:54 | After ... switch { ... } | | +| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:17:156:54 | After ... switch { ... } | | +| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:155:5:161:5 | After {...} | | | Switch.cs:157:9:160:49 | if (...) ... | Switch.cs:157:13:157:13 | access to parameter b | | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:158:13:158:49 | ...; | true | -| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:160:13:160:49 | ...; | false | -| Switch.cs:158:13:158:48 | call to method WriteLine | Switch.cs:154:10:154:12 | exit M15 (normal) | | -| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:40:158:43 | "a = " | | -| Switch.cs:158:38:158:47 | $"..." | Switch.cs:158:13:158:48 | call to method WriteLine | | -| Switch.cs:158:40:158:43 | "a = " | Switch.cs:158:45:158:45 | access to local variable s | | -| Switch.cs:158:44:158:46 | {...} | Switch.cs:158:38:158:47 | $"..." | | +| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:160:13:160:49 | ...; | | +| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:158:13:158:49 | ...; | | +| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [false] | false | +| Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [true] | true | +| Switch.cs:158:13:158:48 | After call to method WriteLine | Switch.cs:158:13:158:49 | After ...; | | +| Switch.cs:158:13:158:48 | Before call to method WriteLine | Switch.cs:158:38:158:47 | Before $"..." | | +| Switch.cs:158:13:158:48 | call to method WriteLine | Switch.cs:158:13:158:48 | After call to method WriteLine | | +| Switch.cs:158:13:158:49 | ...; | Switch.cs:158:13:158:48 | Before call to method WriteLine | | +| Switch.cs:158:13:158:49 | After ...; | Switch.cs:157:9:160:49 | After if (...) ... | | +| Switch.cs:158:38:158:47 | $"..." | Switch.cs:158:38:158:47 | After $"..." | | +| Switch.cs:158:38:158:47 | After $"..." | Switch.cs:158:13:158:48 | call to method WriteLine | | +| Switch.cs:158:38:158:47 | Before $"..." | Switch.cs:158:40:158:43 | "a = " | | +| Switch.cs:158:40:158:43 | "a = " | Switch.cs:158:44:158:46 | Before {...} | | +| Switch.cs:158:44:158:46 | After {...} | Switch.cs:158:38:158:47 | $"..." | | +| Switch.cs:158:44:158:46 | Before {...} | Switch.cs:158:45:158:45 | access to local variable s | | +| Switch.cs:158:44:158:46 | {...} | Switch.cs:158:44:158:46 | After {...} | | | Switch.cs:158:45:158:45 | access to local variable s | Switch.cs:158:44:158:46 | {...} | | -| Switch.cs:160:13:160:48 | call to method WriteLine | Switch.cs:154:10:154:12 | exit M15 (normal) | | -| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:40:160:43 | "b = " | | -| Switch.cs:160:38:160:47 | $"..." | Switch.cs:160:13:160:48 | call to method WriteLine | | -| Switch.cs:160:40:160:43 | "b = " | Switch.cs:160:45:160:45 | access to local variable s | | -| Switch.cs:160:44:160:46 | {...} | Switch.cs:160:38:160:47 | $"..." | | +| Switch.cs:160:13:160:48 | After call to method WriteLine | Switch.cs:160:13:160:49 | After ...; | | +| Switch.cs:160:13:160:48 | Before call to method WriteLine | Switch.cs:160:38:160:47 | Before $"..." | | +| Switch.cs:160:13:160:48 | call to method WriteLine | Switch.cs:160:13:160:48 | After call to method WriteLine | | +| Switch.cs:160:13:160:49 | ...; | Switch.cs:160:13:160:48 | Before call to method WriteLine | | +| Switch.cs:160:13:160:49 | After ...; | Switch.cs:157:9:160:49 | After if (...) ... | | +| Switch.cs:160:38:160:47 | $"..." | Switch.cs:160:38:160:47 | After $"..." | | +| Switch.cs:160:38:160:47 | After $"..." | Switch.cs:160:13:160:48 | call to method WriteLine | | +| Switch.cs:160:38:160:47 | Before $"..." | Switch.cs:160:40:160:43 | "b = " | | +| Switch.cs:160:40:160:43 | "b = " | Switch.cs:160:44:160:46 | Before {...} | | +| Switch.cs:160:44:160:46 | After {...} | Switch.cs:160:38:160:47 | $"..." | | +| Switch.cs:160:44:160:46 | Before {...} | Switch.cs:160:45:160:45 | access to local variable s | | +| Switch.cs:160:44:160:46 | {...} | Switch.cs:160:44:160:46 | After {...} | | | Switch.cs:160:45:160:45 | access to local variable s | Switch.cs:160:44:160:46 | {...} | | -| Switch.cs:163:10:163:12 | enter M16 | Switch.cs:164:5:178:5 | {...} | | -| Switch.cs:163:10:163:12 | exit M16 (normal) | Switch.cs:163:10:163:12 | exit M16 | | +| Switch.cs:163:10:163:12 | Entry | Switch.cs:164:5:178:5 | {...} | | +| Switch.cs:163:10:163:12 | Normal Exit | Switch.cs:163:10:163:12 | Exit | | +| Switch.cs:164:5:178:5 | After {...} | Switch.cs:163:10:163:12 | Normal Exit | | | Switch.cs:164:5:178:5 | {...} | Switch.cs:165:9:177:9 | switch (...) {...} | | +| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:164:5:178:5 | After {...} | | | Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:165:17:165:17 | access to parameter i | | | Switch.cs:165:17:165:17 | access to parameter i | Switch.cs:167:13:167:19 | case ...: | | -| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:18:167:18 | 1 | | -| Switch.cs:167:18:167:18 | 1 | Switch.cs:168:13:168:19 | case ...: | no-match | -| Switch.cs:167:18:167:18 | 1 | Switch.cs:169:17:169:51 | ...; | match | -| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:18:168:18 | 2 | | -| Switch.cs:168:18:168:18 | 2 | Switch.cs:169:17:169:51 | ...; | match | -| Switch.cs:168:18:168:18 | 2 | Switch.cs:171:13:171:19 | case ...: | no-match | -| Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:170:17:170:22 | break; | | -| Switch.cs:169:17:169:51 | ...; | Switch.cs:169:42:169:49 | "1 or 2" | | +| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:167:18:167:18 | 1 | | +| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | case ...: | | +| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:13:167:19 | After case ...: [match] | match | +| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:13:167:19 | After case ...: [no-match] | no-match | +| Switch.cs:167:18:167:18 | 1 | Switch.cs:169:17:169:51 | ...; | | +| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:168:18:168:18 | 2 | | +| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | case ...: | | +| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | After case ...: [match] | match | +| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | After case ...: [no-match] | no-match | +| Switch.cs:168:18:168:18 | 2 | Switch.cs:169:17:169:51 | ...; | | +| Switch.cs:169:17:169:50 | After call to method WriteLine | Switch.cs:169:17:169:51 | After ...; | | +| Switch.cs:169:17:169:50 | Before call to method WriteLine | Switch.cs:169:42:169:49 | "1 or 2" | | +| Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:169:17:169:50 | After call to method WriteLine | | +| Switch.cs:169:17:169:51 | ...; | Switch.cs:169:17:169:50 | Before call to method WriteLine | | +| Switch.cs:169:17:169:51 | After ...; | Switch.cs:170:17:170:22 | Before break; | | | Switch.cs:169:42:169:49 | "1 or 2" | Switch.cs:169:17:169:50 | call to method WriteLine | | -| Switch.cs:170:17:170:22 | break; | Switch.cs:163:10:163:12 | exit M16 (normal) | break | -| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:18:171:18 | 3 | | -| Switch.cs:171:18:171:18 | 3 | Switch.cs:172:17:172:46 | ...; | match | -| Switch.cs:171:18:171:18 | 3 | Switch.cs:174:13:174:20 | default: | no-match | -| Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:173:17:173:22 | break; | | -| Switch.cs:172:17:172:46 | ...; | Switch.cs:172:42:172:44 | "3" | | +| Switch.cs:170:17:170:22 | Before break; | Switch.cs:170:17:170:22 | break; | | +| Switch.cs:170:17:170:22 | break; | Switch.cs:165:9:177:9 | After switch (...) {...} | break | +| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:171:18:171:18 | 3 | | +| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:174:13:174:20 | default: | | +| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | After case ...: [match] | match | +| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | After case ...: [no-match] | no-match | +| Switch.cs:171:18:171:18 | 3 | Switch.cs:172:17:172:46 | ...; | | +| Switch.cs:172:17:172:45 | After call to method WriteLine | Switch.cs:172:17:172:46 | After ...; | | +| Switch.cs:172:17:172:45 | Before call to method WriteLine | Switch.cs:172:42:172:44 | "3" | | +| Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:172:17:172:45 | After call to method WriteLine | | +| Switch.cs:172:17:172:46 | ...; | Switch.cs:172:17:172:45 | Before call to method WriteLine | | +| Switch.cs:172:17:172:46 | After ...; | Switch.cs:173:17:173:22 | Before break; | | | Switch.cs:172:42:172:44 | "3" | Switch.cs:172:17:172:45 | call to method WriteLine | | -| Switch.cs:173:17:173:22 | break; | Switch.cs:163:10:163:12 | exit M16 (normal) | break | -| Switch.cs:174:13:174:20 | default: | Switch.cs:175:17:175:48 | ...; | | -| Switch.cs:175:17:175:47 | call to method WriteLine | Switch.cs:176:17:176:22 | break; | | -| Switch.cs:175:17:175:48 | ...; | Switch.cs:175:42:175:46 | "def" | | +| Switch.cs:173:17:173:22 | Before break; | Switch.cs:173:17:173:22 | break; | | +| Switch.cs:173:17:173:22 | break; | Switch.cs:165:9:177:9 | After switch (...) {...} | break | +| Switch.cs:174:13:174:20 | After default: [match] | Switch.cs:175:17:175:48 | ...; | | +| Switch.cs:174:13:174:20 | default: | Switch.cs:174:13:174:20 | After default: [match] | match | +| Switch.cs:175:17:175:47 | After call to method WriteLine | Switch.cs:175:17:175:48 | After ...; | | +| Switch.cs:175:17:175:47 | Before call to method WriteLine | Switch.cs:175:42:175:46 | "def" | | +| Switch.cs:175:17:175:47 | call to method WriteLine | Switch.cs:175:17:175:47 | After call to method WriteLine | | +| Switch.cs:175:17:175:48 | ...; | Switch.cs:175:17:175:47 | Before call to method WriteLine | | +| Switch.cs:175:17:175:48 | After ...; | Switch.cs:176:17:176:22 | Before break; | | | 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 | 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 | | +| Switch.cs:176:17:176:22 | Before break; | Switch.cs:176:17:176:22 | break; | | +| Switch.cs:176:17:176:22 | break; | Switch.cs:165:9:177:9 | After switch (...) {...} | break | +| TypeAccesses.cs:1:7:1:18 | After call to constructor Object | TypeAccesses.cs:1:7:1:18 | {...} | | +| TypeAccesses.cs:1:7:1:18 | After call to method | TypeAccesses.cs:1:7:1:18 | Before call to constructor Object | | +| TypeAccesses.cs:1:7:1:18 | Before call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to constructor Object | | +| TypeAccesses.cs:1:7:1:18 | Before call to method | TypeAccesses.cs:1:7:1:18 | this access | | +| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | Before call to method | | +| TypeAccesses.cs:1:7:1:18 | Normal Exit | TypeAccesses.cs:1:7:1:18 | Exit | | +| TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | After call to constructor Object | | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | After call to method | | | 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 | | +| TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | Normal Exit | | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:4:5:9:5 | {...} | | +| TypeAccesses.cs:3:10:3:10 | Normal Exit | TypeAccesses.cs:3:10:3:10 | Exit | | +| TypeAccesses.cs:4:5:9:5 | After {...} | TypeAccesses.cs:3:10:3:10 | Normal Exit | | | TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:5:9:5:26 | ... ...; | | -| TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:25:5:25 | access to parameter o | | -| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:6:9:6:24 | ...; | | -| TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:5:13:5:25 | String s = ... | | +| TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:13:5:25 | Before String s = ... | | +| TypeAccesses.cs:5:9:5:26 | After ... ...; | TypeAccesses.cs:6:9:6:24 | ...; | | +| TypeAccesses.cs:5:13:5:13 | access to local variable s | TypeAccesses.cs:5:17:5:25 | Before (...) ... | | +| TypeAccesses.cs:5:13:5:25 | After String s = ... | TypeAccesses.cs:5:9:5:26 | After ... ...; | | +| TypeAccesses.cs:5:13:5:25 | Before String s = ... | TypeAccesses.cs:5:13:5:13 | access to local variable s | | +| TypeAccesses.cs:5:13:5:25 | String s = ... | TypeAccesses.cs:5:13:5:25 | After String s = ... | | +| TypeAccesses.cs:5:17:5:25 | (...) ... | TypeAccesses.cs:5:17:5:25 | After (...) ... | | +| TypeAccesses.cs:5:17:5:25 | After (...) ... | TypeAccesses.cs:5:13:5:25 | String s = ... | | +| TypeAccesses.cs:5:17:5:25 | Before (...) ... | TypeAccesses.cs:5:25:5:25 | access to parameter o | | | TypeAccesses.cs:5:25:5:25 | access to parameter o | TypeAccesses.cs:5:17:5:25 | (...) ... | | -| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:7:9:7:25 | if (...) ... | | -| TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:6:13:6:13 | access to parameter o | | +| TypeAccesses.cs:6:9:6:9 | access to local variable s | TypeAccesses.cs:6:13:6:23 | Before ... as ... | | +| TypeAccesses.cs:6:9:6:23 | ... = ... | TypeAccesses.cs:6:9:6:23 | After ... = ... | | +| TypeAccesses.cs:6:9:6:23 | After ... = ... | TypeAccesses.cs:6:9:6:24 | After ...; | | +| TypeAccesses.cs:6:9:6:23 | Before ... = ... | TypeAccesses.cs:6:9:6:9 | access to local variable s | | +| TypeAccesses.cs:6:9:6:24 | ...; | TypeAccesses.cs:6:9:6:23 | Before ... = ... | | +| TypeAccesses.cs:6:9:6:24 | After ...; | TypeAccesses.cs:7:9:7:25 | if (...) ... | | | TypeAccesses.cs:6:13:6:13 | access to parameter o | TypeAccesses.cs:6:13:6:23 | ... as ... | | -| TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:6:9:6:23 | ... = ... | | -| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | | -| TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:18:7:22 | Int32 j | | -| TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:8:9:8:28 | ... ...; | false | -| TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | true | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | no-match | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | match | -| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:8:9:8:28 | ... ...; | | -| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:17:8:27 | typeof(...) | | -| TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | exit M (normal) | | +| TypeAccesses.cs:6:13:6:23 | ... as ... | TypeAccesses.cs:6:13:6:23 | After ... as ... | | +| TypeAccesses.cs:6:13:6:23 | After ... as ... | TypeAccesses.cs:6:9:6:23 | ... = ... | | +| TypeAccesses.cs:6:13:6:23 | Before ... as ... | TypeAccesses.cs:6:13:6:13 | access to parameter o | | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:8:9:8:28 | ... ...; | | +| TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:13:7:22 | Before ... is ... | | +| TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:13:7:22 | ... is ... | | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | false | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | true | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | +| TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:7:25:7:25 | ; | | +| TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | | +| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:18:7:22 | Int32 j | | +| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | true | +| TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | +| TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:13:8:27 | Before Type t = ... | | +| TypeAccesses.cs:8:9:8:28 | After ... ...; | TypeAccesses.cs:4:5:9:5 | After {...} | | +| TypeAccesses.cs:8:13:8:13 | access to local variable t | TypeAccesses.cs:8:17:8:27 | typeof(...) | | +| TypeAccesses.cs:8:13:8:27 | After Type t = ... | TypeAccesses.cs:8:9:8:28 | After ... ...; | | +| TypeAccesses.cs:8:13:8:27 | Before Type t = ... | TypeAccesses.cs:8:13:8:13 | access to local variable t | | +| TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:13:8:27 | After Type t = ... | | | 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 | 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 | After call to constructor Object | VarDecls.cs:3:7:3:14 | {...} | | +| VarDecls.cs:3:7:3:14 | After call to method | VarDecls.cs:3:7:3:14 | Before call to constructor Object | | +| VarDecls.cs:3:7:3:14 | Before call to constructor Object | VarDecls.cs:3:7:3:14 | call to constructor Object | | +| VarDecls.cs:3:7:3:14 | Before call to method | VarDecls.cs:3:7:3:14 | this access | | +| VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Before call to method | | +| VarDecls.cs:3:7:3:14 | Normal Exit | VarDecls.cs:3:7:3:14 | Exit | | +| VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | After call to constructor Object | | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | After call to method | | | 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 | | +| VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | Normal Exit | | +| VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:6:5:11:5 | {...} | | +| VarDecls.cs:5:18:5:19 | Normal Exit | VarDecls.cs:5:18:5:19 | Exit | | | VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | | -| VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:7:27:7:33 | access to parameter strings | | -| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:44:7:50 | access to parameter strings | | +| VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:7:22:7:36 | Before Char* c1 = ... | | +| VarDecls.cs:7:22:7:23 | access to local variable c1 | VarDecls.cs:7:27:7:36 | Before (...) ... | | +| VarDecls.cs:7:22:7:36 | After Char* c1 = ... | VarDecls.cs:7:39:7:53 | Before Char* c2 = ... | | +| VarDecls.cs:7:22:7:36 | Before Char* c1 = ... | VarDecls.cs:7:22:7:23 | access to local variable c1 | | +| VarDecls.cs:7:22:7:36 | Char* c1 = ... | VarDecls.cs:7:22:7:36 | After Char* c1 = ... | | | VarDecls.cs:7:27:7:33 | access to parameter strings | VarDecls.cs:7:35:7:35 | 0 | | -| VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:22:7:36 | Char* c1 = ... | | -| VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:7:27:7:36 | (...) ... | | +| VarDecls.cs:7:27:7:36 | (...) ... | VarDecls.cs:7:27:7:36 | After (...) ... | | +| VarDecls.cs:7:27:7:36 | After (...) ... | VarDecls.cs:7:22:7:36 | Char* c1 = ... | | +| VarDecls.cs:7:27:7:36 | After access to array element | VarDecls.cs:7:27:7:36 | (...) ... | | +| VarDecls.cs:7:27:7:36 | Before (...) ... | VarDecls.cs:7:27:7:36 | Before access to array element | | +| VarDecls.cs:7:27:7:36 | Before access to array element | VarDecls.cs:7:27:7:33 | access to parameter strings | | +| VarDecls.cs:7:27:7:36 | access to array element | VarDecls.cs:7:27:7:36 | After access to array element | | | VarDecls.cs:7:35:7:35 | 0 | VarDecls.cs:7:27:7:36 | access to array element | | -| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:8:9:10:9 | {...} | | +| VarDecls.cs:7:39:7:40 | access to local variable c2 | VarDecls.cs:7:44:7:53 | Before (...) ... | | +| VarDecls.cs:7:39:7:53 | After Char* c2 = ... | VarDecls.cs:8:9:10:9 | {...} | | +| VarDecls.cs:7:39:7:53 | Before Char* c2 = ... | VarDecls.cs:7:39:7:40 | access to local variable c2 | | +| VarDecls.cs:7:39:7:53 | Char* c2 = ... | VarDecls.cs:7:39:7:53 | After Char* c2 = ... | | | VarDecls.cs:7:44:7:50 | access to parameter strings | VarDecls.cs:7:52:7:52 | 1 | | -| VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:39:7:53 | Char* c2 = ... | | -| VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:7:44:7:53 | (...) ... | | +| VarDecls.cs:7:44:7:53 | (...) ... | VarDecls.cs:7:44:7:53 | After (...) ... | | +| VarDecls.cs:7:44:7:53 | After (...) ... | VarDecls.cs:7:39:7:53 | Char* c2 = ... | | +| VarDecls.cs:7:44:7:53 | After access to array element | VarDecls.cs:7:44:7:53 | (...) ... | | +| VarDecls.cs:7:44:7:53 | Before (...) ... | VarDecls.cs:7:44:7:53 | Before access to array element | | +| VarDecls.cs:7:44:7:53 | Before access to array element | VarDecls.cs:7:44:7:50 | access to parameter strings | | +| VarDecls.cs:7:44:7:53 | access to array element | VarDecls.cs:7:44:7:53 | After access to array element | | | VarDecls.cs:7:52:7:52 | 1 | VarDecls.cs:7:44:7:53 | access to array element | | -| VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:9:27:9:28 | access to local variable c1 | | -| VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:5:18:5:19 | exit M1 (normal) | return | -| VarDecls.cs:9:20:9:28 | (...) ... | VarDecls.cs:9:13:9:29 | return ...; | | +| VarDecls.cs:8:9:10:9 | {...} | VarDecls.cs:9:13:9:29 | Before return ...; | | +| VarDecls.cs:9:13:9:29 | Before return ...; | VarDecls.cs:9:20:9:28 | Before (...) ... | | +| VarDecls.cs:9:13:9:29 | return ...; | VarDecls.cs:5:18:5:19 | Normal Exit | return | +| VarDecls.cs:9:20:9:28 | (...) ... | VarDecls.cs:9:20:9:28 | After (...) ... | | +| VarDecls.cs:9:20:9:28 | After (...) ... | VarDecls.cs:9:13:9:29 | return ...; | | +| VarDecls.cs:9:20:9:28 | Before (...) ... | VarDecls.cs:9:27:9:28 | access to local variable c1 | | | VarDecls.cs:9:27:9:28 | access to local variable c1 | VarDecls.cs:9:20:9:28 | (...) ... | | -| VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:14:5:17:5 | {...} | | -| VarDecls.cs:13:12:13:13 | exit M2 (normal) | VarDecls.cs:13:12:13:13 | exit M2 | | +| VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:14:5:17:5 | {...} | | +| VarDecls.cs:13:12:13:13 | Normal Exit | VarDecls.cs:13:12:13:13 | Exit | | | VarDecls.cs:14:5:17:5 | {...} | VarDecls.cs:15:9:15:30 | ... ...; | | -| VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:15:21:15:21 | access to parameter s | | -| VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:29:15:29 | access to parameter s | | +| VarDecls.cs:15:9:15:30 | ... ...; | VarDecls.cs:15:16:15:21 | Before String s1 = ... | | +| VarDecls.cs:15:9:15:30 | After ... ...; | VarDecls.cs:16:9:16:23 | Before return ...; | | +| VarDecls.cs:15:16:15:17 | access to local variable s1 | VarDecls.cs:15:21:15:21 | access to parameter s | | +| VarDecls.cs:15:16:15:21 | After String s1 = ... | VarDecls.cs:15:24:15:29 | Before String s2 = ... | | +| VarDecls.cs:15:16:15:21 | Before String s1 = ... | VarDecls.cs:15:16:15:17 | access to local variable s1 | | +| VarDecls.cs:15:16:15:21 | String s1 = ... | VarDecls.cs:15:16:15:21 | After String s1 = ... | | | VarDecls.cs:15:21:15:21 | access to parameter s | VarDecls.cs:15:16:15:21 | String s1 = ... | | -| VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:16:16:16:17 | access to local variable s1 | | +| VarDecls.cs:15:24:15:25 | access to local variable s2 | VarDecls.cs:15:29:15:29 | access to parameter s | | +| VarDecls.cs:15:24:15:29 | After String s2 = ... | VarDecls.cs:15:9:15:30 | After ... ...; | | +| VarDecls.cs:15:24:15:29 | Before String s2 = ... | VarDecls.cs:15:24:15:25 | access to local variable s2 | | +| VarDecls.cs:15:24:15:29 | String s2 = ... | VarDecls.cs:15:24:15:29 | After String s2 = ... | | | VarDecls.cs:15:29:15:29 | access to parameter s | VarDecls.cs:15:24:15:29 | String s2 = ... | | -| VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:13:12:13:13 | exit M2 (normal) | return | +| VarDecls.cs:16:9:16:23 | Before return ...; | VarDecls.cs:16:16:16:22 | Before ... + ... | | +| VarDecls.cs:16:9:16:23 | return ...; | VarDecls.cs:13:12:13:13 | Normal Exit | return | | VarDecls.cs:16:16:16:17 | access to local variable s1 | VarDecls.cs:16:21:16:22 | access to local variable s2 | | -| VarDecls.cs:16:16:16:22 | ... + ... | VarDecls.cs:16:9:16:23 | return ...; | | +| VarDecls.cs:16:16:16:22 | ... + ... | VarDecls.cs:16:16:16:22 | After ... + ... | | +| VarDecls.cs:16:16:16:22 | After ... + ... | VarDecls.cs:16:9:16:23 | return ...; | | +| VarDecls.cs:16:16:16:22 | Before ... + ... | VarDecls.cs:16:16:16:17 | access to local variable s1 | | | VarDecls.cs:16:21:16:22 | access to local variable s2 | VarDecls.cs:16:16:16:22 | ... + ... | | -| VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:20:5:26:5 | {...} | | -| VarDecls.cs:19:7:19:8 | exit M3 (normal) | VarDecls.cs:19:7:19:8 | exit M3 | | +| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:20:5:26:5 | {...} | | +| VarDecls.cs:19:7:19:8 | Normal Exit | VarDecls.cs:19:7:19:8 | Exit | | | VarDecls.cs:20:5:26:5 | {...} | VarDecls.cs:21:9:22:13 | using (...) {...} | | -| VarDecls.cs:21:9:22:13 | using (...) {...} | VarDecls.cs:21:16:21:22 | object creation of type C | | -| VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:22:13:22:13 | ; | | -| VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:24:9:25:29 | using (...) {...} | | -| VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:24:22:24:28 | object creation of type C | | -| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:35:24:41 | object creation of type C | | -| VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:18:24:28 | C x = ... | | -| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:25:20:25:20 | access to parameter b | | -| VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:31:24:41 | C y = ... | | -| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:19:7:19:8 | exit M3 (normal) | return | -| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:24:25:24 | access to local variable x | true | -| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:28:25:28 | access to local variable y | false | -| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:13:25:29 | return ...; | | -| 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 | 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:21:9:22:13 | After using (...) {...} | VarDecls.cs:24:9:25:29 | using (...) {...} | | +| VarDecls.cs:21:9:22:13 | using (...) {...} | VarDecls.cs:21:16:21:22 | Before object creation of type C | | +| VarDecls.cs:21:16:21:22 | After object creation of type C | VarDecls.cs:22:13:22:13 | ; | | +| VarDecls.cs:21:16:21:22 | Before object creation of type C | VarDecls.cs:21:16:21:22 | object creation of type C | | +| VarDecls.cs:21:16:21:22 | object creation of type C | VarDecls.cs:21:16:21:22 | After object creation of type C | | +| VarDecls.cs:22:13:22:13 | ; | VarDecls.cs:21:9:22:13 | After using (...) {...} | | +| VarDecls.cs:24:9:25:29 | using (...) {...} | VarDecls.cs:24:18:24:28 | Before C x = ... | | +| VarDecls.cs:24:18:24:18 | access to local variable x | VarDecls.cs:24:22:24:28 | Before object creation of type C | | +| VarDecls.cs:24:18:24:28 | After C x = ... | VarDecls.cs:24:31:24:41 | Before C y = ... | | +| VarDecls.cs:24:18:24:28 | Before C x = ... | VarDecls.cs:24:18:24:18 | access to local variable x | | +| VarDecls.cs:24:18:24:28 | C x = ... | VarDecls.cs:24:18:24:28 | After C x = ... | | +| VarDecls.cs:24:22:24:28 | After object creation of type C | VarDecls.cs:24:18:24:28 | C x = ... | | +| VarDecls.cs:24:22:24:28 | Before object creation of type C | VarDecls.cs:24:22:24:28 | object creation of type C | | +| VarDecls.cs:24:22:24:28 | object creation of type C | VarDecls.cs:24:22:24:28 | After object creation of type C | | +| VarDecls.cs:24:31:24:31 | access to local variable y | VarDecls.cs:24:35:24:41 | Before object creation of type C | | +| VarDecls.cs:24:31:24:41 | After C y = ... | VarDecls.cs:25:13:25:29 | Before return ...; | | +| VarDecls.cs:24:31:24:41 | Before C y = ... | VarDecls.cs:24:31:24:31 | access to local variable y | | +| VarDecls.cs:24:31:24:41 | C y = ... | VarDecls.cs:24:31:24:41 | After C y = ... | | +| VarDecls.cs:24:35:24:41 | After object creation of type C | VarDecls.cs:24:31:24:41 | C y = ... | | +| VarDecls.cs:24:35:24:41 | Before object creation of type C | VarDecls.cs:24:35:24:41 | object creation of type C | | +| VarDecls.cs:24:35:24:41 | object creation of type C | VarDecls.cs:24:35:24:41 | After object creation of type C | | +| VarDecls.cs:25:13:25:29 | Before return ...; | VarDecls.cs:25:20:25:28 | ... ? ... : ... | | +| VarDecls.cs:25:13:25:29 | return ...; | VarDecls.cs:19:7:19:8 | Normal Exit | return | +| VarDecls.cs:25:20:25:20 | After access to parameter b [false] | VarDecls.cs:25:28:25:28 | access to local variable y | | +| VarDecls.cs:25:20:25:20 | After access to parameter b [true] | VarDecls.cs:25:24:25:24 | access to local variable x | | +| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | false | +| VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | true | +| VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:20:25:20 | access to parameter b | | +| VarDecls.cs:25:20:25:28 | After ... ? ... : ... | VarDecls.cs:25:13:25:29 | return ...; | | +| VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:20:25:28 | After ... ? ... : ... | | +| VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:20:25:28 | After ... ? ... : ... | | +| VarDecls.cs:28:11:28:11 | After call to constructor Object | VarDecls.cs:28:11:28:11 | {...} | | +| VarDecls.cs:28:11:28:11 | After call to method | VarDecls.cs:28:11:28:11 | Before call to constructor Object | | +| VarDecls.cs:28:11:28:11 | Before call to constructor Object | VarDecls.cs:28:11:28:11 | call to constructor Object | | +| VarDecls.cs:28:11:28:11 | Before call to method | VarDecls.cs:28:11:28:11 | this access | | +| VarDecls.cs:28:11:28:11 | Entry | VarDecls.cs:28:11:28:11 | Before call to method | | +| VarDecls.cs:28:11:28:11 | Normal Exit | VarDecls.cs:28:11:28:11 | Exit | | +| VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | After call to constructor Object | | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | After call to method | | | 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 | | -| VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | | -| cflow.cs:5:17:5:20 | enter Main | cflow.cs:6:5:35:5 | {...} | | -| cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | exit Main | | +| VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | Normal Exit | | +| VarDecls.cs:28:41:28:47 | Entry | VarDecls.cs:28:51:28:53 | {...} | | +| VarDecls.cs:28:41:28:47 | Normal Exit | VarDecls.cs:28:41:28:47 | Exit | | +| VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:41:28:47 | Normal Exit | | +| cflow.cs:5:17:5:20 | Entry | cflow.cs:6:5:35:5 | {...} | | +| cflow.cs:5:17:5:20 | Normal Exit | cflow.cs:5:17:5:20 | Exit | | +| cflow.cs:6:5:35:5 | After {...} | cflow.cs:5:17:5:20 | Normal Exit | | | cflow.cs:6:5:35:5 | {...} | cflow.cs:7:9:7:28 | ... ...; | | -| cflow.cs:7:9:7:28 | ... ...; | cflow.cs:7:17:7:20 | access to parameter args | | -| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:9:9:9:40 | ...; | | +| cflow.cs:7:9:7:28 | ... ...; | cflow.cs:7:13:7:27 | Before Int32 a = ... | | +| cflow.cs:7:9:7:28 | After ... ...; | cflow.cs:9:9:9:40 | ...; | | +| cflow.cs:7:13:7:13 | access to local variable a | cflow.cs:7:17:7:27 | Before access to property Length | | +| cflow.cs:7:13:7:27 | After Int32 a = ... | cflow.cs:7:9:7:28 | After ... ...; | | +| cflow.cs:7:13:7:27 | Before Int32 a = ... | cflow.cs:7:13:7:13 | access to local variable a | | +| cflow.cs:7:13:7:27 | Int32 a = ... | cflow.cs:7:13:7:27 | After Int32 a = ... | | | cflow.cs:7:17:7:20 | access to parameter args | cflow.cs:7:17:7:27 | access to property Length | | -| cflow.cs:7:17:7:27 | access to property Length | cflow.cs:7:13:7:27 | Int32 a = ... | | -| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:11:9:12:49 | if (...) ... | | -| cflow.cs:9:9:9:40 | ...; | cflow.cs:9:13:9:29 | object creation of type ControlFlow | | -| cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:38:9:38 | access to local variable a | | -| cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:9:9:9:39 | ... = ... | | +| cflow.cs:7:17:7:27 | After access to property Length | cflow.cs:7:13:7:27 | Int32 a = ... | | +| cflow.cs:7:17:7:27 | Before access to property Length | cflow.cs:7:17:7:20 | access to parameter args | | +| cflow.cs:7:17:7:27 | access to property Length | cflow.cs:7:17:7:27 | After access to property Length | | +| cflow.cs:9:9:9:9 | access to local variable a | cflow.cs:9:13:9:39 | Before call to method Switch | | +| cflow.cs:9:9:9:39 | ... = ... | cflow.cs:9:9:9:39 | After ... = ... | | +| cflow.cs:9:9:9:39 | After ... = ... | cflow.cs:9:9:9:40 | After ...; | | +| cflow.cs:9:9:9:39 | Before ... = ... | cflow.cs:9:9:9:9 | access to local variable a | | +| cflow.cs:9:9:9:40 | ...; | cflow.cs:9:9:9:39 | Before ... = ... | | +| cflow.cs:9:9:9:40 | After ...; | cflow.cs:11:9:12:49 | if (...) ... | | +| cflow.cs:9:13:9:29 | After object creation of type ControlFlow | cflow.cs:9:38:9:38 | access to local variable a | | +| cflow.cs:9:13:9:29 | Before object creation of type ControlFlow | cflow.cs:9:13:9:29 | object creation of type ControlFlow | | +| cflow.cs:9:13:9:29 | object creation of type ControlFlow | cflow.cs:9:13:9:29 | After object creation of type ControlFlow | | +| cflow.cs:9:13:9:39 | After call to method Switch | cflow.cs:9:9:9:39 | ... = ... | | +| cflow.cs:9:13:9:39 | Before call to method Switch | cflow.cs:9:13:9:29 | Before object creation of type ControlFlow | | +| cflow.cs:9:13:9:39 | call to method Switch | cflow.cs:9:13:9:39 | After call to method Switch | | | cflow.cs:9:38:9:38 | access to local variable a | cflow.cs:9:13:9:39 | call to method Switch | | -| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:11:13:11:13 | access to local variable a | | +| cflow.cs:11:9:12:49 | After if (...) ... | cflow.cs:14:9:17:9 | while (...) ... | | +| cflow.cs:11:9:12:49 | if (...) ... | cflow.cs:11:13:11:17 | Before ... > ... | | | cflow.cs:11:13:11:13 | access to local variable a | cflow.cs:11:17:11:17 | 3 | | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:12:13:12:49 | ...; | true | -| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:14:9:17:9 | while (...) ... | false | +| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | After ... > ... [false] | false | +| cflow.cs:11:13:11:17 | ... > ... | cflow.cs:11:13:11:17 | After ... > ... [true] | true | +| cflow.cs:11:13:11:17 | After ... > ... [false] | cflow.cs:11:9:12:49 | After if (...) ... | | +| cflow.cs:11:13:11:17 | After ... > ... [true] | cflow.cs:12:13:12:49 | ...; | | +| cflow.cs:11:13:11:17 | Before ... > ... | cflow.cs:11:13:11:13 | access to local variable a | | | cflow.cs:11:17:11:17 | 3 | cflow.cs:11:13:11:17 | ... > ... | | -| cflow.cs:12:13:12:48 | call to method WriteLine | cflow.cs:14:9:17:9 | while (...) ... | | -| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:31:12:47 | "more than a few" | | +| cflow.cs:12:13:12:48 | After call to method WriteLine | cflow.cs:12:13:12:49 | After ...; | | +| cflow.cs:12:13:12:48 | Before call to method WriteLine | cflow.cs:12:31:12:47 | "more than a few" | | +| cflow.cs:12:13:12:48 | call to method WriteLine | cflow.cs:12:13:12:48 | After call to method WriteLine | | +| cflow.cs:12:13:12:49 | ...; | cflow.cs:12:13:12:48 | Before call to method WriteLine | | +| cflow.cs:12:13:12:49 | After ...; | cflow.cs:11:9:12:49 | After if (...) ... | | | cflow.cs:12:31:12:47 | "more than a few" | cflow.cs:12:13:12:48 | call to method WriteLine | | -| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:16:14:16 | access to local variable a | | +| cflow.cs:14:9:17:9 | After while (...) ... | cflow.cs:19:9:22:25 | do ... while (...); | | +| cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | cflow.cs:14:16:14:20 | Before ... > ... | | +| cflow.cs:14:9:17:9 | while (...) ... | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | | | cflow.cs:14:16:14:16 | access to local variable a | cflow.cs:14:20:14:20 | 0 | | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:15:9:17:9 | {...} | true | -| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:19:9:22:25 | do ... while (...); | false | +| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | After ... > ... [false] | false | +| cflow.cs:14:16:14:20 | ... > ... | cflow.cs:14:16:14:20 | After ... > ... [true] | true | +| cflow.cs:14:16:14:20 | After ... > ... [false] | cflow.cs:14:9:17:9 | After while (...) ... | | +| cflow.cs:14:16:14:20 | After ... > ... [true] | cflow.cs:15:9:17:9 | {...} | | +| cflow.cs:14:16:14:20 | Before ... > ... | cflow.cs:14:16:14:16 | access to local variable a | | | cflow.cs:14:20:14:20 | 0 | cflow.cs:14:16:14:20 | ... > ... | | +| cflow.cs:15:9:17:9 | After {...} | cflow.cs:14:9:17:9 | [LoopHeader] while (...) ... | | | cflow.cs:15:9:17:9 | {...} | cflow.cs:16:13:16:41 | ...; | | -| cflow.cs:16:13:16:40 | call to method WriteLine | cflow.cs:14:16:14:16 | access to local variable a | | -| cflow.cs:16:13:16:41 | ...; | cflow.cs:16:31:16:31 | access to local variable a | | +| cflow.cs:16:13:16:40 | After call to method WriteLine | cflow.cs:16:13:16:41 | After ...; | | +| cflow.cs:16:13:16:40 | Before call to method WriteLine | cflow.cs:16:31:16:39 | Before ... * ... | | +| cflow.cs:16:13:16:40 | call to method WriteLine | cflow.cs:16:13:16:40 | After call to method WriteLine | | +| cflow.cs:16:13:16:41 | ...; | cflow.cs:16:13:16:40 | Before call to method WriteLine | | +| cflow.cs:16:13:16:41 | After ...; | cflow.cs:15:9:17:9 | After {...} | | | cflow.cs:16:31:16:31 | access to local variable a | cflow.cs:16:31:16:33 | ...-- | | -| cflow.cs:16:31:16:33 | ...-- | cflow.cs:16:37:16:39 | 100 | | -| cflow.cs:16:31:16:39 | ... * ... | cflow.cs:16:13:16:40 | call to method WriteLine | | +| cflow.cs:16:31:16:33 | ...-- | cflow.cs:16:31:16:33 | After ...-- | | +| cflow.cs:16:31:16:33 | After ...-- | cflow.cs:16:37:16:39 | 100 | | +| cflow.cs:16:31:16:33 | Before ...-- | cflow.cs:16:31:16:31 | access to local variable a | | +| cflow.cs:16:31:16:39 | ... * ... | cflow.cs:16:31:16:39 | After ... * ... | | +| cflow.cs:16:31:16:39 | After ... * ... | cflow.cs:16:13:16:40 | call to method WriteLine | | +| cflow.cs:16:31:16:39 | Before ... * ... | cflow.cs:16:31:16:33 | Before ...-- | | | cflow.cs:16:37:16:39 | 100 | cflow.cs:16:31:16:39 | ... * ... | | +| cflow.cs:19:9:22:25 | After do ... while (...); | cflow.cs:24:9:34:9 | for (...;...;...) ... | | +| cflow.cs:19:9:22:25 | [LoopHeader] do ... while (...); | cflow.cs:22:18:22:23 | Before ... < ... | | | cflow.cs:19:9:22:25 | do ... while (...); | cflow.cs:20:9:22:9 | {...} | | +| cflow.cs:20:9:22:9 | After {...} | cflow.cs:19:9:22:25 | [LoopHeader] do ... while (...); | | | cflow.cs:20:9:22:9 | {...} | cflow.cs:21:13:21:36 | ...; | | -| cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:22:18:22:18 | access to local variable a | | -| cflow.cs:21:13:21:36 | ...; | cflow.cs:21:32:21:32 | access to local variable a | | -| cflow.cs:21:31:21:34 | -... | cflow.cs:21:13:21:35 | call to method WriteLine | | +| cflow.cs:21:13:21:35 | After call to method WriteLine | cflow.cs:21:13:21:36 | After ...; | | +| cflow.cs:21:13:21:35 | Before call to method WriteLine | cflow.cs:21:31:21:34 | Before -... | | +| cflow.cs:21:13:21:35 | call to method WriteLine | cflow.cs:21:13:21:35 | After call to method WriteLine | | +| cflow.cs:21:13:21:36 | ...; | cflow.cs:21:13:21:35 | Before call to method WriteLine | | +| cflow.cs:21:13:21:36 | After ...; | cflow.cs:20:9:22:9 | After {...} | | +| cflow.cs:21:31:21:34 | -... | cflow.cs:21:31:21:34 | After -... | | +| cflow.cs:21:31:21:34 | After -... | cflow.cs:21:13:21:35 | call to method WriteLine | | +| cflow.cs:21:31:21:34 | Before -... | cflow.cs:21:32:21:34 | Before ...++ | | | cflow.cs:21:32:21:32 | access to local variable a | cflow.cs:21:32:21:34 | ...++ | | -| cflow.cs:21:32:21:34 | ...++ | cflow.cs:21:31:21:34 | -... | | +| cflow.cs:21:32:21:34 | ...++ | cflow.cs:21:32:21:34 | After ...++ | | +| cflow.cs:21:32:21:34 | After ...++ | cflow.cs:21:31:21:34 | -... | | +| cflow.cs:21:32:21:34 | Before ...++ | cflow.cs:21:32:21:32 | access to local variable a | | | cflow.cs:22:18:22:18 | access to local variable a | cflow.cs:22:22:22:23 | 10 | | -| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:20:9:22:9 | {...} | true | -| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:24:9:34:9 | for (...;...;...) ... | false | +| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | After ... < ... [false] | false | +| cflow.cs:22:18:22:23 | ... < ... | cflow.cs:22:18:22:23 | After ... < ... [true] | true | +| cflow.cs:22:18:22:23 | After ... < ... [false] | cflow.cs:19:9:22:25 | After do ... while (...); | | +| cflow.cs:22:18:22:23 | After ... < ... [true] | cflow.cs:20:9:22:9 | {...} | | +| cflow.cs:22:18:22:23 | Before ... < ... | cflow.cs:22:18:22:18 | access to local variable a | | | cflow.cs:22:22:22:23 | 10 | cflow.cs:22:18:22:23 | ... < ... | | -| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:22:24:22 | 1 | | -| cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:25:24:25 | access to local variable i | | +| cflow.cs:24:9:34:9 | After for (...;...;...) ... | cflow.cs:6:5:35:5 | After {...} | | +| cflow.cs:24:9:34:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:24:34:24:36 | Before ...++ | | +| cflow.cs:24:9:34:9 | for (...;...;...) ... | cflow.cs:24:18:24:22 | Before Int32 i = ... | | +| cflow.cs:24:18:24:18 | access to local variable i | cflow.cs:24:22:24:22 | 1 | | +| cflow.cs:24:18:24:22 | After Int32 i = ... | cflow.cs:24:25:24:31 | Before ... <= ... | | +| cflow.cs:24:18:24:22 | Before Int32 i = ... | cflow.cs:24:18:24:18 | access to local variable i | | +| cflow.cs:24:18:24:22 | Int32 i = ... | cflow.cs:24:18:24:22 | After Int32 i = ... | | | cflow.cs:24:22:24:22 | 1 | cflow.cs:24:18:24:22 | Int32 i = ... | | | cflow.cs:24:25:24:25 | access to local variable i | cflow.cs:24:30:24:31 | 20 | | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:5:17:5:20 | exit Main (normal) | false | -| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:25:9:34:9 | {...} | true | +| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [false] | false | +| cflow.cs:24:25:24:31 | ... <= ... | cflow.cs:24:25:24:31 | After ... <= ... [true] | true | +| cflow.cs:24:25:24:31 | After ... <= ... [false] | cflow.cs:24:9:34:9 | After for (...;...;...) ... | | +| cflow.cs:24:25:24:31 | After ... <= ... [true] | cflow.cs:25:9:34:9 | {...} | | +| cflow.cs:24:25:24:31 | Before ... <= ... | cflow.cs:24:25:24:25 | access to local variable i | | | cflow.cs:24:30:24:31 | 20 | cflow.cs:24:25:24:31 | ... <= ... | | | cflow.cs:24:34:24:34 | access to local variable i | cflow.cs:24:34:24:36 | ...++ | | -| cflow.cs:24:34:24:36 | ...++ | cflow.cs:24:25:24:25 | access to local variable i | | +| cflow.cs:24:34:24:36 | ...++ | cflow.cs:24:34:24:36 | After ...++ | | +| cflow.cs:24:34:24:36 | After ...++ | cflow.cs:24:25:24:31 | Before ... <= ... | | +| cflow.cs:24:34:24:36 | Before ...++ | cflow.cs:24:34:24:34 | access to local variable i | | +| cflow.cs:25:9:34:9 | After {...} | cflow.cs:24:9:34:9 | [LoopHeader] for (...;...;...) ... | | | cflow.cs:25:9:34:9 | {...} | cflow.cs:26:13:33:37 | if (...) ... | | -| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:26:17:26:17 | access to local variable i | | +| cflow.cs:26:13:33:37 | After if (...) ... | cflow.cs:25:9:34:9 | After {...} | | +| cflow.cs:26:13:33:37 | if (...) ... | cflow.cs:26:17:26:40 | ... && ... | | | cflow.cs:26:17:26:17 | access to local variable i | cflow.cs:26:21:26:21 | 3 | | -| cflow.cs:26:17:26:21 | ... % ... | cflow.cs:26:26:26:26 | 0 | | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:40 | [false] ... && ... | false | -| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:31:26:31 | access to local variable i | true | -| cflow.cs:26:17:26:40 | [false] ... && ... | cflow.cs:28:18:33:37 | if (...) ... | false | -| cflow.cs:26:17:26:40 | [true] ... && ... | cflow.cs:27:17:27:46 | ...; | true | +| cflow.cs:26:17:26:21 | ... % ... | cflow.cs:26:17:26:21 | After ... % ... | | +| cflow.cs:26:17:26:21 | After ... % ... | cflow.cs:26:26:26:26 | 0 | | +| cflow.cs:26:17:26:21 | Before ... % ... | cflow.cs:26:17:26:17 | access to local variable i | | +| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | After ... == ... [false] | false | +| cflow.cs:26:17:26:26 | ... == ... | cflow.cs:26:17:26:26 | After ... == ... [true] | true | +| cflow.cs:26:17:26:26 | After ... == ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | false | +| cflow.cs:26:17:26:26 | After ... == ... [true] | cflow.cs:26:31:26:40 | Before ... == ... | | +| cflow.cs:26:17:26:26 | Before ... == ... | cflow.cs:26:17:26:21 | Before ... % ... | | +| cflow.cs:26:17:26:40 | ... && ... | cflow.cs:26:17:26:26 | Before ... == ... | | +| cflow.cs:26:17:26:40 | After ... && ... [false] | cflow.cs:28:18:33:37 | if (...) ... | | +| cflow.cs:26:17:26:40 | After ... && ... [true] | cflow.cs:27:17:27:46 | ...; | | | cflow.cs:26:21:26:21 | 3 | cflow.cs:26:17:26:21 | ... % ... | | | cflow.cs:26:26:26:26 | 0 | cflow.cs:26:17:26:26 | ... == ... | | | cflow.cs:26:31:26:31 | access to local variable i | cflow.cs:26:35:26:35 | 5 | | -| cflow.cs:26:31:26:35 | ... % ... | cflow.cs:26:40:26:40 | 0 | | -| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:17:26:40 | [false] ... && ... | false | -| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:17:26:40 | [true] ... && ... | true | +| cflow.cs:26:31:26:35 | ... % ... | cflow.cs:26:31:26:35 | After ... % ... | | +| cflow.cs:26:31:26:35 | After ... % ... | cflow.cs:26:40:26:40 | 0 | | +| cflow.cs:26:31:26:35 | Before ... % ... | cflow.cs:26:31:26:31 | access to local variable i | | +| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | After ... == ... [false] | false | +| cflow.cs:26:31:26:40 | ... == ... | cflow.cs:26:31:26:40 | After ... == ... [true] | true | +| cflow.cs:26:31:26:40 | After ... == ... [false] | cflow.cs:26:17:26:40 | After ... && ... [false] | false | +| cflow.cs:26:31:26:40 | After ... == ... [true] | cflow.cs:26:17:26:40 | After ... && ... [true] | true | +| cflow.cs:26:31:26:40 | Before ... == ... | cflow.cs:26:31:26:35 | Before ... % ... | | | cflow.cs:26:35:26:35 | 5 | cflow.cs:26:31:26:35 | ... % ... | | | cflow.cs:26:40:26:40 | 0 | cflow.cs:26:31:26:40 | ... == ... | | -| cflow.cs:27:17:27:45 | call to method WriteLine | cflow.cs:24:34:24:34 | access to local variable i | | -| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:35:27:44 | "FizzBuzz" | | +| cflow.cs:27:17:27:45 | After call to method WriteLine | cflow.cs:27:17:27:46 | After ...; | | +| cflow.cs:27:17:27:45 | Before call to method WriteLine | cflow.cs:27:35:27:44 | "FizzBuzz" | | +| cflow.cs:27:17:27:45 | call to method WriteLine | cflow.cs:27:17:27:45 | After call to method WriteLine | | +| cflow.cs:27:17:27:46 | ...; | cflow.cs:27:17:27:45 | Before call to method WriteLine | | +| cflow.cs:27:17:27:46 | After ...; | cflow.cs:26:13:33:37 | After if (...) ... | | | cflow.cs:27:35:27:44 | "FizzBuzz" | cflow.cs:27:17:27:45 | call to method WriteLine | | -| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:28:22:28:22 | access to local variable i | | +| cflow.cs:28:18:33:37 | After if (...) ... | cflow.cs:26:13:33:37 | After if (...) ... | | +| cflow.cs:28:18:33:37 | if (...) ... | cflow.cs:28:22:28:31 | Before ... == ... | | | cflow.cs:28:22:28:22 | access to local variable i | cflow.cs:28:26:28:26 | 3 | | -| cflow.cs:28:22:28:26 | ... % ... | cflow.cs:28:31:28:31 | 0 | | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:29:17:29:42 | ...; | true | -| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:30:18:33:37 | if (...) ... | false | +| cflow.cs:28:22:28:26 | ... % ... | cflow.cs:28:22:28:26 | After ... % ... | | +| cflow.cs:28:22:28:26 | After ... % ... | cflow.cs:28:31:28:31 | 0 | | +| cflow.cs:28:22:28:26 | Before ... % ... | cflow.cs:28:22:28:22 | access to local variable i | | +| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | After ... == ... [false] | false | +| cflow.cs:28:22:28:31 | ... == ... | cflow.cs:28:22:28:31 | After ... == ... [true] | true | +| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:18:33:37 | if (...) ... | | +| cflow.cs:28:22:28:31 | After ... == ... [true] | cflow.cs:29:17:29:42 | ...; | | +| cflow.cs:28:22:28:31 | Before ... == ... | cflow.cs:28:22:28:26 | Before ... % ... | | | cflow.cs:28:26:28:26 | 3 | cflow.cs:28:22:28:26 | ... % ... | | | cflow.cs:28:31:28:31 | 0 | cflow.cs:28:22:28:31 | ... == ... | | -| cflow.cs:29:17:29:41 | call to method WriteLine | cflow.cs:24:34:24:34 | access to local variable i | | -| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:35:29:40 | "Fizz" | | +| cflow.cs:29:17:29:41 | After call to method WriteLine | cflow.cs:29:17:29:42 | After ...; | | +| cflow.cs:29:17:29:41 | Before call to method WriteLine | cflow.cs:29:35:29:40 | "Fizz" | | +| cflow.cs:29:17:29:41 | call to method WriteLine | cflow.cs:29:17:29:41 | After call to method WriteLine | | +| cflow.cs:29:17:29:42 | ...; | cflow.cs:29:17:29:41 | Before call to method WriteLine | | +| cflow.cs:29:17:29:42 | After ...; | cflow.cs:28:18:33:37 | After if (...) ... | | | cflow.cs:29:35:29:40 | "Fizz" | cflow.cs:29:17:29:41 | call to method WriteLine | | -| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:30:22:30:22 | access to local variable i | | +| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:28:18:33:37 | After if (...) ... | | +| cflow.cs:30:18:33:37 | if (...) ... | cflow.cs:30:22:30:31 | Before ... == ... | | | cflow.cs:30:22:30:22 | access to local variable i | cflow.cs:30:26:30:26 | 5 | | -| cflow.cs:30:22:30:26 | ... % ... | cflow.cs:30:31:30:31 | 0 | | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:31:17:31:42 | ...; | true | -| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:33:17:33:37 | ...; | false | +| cflow.cs:30:22:30:26 | ... % ... | cflow.cs:30:22:30:26 | After ... % ... | | +| cflow.cs:30:22:30:26 | After ... % ... | cflow.cs:30:31:30:31 | 0 | | +| cflow.cs:30:22:30:26 | Before ... % ... | cflow.cs:30:22:30:22 | access to local variable i | | +| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | After ... == ... [false] | false | +| cflow.cs:30:22:30:31 | ... == ... | cflow.cs:30:22:30:31 | After ... == ... [true] | true | +| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:33:17:33:37 | ...; | | +| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:31:17:31:42 | ...; | | +| cflow.cs:30:22:30:31 | Before ... == ... | cflow.cs:30:22:30:26 | Before ... % ... | | | cflow.cs:30:26:30:26 | 5 | cflow.cs:30:22:30:26 | ... % ... | | | cflow.cs:30:31:30:31 | 0 | cflow.cs:30:22:30:31 | ... == ... | | -| cflow.cs:31:17:31:41 | call to method WriteLine | cflow.cs:24:34:24:34 | access to local variable i | | -| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:35:31:40 | "Buzz" | | +| cflow.cs:31:17:31:41 | After call to method WriteLine | cflow.cs:31:17:31:42 | After ...; | | +| cflow.cs:31:17:31:41 | Before call to method WriteLine | cflow.cs:31:35:31:40 | "Buzz" | | +| cflow.cs:31:17:31:41 | call to method WriteLine | cflow.cs:31:17:31:41 | After call to method WriteLine | | +| cflow.cs:31:17:31:42 | ...; | cflow.cs:31:17:31:41 | Before call to method WriteLine | | +| cflow.cs:31:17:31:42 | After ...; | cflow.cs:30:18:33:37 | After if (...) ... | | | cflow.cs:31:35:31:40 | "Buzz" | cflow.cs:31:17:31:41 | call to method WriteLine | | -| cflow.cs:33:17:33:36 | call to method WriteLine | cflow.cs:24:34:24:34 | access to local variable i | | -| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:35:33:35 | access to local variable i | | +| cflow.cs:33:17:33:36 | After call to method WriteLine | cflow.cs:33:17:33:37 | After ...; | | +| cflow.cs:33:17:33:36 | Before call to method WriteLine | cflow.cs:33:35:33:35 | access to local variable i | | +| cflow.cs:33:17:33:36 | call to method WriteLine | cflow.cs:33:17:33:36 | After call to method WriteLine | | +| cflow.cs:33:17:33:37 | ...; | cflow.cs:33:17:33:36 | Before call to method WriteLine | | +| cflow.cs:33:17:33:37 | After ...; | cflow.cs:30:18:33:37 | After if (...) ... | | | cflow.cs:33:35:33:35 | access to local variable i | cflow.cs:33:17:33:36 | call to method WriteLine | | -| cflow.cs:37:17:37:22 | enter Switch | cflow.cs:38:5:68:5 | {...} | | -| cflow.cs:37:17:37:22 | exit Switch (abnormal) | cflow.cs:37:17:37:22 | exit Switch | | -| cflow.cs:37:17:37:22 | exit Switch (normal) | cflow.cs:37:17:37:22 | exit Switch | | +| cflow.cs:37:17:37:22 | Entry | cflow.cs:38:5:68:5 | {...} | | +| cflow.cs:37:17:37:22 | Exceptional Exit | cflow.cs:37:17:37:22 | Exit | | +| cflow.cs:37:17:37:22 | Normal Exit | cflow.cs:37:17:37:22 | Exit | | | cflow.cs:38:5:68:5 | {...} | cflow.cs:39:9:50:9 | switch (...) {...} | | +| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} | | | cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:39:17:39:17 | access to parameter a | | | cflow.cs:39:17:39:17 | access to parameter a | cflow.cs:41:13:41:19 | case ...: | | -| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:18:41:18 | 1 | | -| cflow.cs:41:18:41:18 | 1 | cflow.cs:42:17:42:39 | ...; | match | -| cflow.cs:41:18:41:18 | 1 | cflow.cs:44:13:44:19 | case ...: | no-match | -| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:43:27:43:27 | 2 | | -| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:35:42:37 | "1" | | +| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:41:18:41:18 | 1 | | +| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | case ...: | | +| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | After case ...: [match] | match | +| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | After case ...: [no-match] | no-match | +| cflow.cs:41:18:41:18 | 1 | cflow.cs:42:17:42:39 | ...; | | +| cflow.cs:42:17:42:38 | After call to method WriteLine | cflow.cs:42:17:42:39 | After ...; | | +| cflow.cs:42:17:42:38 | Before call to method WriteLine | cflow.cs:42:35:42:37 | "1" | | +| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:42:17:42:38 | After call to method WriteLine | | +| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:17:42:38 | Before call to method WriteLine | | +| cflow.cs:42:17:42:39 | After ...; | cflow.cs:43:17:43:28 | Before goto case ...; | | | cflow.cs:42:35:42:37 | "1" | cflow.cs:42:17:42:38 | call to method WriteLine | | -| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:44:13:44:19 | case ...: | goto | +| cflow.cs:43:17:43:28 | Before goto case ...; | cflow.cs:43:27:43:27 | 2 | | +| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:44:13:44:19 | After case ...: [match] | goto | | cflow.cs:43:27:43:27 | 2 | cflow.cs:43:17:43:28 | goto case ...; | | -| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | | -| cflow.cs:44:18:44:18 | 2 | cflow.cs:45:17:45:39 | ...; | match | -| cflow.cs:44:18:44:18 | 2 | cflow.cs:47:13:47:19 | case ...: | no-match | -| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:46:27:46:27 | 1 | | -| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:35:45:37 | "2" | | +| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:44:18:44:18 | 2 | | +| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | case ...: | | +| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | After case ...: [match] | match | +| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | After case ...: [no-match] | no-match | +| cflow.cs:44:18:44:18 | 2 | cflow.cs:45:17:45:39 | ...; | | +| cflow.cs:45:17:45:38 | After call to method WriteLine | cflow.cs:45:17:45:39 | After ...; | | +| cflow.cs:45:17:45:38 | Before call to method WriteLine | cflow.cs:45:35:45:37 | "2" | | +| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:45:17:45:38 | After call to method WriteLine | | +| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:17:45:38 | Before call to method WriteLine | | +| cflow.cs:45:17:45:39 | After ...; | cflow.cs:46:17:46:28 | Before goto case ...; | | | cflow.cs:45:35:45:37 | "2" | cflow.cs:45:17:45:38 | call to method WriteLine | | -| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:41:13:41:19 | case ...: | goto | +| cflow.cs:46:17:46:28 | Before goto case ...; | cflow.cs:46:27:46:27 | 1 | | +| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:41:13:41:19 | After case ...: [match] | goto | | cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; | | -| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | | -| cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | match | -| cflow.cs:47:18:47:18 | 3 | cflow.cs:51:9:59:9 | switch (...) {...} | no-match | -| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:49:17:49:22 | break; | | -| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:35:48:37 | "3" | | +| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:47:18:47:18 | 3 | | +| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:39:9:50:9 | After switch (...) {...} | | +| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | After case ...: [match] | match | +| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | After case ...: [no-match] | no-match | +| cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | | +| cflow.cs:48:17:48:38 | After call to method WriteLine | cflow.cs:48:17:48:39 | After ...; | | +| cflow.cs:48:17:48:38 | Before call to method WriteLine | cflow.cs:48:35:48:37 | "3" | | +| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:48:17:48:38 | After call to method WriteLine | | +| cflow.cs:48:17:48:39 | ...; | cflow.cs:48:17:48:38 | Before call to method WriteLine | | +| cflow.cs:48:17:48:39 | After ...; | cflow.cs:49:17:49:22 | Before break; | | | cflow.cs:48:35:48:37 | "3" | cflow.cs:48:17:48:38 | call to method WriteLine | | -| cflow.cs:49:17:49:22 | break; | cflow.cs:51:9:59:9 | switch (...) {...} | break | +| cflow.cs:49:17:49:22 | Before break; | cflow.cs:49:17:49:22 | break; | | +| cflow.cs:49:17:49:22 | break; | cflow.cs:39:9:50:9 | After switch (...) {...} | break | +| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} | | | cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:17:51:17 | access to parameter a | | | cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:53:13:53:20 | case ...: | | -| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:18:53:19 | 42 | | -| cflow.cs:53:18:53:19 | 42 | cflow.cs:54:17:54:48 | ...; | match | -| cflow.cs:53:18:53:19 | 42 | cflow.cs:56:13:56:20 | default: | no-match | -| cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:55:17:55:22 | break; | | -| cflow.cs:54:17:54:48 | ...; | cflow.cs:54:35:54:46 | "The answer" | | +| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:53:18:53:19 | 42 | | +| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:56:13:56:20 | default: | | +| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:13:53:20 | After case ...: [match] | match | +| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:13:53:20 | After case ...: [no-match] | no-match | +| cflow.cs:53:18:53:19 | 42 | cflow.cs:54:17:54:48 | ...; | | +| cflow.cs:54:17:54:47 | After call to method WriteLine | cflow.cs:54:17:54:48 | After ...; | | +| cflow.cs:54:17:54:47 | Before call to method WriteLine | cflow.cs:54:35:54:46 | "The answer" | | +| cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:54:17:54:47 | After call to method WriteLine | | +| cflow.cs:54:17:54:48 | ...; | cflow.cs:54:17:54:47 | Before call to method WriteLine | | +| cflow.cs:54:17:54:48 | After ...; | cflow.cs:55:17:55:22 | Before break; | | | cflow.cs:54:35:54:46 | "The answer" | cflow.cs:54:17:54:47 | call to method WriteLine | | -| cflow.cs:55:17:55:22 | break; | cflow.cs:60:9:66:9 | switch (...) {...} | break | -| cflow.cs:56:13:56:20 | default: | cflow.cs:57:17:57:52 | ...; | | -| cflow.cs:57:17:57:51 | call to method WriteLine | cflow.cs:58:17:58:22 | break; | | -| cflow.cs:57:17:57:52 | ...; | cflow.cs:57:35:57:50 | "Not the answer" | | +| cflow.cs:55:17:55:22 | Before break; | cflow.cs:55:17:55:22 | break; | | +| cflow.cs:55:17:55:22 | break; | cflow.cs:51:9:59:9 | After switch (...) {...} | break | +| cflow.cs:56:13:56:20 | After default: [match] | cflow.cs:57:17:57:52 | ...; | | +| cflow.cs:56:13:56:20 | default: | cflow.cs:56:13:56:20 | After default: [match] | match | +| cflow.cs:57:17:57:51 | After call to method WriteLine | cflow.cs:57:17:57:52 | After ...; | | +| cflow.cs:57:17:57:51 | Before call to method WriteLine | cflow.cs:57:35:57:50 | "Not the answer" | | +| cflow.cs:57:17:57:51 | call to method WriteLine | cflow.cs:57:17:57:51 | After call to method WriteLine | | +| cflow.cs:57:17:57:52 | ...; | cflow.cs:57:17:57:51 | Before call to method WriteLine | | +| cflow.cs:57:17:57:52 | After ...; | cflow.cs:58:17:58:22 | Before break; | | | cflow.cs:57:35:57:50 | "Not the answer" | cflow.cs:57:17:57:51 | call to method WriteLine | | -| cflow.cs:58:17:58:22 | break; | cflow.cs:60:9:66:9 | switch (...) {...} | break | -| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:27:60:31 | this access | | -| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:62:13:62:19 | case ...: | | -| cflow.cs:60:27:60:31 | access to field Field | cflow.cs:60:17:60:32 | call to method Parse | | +| cflow.cs:58:17:58:22 | Before break; | cflow.cs:58:17:58:22 | break; | | +| cflow.cs:58:17:58:22 | break; | cflow.cs:51:9:59:9 | After switch (...) {...} | break | +| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:67:9:67:17 | Before return ...; | | +| cflow.cs:60:9:66:9 | switch (...) {...} | cflow.cs:60:17:60:32 | Before call to method Parse | | +| cflow.cs:60:17:60:32 | After call to method Parse | cflow.cs:62:13:62:19 | case ...: | | +| cflow.cs:60:17:60:32 | Before call to method Parse | cflow.cs:60:27:60:31 | Before access to field Field | | +| cflow.cs:60:17:60:32 | call to method Parse | cflow.cs:60:17:60:32 | After call to method Parse | | +| cflow.cs:60:27:60:31 | After access to field Field | cflow.cs:60:17:60:32 | call to method Parse | | +| cflow.cs:60:27:60:31 | Before access to field Field | cflow.cs:60:27:60:31 | this access | | +| cflow.cs:60:27:60:31 | access to field Field | cflow.cs:60:27:60:31 | After access to field Field | | | cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | access to field Field | | -| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:18:62:18 | 0 | | -| cflow.cs:62:18:62:18 | 0 | cflow.cs:63:17:64:55 | if (...) ... | match | -| cflow.cs:62:18:62:18 | 0 | cflow.cs:67:16:67:16 | access to parameter a | no-match | -| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:23:63:27 | this access | | -| cflow.cs:63:21:63:34 | [false] !... | cflow.cs:65:17:65:22 | break; | false | -| cflow.cs:63:21:63:34 | [true] !... | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | true | -| cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:32:63:33 | "" | | +| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:62:18:62:18 | 0 | | +| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:60:9:66:9 | After switch (...) {...} | | +| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:13:62:19 | After case ...: [match] | match | +| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:13:62:19 | After case ...: [no-match] | no-match | +| cflow.cs:62:18:62:18 | 0 | cflow.cs:63:17:64:55 | if (...) ... | | +| cflow.cs:63:17:64:55 | After if (...) ... | cflow.cs:65:17:65:22 | Before break; | | +| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | !... | | +| cflow.cs:63:21:63:34 | !... | cflow.cs:63:23:63:33 | Before ... == ... | | +| cflow.cs:63:21:63:34 | After !... [false] | cflow.cs:63:17:64:55 | After if (...) ... | | +| cflow.cs:63:21:63:34 | After !... [true] | cflow.cs:64:21:64:55 | Before throw ...; | | +| cflow.cs:63:23:63:27 | After access to field Field | cflow.cs:63:32:63:33 | "" | | +| cflow.cs:63:23:63:27 | Before access to field Field | cflow.cs:63:23:63:27 | this access | | +| cflow.cs:63:23:63:27 | access to field Field | cflow.cs:63:23:63:27 | After access to field Field | | | cflow.cs:63:23:63:27 | this access | cflow.cs:63:23:63:27 | access to field Field | | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [false] !... | true | -| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [true] !... | false | +| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | After ... == ... [false] | false | +| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:23:63:33 | After ... == ... [true] | true | +| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:63:21:63:34 | After !... [true] | true | +| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:63:21:63:34 | After !... [false] | false | +| cflow.cs:63:23:63:33 | Before ... == ... | cflow.cs:63:23:63:27 | Before access to field Field | | | cflow.cs:63:32:63:33 | "" | cflow.cs:63:23:63:33 | ... == ... | | -| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | exit Switch (abnormal) | exception | -| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; | | -| cflow.cs:65:17:65:22 | break; | cflow.cs:67:16:67:16 | access to parameter a | break | -| cflow.cs:67:9:67:17 | return ...; | cflow.cs:37:17:37:22 | exit Switch (normal) | return | +| cflow.cs:64:21:64:55 | Before throw ...; | cflow.cs:64:27:64:54 | Before object creation of type NullReferenceException | | +| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | Exceptional Exit | exception | +| cflow.cs:64:27:64:54 | After object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; | | +| cflow.cs:64:27:64:54 | Before object creation of type NullReferenceException | cflow.cs:64:27:64:54 | object creation of type NullReferenceException | | +| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:27:64:54 | After object creation of type NullReferenceException | | +| cflow.cs:65:17:65:22 | Before break; | cflow.cs:65:17:65:22 | break; | | +| cflow.cs:65:17:65:22 | break; | cflow.cs:60:9:66:9 | After switch (...) {...} | break | +| cflow.cs:67:9:67:17 | Before return ...; | cflow.cs:67:16:67:16 | access to parameter a | | +| cflow.cs:67:9:67:17 | return ...; | cflow.cs:37:17:37:22 | Normal Exit | return | | cflow.cs:67:16:67:16 | access to parameter a | cflow.cs:67:9:67:17 | return ...; | | -| cflow.cs:70:18:70:18 | enter M | cflow.cs:71:5:82:5 | {...} | | -| cflow.cs:70:18:70:18 | exit M (normal) | cflow.cs:70:18:70:18 | exit M | | +| cflow.cs:70:18:70:18 | Entry | cflow.cs:71:5:82:5 | {...} | | +| cflow.cs:70:18:70:18 | Normal Exit | cflow.cs:70:18:70:18 | Exit | | +| cflow.cs:71:5:82:5 | After {...} | cflow.cs:70:18:70:18 | Normal Exit | | | cflow.cs:71:5:82:5 | {...} | cflow.cs:72:9:73:19 | if (...) ... | | -| cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:72:13:72:13 | access to parameter s | | +| cflow.cs:72:9:73:19 | After if (...) ... | cflow.cs:74:9:81:9 | if (...) ... | | +| cflow.cs:72:9:73:19 | if (...) ... | cflow.cs:72:13:72:21 | Before ... == ... | | | cflow.cs:72:13:72:13 | access to parameter s | cflow.cs:72:18:72:21 | null | | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:73:13:73:19 | return ...; | true | -| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:74:9:81:9 | if (...) ... | false | +| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | After ... == ... [false] | false | +| cflow.cs:72:13:72:21 | ... == ... | cflow.cs:72:13:72:21 | After ... == ... [true] | true | +| cflow.cs:72:13:72:21 | After ... == ... [false] | cflow.cs:72:9:73:19 | After if (...) ... | | +| cflow.cs:72:13:72:21 | After ... == ... [true] | cflow.cs:73:13:73:19 | Before return ...; | | +| cflow.cs:72:13:72:21 | Before ... == ... | cflow.cs:72:13:72:13 | access to parameter s | | | cflow.cs:72:18:72:21 | null | cflow.cs:72:13:72:21 | ... == ... | | -| cflow.cs:73:13:73:19 | return ...; | cflow.cs:70:18:70:18 | exit M (normal) | return | -| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:74:13:74:13 | access to parameter s | | +| cflow.cs:73:13:73:19 | Before return ...; | cflow.cs:73:13:73:19 | return ...; | | +| cflow.cs:73:13:73:19 | return ...; | cflow.cs:70:18:70:18 | Normal Exit | return | +| cflow.cs:74:9:81:9 | After if (...) ... | cflow.cs:71:5:82:5 | After {...} | | +| cflow.cs:74:9:81:9 | if (...) ... | cflow.cs:74:13:74:24 | Before ... > ... | | | cflow.cs:74:13:74:13 | access to parameter s | cflow.cs:74:13:74:20 | access to property Length | | -| cflow.cs:74:13:74:20 | access to property Length | cflow.cs:74:24:74:24 | 0 | | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:75:9:77:9 | {...} | true | -| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:79:9:81:9 | {...} | false | +| cflow.cs:74:13:74:20 | After access to property Length | cflow.cs:74:24:74:24 | 0 | | +| cflow.cs:74:13:74:20 | Before access to property Length | cflow.cs:74:13:74:13 | access to parameter s | | +| cflow.cs:74:13:74:20 | access to property Length | cflow.cs:74:13:74:20 | After access to property Length | | +| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | After ... > ... [false] | false | +| cflow.cs:74:13:74:24 | ... > ... | cflow.cs:74:13:74:24 | After ... > ... [true] | true | +| cflow.cs:74:13:74:24 | After ... > ... [false] | cflow.cs:79:9:81:9 | {...} | | +| cflow.cs:74:13:74:24 | After ... > ... [true] | cflow.cs:75:9:77:9 | {...} | | +| cflow.cs:74:13:74:24 | Before ... > ... | cflow.cs:74:13:74:20 | Before access to property Length | | | cflow.cs:74:24:74:24 | 0 | cflow.cs:74:13:74:24 | ... > ... | | +| cflow.cs:75:9:77:9 | After {...} | cflow.cs:74:9:81:9 | After if (...) ... | | | cflow.cs:75:9:77:9 | {...} | cflow.cs:76:13:76:33 | ...; | | -| cflow.cs:76:13:76:32 | call to method WriteLine | cflow.cs:70:18:70:18 | exit M (normal) | | -| cflow.cs:76:13:76:33 | ...; | cflow.cs:76:31:76:31 | access to parameter s | | +| cflow.cs:76:13:76:32 | After call to method WriteLine | cflow.cs:76:13:76:33 | After ...; | | +| cflow.cs:76:13:76:32 | Before call to method WriteLine | cflow.cs:76:31:76:31 | access to parameter s | | +| cflow.cs:76:13:76:32 | call to method WriteLine | cflow.cs:76:13:76:32 | After call to method WriteLine | | +| cflow.cs:76:13:76:33 | ...; | cflow.cs:76:13:76:32 | Before call to method WriteLine | | +| cflow.cs:76:13:76:33 | After ...; | cflow.cs:75:9:77:9 | After {...} | | | cflow.cs:76:31:76:31 | access to parameter s | cflow.cs:76:13:76:32 | call to method WriteLine | | +| cflow.cs:79:9:81:9 | After {...} | cflow.cs:74:9:81:9 | After if (...) ... | | | cflow.cs:79:9:81:9 | {...} | cflow.cs:80:13:80:48 | ...; | | -| cflow.cs:80:13:80:47 | call to method WriteLine | cflow.cs:70:18:70:18 | exit M (normal) | | -| cflow.cs:80:13:80:48 | ...; | cflow.cs:80:31:80:46 | "" | | +| cflow.cs:80:13:80:47 | After call to method WriteLine | cflow.cs:80:13:80:48 | After ...; | | +| cflow.cs:80:13:80:47 | Before call to method WriteLine | cflow.cs:80:31:80:46 | "" | | +| cflow.cs:80:13:80:47 | call to method WriteLine | cflow.cs:80:13:80:47 | After call to method WriteLine | | +| cflow.cs:80:13:80:48 | ...; | cflow.cs:80:13:80:47 | Before call to method WriteLine | | +| cflow.cs:80:13:80:48 | After ...; | cflow.cs:79:9:81:9 | After {...} | | | cflow.cs:80:31:80:46 | "" | cflow.cs:80:13:80:47 | call to method WriteLine | | -| cflow.cs:84:18:84:19 | enter M2 | cflow.cs:85:5:88:5 | {...} | | -| cflow.cs:84:18:84:19 | exit M2 (normal) | cflow.cs:84:18:84:19 | exit M2 | | +| cflow.cs:84:18:84:19 | Entry | cflow.cs:85:5:88:5 | {...} | | +| cflow.cs:84:18:84:19 | Normal Exit | cflow.cs:84:18:84:19 | Exit | | +| cflow.cs:85:5:88:5 | After {...} | cflow.cs:84:18:84:19 | Normal Exit | | | cflow.cs:85:5:88:5 | {...} | cflow.cs:86:9:87:33 | if (...) ... | | -| cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:86:13:86:13 | access to parameter s | | +| cflow.cs:86:9:87:33 | After if (...) ... | cflow.cs:85:5:88:5 | After {...} | | +| cflow.cs:86:9:87:33 | if (...) ... | cflow.cs:86:13:86:37 | ... && ... | | | cflow.cs:86:13:86:13 | access to parameter s | cflow.cs:86:18:86:21 | null | | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:37 | [false] ... && ... | false | -| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:26:86:26 | access to parameter s | true | -| cflow.cs:86:13:86:37 | [false] ... && ... | cflow.cs:84:18:84:19 | exit M2 (normal) | false | -| cflow.cs:86:13:86:37 | [true] ... && ... | cflow.cs:87:13:87:33 | ...; | true | +| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | After ... != ... [false] | false | +| cflow.cs:86:13:86:21 | ... != ... | cflow.cs:86:13:86:21 | After ... != ... [true] | true | +| cflow.cs:86:13:86:21 | After ... != ... [false] | cflow.cs:86:13:86:37 | After ... && ... [false] | false | +| cflow.cs:86:13:86:21 | After ... != ... [true] | cflow.cs:86:26:86:37 | Before ... > ... | | +| cflow.cs:86:13:86:21 | Before ... != ... | cflow.cs:86:13:86:13 | access to parameter s | | +| cflow.cs:86:13:86:37 | ... && ... | cflow.cs:86:13:86:21 | Before ... != ... | | +| cflow.cs:86:13:86:37 | After ... && ... [false] | cflow.cs:86:9:87:33 | After if (...) ... | | +| cflow.cs:86:13:86:37 | After ... && ... [true] | cflow.cs:87:13:87:33 | ...; | | | cflow.cs:86:18:86:21 | null | cflow.cs:86:13:86:21 | ... != ... | | | cflow.cs:86:26:86:26 | access to parameter s | cflow.cs:86:26:86:33 | access to property Length | | -| cflow.cs:86:26:86:33 | access to property Length | cflow.cs:86:37:86:37 | 0 | | -| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:13:86:37 | [false] ... && ... | false | -| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:13:86:37 | [true] ... && ... | true | +| cflow.cs:86:26:86:33 | After access to property Length | cflow.cs:86:37:86:37 | 0 | | +| cflow.cs:86:26:86:33 | Before access to property Length | cflow.cs:86:26:86:26 | access to parameter s | | +| cflow.cs:86:26:86:33 | access to property Length | cflow.cs:86:26:86:33 | After access to property Length | | +| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | After ... > ... [false] | false | +| cflow.cs:86:26:86:37 | ... > ... | cflow.cs:86:26:86:37 | After ... > ... [true] | true | +| cflow.cs:86:26:86:37 | After ... > ... [false] | cflow.cs:86:13:86:37 | After ... && ... [false] | false | +| cflow.cs:86:26:86:37 | After ... > ... [true] | cflow.cs:86:13:86:37 | After ... && ... [true] | true | +| cflow.cs:86:26:86:37 | Before ... > ... | cflow.cs:86:26:86:33 | Before access to property Length | | | cflow.cs:86:37:86:37 | 0 | cflow.cs:86:26:86:37 | ... > ... | | -| cflow.cs:87:13:87:32 | call to method WriteLine | cflow.cs:84:18:84:19 | exit M2 (normal) | | -| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:31:87:31 | access to parameter s | | +| cflow.cs:87:13:87:32 | After call to method WriteLine | cflow.cs:87:13:87:33 | After ...; | | +| cflow.cs:87:13:87:32 | Before call to method WriteLine | cflow.cs:87:31:87:31 | access to parameter s | | +| cflow.cs:87:13:87:32 | call to method WriteLine | cflow.cs:87:13:87:32 | After call to method WriteLine | | +| cflow.cs:87:13:87:33 | ...; | cflow.cs:87:13:87:32 | Before call to method WriteLine | | +| cflow.cs:87:13:87:33 | After ...; | cflow.cs:86:9:87:33 | After if (...) ... | | | cflow.cs:87:31:87:31 | access to parameter s | cflow.cs:87:13:87:32 | call to method WriteLine | | -| cflow.cs:90:18:90:19 | enter M3 | cflow.cs:91:5:104:5 | {...} | | -| cflow.cs:90:18:90:19 | exit M3 (abnormal) | cflow.cs:90:18:90:19 | exit M3 | | -| cflow.cs:90:18:90:19 | exit M3 (normal) | cflow.cs:90:18:90:19 | exit M3 | | +| cflow.cs:90:18:90:19 | Entry | cflow.cs:91:5:104:5 | {...} | | +| cflow.cs:90:18:90:19 | Exceptional Exit | cflow.cs:90:18:90:19 | Exit | | +| cflow.cs:90:18:90:19 | Normal Exit | cflow.cs:90:18:90:19 | Exit | | +| cflow.cs:91:5:104:5 | After {...} | cflow.cs:90:18:90:19 | Normal Exit | | | cflow.cs:91:5:104:5 | {...} | cflow.cs:92:9:93:49 | if (...) ... | | -| cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:92:20:92:20 | access to parameter s | | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:93:45:93:47 | "s" | true | -| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:94:9:94:29 | ...; | false | +| cflow.cs:92:9:93:49 | After if (...) ... | cflow.cs:94:9:94:29 | ...; | | +| cflow.cs:92:9:93:49 | if (...) ... | cflow.cs:92:13:92:27 | Before call to method Equals | | +| cflow.cs:92:13:92:27 | After call to method Equals [false] | cflow.cs:92:9:93:49 | After if (...) ... | | +| cflow.cs:92:13:92:27 | After call to method Equals [true] | cflow.cs:93:13:93:49 | Before throw ...; | | +| cflow.cs:92:13:92:27 | Before call to method Equals | cflow.cs:92:20:92:20 | access to parameter s | | +| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | After call to method Equals [false] | false | +| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:92:13:92:27 | After call to method Equals [true] | true | | cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:92:23:92:26 | null | | | cflow.cs:92:23:92:26 | null | cflow.cs:92:13:92:27 | call to method Equals | | -| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | exit M3 (abnormal) | exception | -| cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:13:93:49 | throw ...; | | +| cflow.cs:93:13:93:49 | Before throw ...; | cflow.cs:93:19:93:48 | Before object creation of type ArgumentNullException | | +| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | Exceptional Exit | exception | +| cflow.cs:93:19:93:48 | After object creation of type ArgumentNullException | cflow.cs:93:13:93:49 | throw ...; | | +| cflow.cs:93:19:93:48 | Before object creation of type ArgumentNullException | cflow.cs:93:45:93:47 | "s" | | +| cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:19:93:48 | After object creation of type ArgumentNullException | | | cflow.cs:93:45:93:47 | "s" | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | | -| cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:96:9:97:55 | if (...) ... | | -| cflow.cs:94:9:94:29 | ...; | cflow.cs:94:27:94:27 | access to parameter s | | +| cflow.cs:94:9:94:28 | After call to method WriteLine | cflow.cs:94:9:94:29 | After ...; | | +| cflow.cs:94:9:94:28 | Before call to method WriteLine | cflow.cs:94:27:94:27 | access to parameter s | | +| cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:94:9:94:28 | After call to method WriteLine | | +| cflow.cs:94:9:94:29 | ...; | cflow.cs:94:9:94:28 | Before call to method WriteLine | | +| cflow.cs:94:9:94:29 | After ...; | cflow.cs:96:9:97:55 | if (...) ... | | | cflow.cs:94:27:94:27 | access to parameter s | cflow.cs:94:9:94:28 | call to method WriteLine | | -| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:96:13:96:17 | this access | | -| cflow.cs:96:13:96:17 | access to field Field | cflow.cs:96:22:96:25 | null | | +| cflow.cs:96:9:97:55 | After if (...) ... | cflow.cs:99:9:100:42 | if (...) ... | | +| cflow.cs:96:9:97:55 | if (...) ... | cflow.cs:96:13:96:25 | Before ... != ... | | +| cflow.cs:96:13:96:17 | After access to field Field | cflow.cs:96:22:96:25 | null | | +| cflow.cs:96:13:96:17 | Before access to field Field | cflow.cs:96:13:96:17 | this access | | +| cflow.cs:96:13:96:17 | access to field Field | cflow.cs:96:13:96:17 | After access to field Field | | | cflow.cs:96:13:96:17 | this access | cflow.cs:96:13:96:17 | access to field Field | | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:97:13:97:55 | ...; | true | -| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:99:9:100:42 | if (...) ... | false | +| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | After ... != ... [false] | false | +| cflow.cs:96:13:96:25 | ... != ... | cflow.cs:96:13:96:25 | After ... != ... [true] | true | +| cflow.cs:96:13:96:25 | After ... != ... [false] | cflow.cs:96:9:97:55 | After if (...) ... | | +| cflow.cs:96:13:96:25 | After ... != ... [true] | cflow.cs:97:13:97:55 | ...; | | +| cflow.cs:96:13:96:25 | Before ... != ... | cflow.cs:96:13:96:17 | Before access to field Field | | | cflow.cs:96:22:96:25 | null | cflow.cs:96:13:96:25 | ... != ... | | -| cflow.cs:97:13:97:54 | call to method WriteLine | cflow.cs:99:9:100:42 | if (...) ... | | -| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:31:97:47 | object creation of type ControlFlow | | -| cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:97:31:97:53 | access to field Field | | -| cflow.cs:97:31:97:53 | access to field Field | cflow.cs:97:13:97:54 | call to method WriteLine | | -| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:13:99:17 | this access | | -| cflow.cs:99:13:99:17 | access to field Field | cflow.cs:99:22:99:25 | null | | +| cflow.cs:97:13:97:54 | After call to method WriteLine | cflow.cs:97:13:97:55 | After ...; | | +| cflow.cs:97:13:97:54 | Before call to method WriteLine | cflow.cs:97:31:97:53 | Before access to field Field | | +| cflow.cs:97:13:97:54 | call to method WriteLine | cflow.cs:97:13:97:54 | After call to method WriteLine | | +| cflow.cs:97:13:97:55 | ...; | cflow.cs:97:13:97:54 | Before call to method WriteLine | | +| cflow.cs:97:13:97:55 | After ...; | cflow.cs:96:9:97:55 | After if (...) ... | | +| cflow.cs:97:31:97:47 | After object creation of type ControlFlow | cflow.cs:97:31:97:53 | access to field Field | | +| cflow.cs:97:31:97:47 | Before object creation of type ControlFlow | cflow.cs:97:31:97:47 | object creation of type ControlFlow | | +| cflow.cs:97:31:97:47 | object creation of type ControlFlow | cflow.cs:97:31:97:47 | After object creation of type ControlFlow | | +| cflow.cs:97:31:97:53 | After access to field Field | cflow.cs:97:13:97:54 | call to method WriteLine | | +| cflow.cs:97:31:97:53 | Before access to field Field | cflow.cs:97:31:97:47 | Before object creation of type ControlFlow | | +| cflow.cs:97:31:97:53 | access to field Field | cflow.cs:97:31:97:53 | After access to field Field | | +| cflow.cs:99:9:100:42 | After if (...) ... | cflow.cs:102:9:103:36 | if (...) ... | | +| cflow.cs:99:9:100:42 | if (...) ... | cflow.cs:99:13:99:25 | Before ... != ... | | +| cflow.cs:99:13:99:17 | After access to field Field | cflow.cs:99:22:99:25 | null | | +| cflow.cs:99:13:99:17 | Before access to field Field | cflow.cs:99:13:99:17 | this access | | +| cflow.cs:99:13:99:17 | access to field Field | cflow.cs:99:13:99:17 | After access to field Field | | | cflow.cs:99:13:99:17 | this access | cflow.cs:99:13:99:17 | access to field Field | | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:100:13:100:42 | ...; | true | -| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:102:9:103:36 | if (...) ... | false | +| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | After ... != ... [false] | false | +| cflow.cs:99:13:99:25 | ... != ... | cflow.cs:99:13:99:25 | After ... != ... [true] | true | +| cflow.cs:99:13:99:25 | After ... != ... [false] | cflow.cs:99:9:100:42 | After if (...) ... | | +| cflow.cs:99:13:99:25 | After ... != ... [true] | cflow.cs:100:13:100:42 | ...; | | +| cflow.cs:99:13:99:25 | Before ... != ... | cflow.cs:99:13:99:17 | Before access to field Field | | | cflow.cs:99:22:99:25 | null | cflow.cs:99:13:99:25 | ... != ... | | -| cflow.cs:100:13:100:41 | call to method WriteLine | cflow.cs:102:9:103:36 | if (...) ... | | -| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:31:100:34 | this access | | +| cflow.cs:100:13:100:41 | After call to method WriteLine | cflow.cs:100:13:100:42 | After ...; | | +| cflow.cs:100:13:100:41 | Before call to method WriteLine | cflow.cs:100:31:100:40 | Before access to field Field | | +| cflow.cs:100:13:100:41 | call to method WriteLine | cflow.cs:100:13:100:41 | After call to method WriteLine | | +| cflow.cs:100:13:100:42 | ...; | cflow.cs:100:13:100:41 | Before call to method WriteLine | | +| cflow.cs:100:13:100:42 | After ...; | cflow.cs:99:9:100:42 | After if (...) ... | | | cflow.cs:100:31:100:34 | this access | cflow.cs:100:31:100:40 | access to field Field | | -| cflow.cs:100:31:100:40 | access to field Field | cflow.cs:100:13:100:41 | call to method WriteLine | | -| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:13:102:16 | this access | | +| cflow.cs:100:31:100:40 | After access to field Field | cflow.cs:100:13:100:41 | call to method WriteLine | | +| cflow.cs:100:31:100:40 | Before access to field Field | cflow.cs:100:31:100:34 | this access | | +| cflow.cs:100:31:100:40 | access to field Field | cflow.cs:100:31:100:40 | After access to field Field | | +| cflow.cs:102:9:103:36 | After if (...) ... | cflow.cs:91:5:104:5 | After {...} | | +| cflow.cs:102:9:103:36 | if (...) ... | cflow.cs:102:13:102:29 | Before ... != ... | | | cflow.cs:102:13:102:16 | this access | cflow.cs:102:13:102:21 | access to property Prop | | -| cflow.cs:102:13:102:21 | access to property Prop | cflow.cs:102:26:102:29 | null | | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:90:18:90:19 | exit M3 (normal) | false | -| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:103:13:103:36 | ...; | true | +| cflow.cs:102:13:102:21 | After access to property Prop | cflow.cs:102:26:102:29 | null | | +| cflow.cs:102:13:102:21 | Before access to property Prop | cflow.cs:102:13:102:16 | this access | | +| cflow.cs:102:13:102:21 | access to property Prop | cflow.cs:102:13:102:21 | After access to property Prop | | +| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | After ... != ... [false] | false | +| cflow.cs:102:13:102:29 | ... != ... | cflow.cs:102:13:102:29 | After ... != ... [true] | true | +| cflow.cs:102:13:102:29 | After ... != ... [false] | cflow.cs:102:9:103:36 | After if (...) ... | | +| cflow.cs:102:13:102:29 | After ... != ... [true] | cflow.cs:103:13:103:36 | ...; | | +| cflow.cs:102:13:102:29 | Before ... != ... | cflow.cs:102:13:102:21 | Before access to property Prop | | | cflow.cs:102:26:102:29 | null | cflow.cs:102:13:102:29 | ... != ... | | -| cflow.cs:103:13:103:35 | call to method WriteLine | cflow.cs:90:18:90:19 | exit M3 (normal) | | -| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:31:103:34 | this access | | -| cflow.cs:103:31:103:34 | access to property Prop | cflow.cs:103:13:103:35 | call to method WriteLine | | +| cflow.cs:103:13:103:35 | After call to method WriteLine | cflow.cs:103:13:103:36 | After ...; | | +| cflow.cs:103:13:103:35 | Before call to method WriteLine | cflow.cs:103:31:103:34 | Before access to property Prop | | +| cflow.cs:103:13:103:35 | call to method WriteLine | cflow.cs:103:13:103:35 | After call to method WriteLine | | +| cflow.cs:103:13:103:36 | ...; | cflow.cs:103:13:103:35 | Before call to method WriteLine | | +| cflow.cs:103:13:103:36 | After ...; | cflow.cs:102:9:103:36 | After if (...) ... | | +| cflow.cs:103:31:103:34 | After access to property Prop | cflow.cs:103:13:103:35 | call to method WriteLine | | +| cflow.cs:103:31:103:34 | Before access to property Prop | cflow.cs:103:31:103:34 | this access | | +| cflow.cs:103:31:103:34 | access to property Prop | cflow.cs:103:31:103:34 | After access to property Prop | | | cflow.cs:103:31:103:34 | this access | cflow.cs:103:31:103:34 | access to property Prop | | -| cflow.cs:106:18:106:19 | enter M4 | cflow.cs:107:5:117:5 | {...} | | -| cflow.cs:106:18:106:19 | exit M4 (normal) | cflow.cs:106:18:106:19 | exit M4 | | +| cflow.cs:106:18:106:19 | Entry | cflow.cs:107:5:117:5 | {...} | | +| cflow.cs:106:18:106:19 | Normal Exit | cflow.cs:106:18:106:19 | Exit | | +| cflow.cs:107:5:117:5 | After {...} | cflow.cs:106:18:106:19 | Normal Exit | | | cflow.cs:107:5:117:5 | {...} | cflow.cs:108:9:115:9 | if (...) ... | | -| cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:108:13:108:13 | access to parameter s | | +| cflow.cs:108:9:115:9 | After if (...) ... | cflow.cs:116:9:116:29 | ...; | | +| cflow.cs:108:9:115:9 | if (...) ... | cflow.cs:108:13:108:21 | Before ... != ... | | | cflow.cs:108:13:108:13 | access to parameter s | cflow.cs:108:18:108:21 | null | | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:109:9:115:9 | {...} | true | -| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:116:9:116:29 | ...; | false | +| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | After ... != ... [false] | false | +| cflow.cs:108:13:108:21 | ... != ... | cflow.cs:108:13:108:21 | After ... != ... [true] | true | +| cflow.cs:108:13:108:21 | After ... != ... [false] | cflow.cs:108:9:115:9 | After if (...) ... | | +| cflow.cs:108:13:108:21 | After ... != ... [true] | cflow.cs:109:9:115:9 | {...} | | +| cflow.cs:108:13:108:21 | Before ... != ... | cflow.cs:108:13:108:13 | access to parameter s | | | cflow.cs:108:18:108:21 | null | cflow.cs:108:13:108:21 | ... != ... | | | cflow.cs:109:9:115:9 | {...} | cflow.cs:110:13:113:13 | while (...) ... | | -| cflow.cs:110:13:113:13 | while (...) ... | cflow.cs:110:20:110:23 | true | | -| cflow.cs:110:20:110:23 | true | cflow.cs:111:13:113:13 | {...} | true | +| cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | cflow.cs:110:20:110:23 | true | | +| cflow.cs:110:13:113:13 | while (...) ... | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | | +| cflow.cs:110:20:110:23 | After true [true] | cflow.cs:111:13:113:13 | {...} | | +| cflow.cs:110:20:110:23 | true | cflow.cs:110:20:110:23 | After true [true] | true | +| cflow.cs:111:13:113:13 | After {...} | cflow.cs:110:13:113:13 | [LoopHeader] while (...) ... | | | cflow.cs:111:13:113:13 | {...} | cflow.cs:112:17:112:37 | ...; | | -| cflow.cs:112:17:112:36 | call to method WriteLine | cflow.cs:110:20:110:23 | true | | -| cflow.cs:112:17:112:37 | ...; | cflow.cs:112:35:112:35 | access to parameter s | | +| cflow.cs:112:17:112:36 | After call to method WriteLine | cflow.cs:112:17:112:37 | After ...; | | +| cflow.cs:112:17:112:36 | Before call to method WriteLine | cflow.cs:112:35:112:35 | access to parameter s | | +| cflow.cs:112:17:112:36 | call to method WriteLine | cflow.cs:112:17:112:36 | After call to method WriteLine | | +| cflow.cs:112:17:112:37 | ...; | cflow.cs:112:17:112:36 | Before call to method WriteLine | | +| cflow.cs:112:17:112:37 | After ...; | cflow.cs:111:13:113:13 | After {...} | | | cflow.cs:112:35:112:35 | access to parameter s | cflow.cs:112:17:112:36 | call to method WriteLine | | -| cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:106:18:106:19 | exit M4 (normal) | | -| cflow.cs:116:9:116:29 | ...; | cflow.cs:116:27:116:27 | access to parameter s | | +| cflow.cs:116:9:116:28 | After call to method WriteLine | cflow.cs:116:9:116:29 | After ...; | | +| cflow.cs:116:9:116:28 | Before call to method WriteLine | cflow.cs:116:27:116:27 | access to parameter s | | +| cflow.cs:116:9:116:28 | call to method WriteLine | cflow.cs:116:9:116:28 | After call to method WriteLine | | +| cflow.cs:116:9:116:29 | ...; | cflow.cs:116:9:116:28 | Before call to method WriteLine | | +| cflow.cs:116:9:116:29 | After ...; | cflow.cs:107:5:117:5 | After {...} | | | cflow.cs:116:27:116:27 | access to parameter s | cflow.cs:116:9:116:28 | call to method WriteLine | | -| cflow.cs:119:20:119:21 | enter M5 | cflow.cs:120:5:124:5 | {...} | | -| cflow.cs:119:20:119:21 | exit M5 (normal) | cflow.cs:119:20:119:21 | exit M5 | | +| cflow.cs:119:20:119:21 | Entry | cflow.cs:120:5:124:5 | {...} | | +| cflow.cs:119:20:119:21 | Normal Exit | cflow.cs:119:20:119:21 | Exit | | | cflow.cs:120:5:124:5 | {...} | cflow.cs:121:9:121:18 | ... ...; | | -| cflow.cs:121:9:121:18 | ... ...; | cflow.cs:121:17:121:17 | access to parameter s | | -| cflow.cs:121:13:121:17 | String x = ... | cflow.cs:122:9:122:20 | ...; | | +| cflow.cs:121:9:121:18 | ... ...; | cflow.cs:121:13:121:17 | Before String x = ... | | +| cflow.cs:121:9:121:18 | After ... ...; | cflow.cs:122:9:122:20 | ...; | | +| cflow.cs:121:13:121:13 | access to local variable x | cflow.cs:121:17:121:17 | access to parameter s | | +| cflow.cs:121:13:121:17 | After String x = ... | cflow.cs:121:9:121:18 | After ... ...; | | +| cflow.cs:121:13:121:17 | Before String x = ... | cflow.cs:121:13:121:13 | access to local variable x | | +| cflow.cs:121:13:121:17 | String x = ... | cflow.cs:121:13:121:17 | After String x = ... | | | cflow.cs:121:17:121:17 | access to parameter s | cflow.cs:121:13:121:17 | String x = ... | | -| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:123:16:123:16 | access to local variable x | | -| cflow.cs:122:9:122:20 | ...; | cflow.cs:122:13:122:13 | access to local variable x | | +| cflow.cs:122:9:122:9 | access to local variable x | cflow.cs:122:13:122:19 | Before ... + ... | | +| cflow.cs:122:9:122:19 | ... = ... | cflow.cs:122:9:122:19 | After ... = ... | | +| cflow.cs:122:9:122:19 | After ... = ... | cflow.cs:122:9:122:20 | After ...; | | +| cflow.cs:122:9:122:19 | Before ... = ... | cflow.cs:122:9:122:9 | access to local variable x | | +| cflow.cs:122:9:122:20 | ...; | cflow.cs:122:9:122:19 | Before ... = ... | | +| cflow.cs:122:9:122:20 | After ...; | cflow.cs:123:9:123:17 | Before return ...; | | | cflow.cs:122:13:122:13 | access to local variable x | cflow.cs:122:17:122:19 | " " | | -| cflow.cs:122:13:122:19 | ... + ... | cflow.cs:122:9:122:19 | ... = ... | | +| cflow.cs:122:13:122:19 | ... + ... | cflow.cs:122:13:122:19 | After ... + ... | | +| cflow.cs:122:13:122:19 | After ... + ... | cflow.cs:122:9:122:19 | ... = ... | | +| cflow.cs:122:13:122:19 | Before ... + ... | cflow.cs:122:13:122:13 | access to local variable x | | | cflow.cs:122:17:122:19 | " " | cflow.cs:122:13:122:19 | ... + ... | | -| cflow.cs:123:9:123:17 | return ...; | cflow.cs:119:20:119:21 | exit M5 (normal) | return | +| cflow.cs:123:9:123:17 | Before return ...; | cflow.cs:123:16:123:16 | access to local variable x | | +| cflow.cs:123:9:123:17 | return ...; | cflow.cs:119:20:119:21 | Normal Exit | return | | cflow.cs:123:16:123:16 | access to local variable x | cflow.cs:123:9:123:17 | return ...; | | -| cflow.cs:127:19:127:21 | enter get_Prop | cflow.cs:127:23:127:60 | {...} | | -| cflow.cs:127:19:127:21 | exit get_Prop (normal) | cflow.cs:127:19:127:21 | exit get_Prop | | -| cflow.cs:127:23:127:60 | {...} | cflow.cs:127:32:127:36 | this access | | -| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:19:127:21 | exit get_Prop (normal) | return | -| cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:41:127:44 | null | | +| cflow.cs:127:19:127:21 | Entry | cflow.cs:127:23:127:60 | {...} | | +| cflow.cs:127:19:127:21 | Normal Exit | cflow.cs:127:19:127:21 | Exit | | +| cflow.cs:127:23:127:60 | {...} | cflow.cs:127:25:127:58 | Before return ...; | | +| cflow.cs:127:25:127:58 | Before return ...; | cflow.cs:127:32:127:57 | ... ? ... : ... | | +| cflow.cs:127:25:127:58 | return ...; | cflow.cs:127:19:127:21 | Normal Exit | return | +| cflow.cs:127:32:127:36 | After access to field Field | cflow.cs:127:41:127:44 | null | | +| cflow.cs:127:32:127:36 | Before access to field Field | cflow.cs:127:32:127:36 | this access | | +| cflow.cs:127:32:127:36 | access to field Field | cflow.cs:127:32:127:36 | After access to field Field | | | cflow.cs:127:32:127:36 | this access | cflow.cs:127:32:127:36 | access to field Field | | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:48:127:49 | "" | true | -| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:53:127:57 | this access | false | -| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:25:127:58 | return ...; | | +| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | After ... == ... [false] | false | +| cflow.cs:127:32:127:44 | ... == ... | cflow.cs:127:32:127:44 | After ... == ... [true] | true | +| cflow.cs:127:32:127:44 | After ... == ... [false] | cflow.cs:127:53:127:57 | Before access to field Field | | +| cflow.cs:127:32:127:44 | After ... == ... [true] | cflow.cs:127:48:127:49 | "" | | +| cflow.cs:127:32:127:44 | Before ... == ... | cflow.cs:127:32:127:36 | Before access to field Field | | +| cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:32:127:44 | Before ... == ... | | +| cflow.cs:127:32:127:57 | After ... ? ... : ... | cflow.cs:127:25:127:58 | return ...; | | | cflow.cs:127:41:127:44 | null | cflow.cs:127:32:127:44 | ... == ... | | -| cflow.cs:127:48:127:49 | "" | cflow.cs:127:32:127:57 | ... ? ... : ... | | -| cflow.cs:127:53:127:57 | access to field Field | cflow.cs:127:32:127:57 | ... ? ... : ... | | +| cflow.cs:127:48:127:49 | "" | cflow.cs:127:32:127:57 | After ... ? ... : ... | | +| cflow.cs:127:53:127:57 | After access to field Field | cflow.cs:127:32:127:57 | After ... ? ... : ... | | +| cflow.cs:127:53:127:57 | Before access to field Field | cflow.cs:127:53:127:57 | this access | | +| cflow.cs:127:53:127:57 | access to field Field | cflow.cs:127:53:127:57 | After access to field Field | | | cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | access to field Field | | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:66:127:83 | {...} | | -| cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | exit set_Prop | | +| cflow.cs:127:62:127:64 | Entry | cflow.cs:127:66:127:83 | {...} | | +| cflow.cs:127:62:127:64 | Normal Exit | cflow.cs:127:62:127:64 | Exit | | +| cflow.cs:127:66:127:83 | After {...} | cflow.cs:127:62:127:64 | Normal Exit | | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:68:127:81 | ...; | | -| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:80 | ... = ... | | -| cflow.cs:127:68:127:72 | this access | cflow.cs:127:76:127:80 | access to parameter value | | -| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | exit set_Prop (normal) | | -| cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | | -| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | access to field Field | | -| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | | -| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | | -| cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | | +| cflow.cs:127:68:127:72 | After access to field Field | cflow.cs:127:76:127:80 | access to parameter value | | +| cflow.cs:127:68:127:72 | Before access to field Field | cflow.cs:127:68:127:72 | this access | | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:72 | After access to field Field | | +| cflow.cs:127:68:127:72 | this access | cflow.cs:127:68:127:72 | access to field Field | | +| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:68:127:80 | After ... = ... | | +| cflow.cs:127:68:127:80 | After ... = ... | cflow.cs:127:68:127:81 | After ...; | | +| cflow.cs:127:68:127:80 | Before ... = ... | cflow.cs:127:68:127:72 | Before access to field Field | | +| cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:80 | Before ... = ... | | +| cflow.cs:127:68:127:81 | After ...; | cflow.cs:127:66:127:83 | After {...} | | +| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | | +| cflow.cs:129:5:129:15 | After call to constructor Object | cflow.cs:130:5:132:5 | {...} | | +| cflow.cs:129:5:129:15 | After call to method | cflow.cs:129:5:129:15 | Before call to constructor Object | | +| cflow.cs:129:5:129:15 | Before call to constructor Object | cflow.cs:129:5:129:15 | call to constructor Object | | +| cflow.cs:129:5:129:15 | Before call to method | cflow.cs:129:5:129:15 | this access | | +| cflow.cs:129:5:129:15 | Entry | cflow.cs:129:5:129:15 | Before call to method | | +| cflow.cs:129:5:129:15 | Normal Exit | cflow.cs:129:5:129:15 | Exit | | +| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | After call to constructor Object | | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | After call to method | | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | | +| cflow.cs:130:5:132:5 | After {...} | cflow.cs:129:5:129:15 | Normal Exit | | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | | -| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:17 | ... = ... | | -| cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | | -| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | -| cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:13 | this access | | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | access to field Field | | -| cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | | -| cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:5:134:15 | exit ControlFlow | | -| cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | | -| cflow.cs:134:31:134:31 | (...) ... | cflow.cs:134:35:134:36 | "" | | +| cflow.cs:131:9:131:13 | After access to field Field | cflow.cs:131:17:131:17 | access to parameter s | | +| cflow.cs:131:9:131:13 | Before access to field Field | cflow.cs:131:9:131:13 | this access | | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:13 | After access to field Field | | +| cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:13 | access to field Field | | +| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:9:131:17 | After ... = ... | | +| cflow.cs:131:9:131:17 | After ... = ... | cflow.cs:131:9:131:18 | After ...; | | +| cflow.cs:131:9:131:17 | Before ... = ... | cflow.cs:131:9:131:13 | Before access to field Field | | +| cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:17 | Before ... = ... | | +| cflow.cs:131:9:131:18 | After ...; | cflow.cs:130:5:132:5 | After {...} | | +| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:17 | ... = ... | | +| cflow.cs:134:5:134:15 | Entry | cflow.cs:134:26:134:29 | Before call to constructor ControlFlow | | +| cflow.cs:134:5:134:15 | Normal Exit | cflow.cs:134:5:134:15 | Exit | | +| cflow.cs:134:26:134:29 | After call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | | +| cflow.cs:134:26:134:29 | Before call to constructor ControlFlow | cflow.cs:134:31:134:36 | Before ... + ... | | +| cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:26:134:29 | After call to constructor ControlFlow | | +| cflow.cs:134:31:134:31 | (...) ... | cflow.cs:134:31:134:31 | After (...) ... | | +| cflow.cs:134:31:134:31 | After (...) ... | cflow.cs:134:35:134:36 | "" | | +| cflow.cs:134:31:134:31 | Before (...) ... | cflow.cs:134:31:134:31 | access to parameter i | | | cflow.cs:134:31:134:31 | access to parameter i | cflow.cs:134:31:134:31 | (...) ... | | -| cflow.cs:134:31:134:36 | ... + ... | cflow.cs:134:26:134:29 | call to constructor ControlFlow | | +| cflow.cs:134:31:134:36 | ... + ... | cflow.cs:134:31:134:36 | After ... + ... | | +| cflow.cs:134:31:134:36 | After ... + ... | cflow.cs:134:26:134:29 | call to constructor ControlFlow | | +| cflow.cs:134:31:134:36 | Before ... + ... | cflow.cs:134:31:134:31 | Before (...) ... | | | cflow.cs:134:35:134:36 | "" | cflow.cs:134:31:134:36 | ... + ... | | -| cflow.cs:134:39:134:41 | {...} | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | | -| cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:33:136:33 | 0 | | -| cflow.cs:136:12:136:22 | exit ControlFlow (normal) | cflow.cs:136:12:136:22 | exit ControlFlow | | -| cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:40:136:42 | {...} | | +| cflow.cs:134:39:134:41 | {...} | cflow.cs:134:5:134:15 | Normal Exit | | +| cflow.cs:136:12:136:22 | Entry | cflow.cs:136:28:136:31 | Before call to constructor ControlFlow | | +| cflow.cs:136:12:136:22 | Normal Exit | cflow.cs:136:12:136:22 | Exit | | +| cflow.cs:136:28:136:31 | After call to constructor ControlFlow | cflow.cs:136:40:136:42 | {...} | | +| cflow.cs:136:28:136:31 | Before call to constructor ControlFlow | cflow.cs:136:33:136:37 | Before ... + ... | | +| cflow.cs:136:28:136:31 | call to constructor ControlFlow | cflow.cs:136:28:136:31 | After call to constructor ControlFlow | | | cflow.cs:136:33:136:33 | 0 | cflow.cs:136:37:136:37 | 1 | | -| cflow.cs:136:33:136:37 | ... + ... | cflow.cs:136:28:136:31 | call to constructor ControlFlow | | +| cflow.cs:136:33:136:37 | ... + ... | cflow.cs:136:33:136:37 | After ... + ... | | +| cflow.cs:136:33:136:37 | After ... + ... | cflow.cs:136:28:136:31 | call to constructor ControlFlow | | +| cflow.cs:136:33:136:37 | Before ... + ... | cflow.cs:136:33:136:33 | 0 | | | cflow.cs:136:37:136:37 | 1 | cflow.cs:136:33:136:37 | ... + ... | | -| cflow.cs:136:40:136:42 | {...} | cflow.cs:136:12:136:22 | exit ControlFlow (normal) | | -| cflow.cs:138:40:138:40 | enter + | cflow.cs:139:5:142:5 | {...} | | -| cflow.cs:138:40:138:40 | exit + (normal) | cflow.cs:138:40:138:40 | exit + | | +| cflow.cs:136:40:136:42 | {...} | cflow.cs:136:12:136:22 | Normal Exit | | +| cflow.cs:138:40:138:40 | Entry | cflow.cs:139:5:142:5 | {...} | | +| cflow.cs:138:40:138:40 | Normal Exit | cflow.cs:138:40:138:40 | Exit | | | cflow.cs:139:5:142:5 | {...} | cflow.cs:140:9:140:29 | ...; | | -| cflow.cs:140:9:140:28 | call to method WriteLine | cflow.cs:141:16:141:16 | access to parameter y | | -| cflow.cs:140:9:140:29 | ...; | cflow.cs:140:27:140:27 | access to parameter x | | +| cflow.cs:140:9:140:28 | After call to method WriteLine | cflow.cs:140:9:140:29 | After ...; | | +| cflow.cs:140:9:140:28 | Before call to method WriteLine | cflow.cs:140:27:140:27 | access to parameter x | | +| cflow.cs:140:9:140:28 | call to method WriteLine | cflow.cs:140:9:140:28 | After call to method WriteLine | | +| cflow.cs:140:9:140:29 | ...; | cflow.cs:140:9:140:28 | Before call to method WriteLine | | +| cflow.cs:140:9:140:29 | After ...; | cflow.cs:141:9:141:17 | Before return ...; | | | cflow.cs:140:27:140:27 | access to parameter x | cflow.cs:140:9:140:28 | call to method WriteLine | | -| cflow.cs:141:9:141:17 | return ...; | cflow.cs:138:40:138:40 | exit + (normal) | return | +| cflow.cs:141:9:141:17 | Before return ...; | cflow.cs:141:16:141:16 | access to parameter y | | +| cflow.cs:141:9:141:17 | return ...; | cflow.cs:138:40:138:40 | Normal Exit | return | | cflow.cs:141:16:141:16 | access to parameter y | cflow.cs:141:9:141:17 | return ...; | | -| cflow.cs:144:33:144:35 | enter get_Item | cflow.cs:144:37:144:54 | {...} | | -| cflow.cs:144:33:144:35 | exit get_Item (normal) | cflow.cs:144:33:144:35 | exit get_Item | | -| cflow.cs:144:37:144:54 | {...} | cflow.cs:144:46:144:46 | access to parameter i | | -| cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:33:144:35 | exit get_Item (normal) | return | -| cflow.cs:144:46:144:46 | (...) ... | cflow.cs:144:50:144:51 | "" | | +| cflow.cs:144:33:144:35 | Entry | cflow.cs:144:37:144:54 | {...} | | +| cflow.cs:144:33:144:35 | Normal Exit | cflow.cs:144:33:144:35 | Exit | | +| cflow.cs:144:37:144:54 | {...} | cflow.cs:144:39:144:52 | Before return ...; | | +| cflow.cs:144:39:144:52 | Before return ...; | cflow.cs:144:46:144:51 | Before ... + ... | | +| cflow.cs:144:39:144:52 | return ...; | cflow.cs:144:33:144:35 | Normal Exit | return | +| cflow.cs:144:46:144:46 | (...) ... | cflow.cs:144:46:144:46 | After (...) ... | | +| cflow.cs:144:46:144:46 | After (...) ... | cflow.cs:144:50:144:51 | "" | | +| cflow.cs:144:46:144:46 | Before (...) ... | cflow.cs:144:46:144:46 | access to parameter i | | | cflow.cs:144:46:144:46 | access to parameter i | cflow.cs:144:46:144:46 | (...) ... | | -| cflow.cs:144:46:144:51 | ... + ... | cflow.cs:144:39:144:52 | return ...; | | +| cflow.cs:144:46:144:51 | ... + ... | cflow.cs:144:46:144:51 | After ... + ... | | +| cflow.cs:144:46:144:51 | After ... + ... | cflow.cs:144:39:144:52 | return ...; | | +| cflow.cs:144:46:144:51 | Before ... + ... | cflow.cs:144:46:144:46 | Before (...) ... | | | cflow.cs:144:50:144:51 | "" | cflow.cs:144:46:144:51 | ... + ... | | -| cflow.cs:144:56:144:58 | enter set_Item | cflow.cs:144:60:144:62 | {...} | | -| cflow.cs:144:56:144:58 | exit set_Item (normal) | cflow.cs:144:56:144:58 | exit set_Item | | -| cflow.cs:144:60:144:62 | {...} | cflow.cs:144:56:144:58 | exit set_Item (normal) | | -| cflow.cs:146:10:146:12 | enter For | cflow.cs:147:5:177:5 | {...} | | -| cflow.cs:146:10:146:12 | exit For (normal) | cflow.cs:146:10:146:12 | exit For | | +| cflow.cs:144:56:144:58 | Entry | cflow.cs:144:60:144:62 | {...} | | +| cflow.cs:144:56:144:58 | Normal Exit | cflow.cs:144:56:144:58 | Exit | | +| cflow.cs:144:60:144:62 | {...} | cflow.cs:144:56:144:58 | Normal Exit | | +| cflow.cs:146:10:146:12 | Entry | cflow.cs:147:5:177:5 | {...} | | +| cflow.cs:146:10:146:12 | Normal Exit | cflow.cs:146:10:146:12 | Exit | | +| cflow.cs:147:5:177:5 | After {...} | cflow.cs:146:10:146:12 | Normal Exit | | | cflow.cs:147:5:177:5 | {...} | cflow.cs:148:9:148:18 | ... ...; | | -| cflow.cs:148:9:148:18 | ... ...; | cflow.cs:148:17:148:17 | 0 | | -| cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:149:9:150:33 | for (...;...;...) ... | | +| cflow.cs:148:9:148:18 | ... ...; | cflow.cs:148:13:148:17 | Before Int32 x = ... | | +| cflow.cs:148:9:148:18 | After ... ...; | cflow.cs:149:9:150:33 | for (...;...;...) ... | | +| cflow.cs:148:13:148:13 | access to local variable x | cflow.cs:148:17:148:17 | 0 | | +| cflow.cs:148:13:148:17 | After Int32 x = ... | cflow.cs:148:9:148:18 | After ... ...; | | +| cflow.cs:148:13:148:17 | Before Int32 x = ... | cflow.cs:148:13:148:13 | access to local variable x | | +| cflow.cs:148:13:148:17 | Int32 x = ... | cflow.cs:148:13:148:17 | After Int32 x = ... | | | cflow.cs:148:17:148:17 | 0 | cflow.cs:148:13:148:17 | Int32 x = ... | | -| cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:149:16:149:16 | access to local variable x | | +| cflow.cs:149:9:150:33 | After for (...;...;...) ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | | +| cflow.cs:149:9:150:33 | [LoopHeader] for (...;...;...) ... | cflow.cs:149:24:149:26 | Before ++... | | +| cflow.cs:149:9:150:33 | for (...;...;...) ... | cflow.cs:149:16:149:21 | Before ... < ... | | | cflow.cs:149:16:149:16 | access to local variable x | cflow.cs:149:20:149:21 | 10 | | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:150:13:150:33 | ...; | true | -| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:152:9:157:9 | for (...;...;...) ... | false | +| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | After ... < ... [false] | false | +| cflow.cs:149:16:149:21 | ... < ... | cflow.cs:149:16:149:21 | After ... < ... [true] | true | +| cflow.cs:149:16:149:21 | After ... < ... [false] | cflow.cs:149:9:150:33 | After for (...;...;...) ... | | +| cflow.cs:149:16:149:21 | After ... < ... [true] | cflow.cs:150:13:150:33 | ...; | | +| cflow.cs:149:16:149:21 | Before ... < ... | cflow.cs:149:16:149:16 | access to local variable x | | | cflow.cs:149:20:149:21 | 10 | cflow.cs:149:16:149:21 | ... < ... | | -| cflow.cs:149:24:149:26 | ++... | cflow.cs:149:16:149:16 | access to local variable x | | +| cflow.cs:149:24:149:26 | ++... | cflow.cs:149:24:149:26 | After ++... | | +| cflow.cs:149:24:149:26 | After ++... | cflow.cs:149:16:149:21 | Before ... < ... | | +| cflow.cs:149:24:149:26 | Before ++... | cflow.cs:149:26:149:26 | access to local variable x | | | cflow.cs:149:26:149:26 | access to local variable x | cflow.cs:149:24:149:26 | ++... | | -| cflow.cs:150:13:150:32 | call to method WriteLine | cflow.cs:149:26:149:26 | access to local variable x | | -| cflow.cs:150:13:150:33 | ...; | cflow.cs:150:31:150:31 | access to local variable x | | +| cflow.cs:150:13:150:32 | After call to method WriteLine | cflow.cs:150:13:150:33 | After ...; | | +| cflow.cs:150:13:150:32 | Before call to method WriteLine | cflow.cs:150:31:150:31 | access to local variable x | | +| cflow.cs:150:13:150:32 | call to method WriteLine | cflow.cs:150:13:150:32 | After call to method WriteLine | | +| cflow.cs:150:13:150:33 | ...; | cflow.cs:150:13:150:32 | Before call to method WriteLine | | +| cflow.cs:150:13:150:33 | After ...; | cflow.cs:149:9:150:33 | [LoopHeader] for (...;...;...) ... | | | cflow.cs:150:31:150:31 | access to local variable x | cflow.cs:150:13:150:32 | call to method WriteLine | | +| cflow.cs:152:9:157:9 | After for (...;...;...) ... | cflow.cs:159:9:165:9 | for (...;...;...) ... | | +| cflow.cs:152:9:157:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:152:18:152:20 | Before ...++ | | | cflow.cs:152:9:157:9 | for (...;...;...) ... | cflow.cs:153:9:157:9 | {...} | | | cflow.cs:152:18:152:18 | access to local variable x | cflow.cs:152:18:152:20 | ...++ | | -| cflow.cs:152:18:152:20 | ...++ | cflow.cs:153:9:157:9 | {...} | | +| cflow.cs:152:18:152:20 | ...++ | cflow.cs:152:18:152:20 | After ...++ | | +| cflow.cs:152:18:152:20 | After ...++ | cflow.cs:153:9:157:9 | {...} | | +| cflow.cs:152:18:152:20 | Before ...++ | cflow.cs:152:18:152:18 | access to local variable x | | +| cflow.cs:153:9:157:9 | After {...} | cflow.cs:152:9:157:9 | [LoopHeader] for (...;...;...) ... | | | cflow.cs:153:9:157:9 | {...} | cflow.cs:154:13:154:33 | ...; | | -| cflow.cs:154:13:154:32 | call to method WriteLine | cflow.cs:155:13:156:22 | if (...) ... | | -| cflow.cs:154:13:154:33 | ...; | cflow.cs:154:31:154:31 | access to local variable x | | +| cflow.cs:154:13:154:32 | After call to method WriteLine | cflow.cs:154:13:154:33 | After ...; | | +| cflow.cs:154:13:154:32 | Before call to method WriteLine | cflow.cs:154:31:154:31 | access to local variable x | | +| cflow.cs:154:13:154:32 | call to method WriteLine | cflow.cs:154:13:154:32 | After call to method WriteLine | | +| cflow.cs:154:13:154:33 | ...; | cflow.cs:154:13:154:32 | Before call to method WriteLine | | +| cflow.cs:154:13:154:33 | After ...; | cflow.cs:155:13:156:22 | if (...) ... | | | cflow.cs:154:31:154:31 | access to local variable x | cflow.cs:154:13:154:32 | call to method WriteLine | | -| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:155:17:155:17 | access to local variable x | | +| cflow.cs:155:13:156:22 | After if (...) ... | cflow.cs:153:9:157:9 | After {...} | | +| cflow.cs:155:13:156:22 | if (...) ... | cflow.cs:155:17:155:22 | Before ... > ... | | | cflow.cs:155:17:155:17 | access to local variable x | cflow.cs:155:21:155:22 | 20 | | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:152:18:152:18 | access to local variable x | false | -| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:156:17:156:22 | break; | true | +| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | After ... > ... [false] | false | +| cflow.cs:155:17:155:22 | ... > ... | cflow.cs:155:17:155:22 | After ... > ... [true] | true | +| cflow.cs:155:17:155:22 | After ... > ... [false] | cflow.cs:155:13:156:22 | After if (...) ... | | +| cflow.cs:155:17:155:22 | After ... > ... [true] | cflow.cs:156:17:156:22 | Before break; | | +| cflow.cs:155:17:155:22 | Before ... > ... | cflow.cs:155:17:155:17 | access to local variable x | | | cflow.cs:155:21:155:22 | 20 | cflow.cs:155:17:155:22 | ... > ... | | -| cflow.cs:156:17:156:22 | break; | cflow.cs:159:9:165:9 | for (...;...;...) ... | break | +| cflow.cs:156:17:156:22 | Before break; | cflow.cs:156:17:156:22 | break; | | +| cflow.cs:156:17:156:22 | break; | cflow.cs:152:9:157:9 | After for (...;...;...) ... | break | +| cflow.cs:159:9:165:9 | After for (...;...;...) ... | cflow.cs:167:9:171:9 | for (...;...;...) ... | | +| cflow.cs:159:9:165:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:160:9:165:9 | {...} | | | cflow.cs:159:9:165:9 | for (...;...;...) ... | cflow.cs:160:9:165:9 | {...} | | +| cflow.cs:160:9:165:9 | After {...} | cflow.cs:159:9:165:9 | [LoopHeader] for (...;...;...) ... | | | cflow.cs:160:9:165:9 | {...} | cflow.cs:161:13:161:33 | ...; | | -| cflow.cs:161:13:161:32 | call to method WriteLine | cflow.cs:162:13:162:16 | ...; | | -| cflow.cs:161:13:161:33 | ...; | cflow.cs:161:31:161:31 | access to local variable x | | +| cflow.cs:161:13:161:32 | After call to method WriteLine | cflow.cs:161:13:161:33 | After ...; | | +| cflow.cs:161:13:161:32 | Before call to method WriteLine | cflow.cs:161:31:161:31 | access to local variable x | | +| cflow.cs:161:13:161:32 | call to method WriteLine | cflow.cs:161:13:161:32 | After call to method WriteLine | | +| cflow.cs:161:13:161:33 | ...; | cflow.cs:161:13:161:32 | Before call to method WriteLine | | +| cflow.cs:161:13:161:33 | After ...; | cflow.cs:162:13:162:16 | ...; | | | cflow.cs:161:31:161:31 | access to local variable x | cflow.cs:161:13:161:32 | call to method WriteLine | | | cflow.cs:162:13:162:13 | access to local variable x | cflow.cs:162:13:162:15 | ...++ | | -| cflow.cs:162:13:162:15 | ...++ | cflow.cs:163:13:164:22 | if (...) ... | | -| cflow.cs:162:13:162:16 | ...; | cflow.cs:162:13:162:13 | access to local variable x | | -| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:163:17:163:17 | access to local variable x | | +| cflow.cs:162:13:162:15 | ...++ | cflow.cs:162:13:162:15 | After ...++ | | +| cflow.cs:162:13:162:15 | After ...++ | cflow.cs:162:13:162:16 | After ...; | | +| cflow.cs:162:13:162:15 | Before ...++ | cflow.cs:162:13:162:13 | access to local variable x | | +| cflow.cs:162:13:162:16 | ...; | cflow.cs:162:13:162:15 | Before ...++ | | +| cflow.cs:162:13:162:16 | After ...; | cflow.cs:163:13:164:22 | if (...) ... | | +| cflow.cs:163:13:164:22 | After if (...) ... | cflow.cs:160:9:165:9 | After {...} | | +| cflow.cs:163:13:164:22 | if (...) ... | cflow.cs:163:17:163:22 | Before ... > ... | | | cflow.cs:163:17:163:17 | access to local variable x | cflow.cs:163:21:163:22 | 30 | | -| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:160:9:165:9 | {...} | false | -| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:164:17:164:22 | break; | true | +| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | After ... > ... [false] | false | +| cflow.cs:163:17:163:22 | ... > ... | cflow.cs:163:17:163:22 | After ... > ... [true] | true | +| cflow.cs:163:17:163:22 | After ... > ... [false] | cflow.cs:163:13:164:22 | After if (...) ... | | +| cflow.cs:163:17:163:22 | After ... > ... [true] | cflow.cs:164:17:164:22 | Before break; | | +| cflow.cs:163:17:163:22 | Before ... > ... | cflow.cs:163:17:163:17 | access to local variable x | | | cflow.cs:163:21:163:22 | 30 | cflow.cs:163:17:163:22 | ... > ... | | -| cflow.cs:164:17:164:22 | break; | cflow.cs:167:9:171:9 | for (...;...;...) ... | break | -| cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:167:16:167:16 | access to local variable x | | +| cflow.cs:164:17:164:22 | Before break; | cflow.cs:164:17:164:22 | break; | | +| cflow.cs:164:17:164:22 | break; | cflow.cs:159:9:165:9 | After for (...;...;...) ... | break | +| cflow.cs:167:9:171:9 | After for (...;...;...) ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | | +| cflow.cs:167:9:171:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:167:16:167:21 | Before ... < ... | | +| cflow.cs:167:9:171:9 | for (...;...;...) ... | cflow.cs:167:16:167:21 | Before ... < ... | | | cflow.cs:167:16:167:16 | access to local variable x | cflow.cs:167:20:167:21 | 40 | | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:168:9:171:9 | {...} | true | -| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:173:9:176:9 | for (...;...;...) ... | false | +| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | After ... < ... [false] | false | +| cflow.cs:167:16:167:21 | ... < ... | cflow.cs:167:16:167:21 | After ... < ... [true] | true | +| cflow.cs:167:16:167:21 | After ... < ... [false] | cflow.cs:167:9:171:9 | After for (...;...;...) ... | | +| cflow.cs:167:16:167:21 | After ... < ... [true] | cflow.cs:168:9:171:9 | {...} | | +| cflow.cs:167:16:167:21 | Before ... < ... | cflow.cs:167:16:167:16 | access to local variable x | | | cflow.cs:167:20:167:21 | 40 | cflow.cs:167:16:167:21 | ... < ... | | +| cflow.cs:168:9:171:9 | After {...} | cflow.cs:167:9:171:9 | [LoopHeader] for (...;...;...) ... | | | cflow.cs:168:9:171:9 | {...} | cflow.cs:169:13:169:33 | ...; | | -| cflow.cs:169:13:169:32 | call to method WriteLine | cflow.cs:170:13:170:16 | ...; | | -| cflow.cs:169:13:169:33 | ...; | cflow.cs:169:31:169:31 | access to local variable x | | +| cflow.cs:169:13:169:32 | After call to method WriteLine | cflow.cs:169:13:169:33 | After ...; | | +| cflow.cs:169:13:169:32 | Before call to method WriteLine | cflow.cs:169:31:169:31 | access to local variable x | | +| cflow.cs:169:13:169:32 | call to method WriteLine | cflow.cs:169:13:169:32 | After call to method WriteLine | | +| cflow.cs:169:13:169:33 | ...; | cflow.cs:169:13:169:32 | Before call to method WriteLine | | +| cflow.cs:169:13:169:33 | After ...; | cflow.cs:170:13:170:16 | ...; | | | cflow.cs:169:31:169:31 | access to local variable x | cflow.cs:169:13:169:32 | call to method WriteLine | | | cflow.cs:170:13:170:13 | access to local variable x | cflow.cs:170:13:170:15 | ...++ | | -| cflow.cs:170:13:170:15 | ...++ | cflow.cs:167:16:167:16 | access to local variable x | | -| cflow.cs:170:13:170:16 | ...; | cflow.cs:170:13:170:13 | access to local variable x | | -| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:22:173:22 | 0 | | -| cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:29:173:29 | 0 | | +| cflow.cs:170:13:170:15 | ...++ | cflow.cs:170:13:170:15 | After ...++ | | +| cflow.cs:170:13:170:15 | After ...++ | cflow.cs:170:13:170:16 | After ...; | | +| cflow.cs:170:13:170:15 | Before ...++ | cflow.cs:170:13:170:13 | access to local variable x | | +| cflow.cs:170:13:170:16 | ...; | cflow.cs:170:13:170:15 | Before ...++ | | +| cflow.cs:170:13:170:16 | After ...; | cflow.cs:168:9:171:9 | After {...} | | +| cflow.cs:173:9:176:9 | After for (...;...;...) ... | cflow.cs:147:5:177:5 | After {...} | | +| cflow.cs:173:9:176:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:173:44:173:46 | Before ...++ | | +| cflow.cs:173:9:176:9 | for (...;...;...) ... | cflow.cs:173:18:173:22 | Before Int32 i = ... | | +| cflow.cs:173:18:173:18 | access to local variable i | cflow.cs:173:22:173:22 | 0 | | +| cflow.cs:173:18:173:22 | After Int32 i = ... | cflow.cs:173:25:173:29 | Before Int32 j = ... | | +| cflow.cs:173:18:173:22 | Before Int32 i = ... | cflow.cs:173:18:173:18 | access to local variable i | | +| cflow.cs:173:18:173:22 | Int32 i = ... | cflow.cs:173:18:173:22 | After Int32 i = ... | | | cflow.cs:173:22:173:22 | 0 | cflow.cs:173:18:173:22 | Int32 i = ... | | -| cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:32:173:32 | access to local variable i | | +| cflow.cs:173:25:173:25 | access to local variable j | cflow.cs:173:29:173:29 | 0 | | +| cflow.cs:173:25:173:29 | After Int32 j = ... | cflow.cs:173:32:173:41 | Before ... < ... | | +| cflow.cs:173:25:173:29 | Before Int32 j = ... | cflow.cs:173:25:173:25 | access to local variable j | | +| cflow.cs:173:25:173:29 | Int32 j = ... | cflow.cs:173:25:173:29 | After Int32 j = ... | | | cflow.cs:173:29:173:29 | 0 | cflow.cs:173:25:173:29 | Int32 j = ... | | | cflow.cs:173:32:173:32 | access to local variable i | cflow.cs:173:36:173:36 | access to local variable j | | -| cflow.cs:173:32:173:36 | ... + ... | cflow.cs:173:40:173:41 | 10 | | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:146:10:146:12 | exit For (normal) | false | -| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:174:9:176:9 | {...} | true | +| cflow.cs:173:32:173:36 | ... + ... | cflow.cs:173:32:173:36 | After ... + ... | | +| cflow.cs:173:32:173:36 | After ... + ... | cflow.cs:173:40:173:41 | 10 | | +| cflow.cs:173:32:173:36 | Before ... + ... | cflow.cs:173:32:173:32 | access to local variable i | | +| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | After ... < ... [false] | false | +| cflow.cs:173:32:173:41 | ... < ... | cflow.cs:173:32:173:41 | After ... < ... [true] | true | +| cflow.cs:173:32:173:41 | After ... < ... [false] | cflow.cs:173:9:176:9 | After for (...;...;...) ... | | +| cflow.cs:173:32:173:41 | After ... < ... [true] | cflow.cs:174:9:176:9 | {...} | | +| cflow.cs:173:32:173:41 | Before ... < ... | cflow.cs:173:32:173:36 | Before ... + ... | | | cflow.cs:173:36:173:36 | access to local variable j | cflow.cs:173:32:173:36 | ... + ... | | | cflow.cs:173:40:173:41 | 10 | cflow.cs:173:32:173:41 | ... < ... | | | cflow.cs:173:44:173:44 | access to local variable i | cflow.cs:173:44:173:46 | ...++ | | -| cflow.cs:173:44:173:46 | ...++ | cflow.cs:173:49:173:49 | access to local variable j | | +| cflow.cs:173:44:173:46 | ...++ | cflow.cs:173:44:173:46 | After ...++ | | +| cflow.cs:173:44:173:46 | After ...++ | cflow.cs:173:49:173:51 | Before ...++ | | +| cflow.cs:173:44:173:46 | Before ...++ | cflow.cs:173:44:173:44 | access to local variable i | | | cflow.cs:173:49:173:49 | access to local variable j | cflow.cs:173:49:173:51 | ...++ | | -| cflow.cs:173:49:173:51 | ...++ | cflow.cs:173:32:173:32 | access to local variable i | | +| cflow.cs:173:49:173:51 | ...++ | cflow.cs:173:49:173:51 | After ...++ | | +| cflow.cs:173:49:173:51 | After ...++ | cflow.cs:173:32:173:41 | Before ... < ... | | +| cflow.cs:173:49:173:51 | Before ...++ | cflow.cs:173:49:173:49 | access to local variable j | | +| cflow.cs:174:9:176:9 | After {...} | cflow.cs:173:9:176:9 | [LoopHeader] for (...;...;...) ... | | | cflow.cs:174:9:176:9 | {...} | cflow.cs:175:13:175:37 | ...; | | -| cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:173:44:173:44 | access to local variable i | | -| cflow.cs:175:13:175:37 | ...; | cflow.cs:175:31:175:31 | access to local variable i | | +| cflow.cs:175:13:175:36 | After call to method WriteLine | cflow.cs:175:13:175:37 | After ...; | | +| cflow.cs:175:13:175:36 | Before call to method WriteLine | cflow.cs:175:31:175:35 | Before ... + ... | | +| cflow.cs:175:13:175:36 | call to method WriteLine | cflow.cs:175:13:175:36 | After call to method WriteLine | | +| cflow.cs:175:13:175:37 | ...; | cflow.cs:175:13:175:36 | Before call to method WriteLine | | +| cflow.cs:175:13:175:37 | After ...; | cflow.cs:174:9:176:9 | After {...} | | | cflow.cs:175:31:175:31 | access to local variable i | cflow.cs:175:35:175:35 | access to local variable j | | -| cflow.cs:175:31:175:35 | ... + ... | cflow.cs:175:13:175:36 | call to method WriteLine | | +| cflow.cs:175:31:175:35 | ... + ... | cflow.cs:175:31:175:35 | After ... + ... | | +| cflow.cs:175:31:175:35 | After ... + ... | cflow.cs:175:13:175:36 | call to method WriteLine | | +| cflow.cs:175:31:175:35 | Before ... + ... | cflow.cs:175:31:175:31 | access to local variable i | | | cflow.cs:175:35:175:35 | access to local variable j | cflow.cs:175:31:175:35 | ... + ... | | -| cflow.cs:179:10:179:16 | enter Lambdas | cflow.cs:180:5:183:5 | {...} | | -| cflow.cs:179:10:179:16 | exit Lambdas (normal) | cflow.cs:179:10:179:16 | exit Lambdas | | +| cflow.cs:179:10:179:16 | Entry | cflow.cs:180:5:183:5 | {...} | | +| cflow.cs:179:10:179:16 | Normal Exit | cflow.cs:179:10:179:16 | Exit | | +| cflow.cs:180:5:183:5 | After {...} | cflow.cs:179:10:179:16 | Normal Exit | | | cflow.cs:180:5:183:5 | {...} | cflow.cs:181:9:181:38 | ... ...; | | -| cflow.cs:181:9:181:38 | ... ...; | cflow.cs:181:28:181:37 | (...) => ... | | -| cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:182:9:182:62 | ... ...; | | +| cflow.cs:181:9:181:38 | ... ...; | cflow.cs:181:24:181:37 | Before Func y = ... | | +| cflow.cs:181:9:181:38 | After ... ...; | cflow.cs:182:9:182:62 | ... ...; | | +| cflow.cs:181:24:181:24 | access to local variable y | cflow.cs:181:28:181:37 | (...) => ... | | +| cflow.cs:181:24:181:37 | After Func y = ... | cflow.cs:181:9:181:38 | After ... ...; | | +| cflow.cs:181:24:181:37 | Before Func y = ... | cflow.cs:181:24:181:24 | access to local variable y | | +| cflow.cs:181:24:181:37 | Func y = ... | cflow.cs:181:24:181:37 | After Func y = ... | | | cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:181:24:181:37 | Func y = ... | | -| cflow.cs:181:28:181:37 | enter (...) => ... | cflow.cs:181:33:181:33 | access to parameter x | | -| cflow.cs:181:28:181:37 | exit (...) => ... (normal) | cflow.cs:181:28:181:37 | exit (...) => ... | | +| cflow.cs:181:28:181:37 | Entry | cflow.cs:181:33:181:37 | Before ... + ... | | +| cflow.cs:181:28:181:37 | Normal Exit | cflow.cs:181:28:181:37 | Exit | | | cflow.cs:181:33:181:33 | access to parameter x | cflow.cs:181:37:181:37 | 1 | | -| cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:28:181:37 | exit (...) => ... (normal) | | +| cflow.cs:181:33:181:37 | ... + ... | cflow.cs:181:33:181:37 | After ... + ... | | +| cflow.cs:181:33:181:37 | After ... + ... | cflow.cs:181:28:181:37 | Normal Exit | | +| cflow.cs:181:33:181:37 | Before ... + ... | cflow.cs:181:33:181:33 | access to parameter x | | | cflow.cs:181:37:181:37 | 1 | cflow.cs:181:33:181:37 | ... + ... | | -| cflow.cs:182:9:182:62 | ... ...; | cflow.cs:182:28:182:61 | delegate(...) { ... } | | -| cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:179:10:179:16 | exit Lambdas (normal) | | +| cflow.cs:182:9:182:62 | ... ...; | cflow.cs:182:24:182:61 | Before Func z = ... | | +| cflow.cs:182:9:182:62 | After ... ...; | cflow.cs:180:5:183:5 | After {...} | | +| cflow.cs:182:24:182:24 | access to local variable z | cflow.cs:182:28:182:61 | delegate(...) { ... } | | +| cflow.cs:182:24:182:61 | After Func z = ... | cflow.cs:182:9:182:62 | After ... ...; | | +| cflow.cs:182:24:182:61 | Before Func z = ... | cflow.cs:182:24:182:24 | access to local variable z | | +| cflow.cs:182:24:182:61 | Func z = ... | cflow.cs:182:24:182:61 | After Func z = ... | | +| cflow.cs:182:28:182:61 | Entry | cflow.cs:182:45:182:61 | {...} | | +| cflow.cs:182:28:182:61 | Normal Exit | cflow.cs:182:28:182:61 | Exit | | | cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:182:24:182:61 | Func z = ... | | -| cflow.cs:182:28:182:61 | enter delegate(...) { ... } | cflow.cs:182:45:182:61 | {...} | | -| cflow.cs:182:28:182:61 | exit delegate(...) { ... } (normal) | cflow.cs:182:28:182:61 | exit delegate(...) { ... } | | -| cflow.cs:182:45:182:61 | {...} | cflow.cs:182:54:182:54 | access to parameter x | | -| cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:28:182:61 | exit delegate(...) { ... } (normal) | return | +| cflow.cs:182:45:182:61 | {...} | cflow.cs:182:47:182:59 | Before return ...; | | +| cflow.cs:182:47:182:59 | Before return ...; | cflow.cs:182:54:182:58 | Before ... + ... | | +| cflow.cs:182:47:182:59 | return ...; | cflow.cs:182:28:182:61 | Normal Exit | return | | cflow.cs:182:54:182:54 | access to parameter x | cflow.cs:182:58:182:58 | 1 | | -| cflow.cs:182:54:182:58 | ... + ... | cflow.cs:182:47:182:59 | return ...; | | +| cflow.cs:182:54:182:58 | ... + ... | cflow.cs:182:54:182:58 | After ... + ... | | +| cflow.cs:182:54:182:58 | After ... + ... | cflow.cs:182:47:182:59 | return ...; | | +| cflow.cs:182:54:182:58 | Before ... + ... | cflow.cs:182:54:182:54 | access to parameter x | | | cflow.cs:182:58:182:58 | 1 | cflow.cs:182:54:182:58 | ... + ... | | -| cflow.cs:185:10:185:18 | enter LogicalOr | cflow.cs:186:5:191:5 | {...} | | -| cflow.cs:185:10:185:18 | exit LogicalOr (normal) | cflow.cs:185:10:185:18 | exit LogicalOr | | +| cflow.cs:185:10:185:18 | Entry | cflow.cs:186:5:191:5 | {...} | | +| cflow.cs:185:10:185:18 | Normal Exit | cflow.cs:185:10:185:18 | Exit | | +| cflow.cs:186:5:191:5 | After {...} | cflow.cs:185:10:185:18 | Normal Exit | | | cflow.cs:186:5:191:5 | {...} | cflow.cs:187:9:190:52 | if (...) ... | | -| cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:187:13:187:13 | 1 | | +| cflow.cs:187:9:190:52 | After if (...) ... | cflow.cs:186:5:191:5 | After {...} | | +| cflow.cs:187:9:190:52 | if (...) ... | cflow.cs:187:13:187:50 | ... \|\| ... | | | cflow.cs:187:13:187:13 | 1 | cflow.cs:187:18:187:18 | 2 | | -| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:23:187:23 | 2 | false | -| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:34:187:34 | 1 | false | -| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:190:13:190:52 | ...; | false | +| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:18 | After ... == ... [false] | false | +| cflow.cs:187:13:187:18 | ... == ... | cflow.cs:187:13:187:18 | After ... == ... [true] | true | +| cflow.cs:187:13:187:18 | After ... == ... [false] | cflow.cs:187:23:187:28 | Before ... == ... | | +| cflow.cs:187:13:187:18 | After ... == ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | true | +| cflow.cs:187:13:187:18 | Before ... == ... | cflow.cs:187:13:187:13 | 1 | | +| cflow.cs:187:13:187:28 | ... \|\| ... | cflow.cs:187:13:187:18 | Before ... == ... | | +| cflow.cs:187:13:187:28 | After ... \|\| ... [false] | cflow.cs:187:34:187:49 | ... && ... | | +| cflow.cs:187:13:187:28 | After ... \|\| ... [true] | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | true | +| cflow.cs:187:13:187:50 | ... \|\| ... | cflow.cs:187:13:187:28 | ... \|\| ... | | +| cflow.cs:187:13:187:50 | After ... \|\| ... [false] | cflow.cs:190:13:190:52 | ...; | | +| cflow.cs:187:13:187:50 | After ... \|\| ... [true] | cflow.cs:188:13:188:55 | ...; | | | cflow.cs:187:18:187:18 | 2 | cflow.cs:187:13:187:18 | ... == ... | | | cflow.cs:187:23:187:23 | 2 | cflow.cs:187:28:187:28 | 3 | | -| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:13:187:28 | ... \|\| ... | false | +| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:28 | After ... == ... [false] | false | +| cflow.cs:187:23:187:28 | ... == ... | cflow.cs:187:23:187:28 | After ... == ... [true] | true | +| cflow.cs:187:23:187:28 | After ... == ... [false] | cflow.cs:187:13:187:28 | After ... \|\| ... [false] | false | +| cflow.cs:187:23:187:28 | After ... == ... [true] | cflow.cs:187:13:187:28 | After ... \|\| ... [true] | true | +| cflow.cs:187:23:187:28 | Before ... == ... | cflow.cs:187:23:187:23 | 2 | | | cflow.cs:187:28:187:28 | 3 | cflow.cs:187:23:187:28 | ... == ... | | | cflow.cs:187:34:187:34 | 1 | cflow.cs:187:39:187:39 | 3 | | -| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:49 | ... && ... | false | -| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:13:187:50 | ... \|\| ... | false | +| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:39 | After ... == ... [false] | false | +| cflow.cs:187:34:187:39 | ... == ... | cflow.cs:187:34:187:39 | After ... == ... [true] | true | +| cflow.cs:187:34:187:39 | After ... == ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | false | +| cflow.cs:187:34:187:39 | After ... == ... [true] | cflow.cs:187:44:187:49 | Before ... == ... | | +| cflow.cs:187:34:187:39 | Before ... == ... | cflow.cs:187:34:187:34 | 1 | | +| cflow.cs:187:34:187:49 | ... && ... | cflow.cs:187:34:187:39 | Before ... == ... | | +| cflow.cs:187:34:187:49 | After ... && ... [false] | cflow.cs:187:13:187:50 | After ... \|\| ... [false] | false | +| cflow.cs:187:34:187:49 | After ... && ... [true] | cflow.cs:187:13:187:50 | After ... \|\| ... [true] | true | | cflow.cs:187:39:187:39 | 3 | cflow.cs:187:34:187:39 | ... == ... | | -| cflow.cs:190:13:190:51 | call to method WriteLine | cflow.cs:185:10:185:18 | exit LogicalOr (normal) | | -| cflow.cs:190:13:190:52 | ...; | cflow.cs:190:31:190:50 | "This should happen" | | +| cflow.cs:187:44:187:44 | 3 | cflow.cs:187:49:187:49 | 1 | | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:49 | After ... == ... [false] | false | +| cflow.cs:187:44:187:49 | ... == ... | cflow.cs:187:44:187:49 | After ... == ... [true] | true | +| cflow.cs:187:44:187:49 | After ... == ... [false] | cflow.cs:187:34:187:49 | After ... && ... [false] | false | +| cflow.cs:187:44:187:49 | After ... == ... [true] | cflow.cs:187:34:187:49 | After ... && ... [true] | true | +| cflow.cs:187:44:187:49 | Before ... == ... | cflow.cs:187:44:187:44 | 3 | | +| cflow.cs:187:49:187:49 | 1 | cflow.cs:187:44:187:49 | ... == ... | | +| cflow.cs:188:13:188:54 | After call to method WriteLine | cflow.cs:188:13:188:55 | After ...; | | +| cflow.cs:188:13:188:54 | Before call to method WriteLine | cflow.cs:188:31:188:53 | "This shouldn't happen" | | +| cflow.cs:188:13:188:54 | call to method WriteLine | cflow.cs:188:13:188:54 | After call to method WriteLine | | +| cflow.cs:188:13:188:55 | ...; | cflow.cs:188:13:188:54 | Before call to method WriteLine | | +| cflow.cs:188:13:188:55 | After ...; | cflow.cs:187:9:190:52 | After if (...) ... | | +| cflow.cs:188:31:188:53 | "This shouldn't happen" | cflow.cs:188:13:188:54 | call to method WriteLine | | +| cflow.cs:190:13:190:51 | After call to method WriteLine | cflow.cs:190:13:190:52 | After ...; | | +| cflow.cs:190:13:190:51 | Before call to method WriteLine | cflow.cs:190:31:190:50 | "This should happen" | | +| cflow.cs:190:13:190:51 | call to method WriteLine | cflow.cs:190:13:190:51 | After call to method WriteLine | | +| cflow.cs:190:13:190:52 | ...; | cflow.cs:190:13:190:51 | Before call to method WriteLine | | +| cflow.cs:190:13:190:52 | After ...; | cflow.cs:187:9:190:52 | After if (...) ... | | | cflow.cs:190:31:190:50 | "This should happen" | cflow.cs:190:13:190:51 | call to method WriteLine | | -| cflow.cs:193:10:193:17 | enter Booleans | cflow.cs:194:5:206:5 | {...} | | -| cflow.cs:193:10:193:17 | exit Booleans (abnormal) | cflow.cs:193:10:193:17 | exit Booleans | | -| cflow.cs:193:10:193:17 | exit Booleans (normal) | cflow.cs:193:10:193:17 | exit Booleans | | +| cflow.cs:193:10:193:17 | Entry | cflow.cs:194:5:206:5 | {...} | | +| cflow.cs:193:10:193:17 | Exceptional Exit | cflow.cs:193:10:193:17 | Exit | | +| cflow.cs:193:10:193:17 | Normal Exit | cflow.cs:193:10:193:17 | Exit | | +| cflow.cs:194:5:206:5 | After {...} | cflow.cs:193:10:193:17 | Normal Exit | | | cflow.cs:194:5:206:5 | {...} | cflow.cs:195:9:195:57 | ... ...; | | -| cflow.cs:195:9:195:57 | ... ...; | cflow.cs:195:17:195:21 | this access | | -| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:197:9:198:49 | if (...) ... | | -| cflow.cs:195:17:195:21 | access to field Field | cflow.cs:195:17:195:28 | access to property Length | | +| cflow.cs:195:9:195:57 | ... ...; | cflow.cs:195:13:195:56 | Before Boolean b = ... | | +| cflow.cs:195:9:195:57 | After ... ...; | cflow.cs:197:9:198:49 | if (...) ... | | +| cflow.cs:195:13:195:13 | access to local variable b | cflow.cs:195:17:195:56 | ... && ... | | +| cflow.cs:195:13:195:56 | After Boolean b = ... | cflow.cs:195:9:195:57 | After ... ...; | | +| cflow.cs:195:13:195:56 | Before Boolean b = ... | cflow.cs:195:13:195:13 | access to local variable b | | +| cflow.cs:195:13:195:56 | Boolean b = ... | cflow.cs:195:13:195:56 | After Boolean b = ... | | +| cflow.cs:195:17:195:21 | After access to field Field | cflow.cs:195:17:195:28 | access to property Length | | +| cflow.cs:195:17:195:21 | Before access to field Field | cflow.cs:195:17:195:21 | this access | | +| cflow.cs:195:17:195:21 | access to field Field | cflow.cs:195:17:195:21 | After access to field Field | | | cflow.cs:195:17:195:21 | this access | cflow.cs:195:17:195:21 | access to field Field | | -| cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:32:195:32 | 0 | | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:56 | ... && ... | false | -| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:39:195:43 | this access | true | -| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:13:195:56 | Boolean b = ... | | +| cflow.cs:195:17:195:28 | After access to property Length | cflow.cs:195:32:195:32 | 0 | | +| cflow.cs:195:17:195:28 | Before access to property Length | cflow.cs:195:17:195:21 | Before access to field Field | | +| cflow.cs:195:17:195:28 | access to property Length | cflow.cs:195:17:195:28 | After access to property Length | | +| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | After ... > ... [false] | false | +| cflow.cs:195:17:195:32 | ... > ... | cflow.cs:195:17:195:32 | After ... > ... [true] | true | +| cflow.cs:195:17:195:32 | After ... > ... [false] | cflow.cs:195:17:195:56 | After ... && ... | | +| cflow.cs:195:17:195:32 | After ... > ... [true] | cflow.cs:195:37:195:56 | !... | | +| cflow.cs:195:17:195:32 | Before ... > ... | cflow.cs:195:17:195:28 | Before access to property Length | | +| cflow.cs:195:17:195:56 | ... && ... | cflow.cs:195:17:195:32 | Before ... > ... | | +| cflow.cs:195:17:195:56 | After ... && ... | cflow.cs:195:13:195:56 | Boolean b = ... | | | cflow.cs:195:32:195:32 | 0 | cflow.cs:195:17:195:32 | ... > ... | | -| cflow.cs:195:37:195:56 | !... | cflow.cs:195:17:195:56 | ... && ... | | -| cflow.cs:195:39:195:43 | access to field Field | cflow.cs:195:39:195:50 | access to property Length | | +| cflow.cs:195:37:195:56 | !... | cflow.cs:195:39:195:55 | Before ... == ... | | +| cflow.cs:195:37:195:56 | After !... | cflow.cs:195:17:195:56 | After ... && ... | | +| cflow.cs:195:39:195:43 | After access to field Field | cflow.cs:195:39:195:50 | access to property Length | | +| cflow.cs:195:39:195:43 | Before access to field Field | cflow.cs:195:39:195:43 | this access | | +| cflow.cs:195:39:195:43 | access to field Field | cflow.cs:195:39:195:43 | After access to field Field | | | cflow.cs:195:39:195:43 | this access | cflow.cs:195:39:195:43 | access to field Field | | -| cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:55:195:55 | 1 | | -| cflow.cs:195:39:195:55 | ... == ... | cflow.cs:195:37:195:56 | !... | | +| cflow.cs:195:39:195:50 | After access to property Length | cflow.cs:195:55:195:55 | 1 | | +| cflow.cs:195:39:195:50 | Before access to property Length | cflow.cs:195:39:195:43 | Before access to field Field | | +| cflow.cs:195:39:195:50 | access to property Length | cflow.cs:195:39:195:50 | After access to property Length | | +| cflow.cs:195:39:195:55 | ... == ... | cflow.cs:195:39:195:55 | After ... == ... | | +| cflow.cs:195:39:195:55 | After ... == ... | cflow.cs:195:37:195:56 | After !... | | +| cflow.cs:195:39:195:55 | Before ... == ... | cflow.cs:195:39:195:50 | Before access to property Length | | | cflow.cs:195:55:195:55 | 1 | cflow.cs:195:39:195:55 | ... == ... | | -| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:197:15:197:19 | this access | | -| cflow.cs:197:13:197:47 | [false] !... | cflow.cs:200:9:205:9 | if (...) ... | false | -| cflow.cs:197:13:197:47 | [true] !... | cflow.cs:198:13:198:49 | ...; | true | -| cflow.cs:197:15:197:19 | access to field Field | cflow.cs:197:15:197:26 | access to property Length | | +| cflow.cs:197:9:198:49 | After if (...) ... | cflow.cs:200:9:205:9 | if (...) ... | | +| cflow.cs:197:9:198:49 | if (...) ... | cflow.cs:197:13:197:47 | !... | | +| cflow.cs:197:13:197:47 | !... | cflow.cs:197:15:197:46 | ... ? ... : ... | | +| cflow.cs:197:13:197:47 | After !... [false] | cflow.cs:197:9:198:49 | After if (...) ... | | +| cflow.cs:197:13:197:47 | After !... [true] | cflow.cs:198:13:198:49 | ...; | | +| cflow.cs:197:15:197:19 | After access to field Field | cflow.cs:197:15:197:26 | access to property Length | | +| cflow.cs:197:15:197:19 | Before access to field Field | cflow.cs:197:15:197:19 | this access | | +| cflow.cs:197:15:197:19 | access to field Field | cflow.cs:197:15:197:19 | After access to field Field | | | cflow.cs:197:15:197:19 | this access | cflow.cs:197:15:197:19 | access to field Field | | -| cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:31:197:31 | 0 | | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:35:197:39 | false | true | -| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:43:197:46 | true | false | -| cflow.cs:197:15:197:46 | [false] ... ? ... : ... | cflow.cs:197:13:197:47 | [true] !... | false | -| cflow.cs:197:15:197:46 | [true] ... ? ... : ... | cflow.cs:197:13:197:47 | [false] !... | true | +| cflow.cs:197:15:197:26 | After access to property Length | cflow.cs:197:31:197:31 | 0 | | +| cflow.cs:197:15:197:26 | Before access to property Length | cflow.cs:197:15:197:19 | Before access to field Field | | +| cflow.cs:197:15:197:26 | access to property Length | cflow.cs:197:15:197:26 | After access to property Length | | +| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | After ... == ... [false] | false | +| cflow.cs:197:15:197:31 | ... == ... | cflow.cs:197:15:197:31 | After ... == ... [true] | true | +| cflow.cs:197:15:197:31 | After ... == ... [false] | cflow.cs:197:43:197:46 | true | | +| cflow.cs:197:15:197:31 | After ... == ... [true] | cflow.cs:197:35:197:39 | false | | +| cflow.cs:197:15:197:31 | Before ... == ... | cflow.cs:197:15:197:26 | Before access to property Length | | +| cflow.cs:197:15:197:46 | ... ? ... : ... | cflow.cs:197:15:197:31 | Before ... == ... | | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | cflow.cs:197:13:197:47 | After !... [true] | true | +| cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | cflow.cs:197:13:197:47 | After !... [false] | false | | cflow.cs:197:31:197:31 | 0 | cflow.cs:197:15:197:31 | ... == ... | | -| cflow.cs:197:35:197:39 | false | cflow.cs:197:15:197:46 | [false] ... ? ... : ... | false | -| cflow.cs:197:43:197:46 | true | cflow.cs:197:15:197:46 | [true] ... ? ... : ... | true | -| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:200:9:205:9 | if (...) ... | | -| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:17:198:21 | this access | | -| cflow.cs:198:17:198:21 | access to field Field | cflow.cs:198:17:198:28 | access to property Length | | +| cflow.cs:197:35:197:39 | After false [false] | cflow.cs:197:15:197:46 | After ... ? ... : ... [false] | false | +| cflow.cs:197:35:197:39 | false | cflow.cs:197:35:197:39 | After false [false] | false | +| cflow.cs:197:43:197:46 | After true [true] | cflow.cs:197:15:197:46 | After ... ? ... : ... [true] | true | +| cflow.cs:197:43:197:46 | true | cflow.cs:197:43:197:46 | After true [true] | true | +| cflow.cs:198:13:198:13 | access to local variable b | cflow.cs:198:17:198:48 | ... ? ... : ... | | +| cflow.cs:198:13:198:48 | ... = ... | cflow.cs:198:13:198:48 | After ... = ... | | +| cflow.cs:198:13:198:48 | After ... = ... | cflow.cs:198:13:198:49 | After ...; | | +| cflow.cs:198:13:198:48 | Before ... = ... | cflow.cs:198:13:198:13 | access to local variable b | | +| cflow.cs:198:13:198:49 | ...; | cflow.cs:198:13:198:48 | Before ... = ... | | +| cflow.cs:198:13:198:49 | After ...; | cflow.cs:197:9:198:49 | After if (...) ... | | +| cflow.cs:198:17:198:21 | After access to field Field | cflow.cs:198:17:198:28 | access to property Length | | +| cflow.cs:198:17:198:21 | Before access to field Field | cflow.cs:198:17:198:21 | this access | | +| cflow.cs:198:17:198:21 | access to field Field | cflow.cs:198:17:198:21 | After access to field Field | | | cflow.cs:198:17:198:21 | this access | cflow.cs:198:17:198:21 | access to field Field | | -| cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:33:198:33 | 0 | | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:37:198:41 | false | true | -| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:45:198:48 | true | false | -| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:13:198:48 | ... = ... | | +| cflow.cs:198:17:198:28 | After access to property Length | cflow.cs:198:33:198:33 | 0 | | +| cflow.cs:198:17:198:28 | Before access to property Length | cflow.cs:198:17:198:21 | Before access to field Field | | +| cflow.cs:198:17:198:28 | access to property Length | cflow.cs:198:17:198:28 | After access to property Length | | +| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | After ... == ... [false] | false | +| cflow.cs:198:17:198:33 | ... == ... | cflow.cs:198:17:198:33 | After ... == ... [true] | true | +| cflow.cs:198:17:198:33 | After ... == ... [false] | cflow.cs:198:45:198:48 | true | | +| cflow.cs:198:17:198:33 | After ... == ... [true] | cflow.cs:198:37:198:41 | false | | +| cflow.cs:198:17:198:33 | Before ... == ... | cflow.cs:198:17:198:28 | Before access to property Length | | +| cflow.cs:198:17:198:48 | ... ? ... : ... | cflow.cs:198:17:198:33 | Before ... == ... | | +| cflow.cs:198:17:198:48 | After ... ? ... : ... | cflow.cs:198:13:198:48 | ... = ... | | | cflow.cs:198:33:198:33 | 0 | cflow.cs:198:17:198:33 | ... == ... | | -| cflow.cs:198:37:198:41 | false | cflow.cs:198:17:198:48 | ... ? ... : ... | | -| cflow.cs:198:45:198:48 | true | cflow.cs:198:17:198:48 | ... ? ... : ... | | -| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:15:200:19 | this access | | -| cflow.cs:200:13:200:32 | [false] !... | cflow.cs:200:40:200:44 | this access | false | -| cflow.cs:200:13:200:32 | [true] !... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | true | -| cflow.cs:200:13:200:62 | [false] ... \|\| ... | cflow.cs:193:10:193:17 | exit Booleans (normal) | false | -| cflow.cs:200:13:200:62 | [true] ... \|\| ... | cflow.cs:201:9:205:9 | {...} | true | -| cflow.cs:200:15:200:19 | access to field Field | cflow.cs:200:15:200:26 | access to property Length | | +| cflow.cs:198:37:198:41 | false | cflow.cs:198:17:198:48 | After ... ? ... : ... | | +| cflow.cs:198:45:198:48 | true | cflow.cs:198:17:198:48 | After ... ? ... : ... | | +| cflow.cs:200:9:205:9 | After if (...) ... | cflow.cs:194:5:206:5 | After {...} | | +| cflow.cs:200:9:205:9 | if (...) ... | cflow.cs:200:13:200:62 | ... \|\| ... | | +| cflow.cs:200:13:200:32 | !... | cflow.cs:200:15:200:31 | Before ... == ... | | +| cflow.cs:200:13:200:32 | After !... [false] | cflow.cs:200:37:200:62 | !... | | +| cflow.cs:200:13:200:32 | After !... [true] | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | true | +| cflow.cs:200:13:200:62 | ... \|\| ... | cflow.cs:200:13:200:32 | !... | | +| cflow.cs:200:13:200:62 | After ... \|\| ... [false] | cflow.cs:200:9:205:9 | After if (...) ... | | +| cflow.cs:200:13:200:62 | After ... \|\| ... [true] | cflow.cs:201:9:205:9 | {...} | | +| cflow.cs:200:15:200:19 | After access to field Field | cflow.cs:200:15:200:26 | access to property Length | | +| cflow.cs:200:15:200:19 | Before access to field Field | cflow.cs:200:15:200:19 | this access | | +| cflow.cs:200:15:200:19 | access to field Field | cflow.cs:200:15:200:19 | After access to field Field | | | cflow.cs:200:15:200:19 | this access | cflow.cs:200:15:200:19 | access to field Field | | -| cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:31:200:31 | 0 | | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:13:200:32 | [false] !... | true | -| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:13:200:32 | [true] !... | false | +| cflow.cs:200:15:200:26 | After access to property Length | cflow.cs:200:31:200:31 | 0 | | +| cflow.cs:200:15:200:26 | Before access to property Length | cflow.cs:200:15:200:19 | Before access to field Field | | +| cflow.cs:200:15:200:26 | access to property Length | cflow.cs:200:15:200:26 | After access to property Length | | +| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | After ... == ... [false] | false | +| cflow.cs:200:15:200:31 | ... == ... | cflow.cs:200:15:200:31 | After ... == ... [true] | true | +| cflow.cs:200:15:200:31 | After ... == ... [false] | cflow.cs:200:13:200:32 | After !... [true] | true | +| cflow.cs:200:15:200:31 | After ... == ... [true] | cflow.cs:200:13:200:32 | After !... [false] | false | +| cflow.cs:200:15:200:31 | Before ... == ... | cflow.cs:200:15:200:26 | Before access to property Length | | | cflow.cs:200:31:200:31 | 0 | cflow.cs:200:15:200:31 | ... == ... | | -| cflow.cs:200:37:200:62 | [false] !... | cflow.cs:200:13:200:62 | [false] ... \|\| ... | false | -| cflow.cs:200:37:200:62 | [true] !... | cflow.cs:200:13:200:62 | [true] ... \|\| ... | true | -| cflow.cs:200:38:200:62 | [false] !... | cflow.cs:200:37:200:62 | [true] !... | false | -| cflow.cs:200:38:200:62 | [true] !... | cflow.cs:200:37:200:62 | [false] !... | true | -| cflow.cs:200:40:200:44 | access to field Field | cflow.cs:200:40:200:51 | access to property Length | | +| cflow.cs:200:37:200:62 | !... | cflow.cs:200:38:200:62 | !... | | +| cflow.cs:200:37:200:62 | After !... [false] | cflow.cs:200:13:200:62 | After ... \|\| ... [false] | false | +| cflow.cs:200:37:200:62 | After !... [true] | cflow.cs:200:13:200:62 | After ... \|\| ... [true] | true | +| cflow.cs:200:38:200:62 | !... | cflow.cs:200:40:200:61 | ... && ... | | +| cflow.cs:200:38:200:62 | After !... [false] | cflow.cs:200:37:200:62 | After !... [true] | true | +| cflow.cs:200:38:200:62 | After !... [true] | cflow.cs:200:37:200:62 | After !... [false] | false | +| cflow.cs:200:40:200:44 | After access to field Field | cflow.cs:200:40:200:51 | access to property Length | | +| cflow.cs:200:40:200:44 | Before access to field Field | cflow.cs:200:40:200:44 | this access | | +| cflow.cs:200:40:200:44 | access to field Field | cflow.cs:200:40:200:44 | After access to field Field | | | cflow.cs:200:40:200:44 | this access | cflow.cs:200:40:200:44 | access to field Field | | -| cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:56:200:56 | 1 | | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:61 | [false] ... && ... | false | -| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:61:200:61 | access to local variable b | true | -| cflow.cs:200:40:200:61 | [false] ... && ... | cflow.cs:200:38:200:62 | [true] !... | false | -| cflow.cs:200:40:200:61 | [true] ... && ... | cflow.cs:200:38:200:62 | [false] !... | true | +| cflow.cs:200:40:200:51 | After access to property Length | cflow.cs:200:56:200:56 | 1 | | +| cflow.cs:200:40:200:51 | Before access to property Length | cflow.cs:200:40:200:44 | Before access to field Field | | +| cflow.cs:200:40:200:51 | access to property Length | cflow.cs:200:40:200:51 | After access to property Length | | +| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | After ... == ... [false] | false | +| cflow.cs:200:40:200:56 | ... == ... | cflow.cs:200:40:200:56 | After ... == ... [true] | true | +| cflow.cs:200:40:200:56 | After ... == ... [false] | cflow.cs:200:40:200:61 | After ... && ... [false] | false | +| cflow.cs:200:40:200:56 | After ... == ... [true] | cflow.cs:200:61:200:61 | access to local variable b | | +| cflow.cs:200:40:200:56 | Before ... == ... | cflow.cs:200:40:200:51 | Before access to property Length | | +| cflow.cs:200:40:200:61 | ... && ... | cflow.cs:200:40:200:56 | Before ... == ... | | +| cflow.cs:200:40:200:61 | After ... && ... [false] | cflow.cs:200:38:200:62 | After !... [true] | true | +| cflow.cs:200:40:200:61 | After ... && ... [true] | cflow.cs:200:38:200:62 | After !... [false] | false | | cflow.cs:200:56:200:56 | 1 | cflow.cs:200:40:200:56 | ... == ... | | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [false] ... && ... | false | -| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [true] ... && ... | true | +| cflow.cs:200:61:200:61 | After access to local variable b [false] | cflow.cs:200:40:200:61 | After ... && ... [false] | false | +| cflow.cs:200:61:200:61 | After access to local variable b [true] | cflow.cs:200:40:200:61 | After ... && ... [true] | true | +| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | After access to local variable b [false] | false | +| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:61:200:61 | After access to local variable b [true] | true | | cflow.cs:201:9:205:9 | {...} | cflow.cs:202:13:204:13 | {...} | | -| cflow.cs:202:13:204:13 | {...} | cflow.cs:203:23:203:37 | object creation of type Exception | | -| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | exception | -| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:17:203:38 | throw ...; | | -| cflow.cs:208:10:208:11 | enter Do | cflow.cs:209:5:222:5 | {...} | | -| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | | +| cflow.cs:202:13:204:13 | {...} | cflow.cs:203:17:203:38 | Before throw ...; | | +| cflow.cs:203:17:203:38 | Before throw ...; | cflow.cs:203:23:203:37 | Before object creation of type Exception | | +| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | Exceptional Exit | exception | +| cflow.cs:203:23:203:37 | After object creation of type Exception | cflow.cs:203:17:203:38 | throw ...; | | +| cflow.cs:203:23:203:37 | Before object creation of type Exception | cflow.cs:203:23:203:37 | object creation of type Exception | | +| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:23:203:37 | After object creation of type Exception | | +| cflow.cs:208:10:208:11 | Entry | cflow.cs:209:5:222:5 | {...} | | +| cflow.cs:208:10:208:11 | Normal Exit | cflow.cs:208:10:208:11 | Exit | | +| cflow.cs:209:5:222:5 | After {...} | cflow.cs:208:10:208:11 | Normal Exit | | | cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | | +| cflow.cs:210:9:221:36 | After do ... while (...); | cflow.cs:209:5:222:5 | After {...} | | +| cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | cflow.cs:221:18:221:34 | Before ... < ... | | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} | | +| cflow.cs:211:9:221:9 | After {...} | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | | | cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; | | -| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" | | +| cflow.cs:212:13:212:17 | After access to field Field | cflow.cs:212:22:212:24 | "a" | | +| cflow.cs:212:13:212:17 | Before access to field Field | cflow.cs:212:13:212:17 | this access | | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | After access to field Field | | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field | | -| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:213:13:216:13 | if (...) ... | | -| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access | | +| cflow.cs:212:13:212:24 | ... += ... | cflow.cs:212:13:212:24 | After ... += ... | | +| cflow.cs:212:13:212:24 | After ... += ... | cflow.cs:212:13:212:25 | After ...; | | +| cflow.cs:212:13:212:24 | Before ... += ... | cflow.cs:212:13:212:17 | Before access to field Field | | +| cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:24 | Before ... += ... | | +| cflow.cs:212:13:212:25 | After ...; | cflow.cs:213:13:216:13 | if (...) ... | | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... += ... | | -| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:213:17:213:21 | this access | | -| cflow.cs:213:17:213:21 | access to field Field | cflow.cs:213:17:213:28 | access to property Length | | +| cflow.cs:213:13:216:13 | After if (...) ... | cflow.cs:217:13:220:13 | if (...) ... | | +| cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:213:17:213:32 | Before ... > ... | | +| cflow.cs:213:17:213:21 | After access to field Field | cflow.cs:213:17:213:28 | access to property Length | | +| cflow.cs:213:17:213:21 | Before access to field Field | cflow.cs:213:17:213:21 | this access | | +| cflow.cs:213:17:213:21 | access to field Field | cflow.cs:213:17:213:21 | After access to field Field | | | cflow.cs:213:17:213:21 | this access | cflow.cs:213:17:213:21 | access to field Field | | -| cflow.cs:213:17:213:28 | access to property Length | cflow.cs:213:32:213:32 | 0 | | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:214:13:216:13 | {...} | true | -| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:217:13:220:13 | if (...) ... | false | +| cflow.cs:213:17:213:28 | After access to property Length | cflow.cs:213:32:213:32 | 0 | | +| cflow.cs:213:17:213:28 | Before access to property Length | cflow.cs:213:17:213:21 | Before access to field Field | | +| cflow.cs:213:17:213:28 | access to property Length | cflow.cs:213:17:213:28 | After access to property Length | | +| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | After ... > ... [false] | false | +| cflow.cs:213:17:213:32 | ... > ... | cflow.cs:213:17:213:32 | After ... > ... [true] | true | +| cflow.cs:213:17:213:32 | After ... > ... [false] | cflow.cs:213:13:216:13 | After if (...) ... | | +| cflow.cs:213:17:213:32 | After ... > ... [true] | cflow.cs:214:13:216:13 | {...} | | +| cflow.cs:213:17:213:32 | Before ... > ... | cflow.cs:213:17:213:28 | Before access to property Length | | | cflow.cs:213:32:213:32 | 0 | cflow.cs:213:17:213:32 | ... > ... | | -| cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | continue; | | -| cflow.cs:215:17:215:25 | continue; | cflow.cs:221:18:221:22 | this access | continue | -| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:21 | this access | | -| cflow.cs:217:17:217:21 | access to field Field | cflow.cs:217:17:217:28 | access to property Length | | +| cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | Before continue; | | +| cflow.cs:215:17:215:25 | Before continue; | cflow.cs:215:17:215:25 | continue; | | +| cflow.cs:215:17:215:25 | continue; | cflow.cs:210:9:221:36 | [LoopHeader] do ... while (...); | continue | +| cflow.cs:217:13:220:13 | After if (...) ... | cflow.cs:211:9:221:9 | After {...} | | +| cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:32 | Before ... < ... | | +| cflow.cs:217:17:217:21 | After access to field Field | cflow.cs:217:17:217:28 | access to property Length | | +| cflow.cs:217:17:217:21 | Before access to field Field | cflow.cs:217:17:217:21 | this access | | +| cflow.cs:217:17:217:21 | access to field Field | cflow.cs:217:17:217:21 | After access to field Field | | | cflow.cs:217:17:217:21 | this access | cflow.cs:217:17:217:21 | access to field Field | | -| cflow.cs:217:17:217:28 | access to property Length | cflow.cs:217:32:217:32 | 0 | | -| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:218:13:220:13 | {...} | true | -| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:221:18:221:22 | this access | false | +| cflow.cs:217:17:217:28 | After access to property Length | cflow.cs:217:32:217:32 | 0 | | +| cflow.cs:217:17:217:28 | Before access to property Length | cflow.cs:217:17:217:21 | Before access to field Field | | +| cflow.cs:217:17:217:28 | access to property Length | cflow.cs:217:17:217:28 | After access to property Length | | +| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | After ... < ... [false] | false | +| cflow.cs:217:17:217:32 | ... < ... | cflow.cs:217:17:217:32 | After ... < ... [true] | true | +| cflow.cs:217:17:217:32 | After ... < ... [false] | cflow.cs:217:13:220:13 | After if (...) ... | | +| cflow.cs:217:17:217:32 | After ... < ... [true] | cflow.cs:218:13:220:13 | {...} | | +| cflow.cs:217:17:217:32 | Before ... < ... | cflow.cs:217:17:217:28 | Before access to property Length | | | cflow.cs:217:32:217:32 | 0 | cflow.cs:217:17:217:32 | ... < ... | | -| cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | break; | | -| cflow.cs:219:17:219:22 | break; | cflow.cs:208:10:208:11 | exit Do (normal) | break | -| cflow.cs:221:18:221:22 | access to field Field | cflow.cs:221:18:221:29 | access to property Length | | +| cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | Before break; | | +| cflow.cs:219:17:219:22 | Before break; | cflow.cs:219:17:219:22 | break; | | +| cflow.cs:219:17:219:22 | break; | cflow.cs:210:9:221:36 | After do ... while (...); | break | +| cflow.cs:221:18:221:22 | After access to field Field | cflow.cs:221:18:221:29 | access to property Length | | +| cflow.cs:221:18:221:22 | Before access to field Field | cflow.cs:221:18:221:22 | this access | | +| cflow.cs:221:18:221:22 | access to field Field | cflow.cs:221:18:221:22 | After access to field Field | | | cflow.cs:221:18:221:22 | this access | cflow.cs:221:18:221:22 | access to field Field | | -| cflow.cs:221:18:221:29 | access to property Length | cflow.cs:221:33:221:34 | 10 | | -| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:208:10:208:11 | exit Do (normal) | false | -| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:211:9:221:9 | {...} | true | +| cflow.cs:221:18:221:29 | After access to property Length | cflow.cs:221:33:221:34 | 10 | | +| cflow.cs:221:18:221:29 | Before access to property Length | cflow.cs:221:18:221:22 | Before access to field Field | | +| cflow.cs:221:18:221:29 | access to property Length | cflow.cs:221:18:221:29 | After access to property Length | | +| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | After ... < ... [false] | false | +| cflow.cs:221:18:221:34 | ... < ... | cflow.cs:221:18:221:34 | After ... < ... [true] | true | +| cflow.cs:221:18:221:34 | After ... < ... [false] | cflow.cs:210:9:221:36 | After do ... while (...); | | +| cflow.cs:221:18:221:34 | After ... < ... [true] | cflow.cs:211:9:221:9 | {...} | | +| cflow.cs:221:18:221:34 | Before ... < ... | cflow.cs:221:18:221:29 | Before access to property Length | | | cflow.cs:221:33:221:34 | 10 | cflow.cs:221:18:221:34 | ... < ... | | -| cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:225:5:238:5 | {...} | | -| cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | exit Foreach | | -| cflow.cs:225:5:238:5 | {...} | cflow.cs:226:57:226:59 | "a" | | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:224:10:224:16 | exit Foreach (normal) | empty | -| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:22:226:22 | String x | non-empty | +| cflow.cs:224:10:224:16 | Entry | cflow.cs:225:5:238:5 | {...} | | +| cflow.cs:224:10:224:16 | Normal Exit | cflow.cs:224:10:224:16 | Exit | | +| cflow.cs:225:5:238:5 | After {...} | cflow.cs:224:10:224:16 | Normal Exit | | +| cflow.cs:225:5:238:5 | {...} | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | | +| cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | cflow.cs:225:5:238:5 | After {...} | | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | | +| cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | cflow.cs:226:22:226:22 | String x | | +| cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:27:226:64 | Before call to method Repeat | | | cflow.cs:226:22:226:22 | String x | cflow.cs:227:9:237:9 | {...} | | -| cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | | +| cflow.cs:226:27:226:64 | After call to method Repeat [empty] | cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | | +| cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | cflow.cs:226:22:226:22 | String x | | +| cflow.cs:226:27:226:64 | Before call to method Repeat | cflow.cs:226:57:226:59 | "a" | | +| cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:27:226:64 | After call to method Repeat [empty] | empty | +| cflow.cs:226:27:226:64 | call to method Repeat | cflow.cs:226:27:226:64 | After call to method Repeat [non-empty] | non-empty | | cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 | | | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat | | +| cflow.cs:227:9:237:9 | After {...} | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | | | cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; | | -| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x | | +| cflow.cs:228:13:228:17 | After access to field Field | cflow.cs:228:22:228:22 | access to local variable x | | +| cflow.cs:228:13:228:17 | Before access to field Field | cflow.cs:228:13:228:17 | this access | | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | After access to field Field | | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field | | -| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:229:13:232:13 | if (...) ... | | -| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access | | +| cflow.cs:228:13:228:22 | ... += ... | cflow.cs:228:13:228:22 | After ... += ... | | +| cflow.cs:228:13:228:22 | After ... += ... | cflow.cs:228:13:228:23 | After ...; | | +| cflow.cs:228:13:228:22 | Before ... += ... | cflow.cs:228:13:228:17 | Before access to field Field | | +| cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:22 | Before ... += ... | | +| cflow.cs:228:13:228:23 | After ...; | cflow.cs:229:13:232:13 | if (...) ... | | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... += ... | | -| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:229:17:229:21 | this access | | -| cflow.cs:229:17:229:21 | access to field Field | cflow.cs:229:17:229:28 | access to property Length | | +| cflow.cs:229:13:232:13 | After if (...) ... | cflow.cs:233:13:236:13 | if (...) ... | | +| cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:229:17:229:32 | Before ... > ... | | +| cflow.cs:229:17:229:21 | After access to field Field | cflow.cs:229:17:229:28 | access to property Length | | +| cflow.cs:229:17:229:21 | Before access to field Field | cflow.cs:229:17:229:21 | this access | | +| cflow.cs:229:17:229:21 | access to field Field | cflow.cs:229:17:229:21 | After access to field Field | | | cflow.cs:229:17:229:21 | this access | cflow.cs:229:17:229:21 | access to field Field | | -| cflow.cs:229:17:229:28 | access to property Length | cflow.cs:229:32:229:32 | 0 | | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:230:13:232:13 | {...} | true | -| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:233:13:236:13 | if (...) ... | false | +| cflow.cs:229:17:229:28 | After access to property Length | cflow.cs:229:32:229:32 | 0 | | +| cflow.cs:229:17:229:28 | Before access to property Length | cflow.cs:229:17:229:21 | Before access to field Field | | +| cflow.cs:229:17:229:28 | access to property Length | cflow.cs:229:17:229:28 | After access to property Length | | +| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | After ... > ... [false] | false | +| cflow.cs:229:17:229:32 | ... > ... | cflow.cs:229:17:229:32 | After ... > ... [true] | true | +| cflow.cs:229:17:229:32 | After ... > ... [false] | cflow.cs:229:13:232:13 | After if (...) ... | | +| cflow.cs:229:17:229:32 | After ... > ... [true] | cflow.cs:230:13:232:13 | {...} | | +| cflow.cs:229:17:229:32 | Before ... > ... | cflow.cs:229:17:229:28 | Before access to property Length | | | cflow.cs:229:32:229:32 | 0 | cflow.cs:229:17:229:32 | ... > ... | | -| cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | continue; | | -| cflow.cs:231:17:231:25 | continue; | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | continue | -| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:21 | this access | | -| cflow.cs:233:17:233:21 | access to field Field | cflow.cs:233:17:233:28 | access to property Length | | +| cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | Before continue; | | +| cflow.cs:231:17:231:25 | Before continue; | cflow.cs:231:17:231:25 | continue; | | +| cflow.cs:231:17:231:25 | continue; | cflow.cs:226:9:237:9 | [LoopHeader] foreach (... ... in ...) ... | continue | +| cflow.cs:233:13:236:13 | After if (...) ... | cflow.cs:227:9:237:9 | After {...} | | +| cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:32 | Before ... < ... | | +| cflow.cs:233:17:233:21 | After access to field Field | cflow.cs:233:17:233:28 | access to property Length | | +| cflow.cs:233:17:233:21 | Before access to field Field | cflow.cs:233:17:233:21 | this access | | +| cflow.cs:233:17:233:21 | access to field Field | cflow.cs:233:17:233:21 | After access to field Field | | | cflow.cs:233:17:233:21 | this access | cflow.cs:233:17:233:21 | access to field Field | | -| cflow.cs:233:17:233:28 | access to property Length | cflow.cs:233:32:233:32 | 0 | | -| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | false | -| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:234:13:236:13 | {...} | true | +| cflow.cs:233:17:233:28 | After access to property Length | cflow.cs:233:32:233:32 | 0 | | +| cflow.cs:233:17:233:28 | Before access to property Length | cflow.cs:233:17:233:21 | Before access to field Field | | +| cflow.cs:233:17:233:28 | access to property Length | cflow.cs:233:17:233:28 | After access to property Length | | +| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | After ... < ... [false] | false | +| cflow.cs:233:17:233:32 | ... < ... | cflow.cs:233:17:233:32 | After ... < ... [true] | true | +| cflow.cs:233:17:233:32 | After ... < ... [false] | cflow.cs:233:13:236:13 | After if (...) ... | | +| cflow.cs:233:17:233:32 | After ... < ... [true] | cflow.cs:234:13:236:13 | {...} | | +| cflow.cs:233:17:233:32 | Before ... < ... | cflow.cs:233:17:233:28 | Before access to property Length | | | cflow.cs:233:32:233:32 | 0 | cflow.cs:233:17:233:32 | ... < ... | | -| cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | break; | | -| cflow.cs:235:17:235:22 | break; | cflow.cs:224:10:224:16 | exit Foreach (normal) | break | -| cflow.cs:240:10:240:13 | enter Goto | cflow.cs:241:5:259:5 | {...} | | -| cflow.cs:240:10:240:13 | exit Goto (normal) | cflow.cs:240:10:240:13 | exit Goto | | +| cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | Before break; | | +| cflow.cs:235:17:235:22 | Before break; | cflow.cs:235:17:235:22 | break; | | +| cflow.cs:235:17:235:22 | break; | cflow.cs:226:9:237:9 | After foreach (... ... in ...) ... | break | +| cflow.cs:240:10:240:13 | Entry | cflow.cs:241:5:259:5 | {...} | | +| cflow.cs:240:10:240:13 | Normal Exit | cflow.cs:240:10:240:13 | Exit | | +| cflow.cs:241:5:259:5 | After {...} | cflow.cs:240:10:240:13 | Normal Exit | | | cflow.cs:241:5:259:5 | {...} | cflow.cs:242:5:242:9 | Label: | | | cflow.cs:242:5:242:9 | Label: | cflow.cs:242:12:242:41 | if (...) ... | | -| cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:19:242:23 | this access | | -| cflow.cs:242:16:242:36 | [false] !... | cflow.cs:244:9:244:41 | if (...) ... | false | -| cflow.cs:242:16:242:36 | [true] !... | cflow.cs:242:39:242:41 | {...} | true | -| cflow.cs:242:17:242:36 | [false] !... | cflow.cs:242:16:242:36 | [true] !... | false | -| cflow.cs:242:17:242:36 | [true] !... | cflow.cs:242:16:242:36 | [false] !... | true | -| cflow.cs:242:19:242:23 | access to field Field | cflow.cs:242:19:242:30 | access to property Length | | +| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:9:244:41 | if (...) ... | | +| cflow.cs:242:12:242:41 | if (...) ... | cflow.cs:242:16:242:36 | !... | | +| cflow.cs:242:16:242:36 | !... | cflow.cs:242:17:242:36 | !... | | +| cflow.cs:242:16:242:36 | After !... [false] | cflow.cs:242:12:242:41 | After if (...) ... | | +| cflow.cs:242:16:242:36 | After !... [true] | cflow.cs:242:39:242:41 | {...} | | +| cflow.cs:242:17:242:36 | !... | cflow.cs:242:19:242:35 | Before ... == ... | | +| cflow.cs:242:17:242:36 | After !... [false] | cflow.cs:242:16:242:36 | After !... [true] | true | +| cflow.cs:242:17:242:36 | After !... [true] | cflow.cs:242:16:242:36 | After !... [false] | false | +| cflow.cs:242:19:242:23 | After access to field Field | cflow.cs:242:19:242:30 | access to property Length | | +| cflow.cs:242:19:242:23 | Before access to field Field | cflow.cs:242:19:242:23 | this access | | +| cflow.cs:242:19:242:23 | access to field Field | cflow.cs:242:19:242:23 | After access to field Field | | | cflow.cs:242:19:242:23 | this access | cflow.cs:242:19:242:23 | access to field Field | | -| cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:35:242:35 | 0 | | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:17:242:36 | [false] !... | true | -| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:17:242:36 | [true] !... | false | +| cflow.cs:242:19:242:30 | After access to property Length | cflow.cs:242:35:242:35 | 0 | | +| cflow.cs:242:19:242:30 | Before access to property Length | cflow.cs:242:19:242:23 | Before access to field Field | | +| cflow.cs:242:19:242:30 | access to property Length | cflow.cs:242:19:242:30 | After access to property Length | | +| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | After ... == ... [false] | false | +| cflow.cs:242:19:242:35 | ... == ... | cflow.cs:242:19:242:35 | After ... == ... [true] | true | +| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:242:17:242:36 | After !... [true] | true | +| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:242:17:242:36 | After !... [false] | false | +| cflow.cs:242:19:242:35 | Before ... == ... | cflow.cs:242:19:242:30 | Before access to property Length | | | cflow.cs:242:35:242:35 | 0 | cflow.cs:242:19:242:35 | ... == ... | | -| cflow.cs:242:39:242:41 | {...} | cflow.cs:244:9:244:41 | if (...) ... | | -| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:13:244:17 | this access | | -| cflow.cs:244:13:244:17 | access to field Field | cflow.cs:244:13:244:24 | access to property Length | | +| cflow.cs:242:39:242:41 | {...} | cflow.cs:242:12:242:41 | After if (...) ... | | +| cflow.cs:244:9:244:41 | After if (...) ... | cflow.cs:246:9:258:9 | switch (...) {...} | | +| cflow.cs:244:9:244:41 | if (...) ... | cflow.cs:244:13:244:28 | Before ... > ... | | +| cflow.cs:244:13:244:17 | After access to field Field | cflow.cs:244:13:244:24 | access to property Length | | +| cflow.cs:244:13:244:17 | Before access to field Field | cflow.cs:244:13:244:17 | this access | | +| cflow.cs:244:13:244:17 | access to field Field | cflow.cs:244:13:244:17 | After access to field Field | | | cflow.cs:244:13:244:17 | this access | cflow.cs:244:13:244:17 | access to field Field | | -| cflow.cs:244:13:244:24 | access to property Length | cflow.cs:244:28:244:28 | 0 | | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:31:244:41 | goto ...; | true | -| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:246:9:258:9 | switch (...) {...} | false | +| cflow.cs:244:13:244:24 | After access to property Length | cflow.cs:244:28:244:28 | 0 | | +| cflow.cs:244:13:244:24 | Before access to property Length | cflow.cs:244:13:244:17 | Before access to field Field | | +| cflow.cs:244:13:244:24 | access to property Length | cflow.cs:244:13:244:24 | After access to property Length | | +| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | After ... > ... [false] | false | +| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:13:244:28 | After ... > ... [true] | true | +| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:244:9:244:41 | After if (...) ... | | +| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:244:31:244:41 | Before goto ...; | | +| cflow.cs:244:13:244:28 | Before ... > ... | cflow.cs:244:13:244:24 | Before access to property Length | | | cflow.cs:244:28:244:28 | 0 | cflow.cs:244:13:244:28 | ... > ... | | +| cflow.cs:244:31:244:41 | Before goto ...; | cflow.cs:244:31:244:41 | goto ...; | | | cflow.cs:244:31:244:41 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto | -| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:17:246:21 | this access | | -| cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:28 | access to property Length | | +| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:241:5:259:5 | After {...} | | +| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:17:246:32 | Before ... + ... | | +| cflow.cs:246:17:246:21 | After access to field Field | cflow.cs:246:17:246:28 | access to property Length | | +| cflow.cs:246:17:246:21 | Before access to field Field | cflow.cs:246:17:246:21 | this access | | +| cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:21 | After access to field Field | | | cflow.cs:246:17:246:21 | this access | cflow.cs:246:17:246:21 | access to field Field | | -| cflow.cs:246:17:246:28 | access to property Length | cflow.cs:246:32:246:32 | 3 | | -| cflow.cs:246:17:246:32 | ... + ... | cflow.cs:248:13:248:19 | case ...: | | +| cflow.cs:246:17:246:28 | After access to property Length | cflow.cs:246:32:246:32 | 3 | | +| cflow.cs:246:17:246:28 | Before access to property Length | cflow.cs:246:17:246:21 | Before access to field Field | | +| cflow.cs:246:17:246:28 | access to property Length | cflow.cs:246:17:246:28 | After access to property Length | | +| cflow.cs:246:17:246:32 | ... + ... | cflow.cs:246:17:246:32 | After ... + ... | | +| cflow.cs:246:17:246:32 | After ... + ... | cflow.cs:248:13:248:19 | case ...: | | +| cflow.cs:246:17:246:32 | Before ... + ... | cflow.cs:246:17:246:28 | Before access to property Length | | | cflow.cs:246:32:246:32 | 3 | cflow.cs:246:17:246:32 | ... + ... | | -| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:18:248:18 | 0 | | -| cflow.cs:248:18:248:18 | 0 | cflow.cs:249:17:249:29 | goto default; | match | -| cflow.cs:248:18:248:18 | 0 | cflow.cs:250:13:250:19 | case ...: | no-match | -| cflow.cs:249:17:249:29 | goto default; | cflow.cs:255:13:255:20 | default: | goto | -| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:18:250:18 | 1 | | -| cflow.cs:250:18:250:18 | 1 | cflow.cs:251:17:251:37 | ...; | match | -| cflow.cs:250:18:250:18 | 1 | cflow.cs:253:13:253:19 | case ...: | no-match | -| cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:252:17:252:22 | break; | | -| cflow.cs:251:17:251:37 | ...; | cflow.cs:251:35:251:35 | 1 | | +| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:248:18:248:18 | 0 | | +| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | case ...: | | +| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:13:248:19 | After case ...: [match] | match | +| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:13:248:19 | After case ...: [no-match] | no-match | +| cflow.cs:248:18:248:18 | 0 | cflow.cs:249:17:249:29 | Before goto default; | | +| cflow.cs:249:17:249:29 | Before goto default; | cflow.cs:249:17:249:29 | goto default; | | +| cflow.cs:249:17:249:29 | goto default; | cflow.cs:255:13:255:20 | After default: [match] | goto | +| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:250:18:250:18 | 1 | | +| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | case ...: | | +| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | After case ...: [match] | match | +| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | After case ...: [no-match] | no-match | +| cflow.cs:250:18:250:18 | 1 | cflow.cs:251:17:251:37 | ...; | | +| cflow.cs:251:17:251:36 | After call to method WriteLine | cflow.cs:251:17:251:37 | After ...; | | +| cflow.cs:251:17:251:36 | Before call to method WriteLine | cflow.cs:251:35:251:35 | 1 | | +| cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:251:17:251:36 | After call to method WriteLine | | +| cflow.cs:251:17:251:37 | ...; | cflow.cs:251:17:251:36 | Before call to method WriteLine | | +| cflow.cs:251:17:251:37 | After ...; | cflow.cs:252:17:252:22 | Before break; | | | cflow.cs:251:35:251:35 | 1 | cflow.cs:251:17:251:36 | call to method WriteLine | | -| cflow.cs:252:17:252:22 | break; | cflow.cs:240:10:240:13 | exit Goto (normal) | break | -| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:18:253:18 | 2 | | -| cflow.cs:253:18:253:18 | 2 | cflow.cs:254:17:254:27 | goto ...; | match | -| cflow.cs:253:18:253:18 | 2 | cflow.cs:255:13:255:20 | default: | no-match | +| cflow.cs:252:17:252:22 | Before break; | cflow.cs:252:17:252:22 | break; | | +| cflow.cs:252:17:252:22 | break; | cflow.cs:246:9:258:9 | After switch (...) {...} | break | +| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:253:18:253:18 | 2 | | +| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:255:13:255:20 | default: | | +| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | After case ...: [match] | match | +| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | After case ...: [no-match] | no-match | +| cflow.cs:253:18:253:18 | 2 | cflow.cs:254:17:254:27 | Before goto ...; | | +| cflow.cs:254:17:254:27 | Before goto ...; | cflow.cs:254:17:254:27 | goto ...; | | | cflow.cs:254:17:254:27 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto | -| cflow.cs:255:13:255:20 | default: | cflow.cs:256:17:256:37 | ...; | | -| cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:257:17:257:22 | break; | | -| cflow.cs:256:17:256:37 | ...; | cflow.cs:256:35:256:35 | 0 | | +| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:256:17:256:37 | ...; | | +| cflow.cs:255:13:255:20 | default: | cflow.cs:255:13:255:20 | After default: [match] | match | +| cflow.cs:256:17:256:36 | After call to method WriteLine | cflow.cs:256:17:256:37 | After ...; | | +| cflow.cs:256:17:256:36 | Before call to method WriteLine | cflow.cs:256:35:256:35 | 0 | | +| cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:256:17:256:36 | After call to method WriteLine | | +| cflow.cs:256:17:256:37 | ...; | cflow.cs:256:17:256:36 | Before call to method WriteLine | | +| cflow.cs:256:17:256:37 | After ...; | cflow.cs:257:17:257:22 | Before break; | | | cflow.cs:256:35:256:35 | 0 | cflow.cs:256:17:256:36 | call to method WriteLine | | -| cflow.cs:257:17:257:22 | break; | cflow.cs:240:10:240:13 | exit Goto (normal) | break | -| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:262:5:277:5 | {...} | | -| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield | | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield | | -| cflow.cs:262:5:277:5 | {...} | cflow.cs:263:22:263:22 | 0 | | -| cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:264:9:267:9 | for (...;...;...) ... | | +| cflow.cs:257:17:257:22 | Before break; | cflow.cs:257:17:257:22 | break; | | +| cflow.cs:257:17:257:22 | break; | cflow.cs:246:9:258:9 | After switch (...) {...} | break | +| cflow.cs:261:49:261:53 | Entry | cflow.cs:262:5:277:5 | {...} | | +| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Exit | | +| cflow.cs:261:49:261:53 | Normal Exit | cflow.cs:261:49:261:53 | Exit | | +| cflow.cs:262:5:277:5 | After {...} | cflow.cs:261:49:261:53 | Normal Exit | | +| cflow.cs:262:5:277:5 | {...} | cflow.cs:263:9:263:23 | Before yield return ...; | | +| cflow.cs:263:9:263:23 | After yield return ...; | cflow.cs:264:9:267:9 | for (...;...;...) ... | | +| cflow.cs:263:9:263:23 | Before yield return ...; | cflow.cs:263:22:263:22 | 0 | | +| cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:263:9:263:23 | After yield return ...; | | | cflow.cs:263:22:263:22 | 0 | cflow.cs:263:9:263:23 | yield return ...; | | -| cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:264:22:264:22 | 1 | | -| cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:25:264:25 | access to local variable i | | +| cflow.cs:264:9:267:9 | After for (...;...;...) ... | cflow.cs:268:9:276:9 | try {...} ... | | +| cflow.cs:264:9:267:9 | [LoopHeader] for (...;...;...) ... | cflow.cs:264:33:264:35 | Before ...++ | | +| cflow.cs:264:9:267:9 | for (...;...;...) ... | cflow.cs:264:18:264:22 | Before Int32 i = ... | | +| cflow.cs:264:18:264:18 | access to local variable i | cflow.cs:264:22:264:22 | 1 | | +| cflow.cs:264:18:264:22 | After Int32 i = ... | cflow.cs:264:25:264:30 | Before ... < ... | | +| cflow.cs:264:18:264:22 | Before Int32 i = ... | cflow.cs:264:18:264:18 | access to local variable i | | +| cflow.cs:264:18:264:22 | Int32 i = ... | cflow.cs:264:18:264:22 | After Int32 i = ... | | | cflow.cs:264:22:264:22 | 1 | cflow.cs:264:18:264:22 | Int32 i = ... | | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:29:264:30 | 10 | | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:265:9:267:9 | {...} | true | -| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:268:9:276:9 | try {...} ... | false | +| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | After ... < ... [false] | false | +| cflow.cs:264:25:264:30 | ... < ... | cflow.cs:264:25:264:30 | After ... < ... [true] | true | +| cflow.cs:264:25:264:30 | After ... < ... [false] | cflow.cs:264:9:267:9 | After for (...;...;...) ... | | +| cflow.cs:264:25:264:30 | After ... < ... [true] | cflow.cs:265:9:267:9 | {...} | | +| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:264:25:264:25 | access to local variable i | | | cflow.cs:264:29:264:30 | 10 | cflow.cs:264:25:264:30 | ... < ... | | | cflow.cs:264:33:264:33 | access to local variable i | cflow.cs:264:33:264:35 | ...++ | | -| cflow.cs:264:33:264:35 | ...++ | cflow.cs:264:25:264:25 | access to local variable i | | -| cflow.cs:265:9:267:9 | {...} | cflow.cs:266:26:266:26 | access to local variable i | | -| cflow.cs:266:13:266:27 | yield return ...; | cflow.cs:264:33:264:33 | access to local variable i | | +| cflow.cs:264:33:264:35 | ...++ | cflow.cs:264:33:264:35 | After ...++ | | +| cflow.cs:264:33:264:35 | After ...++ | cflow.cs:264:25:264:30 | Before ... < ... | | +| cflow.cs:264:33:264:35 | Before ...++ | cflow.cs:264:33:264:33 | access to local variable i | | +| cflow.cs:265:9:267:9 | After {...} | cflow.cs:264:9:267:9 | [LoopHeader] for (...;...;...) ... | | +| cflow.cs:265:9:267:9 | {...} | cflow.cs:266:13:266:27 | Before yield return ...; | | +| cflow.cs:266:13:266:27 | After yield return ...; | cflow.cs:265:9:267:9 | After {...} | | +| cflow.cs:266:13:266:27 | Before yield return ...; | cflow.cs:266:26:266:26 | access to local variable i | | +| cflow.cs:266:13:266:27 | yield return ...; | cflow.cs:266:13:266:27 | After yield return ...; | | | cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:266:13:266:27 | yield return ...; | | +| cflow.cs:268:9:276:9 | After try {...} ... | cflow.cs:262:5:277:5 | After {...} | | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:269:9:272:9 | {...} | | -| cflow.cs:269:9:272:9 | {...} | cflow.cs:270:13:270:24 | yield break; | | +| cflow.cs:269:9:272:9 | {...} | cflow.cs:270:13:270:24 | Before yield break; | | +| cflow.cs:270:13:270:24 | Before yield break; | cflow.cs:270:13:270:24 | yield break; | | | cflow.cs:270:13:270:24 | yield break; | cflow.cs:274:9:276:9 | {...} | return | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:261:49:261:53 | Exceptional Exit | exception | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:261:49:261:53 | Normal Exit | return | +| cflow.cs:274:9:276:9 | After {...} | cflow.cs:268:9:276:9 | After try {...} ... | | | cflow.cs:274:9:276:9 | {...} | cflow.cs:275:13:275:42 | ...; | | -| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (abnormal) | exception | -| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | , return | -| cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | | +| cflow.cs:275:13:275:41 | After call to method WriteLine | cflow.cs:275:13:275:42 | After ...; | | +| cflow.cs:275:13:275:41 | Before call to method WriteLine | cflow.cs:275:31:275:40 | "not dead" | | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:13:275:41 | After call to method WriteLine | | +| cflow.cs:275:13:275:42 | ...; | cflow.cs:275:13:275:41 | Before call to method WriteLine | | +| cflow.cs:275:13:275:42 | After ...; | cflow.cs:274:9:276:9 | After {...} | | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | | -| 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 | After call to method | cflow.cs:282:24:282:27 | Before call to constructor ControlFlow | | +| cflow.cs:282:5:282:18 | Before call to method | cflow.cs:282:5:282:18 | this access | | +| cflow.cs:282:5:282:18 | Entry | cflow.cs:282:5:282:18 | Before call to method | | +| cflow.cs:282:5:282:18 | Normal Exit | cflow.cs:282:5:282:18 | Exit | | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | After call to method | | | 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 | | -| cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | cflow.cs:284:5:284:18 | exit ControlFlowSub | | -| cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:39:284:41 | {...} | | -| cflow.cs:284:39:284:41 | {...} | cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | | -| cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:34:286:34 | access to parameter i | | -| cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | cflow.cs:286:5:286:18 | exit ControlFlowSub | | -| cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:48:286:50 | {...} | | +| cflow.cs:282:24:282:27 | After call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | | +| cflow.cs:282:24:282:27 | Before call to constructor ControlFlow | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | +| cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:24:282:27 | After call to constructor ControlFlow | | +| cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | Normal Exit | | +| cflow.cs:284:5:284:18 | Entry | cflow.cs:284:32:284:35 | Before call to constructor ControlFlowSub | | +| cflow.cs:284:5:284:18 | Normal Exit | cflow.cs:284:5:284:18 | Exit | | +| cflow.cs:284:32:284:35 | After call to constructor ControlFlowSub | cflow.cs:284:39:284:41 | {...} | | +| cflow.cs:284:32:284:35 | Before call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | | +| cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | After call to constructor ControlFlowSub | | +| cflow.cs:284:39:284:41 | {...} | cflow.cs:284:5:284:18 | Normal Exit | | +| cflow.cs:286:5:286:18 | Entry | cflow.cs:286:29:286:32 | Before call to constructor ControlFlowSub | | +| cflow.cs:286:5:286:18 | Normal Exit | cflow.cs:286:5:286:18 | Exit | | +| cflow.cs:286:29:286:32 | After call to constructor ControlFlowSub | cflow.cs:286:48:286:50 | {...} | | +| cflow.cs:286:29:286:32 | Before call to constructor ControlFlowSub | cflow.cs:286:34:286:45 | Before call to method ToString | | +| cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | cflow.cs:286:29:286:32 | After call to constructor ControlFlowSub | | | cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:34:286:45 | call to method ToString | | -| 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 | 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:286:34:286:45 | After call to method ToString | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | | +| cflow.cs:286:34:286:45 | Before call to method ToString | cflow.cs:286:34:286:34 | access to parameter i | | +| cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:45 | After call to method ToString | | +| cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | Normal Exit | | +| cflow.cs:289:7:289:18 | After call to constructor Object | cflow.cs:289:7:289:18 | {...} | | +| cflow.cs:289:7:289:18 | After call to method | cflow.cs:289:7:289:18 | Before call to constructor Object | | +| cflow.cs:289:7:289:18 | Before call to constructor Object | cflow.cs:289:7:289:18 | call to constructor Object | | +| cflow.cs:289:7:289:18 | Before call to method | cflow.cs:289:7:289:18 | this access | | +| cflow.cs:289:7:289:18 | Entry | cflow.cs:289:7:289:18 | Before call to method | | +| cflow.cs:289:7:289:18 | Normal Exit | cflow.cs:289:7:289:18 | Exit | | +| cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | After call to constructor Object | | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | After call to method | | | 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 | | +| cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | Normal Exit | | +| cflow.cs:291:12:291:12 | Entry | cflow.cs:291:38:291:41 | Before delegate call | | +| cflow.cs:291:12:291:12 | Normal Exit | cflow.cs:291:12:291:12 | Exit | | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:40:291:40 | 0 | | -| cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | exit M (normal) | | +| cflow.cs:291:38:291:41 | After delegate call | cflow.cs:291:12:291:12 | Normal Exit | | +| cflow.cs:291:38:291:41 | Before delegate call | cflow.cs:291:38:291:38 | access to parameter f | | +| cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:38:291:41 | After delegate call | | | 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 | 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 | After call to constructor Object | cflow.cs:296:52:296:54 | {...} | | +| cflow.cs:296:5:296:25 | After call to method | cflow.cs:296:5:296:25 | Before call to constructor Object | | +| cflow.cs:296:5:296:25 | Before call to constructor Object | cflow.cs:296:5:296:25 | call to constructor Object | | +| cflow.cs:296:5:296:25 | Before call to method | cflow.cs:296:5:296:25 | this access | | +| cflow.cs:296:5:296:25 | Entry | cflow.cs:296:5:296:25 | Before call to method | | +| cflow.cs:296:5:296:25 | Normal Exit | cflow.cs:296:5:296:25 | Exit | | +| cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | After call to constructor Object | | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | After call to method | | | 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 | | +| cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | Normal Exit | | +| cflow.cs:298:10:298:10 | Entry | cflow.cs:299:5:301:5 | {...} | | +| cflow.cs:298:10:298:10 | Normal Exit | cflow.cs:298:10:298:10 | Exit | | +| cflow.cs:299:5:301:5 | After {...} | cflow.cs:298:10:298:10 | Normal Exit | | | cflow.cs:299:5:301:5 | {...} | cflow.cs:300:9:300:73 | ...; | | -| cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:298:10:298:10 | exit M (normal) | | -| cflow.cs:300:9:300:73 | ...; | cflow.cs:300:38:300:38 | 0 | | -| cflow.cs:300:38:300:38 | 0 | cflow.cs:300:46:300:46 | access to parameter i | | -| cflow.cs:300:44:300:51 | [false] !... | cflow.cs:300:44:300:64 | ... && ... | false | -| cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:56:300:56 | access to parameter s | true | -| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:70:300:71 | "" | | +| cflow.cs:300:9:300:72 | After object creation of type NegationInConstructor | cflow.cs:300:9:300:73 | After ...; | | +| cflow.cs:300:9:300:72 | Before object creation of type NegationInConstructor | cflow.cs:300:38:300:38 | 0 | | +| cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:9:300:72 | After object creation of type NegationInConstructor | | +| cflow.cs:300:9:300:73 | ...; | cflow.cs:300:9:300:72 | Before object creation of type NegationInConstructor | | +| cflow.cs:300:9:300:73 | After ...; | cflow.cs:299:5:301:5 | After {...} | | +| cflow.cs:300:38:300:38 | 0 | cflow.cs:300:44:300:64 | ... && ... | | +| cflow.cs:300:44:300:51 | !... | cflow.cs:300:46:300:50 | Before ... > ... | | +| cflow.cs:300:44:300:51 | After !... [false] | cflow.cs:300:44:300:64 | After ... && ... | | +| cflow.cs:300:44:300:51 | After !... [true] | cflow.cs:300:56:300:64 | Before ... != ... | | +| cflow.cs:300:44:300:64 | ... && ... | cflow.cs:300:44:300:51 | !... | | +| cflow.cs:300:44:300:64 | After ... && ... | cflow.cs:300:70:300:71 | "" | | | cflow.cs:300:46:300:46 | access to parameter i | cflow.cs:300:50:300:50 | 0 | | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:44:300:51 | [false] !... | true | -| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:44:300:51 | [true] !... | false | +| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | After ... > ... [false] | false | +| cflow.cs:300:46:300:50 | ... > ... | cflow.cs:300:46:300:50 | After ... > ... [true] | true | +| cflow.cs:300:46:300:50 | After ... > ... [false] | cflow.cs:300:44:300:51 | After !... [true] | true | +| cflow.cs:300:46:300:50 | After ... > ... [true] | cflow.cs:300:44:300:51 | After !... [false] | false | +| cflow.cs:300:46:300:50 | Before ... > ... | cflow.cs:300:46:300:46 | access to parameter i | | | cflow.cs:300:50:300:50 | 0 | cflow.cs:300:46:300:50 | ... > ... | | | cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:61:300:64 | null | | -| cflow.cs:300:56:300:64 | ... != ... | cflow.cs:300:44:300:64 | ... && ... | | +| cflow.cs:300:56:300:64 | ... != ... | cflow.cs:300:56:300:64 | After ... != ... | | +| cflow.cs:300:56:300:64 | After ... != ... | cflow.cs:300:44:300:64 | After ... && ... | | +| cflow.cs:300:56:300:64 | Before ... != ... | cflow.cs:300:56:300:56 | access to parameter s | | | 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 | 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 | After call to constructor Object | cflow.cs:304:7:304:18 | {...} | | +| cflow.cs:304:7:304:18 | After call to method | cflow.cs:304:7:304:18 | Before call to constructor Object | | +| cflow.cs:304:7:304:18 | Before call to constructor Object | cflow.cs:304:7:304:18 | call to constructor Object | | +| cflow.cs:304:7:304:18 | Before call to method | cflow.cs:304:7:304:18 | this access | | +| cflow.cs:304:7:304:18 | Entry | cflow.cs:304:7:304:18 | Before call to method | | +| cflow.cs:304:7:304:18 | Normal Exit | cflow.cs:304:7:304:18 | Exit | | +| cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | After call to constructor Object | | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | After call to method | | | 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 | {...} | | -| cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | (...) => ... | | -| cflow.cs:306:60:310:5 | exit (...) => ... (normal) | cflow.cs:306:60:310:5 | exit (...) => ... | | -| cflow.cs:306:60:310:5 | exit get__getter (normal) | cflow.cs:306:60:310:5 | exit get__getter | | +| cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | Normal Exit | | +| cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | Normal Exit | | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:306:60:310:5 | (...) => ... | | +| cflow.cs:306:60:310:5 | Entry | cflow.cs:307:5:310:5 | {...} | | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:306:60:310:5 | Exit | | +| cflow.cs:306:60:310:5 | Normal Exit | cflow.cs:306:60:310:5 | Exit | | | cflow.cs:307:5:310:5 | {...} | cflow.cs:308:9:308:21 | ... ...; | | -| cflow.cs:308:9:308:21 | ... ...; | cflow.cs:308:20:308:20 | access to parameter o | | -| cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:309:16:309:16 | access to local variable x | | +| cflow.cs:308:9:308:21 | ... ...; | cflow.cs:308:16:308:20 | Before Object x = ... | | +| cflow.cs:308:9:308:21 | After ... ...; | cflow.cs:309:9:309:17 | Before return ...; | | +| cflow.cs:308:16:308:16 | access to local variable x | cflow.cs:308:20:308:20 | access to parameter o | | +| cflow.cs:308:16:308:20 | After Object x = ... | cflow.cs:308:9:308:21 | After ... ...; | | +| cflow.cs:308:16:308:20 | Before Object x = ... | cflow.cs:308:16:308:16 | access to local variable x | | +| cflow.cs:308:16:308:20 | Object x = ... | cflow.cs:308:16:308:20 | After Object x = ... | | | cflow.cs:308:20:308:20 | access to parameter o | cflow.cs:308:16:308:20 | Object x = ... | | -| cflow.cs:309:9:309:17 | return ...; | cflow.cs:306:60:310:5 | exit (...) => ... (normal) | return | +| cflow.cs:309:9:309:17 | Before return ...; | cflow.cs:309:16:309:16 | access to local variable x | | +| cflow.cs:309:9:309:17 | return ...; | cflow.cs:306:60:310:5 | Normal Exit | return | | cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:309:9:309:17 | return ...; | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index d76f989e5cf..896b4cb0613 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -1,4 +1,3 @@ -| 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 +11,6 @@ | 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 | 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 | 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,40 +25,28 @@ | 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 | 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 | {...} | | Assignments.cs:27:10:27:23 | SetParamSingle | Assignments.cs:28:5:30:5 | {...} | | Assignments.cs:32:10:32:22 | SetParamMulti | Assignments.cs:33:5:36:5 | {...} | | Assignments.cs:38:10:38:11 | M2 | Assignments.cs:39:5:45:5 | {...} | -| BreakInTry.cs:1:7:1:16 | BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:3:10:3:11 | M1 | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:20:10:20:11 | M2 | BreakInTry.cs:21:5:36:5 | {...} | | 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 | 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 | 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 | 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 | -| ConditionalAccess.cs:9:9:9:10 | M4 | ConditionalAccess.cs:9:25:9:25 | access to parameter s | +| ConditionalAccess.cs:9:9:9:10 | M4 | ConditionalAccess.cs:9:25:9:38 | ... ?? ... | | ConditionalAccess.cs:11:9:11:10 | M5 | ConditionalAccess.cs:12:5:17:5 | {...} | -| ConditionalAccess.cs:19:12:19:13 | M6 | ConditionalAccess.cs:19:40:19:41 | access to parameter s1 | | ConditionalAccess.cs:21:10:21:11 | M7 | ConditionalAccess.cs:22:5:26:5 | {...} | -| ConditionalAccess.cs:30:10:30:12 | Out | ConditionalAccess.cs:30:32:30:32 | 0 | | ConditionalAccess.cs:32:10:32:11 | M8 | ConditionalAccess.cs:33:5:36:5 | {...} | | ConditionalAccess.cs:42:9:42:11 | get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | | ConditionalAccess.cs:43:9:43:11 | set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | | ConditionalAccess.cs:46:10:46:11 | M9 | ConditionalAccess.cs:47:5:55:5 | {...} | -| ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | -| Conditions.cs:1:7:1:16 | Conditions | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:3:10:3:19 | IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:11:9:11:10 | M1 | Conditions.cs:12:5:20:5 | {...} | | Conditions.cs:22:9:22:10 | M2 | Conditions.cs:23:5:31:5 | {...} | @@ -78,7 +59,6 @@ | 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 | 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 | {...} | @@ -90,7 +70,6 @@ | ExitMethods.cs:66:17:66:26 | ErrorMaybe | ExitMethods.cs:67:5:70:5 | {...} | | ExitMethods.cs:72:17:72:27 | ErrorAlways | ExitMethods.cs:73:5:78:5 | {...} | | ExitMethods.cs:80:17:80:28 | ErrorAlways2 | ExitMethods.cs:81:5:83:5 | {...} | -| ExitMethods.cs:85:17:85:28 | ErrorAlways3 | ExitMethods.cs:85:41:85:55 | object creation of type Exception | | ExitMethods.cs:87:10:87:13 | Exit | ExitMethods.cs:88:5:90:5 | {...} | | ExitMethods.cs:92:10:92:18 | ExitInTry | ExitMethods.cs:93:5:103:5 | {...} | | ExitMethods.cs:105:10:105:24 | ApplicationExit | ExitMethods.cs:106:5:108:5 | {...} | @@ -98,14 +77,11 @@ | ExitMethods.cs:115:16:115:34 | ExtensionMethodCall | ExitMethods.cs:116:5:118:5 | {...} | | ExitMethods.cs:120:17:120:32 | FailingAssertion | ExitMethods.cs:121:5:124:5 | {...} | | ExitMethods.cs:126:17:126:33 | FailingAssertion2 | ExitMethods.cs:127:5:130:5 | {...} | -| ExitMethods.cs:132:10:132:20 | AssertFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | | ExitMethods.cs:134:17:134:33 | FailingAssertion3 | ExitMethods.cs:135:5:138:5 | {...} | | ExitMethods.cs:140:17:140:42 | ExceptionDispatchInfoThrow | ExitMethods.cs:141:5:147:5 | {...} | | Extensions.cs:5:23:5:29 | ToInt32 | Extensions.cs:6:5:8:5 | {...} | | 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 | 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 | {...} | @@ -114,36 +90,19 @@ | 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 | 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 | 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 | 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 | | 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 | 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 | 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 | {...} | @@ -155,20 +114,13 @@ | 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 | 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 | {...} | | MultiImplementationA.cs:7:21:7:23 | get_P2 | MultiImplementationB.cs:4:25:4:37 | {...} | | MultiImplementationA.cs:7:41:7:43 | set_P2 | MultiImplementationA.cs:7:45:7:59 | {...} | | 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 | {...} | | MultiImplementationA.cs:15:36:15:38 | get_Item | MultiImplementationB.cs:13:40:13:54 | {...} | | MultiImplementationA.cs:15:54:15:56 | set_Item | MultiImplementationA.cs:15:58:15:60 | {...} | @@ -176,53 +128,32 @@ | 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 | 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 | 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 | 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 | 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:3:9:3:10 | M1 | NullCoalescing.cs:3:23:3:28 | ... ?? ... | +| NullCoalescing.cs:5:9:5:10 | M2 | NullCoalescing.cs:5:24:5:43 | ... ? ... : ... | +| NullCoalescing.cs:7:12:7:13 | M3 | NullCoalescing.cs:7:40:7:53 | ... ?? ... | +| NullCoalescing.cs:9:12:9:13 | M4 | NullCoalescing.cs:9:36:9:58 | ... ?? ... | +| NullCoalescing.cs:11:9:11:10 | M5 | NullCoalescing.cs:11:43:11:68 | ... ? ... : ... | | NullCoalescing.cs:13:10:13:11 | M6 | NullCoalescing.cs:14:5:18:5 | {...} | -| 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 | -| Patterns.cs:53:24:53:25 | M4 | Patterns.cs:54:9:54:9 | access to parameter c | +| Patterns.cs:50:24:50:25 | M3 | Patterns.cs:51:9:51:39 | ... ? ... : ... | | Patterns.cs:56:26:56:27 | M5 | Patterns.cs:57:5:63:5 | {...} | | Patterns.cs:65:26:65:27 | M6 | Patterns.cs:66:5:72:5 | {...} | | Patterns.cs:74:26:74:27 | M7 | Patterns.cs:75:5:83:5 | {...} | -| 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:85:26:85:27 | M8 | Patterns.cs:85:39:85:69 | ... ? ... : ... | +| Patterns.cs:87:26:87:27 | M9 | Patterns.cs:87:39:87:70 | ... ? ... : ... | | 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 | 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 | 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 | 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 | {...} | @@ -232,7 +163,6 @@ | Switch.cs:77:10:77:11 | M7 | Switch.cs:78:5:89:5 | {...} | | Switch.cs:91:10:91:11 | M8 | Switch.cs:92:5:99:5 | {...} | | Switch.cs:101:9:101:10 | M9 | Switch.cs:102:5:109:5 | {...} | -| Switch.cs:111:17:111:21 | Throw | Switch.cs:111:34:111:48 | object creation of type Exception | | Switch.cs:113:9:113:11 | M10 | Switch.cs:114:5:121:5 | {...} | | Switch.cs:123:10:123:12 | M11 | Switch.cs:124:5:127:5 | {...} | | Switch.cs:129:12:129:14 | M12 | Switch.cs:130:5:132:5 | {...} | @@ -240,13 +170,10 @@ | 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 | 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 | 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 | 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 | {...} | @@ -257,15 +184,11 @@ | 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 | 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 | {...} | | cflow.cs:144:33:144:35 | get_Item | cflow.cs:144:37:144:54 | {...} | | cflow.cs:144:56:144:58 | set_Item | cflow.cs:144:60:144:62 | {...} | | cflow.cs:146:10:146:12 | For | cflow.cs:147:5:177:5 | {...} | | cflow.cs:179:10:179:16 | Lambdas | cflow.cs:180:5:183:5 | {...} | -| cflow.cs:181:28:181:37 | (...) => ... | cflow.cs:181:33:181:33 | access to parameter x | | cflow.cs:182:28:182:61 | delegate(...) { ... } | cflow.cs:182:45:182:61 | {...} | | cflow.cs:185:10:185:18 | LogicalOr | cflow.cs:186:5:191:5 | {...} | | cflow.cs:193:10:193:17 | Booleans | cflow.cs:194:5:206:5 | {...} | @@ -273,13 +196,6 @@ | 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: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 | 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 | 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 | 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/csharp7/IsFlow.expected b/csharp/ql/test/library-tests/csharp7/IsFlow.expected index ce37b655bb8..b7bd4981019 100644 --- a/csharp/ql/test/library-tests/csharp7/IsFlow.expected +++ b/csharp/ql/test/library-tests/csharp7/IsFlow.expected @@ -1,79 +1,151 @@ -| CSharp7.cs:230:10:230:13 | exit Test (normal) | CSharp7.cs:230:10:230:13 | exit Test | semmle.label | successor | +| CSharp7.cs:230:10:230:13 | Normal Exit | CSharp7.cs:230:10:230:13 | Exit | semmle.label | successor | +| CSharp7.cs:231:5:275:5 | After {...} | CSharp7.cs:230:10:230:13 | Normal Exit | semmle.label | successor | +| CSharp7.cs:248:9:274:9 | After switch (...) {...} | CSharp7.cs:231:5:275:5 | After {...} | semmle.label | successor | | CSharp7.cs:248:9:274:9 | switch (...) {...} | CSharp7.cs:248:17:248:17 | access to local variable o | semmle.label | successor | | CSharp7.cs:248:17:248:17 | access to local variable o | CSharp7.cs:250:13:250:23 | case ...: | semmle.label | successor | -| CSharp7.cs:250:13:250:23 | case ...: | CSharp7.cs:250:18:250:22 | "xyz" | semmle.label | successor | -| CSharp7.cs:250:18:250:22 | "xyz" | CSharp7.cs:251:17:251:22 | break; | semmle.label | match | -| CSharp7.cs:250:18:250:22 | "xyz" | CSharp7.cs:252:13:252:31 | case ...: | semmle.label | no-match | -| CSharp7.cs:251:17:251:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:252:13:252:31 | case ...: | CSharp7.cs:252:18:252:19 | "" | semmle.label | successor | -| CSharp7.cs:252:18:252:19 | "" | CSharp7.cs:252:26:252:26 | 1 | semmle.label | match | -| CSharp7.cs:252:18:252:19 | "" | CSharp7.cs:254:13:254:41 | case ...: | semmle.label | no-match | +| CSharp7.cs:250:13:250:23 | After case ...: [match] | CSharp7.cs:250:18:250:22 | "xyz" | semmle.label | successor | +| CSharp7.cs:250:13:250:23 | After case ...: [no-match] | CSharp7.cs:252:13:252:31 | case ...: | semmle.label | successor | +| CSharp7.cs:250:13:250:23 | case ...: | CSharp7.cs:250:13:250:23 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:250:13:250:23 | case ...: | CSharp7.cs:250:13:250:23 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:250:18:250:22 | "xyz" | CSharp7.cs:251:17:251:22 | Before break; | semmle.label | successor | +| CSharp7.cs:251:17:251:22 | Before break; | CSharp7.cs:251:17:251:22 | break; | semmle.label | successor | +| CSharp7.cs:251:17:251:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:252:13:252:31 | After case ...: [match] | CSharp7.cs:252:18:252:19 | "" | semmle.label | successor | +| CSharp7.cs:252:13:252:31 | After case ...: [no-match] | CSharp7.cs:254:13:254:41 | case ...: | semmle.label | successor | +| CSharp7.cs:252:13:252:31 | case ...: | CSharp7.cs:252:13:252:31 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:252:13:252:31 | case ...: | CSharp7.cs:252:13:252:31 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:252:18:252:19 | "" | CSharp7.cs:252:26:252:30 | Before ... < ... | semmle.label | successor | | CSharp7.cs:252:26:252:26 | 1 | CSharp7.cs:252:30:252:30 | 2 | semmle.label | successor | -| CSharp7.cs:252:26:252:30 | ... < ... | CSharp7.cs:253:17:253:22 | break; | semmle.label | true | +| CSharp7.cs:252:26:252:30 | ... < ... | CSharp7.cs:252:26:252:30 | After ... < ... [false] | semmle.label | false | +| CSharp7.cs:252:26:252:30 | ... < ... | CSharp7.cs:252:26:252:30 | After ... < ... [true] | semmle.label | true | +| CSharp7.cs:252:26:252:30 | After ... < ... [false] | CSharp7.cs:254:13:254:41 | case ...: | semmle.label | successor | +| CSharp7.cs:252:26:252:30 | After ... < ... [true] | CSharp7.cs:253:17:253:22 | Before break; | semmle.label | successor | +| CSharp7.cs:252:26:252:30 | Before ... < ... | CSharp7.cs:252:26:252:26 | 1 | semmle.label | successor | | CSharp7.cs:252:30:252:30 | 2 | CSharp7.cs:252:26:252:30 | ... < ... | semmle.label | successor | -| CSharp7.cs:253:17:253:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:254:13:254:41 | case ...: | CSharp7.cs:254:18:254:20 | "x" | semmle.label | successor | -| CSharp7.cs:254:18:254:20 | "x" | CSharp7.cs:254:27:254:27 | access to local variable o | semmle.label | match | -| CSharp7.cs:254:18:254:20 | "x" | CSharp7.cs:257:13:257:36 | case ...: | semmle.label | no-match | -| CSharp7.cs:254:27:254:27 | access to local variable o | CSharp7.cs:254:32:254:40 | String s4 | semmle.label | successor | -| CSharp7.cs:254:27:254:40 | [false] ... is ... | CSharp7.cs:257:13:257:36 | case ...: | semmle.label | false | -| CSharp7.cs:254:27:254:40 | [true] ... is ... | CSharp7.cs:255:17:255:45 | ...; | semmle.label | true | -| CSharp7.cs:254:32:254:40 | String s4 | CSharp7.cs:254:27:254:40 | [false] ... is ... | semmle.label | no-match | -| CSharp7.cs:254:32:254:40 | String s4 | CSharp7.cs:254:27:254:40 | [true] ... is ... | semmle.label | match | -| CSharp7.cs:255:17:255:44 | call to method WriteLine | CSharp7.cs:256:17:256:22 | break; | semmle.label | successor | -| CSharp7.cs:255:17:255:45 | ...; | CSharp7.cs:255:37:255:38 | "x " | semmle.label | successor | -| CSharp7.cs:255:35:255:43 | $"..." | CSharp7.cs:255:17:255:44 | call to method WriteLine | semmle.label | successor | -| CSharp7.cs:255:37:255:38 | "x " | CSharp7.cs:255:40:255:41 | access to local variable s4 | semmle.label | successor | -| CSharp7.cs:255:39:255:42 | {...} | CSharp7.cs:255:35:255:43 | $"..." | semmle.label | successor | +| CSharp7.cs:253:17:253:22 | Before break; | CSharp7.cs:253:17:253:22 | break; | semmle.label | successor | +| CSharp7.cs:253:17:253:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:254:13:254:41 | After case ...: [match] | CSharp7.cs:254:18:254:20 | "x" | semmle.label | successor | +| CSharp7.cs:254:13:254:41 | After case ...: [no-match] | CSharp7.cs:257:13:257:36 | case ...: | semmle.label | successor | +| CSharp7.cs:254:13:254:41 | case ...: | CSharp7.cs:254:13:254:41 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:254:13:254:41 | case ...: | CSharp7.cs:254:13:254:41 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:254:18:254:20 | "x" | CSharp7.cs:254:27:254:40 | Before ... is ... | semmle.label | successor | +| CSharp7.cs:254:27:254:27 | access to local variable o | CSharp7.cs:254:27:254:40 | ... is ... | semmle.label | successor | +| CSharp7.cs:254:27:254:40 | ... is ... | CSharp7.cs:254:27:254:40 | After ... is ... [false] | semmle.label | false | +| CSharp7.cs:254:27:254:40 | ... is ... | CSharp7.cs:254:27:254:40 | [match-true] ... is ... | semmle.label | true | +| CSharp7.cs:254:27:254:40 | After ... is ... [false] | CSharp7.cs:257:13:257:36 | case ...: | semmle.label | successor | +| CSharp7.cs:254:27:254:40 | After ... is ... [true] | CSharp7.cs:255:17:255:45 | ...; | semmle.label | successor | +| CSharp7.cs:254:27:254:40 | Before ... is ... | CSharp7.cs:254:27:254:27 | access to local variable o | semmle.label | successor | +| CSharp7.cs:254:27:254:40 | [match-true] ... is ... | CSharp7.cs:254:32:254:40 | String s4 | semmle.label | successor | +| CSharp7.cs:254:32:254:40 | String s4 | CSharp7.cs:254:27:254:40 | After ... is ... [true] | semmle.label | true | +| CSharp7.cs:255:17:255:44 | After call to method WriteLine | CSharp7.cs:255:17:255:45 | After ...; | semmle.label | successor | +| CSharp7.cs:255:17:255:44 | Before call to method WriteLine | CSharp7.cs:255:35:255:43 | Before $"..." | semmle.label | successor | +| CSharp7.cs:255:17:255:44 | call to method WriteLine | CSharp7.cs:255:17:255:44 | After call to method WriteLine | semmle.label | successor | +| CSharp7.cs:255:17:255:45 | ...; | CSharp7.cs:255:17:255:44 | Before call to method WriteLine | semmle.label | successor | +| CSharp7.cs:255:17:255:45 | After ...; | CSharp7.cs:256:17:256:22 | Before break; | semmle.label | successor | +| CSharp7.cs:255:35:255:43 | $"..." | CSharp7.cs:255:35:255:43 | After $"..." | semmle.label | successor | +| CSharp7.cs:255:35:255:43 | After $"..." | CSharp7.cs:255:17:255:44 | call to method WriteLine | semmle.label | successor | +| CSharp7.cs:255:35:255:43 | Before $"..." | CSharp7.cs:255:37:255:38 | "x " | semmle.label | successor | +| CSharp7.cs:255:37:255:38 | "x " | CSharp7.cs:255:39:255:42 | Before {...} | semmle.label | successor | +| CSharp7.cs:255:39:255:42 | After {...} | CSharp7.cs:255:35:255:43 | $"..." | semmle.label | successor | +| CSharp7.cs:255:39:255:42 | Before {...} | CSharp7.cs:255:40:255:41 | access to local variable s4 | semmle.label | successor | +| CSharp7.cs:255:39:255:42 | {...} | CSharp7.cs:255:39:255:42 | After {...} | semmle.label | successor | | CSharp7.cs:255:40:255:41 | access to local variable s4 | CSharp7.cs:255:39:255:42 | {...} | semmle.label | successor | -| CSharp7.cs:256:17:256:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:257:13:257:36 | case ...: | CSharp7.cs:257:18:257:23 | Int32 i2 | semmle.label | successor | -| CSharp7.cs:257:18:257:23 | Int32 i2 | CSharp7.cs:257:30:257:31 | access to local variable i2 | semmle.label | match | -| CSharp7.cs:257:18:257:23 | Int32 i2 | CSharp7.cs:260:13:260:24 | case ...: | semmle.label | no-match | +| CSharp7.cs:256:17:256:22 | Before break; | CSharp7.cs:256:17:256:22 | break; | semmle.label | successor | +| CSharp7.cs:256:17:256:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:257:13:257:36 | After case ...: [match] | CSharp7.cs:257:18:257:23 | Int32 i2 | semmle.label | successor | +| CSharp7.cs:257:13:257:36 | After case ...: [no-match] | CSharp7.cs:260:13:260:24 | case ...: | semmle.label | successor | +| CSharp7.cs:257:13:257:36 | case ...: | CSharp7.cs:257:13:257:36 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:257:13:257:36 | case ...: | CSharp7.cs:257:13:257:36 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:257:18:257:23 | Int32 i2 | CSharp7.cs:257:30:257:35 | Before ... > ... | semmle.label | successor | | CSharp7.cs:257:30:257:31 | access to local variable i2 | CSharp7.cs:257:35:257:35 | 0 | semmle.label | successor | -| CSharp7.cs:257:30:257:35 | ... > ... | CSharp7.cs:258:17:258:52 | ...; | semmle.label | true | -| CSharp7.cs:257:30:257:35 | ... > ... | CSharp7.cs:260:13:260:24 | case ...: | semmle.label | false | +| CSharp7.cs:257:30:257:35 | ... > ... | CSharp7.cs:257:30:257:35 | After ... > ... [false] | semmle.label | false | +| CSharp7.cs:257:30:257:35 | ... > ... | CSharp7.cs:257:30:257:35 | After ... > ... [true] | semmle.label | true | +| CSharp7.cs:257:30:257:35 | After ... > ... [false] | CSharp7.cs:260:13:260:24 | case ...: | semmle.label | successor | +| CSharp7.cs:257:30:257:35 | After ... > ... [true] | CSharp7.cs:258:17:258:52 | ...; | semmle.label | successor | +| CSharp7.cs:257:30:257:35 | Before ... > ... | CSharp7.cs:257:30:257:31 | access to local variable i2 | semmle.label | successor | | CSharp7.cs:257:35:257:35 | 0 | CSharp7.cs:257:30:257:35 | ... > ... | semmle.label | successor | -| CSharp7.cs:258:17:258:51 | call to method WriteLine | CSharp7.cs:259:17:259:22 | break; | semmle.label | successor | -| CSharp7.cs:258:17:258:52 | ...; | CSharp7.cs:258:37:258:45 | "positive " | semmle.label | successor | -| CSharp7.cs:258:35:258:50 | $"..." | CSharp7.cs:258:17:258:51 | call to method WriteLine | semmle.label | successor | -| CSharp7.cs:258:37:258:45 | "positive " | CSharp7.cs:258:47:258:48 | access to local variable i2 | semmle.label | successor | -| CSharp7.cs:258:46:258:49 | {...} | CSharp7.cs:258:35:258:50 | $"..." | semmle.label | successor | +| CSharp7.cs:258:17:258:51 | After call to method WriteLine | CSharp7.cs:258:17:258:52 | After ...; | semmle.label | successor | +| CSharp7.cs:258:17:258:51 | Before call to method WriteLine | CSharp7.cs:258:35:258:50 | Before $"..." | semmle.label | successor | +| CSharp7.cs:258:17:258:51 | call to method WriteLine | CSharp7.cs:258:17:258:51 | After call to method WriteLine | semmle.label | successor | +| CSharp7.cs:258:17:258:52 | ...; | CSharp7.cs:258:17:258:51 | Before call to method WriteLine | semmle.label | successor | +| CSharp7.cs:258:17:258:52 | After ...; | CSharp7.cs:259:17:259:22 | Before break; | semmle.label | successor | +| CSharp7.cs:258:35:258:50 | $"..." | CSharp7.cs:258:35:258:50 | After $"..." | semmle.label | successor | +| CSharp7.cs:258:35:258:50 | After $"..." | CSharp7.cs:258:17:258:51 | call to method WriteLine | semmle.label | successor | +| CSharp7.cs:258:35:258:50 | Before $"..." | CSharp7.cs:258:37:258:45 | "positive " | semmle.label | successor | +| CSharp7.cs:258:37:258:45 | "positive " | CSharp7.cs:258:46:258:49 | Before {...} | semmle.label | successor | +| CSharp7.cs:258:46:258:49 | After {...} | CSharp7.cs:258:35:258:50 | $"..." | semmle.label | successor | +| CSharp7.cs:258:46:258:49 | Before {...} | CSharp7.cs:258:47:258:48 | access to local variable i2 | semmle.label | successor | +| CSharp7.cs:258:46:258:49 | {...} | CSharp7.cs:258:46:258:49 | After {...} | semmle.label | successor | | CSharp7.cs:258:47:258:48 | access to local variable i2 | CSharp7.cs:258:46:258:49 | {...} | semmle.label | successor | -| CSharp7.cs:259:17:259:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:260:13:260:24 | case ...: | CSharp7.cs:260:18:260:23 | Int32 i3 | semmle.label | successor | -| CSharp7.cs:260:18:260:23 | Int32 i3 | CSharp7.cs:261:17:261:47 | ...; | semmle.label | match | -| CSharp7.cs:260:18:260:23 | Int32 i3 | CSharp7.cs:263:13:263:27 | case ...: | semmle.label | no-match | -| CSharp7.cs:261:17:261:46 | call to method WriteLine | CSharp7.cs:262:17:262:22 | break; | semmle.label | successor | -| CSharp7.cs:261:17:261:47 | ...; | CSharp7.cs:261:37:261:40 | "int " | semmle.label | successor | -| CSharp7.cs:261:35:261:45 | $"..." | CSharp7.cs:261:17:261:46 | call to method WriteLine | semmle.label | successor | -| CSharp7.cs:261:37:261:40 | "int " | CSharp7.cs:261:42:261:43 | access to local variable i3 | semmle.label | successor | -| CSharp7.cs:261:41:261:44 | {...} | CSharp7.cs:261:35:261:45 | $"..." | semmle.label | successor | +| CSharp7.cs:259:17:259:22 | Before break; | CSharp7.cs:259:17:259:22 | break; | semmle.label | successor | +| CSharp7.cs:259:17:259:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:260:13:260:24 | After case ...: [match] | CSharp7.cs:260:18:260:23 | Int32 i3 | semmle.label | successor | +| CSharp7.cs:260:13:260:24 | After case ...: [no-match] | CSharp7.cs:263:13:263:27 | case ...: | semmle.label | successor | +| CSharp7.cs:260:13:260:24 | case ...: | CSharp7.cs:260:13:260:24 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:260:13:260:24 | case ...: | CSharp7.cs:260:13:260:24 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:260:18:260:23 | Int32 i3 | CSharp7.cs:261:17:261:47 | ...; | semmle.label | successor | +| CSharp7.cs:261:17:261:46 | After call to method WriteLine | CSharp7.cs:261:17:261:47 | After ...; | semmle.label | successor | +| CSharp7.cs:261:17:261:46 | Before call to method WriteLine | CSharp7.cs:261:35:261:45 | Before $"..." | semmle.label | successor | +| CSharp7.cs:261:17:261:46 | call to method WriteLine | CSharp7.cs:261:17:261:46 | After call to method WriteLine | semmle.label | successor | +| CSharp7.cs:261:17:261:47 | ...; | CSharp7.cs:261:17:261:46 | Before call to method WriteLine | semmle.label | successor | +| CSharp7.cs:261:17:261:47 | After ...; | CSharp7.cs:262:17:262:22 | Before break; | semmle.label | successor | +| CSharp7.cs:261:35:261:45 | $"..." | CSharp7.cs:261:35:261:45 | After $"..." | semmle.label | successor | +| CSharp7.cs:261:35:261:45 | After $"..." | CSharp7.cs:261:17:261:46 | call to method WriteLine | semmle.label | successor | +| CSharp7.cs:261:35:261:45 | Before $"..." | CSharp7.cs:261:37:261:40 | "int " | semmle.label | successor | +| CSharp7.cs:261:37:261:40 | "int " | CSharp7.cs:261:41:261:44 | Before {...} | semmle.label | successor | +| CSharp7.cs:261:41:261:44 | After {...} | CSharp7.cs:261:35:261:45 | $"..." | semmle.label | successor | +| CSharp7.cs:261:41:261:44 | Before {...} | CSharp7.cs:261:42:261:43 | access to local variable i3 | semmle.label | successor | +| CSharp7.cs:261:41:261:44 | {...} | CSharp7.cs:261:41:261:44 | After {...} | semmle.label | successor | | CSharp7.cs:261:42:261:43 | access to local variable i3 | CSharp7.cs:261:41:261:44 | {...} | semmle.label | successor | -| CSharp7.cs:262:17:262:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:263:13:263:27 | case ...: | CSharp7.cs:263:18:263:26 | String s2 | semmle.label | successor | -| CSharp7.cs:263:18:263:26 | String s2 | CSharp7.cs:264:17:264:50 | ...; | semmle.label | match | -| CSharp7.cs:263:18:263:26 | String s2 | CSharp7.cs:266:13:266:26 | case ...: | semmle.label | no-match | -| CSharp7.cs:264:17:264:49 | call to method WriteLine | CSharp7.cs:265:17:265:22 | break; | semmle.label | successor | -| CSharp7.cs:264:17:264:50 | ...; | CSharp7.cs:264:37:264:43 | "string " | semmle.label | successor | -| CSharp7.cs:264:35:264:48 | $"..." | CSharp7.cs:264:17:264:49 | call to method WriteLine | semmle.label | successor | -| CSharp7.cs:264:37:264:43 | "string " | CSharp7.cs:264:45:264:46 | access to local variable s2 | semmle.label | successor | -| CSharp7.cs:264:44:264:47 | {...} | CSharp7.cs:264:35:264:48 | $"..." | semmle.label | successor | +| CSharp7.cs:262:17:262:22 | Before break; | CSharp7.cs:262:17:262:22 | break; | semmle.label | successor | +| CSharp7.cs:262:17:262:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:263:13:263:27 | After case ...: [match] | CSharp7.cs:263:18:263:26 | String s2 | semmle.label | successor | +| CSharp7.cs:263:13:263:27 | After case ...: [no-match] | CSharp7.cs:266:13:266:26 | case ...: | semmle.label | successor | +| CSharp7.cs:263:13:263:27 | case ...: | CSharp7.cs:263:13:263:27 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:263:13:263:27 | case ...: | CSharp7.cs:263:13:263:27 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:263:18:263:26 | String s2 | CSharp7.cs:264:17:264:50 | ...; | semmle.label | successor | +| CSharp7.cs:264:17:264:49 | After call to method WriteLine | CSharp7.cs:264:17:264:50 | After ...; | semmle.label | successor | +| CSharp7.cs:264:17:264:49 | Before call to method WriteLine | CSharp7.cs:264:35:264:48 | Before $"..." | semmle.label | successor | +| CSharp7.cs:264:17:264:49 | call to method WriteLine | CSharp7.cs:264:17:264:49 | After call to method WriteLine | semmle.label | successor | +| CSharp7.cs:264:17:264:50 | ...; | CSharp7.cs:264:17:264:49 | Before call to method WriteLine | semmle.label | successor | +| CSharp7.cs:264:17:264:50 | After ...; | CSharp7.cs:265:17:265:22 | Before break; | semmle.label | successor | +| CSharp7.cs:264:35:264:48 | $"..." | CSharp7.cs:264:35:264:48 | After $"..." | semmle.label | successor | +| CSharp7.cs:264:35:264:48 | After $"..." | CSharp7.cs:264:17:264:49 | call to method WriteLine | semmle.label | successor | +| CSharp7.cs:264:35:264:48 | Before $"..." | CSharp7.cs:264:37:264:43 | "string " | semmle.label | successor | +| CSharp7.cs:264:37:264:43 | "string " | CSharp7.cs:264:44:264:47 | Before {...} | semmle.label | successor | +| CSharp7.cs:264:44:264:47 | After {...} | CSharp7.cs:264:35:264:48 | $"..." | semmle.label | successor | +| CSharp7.cs:264:44:264:47 | Before {...} | CSharp7.cs:264:45:264:46 | access to local variable s2 | semmle.label | successor | +| CSharp7.cs:264:44:264:47 | {...} | CSharp7.cs:264:44:264:47 | After {...} | semmle.label | successor | | CSharp7.cs:264:45:264:46 | access to local variable s2 | CSharp7.cs:264:44:264:47 | {...} | semmle.label | successor | -| CSharp7.cs:265:17:265:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:266:13:266:26 | case ...: | CSharp7.cs:266:18:266:23 | access to type Double | semmle.label | successor | -| CSharp7.cs:266:18:266:23 | access to type Double | CSharp7.cs:267:17:267:44 | ...; | semmle.label | match | -| CSharp7.cs:266:18:266:23 | access to type Double | CSharp7.cs:269:13:269:24 | case ...: | semmle.label | no-match | -| CSharp7.cs:267:17:267:43 | call to method WriteLine | CSharp7.cs:268:17:268:22 | break; | semmle.label | successor | -| CSharp7.cs:267:17:267:44 | ...; | CSharp7.cs:267:35:267:42 | "Double" | semmle.label | successor | +| CSharp7.cs:265:17:265:22 | Before break; | CSharp7.cs:265:17:265:22 | break; | semmle.label | successor | +| CSharp7.cs:265:17:265:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:266:13:266:26 | After case ...: [match] | CSharp7.cs:266:18:266:23 | access to type Double | semmle.label | successor | +| CSharp7.cs:266:13:266:26 | After case ...: [no-match] | CSharp7.cs:269:13:269:24 | case ...: | semmle.label | successor | +| CSharp7.cs:266:13:266:26 | case ...: | CSharp7.cs:266:13:266:26 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:266:13:266:26 | case ...: | CSharp7.cs:266:13:266:26 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:266:18:266:23 | access to type Double | CSharp7.cs:267:17:267:44 | ...; | semmle.label | successor | +| CSharp7.cs:267:17:267:43 | After call to method WriteLine | CSharp7.cs:267:17:267:44 | After ...; | semmle.label | successor | +| CSharp7.cs:267:17:267:43 | Before call to method WriteLine | CSharp7.cs:267:35:267:42 | "Double" | semmle.label | successor | +| CSharp7.cs:267:17:267:43 | call to method WriteLine | CSharp7.cs:267:17:267:43 | After call to method WriteLine | semmle.label | successor | +| CSharp7.cs:267:17:267:44 | ...; | CSharp7.cs:267:17:267:43 | Before call to method WriteLine | semmle.label | successor | +| CSharp7.cs:267:17:267:44 | After ...; | CSharp7.cs:268:17:268:22 | Before break; | semmle.label | successor | | CSharp7.cs:267:35:267:42 | "Double" | CSharp7.cs:267:17:267:43 | call to method WriteLine | semmle.label | successor | -| CSharp7.cs:268:17:268:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:269:13:269:24 | case ...: | CSharp7.cs:269:18:269:23 | Object v2 | semmle.label | successor | -| CSharp7.cs:269:18:269:23 | Object v2 | CSharp7.cs:270:17:270:22 | break; | semmle.label | match | -| CSharp7.cs:269:18:269:23 | Object v2 | CSharp7.cs:271:13:271:20 | default: | semmle.label | no-match | -| CSharp7.cs:270:17:270:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | -| CSharp7.cs:271:13:271:20 | default: | CSharp7.cs:272:17:272:52 | ...; | semmle.label | successor | -| CSharp7.cs:272:17:272:51 | call to method WriteLine | CSharp7.cs:273:17:273:22 | break; | semmle.label | successor | -| CSharp7.cs:272:17:272:52 | ...; | CSharp7.cs:272:35:272:50 | "Something else" | semmle.label | successor | +| CSharp7.cs:268:17:268:22 | Before break; | CSharp7.cs:268:17:268:22 | break; | semmle.label | successor | +| CSharp7.cs:268:17:268:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:269:13:269:24 | After case ...: [match] | CSharp7.cs:269:18:269:23 | Object v2 | semmle.label | successor | +| CSharp7.cs:269:13:269:24 | After case ...: [no-match] | CSharp7.cs:271:13:271:20 | default: | semmle.label | successor | +| CSharp7.cs:269:13:269:24 | case ...: | CSharp7.cs:269:13:269:24 | After case ...: [match] | semmle.label | match | +| CSharp7.cs:269:13:269:24 | case ...: | CSharp7.cs:269:13:269:24 | After case ...: [no-match] | semmle.label | no-match | +| CSharp7.cs:269:18:269:23 | Object v2 | CSharp7.cs:270:17:270:22 | Before break; | semmle.label | successor | +| CSharp7.cs:270:17:270:22 | Before break; | CSharp7.cs:270:17:270:22 | break; | semmle.label | successor | +| CSharp7.cs:270:17:270:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | +| CSharp7.cs:271:13:271:20 | After default: [match] | CSharp7.cs:272:17:272:52 | ...; | semmle.label | successor | +| CSharp7.cs:271:13:271:20 | default: | CSharp7.cs:271:13:271:20 | After default: [match] | semmle.label | match | +| CSharp7.cs:272:17:272:51 | After call to method WriteLine | CSharp7.cs:272:17:272:52 | After ...; | semmle.label | successor | +| CSharp7.cs:272:17:272:51 | Before call to method WriteLine | CSharp7.cs:272:35:272:50 | "Something else" | semmle.label | successor | +| CSharp7.cs:272:17:272:51 | call to method WriteLine | CSharp7.cs:272:17:272:51 | After call to method WriteLine | semmle.label | successor | +| CSharp7.cs:272:17:272:52 | ...; | CSharp7.cs:272:17:272:51 | Before call to method WriteLine | semmle.label | successor | +| CSharp7.cs:272:17:272:52 | After ...; | CSharp7.cs:273:17:273:22 | Before break; | semmle.label | successor | | CSharp7.cs:272:35:272:50 | "Something else" | CSharp7.cs:272:17:272:51 | call to method WriteLine | semmle.label | successor | -| CSharp7.cs:273:17:273:22 | break; | CSharp7.cs:230:10:230:13 | exit Test (normal) | semmle.label | break | +| CSharp7.cs:273:17:273:22 | Before break; | CSharp7.cs:273:17:273:22 | break; | semmle.label | successor | +| CSharp7.cs:273:17:273:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break | diff --git a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.expected b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.expected index b8d360d1608..fb61262d6f2 100644 --- a/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.expected +++ b/csharp/ql/test/library-tests/csharp8/NullCoalescingControlFlow.expected @@ -1,11 +1,21 @@ -| NullCoalescingAssignment.cs:5:10:5:23 | enter NullCoalescing | NullCoalescingAssignment.cs:6:5:9:5 | {...} | semmle.label | successor | -| NullCoalescingAssignment.cs:5:10:5:23 | exit NullCoalescing (normal) | NullCoalescingAssignment.cs:5:10:5:23 | exit NullCoalescing | semmle.label | successor | +| NullCoalescingAssignment.cs:5:10:5:23 | Entry | NullCoalescingAssignment.cs:6:5:9:5 | {...} | semmle.label | successor | +| NullCoalescingAssignment.cs:5:10:5:23 | Normal Exit | NullCoalescingAssignment.cs:5:10:5:23 | Exit | semmle.label | successor | +| NullCoalescingAssignment.cs:6:5:9:5 | After {...} | NullCoalescingAssignment.cs:5:10:5:23 | Normal Exit | semmle.label | successor | | NullCoalescingAssignment.cs:6:5:9:5 | {...} | NullCoalescingAssignment.cs:7:9:7:24 | ... ...; | semmle.label | successor | -| NullCoalescingAssignment.cs:7:9:7:24 | ... ...; | NullCoalescingAssignment.cs:7:20:7:23 | null | semmle.label | successor | -| NullCoalescingAssignment.cs:7:16:7:23 | Object o = ... | NullCoalescingAssignment.cs:8:9:8:19 | ...; | semmle.label | successor | +| NullCoalescingAssignment.cs:7:9:7:24 | ... ...; | NullCoalescingAssignment.cs:7:16:7:23 | Before Object o = ... | semmle.label | successor | +| NullCoalescingAssignment.cs:7:9:7:24 | After ... ...; | NullCoalescingAssignment.cs:8:9:8:19 | ...; | semmle.label | successor | +| NullCoalescingAssignment.cs:7:16:7:16 | access to local variable o | NullCoalescingAssignment.cs:7:20:7:23 | null | semmle.label | successor | +| NullCoalescingAssignment.cs:7:16:7:23 | After Object o = ... | NullCoalescingAssignment.cs:7:9:7:24 | After ... ...; | semmle.label | successor | +| NullCoalescingAssignment.cs:7:16:7:23 | Before Object o = ... | NullCoalescingAssignment.cs:7:16:7:16 | access to local variable o | semmle.label | successor | +| NullCoalescingAssignment.cs:7:16:7:23 | Object o = ... | NullCoalescingAssignment.cs:7:16:7:23 | After Object o = ... | semmle.label | successor | | NullCoalescingAssignment.cs:7:20:7:23 | null | NullCoalescingAssignment.cs:7:16:7:23 | Object o = ... | semmle.label | successor | -| NullCoalescingAssignment.cs:8:9:8:9 | access to local variable o | NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... | semmle.label | non-null | -| NullCoalescingAssignment.cs:8:9:8:9 | access to local variable o | NullCoalescingAssignment.cs:8:15:8:18 | this access | semmle.label | null | -| NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... | NullCoalescingAssignment.cs:5:10:5:23 | exit NullCoalescing (normal) | semmle.label | successor | -| NullCoalescingAssignment.cs:8:9:8:19 | ...; | NullCoalescingAssignment.cs:8:9:8:9 | access to local variable o | semmle.label | successor | +| NullCoalescingAssignment.cs:8:9:8:9 | After access to local variable o [non-null] | NullCoalescingAssignment.cs:8:9:8:18 | After ... ??= ... | semmle.label | successor | +| NullCoalescingAssignment.cs:8:9:8:9 | After access to local variable o [null] | NullCoalescingAssignment.cs:8:15:8:18 | this access | semmle.label | successor | +| NullCoalescingAssignment.cs:8:9:8:9 | access to local variable o | NullCoalescingAssignment.cs:8:9:8:9 | After access to local variable o [non-null] | semmle.label | non-null | +| NullCoalescingAssignment.cs:8:9:8:9 | access to local variable o | NullCoalescingAssignment.cs:8:9:8:9 | After access to local variable o [null] | semmle.label | null | +| NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... | NullCoalescingAssignment.cs:8:9:8:18 | After ... ??= ... | semmle.label | successor | +| NullCoalescingAssignment.cs:8:9:8:18 | After ... ??= ... | NullCoalescingAssignment.cs:8:9:8:19 | After ...; | semmle.label | successor | +| NullCoalescingAssignment.cs:8:9:8:18 | Before ... ??= ... | NullCoalescingAssignment.cs:8:9:8:9 | access to local variable o | semmle.label | successor | +| NullCoalescingAssignment.cs:8:9:8:19 | ...; | NullCoalescingAssignment.cs:8:9:8:18 | Before ... ??= ... | semmle.label | successor | +| NullCoalescingAssignment.cs:8:9:8:19 | After ...; | NullCoalescingAssignment.cs:6:5:9:5 | After {...} | semmle.label | successor | | NullCoalescingAssignment.cs:8:15:8:18 | this access | NullCoalescingAssignment.cs:8:9:8:18 | ... ??= ... | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected index fb2ca2f1759..6ab83277fcf 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected @@ -19,27 +19,54 @@ nullableDataFlow | NullableRefTypes.cs:88:13:88:13 | access to local variable x | NullableRefTypes.cs:88:13:88:14 | ...! | | NullableRefTypes.cs:88:13:88:14 | ...! | NullableRefTypes.cs:88:9:88:9 | access to local variable y | nullableControlFlow -| NullableRefTypes.cs:82:10:82:40 | enter TestSuppressNullableWarningExpr | NullableRefTypes.cs:83:5:89:5 | {...} | successor | -| NullableRefTypes.cs:82:10:82:40 | exit TestSuppressNullableWarningExpr (normal) | NullableRefTypes.cs:82:10:82:40 | exit TestSuppressNullableWarningExpr | successor | +| NullableRefTypes.cs:82:10:82:40 | Entry | NullableRefTypes.cs:83:5:89:5 | {...} | successor | +| NullableRefTypes.cs:82:10:82:40 | Normal Exit | NullableRefTypes.cs:82:10:82:40 | Exit | successor | +| NullableRefTypes.cs:83:5:89:5 | After {...} | NullableRefTypes.cs:82:10:82:40 | Normal Exit | successor | | NullableRefTypes.cs:83:5:89:5 | {...} | NullableRefTypes.cs:84:9:84:29 | ... ...; | successor | -| NullableRefTypes.cs:84:9:84:29 | ... ...; | NullableRefTypes.cs:84:21:84:28 | "source" | successor | -| NullableRefTypes.cs:84:17:84:28 | String x = ... | NullableRefTypes.cs:85:9:85:22 | ... ...; | successor | +| NullableRefTypes.cs:84:9:84:29 | ... ...; | NullableRefTypes.cs:84:17:84:28 | Before String x = ... | successor | +| NullableRefTypes.cs:84:9:84:29 | After ... ...; | NullableRefTypes.cs:85:9:85:22 | ... ...; | successor | +| NullableRefTypes.cs:84:17:84:17 | access to local variable x | NullableRefTypes.cs:84:21:84:28 | "source" | successor | +| NullableRefTypes.cs:84:17:84:28 | After String x = ... | NullableRefTypes.cs:84:9:84:29 | After ... ...; | successor | +| NullableRefTypes.cs:84:17:84:28 | Before String x = ... | NullableRefTypes.cs:84:17:84:17 | access to local variable x | successor | +| NullableRefTypes.cs:84:17:84:28 | String x = ... | NullableRefTypes.cs:84:17:84:28 | After String x = ... | successor | | NullableRefTypes.cs:84:21:84:28 | "source" | NullableRefTypes.cs:84:17:84:28 | String x = ... | successor | -| NullableRefTypes.cs:85:9:85:22 | ... ...; | NullableRefTypes.cs:85:20:85:20 | access to local variable x | successor | -| NullableRefTypes.cs:85:16:85:21 | String y = ... | NullableRefTypes.cs:86:9:86:15 | ...; | successor | +| NullableRefTypes.cs:85:9:85:22 | ... ...; | NullableRefTypes.cs:85:16:85:21 | Before String y = ... | successor | +| NullableRefTypes.cs:85:9:85:22 | After ... ...; | NullableRefTypes.cs:86:9:86:15 | ...; | successor | +| NullableRefTypes.cs:85:16:85:16 | access to local variable y | NullableRefTypes.cs:85:20:85:21 | Before ...! | successor | +| NullableRefTypes.cs:85:16:85:21 | After String y = ... | NullableRefTypes.cs:85:9:85:22 | After ... ...; | successor | +| NullableRefTypes.cs:85:16:85:21 | Before String y = ... | NullableRefTypes.cs:85:16:85:16 | access to local variable y | successor | +| NullableRefTypes.cs:85:16:85:21 | String y = ... | NullableRefTypes.cs:85:16:85:21 | After String y = ... | successor | | NullableRefTypes.cs:85:20:85:20 | access to local variable x | NullableRefTypes.cs:85:20:85:21 | ...! | successor | -| NullableRefTypes.cs:85:20:85:21 | ...! | NullableRefTypes.cs:85:16:85:21 | String y = ... | successor | -| NullableRefTypes.cs:86:9:86:14 | ... = ... | NullableRefTypes.cs:87:9:87:17 | ...; | successor | -| NullableRefTypes.cs:86:9:86:15 | ...; | NullableRefTypes.cs:86:13:86:13 | access to local variable x | successor | +| NullableRefTypes.cs:85:20:85:21 | ...! | NullableRefTypes.cs:85:20:85:21 | After ...! | successor | +| NullableRefTypes.cs:85:20:85:21 | After ...! | NullableRefTypes.cs:85:16:85:21 | String y = ... | successor | +| NullableRefTypes.cs:85:20:85:21 | Before ...! | NullableRefTypes.cs:85:20:85:20 | access to local variable x | successor | +| NullableRefTypes.cs:86:9:86:9 | access to local variable y | NullableRefTypes.cs:86:13:86:14 | Before ...! | successor | +| NullableRefTypes.cs:86:9:86:14 | ... = ... | NullableRefTypes.cs:86:9:86:14 | After ... = ... | successor | +| NullableRefTypes.cs:86:9:86:14 | After ... = ... | NullableRefTypes.cs:86:9:86:15 | After ...; | successor | +| NullableRefTypes.cs:86:9:86:14 | Before ... = ... | NullableRefTypes.cs:86:9:86:9 | access to local variable y | successor | +| NullableRefTypes.cs:86:9:86:15 | ...; | NullableRefTypes.cs:86:9:86:14 | Before ... = ... | successor | +| NullableRefTypes.cs:86:9:86:15 | After ...; | NullableRefTypes.cs:87:9:87:17 | ...; | successor | | NullableRefTypes.cs:86:13:86:13 | access to local variable x | NullableRefTypes.cs:86:13:86:14 | ...! | successor | -| NullableRefTypes.cs:86:13:86:14 | ...! | NullableRefTypes.cs:86:9:86:14 | ... = ... | successor | -| NullableRefTypes.cs:87:9:87:16 | ... = ... | NullableRefTypes.cs:88:9:88:15 | ...; | successor | -| NullableRefTypes.cs:87:9:87:17 | ...; | NullableRefTypes.cs:87:13:87:16 | null | successor | +| NullableRefTypes.cs:86:13:86:14 | ...! | NullableRefTypes.cs:86:13:86:14 | After ...! | successor | +| NullableRefTypes.cs:86:13:86:14 | After ...! | NullableRefTypes.cs:86:9:86:14 | ... = ... | successor | +| NullableRefTypes.cs:86:13:86:14 | Before ...! | NullableRefTypes.cs:86:13:86:13 | access to local variable x | successor | +| NullableRefTypes.cs:87:9:87:9 | access to local variable x | NullableRefTypes.cs:87:13:87:16 | null | successor | +| NullableRefTypes.cs:87:9:87:16 | ... = ... | NullableRefTypes.cs:87:9:87:16 | After ... = ... | successor | +| NullableRefTypes.cs:87:9:87:16 | After ... = ... | NullableRefTypes.cs:87:9:87:17 | After ...; | successor | +| NullableRefTypes.cs:87:9:87:16 | Before ... = ... | NullableRefTypes.cs:87:9:87:9 | access to local variable x | successor | +| NullableRefTypes.cs:87:9:87:17 | ...; | NullableRefTypes.cs:87:9:87:16 | Before ... = ... | successor | +| NullableRefTypes.cs:87:9:87:17 | After ...; | NullableRefTypes.cs:88:9:88:15 | ...; | successor | | NullableRefTypes.cs:87:13:87:16 | null | NullableRefTypes.cs:87:9:87:16 | ... = ... | successor | -| NullableRefTypes.cs:88:9:88:14 | ... = ... | NullableRefTypes.cs:82:10:82:40 | exit TestSuppressNullableWarningExpr (normal) | successor | -| NullableRefTypes.cs:88:9:88:15 | ...; | NullableRefTypes.cs:88:13:88:13 | access to local variable x | successor | +| NullableRefTypes.cs:88:9:88:9 | access to local variable y | NullableRefTypes.cs:88:13:88:14 | Before ...! | successor | +| NullableRefTypes.cs:88:9:88:14 | ... = ... | NullableRefTypes.cs:88:9:88:14 | After ... = ... | successor | +| NullableRefTypes.cs:88:9:88:14 | After ... = ... | NullableRefTypes.cs:88:9:88:15 | After ...; | successor | +| NullableRefTypes.cs:88:9:88:14 | Before ... = ... | NullableRefTypes.cs:88:9:88:9 | access to local variable y | successor | +| NullableRefTypes.cs:88:9:88:15 | ...; | NullableRefTypes.cs:88:9:88:14 | Before ... = ... | successor | +| NullableRefTypes.cs:88:9:88:15 | After ...; | NullableRefTypes.cs:83:5:89:5 | After {...} | successor | | NullableRefTypes.cs:88:13:88:13 | access to local variable x | NullableRefTypes.cs:88:13:88:14 | ...! | successor | -| NullableRefTypes.cs:88:13:88:14 | ...! | NullableRefTypes.cs:88:9:88:14 | ... = ... | successor | +| NullableRefTypes.cs:88:13:88:14 | ...! | NullableRefTypes.cs:88:13:88:14 | After ...! | successor | +| NullableRefTypes.cs:88:13:88:14 | After ...! | NullableRefTypes.cs:88:9:88:14 | ... = ... | successor | +| NullableRefTypes.cs:88:13:88:14 | Before ...! | NullableRefTypes.cs:88:13:88:13 | access to local variable x | successor | nonNullExpressions | NullableRefTypes.cs:84:21:84:28 | "source" | | NullableRefTypes.cs:85:20:85:20 | access to local variable x | diff --git a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.expected b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.expected index 465d64ab9c2..faa37734364 100644 --- a/csharp/ql/test/library-tests/csharp8/UsingControlFlow.expected +++ b/csharp/ql/test/library-tests/csharp8/UsingControlFlow.expected @@ -1,27 +1,53 @@ -| UsingDeclarations.cs:6:10:6:30 | enter TestUsingDeclarations | UsingDeclarations.cs:7:5:16:5 | {...} | semmle.label | successor | -| UsingDeclarations.cs:6:10:6:30 | exit TestUsingDeclarations (normal) | UsingDeclarations.cs:6:10:6:30 | exit TestUsingDeclarations | semmle.label | successor | +| UsingDeclarations.cs:6:10:6:30 | Entry | UsingDeclarations.cs:7:5:16:5 | {...} | semmle.label | successor | +| UsingDeclarations.cs:6:10:6:30 | Normal Exit | UsingDeclarations.cs:6:10:6:30 | Exit | semmle.label | successor | +| UsingDeclarations.cs:7:5:16:5 | After {...} | UsingDeclarations.cs:6:10:6:30 | Normal Exit | semmle.label | successor | | UsingDeclarations.cs:7:5:16:5 | {...} | UsingDeclarations.cs:8:9:8:116 | using ... ...; | semmle.label | successor | -| UsingDeclarations.cs:8:9:8:116 | using ... ...; | UsingDeclarations.cs:8:49:8:53 | "..." | semmle.label | successor | -| UsingDeclarations.cs:8:26:8:69 | FileStream file1 = ... | UsingDeclarations.cs:8:95:8:99 | "..." | semmle.label | successor | -| UsingDeclarations.cs:8:34:8:69 | object creation of type FileStream | UsingDeclarations.cs:8:26:8:69 | FileStream file1 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:9:8:116 | After using ... ...; | UsingDeclarations.cs:10:9:12:9 | using (...) {...} | semmle.label | successor | +| UsingDeclarations.cs:8:9:8:116 | using ... ...; | UsingDeclarations.cs:8:26:8:69 | Before FileStream file1 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:26:8:30 | access to local variable file1 | UsingDeclarations.cs:8:34:8:69 | Before object creation of type FileStream | semmle.label | successor | +| UsingDeclarations.cs:8:26:8:69 | After FileStream file1 = ... | UsingDeclarations.cs:8:72:8:115 | Before FileStream file2 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:26:8:69 | Before FileStream file1 = ... | UsingDeclarations.cs:8:26:8:30 | access to local variable file1 | semmle.label | successor | +| UsingDeclarations.cs:8:26:8:69 | FileStream file1 = ... | UsingDeclarations.cs:8:26:8:69 | After FileStream file1 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:34:8:69 | After object creation of type FileStream | UsingDeclarations.cs:8:26:8:69 | FileStream file1 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:34:8:69 | Before object creation of type FileStream | UsingDeclarations.cs:8:49:8:53 | "..." | semmle.label | successor | +| UsingDeclarations.cs:8:34:8:69 | object creation of type FileStream | UsingDeclarations.cs:8:34:8:69 | After object creation of type FileStream | semmle.label | successor | | UsingDeclarations.cs:8:49:8:53 | "..." | UsingDeclarations.cs:8:56:8:68 | access to constant Open | semmle.label | successor | | UsingDeclarations.cs:8:56:8:68 | access to constant Open | UsingDeclarations.cs:8:34:8:69 | object creation of type FileStream | semmle.label | successor | -| UsingDeclarations.cs:8:72:8:115 | FileStream file2 = ... | UsingDeclarations.cs:10:9:12:9 | using (...) {...} | semmle.label | successor | -| UsingDeclarations.cs:8:80:8:115 | object creation of type FileStream | UsingDeclarations.cs:8:72:8:115 | FileStream file2 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:72:8:76 | access to local variable file2 | UsingDeclarations.cs:8:80:8:115 | Before object creation of type FileStream | semmle.label | successor | +| UsingDeclarations.cs:8:72:8:115 | After FileStream file2 = ... | UsingDeclarations.cs:8:9:8:116 | After using ... ...; | semmle.label | successor | +| UsingDeclarations.cs:8:72:8:115 | Before FileStream file2 = ... | UsingDeclarations.cs:8:72:8:76 | access to local variable file2 | semmle.label | successor | +| UsingDeclarations.cs:8:72:8:115 | FileStream file2 = ... | UsingDeclarations.cs:8:72:8:115 | After FileStream file2 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:80:8:115 | After object creation of type FileStream | UsingDeclarations.cs:8:72:8:115 | FileStream file2 = ... | semmle.label | successor | +| UsingDeclarations.cs:8:80:8:115 | Before object creation of type FileStream | UsingDeclarations.cs:8:95:8:99 | "..." | semmle.label | successor | +| UsingDeclarations.cs:8:80:8:115 | object creation of type FileStream | UsingDeclarations.cs:8:80:8:115 | After object creation of type FileStream | semmle.label | successor | | UsingDeclarations.cs:8:95:8:99 | "..." | UsingDeclarations.cs:8:102:8:114 | access to constant Open | semmle.label | successor | | UsingDeclarations.cs:8:102:8:114 | access to constant Open | UsingDeclarations.cs:8:80:8:115 | object creation of type FileStream | semmle.label | successor | -| UsingDeclarations.cs:10:9:12:9 | using (...) {...} | UsingDeclarations.cs:10:49:10:53 | "..." | semmle.label | successor | -| UsingDeclarations.cs:10:26:10:69 | FileStream file3 = ... | UsingDeclarations.cs:10:95:10:99 | "..." | semmle.label | successor | -| UsingDeclarations.cs:10:34:10:69 | object creation of type FileStream | UsingDeclarations.cs:10:26:10:69 | FileStream file3 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:9:12:9 | After using (...) {...} | UsingDeclarations.cs:14:9:15:13 | using (...) {...} | semmle.label | successor | +| UsingDeclarations.cs:10:9:12:9 | using (...) {...} | UsingDeclarations.cs:10:26:10:69 | Before FileStream file3 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:26:10:30 | access to local variable file3 | UsingDeclarations.cs:10:34:10:69 | Before object creation of type FileStream | semmle.label | successor | +| UsingDeclarations.cs:10:26:10:69 | After FileStream file3 = ... | UsingDeclarations.cs:10:72:10:115 | Before FileStream file4 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:26:10:69 | Before FileStream file3 = ... | UsingDeclarations.cs:10:26:10:30 | access to local variable file3 | semmle.label | successor | +| UsingDeclarations.cs:10:26:10:69 | FileStream file3 = ... | UsingDeclarations.cs:10:26:10:69 | After FileStream file3 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:34:10:69 | After object creation of type FileStream | UsingDeclarations.cs:10:26:10:69 | FileStream file3 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:34:10:69 | Before object creation of type FileStream | UsingDeclarations.cs:10:49:10:53 | "..." | semmle.label | successor | +| UsingDeclarations.cs:10:34:10:69 | object creation of type FileStream | UsingDeclarations.cs:10:34:10:69 | After object creation of type FileStream | semmle.label | successor | | UsingDeclarations.cs:10:49:10:53 | "..." | UsingDeclarations.cs:10:56:10:68 | access to constant Open | semmle.label | successor | | UsingDeclarations.cs:10:56:10:68 | access to constant Open | UsingDeclarations.cs:10:34:10:69 | object creation of type FileStream | semmle.label | successor | -| UsingDeclarations.cs:10:72:10:115 | FileStream file4 = ... | UsingDeclarations.cs:11:9:12:9 | {...} | semmle.label | successor | -| UsingDeclarations.cs:10:80:10:115 | object creation of type FileStream | UsingDeclarations.cs:10:72:10:115 | FileStream file4 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:72:10:76 | access to local variable file4 | UsingDeclarations.cs:10:80:10:115 | Before object creation of type FileStream | semmle.label | successor | +| UsingDeclarations.cs:10:72:10:115 | After FileStream file4 = ... | UsingDeclarations.cs:11:9:12:9 | {...} | semmle.label | successor | +| UsingDeclarations.cs:10:72:10:115 | Before FileStream file4 = ... | UsingDeclarations.cs:10:72:10:76 | access to local variable file4 | semmle.label | successor | +| UsingDeclarations.cs:10:72:10:115 | FileStream file4 = ... | UsingDeclarations.cs:10:72:10:115 | After FileStream file4 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:80:10:115 | After object creation of type FileStream | UsingDeclarations.cs:10:72:10:115 | FileStream file4 = ... | semmle.label | successor | +| UsingDeclarations.cs:10:80:10:115 | Before object creation of type FileStream | UsingDeclarations.cs:10:95:10:99 | "..." | semmle.label | successor | +| UsingDeclarations.cs:10:80:10:115 | object creation of type FileStream | UsingDeclarations.cs:10:80:10:115 | After object creation of type FileStream | semmle.label | successor | | UsingDeclarations.cs:10:95:10:99 | "..." | UsingDeclarations.cs:10:102:10:114 | access to constant Open | semmle.label | successor | | UsingDeclarations.cs:10:102:10:114 | access to constant Open | UsingDeclarations.cs:10:80:10:115 | object creation of type FileStream | semmle.label | successor | -| UsingDeclarations.cs:11:9:12:9 | {...} | UsingDeclarations.cs:14:9:15:13 | using (...) {...} | semmle.label | successor | -| UsingDeclarations.cs:14:9:15:13 | using (...) {...} | UsingDeclarations.cs:14:30:14:34 | "..." | semmle.label | successor | -| UsingDeclarations.cs:14:15:14:50 | object creation of type FileStream | UsingDeclarations.cs:15:13:15:13 | ; | semmle.label | successor | +| UsingDeclarations.cs:11:9:12:9 | {...} | UsingDeclarations.cs:10:9:12:9 | After using (...) {...} | semmle.label | successor | +| UsingDeclarations.cs:14:9:15:13 | After using (...) {...} | UsingDeclarations.cs:7:5:16:5 | After {...} | semmle.label | successor | +| UsingDeclarations.cs:14:9:15:13 | using (...) {...} | UsingDeclarations.cs:14:15:14:50 | Before object creation of type FileStream | semmle.label | successor | +| UsingDeclarations.cs:14:15:14:50 | After object creation of type FileStream | UsingDeclarations.cs:15:13:15:13 | ; | semmle.label | successor | +| UsingDeclarations.cs:14:15:14:50 | Before object creation of type FileStream | UsingDeclarations.cs:14:30:14:34 | "..." | semmle.label | successor | +| UsingDeclarations.cs:14:15:14:50 | object creation of type FileStream | UsingDeclarations.cs:14:15:14:50 | After object creation of type FileStream | semmle.label | successor | | UsingDeclarations.cs:14:30:14:34 | "..." | UsingDeclarations.cs:14:37:14:49 | access to constant Open | semmle.label | successor | | UsingDeclarations.cs:14:37:14:49 | access to constant Open | UsingDeclarations.cs:14:15:14:50 | object creation of type FileStream | semmle.label | successor | -| UsingDeclarations.cs:15:13:15:13 | ; | UsingDeclarations.cs:6:10:6:30 | exit TestUsingDeclarations (normal) | semmle.label | successor | +| UsingDeclarations.cs:15:13:15:13 | ; | UsingDeclarations.cs:14:9:15:13 | After using (...) {...} | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected index f8d1de5d7e9..2ceca1d0387 100644 --- a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected +++ b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected @@ -1,93 +1,144 @@ -| patterns.cs:5:10:5:19 | enter IsPatterns | patterns.cs:6:5:30:5 | {...} | semmle.label | successor | -| patterns.cs:5:10:5:19 | exit IsPatterns (normal) | patterns.cs:5:10:5:19 | exit IsPatterns | semmle.label | successor | +| patterns.cs:5:10:5:19 | Entry | patterns.cs:6:5:30:5 | {...} | semmle.label | successor | +| patterns.cs:5:10:5:19 | Normal Exit | patterns.cs:5:10:5:19 | Exit | semmle.label | successor | +| patterns.cs:6:5:30:5 | After {...} | patterns.cs:5:10:5:19 | Normal Exit | semmle.label | successor | | patterns.cs:6:5:30:5 | {...} | patterns.cs:7:9:7:42 | ... ...; | semmle.label | successor | -| patterns.cs:7:9:7:42 | ... ...; | patterns.cs:7:20:7:41 | object creation of type MyStruct | semmle.label | successor | -| patterns.cs:7:16:7:41 | Object o = ... | patterns.cs:9:9:11:9 | if (...) ... | semmle.label | successor | -| patterns.cs:7:20:7:41 | (...) ... | patterns.cs:7:16:7:41 | Object o = ... | semmle.label | successor | -| patterns.cs:7:20:7:41 | object creation of type MyStruct | patterns.cs:7:39:7:39 | 2 | semmle.label | successor | -| patterns.cs:7:33:7:41 | { ..., ... } | patterns.cs:7:20:7:41 | (...) ... | semmle.label | successor | -| patterns.cs:7:35:7:35 | access to field X | patterns.cs:7:35:7:39 | ... = ... | semmle.label | successor | -| patterns.cs:7:35:7:39 | ... = ... | patterns.cs:7:33:7:41 | { ..., ... } | semmle.label | successor | -| patterns.cs:7:39:7:39 | 2 | patterns.cs:7:35:7:35 | access to field X | semmle.label | successor | -| patterns.cs:9:9:11:9 | if (...) ... | patterns.cs:9:13:9:13 | access to local variable o | semmle.label | successor | -| patterns.cs:9:13:9:13 | access to local variable o | patterns.cs:9:18:9:29 | MyStruct ms1 | semmle.label | successor | -| patterns.cs:9:13:9:29 | [false] ... is ... | patterns.cs:13:9:15:9 | if (...) ... | semmle.label | false | -| patterns.cs:9:13:9:29 | [true] ... is ... | patterns.cs:10:9:11:9 | {...} | semmle.label | true | -| patterns.cs:9:18:9:29 | MyStruct ms1 | patterns.cs:9:13:9:29 | [false] ... is ... | semmle.label | no-match | -| patterns.cs:9:18:9:29 | MyStruct ms1 | patterns.cs:9:13:9:29 | [true] ... is ... | semmle.label | match | -| patterns.cs:10:9:11:9 | {...} | patterns.cs:13:9:15:9 | if (...) ... | semmle.label | successor | -| patterns.cs:13:9:15:9 | if (...) ... | patterns.cs:13:13:13:13 | access to local variable o | semmle.label | successor | -| patterns.cs:13:13:13:13 | access to local variable o | patterns.cs:13:18:13:40 | MyStruct s | semmle.label | successor | -| patterns.cs:13:13:13:40 | [false] ... is ... | patterns.cs:13:13:13:47 | [false] ... && ... | semmle.label | false | -| patterns.cs:13:13:13:40 | [true] ... is ... | patterns.cs:13:45:13:45 | access to local variable x | semmle.label | true | -| patterns.cs:13:13:13:47 | [false] ... && ... | patterns.cs:13:13:13:56 | [false] ... && ... | semmle.label | false | -| patterns.cs:13:13:13:47 | [true] ... && ... | patterns.cs:13:52:13:52 | access to local variable s | semmle.label | true | -| patterns.cs:13:13:13:56 | [false] ... && ... | patterns.cs:17:9:19:9 | if (...) ... | semmle.label | false | -| patterns.cs:13:13:13:56 | [true] ... && ... | patterns.cs:14:9:15:9 | {...} | semmle.label | true | -| patterns.cs:13:18:13:40 | MyStruct s | patterns.cs:13:18:13:40 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:13:18:13:40 | MyStruct s | patterns.cs:13:32:13:36 | Int32 x | semmle.label | match | -| patterns.cs:13:18:13:40 | [match] { ... } | patterns.cs:13:13:13:40 | [true] ... is ... | semmle.label | match | -| patterns.cs:13:18:13:40 | [no-match] { ... } | patterns.cs:13:13:13:40 | [false] ... is ... | semmle.label | no-match | -| patterns.cs:13:27:13:38 | [match] { ... } | patterns.cs:13:18:13:40 | [match] { ... } | semmle.label | match | -| patterns.cs:13:27:13:38 | [no-match] { ... } | patterns.cs:13:18:13:40 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:13:32:13:36 | Int32 x | patterns.cs:13:27:13:38 | [match] { ... } | semmle.label | match | -| patterns.cs:13:32:13:36 | Int32 x | patterns.cs:13:27:13:38 | [no-match] { ... } | semmle.label | no-match | +| patterns.cs:7:9:7:42 | ... ...; | patterns.cs:7:16:7:41 | Before Object o = ... | semmle.label | successor | +| patterns.cs:7:9:7:42 | After ... ...; | patterns.cs:9:9:11:9 | if (...) ... | semmle.label | successor | +| patterns.cs:7:16:7:16 | access to local variable o | patterns.cs:7:20:7:41 | Before (...) ... | semmle.label | successor | +| patterns.cs:7:16:7:41 | After Object o = ... | patterns.cs:7:9:7:42 | After ... ...; | semmle.label | successor | +| patterns.cs:7:16:7:41 | Before Object o = ... | patterns.cs:7:16:7:16 | access to local variable o | semmle.label | successor | +| patterns.cs:7:16:7:41 | Object o = ... | patterns.cs:7:16:7:41 | After Object o = ... | semmle.label | successor | +| patterns.cs:7:20:7:41 | (...) ... | patterns.cs:7:20:7:41 | After (...) ... | semmle.label | successor | +| patterns.cs:7:20:7:41 | After (...) ... | patterns.cs:7:16:7:41 | Object o = ... | semmle.label | successor | +| patterns.cs:7:20:7:41 | After object creation of type MyStruct | patterns.cs:7:20:7:41 | (...) ... | semmle.label | successor | +| patterns.cs:7:20:7:41 | Before (...) ... | patterns.cs:7:20:7:41 | Before object creation of type MyStruct | semmle.label | successor | +| patterns.cs:7:20:7:41 | Before object creation of type MyStruct | patterns.cs:7:20:7:41 | object creation of type MyStruct | semmle.label | successor | +| patterns.cs:7:20:7:41 | object creation of type MyStruct | patterns.cs:7:33:7:41 | Before { ..., ... } | semmle.label | successor | +| patterns.cs:7:33:7:41 | After { ..., ... } | patterns.cs:7:20:7:41 | After object creation of type MyStruct | semmle.label | successor | +| patterns.cs:7:33:7:41 | Before { ..., ... } | patterns.cs:7:35:7:39 | Before ... = ... | semmle.label | successor | +| patterns.cs:7:33:7:41 | { ..., ... } | patterns.cs:7:33:7:41 | After { ..., ... } | semmle.label | successor | +| patterns.cs:7:35:7:35 | access to field X | patterns.cs:7:39:7:39 | 2 | semmle.label | successor | +| patterns.cs:7:35:7:39 | ... = ... | patterns.cs:7:35:7:39 | After ... = ... | semmle.label | successor | +| patterns.cs:7:35:7:39 | After ... = ... | patterns.cs:7:33:7:41 | { ..., ... } | semmle.label | successor | +| patterns.cs:7:35:7:39 | Before ... = ... | patterns.cs:7:35:7:35 | access to field X | semmle.label | successor | +| patterns.cs:7:39:7:39 | 2 | patterns.cs:7:35:7:39 | ... = ... | semmle.label | successor | +| patterns.cs:9:9:11:9 | After if (...) ... | patterns.cs:13:9:15:9 | if (...) ... | semmle.label | successor | +| patterns.cs:9:9:11:9 | if (...) ... | patterns.cs:9:13:9:29 | Before ... is ... | semmle.label | successor | +| patterns.cs:9:13:9:13 | access to local variable o | patterns.cs:9:13:9:29 | ... is ... | semmle.label | successor | +| patterns.cs:9:13:9:29 | ... is ... | patterns.cs:9:13:9:29 | After ... is ... [false] | semmle.label | false | +| patterns.cs:9:13:9:29 | ... is ... | patterns.cs:9:13:9:29 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:9:13:9:29 | After ... is ... [false] | patterns.cs:9:9:11:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:9:13:9:29 | After ... is ... [true] | patterns.cs:10:9:11:9 | {...} | semmle.label | successor | +| patterns.cs:9:13:9:29 | Before ... is ... | patterns.cs:9:13:9:13 | access to local variable o | semmle.label | successor | +| patterns.cs:9:13:9:29 | [match-true] ... is ... | patterns.cs:9:18:9:29 | MyStruct ms1 | semmle.label | successor | +| patterns.cs:9:18:9:29 | MyStruct ms1 | patterns.cs:9:13:9:29 | After ... is ... [true] | semmle.label | true | +| patterns.cs:10:9:11:9 | {...} | patterns.cs:9:9:11:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:13:9:15:9 | After if (...) ... | patterns.cs:17:9:19:9 | if (...) ... | semmle.label | successor | +| patterns.cs:13:9:15:9 | if (...) ... | patterns.cs:13:13:13:56 | ... && ... | semmle.label | successor | +| patterns.cs:13:13:13:13 | access to local variable o | patterns.cs:13:13:13:40 | ... is ... | semmle.label | successor | +| patterns.cs:13:13:13:40 | ... is ... | patterns.cs:13:13:13:40 | After ... is ... [false] | semmle.label | false | +| patterns.cs:13:13:13:40 | ... is ... | patterns.cs:13:13:13:40 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:13:13:13:40 | After ... is ... [false] | patterns.cs:13:13:13:47 | After ... && ... [false] | semmle.label | false | +| patterns.cs:13:13:13:40 | After ... is ... [true] | patterns.cs:13:45:13:47 | Before ... < ... | semmle.label | successor | +| patterns.cs:13:13:13:40 | Before ... is ... | patterns.cs:13:13:13:13 | access to local variable o | semmle.label | successor | +| patterns.cs:13:13:13:40 | [match-true] ... is ... | patterns.cs:13:18:13:40 | Before { ... } | semmle.label | successor | +| patterns.cs:13:13:13:47 | ... && ... | patterns.cs:13:13:13:40 | Before ... is ... | semmle.label | successor | +| patterns.cs:13:13:13:47 | After ... && ... [false] | patterns.cs:13:13:13:56 | After ... && ... [false] | semmle.label | false | +| patterns.cs:13:13:13:47 | After ... && ... [true] | patterns.cs:13:52:13:56 | Before ... < ... | semmle.label | successor | +| patterns.cs:13:13:13:56 | ... && ... | patterns.cs:13:13:13:47 | ... && ... | semmle.label | successor | +| patterns.cs:13:13:13:56 | After ... && ... [false] | patterns.cs:13:9:15:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:13:13:13:56 | After ... && ... [true] | patterns.cs:14:9:15:9 | {...} | semmle.label | successor | +| patterns.cs:13:18:13:25 | access to type MyStruct | patterns.cs:13:27:13:38 | Before { ... } | semmle.label | successor | +| patterns.cs:13:18:13:40 | After { ... } | patterns.cs:13:13:13:40 | After ... is ... [true] | semmle.label | true | +| patterns.cs:13:18:13:40 | Before { ... } | patterns.cs:13:18:13:40 | MyStruct s | semmle.label | successor | +| patterns.cs:13:18:13:40 | MyStruct s | patterns.cs:13:18:13:25 | access to type MyStruct | semmle.label | successor | +| patterns.cs:13:18:13:40 | { ... } | patterns.cs:13:18:13:40 | After { ... } | semmle.label | successor | +| patterns.cs:13:27:13:38 | After { ... } | patterns.cs:13:18:13:40 | { ... } | semmle.label | successor | +| patterns.cs:13:27:13:38 | Before { ... } | patterns.cs:13:32:13:36 | Int32 x | semmle.label | successor | +| patterns.cs:13:27:13:38 | { ... } | patterns.cs:13:27:13:38 | After { ... } | semmle.label | successor | +| patterns.cs:13:32:13:36 | Int32 x | patterns.cs:13:27:13:38 | { ... } | semmle.label | successor | | patterns.cs:13:45:13:45 | access to local variable x | patterns.cs:13:47:13:47 | 4 | semmle.label | successor | -| patterns.cs:13:45:13:47 | ... < ... | patterns.cs:13:13:13:47 | [false] ... && ... | semmle.label | false | -| patterns.cs:13:45:13:47 | ... < ... | patterns.cs:13:13:13:47 | [true] ... && ... | semmle.label | true | +| patterns.cs:13:45:13:47 | ... < ... | patterns.cs:13:45:13:47 | After ... < ... [false] | semmle.label | false | +| patterns.cs:13:45:13:47 | ... < ... | patterns.cs:13:45:13:47 | After ... < ... [true] | semmle.label | true | +| patterns.cs:13:45:13:47 | After ... < ... [false] | patterns.cs:13:13:13:47 | After ... && ... [false] | semmle.label | false | +| patterns.cs:13:45:13:47 | After ... < ... [true] | patterns.cs:13:13:13:47 | After ... && ... [true] | semmle.label | true | +| patterns.cs:13:45:13:47 | Before ... < ... | patterns.cs:13:45:13:45 | access to local variable x | semmle.label | successor | | patterns.cs:13:47:13:47 | 4 | patterns.cs:13:45:13:47 | ... < ... | semmle.label | successor | | patterns.cs:13:52:13:52 | access to local variable s | patterns.cs:13:52:13:54 | access to property Y | semmle.label | successor | -| patterns.cs:13:52:13:54 | access to property Y | patterns.cs:13:56:13:56 | 2 | semmle.label | successor | -| patterns.cs:13:52:13:56 | ... < ... | patterns.cs:13:13:13:56 | [false] ... && ... | semmle.label | false | -| patterns.cs:13:52:13:56 | ... < ... | patterns.cs:13:13:13:56 | [true] ... && ... | semmle.label | true | +| patterns.cs:13:52:13:54 | After access to property Y | patterns.cs:13:56:13:56 | 2 | semmle.label | successor | +| patterns.cs:13:52:13:54 | Before access to property Y | patterns.cs:13:52:13:52 | access to local variable s | semmle.label | successor | +| patterns.cs:13:52:13:54 | access to property Y | patterns.cs:13:52:13:54 | After access to property Y | semmle.label | successor | +| patterns.cs:13:52:13:56 | ... < ... | patterns.cs:13:52:13:56 | After ... < ... [false] | semmle.label | false | +| patterns.cs:13:52:13:56 | ... < ... | patterns.cs:13:52:13:56 | After ... < ... [true] | semmle.label | true | +| patterns.cs:13:52:13:56 | After ... < ... [false] | patterns.cs:13:13:13:56 | After ... && ... [false] | semmle.label | false | +| patterns.cs:13:52:13:56 | After ... < ... [true] | patterns.cs:13:13:13:56 | After ... && ... [true] | semmle.label | true | +| patterns.cs:13:52:13:56 | Before ... < ... | patterns.cs:13:52:13:54 | Before access to property Y | semmle.label | successor | | patterns.cs:13:56:13:56 | 2 | patterns.cs:13:52:13:56 | ... < ... | semmle.label | successor | -| patterns.cs:14:9:15:9 | {...} | patterns.cs:17:9:19:9 | if (...) ... | semmle.label | successor | -| patterns.cs:17:9:19:9 | if (...) ... | patterns.cs:17:13:17:13 | access to local variable o | semmle.label | successor | -| patterns.cs:17:13:17:13 | access to local variable o | patterns.cs:17:18:17:21 | Object p | semmle.label | successor | -| patterns.cs:17:13:17:21 | [false] ... is ... | patterns.cs:22:9:24:9 | if (...) ... | semmle.label | false | -| patterns.cs:17:13:17:21 | [true] ... is ... | patterns.cs:18:9:19:9 | {...} | semmle.label | true | -| patterns.cs:17:18:17:19 | { ... } | patterns.cs:17:18:17:21 | [match] { ... } | semmle.label | match | -| patterns.cs:17:18:17:19 | { ... } | patterns.cs:17:18:17:21 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:17:18:17:21 | Object p | patterns.cs:17:18:17:19 | { ... } | semmle.label | match | -| patterns.cs:17:18:17:21 | Object p | patterns.cs:17:18:17:21 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:17:18:17:21 | [match] { ... } | patterns.cs:17:13:17:21 | [true] ... is ... | semmle.label | match | -| patterns.cs:17:18:17:21 | [no-match] { ... } | patterns.cs:17:13:17:21 | [false] ... is ... | semmle.label | no-match | -| patterns.cs:18:9:19:9 | {...} | patterns.cs:22:9:24:9 | if (...) ... | semmle.label | successor | -| patterns.cs:22:9:24:9 | if (...) ... | patterns.cs:22:13:22:13 | access to local variable o | semmle.label | successor | -| patterns.cs:22:13:22:13 | access to local variable o | patterns.cs:22:18:22:25 | access to type MyStruct | semmle.label | successor | -| patterns.cs:22:13:22:53 | [false] ... is ... | patterns.cs:27:9:29:9 | if (...) ... | semmle.label | false | -| patterns.cs:22:13:22:53 | [true] ... is ... | patterns.cs:23:9:24:9 | {...} | semmle.label | true | -| patterns.cs:22:18:22:25 | access to type MyStruct | patterns.cs:22:18:22:53 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:22:18:22:25 | access to type MyStruct | patterns.cs:22:31:22:32 | 12 | semmle.label | match | -| patterns.cs:22:18:22:53 | [match] { ... } | patterns.cs:22:13:22:53 | [true] ... is ... | semmle.label | match | -| patterns.cs:22:18:22:53 | [no-match] { ... } | patterns.cs:22:13:22:53 | [false] ... is ... | semmle.label | no-match | -| patterns.cs:22:27:22:53 | [match] { ... } | patterns.cs:22:18:22:53 | [match] { ... } | semmle.label | match | -| patterns.cs:22:27:22:53 | [no-match] { ... } | patterns.cs:22:18:22:53 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:22:31:22:32 | 12 | patterns.cs:22:27:22:53 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:22:31:22:32 | 12 | patterns.cs:22:42:22:49 | Int32 subX | semmle.label | match | -| patterns.cs:22:38:22:51 | [match] { ... } | patterns.cs:22:27:22:53 | [match] { ... } | semmle.label | match | -| patterns.cs:22:38:22:51 | [match] { ... } | patterns.cs:22:38:22:51 | [match] { ... } | semmle.label | match | -| patterns.cs:22:38:22:51 | [no-match] { ... } | patterns.cs:22:27:22:53 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:22:38:22:51 | [no-match] { ... } | patterns.cs:22:38:22:51 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:22:42:22:49 | Int32 subX | patterns.cs:22:38:22:51 | [match] { ... } | semmle.label | match | -| patterns.cs:22:42:22:49 | Int32 subX | patterns.cs:22:38:22:51 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:23:9:24:9 | {...} | patterns.cs:27:9:29:9 | if (...) ... | semmle.label | successor | -| patterns.cs:27:9:29:9 | if (...) ... | patterns.cs:27:13:27:13 | access to local variable o | semmle.label | successor | -| patterns.cs:27:13:27:13 | access to local variable o | patterns.cs:27:18:27:25 | access to type MyStruct | semmle.label | successor | -| patterns.cs:27:13:27:58 | [false] ... is ... | patterns.cs:5:10:5:19 | exit IsPatterns (normal) | semmle.label | false | -| patterns.cs:27:13:27:58 | [true] ... is ... | patterns.cs:28:9:29:9 | {...} | semmle.label | true | -| patterns.cs:27:18:27:25 | access to type MyStruct | patterns.cs:27:18:27:58 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:27:18:27:25 | access to type MyStruct | patterns.cs:27:31:27:32 | 12 | semmle.label | match | -| patterns.cs:27:18:27:58 | [match] { ... } | patterns.cs:27:13:27:58 | [true] ... is ... | semmle.label | match | -| patterns.cs:27:18:27:58 | [no-match] { ... } | patterns.cs:27:13:27:58 | [false] ... is ... | semmle.label | no-match | -| patterns.cs:27:27:27:58 | [match] { ... } | patterns.cs:27:18:27:58 | [match] { ... } | semmle.label | match | -| patterns.cs:27:27:27:58 | [no-match] { ... } | patterns.cs:27:18:27:58 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:27:31:27:32 | 12 | patterns.cs:27:27:27:58 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:27:31:27:32 | 12 | patterns.cs:27:38:27:56 | MyStruct ms | semmle.label | match | -| patterns.cs:27:38:27:56 | MyStruct ms | patterns.cs:27:38:27:56 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:27:38:27:56 | MyStruct ms | patterns.cs:27:51:27:51 | _ | semmle.label | match | -| patterns.cs:27:38:27:56 | [match] { ... } | patterns.cs:27:27:27:58 | [match] { ... } | semmle.label | match | -| patterns.cs:27:38:27:56 | [no-match] { ... } | patterns.cs:27:27:27:58 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:27:47:27:53 | [match] { ... } | patterns.cs:27:38:27:56 | [match] { ... } | semmle.label | match | -| patterns.cs:27:51:27:51 | _ | patterns.cs:27:47:27:53 | [match] { ... } | semmle.label | match | -| patterns.cs:28:9:29:9 | {...} | patterns.cs:5:10:5:19 | exit IsPatterns (normal) | semmle.label | successor | +| patterns.cs:14:9:15:9 | {...} | patterns.cs:13:9:15:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:17:9:19:9 | After if (...) ... | patterns.cs:22:9:24:9 | if (...) ... | semmle.label | successor | +| patterns.cs:17:9:19:9 | if (...) ... | patterns.cs:17:13:17:21 | Before ... is ... | semmle.label | successor | +| patterns.cs:17:13:17:13 | access to local variable o | patterns.cs:17:13:17:21 | ... is ... | semmle.label | successor | +| patterns.cs:17:13:17:21 | ... is ... | patterns.cs:17:13:17:21 | After ... is ... [false] | semmle.label | false | +| patterns.cs:17:13:17:21 | ... is ... | patterns.cs:17:13:17:21 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:17:13:17:21 | After ... is ... [false] | patterns.cs:17:9:19:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:17:13:17:21 | After ... is ... [true] | patterns.cs:18:9:19:9 | {...} | semmle.label | successor | +| patterns.cs:17:13:17:21 | Before ... is ... | patterns.cs:17:13:17:13 | access to local variable o | semmle.label | successor | +| patterns.cs:17:13:17:21 | [match-true] ... is ... | patterns.cs:17:18:17:21 | Before { ... } | semmle.label | successor | +| patterns.cs:17:18:17:19 | { ... } | patterns.cs:17:18:17:21 | { ... } | semmle.label | successor | +| patterns.cs:17:18:17:21 | After { ... } | patterns.cs:17:13:17:21 | After ... is ... [true] | semmle.label | true | +| patterns.cs:17:18:17:21 | Before { ... } | patterns.cs:17:18:17:21 | Object p | semmle.label | successor | +| patterns.cs:17:18:17:21 | Object p | patterns.cs:17:18:17:19 | { ... } | semmle.label | successor | +| patterns.cs:17:18:17:21 | { ... } | patterns.cs:17:18:17:21 | After { ... } | semmle.label | successor | +| patterns.cs:18:9:19:9 | {...} | patterns.cs:17:9:19:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:22:9:24:9 | After if (...) ... | patterns.cs:27:9:29:9 | if (...) ... | semmle.label | successor | +| patterns.cs:22:9:24:9 | if (...) ... | patterns.cs:22:13:22:53 | Before ... is ... | semmle.label | successor | +| patterns.cs:22:13:22:13 | access to local variable o | patterns.cs:22:13:22:53 | ... is ... | semmle.label | successor | +| patterns.cs:22:13:22:53 | ... is ... | patterns.cs:22:13:22:53 | After ... is ... [false] | semmle.label | false | +| patterns.cs:22:13:22:53 | ... is ... | patterns.cs:22:13:22:53 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:22:13:22:53 | After ... is ... [false] | patterns.cs:22:9:24:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:22:13:22:53 | After ... is ... [true] | patterns.cs:23:9:24:9 | {...} | semmle.label | successor | +| patterns.cs:22:13:22:53 | Before ... is ... | patterns.cs:22:13:22:13 | access to local variable o | semmle.label | successor | +| patterns.cs:22:13:22:53 | [match-true] ... is ... | patterns.cs:22:18:22:53 | Before { ... } | semmle.label | successor | +| patterns.cs:22:18:22:25 | access to type MyStruct | patterns.cs:22:27:22:53 | Before { ... } | semmle.label | successor | +| patterns.cs:22:18:22:53 | After { ... } | patterns.cs:22:13:22:53 | After ... is ... [true] | semmle.label | true | +| patterns.cs:22:18:22:53 | Before { ... } | patterns.cs:22:18:22:25 | access to type MyStruct | semmle.label | successor | +| patterns.cs:22:18:22:53 | { ... } | patterns.cs:22:18:22:53 | After { ... } | semmle.label | successor | +| patterns.cs:22:27:22:53 | After { ... } | patterns.cs:22:18:22:53 | { ... } | semmle.label | successor | +| patterns.cs:22:27:22:53 | Before { ... } | patterns.cs:22:31:22:32 | 12 | semmle.label | successor | +| patterns.cs:22:27:22:53 | { ... } | patterns.cs:22:27:22:53 | After { ... } | semmle.label | successor | +| patterns.cs:22:31:22:32 | 12 | patterns.cs:22:38:22:51 | Before { ... } | semmle.label | successor | +| patterns.cs:22:38:22:51 | After { ... } | patterns.cs:22:27:22:53 | { ... } | semmle.label | successor | +| patterns.cs:22:38:22:51 | After { ... } | patterns.cs:22:38:22:51 | { ... } | semmle.label | successor | +| patterns.cs:22:38:22:51 | Before { ... } | patterns.cs:22:38:22:51 | Before { ... } | semmle.label | successor | +| patterns.cs:22:38:22:51 | Before { ... } | patterns.cs:22:42:22:49 | Int32 subX | semmle.label | successor | +| patterns.cs:22:38:22:51 | { ... } | patterns.cs:22:38:22:51 | After { ... } | semmle.label | successor | +| patterns.cs:22:38:22:51 | { ... } | patterns.cs:22:38:22:51 | After { ... } | semmle.label | successor | +| patterns.cs:22:42:22:49 | Int32 subX | patterns.cs:22:38:22:51 | { ... } | semmle.label | successor | +| patterns.cs:23:9:24:9 | {...} | patterns.cs:22:9:24:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:27:9:29:9 | After if (...) ... | patterns.cs:6:5:30:5 | After {...} | semmle.label | successor | +| patterns.cs:27:9:29:9 | if (...) ... | patterns.cs:27:13:27:58 | Before ... is ... | semmle.label | successor | +| patterns.cs:27:13:27:13 | access to local variable o | patterns.cs:27:13:27:58 | ... is ... | semmle.label | successor | +| patterns.cs:27:13:27:58 | ... is ... | patterns.cs:27:13:27:58 | After ... is ... [false] | semmle.label | false | +| patterns.cs:27:13:27:58 | ... is ... | patterns.cs:27:13:27:58 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:27:13:27:58 | After ... is ... [false] | patterns.cs:27:9:29:9 | After if (...) ... | semmle.label | successor | +| patterns.cs:27:13:27:58 | After ... is ... [true] | patterns.cs:28:9:29:9 | {...} | semmle.label | successor | +| patterns.cs:27:13:27:58 | Before ... is ... | patterns.cs:27:13:27:13 | access to local variable o | semmle.label | successor | +| patterns.cs:27:13:27:58 | [match-true] ... is ... | patterns.cs:27:18:27:58 | Before { ... } | semmle.label | successor | +| patterns.cs:27:18:27:25 | access to type MyStruct | patterns.cs:27:27:27:58 | Before { ... } | semmle.label | successor | +| patterns.cs:27:18:27:58 | After { ... } | patterns.cs:27:13:27:58 | After ... is ... [true] | semmle.label | true | +| patterns.cs:27:18:27:58 | Before { ... } | patterns.cs:27:18:27:25 | access to type MyStruct | semmle.label | successor | +| patterns.cs:27:18:27:58 | { ... } | patterns.cs:27:18:27:58 | After { ... } | semmle.label | successor | +| patterns.cs:27:27:27:58 | After { ... } | patterns.cs:27:18:27:58 | { ... } | semmle.label | successor | +| patterns.cs:27:27:27:58 | Before { ... } | patterns.cs:27:31:27:32 | 12 | semmle.label | successor | +| patterns.cs:27:27:27:58 | { ... } | patterns.cs:27:27:27:58 | After { ... } | semmle.label | successor | +| patterns.cs:27:31:27:32 | 12 | patterns.cs:27:38:27:56 | Before { ... } | semmle.label | successor | +| patterns.cs:27:38:27:45 | access to type MyStruct | patterns.cs:27:47:27:53 | Before { ... } | semmle.label | successor | +| patterns.cs:27:38:27:56 | After { ... } | patterns.cs:27:27:27:58 | { ... } | semmle.label | successor | +| patterns.cs:27:38:27:56 | Before { ... } | patterns.cs:27:38:27:56 | MyStruct ms | semmle.label | successor | +| patterns.cs:27:38:27:56 | MyStruct ms | patterns.cs:27:38:27:45 | access to type MyStruct | semmle.label | successor | +| patterns.cs:27:38:27:56 | { ... } | patterns.cs:27:38:27:56 | After { ... } | semmle.label | successor | +| patterns.cs:27:47:27:53 | After { ... } | patterns.cs:27:38:27:56 | { ... } | semmle.label | successor | +| patterns.cs:27:47:27:53 | Before { ... } | patterns.cs:27:51:27:51 | _ | semmle.label | successor | +| patterns.cs:27:47:27:53 | { ... } | patterns.cs:27:47:27:53 | After { ... } | semmle.label | successor | +| patterns.cs:27:51:27:51 | _ | patterns.cs:27:47:27:53 | { ... } | semmle.label | successor | +| patterns.cs:28:9:29:9 | {...} | patterns.cs:27:9:29:9 | After if (...) ... | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected index c6ecf8bcfd9..d50ac10c41e 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected @@ -1,205 +1,328 @@ -| patterns.cs:98:10:98:20 | enter Expressions | patterns.cs:99:5:121:5 | {...} | semmle.label | successor | -| patterns.cs:98:10:98:20 | exit Expressions (abnormal) | patterns.cs:98:10:98:20 | exit Expressions | semmle.label | successor | -| patterns.cs:98:10:98:20 | exit Expressions (normal) | patterns.cs:98:10:98:20 | exit Expressions | semmle.label | successor | +| patterns.cs:98:10:98:20 | Entry | patterns.cs:99:5:121:5 | {...} | semmle.label | successor | +| patterns.cs:98:10:98:20 | Normal Exit | patterns.cs:98:10:98:20 | Exit | semmle.label | successor | +| patterns.cs:99:5:121:5 | After {...} | patterns.cs:98:10:98:20 | Normal Exit | semmle.label | successor | | patterns.cs:99:5:121:5 | {...} | patterns.cs:100:9:103:10 | ... ...; | semmle.label | successor | -| patterns.cs:100:9:103:10 | ... ...; | patterns.cs:100:20:100:20 | access to parameter x | semmle.label | successor | -| patterns.cs:100:13:103:9 | String size = ... | patterns.cs:105:9:105:27 | ... ...; | semmle.label | successor | -| patterns.cs:100:20:100:20 | access to parameter x | patterns.cs:101:13:101:17 | Int32 y | semmle.label | successor | -| patterns.cs:100:20:103:9 | ... switch { ... } | patterns.cs:100:13:103:9 | String size = ... | semmle.label | successor | -| patterns.cs:101:13:101:17 | Int32 y | patterns.cs:101:24:101:24 | access to local variable y | semmle.label | match | -| patterns.cs:101:13:101:17 | Int32 y | patterns.cs:102:13:102:13 | _ | semmle.label | no-match | -| patterns.cs:101:13:101:40 | ... => ... | patterns.cs:100:20:103:9 | ... switch { ... } | semmle.label | successor | +| patterns.cs:100:9:103:10 | ... ...; | patterns.cs:100:13:103:9 | Before String size = ... | semmle.label | successor | +| patterns.cs:100:9:103:10 | After ... ...; | patterns.cs:105:9:105:27 | ... ...; | semmle.label | successor | +| patterns.cs:100:13:100:16 | access to local variable size | patterns.cs:100:20:103:9 | ... switch { ... } | semmle.label | successor | +| patterns.cs:100:13:103:9 | After String size = ... | patterns.cs:100:9:103:10 | After ... ...; | semmle.label | successor | +| patterns.cs:100:13:103:9 | Before String size = ... | patterns.cs:100:13:100:16 | access to local variable size | semmle.label | successor | +| patterns.cs:100:13:103:9 | String size = ... | patterns.cs:100:13:103:9 | After String size = ... | semmle.label | successor | +| patterns.cs:100:20:100:20 | access to parameter x | patterns.cs:101:13:101:40 | ... => ... | semmle.label | successor | +| patterns.cs:100:20:103:9 | ... switch { ... } | patterns.cs:100:20:100:20 | access to parameter x | semmle.label | successor | +| patterns.cs:100:20:103:9 | After ... switch { ... } | patterns.cs:100:13:103:9 | String size = ... | semmle.label | successor | +| patterns.cs:101:13:101:17 | Int32 y | patterns.cs:101:24:101:29 | Before ... > ... | semmle.label | successor | +| patterns.cs:101:13:101:40 | ... => ... | patterns.cs:101:13:101:40 | After ... => ... [match] | semmle.label | match | +| patterns.cs:101:13:101:40 | ... => ... | patterns.cs:101:13:101:40 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:101:13:101:40 | After ... => ... [match] | patterns.cs:101:13:101:17 | Int32 y | semmle.label | successor | +| patterns.cs:101:13:101:40 | After ... => ... [no-match] | patterns.cs:102:13:102:24 | ... => ... | semmle.label | successor | | patterns.cs:101:24:101:24 | access to local variable y | patterns.cs:101:28:101:29 | 10 | semmle.label | successor | -| patterns.cs:101:24:101:29 | ... > ... | patterns.cs:101:34:101:40 | "large" | semmle.label | true | -| patterns.cs:101:24:101:29 | ... > ... | patterns.cs:102:13:102:13 | _ | semmle.label | false | +| patterns.cs:101:24:101:29 | ... > ... | patterns.cs:101:24:101:29 | After ... > ... [false] | semmle.label | false | +| patterns.cs:101:24:101:29 | ... > ... | patterns.cs:101:24:101:29 | After ... > ... [true] | semmle.label | true | +| patterns.cs:101:24:101:29 | After ... > ... [false] | patterns.cs:102:13:102:24 | ... => ... | semmle.label | successor | +| patterns.cs:101:24:101:29 | After ... > ... [true] | patterns.cs:101:34:101:40 | "large" | semmle.label | successor | +| patterns.cs:101:24:101:29 | Before ... > ... | patterns.cs:101:24:101:24 | access to local variable y | semmle.label | successor | | patterns.cs:101:28:101:29 | 10 | patterns.cs:101:24:101:29 | ... > ... | semmle.label | successor | -| patterns.cs:101:34:101:40 | "large" | patterns.cs:101:13:101:40 | ... => ... | semmle.label | successor | -| patterns.cs:102:13:102:13 | _ | patterns.cs:102:18:102:24 | "small" | semmle.label | match | -| patterns.cs:102:13:102:24 | ... => ... | patterns.cs:100:20:103:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:102:18:102:24 | "small" | patterns.cs:102:13:102:24 | ... => ... | semmle.label | successor | -| patterns.cs:105:9:105:27 | ... ...; | patterns.cs:105:18:105:18 | 0 | semmle.label | successor | -| patterns.cs:105:13:105:18 | Int32 x0 = ... | patterns.cs:105:26:105:26 | 0 | semmle.label | successor | +| patterns.cs:101:34:101:40 | "large" | patterns.cs:100:20:103:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:102:13:102:13 | _ | patterns.cs:102:18:102:24 | "small" | semmle.label | successor | +| patterns.cs:102:13:102:24 | ... => ... | patterns.cs:102:13:102:24 | After ... => ... [match] | semmle.label | match | +| patterns.cs:102:13:102:24 | After ... => ... [match] | patterns.cs:102:13:102:13 | _ | semmle.label | successor | +| patterns.cs:102:18:102:24 | "small" | patterns.cs:100:20:103:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:105:9:105:27 | ... ...; | patterns.cs:105:13:105:18 | Before Int32 x0 = ... | semmle.label | successor | +| patterns.cs:105:9:105:27 | After ... ...; | patterns.cs:108:9:112:10 | ...; | semmle.label | successor | +| patterns.cs:105:13:105:14 | access to local variable x0 | patterns.cs:105:18:105:18 | 0 | semmle.label | successor | +| patterns.cs:105:13:105:18 | After Int32 x0 = ... | patterns.cs:105:21:105:26 | Before Int32 y0 = ... | semmle.label | successor | +| patterns.cs:105:13:105:18 | Before Int32 x0 = ... | patterns.cs:105:13:105:14 | access to local variable x0 | semmle.label | successor | +| patterns.cs:105:13:105:18 | Int32 x0 = ... | patterns.cs:105:13:105:18 | After Int32 x0 = ... | semmle.label | successor | | patterns.cs:105:18:105:18 | 0 | patterns.cs:105:13:105:18 | Int32 x0 = ... | semmle.label | successor | -| patterns.cs:105:21:105:26 | Int32 y0 = ... | patterns.cs:108:9:112:10 | ...; | semmle.label | successor | +| patterns.cs:105:21:105:22 | access to local variable y0 | patterns.cs:105:26:105:26 | 0 | semmle.label | successor | +| patterns.cs:105:21:105:26 | After Int32 y0 = ... | patterns.cs:105:9:105:27 | After ... ...; | semmle.label | successor | +| patterns.cs:105:21:105:26 | Before Int32 y0 = ... | patterns.cs:105:21:105:22 | access to local variable y0 | semmle.label | successor | +| patterns.cs:105:21:105:26 | Int32 y0 = ... | patterns.cs:105:21:105:26 | After Int32 y0 = ... | semmle.label | successor | | patterns.cs:105:26:105:26 | 0 | patterns.cs:105:21:105:26 | Int32 y0 = ... | semmle.label | successor | -| patterns.cs:108:9:108:20 | (..., ...) | patterns.cs:108:25:108:26 | access to local variable x0 | semmle.label | successor | -| patterns.cs:108:9:112:9 | ... = ... | patterns.cs:115:9:120:10 | ...; | semmle.label | successor | -| patterns.cs:108:9:112:10 | ...; | patterns.cs:108:14:108:15 | Int32 x1 | semmle.label | successor | +| patterns.cs:108:9:108:20 | (..., ...) | patterns.cs:108:9:108:20 | After (..., ...) | semmle.label | successor | +| patterns.cs:108:9:108:20 | After (..., ...) | patterns.cs:108:24:112:9 | ... switch { ... } | semmle.label | successor | +| patterns.cs:108:9:108:20 | Before (..., ...) | patterns.cs:108:14:108:15 | Int32 x1 | semmle.label | successor | +| patterns.cs:108:9:112:9 | ... = ... | patterns.cs:108:9:112:9 | After ... = ... | semmle.label | successor | +| patterns.cs:108:9:112:9 | After ... = ... | patterns.cs:108:9:112:10 | After ...; | semmle.label | successor | +| patterns.cs:108:9:112:9 | Before ... = ... | patterns.cs:108:9:108:20 | Before (..., ...) | semmle.label | successor | +| patterns.cs:108:9:112:10 | ...; | patterns.cs:108:9:112:9 | Before ... = ... | semmle.label | successor | +| patterns.cs:108:9:112:10 | After ...; | patterns.cs:115:9:120:10 | ...; | semmle.label | successor | | patterns.cs:108:14:108:15 | Int32 x1 | patterns.cs:108:18:108:19 | Int32 y1 | semmle.label | successor | | patterns.cs:108:18:108:19 | Int32 y1 | patterns.cs:108:9:108:20 | (..., ...) | semmle.label | successor | -| patterns.cs:108:24:108:31 | (..., ...) | patterns.cs:110:13:110:17 | ( ... ) | semmle.label | successor | -| patterns.cs:108:24:112:9 | ... switch { ... } | patterns.cs:108:9:112:9 | ... = ... | semmle.label | successor | +| patterns.cs:108:24:108:31 | (..., ...) | patterns.cs:108:24:108:31 | After (..., ...) | semmle.label | successor | +| patterns.cs:108:24:108:31 | After (..., ...) | patterns.cs:110:13:110:26 | ... => ... | semmle.label | successor | +| patterns.cs:108:24:108:31 | Before (..., ...) | patterns.cs:108:25:108:26 | access to local variable x0 | semmle.label | successor | +| patterns.cs:108:24:112:9 | ... switch { ... } | patterns.cs:108:24:108:31 | Before (..., ...) | semmle.label | successor | +| patterns.cs:108:24:112:9 | After ... switch { ... } | patterns.cs:108:9:112:9 | ... = ... | semmle.label | successor | | patterns.cs:108:25:108:26 | access to local variable x0 | patterns.cs:108:29:108:30 | access to local variable y0 | semmle.label | successor | | patterns.cs:108:29:108:30 | access to local variable y0 | patterns.cs:108:24:108:31 | (..., ...) | semmle.label | successor | -| patterns.cs:110:13:110:17 | ( ... ) | patterns.cs:110:13:110:17 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:110:13:110:17 | ( ... ) | patterns.cs:110:14:110:14 | 0 | semmle.label | match | -| patterns.cs:110:13:110:17 | [match] { ... } | patterns.cs:110:23:110:23 | 1 | semmle.label | match | -| patterns.cs:110:13:110:17 | [no-match] { ... } | patterns.cs:111:13:111:17 | ( ... ) | semmle.label | no-match | -| patterns.cs:110:13:110:26 | ... => ... | patterns.cs:108:24:112:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:110:14:110:14 | 0 | patterns.cs:110:13:110:17 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:110:14:110:14 | 0 | patterns.cs:110:16:110:16 | 1 | semmle.label | match | -| patterns.cs:110:16:110:16 | 1 | patterns.cs:110:13:110:17 | [match] { ... } | semmle.label | match | -| patterns.cs:110:16:110:16 | 1 | patterns.cs:110:13:110:17 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:110:22:110:26 | (..., ...) | patterns.cs:110:13:110:26 | ... => ... | semmle.label | successor | +| patterns.cs:110:13:110:17 | ( ... ) | patterns.cs:110:13:110:17 | After ( ... ) | semmle.label | successor | +| patterns.cs:110:13:110:17 | After ( ... ) | patterns.cs:110:13:110:17 | { ... } | semmle.label | successor | +| patterns.cs:110:13:110:17 | After { ... } | patterns.cs:110:22:110:26 | Before (..., ...) | semmle.label | successor | +| patterns.cs:110:13:110:17 | Before ( ... ) | patterns.cs:110:14:110:14 | 0 | semmle.label | successor | +| patterns.cs:110:13:110:17 | Before { ... } | patterns.cs:110:13:110:17 | Before ( ... ) | semmle.label | successor | +| patterns.cs:110:13:110:17 | { ... } | patterns.cs:110:13:110:17 | After { ... } | semmle.label | successor | +| patterns.cs:110:13:110:26 | ... => ... | patterns.cs:110:13:110:26 | After ... => ... [match] | semmle.label | match | +| patterns.cs:110:13:110:26 | ... => ... | patterns.cs:110:13:110:26 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:110:13:110:26 | After ... => ... [match] | patterns.cs:110:13:110:17 | Before { ... } | semmle.label | successor | +| patterns.cs:110:13:110:26 | After ... => ... [no-match] | patterns.cs:111:13:111:26 | ... => ... | semmle.label | successor | +| patterns.cs:110:14:110:14 | 0 | patterns.cs:110:16:110:16 | 1 | semmle.label | successor | +| patterns.cs:110:16:110:16 | 1 | patterns.cs:110:13:110:17 | ( ... ) | semmle.label | successor | +| patterns.cs:110:22:110:26 | (..., ...) | patterns.cs:110:22:110:26 | After (..., ...) | semmle.label | successor | +| patterns.cs:110:22:110:26 | After (..., ...) | patterns.cs:108:24:112:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:110:22:110:26 | Before (..., ...) | patterns.cs:110:23:110:23 | 1 | semmle.label | successor | | patterns.cs:110:23:110:23 | 1 | patterns.cs:110:25:110:25 | 0 | semmle.label | successor | | patterns.cs:110:25:110:25 | 0 | patterns.cs:110:22:110:26 | (..., ...) | semmle.label | successor | -| patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:13:111:17 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:14:111:14 | 1 | semmle.label | match | -| patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | -| patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:111:23:111:23 | 0 | semmle.label | match | -| patterns.cs:111:13:111:17 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | -| patterns.cs:111:13:111:26 | ... => ... | patterns.cs:108:24:112:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:111:14:111:14 | 1 | patterns.cs:111:13:111:17 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:111:14:111:14 | 1 | patterns.cs:111:16:111:16 | 0 | semmle.label | match | -| patterns.cs:111:16:111:16 | 0 | patterns.cs:111:13:111:17 | [match] { ... } | semmle.label | match | -| patterns.cs:111:16:111:16 | 0 | patterns.cs:111:13:111:17 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:111:22:111:26 | (..., ...) | patterns.cs:111:13:111:26 | ... => ... | semmle.label | successor | +| patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:13:111:17 | After ( ... ) | semmle.label | successor | +| patterns.cs:111:13:111:17 | After ( ... ) | patterns.cs:111:13:111:17 | { ... } | semmle.label | successor | +| patterns.cs:111:13:111:17 | After { ... } | patterns.cs:111:22:111:26 | Before (..., ...) | semmle.label | successor | +| patterns.cs:111:13:111:17 | Before ( ... ) | patterns.cs:111:14:111:14 | 1 | semmle.label | successor | +| patterns.cs:111:13:111:17 | Before { ... } | patterns.cs:111:13:111:17 | Before ( ... ) | semmle.label | successor | +| patterns.cs:111:13:111:17 | { ... } | patterns.cs:111:13:111:17 | After { ... } | semmle.label | successor | +| patterns.cs:111:13:111:26 | ... => ... | patterns.cs:111:13:111:26 | After ... => ... [match] | semmle.label | match | +| patterns.cs:111:13:111:26 | ... => ... | patterns.cs:111:13:111:26 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:111:13:111:26 | After ... => ... [match] | patterns.cs:111:13:111:17 | Before { ... } | semmle.label | successor | +| patterns.cs:111:13:111:26 | After ... => ... [no-match] | patterns.cs:108:24:112:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:111:14:111:14 | 1 | patterns.cs:111:16:111:16 | 0 | semmle.label | successor | +| patterns.cs:111:16:111:16 | 0 | patterns.cs:111:13:111:17 | ( ... ) | semmle.label | successor | +| patterns.cs:111:22:111:26 | (..., ...) | patterns.cs:111:22:111:26 | After (..., ...) | semmle.label | successor | +| patterns.cs:111:22:111:26 | After (..., ...) | patterns.cs:108:24:112:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:111:22:111:26 | Before (..., ...) | patterns.cs:111:23:111:23 | 0 | semmle.label | successor | | patterns.cs:111:23:111:23 | 0 | patterns.cs:111:25:111:25 | 1 | semmle.label | successor | | patterns.cs:111:25:111:25 | 1 | patterns.cs:111:22:111:26 | (..., ...) | semmle.label | successor | -| patterns.cs:115:9:115:16 | (..., ...) | patterns.cs:115:21:115:22 | access to local variable x0 | semmle.label | successor | -| patterns.cs:115:9:120:9 | ... = ... | patterns.cs:98:10:98:20 | exit Expressions (normal) | semmle.label | successor | -| patterns.cs:115:9:120:10 | ...; | patterns.cs:115:9:115:16 | (..., ...) | semmle.label | successor | -| patterns.cs:115:20:115:27 | (..., ...) | patterns.cs:117:13:117:22 | ( ... ) | semmle.label | successor | -| patterns.cs:115:20:120:9 | ... switch { ... } | patterns.cs:115:9:120:9 | ... = ... | semmle.label | successor | +| patterns.cs:115:9:115:16 | (..., ...) | patterns.cs:115:9:115:16 | After (..., ...) | semmle.label | successor | +| patterns.cs:115:9:115:16 | After (..., ...) | patterns.cs:115:20:120:9 | ... switch { ... } | semmle.label | successor | +| patterns.cs:115:9:115:16 | Before (..., ...) | patterns.cs:115:10:115:11 | access to local variable x1 | semmle.label | successor | +| patterns.cs:115:9:120:9 | ... = ... | patterns.cs:115:9:120:9 | After ... = ... | semmle.label | successor | +| patterns.cs:115:9:120:9 | After ... = ... | patterns.cs:115:9:120:10 | After ...; | semmle.label | successor | +| patterns.cs:115:9:120:9 | Before ... = ... | patterns.cs:115:9:115:16 | Before (..., ...) | semmle.label | successor | +| patterns.cs:115:9:120:10 | ...; | patterns.cs:115:9:120:9 | Before ... = ... | semmle.label | successor | +| patterns.cs:115:9:120:10 | After ...; | patterns.cs:99:5:121:5 | After {...} | semmle.label | successor | +| patterns.cs:115:10:115:11 | access to local variable x1 | patterns.cs:115:14:115:15 | access to local variable y1 | semmle.label | successor | +| patterns.cs:115:14:115:15 | access to local variable y1 | patterns.cs:115:9:115:16 | (..., ...) | semmle.label | successor | +| patterns.cs:115:20:115:27 | (..., ...) | patterns.cs:115:20:115:27 | After (..., ...) | semmle.label | successor | +| patterns.cs:115:20:115:27 | After (..., ...) | patterns.cs:117:13:117:33 | ... => ... | semmle.label | successor | +| patterns.cs:115:20:115:27 | Before (..., ...) | patterns.cs:115:21:115:22 | access to local variable x0 | semmle.label | successor | +| patterns.cs:115:20:120:9 | ... switch { ... } | patterns.cs:115:20:115:27 | Before (..., ...) | semmle.label | successor | +| patterns.cs:115:20:120:9 | After ... switch { ... } | patterns.cs:115:9:120:9 | ... = ... | semmle.label | successor | | patterns.cs:115:21:115:22 | access to local variable x0 | patterns.cs:115:25:115:26 | access to local variable y0 | semmle.label | successor | | patterns.cs:115:25:115:26 | access to local variable y0 | patterns.cs:115:20:115:27 | (..., ...) | semmle.label | successor | -| patterns.cs:117:13:117:22 | ( ... ) | patterns.cs:117:13:117:22 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:117:13:117:22 | ( ... ) | patterns.cs:117:14:117:14 | 0 | semmle.label | match | -| patterns.cs:117:13:117:22 | [match] { ... } | patterns.cs:117:28:117:29 | access to local variable y2 | semmle.label | match | -| patterns.cs:117:13:117:22 | [no-match] { ... } | patterns.cs:118:13:118:23 | ( ... ) | semmle.label | no-match | -| patterns.cs:117:13:117:33 | ... => ... | patterns.cs:115:20:120:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:117:14:117:14 | 0 | patterns.cs:117:13:117:22 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:117:14:117:14 | 0 | patterns.cs:117:16:117:21 | Int32 y2 | semmle.label | match | -| patterns.cs:117:16:117:21 | Int32 y2 | patterns.cs:117:13:117:22 | [match] { ... } | semmle.label | match | -| patterns.cs:117:16:117:21 | Int32 y2 | patterns.cs:117:13:117:22 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:117:27:117:33 | (..., ...) | patterns.cs:117:13:117:33 | ... => ... | semmle.label | successor | +| patterns.cs:117:13:117:22 | ( ... ) | patterns.cs:117:13:117:22 | After ( ... ) | semmle.label | successor | +| patterns.cs:117:13:117:22 | After ( ... ) | patterns.cs:117:13:117:22 | { ... } | semmle.label | successor | +| patterns.cs:117:13:117:22 | After { ... } | patterns.cs:117:27:117:33 | Before (..., ...) | semmle.label | successor | +| patterns.cs:117:13:117:22 | Before ( ... ) | patterns.cs:117:14:117:14 | 0 | semmle.label | successor | +| patterns.cs:117:13:117:22 | Before { ... } | patterns.cs:117:13:117:22 | Before ( ... ) | semmle.label | successor | +| patterns.cs:117:13:117:22 | { ... } | patterns.cs:117:13:117:22 | After { ... } | semmle.label | successor | +| patterns.cs:117:13:117:33 | ... => ... | patterns.cs:117:13:117:33 | After ... => ... [match] | semmle.label | match | +| patterns.cs:117:13:117:33 | ... => ... | patterns.cs:117:13:117:33 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:117:13:117:33 | After ... => ... [match] | patterns.cs:117:13:117:22 | Before { ... } | semmle.label | successor | +| patterns.cs:117:13:117:33 | After ... => ... [no-match] | patterns.cs:118:13:118:34 | ... => ... | semmle.label | successor | +| patterns.cs:117:14:117:14 | 0 | patterns.cs:117:16:117:21 | Int32 y2 | semmle.label | successor | +| patterns.cs:117:16:117:21 | Int32 y2 | patterns.cs:117:13:117:22 | ( ... ) | semmle.label | successor | +| patterns.cs:117:27:117:33 | (..., ...) | patterns.cs:117:27:117:33 | After (..., ...) | semmle.label | successor | +| patterns.cs:117:27:117:33 | After (..., ...) | patterns.cs:115:20:120:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:117:27:117:33 | Before (..., ...) | patterns.cs:117:28:117:29 | access to local variable y2 | semmle.label | successor | | patterns.cs:117:28:117:29 | access to local variable y2 | patterns.cs:117:32:117:32 | 0 | semmle.label | successor | | patterns.cs:117:32:117:32 | 0 | patterns.cs:117:27:117:33 | (..., ...) | semmle.label | successor | -| patterns.cs:118:13:118:23 | ( ... ) | patterns.cs:118:13:118:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:118:13:118:23 | ( ... ) | patterns.cs:118:14:118:19 | Int32 x2 | semmle.label | match | -| patterns.cs:118:13:118:23 | [match] { ... } | patterns.cs:118:29:118:29 | 0 | semmle.label | match | -| patterns.cs:118:13:118:23 | [no-match] { ... } | patterns.cs:119:13:119:28 | ( ... ) | semmle.label | no-match | -| patterns.cs:118:13:118:34 | ... => ... | patterns.cs:115:20:120:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:118:14:118:19 | Int32 x2 | patterns.cs:118:13:118:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:118:14:118:19 | Int32 x2 | patterns.cs:118:22:118:22 | 0 | semmle.label | match | -| patterns.cs:118:22:118:22 | 0 | patterns.cs:118:13:118:23 | [match] { ... } | semmle.label | match | -| patterns.cs:118:22:118:22 | 0 | patterns.cs:118:13:118:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:118:28:118:34 | (..., ...) | patterns.cs:118:13:118:34 | ... => ... | semmle.label | successor | +| patterns.cs:118:13:118:23 | ( ... ) | patterns.cs:118:13:118:23 | After ( ... ) | semmle.label | successor | +| patterns.cs:118:13:118:23 | After ( ... ) | patterns.cs:118:13:118:23 | { ... } | semmle.label | successor | +| patterns.cs:118:13:118:23 | After { ... } | patterns.cs:118:28:118:34 | Before (..., ...) | semmle.label | successor | +| patterns.cs:118:13:118:23 | Before ( ... ) | patterns.cs:118:14:118:19 | Int32 x2 | semmle.label | successor | +| patterns.cs:118:13:118:23 | Before { ... } | patterns.cs:118:13:118:23 | Before ( ... ) | semmle.label | successor | +| patterns.cs:118:13:118:23 | { ... } | patterns.cs:118:13:118:23 | After { ... } | semmle.label | successor | +| patterns.cs:118:13:118:34 | ... => ... | patterns.cs:118:13:118:34 | After ... => ... [match] | semmle.label | match | +| patterns.cs:118:13:118:34 | ... => ... | patterns.cs:118:13:118:34 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:118:13:118:34 | After ... => ... [match] | patterns.cs:118:13:118:23 | Before { ... } | semmle.label | successor | +| patterns.cs:118:13:118:34 | After ... => ... [no-match] | patterns.cs:119:13:119:38 | ... => ... | semmle.label | successor | +| patterns.cs:118:14:118:19 | Int32 x2 | patterns.cs:118:22:118:22 | 0 | semmle.label | successor | +| patterns.cs:118:22:118:22 | 0 | patterns.cs:118:13:118:23 | ( ... ) | semmle.label | successor | +| patterns.cs:118:28:118:34 | (..., ...) | patterns.cs:118:28:118:34 | After (..., ...) | semmle.label | successor | +| patterns.cs:118:28:118:34 | After (..., ...) | patterns.cs:115:20:120:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:118:28:118:34 | Before (..., ...) | patterns.cs:118:29:118:29 | 0 | semmle.label | successor | | patterns.cs:118:29:118:29 | 0 | patterns.cs:118:32:118:33 | access to local variable x2 | semmle.label | successor | | patterns.cs:118:32:118:33 | access to local variable x2 | patterns.cs:118:28:118:34 | (..., ...) | semmle.label | successor | -| patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:13:119:28 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:14:119:19 | Int32 x2 | semmle.label | match | -| patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | -| patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:119:34:119:34 | 0 | semmle.label | match | -| patterns.cs:119:13:119:28 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception | -| patterns.cs:119:13:119:38 | ... => ... | patterns.cs:115:20:120:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:13:119:28 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:22:119:27 | Int32 y2 | semmle.label | match | -| patterns.cs:119:22:119:27 | Int32 y2 | patterns.cs:119:13:119:28 | [match] { ... } | semmle.label | match | -| patterns.cs:119:22:119:27 | Int32 y2 | patterns.cs:119:13:119:28 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:119:33:119:38 | (..., ...) | patterns.cs:119:13:119:38 | ... => ... | semmle.label | successor | +| patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:13:119:28 | After ( ... ) | semmle.label | successor | +| patterns.cs:119:13:119:28 | After ( ... ) | patterns.cs:119:13:119:28 | { ... } | semmle.label | successor | +| patterns.cs:119:13:119:28 | After { ... } | patterns.cs:119:33:119:38 | Before (..., ...) | semmle.label | successor | +| patterns.cs:119:13:119:28 | Before ( ... ) | patterns.cs:119:14:119:19 | Int32 x2 | semmle.label | successor | +| patterns.cs:119:13:119:28 | Before { ... } | patterns.cs:119:13:119:28 | Before ( ... ) | semmle.label | successor | +| patterns.cs:119:13:119:28 | { ... } | patterns.cs:119:13:119:28 | After { ... } | semmle.label | successor | +| patterns.cs:119:13:119:38 | ... => ... | patterns.cs:119:13:119:38 | After ... => ... [match] | semmle.label | match | +| patterns.cs:119:13:119:38 | ... => ... | patterns.cs:119:13:119:38 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:119:13:119:38 | After ... => ... [match] | patterns.cs:119:13:119:28 | Before { ... } | semmle.label | successor | +| patterns.cs:119:13:119:38 | After ... => ... [no-match] | patterns.cs:115:20:120:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:22:119:27 | Int32 y2 | semmle.label | successor | +| patterns.cs:119:22:119:27 | Int32 y2 | patterns.cs:119:13:119:28 | ( ... ) | semmle.label | successor | +| patterns.cs:119:33:119:38 | (..., ...) | patterns.cs:119:33:119:38 | After (..., ...) | semmle.label | successor | +| patterns.cs:119:33:119:38 | After (..., ...) | patterns.cs:115:20:120:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:119:33:119:38 | Before (..., ...) | patterns.cs:119:34:119:34 | 0 | semmle.label | successor | | patterns.cs:119:34:119:34 | 0 | patterns.cs:119:37:119:37 | 0 | semmle.label | successor | | patterns.cs:119:37:119:37 | 0 | patterns.cs:119:33:119:38 | (..., ...) | semmle.label | successor | -| patterns.cs:123:10:123:21 | enter Expressions2 | patterns.cs:124:5:149:5 | {...} | semmle.label | successor | -| patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | patterns.cs:123:10:123:21 | exit Expressions2 | semmle.label | successor | -| patterns.cs:123:10:123:21 | exit Expressions2 (normal) | patterns.cs:123:10:123:21 | exit Expressions2 | semmle.label | successor | +| patterns.cs:123:10:123:21 | Entry | patterns.cs:124:5:149:5 | {...} | semmle.label | successor | +| patterns.cs:123:10:123:21 | Exceptional Exit | patterns.cs:123:10:123:21 | Exit | semmle.label | successor | +| patterns.cs:123:10:123:21 | Normal Exit | patterns.cs:123:10:123:21 | Exit | semmle.label | successor | +| patterns.cs:124:5:149:5 | After {...} | patterns.cs:123:10:123:21 | Normal Exit | semmle.label | successor | | patterns.cs:124:5:149:5 | {...} | patterns.cs:125:9:125:39 | ... ...; | semmle.label | successor | -| patterns.cs:125:9:125:39 | ... ...; | patterns.cs:125:17:125:38 | object creation of type MyStruct | semmle.label | successor | -| patterns.cs:125:13:125:38 | MyStruct s = ... | patterns.cs:126:9:132:10 | ... ...; | semmle.label | successor | -| patterns.cs:125:17:125:38 | object creation of type MyStruct | patterns.cs:125:36:125:36 | 0 | semmle.label | successor | -| patterns.cs:125:30:125:38 | { ..., ... } | patterns.cs:125:13:125:38 | MyStruct s = ... | semmle.label | successor | -| patterns.cs:125:32:125:32 | access to field X | patterns.cs:125:32:125:36 | ... = ... | semmle.label | successor | -| patterns.cs:125:32:125:36 | ... = ... | patterns.cs:125:30:125:38 | { ..., ... } | semmle.label | successor | -| patterns.cs:125:36:125:36 | 0 | patterns.cs:125:32:125:32 | access to field X | semmle.label | successor | -| patterns.cs:126:9:132:10 | ... ...; | patterns.cs:126:17:126:17 | access to local variable s | semmle.label | successor | -| patterns.cs:126:13:132:9 | Int32 r = ... | patterns.cs:134:9:148:9 | try {...} ... | semmle.label | successor | -| patterns.cs:126:17:126:17 | access to local variable s | patterns.cs:128:13:128:20 | access to type MyStruct | semmle.label | successor | -| patterns.cs:126:17:132:9 | ... switch { ... } | patterns.cs:126:13:132:9 | Int32 r = ... | semmle.label | successor | -| patterns.cs:128:13:128:20 | access to type MyStruct | patterns.cs:128:13:128:33 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:128:13:128:20 | access to type MyStruct | patterns.cs:128:27:128:31 | Int32 x | semmle.label | match | -| patterns.cs:128:13:128:33 | [match] { ... } | patterns.cs:128:40:128:40 | access to local variable x | semmle.label | match | -| patterns.cs:128:13:128:33 | [no-match] { ... } | patterns.cs:129:13:129:33 | MyStruct ms | semmle.label | no-match | -| patterns.cs:128:13:128:49 | ... => ... | patterns.cs:126:17:132:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:128:22:128:33 | [match] { ... } | patterns.cs:128:13:128:33 | [match] { ... } | semmle.label | match | -| patterns.cs:128:22:128:33 | [no-match] { ... } | patterns.cs:128:13:128:33 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:128:27:128:31 | Int32 x | patterns.cs:128:22:128:33 | [match] { ... } | semmle.label | match | -| patterns.cs:128:27:128:31 | Int32 x | patterns.cs:128:22:128:33 | [no-match] { ... } | semmle.label | no-match | +| patterns.cs:125:9:125:39 | ... ...; | patterns.cs:125:13:125:38 | Before MyStruct s = ... | semmle.label | successor | +| patterns.cs:125:9:125:39 | After ... ...; | patterns.cs:126:9:132:10 | ... ...; | semmle.label | successor | +| patterns.cs:125:13:125:13 | access to local variable s | patterns.cs:125:17:125:38 | Before object creation of type MyStruct | semmle.label | successor | +| patterns.cs:125:13:125:38 | After MyStruct s = ... | patterns.cs:125:9:125:39 | After ... ...; | semmle.label | successor | +| patterns.cs:125:13:125:38 | Before MyStruct s = ... | patterns.cs:125:13:125:13 | access to local variable s | semmle.label | successor | +| patterns.cs:125:13:125:38 | MyStruct s = ... | patterns.cs:125:13:125:38 | After MyStruct s = ... | semmle.label | successor | +| patterns.cs:125:17:125:38 | After object creation of type MyStruct | patterns.cs:125:13:125:38 | MyStruct s = ... | semmle.label | successor | +| patterns.cs:125:17:125:38 | Before object creation of type MyStruct | patterns.cs:125:17:125:38 | object creation of type MyStruct | semmle.label | successor | +| patterns.cs:125:17:125:38 | object creation of type MyStruct | patterns.cs:125:30:125:38 | Before { ..., ... } | semmle.label | successor | +| patterns.cs:125:30:125:38 | After { ..., ... } | patterns.cs:125:17:125:38 | After object creation of type MyStruct | semmle.label | successor | +| patterns.cs:125:30:125:38 | Before { ..., ... } | patterns.cs:125:32:125:36 | Before ... = ... | semmle.label | successor | +| patterns.cs:125:30:125:38 | { ..., ... } | patterns.cs:125:30:125:38 | After { ..., ... } | semmle.label | successor | +| patterns.cs:125:32:125:32 | access to field X | patterns.cs:125:36:125:36 | 0 | semmle.label | successor | +| patterns.cs:125:32:125:36 | ... = ... | patterns.cs:125:32:125:36 | After ... = ... | semmle.label | successor | +| patterns.cs:125:32:125:36 | After ... = ... | patterns.cs:125:30:125:38 | { ..., ... } | semmle.label | successor | +| patterns.cs:125:32:125:36 | Before ... = ... | patterns.cs:125:32:125:32 | access to field X | semmle.label | successor | +| patterns.cs:125:36:125:36 | 0 | patterns.cs:125:32:125:36 | ... = ... | semmle.label | successor | +| patterns.cs:126:9:132:10 | ... ...; | patterns.cs:126:13:132:9 | Before Int32 r = ... | semmle.label | successor | +| patterns.cs:126:9:132:10 | After ... ...; | patterns.cs:134:9:148:9 | try {...} ... | semmle.label | successor | +| patterns.cs:126:13:126:13 | access to local variable r | patterns.cs:126:17:132:9 | ... switch { ... } | semmle.label | successor | +| patterns.cs:126:13:132:9 | After Int32 r = ... | patterns.cs:126:9:132:10 | After ... ...; | semmle.label | successor | +| patterns.cs:126:13:132:9 | Before Int32 r = ... | patterns.cs:126:13:126:13 | access to local variable r | semmle.label | successor | +| patterns.cs:126:13:132:9 | Int32 r = ... | patterns.cs:126:13:132:9 | After Int32 r = ... | semmle.label | successor | +| patterns.cs:126:17:126:17 | access to local variable s | patterns.cs:128:13:128:49 | ... => ... | semmle.label | successor | +| patterns.cs:126:17:132:9 | ... switch { ... } | patterns.cs:126:17:126:17 | access to local variable s | semmle.label | successor | +| patterns.cs:126:17:132:9 | After ... switch { ... } | patterns.cs:126:13:132:9 | Int32 r = ... | semmle.label | successor | +| patterns.cs:128:13:128:20 | access to type MyStruct | patterns.cs:128:22:128:33 | Before { ... } | semmle.label | successor | +| patterns.cs:128:13:128:33 | After { ... } | patterns.cs:128:40:128:44 | Before ... > ... | semmle.label | successor | +| patterns.cs:128:13:128:33 | Before { ... } | patterns.cs:128:13:128:20 | access to type MyStruct | semmle.label | successor | +| patterns.cs:128:13:128:33 | { ... } | patterns.cs:128:13:128:33 | After { ... } | semmle.label | successor | +| patterns.cs:128:13:128:49 | ... => ... | patterns.cs:128:13:128:49 | After ... => ... [match] | semmle.label | match | +| patterns.cs:128:13:128:49 | ... => ... | patterns.cs:128:13:128:49 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:128:13:128:49 | After ... => ... [match] | patterns.cs:128:13:128:33 | Before { ... } | semmle.label | successor | +| patterns.cs:128:13:128:49 | After ... => ... [no-match] | patterns.cs:129:13:129:38 | ... => ... | semmle.label | successor | +| patterns.cs:128:22:128:33 | After { ... } | patterns.cs:128:13:128:33 | { ... } | semmle.label | successor | +| patterns.cs:128:22:128:33 | Before { ... } | patterns.cs:128:27:128:31 | Int32 x | semmle.label | successor | +| patterns.cs:128:22:128:33 | { ... } | patterns.cs:128:22:128:33 | After { ... } | semmle.label | successor | +| patterns.cs:128:27:128:31 | Int32 x | patterns.cs:128:22:128:33 | { ... } | semmle.label | successor | | patterns.cs:128:40:128:40 | access to local variable x | patterns.cs:128:44:128:44 | 2 | semmle.label | successor | -| patterns.cs:128:40:128:44 | ... > ... | patterns.cs:128:49:128:49 | 0 | semmle.label | true | -| patterns.cs:128:40:128:44 | ... > ... | patterns.cs:129:13:129:33 | MyStruct ms | semmle.label | false | +| patterns.cs:128:40:128:44 | ... > ... | patterns.cs:128:40:128:44 | After ... > ... [false] | semmle.label | false | +| patterns.cs:128:40:128:44 | ... > ... | patterns.cs:128:40:128:44 | After ... > ... [true] | semmle.label | true | +| patterns.cs:128:40:128:44 | After ... > ... [false] | patterns.cs:129:13:129:38 | ... => ... | semmle.label | successor | +| patterns.cs:128:40:128:44 | After ... > ... [true] | patterns.cs:128:49:128:49 | 0 | semmle.label | successor | +| patterns.cs:128:40:128:44 | Before ... > ... | patterns.cs:128:40:128:40 | access to local variable x | semmle.label | successor | | patterns.cs:128:44:128:44 | 2 | patterns.cs:128:40:128:44 | ... > ... | semmle.label | successor | -| patterns.cs:128:49:128:49 | 0 | patterns.cs:128:13:128:49 | ... => ... | semmle.label | successor | -| patterns.cs:129:13:129:33 | MyStruct ms | patterns.cs:129:13:129:33 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:129:13:129:33 | MyStruct ms | patterns.cs:129:27:129:28 | 10 | semmle.label | match | -| patterns.cs:129:13:129:33 | [match] { ... } | patterns.cs:129:38:129:38 | 1 | semmle.label | match | -| patterns.cs:129:13:129:33 | [no-match] { ... } | patterns.cs:130:13:130:18 | ( ... ) | semmle.label | no-match | -| patterns.cs:129:13:129:38 | ... => ... | patterns.cs:126:17:132:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:129:22:129:30 | [match] { ... } | patterns.cs:129:13:129:33 | [match] { ... } | semmle.label | match | -| patterns.cs:129:22:129:30 | [no-match] { ... } | patterns.cs:129:13:129:33 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:129:27:129:28 | 10 | patterns.cs:129:22:129:30 | [match] { ... } | semmle.label | match | -| patterns.cs:129:27:129:28 | 10 | patterns.cs:129:22:129:30 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:129:38:129:38 | 1 | patterns.cs:129:13:129:38 | ... => ... | semmle.label | successor | -| patterns.cs:130:13:130:18 | ( ... ) | patterns.cs:130:13:130:18 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:130:13:130:18 | ( ... ) | patterns.cs:130:14:130:14 | 1 | semmle.label | match | -| patterns.cs:130:13:130:18 | [match] { ... } | patterns.cs:130:23:130:23 | 2 | semmle.label | match | -| patterns.cs:130:13:130:18 | [no-match] { ... } | patterns.cs:131:18:131:18 | Int32 x | semmle.label | no-match | -| patterns.cs:130:13:130:23 | ... => ... | patterns.cs:126:17:132:9 | ... switch { ... } | semmle.label | successor | -| patterns.cs:130:14:130:14 | 1 | patterns.cs:130:13:130:18 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:130:14:130:14 | 1 | patterns.cs:130:17:130:17 | 2 | semmle.label | match | -| patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | [match] { ... } | semmle.label | match | -| patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:130:23:130:23 | 2 | patterns.cs:130:13:130:23 | ... => ... | semmle.label | successor | -| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception | -| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:131:27:131:27 | 3 | semmle.label | match | -| patterns.cs:131:13:131:27 | ... => ... | patterns.cs:126:17:132:9 | ... switch { ... } | semmle.label | successor | +| patterns.cs:128:49:128:49 | 0 | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:129:13:129:20 | access to type MyStruct | patterns.cs:129:22:129:30 | Before { ... } | semmle.label | successor | +| patterns.cs:129:13:129:33 | After { ... } | patterns.cs:129:38:129:38 | 1 | semmle.label | successor | +| patterns.cs:129:13:129:33 | Before { ... } | patterns.cs:129:13:129:33 | MyStruct ms | semmle.label | successor | +| patterns.cs:129:13:129:33 | MyStruct ms | patterns.cs:129:13:129:20 | access to type MyStruct | semmle.label | successor | +| patterns.cs:129:13:129:33 | { ... } | patterns.cs:129:13:129:33 | After { ... } | semmle.label | successor | +| patterns.cs:129:13:129:38 | ... => ... | patterns.cs:129:13:129:38 | After ... => ... [match] | semmle.label | match | +| patterns.cs:129:13:129:38 | ... => ... | patterns.cs:129:13:129:38 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:129:13:129:38 | After ... => ... [match] | patterns.cs:129:13:129:33 | Before { ... } | semmle.label | successor | +| patterns.cs:129:13:129:38 | After ... => ... [no-match] | patterns.cs:130:13:130:23 | ... => ... | semmle.label | successor | +| patterns.cs:129:22:129:30 | After { ... } | patterns.cs:129:13:129:33 | { ... } | semmle.label | successor | +| patterns.cs:129:22:129:30 | Before { ... } | patterns.cs:129:27:129:28 | 10 | semmle.label | successor | +| patterns.cs:129:22:129:30 | { ... } | patterns.cs:129:22:129:30 | After { ... } | semmle.label | successor | +| patterns.cs:129:27:129:28 | 10 | patterns.cs:129:22:129:30 | { ... } | semmle.label | successor | +| patterns.cs:129:38:129:38 | 1 | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:130:13:130:18 | ( ... ) | patterns.cs:130:13:130:18 | After ( ... ) | semmle.label | successor | +| patterns.cs:130:13:130:18 | After ( ... ) | patterns.cs:130:13:130:18 | { ... } | semmle.label | successor | +| patterns.cs:130:13:130:18 | After { ... } | patterns.cs:130:23:130:23 | 2 | semmle.label | successor | +| patterns.cs:130:13:130:18 | Before ( ... ) | patterns.cs:130:14:130:14 | 1 | semmle.label | successor | +| patterns.cs:130:13:130:18 | Before { ... } | patterns.cs:130:13:130:18 | Before ( ... ) | semmle.label | successor | +| patterns.cs:130:13:130:18 | { ... } | patterns.cs:130:13:130:18 | After { ... } | semmle.label | successor | +| patterns.cs:130:13:130:23 | ... => ... | patterns.cs:130:13:130:23 | After ... => ... [match] | semmle.label | match | +| patterns.cs:130:13:130:23 | ... => ... | patterns.cs:130:13:130:23 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:130:13:130:23 | After ... => ... [match] | patterns.cs:130:13:130:18 | Before { ... } | semmle.label | successor | +| patterns.cs:130:13:130:23 | After ... => ... [no-match] | patterns.cs:131:13:131:27 | ... => ... | semmle.label | successor | +| patterns.cs:130:14:130:14 | 1 | patterns.cs:130:17:130:17 | 2 | semmle.label | successor | +| patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | ( ... ) | semmle.label | successor | +| patterns.cs:130:23:130:23 | 2 | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:131:13:131:22 | After (..., ...) | semmle.label | successor | +| patterns.cs:131:13:131:22 | After (..., ...) | patterns.cs:131:27:131:27 | 3 | semmle.label | successor | +| patterns.cs:131:13:131:22 | Before (..., ...) | patterns.cs:131:18:131:18 | Int32 x | semmle.label | successor | +| patterns.cs:131:13:131:27 | ... => ... | patterns.cs:131:13:131:27 | After ... => ... [match] | semmle.label | match | +| patterns.cs:131:13:131:27 | ... => ... | patterns.cs:131:13:131:27 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:131:13:131:27 | After ... => ... [match] | patterns.cs:131:13:131:22 | Before (..., ...) | semmle.label | successor | +| patterns.cs:131:13:131:27 | After ... => ... [no-match] | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor | | patterns.cs:131:18:131:18 | Int32 x | patterns.cs:131:21:131:21 | _ | semmle.label | successor | | patterns.cs:131:21:131:21 | _ | patterns.cs:131:13:131:22 | (..., ...) | semmle.label | successor | -| patterns.cs:131:27:131:27 | 3 | patterns.cs:131:13:131:27 | ... => ... | semmle.label | successor | +| patterns.cs:131:27:131:27 | 3 | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:134:9:148:9 | After try {...} ... | patterns.cs:124:5:149:5 | After {...} | semmle.label | successor | | patterns.cs:134:9:148:9 | try {...} ... | patterns.cs:135:9:144:9 | {...} | semmle.label | successor | +| patterns.cs:135:9:144:9 | After {...} | patterns.cs:134:9:148:9 | After try {...} ... | semmle.label | successor | | patterns.cs:135:9:144:9 | {...} | patterns.cs:136:13:143:14 | ...; | semmle.label | successor | -| patterns.cs:136:13:143:13 | ... = ... | patterns.cs:123:10:123:21 | exit Expressions2 (normal) | semmle.label | successor | -| patterns.cs:136:13:143:14 | ...; | patterns.cs:136:17:136:17 | access to parameter o | semmle.label | successor | -| patterns.cs:136:17:136:17 | access to parameter o | patterns.cs:138:17:138:17 | 1 | semmle.label | successor | -| patterns.cs:136:17:143:13 | ... switch { ... } | patterns.cs:136:13:143:13 | ... = ... | semmle.label | successor | -| patterns.cs:138:17:138:17 | 1 | patterns.cs:138:28:138:50 | object creation of type ArgumentException | semmle.label | match | -| patterns.cs:138:17:138:17 | 1 | patterns.cs:139:17:139:17 | 2 | semmle.label | no-match | +| patterns.cs:136:13:136:13 | access to local variable r | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor | +| patterns.cs:136:13:143:13 | ... = ... | patterns.cs:136:13:143:13 | After ... = ... | semmle.label | successor | +| patterns.cs:136:13:143:13 | After ... = ... | patterns.cs:136:13:143:14 | After ...; | semmle.label | successor | +| patterns.cs:136:13:143:13 | Before ... = ... | patterns.cs:136:13:136:13 | access to local variable r | semmle.label | successor | +| patterns.cs:136:13:143:14 | ...; | patterns.cs:136:13:143:13 | Before ... = ... | semmle.label | successor | +| patterns.cs:136:13:143:14 | After ...; | patterns.cs:135:9:144:9 | After {...} | semmle.label | successor | +| patterns.cs:136:17:136:17 | access to parameter o | patterns.cs:138:17:138:50 | ... => ... | semmle.label | successor | +| patterns.cs:136:17:143:13 | ... switch { ... } | patterns.cs:136:17:136:17 | access to parameter o | semmle.label | successor | +| patterns.cs:136:17:143:13 | After ... switch { ... } | patterns.cs:136:13:143:13 | ... = ... | semmle.label | successor | +| patterns.cs:138:17:138:17 | 1 | patterns.cs:138:22:138:50 | Before throw ... | semmle.label | successor | +| patterns.cs:138:17:138:50 | ... => ... | patterns.cs:138:17:138:50 | After ... => ... [match] | semmle.label | match | +| patterns.cs:138:17:138:50 | ... => ... | patterns.cs:138:17:138:50 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:138:17:138:50 | After ... => ... [match] | patterns.cs:138:17:138:17 | 1 | semmle.label | successor | +| patterns.cs:138:17:138:50 | After ... => ... [no-match] | patterns.cs:139:17:139:22 | ... => ... | semmle.label | successor | +| patterns.cs:138:22:138:50 | Before throw ... | patterns.cs:138:28:138:50 | Before object creation of type ArgumentException | semmle.label | successor | | patterns.cs:138:22:138:50 | throw ... | patterns.cs:145:9:148:9 | catch (...) {...} | semmle.label | exception | -| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:138:22:138:50 | throw ... | semmle.label | successor | +| patterns.cs:138:28:138:50 | After object creation of type ArgumentException | patterns.cs:138:22:138:50 | throw ... | semmle.label | successor | +| patterns.cs:138:28:138:50 | Before object creation of type ArgumentException | patterns.cs:138:28:138:50 | object creation of type ArgumentException | semmle.label | successor | +| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:138:28:138:50 | After object creation of type ArgumentException | semmle.label | successor | | patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:145:9:148:9 | catch (...) {...} | semmle.label | exception | -| patterns.cs:139:17:139:17 | 2 | patterns.cs:139:22:139:22 | 3 | semmle.label | match | -| patterns.cs:139:17:139:17 | 2 | patterns.cs:140:17:140:24 | Object y | semmle.label | no-match | -| patterns.cs:139:17:139:22 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor | -| patterns.cs:139:22:139:22 | 3 | patterns.cs:139:17:139:22 | ... => ... | semmle.label | successor | -| patterns.cs:140:17:140:24 | Object y | patterns.cs:140:31:140:31 | access to local variable y | semmle.label | match | -| patterns.cs:140:17:140:24 | Object y | patterns.cs:141:17:141:22 | access to type String | semmle.label | no-match | -| patterns.cs:140:17:140:42 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor | -| patterns.cs:140:31:140:31 | access to local variable y | patterns.cs:140:36:140:37 | { ... } | semmle.label | successor | -| patterns.cs:140:31:140:37 | [false] ... is ... | patterns.cs:141:17:141:22 | access to type String | semmle.label | false | -| patterns.cs:140:31:140:37 | [true] ... is ... | patterns.cs:140:42:140:42 | 4 | semmle.label | true | -| patterns.cs:140:36:140:37 | [match] { ... } | patterns.cs:140:31:140:37 | [true] ... is ... | semmle.label | match | -| patterns.cs:140:36:140:37 | [no-match] { ... } | patterns.cs:140:31:140:37 | [false] ... is ... | semmle.label | no-match | -| patterns.cs:140:36:140:37 | { ... } | patterns.cs:140:36:140:37 | [match] { ... } | semmle.label | match | -| patterns.cs:140:36:140:37 | { ... } | patterns.cs:140:36:140:37 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:140:42:140:42 | 4 | patterns.cs:140:17:140:42 | ... => ... | semmle.label | successor | -| patterns.cs:141:17:141:22 | access to type String | patterns.cs:141:29:141:29 | 5 | semmle.label | match | -| patterns.cs:141:17:141:22 | access to type String | patterns.cs:142:17:142:24 | access to type MyStruct | semmle.label | no-match | -| patterns.cs:141:17:141:29 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor | -| patterns.cs:141:29:141:29 | 5 | patterns.cs:141:17:141:29 | ... => ... | semmle.label | successor | -| patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:17:142:36 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:31:142:32 | 10 | semmle.label | match | -| patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:142:41:142:41 | 6 | semmle.label | match | -| patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:145:9:148:9 | catch (...) {...} | semmle.label | exception | -| patterns.cs:142:17:142:36 | [no-match] { ... } | patterns.cs:145:9:148:9 | catch (...) {...} | semmle.label | exception | -| patterns.cs:142:17:142:41 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor | -| patterns.cs:142:26:142:34 | [match] { ... } | patterns.cs:142:17:142:36 | [match] { ... } | semmle.label | match | -| patterns.cs:142:26:142:34 | [no-match] { ... } | patterns.cs:142:17:142:36 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:142:31:142:32 | 10 | patterns.cs:142:26:142:34 | [match] { ... } | semmle.label | match | -| patterns.cs:142:31:142:32 | 10 | patterns.cs:142:26:142:34 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:142:41:142:41 | 6 | patterns.cs:142:17:142:41 | ... => ... | semmle.label | successor | -| patterns.cs:145:9:148:9 | catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception | -| patterns.cs:145:9:148:9 | catch (...) {...} | patterns.cs:145:41:145:42 | InvalidOperationException ex | semmle.label | match | +| patterns.cs:139:17:139:17 | 2 | patterns.cs:139:22:139:22 | 3 | semmle.label | successor | +| patterns.cs:139:17:139:22 | ... => ... | patterns.cs:139:17:139:22 | After ... => ... [match] | semmle.label | match | +| patterns.cs:139:17:139:22 | ... => ... | patterns.cs:139:17:139:22 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:139:17:139:22 | After ... => ... [match] | patterns.cs:139:17:139:17 | 2 | semmle.label | successor | +| patterns.cs:139:17:139:22 | After ... => ... [no-match] | patterns.cs:140:17:140:42 | ... => ... | semmle.label | successor | +| patterns.cs:139:22:139:22 | 3 | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:140:17:140:24 | Object y | patterns.cs:140:31:140:37 | Before ... is ... | semmle.label | successor | +| patterns.cs:140:17:140:42 | ... => ... | patterns.cs:140:17:140:42 | After ... => ... [match] | semmle.label | match | +| patterns.cs:140:17:140:42 | ... => ... | patterns.cs:140:17:140:42 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:140:17:140:42 | After ... => ... [match] | patterns.cs:140:17:140:24 | Object y | semmle.label | successor | +| patterns.cs:140:17:140:42 | After ... => ... [no-match] | patterns.cs:141:17:141:29 | ... => ... | semmle.label | successor | +| patterns.cs:140:31:140:31 | access to local variable y | patterns.cs:140:31:140:37 | ... is ... | semmle.label | successor | +| patterns.cs:140:31:140:37 | ... is ... | patterns.cs:140:31:140:37 | After ... is ... [false] | semmle.label | false | +| patterns.cs:140:31:140:37 | ... is ... | patterns.cs:140:31:140:37 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:140:31:140:37 | After ... is ... [false] | patterns.cs:141:17:141:29 | ... => ... | semmle.label | successor | +| patterns.cs:140:31:140:37 | After ... is ... [true] | patterns.cs:140:42:140:42 | 4 | semmle.label | successor | +| patterns.cs:140:31:140:37 | Before ... is ... | patterns.cs:140:31:140:31 | access to local variable y | semmle.label | successor | +| patterns.cs:140:31:140:37 | [match-true] ... is ... | patterns.cs:140:36:140:37 | Before { ... } | semmle.label | successor | +| patterns.cs:140:36:140:37 | After { ... } | patterns.cs:140:31:140:37 | After ... is ... [true] | semmle.label | true | +| patterns.cs:140:36:140:37 | Before { ... } | patterns.cs:140:36:140:37 | { ... } | semmle.label | successor | +| patterns.cs:140:36:140:37 | { ... } | patterns.cs:140:36:140:37 | After { ... } | semmle.label | successor | +| patterns.cs:140:36:140:37 | { ... } | patterns.cs:140:36:140:37 | { ... } | semmle.label | successor | +| patterns.cs:140:42:140:42 | 4 | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:141:17:141:22 | access to type String | patterns.cs:141:29:141:29 | 5 | semmle.label | successor | +| patterns.cs:141:17:141:29 | ... => ... | patterns.cs:141:17:141:29 | After ... => ... [match] | semmle.label | match | +| patterns.cs:141:17:141:29 | ... => ... | patterns.cs:141:17:141:29 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:141:17:141:29 | After ... => ... [match] | patterns.cs:141:17:141:22 | access to type String | semmle.label | successor | +| patterns.cs:141:17:141:29 | After ... => ... [no-match] | patterns.cs:142:17:142:41 | ... => ... | semmle.label | successor | +| patterns.cs:141:29:141:29 | 5 | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:26:142:34 | Before { ... } | semmle.label | successor | +| patterns.cs:142:17:142:36 | After { ... } | patterns.cs:142:41:142:41 | 6 | semmle.label | successor | +| patterns.cs:142:17:142:36 | Before { ... } | patterns.cs:142:17:142:24 | access to type MyStruct | semmle.label | successor | +| patterns.cs:142:17:142:36 | { ... } | patterns.cs:142:17:142:36 | After { ... } | semmle.label | successor | +| patterns.cs:142:17:142:41 | ... => ... | patterns.cs:142:17:142:41 | After ... => ... [match] | semmle.label | match | +| patterns.cs:142:17:142:41 | ... => ... | patterns.cs:142:17:142:41 | After ... => ... [no-match] | semmle.label | no-match | +| patterns.cs:142:17:142:41 | After ... => ... [match] | patterns.cs:142:17:142:36 | Before { ... } | semmle.label | successor | +| patterns.cs:142:17:142:41 | After ... => ... [no-match] | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:142:26:142:34 | After { ... } | patterns.cs:142:17:142:36 | { ... } | semmle.label | successor | +| patterns.cs:142:26:142:34 | Before { ... } | patterns.cs:142:31:142:32 | 10 | semmle.label | successor | +| patterns.cs:142:26:142:34 | { ... } | patterns.cs:142:26:142:34 | After { ... } | semmle.label | successor | +| patterns.cs:142:31:142:32 | 10 | patterns.cs:142:26:142:34 | { ... } | semmle.label | successor | +| patterns.cs:142:41:142:41 | 6 | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor | +| patterns.cs:145:9:148:9 | After catch (...) {...} [match] | patterns.cs:145:41:145:42 | InvalidOperationException ex | semmle.label | successor | +| patterns.cs:145:9:148:9 | After catch (...) {...} [no-match] | patterns.cs:123:10:123:21 | Exceptional Exit | semmle.label | exception | +| patterns.cs:145:9:148:9 | catch (...) {...} | patterns.cs:145:9:148:9 | After catch (...) {...} [match] | semmle.label | match | +| patterns.cs:145:9:148:9 | catch (...) {...} | patterns.cs:145:9:148:9 | After catch (...) {...} [no-match] | semmle.label | no-match | | patterns.cs:145:41:145:42 | InvalidOperationException ex | patterns.cs:146:9:148:9 | {...} | semmle.label | successor | +| patterns.cs:146:9:148:9 | After {...} | patterns.cs:134:9:148:9 | After try {...} ... | semmle.label | successor | | patterns.cs:146:9:148:9 | {...} | patterns.cs:147:13:147:51 | ...; | semmle.label | successor | -| patterns.cs:147:13:147:50 | call to method WriteLine | patterns.cs:123:10:123:21 | exit Expressions2 (normal) | semmle.label | successor | -| patterns.cs:147:13:147:51 | ...; | patterns.cs:147:31:147:49 | "Invalid operation" | semmle.label | successor | +| patterns.cs:147:13:147:50 | After call to method WriteLine | patterns.cs:147:13:147:51 | After ...; | semmle.label | successor | +| patterns.cs:147:13:147:50 | Before call to method WriteLine | patterns.cs:147:31:147:49 | "Invalid operation" | semmle.label | successor | +| patterns.cs:147:13:147:50 | call to method WriteLine | patterns.cs:147:13:147:50 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:147:13:147:51 | ...; | patterns.cs:147:13:147:50 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:147:13:147:51 | After ...; | patterns.cs:146:9:148:9 | After {...} | semmle.label | successor | | patterns.cs:147:31:147:49 | "Invalid operation" | patterns.cs:147:13:147:50 | call to method WriteLine | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected index 06e4623611b..0f9769342d1 100644 --- a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected @@ -1,201 +1,342 @@ -| patterns.cs:32:10:32:25 | enter SwitchStatements | patterns.cs:33:5:96:5 | {...} | semmle.label | successor | -| patterns.cs:32:10:32:25 | exit SwitchStatements (normal) | patterns.cs:32:10:32:25 | exit SwitchStatements | semmle.label | successor | +| patterns.cs:32:10:32:25 | Entry | patterns.cs:33:5:96:5 | {...} | semmle.label | successor | +| patterns.cs:32:10:32:25 | Normal Exit | patterns.cs:32:10:32:25 | Exit | semmle.label | successor | +| patterns.cs:33:5:96:5 | After {...} | patterns.cs:32:10:32:25 | Normal Exit | semmle.label | successor | | patterns.cs:33:5:96:5 | {...} | patterns.cs:34:9:34:39 | ... ...; | semmle.label | successor | -| patterns.cs:34:9:34:39 | ... ...; | patterns.cs:34:17:34:38 | object creation of type MyStruct | semmle.label | successor | -| patterns.cs:34:13:34:38 | MyStruct s = ... | patterns.cs:36:9:44:9 | switch (...) {...} | semmle.label | successor | -| patterns.cs:34:17:34:38 | object creation of type MyStruct | patterns.cs:34:36:34:36 | 0 | semmle.label | successor | -| patterns.cs:34:30:34:38 | { ..., ... } | patterns.cs:34:13:34:38 | MyStruct s = ... | semmle.label | successor | -| patterns.cs:34:32:34:32 | access to field X | patterns.cs:34:32:34:36 | ... = ... | semmle.label | successor | -| patterns.cs:34:32:34:36 | ... = ... | patterns.cs:34:30:34:38 | { ..., ... } | semmle.label | successor | -| patterns.cs:34:36:34:36 | 0 | patterns.cs:34:32:34:32 | access to field X | semmle.label | successor | +| patterns.cs:34:9:34:39 | ... ...; | patterns.cs:34:13:34:38 | Before MyStruct s = ... | semmle.label | successor | +| patterns.cs:34:9:34:39 | After ... ...; | patterns.cs:36:9:44:9 | switch (...) {...} | semmle.label | successor | +| patterns.cs:34:13:34:13 | access to local variable s | patterns.cs:34:17:34:38 | Before object creation of type MyStruct | semmle.label | successor | +| patterns.cs:34:13:34:38 | After MyStruct s = ... | patterns.cs:34:9:34:39 | After ... ...; | semmle.label | successor | +| patterns.cs:34:13:34:38 | Before MyStruct s = ... | patterns.cs:34:13:34:13 | access to local variable s | semmle.label | successor | +| patterns.cs:34:13:34:38 | MyStruct s = ... | patterns.cs:34:13:34:38 | After MyStruct s = ... | semmle.label | successor | +| patterns.cs:34:17:34:38 | After object creation of type MyStruct | patterns.cs:34:13:34:38 | MyStruct s = ... | semmle.label | successor | +| patterns.cs:34:17:34:38 | Before object creation of type MyStruct | patterns.cs:34:17:34:38 | object creation of type MyStruct | semmle.label | successor | +| patterns.cs:34:17:34:38 | object creation of type MyStruct | patterns.cs:34:30:34:38 | Before { ..., ... } | semmle.label | successor | +| patterns.cs:34:30:34:38 | After { ..., ... } | patterns.cs:34:17:34:38 | After object creation of type MyStruct | semmle.label | successor | +| patterns.cs:34:30:34:38 | Before { ..., ... } | patterns.cs:34:32:34:36 | Before ... = ... | semmle.label | successor | +| patterns.cs:34:30:34:38 | { ..., ... } | patterns.cs:34:30:34:38 | After { ..., ... } | semmle.label | successor | +| patterns.cs:34:32:34:32 | access to field X | patterns.cs:34:36:34:36 | 0 | semmle.label | successor | +| patterns.cs:34:32:34:36 | ... = ... | patterns.cs:34:32:34:36 | After ... = ... | semmle.label | successor | +| patterns.cs:34:32:34:36 | After ... = ... | patterns.cs:34:30:34:38 | { ..., ... } | semmle.label | successor | +| patterns.cs:34:32:34:36 | Before ... = ... | patterns.cs:34:32:34:32 | access to field X | semmle.label | successor | +| patterns.cs:34:36:34:36 | 0 | patterns.cs:34:32:34:36 | ... = ... | semmle.label | successor | +| patterns.cs:36:9:44:9 | After switch (...) {...} | patterns.cs:46:9:63:9 | switch (...) {...} | semmle.label | successor | | patterns.cs:36:9:44:9 | switch (...) {...} | patterns.cs:36:17:36:17 | access to local variable s | semmle.label | successor | | patterns.cs:36:17:36:17 | access to local variable s | patterns.cs:38:13:38:47 | case ...: | semmle.label | successor | -| patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:18:38:29 | MyStruct ms1 | semmle.label | successor | -| patterns.cs:38:18:38:29 | MyStruct ms1 | patterns.cs:38:36:38:38 | access to local variable ms1 | semmle.label | match | -| patterns.cs:38:18:38:29 | MyStruct ms1 | patterns.cs:41:13:41:46 | case ...: | semmle.label | no-match | +| patterns.cs:38:13:38:47 | After case ...: [match] | patterns.cs:38:18:38:29 | MyStruct ms1 | semmle.label | successor | +| patterns.cs:38:13:38:47 | After case ...: [no-match] | patterns.cs:41:13:41:46 | case ...: | semmle.label | successor | +| patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:13:38:47 | After case ...: [match] | semmle.label | match | +| patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:13:38:47 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:38:18:38:29 | MyStruct ms1 | patterns.cs:38:36:38:46 | Before ... == ... | semmle.label | successor | | patterns.cs:38:36:38:38 | access to local variable ms1 | patterns.cs:38:36:38:40 | access to field X | semmle.label | successor | -| patterns.cs:38:36:38:40 | access to field X | patterns.cs:38:45:38:46 | 10 | semmle.label | successor | -| patterns.cs:38:36:38:46 | ... == ... | patterns.cs:39:17:39:56 | ...; | semmle.label | true | -| patterns.cs:38:36:38:46 | ... == ... | patterns.cs:41:13:41:46 | case ...: | semmle.label | false | +| patterns.cs:38:36:38:40 | After access to field X | patterns.cs:38:45:38:46 | 10 | semmle.label | successor | +| patterns.cs:38:36:38:40 | Before access to field X | patterns.cs:38:36:38:38 | access to local variable ms1 | semmle.label | successor | +| patterns.cs:38:36:38:40 | access to field X | patterns.cs:38:36:38:40 | After access to field X | semmle.label | successor | +| patterns.cs:38:36:38:46 | ... == ... | patterns.cs:38:36:38:46 | After ... == ... [false] | semmle.label | false | +| patterns.cs:38:36:38:46 | ... == ... | patterns.cs:38:36:38:46 | After ... == ... [true] | semmle.label | true | +| patterns.cs:38:36:38:46 | After ... == ... [false] | patterns.cs:41:13:41:46 | case ...: | semmle.label | successor | +| patterns.cs:38:36:38:46 | After ... == ... [true] | patterns.cs:39:17:39:56 | ...; | semmle.label | successor | +| patterns.cs:38:36:38:46 | Before ... == ... | patterns.cs:38:36:38:40 | Before access to field X | semmle.label | successor | | patterns.cs:38:45:38:46 | 10 | patterns.cs:38:36:38:46 | ... == ... | semmle.label | successor | -| patterns.cs:39:17:39:55 | call to method WriteLine | patterns.cs:40:17:40:22 | break; | semmle.label | successor | -| patterns.cs:39:17:39:56 | ...; | patterns.cs:39:35:39:54 | "Hit the breakpoint" | semmle.label | successor | +| patterns.cs:39:17:39:55 | After call to method WriteLine | patterns.cs:39:17:39:56 | After ...; | semmle.label | successor | +| patterns.cs:39:17:39:55 | Before call to method WriteLine | patterns.cs:39:35:39:54 | "Hit the breakpoint" | semmle.label | successor | +| patterns.cs:39:17:39:55 | call to method WriteLine | patterns.cs:39:17:39:55 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:39:17:39:56 | ...; | patterns.cs:39:17:39:55 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:39:17:39:56 | After ...; | patterns.cs:40:17:40:22 | Before break; | semmle.label | successor | | patterns.cs:39:35:39:54 | "Hit the breakpoint" | patterns.cs:39:17:39:55 | call to method WriteLine | semmle.label | successor | -| patterns.cs:40:17:40:22 | break; | patterns.cs:46:9:63:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:41:13:41:46 | case ...: | patterns.cs:41:18:41:29 | MyStruct ms2 | semmle.label | successor | -| patterns.cs:41:18:41:29 | MyStruct ms2 | patterns.cs:41:36:41:38 | access to local variable ms2 | semmle.label | match | -| patterns.cs:41:18:41:29 | MyStruct ms2 | patterns.cs:46:9:63:9 | switch (...) {...} | semmle.label | no-match | +| patterns.cs:40:17:40:22 | Before break; | patterns.cs:40:17:40:22 | break; | semmle.label | successor | +| patterns.cs:40:17:40:22 | break; | patterns.cs:36:9:44:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:41:13:41:46 | After case ...: [match] | patterns.cs:41:18:41:29 | MyStruct ms2 | semmle.label | successor | +| patterns.cs:41:13:41:46 | After case ...: [no-match] | patterns.cs:36:9:44:9 | After switch (...) {...} | semmle.label | successor | +| patterns.cs:41:13:41:46 | case ...: | patterns.cs:41:13:41:46 | After case ...: [match] | semmle.label | match | +| patterns.cs:41:13:41:46 | case ...: | patterns.cs:41:13:41:46 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:41:18:41:29 | MyStruct ms2 | patterns.cs:41:36:41:45 | Before ... < ... | semmle.label | successor | | patterns.cs:41:36:41:38 | access to local variable ms2 | patterns.cs:41:36:41:40 | access to field X | semmle.label | successor | -| patterns.cs:41:36:41:40 | access to field X | patterns.cs:41:44:41:45 | 10 | semmle.label | successor | -| patterns.cs:41:36:41:45 | ... < ... | patterns.cs:42:17:42:59 | ...; | semmle.label | true | -| patterns.cs:41:36:41:45 | ... < ... | patterns.cs:46:9:63:9 | switch (...) {...} | semmle.label | false | +| patterns.cs:41:36:41:40 | After access to field X | patterns.cs:41:44:41:45 | 10 | semmle.label | successor | +| patterns.cs:41:36:41:40 | Before access to field X | patterns.cs:41:36:41:38 | access to local variable ms2 | semmle.label | successor | +| patterns.cs:41:36:41:40 | access to field X | patterns.cs:41:36:41:40 | After access to field X | semmle.label | successor | +| patterns.cs:41:36:41:45 | ... < ... | patterns.cs:41:36:41:45 | After ... < ... [false] | semmle.label | false | +| patterns.cs:41:36:41:45 | ... < ... | patterns.cs:41:36:41:45 | After ... < ... [true] | semmle.label | true | +| patterns.cs:41:36:41:45 | After ... < ... [false] | patterns.cs:36:9:44:9 | After switch (...) {...} | semmle.label | successor | +| patterns.cs:41:36:41:45 | After ... < ... [true] | patterns.cs:42:17:42:59 | ...; | semmle.label | successor | +| patterns.cs:41:36:41:45 | Before ... < ... | patterns.cs:41:36:41:40 | Before access to field X | semmle.label | successor | | patterns.cs:41:44:41:45 | 10 | patterns.cs:41:36:41:45 | ... < ... | semmle.label | successor | -| patterns.cs:42:17:42:58 | call to method WriteLine | patterns.cs:43:17:43:22 | break; | semmle.label | successor | -| patterns.cs:42:17:42:59 | ...; | patterns.cs:42:35:42:57 | "Missed the breakpoint" | semmle.label | successor | +| patterns.cs:42:17:42:58 | After call to method WriteLine | patterns.cs:42:17:42:59 | After ...; | semmle.label | successor | +| patterns.cs:42:17:42:58 | Before call to method WriteLine | patterns.cs:42:35:42:57 | "Missed the breakpoint" | semmle.label | successor | +| patterns.cs:42:17:42:58 | call to method WriteLine | patterns.cs:42:17:42:58 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:42:17:42:59 | ...; | patterns.cs:42:17:42:58 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:42:17:42:59 | After ...; | patterns.cs:43:17:43:22 | Before break; | semmle.label | successor | | patterns.cs:42:35:42:57 | "Missed the breakpoint" | patterns.cs:42:17:42:58 | call to method WriteLine | semmle.label | successor | -| patterns.cs:43:17:43:22 | break; | patterns.cs:46:9:63:9 | switch (...) {...} | semmle.label | break | +| patterns.cs:43:17:43:22 | Before break; | patterns.cs:43:17:43:22 | break; | semmle.label | successor | +| patterns.cs:43:17:43:22 | break; | patterns.cs:36:9:44:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:46:9:63:9 | After switch (...) {...} | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | successor | | patterns.cs:46:9:63:9 | switch (...) {...} | patterns.cs:46:17:46:17 | access to local variable s | semmle.label | successor | | patterns.cs:46:17:46:17 | access to local variable s | patterns.cs:48:13:48:50 | case ...: | semmle.label | successor | -| patterns.cs:48:13:48:50 | case ...: | patterns.cs:48:18:48:25 | access to type MyStruct | semmle.label | successor | -| patterns.cs:48:18:48:25 | access to type MyStruct | patterns.cs:48:18:48:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:48:18:48:25 | access to type MyStruct | patterns.cs:48:32:48:36 | Int32 x | semmle.label | match | -| patterns.cs:48:18:48:38 | [match] { ... } | patterns.cs:48:45:48:45 | access to local variable x | semmle.label | match | -| patterns.cs:48:18:48:38 | [no-match] { ... } | patterns.cs:51:13:51:39 | case ...: | semmle.label | no-match | -| patterns.cs:48:27:48:38 | [match] { ... } | patterns.cs:48:18:48:38 | [match] { ... } | semmle.label | match | -| patterns.cs:48:27:48:38 | [no-match] { ... } | patterns.cs:48:18:48:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:48:32:48:36 | Int32 x | patterns.cs:48:27:48:38 | [match] { ... } | semmle.label | match | -| patterns.cs:48:32:48:36 | Int32 x | patterns.cs:48:27:48:38 | [no-match] { ... } | semmle.label | no-match | +| patterns.cs:48:13:48:50 | After case ...: [match] | patterns.cs:48:18:48:38 | Before { ... } | semmle.label | successor | +| patterns.cs:48:13:48:50 | After case ...: [no-match] | patterns.cs:51:13:51:39 | case ...: | semmle.label | successor | +| patterns.cs:48:13:48:50 | case ...: | patterns.cs:48:13:48:50 | After case ...: [match] | semmle.label | match | +| patterns.cs:48:13:48:50 | case ...: | patterns.cs:48:13:48:50 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:48:18:48:25 | access to type MyStruct | patterns.cs:48:27:48:38 | Before { ... } | semmle.label | successor | +| patterns.cs:48:18:48:38 | After { ... } | patterns.cs:48:45:48:49 | Before ... > ... | semmle.label | successor | +| patterns.cs:48:18:48:38 | Before { ... } | patterns.cs:48:18:48:25 | access to type MyStruct | semmle.label | successor | +| patterns.cs:48:18:48:38 | { ... } | patterns.cs:48:18:48:38 | After { ... } | semmle.label | successor | +| patterns.cs:48:27:48:38 | After { ... } | patterns.cs:48:18:48:38 | { ... } | semmle.label | successor | +| patterns.cs:48:27:48:38 | Before { ... } | patterns.cs:48:32:48:36 | Int32 x | semmle.label | successor | +| patterns.cs:48:27:48:38 | { ... } | patterns.cs:48:27:48:38 | After { ... } | semmle.label | successor | +| patterns.cs:48:32:48:36 | Int32 x | patterns.cs:48:27:48:38 | { ... } | semmle.label | successor | | patterns.cs:48:45:48:45 | access to local variable x | patterns.cs:48:49:48:49 | 2 | semmle.label | successor | -| patterns.cs:48:45:48:49 | ... > ... | patterns.cs:49:17:49:37 | ...; | semmle.label | true | -| patterns.cs:48:45:48:49 | ... > ... | patterns.cs:51:13:51:39 | case ...: | semmle.label | false | +| patterns.cs:48:45:48:49 | ... > ... | patterns.cs:48:45:48:49 | After ... > ... [false] | semmle.label | false | +| patterns.cs:48:45:48:49 | ... > ... | patterns.cs:48:45:48:49 | After ... > ... [true] | semmle.label | true | +| patterns.cs:48:45:48:49 | After ... > ... [false] | patterns.cs:51:13:51:39 | case ...: | semmle.label | successor | +| patterns.cs:48:45:48:49 | After ... > ... [true] | patterns.cs:49:17:49:37 | ...; | semmle.label | successor | +| patterns.cs:48:45:48:49 | Before ... > ... | patterns.cs:48:45:48:45 | access to local variable x | semmle.label | successor | | patterns.cs:48:49:48:49 | 2 | patterns.cs:48:45:48:49 | ... > ... | semmle.label | successor | -| patterns.cs:49:17:49:36 | call to method WriteLine | patterns.cs:50:17:50:22 | break; | semmle.label | successor | -| patterns.cs:49:17:49:37 | ...; | patterns.cs:49:35:49:35 | access to local variable x | semmle.label | successor | +| patterns.cs:49:17:49:36 | After call to method WriteLine | patterns.cs:49:17:49:37 | After ...; | semmle.label | successor | +| patterns.cs:49:17:49:36 | Before call to method WriteLine | patterns.cs:49:35:49:35 | access to local variable x | semmle.label | successor | +| patterns.cs:49:17:49:36 | call to method WriteLine | patterns.cs:49:17:49:36 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:49:17:49:37 | ...; | patterns.cs:49:17:49:36 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:49:17:49:37 | After ...; | patterns.cs:50:17:50:22 | Before break; | semmle.label | successor | | patterns.cs:49:35:49:35 | access to local variable x | patterns.cs:49:17:49:36 | call to method WriteLine | semmle.label | successor | -| patterns.cs:50:17:50:22 | break; | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:51:13:51:39 | case ...: | patterns.cs:51:18:51:38 | MyStruct ms | semmle.label | successor | -| patterns.cs:51:18:51:38 | MyStruct ms | patterns.cs:51:18:51:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:51:18:51:38 | MyStruct ms | patterns.cs:51:32:51:33 | 10 | semmle.label | match | -| patterns.cs:51:18:51:38 | [match] { ... } | patterns.cs:52:17:52:56 | ...; | semmle.label | match | -| patterns.cs:51:18:51:38 | [no-match] { ... } | patterns.cs:54:13:54:43 | case ...: | semmle.label | no-match | -| patterns.cs:51:27:51:35 | [match] { ... } | patterns.cs:51:18:51:38 | [match] { ... } | semmle.label | match | -| patterns.cs:51:27:51:35 | [no-match] { ... } | patterns.cs:51:18:51:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:51:32:51:33 | 10 | patterns.cs:51:27:51:35 | [match] { ... } | semmle.label | match | -| patterns.cs:51:32:51:33 | 10 | patterns.cs:51:27:51:35 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:52:17:52:55 | call to method WriteLine | patterns.cs:53:17:53:22 | break; | semmle.label | successor | -| patterns.cs:52:17:52:56 | ...; | patterns.cs:52:35:52:54 | "Hit the breakpoint" | semmle.label | successor | +| patterns.cs:50:17:50:22 | Before break; | patterns.cs:50:17:50:22 | break; | semmle.label | successor | +| patterns.cs:50:17:50:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:51:13:51:39 | After case ...: [match] | patterns.cs:51:18:51:38 | Before { ... } | semmle.label | successor | +| patterns.cs:51:13:51:39 | After case ...: [no-match] | patterns.cs:54:13:54:43 | case ...: | semmle.label | successor | +| patterns.cs:51:13:51:39 | case ...: | patterns.cs:51:13:51:39 | After case ...: [match] | semmle.label | match | +| patterns.cs:51:13:51:39 | case ...: | patterns.cs:51:13:51:39 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:51:18:51:25 | access to type MyStruct | patterns.cs:51:27:51:35 | Before { ... } | semmle.label | successor | +| patterns.cs:51:18:51:38 | After { ... } | patterns.cs:52:17:52:56 | ...; | semmle.label | successor | +| patterns.cs:51:18:51:38 | Before { ... } | patterns.cs:51:18:51:38 | MyStruct ms | semmle.label | successor | +| patterns.cs:51:18:51:38 | MyStruct ms | patterns.cs:51:18:51:25 | access to type MyStruct | semmle.label | successor | +| patterns.cs:51:18:51:38 | { ... } | patterns.cs:51:18:51:38 | After { ... } | semmle.label | successor | +| patterns.cs:51:27:51:35 | After { ... } | patterns.cs:51:18:51:38 | { ... } | semmle.label | successor | +| patterns.cs:51:27:51:35 | Before { ... } | patterns.cs:51:32:51:33 | 10 | semmle.label | successor | +| patterns.cs:51:27:51:35 | { ... } | patterns.cs:51:27:51:35 | After { ... } | semmle.label | successor | +| patterns.cs:51:32:51:33 | 10 | patterns.cs:51:27:51:35 | { ... } | semmle.label | successor | +| patterns.cs:52:17:52:55 | After call to method WriteLine | patterns.cs:52:17:52:56 | After ...; | semmle.label | successor | +| patterns.cs:52:17:52:55 | Before call to method WriteLine | patterns.cs:52:35:52:54 | "Hit the breakpoint" | semmle.label | successor | +| patterns.cs:52:17:52:55 | call to method WriteLine | patterns.cs:52:17:52:55 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:52:17:52:56 | ...; | patterns.cs:52:17:52:55 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:52:17:52:56 | After ...; | patterns.cs:53:17:53:22 | Before break; | semmle.label | successor | | patterns.cs:52:35:52:54 | "Hit the breakpoint" | patterns.cs:52:17:52:55 | call to method WriteLine | semmle.label | successor | -| patterns.cs:53:17:53:22 | break; | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:54:13:54:43 | case ...: | patterns.cs:54:23:54:28 | Int32 x2 | semmle.label | successor | -| patterns.cs:54:18:54:30 | [match] { ... } | patterns.cs:54:18:54:30 | [match] { ... } | semmle.label | match | -| patterns.cs:54:18:54:30 | [match] { ... } | patterns.cs:54:37:54:38 | access to local variable x2 | semmle.label | match | -| patterns.cs:54:18:54:30 | [no-match] { ... } | patterns.cs:54:18:54:30 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:54:18:54:30 | [no-match] { ... } | patterns.cs:57:13:57:24 | case ...: | semmle.label | no-match | -| patterns.cs:54:23:54:28 | Int32 x2 | patterns.cs:54:18:54:30 | [match] { ... } | semmle.label | match | -| patterns.cs:54:23:54:28 | Int32 x2 | patterns.cs:54:18:54:30 | [no-match] { ... } | semmle.label | no-match | +| patterns.cs:53:17:53:22 | Before break; | patterns.cs:53:17:53:22 | break; | semmle.label | successor | +| patterns.cs:53:17:53:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:54:13:54:43 | After case ...: [match] | patterns.cs:54:18:54:30 | Before { ... } | semmle.label | successor | +| patterns.cs:54:13:54:43 | After case ...: [no-match] | patterns.cs:57:13:57:24 | case ...: | semmle.label | successor | +| patterns.cs:54:13:54:43 | case ...: | patterns.cs:54:13:54:43 | After case ...: [match] | semmle.label | match | +| patterns.cs:54:13:54:43 | case ...: | patterns.cs:54:13:54:43 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:54:18:54:30 | After { ... } | patterns.cs:54:18:54:30 | { ... } | semmle.label | successor | +| patterns.cs:54:18:54:30 | After { ... } | patterns.cs:54:37:54:42 | Before ... > ... | semmle.label | successor | +| patterns.cs:54:18:54:30 | Before { ... } | patterns.cs:54:18:54:30 | Before { ... } | semmle.label | successor | +| patterns.cs:54:18:54:30 | Before { ... } | patterns.cs:54:23:54:28 | Int32 x2 | semmle.label | successor | +| patterns.cs:54:18:54:30 | { ... } | patterns.cs:54:18:54:30 | After { ... } | semmle.label | successor | +| patterns.cs:54:18:54:30 | { ... } | patterns.cs:54:18:54:30 | After { ... } | semmle.label | successor | +| patterns.cs:54:23:54:28 | Int32 x2 | patterns.cs:54:18:54:30 | { ... } | semmle.label | successor | | patterns.cs:54:37:54:38 | access to local variable x2 | patterns.cs:54:42:54:42 | 2 | semmle.label | successor | -| patterns.cs:54:37:54:42 | ... > ... | patterns.cs:55:17:55:38 | ...; | semmle.label | true | -| patterns.cs:54:37:54:42 | ... > ... | patterns.cs:57:13:57:24 | case ...: | semmle.label | false | +| patterns.cs:54:37:54:42 | ... > ... | patterns.cs:54:37:54:42 | After ... > ... [false] | semmle.label | false | +| patterns.cs:54:37:54:42 | ... > ... | patterns.cs:54:37:54:42 | After ... > ... [true] | semmle.label | true | +| patterns.cs:54:37:54:42 | After ... > ... [false] | patterns.cs:57:13:57:24 | case ...: | semmle.label | successor | +| patterns.cs:54:37:54:42 | After ... > ... [true] | patterns.cs:55:17:55:38 | ...; | semmle.label | successor | +| patterns.cs:54:37:54:42 | Before ... > ... | patterns.cs:54:37:54:38 | access to local variable x2 | semmle.label | successor | | patterns.cs:54:42:54:42 | 2 | patterns.cs:54:37:54:42 | ... > ... | semmle.label | successor | -| patterns.cs:55:17:55:37 | call to method WriteLine | patterns.cs:56:17:56:22 | break; | semmle.label | successor | -| patterns.cs:55:17:55:38 | ...; | patterns.cs:55:35:55:36 | access to local variable x2 | semmle.label | successor | +| patterns.cs:55:17:55:37 | After call to method WriteLine | patterns.cs:55:17:55:38 | After ...; | semmle.label | successor | +| patterns.cs:55:17:55:37 | Before call to method WriteLine | patterns.cs:55:35:55:36 | access to local variable x2 | semmle.label | successor | +| patterns.cs:55:17:55:37 | call to method WriteLine | patterns.cs:55:17:55:37 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:55:17:55:38 | ...; | patterns.cs:55:17:55:37 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:55:17:55:38 | After ...; | patterns.cs:56:17:56:22 | Before break; | semmle.label | successor | | patterns.cs:55:35:55:36 | access to local variable x2 | patterns.cs:55:17:55:37 | call to method WriteLine | semmle.label | successor | -| patterns.cs:56:17:56:22 | break; | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:57:13:57:24 | case ...: | patterns.cs:57:18:57:23 | ( ... ) | semmle.label | successor | -| patterns.cs:57:18:57:23 | ( ... ) | patterns.cs:57:18:57:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:57:18:57:23 | ( ... ) | patterns.cs:57:19:57:19 | 1 | semmle.label | match | -| patterns.cs:57:18:57:23 | [match] { ... } | patterns.cs:58:17:58:22 | break; | semmle.label | match | -| patterns.cs:57:18:57:23 | [no-match] { ... } | patterns.cs:59:13:59:28 | case ...: | semmle.label | no-match | -| patterns.cs:57:19:57:19 | 1 | patterns.cs:57:18:57:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:57:19:57:19 | 1 | patterns.cs:57:22:57:22 | 2 | semmle.label | match | -| patterns.cs:57:22:57:22 | 2 | patterns.cs:57:18:57:23 | [match] { ... } | semmle.label | match | -| patterns.cs:57:22:57:22 | 2 | patterns.cs:57:18:57:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:58:17:58:22 | break; | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:59:13:59:28 | case ...: | patterns.cs:59:23:59:23 | Int32 x | semmle.label | successor | -| patterns.cs:59:18:59:27 | (..., ...) | patterns.cs:60:17:60:22 | break; | semmle.label | match | -| patterns.cs:59:18:59:27 | (..., ...) | patterns.cs:61:13:61:20 | default: | semmle.label | no-match | +| patterns.cs:56:17:56:22 | Before break; | patterns.cs:56:17:56:22 | break; | semmle.label | successor | +| patterns.cs:56:17:56:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:57:13:57:24 | After case ...: [match] | patterns.cs:57:18:57:23 | Before { ... } | semmle.label | successor | +| patterns.cs:57:13:57:24 | After case ...: [no-match] | patterns.cs:59:13:59:28 | case ...: | semmle.label | successor | +| patterns.cs:57:13:57:24 | case ...: | patterns.cs:57:13:57:24 | After case ...: [match] | semmle.label | match | +| patterns.cs:57:13:57:24 | case ...: | patterns.cs:57:13:57:24 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:57:18:57:23 | ( ... ) | patterns.cs:57:18:57:23 | After ( ... ) | semmle.label | successor | +| patterns.cs:57:18:57:23 | After ( ... ) | patterns.cs:57:18:57:23 | { ... } | semmle.label | successor | +| patterns.cs:57:18:57:23 | After { ... } | patterns.cs:58:17:58:22 | Before break; | semmle.label | successor | +| patterns.cs:57:18:57:23 | Before ( ... ) | patterns.cs:57:19:57:19 | 1 | semmle.label | successor | +| patterns.cs:57:18:57:23 | Before { ... } | patterns.cs:57:18:57:23 | Before ( ... ) | semmle.label | successor | +| patterns.cs:57:18:57:23 | { ... } | patterns.cs:57:18:57:23 | After { ... } | semmle.label | successor | +| patterns.cs:57:19:57:19 | 1 | patterns.cs:57:22:57:22 | 2 | semmle.label | successor | +| patterns.cs:57:22:57:22 | 2 | patterns.cs:57:18:57:23 | ( ... ) | semmle.label | successor | +| patterns.cs:58:17:58:22 | Before break; | patterns.cs:58:17:58:22 | break; | semmle.label | successor | +| patterns.cs:58:17:58:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:59:13:59:28 | After case ...: [match] | patterns.cs:59:18:59:27 | Before (..., ...) | semmle.label | successor | +| patterns.cs:59:13:59:28 | After case ...: [no-match] | patterns.cs:61:13:61:20 | default: | semmle.label | successor | +| patterns.cs:59:13:59:28 | case ...: | patterns.cs:59:13:59:28 | After case ...: [match] | semmle.label | match | +| patterns.cs:59:13:59:28 | case ...: | patterns.cs:59:13:59:28 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:59:18:59:27 | (..., ...) | patterns.cs:59:18:59:27 | After (..., ...) | semmle.label | successor | +| patterns.cs:59:18:59:27 | After (..., ...) | patterns.cs:60:17:60:22 | Before break; | semmle.label | successor | +| patterns.cs:59:18:59:27 | Before (..., ...) | patterns.cs:59:23:59:23 | Int32 x | semmle.label | successor | | patterns.cs:59:23:59:23 | Int32 x | patterns.cs:59:26:59:26 | Int32 y | semmle.label | successor | | patterns.cs:59:26:59:26 | Int32 y | patterns.cs:59:18:59:27 | (..., ...) | semmle.label | successor | -| patterns.cs:60:17:60:22 | break; | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:61:13:61:20 | default: | patterns.cs:62:17:62:22 | break; | semmle.label | successor | -| patterns.cs:62:17:62:22 | break; | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | break | +| patterns.cs:60:17:60:22 | Before break; | patterns.cs:60:17:60:22 | break; | semmle.label | successor | +| patterns.cs:60:17:60:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:61:13:61:20 | After default: [match] | patterns.cs:62:17:62:22 | Before break; | semmle.label | successor | +| patterns.cs:61:13:61:20 | default: | patterns.cs:61:13:61:20 | After default: [match] | semmle.label | match | +| patterns.cs:62:17:62:22 | Before break; | patterns.cs:62:17:62:22 | break; | semmle.label | successor | +| patterns.cs:62:17:62:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:65:9:73:9 | After switch (...) {...} | patterns.cs:76:9:84:9 | switch (...) {...} | semmle.label | successor | | patterns.cs:65:9:73:9 | switch (...) {...} | patterns.cs:65:17:65:17 | access to local variable s | semmle.label | successor | | patterns.cs:65:17:65:17 | access to local variable s | patterns.cs:67:13:67:50 | case ...: | semmle.label | successor | -| patterns.cs:67:13:67:50 | case ...: | patterns.cs:67:18:67:25 | access to type MyStruct | semmle.label | successor | -| patterns.cs:67:18:67:25 | access to type MyStruct | patterns.cs:67:18:67:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:67:18:67:25 | access to type MyStruct | patterns.cs:67:32:67:36 | Int32 x | semmle.label | match | -| patterns.cs:67:18:67:38 | [match] { ... } | patterns.cs:67:45:67:45 | access to local variable x | semmle.label | match | -| patterns.cs:67:18:67:38 | [no-match] { ... } | patterns.cs:70:13:70:51 | case ...: | semmle.label | no-match | -| patterns.cs:67:27:67:38 | [match] { ... } | patterns.cs:67:18:67:38 | [match] { ... } | semmle.label | match | -| patterns.cs:67:27:67:38 | [no-match] { ... } | patterns.cs:67:18:67:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:67:32:67:36 | Int32 x | patterns.cs:67:27:67:38 | [match] { ... } | semmle.label | match | -| patterns.cs:67:32:67:36 | Int32 x | patterns.cs:67:27:67:38 | [no-match] { ... } | semmle.label | no-match | +| patterns.cs:67:13:67:50 | After case ...: [match] | patterns.cs:67:18:67:38 | Before { ... } | semmle.label | successor | +| patterns.cs:67:13:67:50 | After case ...: [no-match] | patterns.cs:70:13:70:51 | case ...: | semmle.label | successor | +| patterns.cs:67:13:67:50 | case ...: | patterns.cs:67:13:67:50 | After case ...: [match] | semmle.label | match | +| patterns.cs:67:13:67:50 | case ...: | patterns.cs:67:13:67:50 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:67:18:67:25 | access to type MyStruct | patterns.cs:67:27:67:38 | Before { ... } | semmle.label | successor | +| patterns.cs:67:18:67:38 | After { ... } | patterns.cs:67:45:67:49 | Before ... > ... | semmle.label | successor | +| patterns.cs:67:18:67:38 | Before { ... } | patterns.cs:67:18:67:25 | access to type MyStruct | semmle.label | successor | +| patterns.cs:67:18:67:38 | { ... } | patterns.cs:67:18:67:38 | After { ... } | semmle.label | successor | +| patterns.cs:67:27:67:38 | After { ... } | patterns.cs:67:18:67:38 | { ... } | semmle.label | successor | +| patterns.cs:67:27:67:38 | Before { ... } | patterns.cs:67:32:67:36 | Int32 x | semmle.label | successor | +| patterns.cs:67:27:67:38 | { ... } | patterns.cs:67:27:67:38 | After { ... } | semmle.label | successor | +| patterns.cs:67:32:67:36 | Int32 x | patterns.cs:67:27:67:38 | { ... } | semmle.label | successor | | patterns.cs:67:45:67:45 | access to local variable x | patterns.cs:67:49:67:49 | 2 | semmle.label | successor | -| patterns.cs:67:45:67:49 | ... > ... | patterns.cs:68:17:68:37 | ...; | semmle.label | true | -| patterns.cs:67:45:67:49 | ... > ... | patterns.cs:70:13:70:51 | case ...: | semmle.label | false | +| patterns.cs:67:45:67:49 | ... > ... | patterns.cs:67:45:67:49 | After ... > ... [false] | semmle.label | false | +| patterns.cs:67:45:67:49 | ... > ... | patterns.cs:67:45:67:49 | After ... > ... [true] | semmle.label | true | +| patterns.cs:67:45:67:49 | After ... > ... [false] | patterns.cs:70:13:70:51 | case ...: | semmle.label | successor | +| patterns.cs:67:45:67:49 | After ... > ... [true] | patterns.cs:68:17:68:37 | ...; | semmle.label | successor | +| patterns.cs:67:45:67:49 | Before ... > ... | patterns.cs:67:45:67:45 | access to local variable x | semmle.label | successor | | patterns.cs:67:49:67:49 | 2 | patterns.cs:67:45:67:49 | ... > ... | semmle.label | successor | -| patterns.cs:68:17:68:36 | call to method WriteLine | patterns.cs:69:17:69:22 | break; | semmle.label | successor | -| patterns.cs:68:17:68:37 | ...; | patterns.cs:68:35:68:35 | access to local variable x | semmle.label | successor | +| patterns.cs:68:17:68:36 | After call to method WriteLine | patterns.cs:68:17:68:37 | After ...; | semmle.label | successor | +| patterns.cs:68:17:68:36 | Before call to method WriteLine | patterns.cs:68:35:68:35 | access to local variable x | semmle.label | successor | +| patterns.cs:68:17:68:36 | call to method WriteLine | patterns.cs:68:17:68:36 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:68:17:68:37 | ...; | patterns.cs:68:17:68:36 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:68:17:68:37 | After ...; | patterns.cs:69:17:69:22 | Before break; | semmle.label | successor | | patterns.cs:68:35:68:35 | access to local variable x | patterns.cs:68:17:68:36 | call to method WriteLine | semmle.label | successor | -| patterns.cs:69:17:69:22 | break; | patterns.cs:76:9:84:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:70:13:70:51 | case ...: | patterns.cs:70:18:70:38 | MyStruct ms | semmle.label | successor | -| patterns.cs:70:18:70:38 | MyStruct ms | patterns.cs:70:18:70:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:70:18:70:38 | MyStruct ms | patterns.cs:70:32:70:33 | 10 | semmle.label | match | -| patterns.cs:70:18:70:38 | [match] { ... } | patterns.cs:70:45:70:45 | access to local variable s | semmle.label | match | -| patterns.cs:70:18:70:38 | [no-match] { ... } | patterns.cs:76:9:84:9 | switch (...) {...} | semmle.label | no-match | -| patterns.cs:70:27:70:35 | [match] { ... } | patterns.cs:70:18:70:38 | [match] { ... } | semmle.label | match | -| patterns.cs:70:27:70:35 | [no-match] { ... } | patterns.cs:70:18:70:38 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:70:32:70:33 | 10 | patterns.cs:70:27:70:35 | [match] { ... } | semmle.label | match | -| patterns.cs:70:32:70:33 | 10 | patterns.cs:70:27:70:35 | [no-match] { ... } | semmle.label | no-match | +| patterns.cs:69:17:69:22 | Before break; | patterns.cs:69:17:69:22 | break; | semmle.label | successor | +| patterns.cs:69:17:69:22 | break; | patterns.cs:65:9:73:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:70:13:70:51 | After case ...: [match] | patterns.cs:70:18:70:38 | Before { ... } | semmle.label | successor | +| patterns.cs:70:13:70:51 | After case ...: [no-match] | patterns.cs:65:9:73:9 | After switch (...) {...} | semmle.label | successor | +| patterns.cs:70:13:70:51 | case ...: | patterns.cs:70:13:70:51 | After case ...: [match] | semmle.label | match | +| patterns.cs:70:13:70:51 | case ...: | patterns.cs:70:13:70:51 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:70:18:70:25 | access to type MyStruct | patterns.cs:70:27:70:35 | Before { ... } | semmle.label | successor | +| patterns.cs:70:18:70:38 | After { ... } | patterns.cs:70:45:70:50 | Before ... == ... | semmle.label | successor | +| patterns.cs:70:18:70:38 | Before { ... } | patterns.cs:70:18:70:38 | MyStruct ms | semmle.label | successor | +| patterns.cs:70:18:70:38 | MyStruct ms | patterns.cs:70:18:70:25 | access to type MyStruct | semmle.label | successor | +| patterns.cs:70:18:70:38 | { ... } | patterns.cs:70:18:70:38 | After { ... } | semmle.label | successor | +| patterns.cs:70:27:70:35 | After { ... } | patterns.cs:70:18:70:38 | { ... } | semmle.label | successor | +| patterns.cs:70:27:70:35 | Before { ... } | patterns.cs:70:32:70:33 | 10 | semmle.label | successor | +| patterns.cs:70:27:70:35 | { ... } | patterns.cs:70:27:70:35 | After { ... } | semmle.label | successor | +| patterns.cs:70:32:70:33 | 10 | patterns.cs:70:27:70:35 | { ... } | semmle.label | successor | | patterns.cs:70:45:70:45 | access to local variable s | patterns.cs:70:45:70:47 | access to field X | semmle.label | successor | -| patterns.cs:70:45:70:47 | access to field X | patterns.cs:70:50:70:50 | 0 | semmle.label | successor | -| patterns.cs:70:45:70:50 | ... == ... | patterns.cs:71:17:71:56 | ...; | semmle.label | true | -| patterns.cs:70:45:70:50 | ... == ... | patterns.cs:76:9:84:9 | switch (...) {...} | semmle.label | false | +| patterns.cs:70:45:70:47 | After access to field X | patterns.cs:70:50:70:50 | 0 | semmle.label | successor | +| patterns.cs:70:45:70:47 | Before access to field X | patterns.cs:70:45:70:45 | access to local variable s | semmle.label | successor | +| patterns.cs:70:45:70:47 | access to field X | patterns.cs:70:45:70:47 | After access to field X | semmle.label | successor | +| patterns.cs:70:45:70:50 | ... == ... | patterns.cs:70:45:70:50 | After ... == ... [false] | semmle.label | false | +| patterns.cs:70:45:70:50 | ... == ... | patterns.cs:70:45:70:50 | After ... == ... [true] | semmle.label | true | +| patterns.cs:70:45:70:50 | After ... == ... [false] | patterns.cs:65:9:73:9 | After switch (...) {...} | semmle.label | successor | +| patterns.cs:70:45:70:50 | After ... == ... [true] | patterns.cs:71:17:71:56 | ...; | semmle.label | successor | +| patterns.cs:70:45:70:50 | Before ... == ... | patterns.cs:70:45:70:47 | Before access to field X | semmle.label | successor | | patterns.cs:70:50:70:50 | 0 | patterns.cs:70:45:70:50 | ... == ... | semmle.label | successor | -| patterns.cs:71:17:71:55 | call to method WriteLine | patterns.cs:72:17:72:22 | break; | semmle.label | successor | -| patterns.cs:71:17:71:56 | ...; | patterns.cs:71:35:71:54 | "Hit the breakpoint" | semmle.label | successor | +| patterns.cs:71:17:71:55 | After call to method WriteLine | patterns.cs:71:17:71:56 | After ...; | semmle.label | successor | +| patterns.cs:71:17:71:55 | Before call to method WriteLine | patterns.cs:71:35:71:54 | "Hit the breakpoint" | semmle.label | successor | +| patterns.cs:71:17:71:55 | call to method WriteLine | patterns.cs:71:17:71:55 | After call to method WriteLine | semmle.label | successor | +| patterns.cs:71:17:71:56 | ...; | patterns.cs:71:17:71:55 | Before call to method WriteLine | semmle.label | successor | +| patterns.cs:71:17:71:56 | After ...; | patterns.cs:72:17:72:22 | Before break; | semmle.label | successor | | patterns.cs:71:35:71:54 | "Hit the breakpoint" | patterns.cs:71:17:71:55 | call to method WriteLine | semmle.label | successor | -| patterns.cs:72:17:72:22 | break; | patterns.cs:76:9:84:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:76:9:84:9 | switch (...) {...} | patterns.cs:76:17:76:28 | object creation of type Object | semmle.label | successor | -| patterns.cs:76:17:76:28 | object creation of type Object | patterns.cs:78:13:78:43 | case ...: | semmle.label | successor | -| patterns.cs:78:13:78:43 | case ...: | patterns.cs:78:18:78:33 | ( ... ) | semmle.label | successor | -| patterns.cs:78:18:78:33 | ( ... ) | patterns.cs:78:18:78:33 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:78:18:78:33 | ( ... ) | patterns.cs:78:19:78:23 | Int32 x | semmle.label | match | -| patterns.cs:78:18:78:33 | [match] { ... } | patterns.cs:78:40:78:40 | access to local variable x | semmle.label | match | -| patterns.cs:78:18:78:33 | [no-match] { ... } | patterns.cs:80:13:80:20 | case ...: | semmle.label | no-match | -| patterns.cs:78:19:78:23 | Int32 x | patterns.cs:78:18:78:33 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:78:19:78:23 | Int32 x | patterns.cs:78:26:78:32 | Single y | semmle.label | match | -| patterns.cs:78:26:78:32 | Single y | patterns.cs:78:18:78:33 | [match] { ... } | semmle.label | match | -| patterns.cs:78:26:78:32 | Single y | patterns.cs:78:18:78:33 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:78:40:78:40 | (...) ... | patterns.cs:78:42:78:42 | access to local variable y | semmle.label | successor | +| patterns.cs:72:17:72:22 | Before break; | patterns.cs:72:17:72:22 | break; | semmle.label | successor | +| patterns.cs:72:17:72:22 | break; | patterns.cs:65:9:73:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:76:9:84:9 | After switch (...) {...} | patterns.cs:86:9:89:9 | switch (...) {...} | semmle.label | successor | +| patterns.cs:76:9:84:9 | switch (...) {...} | patterns.cs:76:17:76:28 | Before object creation of type Object | semmle.label | successor | +| patterns.cs:76:17:76:28 | After object creation of type Object | patterns.cs:78:13:78:43 | case ...: | semmle.label | successor | +| patterns.cs:76:17:76:28 | Before object creation of type Object | patterns.cs:76:17:76:28 | object creation of type Object | semmle.label | successor | +| patterns.cs:76:17:76:28 | object creation of type Object | patterns.cs:76:17:76:28 | After object creation of type Object | semmle.label | successor | +| patterns.cs:78:13:78:43 | After case ...: [match] | patterns.cs:78:18:78:33 | Before { ... } | semmle.label | successor | +| patterns.cs:78:13:78:43 | After case ...: [no-match] | patterns.cs:80:13:80:20 | case ...: | semmle.label | successor | +| patterns.cs:78:13:78:43 | case ...: | patterns.cs:78:13:78:43 | After case ...: [match] | semmle.label | match | +| patterns.cs:78:13:78:43 | case ...: | patterns.cs:78:13:78:43 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:78:18:78:33 | ( ... ) | patterns.cs:78:18:78:33 | After ( ... ) | semmle.label | successor | +| patterns.cs:78:18:78:33 | After ( ... ) | patterns.cs:78:18:78:33 | { ... } | semmle.label | successor | +| patterns.cs:78:18:78:33 | After { ... } | patterns.cs:78:40:78:42 | Before ... < ... | semmle.label | successor | +| patterns.cs:78:18:78:33 | Before ( ... ) | patterns.cs:78:19:78:23 | Int32 x | semmle.label | successor | +| patterns.cs:78:18:78:33 | Before { ... } | patterns.cs:78:18:78:33 | Before ( ... ) | semmle.label | successor | +| patterns.cs:78:18:78:33 | { ... } | patterns.cs:78:18:78:33 | After { ... } | semmle.label | successor | +| patterns.cs:78:19:78:23 | Int32 x | patterns.cs:78:26:78:32 | Single y | semmle.label | successor | +| patterns.cs:78:26:78:32 | Single y | patterns.cs:78:18:78:33 | ( ... ) | semmle.label | successor | +| patterns.cs:78:40:78:40 | (...) ... | patterns.cs:78:40:78:40 | After (...) ... | semmle.label | successor | +| patterns.cs:78:40:78:40 | After (...) ... | patterns.cs:78:42:78:42 | access to local variable y | semmle.label | successor | +| patterns.cs:78:40:78:40 | Before (...) ... | patterns.cs:78:40:78:40 | access to local variable x | semmle.label | successor | | patterns.cs:78:40:78:40 | access to local variable x | patterns.cs:78:40:78:40 | (...) ... | semmle.label | successor | -| patterns.cs:78:40:78:42 | ... < ... | patterns.cs:79:17:79:22 | break; | semmle.label | true | -| patterns.cs:78:40:78:42 | ... < ... | patterns.cs:80:13:80:20 | case ...: | semmle.label | false | +| patterns.cs:78:40:78:42 | ... < ... | patterns.cs:78:40:78:42 | After ... < ... [false] | semmle.label | false | +| patterns.cs:78:40:78:42 | ... < ... | patterns.cs:78:40:78:42 | After ... < ... [true] | semmle.label | true | +| patterns.cs:78:40:78:42 | After ... < ... [false] | patterns.cs:80:13:80:20 | case ...: | semmle.label | successor | +| patterns.cs:78:40:78:42 | After ... < ... [true] | patterns.cs:79:17:79:22 | Before break; | semmle.label | successor | +| patterns.cs:78:40:78:42 | Before ... < ... | patterns.cs:78:40:78:40 | Before (...) ... | semmle.label | successor | | patterns.cs:78:42:78:42 | access to local variable y | patterns.cs:78:40:78:42 | ... < ... | semmle.label | successor | -| patterns.cs:79:17:79:22 | break; | patterns.cs:86:9:89:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:80:13:80:20 | case ...: | patterns.cs:80:18:80:19 | ( ... ) | semmle.label | successor | -| patterns.cs:80:18:80:19 | ( ... ) | patterns.cs:80:18:80:19 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:80:18:80:19 | [no-match] { ... } | patterns.cs:82:13:82:20 | case ...: | semmle.label | no-match | -| patterns.cs:82:13:82:20 | case ...: | patterns.cs:82:18:82:19 | { ... } | semmle.label | successor | -| patterns.cs:82:18:82:19 | [match] { ... } | patterns.cs:83:17:83:22 | break; | semmle.label | match | -| patterns.cs:82:18:82:19 | [no-match] { ... } | patterns.cs:86:9:89:9 | switch (...) {...} | semmle.label | no-match | -| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | [match] { ... } | semmle.label | match | -| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:83:17:83:22 | break; | patterns.cs:86:9:89:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:86:9:89:9 | switch (...) {...} | patterns.cs:86:16:86:16 | 1 | semmle.label | successor | -| patterns.cs:86:15:86:19 | (..., ...) | patterns.cs:88:13:88:24 | case ...: | semmle.label | successor | +| patterns.cs:79:17:79:22 | Before break; | patterns.cs:79:17:79:22 | break; | semmle.label | successor | +| patterns.cs:79:17:79:22 | break; | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:80:13:80:20 | After case ...: [match] | patterns.cs:80:18:80:19 | Before { ... } | semmle.label | successor | +| patterns.cs:80:13:80:20 | After case ...: [no-match] | patterns.cs:82:13:82:20 | case ...: | semmle.label | successor | +| patterns.cs:80:13:80:20 | case ...: | patterns.cs:80:13:80:20 | After case ...: [match] | semmle.label | match | +| patterns.cs:80:13:80:20 | case ...: | patterns.cs:80:13:80:20 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:80:18:80:19 | ( ... ) | patterns.cs:80:18:80:19 | { ... } | semmle.label | successor | +| patterns.cs:80:18:80:19 | After { ... } | patterns.cs:81:17:81:22 | Before break; | semmle.label | successor | +| patterns.cs:80:18:80:19 | Before { ... } | patterns.cs:80:18:80:19 | ( ... ) | semmle.label | successor | +| patterns.cs:80:18:80:19 | { ... } | patterns.cs:80:18:80:19 | After { ... } | semmle.label | successor | +| patterns.cs:81:17:81:22 | Before break; | patterns.cs:81:17:81:22 | break; | semmle.label | successor | +| patterns.cs:81:17:81:22 | break; | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:82:13:82:20 | After case ...: [match] | patterns.cs:82:18:82:19 | Before { ... } | semmle.label | successor | +| patterns.cs:82:13:82:20 | After case ...: [no-match] | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | successor | +| patterns.cs:82:13:82:20 | case ...: | patterns.cs:82:13:82:20 | After case ...: [match] | semmle.label | match | +| patterns.cs:82:13:82:20 | case ...: | patterns.cs:82:13:82:20 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:82:18:82:19 | After { ... } | patterns.cs:83:17:83:22 | Before break; | semmle.label | successor | +| patterns.cs:82:18:82:19 | Before { ... } | patterns.cs:82:18:82:19 | { ... } | semmle.label | successor | +| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | After { ... } | semmle.label | successor | +| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | { ... } | semmle.label | successor | +| patterns.cs:83:17:83:22 | Before break; | patterns.cs:83:17:83:22 | break; | semmle.label | successor | +| patterns.cs:83:17:83:22 | break; | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:86:9:89:9 | After switch (...) {...} | patterns.cs:91:9:95:9 | switch (...) {...} | semmle.label | successor | +| patterns.cs:86:9:89:9 | switch (...) {...} | patterns.cs:86:15:86:19 | Before (..., ...) | semmle.label | successor | +| patterns.cs:86:15:86:19 | (..., ...) | patterns.cs:86:15:86:19 | After (..., ...) | semmle.label | successor | +| patterns.cs:86:15:86:19 | After (..., ...) | patterns.cs:88:13:88:24 | case ...: | semmle.label | successor | +| patterns.cs:86:15:86:19 | Before (..., ...) | patterns.cs:86:16:86:16 | 1 | semmle.label | successor | | patterns.cs:86:16:86:16 | 1 | patterns.cs:86:18:86:18 | 2 | semmle.label | successor | | patterns.cs:86:18:86:18 | 2 | patterns.cs:86:15:86:19 | (..., ...) | semmle.label | successor | -| patterns.cs:88:13:88:24 | case ...: | patterns.cs:88:18:88:23 | ( ... ) | semmle.label | successor | -| patterns.cs:88:18:88:23 | ( ... ) | patterns.cs:88:18:88:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:88:18:88:23 | ( ... ) | patterns.cs:88:19:88:19 | 1 | semmle.label | match | -| patterns.cs:88:18:88:23 | [match] { ... } | patterns.cs:88:26:88:31 | break; | semmle.label | match | -| patterns.cs:88:18:88:23 | [no-match] { ... } | patterns.cs:91:9:95:9 | switch (...) {...} | semmle.label | no-match | -| patterns.cs:88:19:88:19 | 1 | patterns.cs:88:18:88:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:88:19:88:19 | 1 | patterns.cs:88:22:88:22 | 2 | semmle.label | match | -| patterns.cs:88:22:88:22 | 2 | patterns.cs:88:18:88:23 | [match] { ... } | semmle.label | match | -| patterns.cs:88:22:88:22 | 2 | patterns.cs:88:18:88:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:88:26:88:31 | break; | patterns.cs:91:9:95:9 | switch (...) {...} | semmle.label | break | -| patterns.cs:91:9:95:9 | switch (...) {...} | patterns.cs:91:17:91:17 | 1 | semmle.label | successor | -| patterns.cs:91:16:91:20 | (..., ...) | patterns.cs:93:13:93:28 | case ...: | semmle.label | successor | +| patterns.cs:88:13:88:24 | After case ...: [match] | patterns.cs:88:18:88:23 | Before { ... } | semmle.label | successor | +| patterns.cs:88:13:88:24 | After case ...: [no-match] | patterns.cs:86:9:89:9 | After switch (...) {...} | semmle.label | successor | +| patterns.cs:88:13:88:24 | case ...: | patterns.cs:88:13:88:24 | After case ...: [match] | semmle.label | match | +| patterns.cs:88:13:88:24 | case ...: | patterns.cs:88:13:88:24 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:88:18:88:23 | ( ... ) | patterns.cs:88:18:88:23 | After ( ... ) | semmle.label | successor | +| patterns.cs:88:18:88:23 | After ( ... ) | patterns.cs:88:18:88:23 | { ... } | semmle.label | successor | +| patterns.cs:88:18:88:23 | After { ... } | patterns.cs:88:26:88:31 | Before break; | semmle.label | successor | +| patterns.cs:88:18:88:23 | Before ( ... ) | patterns.cs:88:19:88:19 | 1 | semmle.label | successor | +| patterns.cs:88:18:88:23 | Before { ... } | patterns.cs:88:18:88:23 | Before ( ... ) | semmle.label | successor | +| patterns.cs:88:18:88:23 | { ... } | patterns.cs:88:18:88:23 | After { ... } | semmle.label | successor | +| patterns.cs:88:19:88:19 | 1 | patterns.cs:88:22:88:22 | 2 | semmle.label | successor | +| patterns.cs:88:22:88:22 | 2 | patterns.cs:88:18:88:23 | ( ... ) | semmle.label | successor | +| patterns.cs:88:26:88:31 | Before break; | patterns.cs:88:26:88:31 | break; | semmle.label | successor | +| patterns.cs:88:26:88:31 | break; | patterns.cs:86:9:89:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:91:9:95:9 | After switch (...) {...} | patterns.cs:33:5:96:5 | After {...} | semmle.label | successor | +| patterns.cs:91:9:95:9 | switch (...) {...} | patterns.cs:91:16:91:20 | Before (..., ...) | semmle.label | successor | +| patterns.cs:91:16:91:20 | (..., ...) | patterns.cs:91:16:91:20 | After (..., ...) | semmle.label | successor | +| patterns.cs:91:16:91:20 | After (..., ...) | patterns.cs:93:13:93:28 | case ...: | semmle.label | successor | +| patterns.cs:91:16:91:20 | Before (..., ...) | patterns.cs:91:17:91:17 | 1 | semmle.label | successor | | patterns.cs:91:17:91:17 | 1 | patterns.cs:91:19:91:19 | 2 | semmle.label | successor | | patterns.cs:91:19:91:19 | 2 | patterns.cs:91:16:91:20 | (..., ...) | semmle.label | successor | -| patterns.cs:93:13:93:28 | case ...: | patterns.cs:93:18:93:27 | ( ... ) | semmle.label | successor | -| patterns.cs:93:18:93:27 | ( ... ) | patterns.cs:93:18:93:27 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:93:18:93:27 | ( ... ) | patterns.cs:93:19:93:19 | 1 | semmle.label | match | -| patterns.cs:93:18:93:27 | [match] { ... } | patterns.cs:93:30:93:35 | break; | semmle.label | match | -| patterns.cs:93:18:93:27 | [no-match] { ... } | patterns.cs:94:13:94:24 | case ...: | semmle.label | no-match | -| patterns.cs:93:19:93:19 | 1 | patterns.cs:93:18:93:27 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:93:19:93:19 | 1 | patterns.cs:93:22:93:26 | Int32 x | semmle.label | match | -| patterns.cs:93:22:93:26 | Int32 x | patterns.cs:93:18:93:27 | [match] { ... } | semmle.label | match | -| patterns.cs:93:22:93:26 | Int32 x | patterns.cs:93:18:93:27 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:93:30:93:35 | break; | patterns.cs:32:10:32:25 | exit SwitchStatements (normal) | semmle.label | break | -| patterns.cs:94:13:94:24 | case ...: | patterns.cs:94:18:94:23 | ( ... ) | semmle.label | successor | -| patterns.cs:94:18:94:23 | ( ... ) | patterns.cs:94:18:94:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:94:18:94:23 | ( ... ) | patterns.cs:94:19:94:19 | 2 | semmle.label | match | -| patterns.cs:94:18:94:23 | [match] { ... } | patterns.cs:94:26:94:31 | break; | semmle.label | match | -| patterns.cs:94:18:94:23 | [no-match] { ... } | patterns.cs:32:10:32:25 | exit SwitchStatements (normal) | semmle.label | no-match | -| patterns.cs:94:19:94:19 | 2 | patterns.cs:94:18:94:23 | [no-match] { ... } | semmle.label | no-match | -| patterns.cs:94:19:94:19 | 2 | patterns.cs:94:22:94:22 | _ | semmle.label | match | -| patterns.cs:94:22:94:22 | _ | patterns.cs:94:18:94:23 | [match] { ... } | semmle.label | match | -| patterns.cs:94:26:94:31 | break; | patterns.cs:32:10:32:25 | exit SwitchStatements (normal) | semmle.label | break | +| patterns.cs:93:13:93:28 | After case ...: [match] | patterns.cs:93:18:93:27 | Before { ... } | semmle.label | successor | +| patterns.cs:93:13:93:28 | After case ...: [no-match] | patterns.cs:94:13:94:24 | case ...: | semmle.label | successor | +| patterns.cs:93:13:93:28 | case ...: | patterns.cs:93:13:93:28 | After case ...: [match] | semmle.label | match | +| patterns.cs:93:13:93:28 | case ...: | patterns.cs:93:13:93:28 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:93:18:93:27 | ( ... ) | patterns.cs:93:18:93:27 | After ( ... ) | semmle.label | successor | +| patterns.cs:93:18:93:27 | After ( ... ) | patterns.cs:93:18:93:27 | { ... } | semmle.label | successor | +| patterns.cs:93:18:93:27 | After { ... } | patterns.cs:93:30:93:35 | Before break; | semmle.label | successor | +| patterns.cs:93:18:93:27 | Before ( ... ) | patterns.cs:93:19:93:19 | 1 | semmle.label | successor | +| patterns.cs:93:18:93:27 | Before { ... } | patterns.cs:93:18:93:27 | Before ( ... ) | semmle.label | successor | +| patterns.cs:93:18:93:27 | { ... } | patterns.cs:93:18:93:27 | After { ... } | semmle.label | successor | +| patterns.cs:93:19:93:19 | 1 | patterns.cs:93:22:93:26 | Int32 x | semmle.label | successor | +| patterns.cs:93:22:93:26 | Int32 x | patterns.cs:93:18:93:27 | ( ... ) | semmle.label | successor | +| patterns.cs:93:30:93:35 | Before break; | patterns.cs:93:30:93:35 | break; | semmle.label | successor | +| patterns.cs:93:30:93:35 | break; | patterns.cs:91:9:95:9 | After switch (...) {...} | semmle.label | break | +| patterns.cs:94:13:94:24 | After case ...: [match] | patterns.cs:94:18:94:23 | Before { ... } | semmle.label | successor | +| patterns.cs:94:13:94:24 | After case ...: [no-match] | patterns.cs:91:9:95:9 | After switch (...) {...} | semmle.label | successor | +| patterns.cs:94:13:94:24 | case ...: | patterns.cs:94:13:94:24 | After case ...: [match] | semmle.label | match | +| patterns.cs:94:13:94:24 | case ...: | patterns.cs:94:13:94:24 | After case ...: [no-match] | semmle.label | no-match | +| patterns.cs:94:18:94:23 | ( ... ) | patterns.cs:94:18:94:23 | After ( ... ) | semmle.label | successor | +| patterns.cs:94:18:94:23 | After ( ... ) | patterns.cs:94:18:94:23 | { ... } | semmle.label | successor | +| patterns.cs:94:18:94:23 | After { ... } | patterns.cs:94:26:94:31 | Before break; | semmle.label | successor | +| patterns.cs:94:18:94:23 | Before ( ... ) | patterns.cs:94:19:94:19 | 2 | semmle.label | successor | +| patterns.cs:94:18:94:23 | Before { ... } | patterns.cs:94:18:94:23 | Before ( ... ) | semmle.label | successor | +| patterns.cs:94:18:94:23 | { ... } | patterns.cs:94:18:94:23 | After { ... } | semmle.label | successor | +| patterns.cs:94:19:94:19 | 2 | patterns.cs:94:22:94:22 | _ | semmle.label | successor | +| patterns.cs:94:22:94:22 | _ | patterns.cs:94:18:94:23 | ( ... ) | semmle.label | successor | +| patterns.cs:94:26:94:31 | Before break; | patterns.cs:94:26:94:31 | break; | semmle.label | successor | +| patterns.cs:94:26:94:31 | break; | patterns.cs:91:9:95:9 | After switch (...) {...} | semmle.label | break | diff --git a/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.expected b/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.expected index 1506d03ab34..43bfd33106a 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa-large/countssa.expected @@ -1 +1 @@ -| 15203 | 1037851 | +| 15203 | 1547800 | diff --git a/csharp/ql/test/library-tests/goto/Goto1.expected b/csharp/ql/test/library-tests/goto/Goto1.expected index 137c1b7241c..e649e3a07de 100644 --- a/csharp/ql/test/library-tests/goto/Goto1.expected +++ b/csharp/ql/test/library-tests/goto/Goto1.expected @@ -1,51 +1,79 @@ -| 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 | 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 | After call to constructor Object | goto.cs:2:7:2:10 | {...} | semmle.label | successor | +| goto.cs:2:7:2:10 | After call to method | goto.cs:2:7:2:10 | Before call to constructor Object | semmle.label | successor | +| goto.cs:2:7:2:10 | Before call to constructor Object | goto.cs:2:7:2:10 | call to constructor Object | semmle.label | successor | +| goto.cs:2:7:2:10 | Before call to method | goto.cs:2:7:2:10 | this access | semmle.label | successor | +| goto.cs:2:7:2:10 | Entry | goto.cs:2:7:2:10 | Before call to method | semmle.label | successor | +| goto.cs:2:7:2:10 | Normal Exit | goto.cs:2:7:2:10 | Exit | semmle.label | successor | +| goto.cs:2:7:2:10 | call to constructor Object | goto.cs:2:7:2:10 | After call to constructor Object | semmle.label | successor | +| goto.cs:2:7:2:10 | call to method | goto.cs:2:7:2:10 | After call to method | 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 | +| goto.cs:2:7:2:10 | {...} | goto.cs:2:7:2:10 | Normal Exit | semmle.label | successor | +| goto.cs:4:17:4:20 | Entry | goto.cs:5:5:20:5 | {...} | semmle.label | successor | +| goto.cs:4:17:4:20 | Normal Exit | goto.cs:4:17:4:20 | Exit | semmle.label | successor | +| goto.cs:5:5:20:5 | After {...} | goto.cs:4:17:4:20 | Normal Exit | semmle.label | successor | | goto.cs:5:5:20:5 | {...} | goto.cs:6:9:8:9 | {...} | semmle.label | successor | | goto.cs:6:9:8:9 | {...} | goto.cs:7:13:7:14 | s1: | semmle.label | successor | -| goto.cs:7:13:7:14 | s1: | goto.cs:7:17:7:24 | goto ...; | semmle.label | successor | +| goto.cs:7:13:7:14 | s1: | goto.cs:7:17:7:24 | Before goto ...; | semmle.label | successor | +| goto.cs:7:17:7:24 | Before goto ...; | goto.cs:7:17:7:24 | goto ...; | semmle.label | successor | | goto.cs:7:17:7:24 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto | | goto.cs:9:9:9:10 | s2: | goto.cs:9:13:9:27 | ... ...; | semmle.label | successor | -| goto.cs:9:13:9:27 | ... ...; | goto.cs:9:24:9:26 | "5" | semmle.label | successor | -| goto.cs:9:20:9:26 | String s = ... | goto.cs:10:9:18:9 | switch (...) {...} | semmle.label | successor | +| goto.cs:9:13:9:27 | ... ...; | goto.cs:9:20:9:26 | Before String s = ... | semmle.label | successor | +| goto.cs:9:13:9:27 | After ... ...; | goto.cs:10:9:18:9 | switch (...) {...} | semmle.label | successor | +| goto.cs:9:20:9:20 | access to local variable s | goto.cs:9:24:9:26 | "5" | semmle.label | successor | +| goto.cs:9:20:9:26 | After String s = ... | goto.cs:9:13:9:27 | After ... ...; | semmle.label | successor | +| goto.cs:9:20:9:26 | Before String s = ... | goto.cs:9:20:9:20 | access to local variable s | semmle.label | successor | +| goto.cs:9:20:9:26 | String s = ... | goto.cs:9:20:9:26 | After String s = ... | semmle.label | successor | | goto.cs:9:24:9:26 | "5" | goto.cs:9:20:9:26 | String s = ... | semmle.label | successor | +| goto.cs:10:9:18:9 | After switch (...) {...} | goto.cs:19:9:19:10 | s9: | semmle.label | successor | | goto.cs:10:9:18:9 | switch (...) {...} | goto.cs:10:17:10:17 | access to local variable s | semmle.label | successor | | goto.cs:10:17:10:17 | access to local variable s | goto.cs:12:13:12:22 | case ...: | semmle.label | successor | -| goto.cs:12:13:12:22 | case ...: | goto.cs:12:18:12:21 | null | semmle.label | successor | -| goto.cs:12:18:12:21 | null | goto.cs:12:24:12:25 | s3: | semmle.label | match | -| goto.cs:12:18:12:21 | null | goto.cs:13:13:13:21 | case ...: | semmle.label | no-match | -| goto.cs:12:24:12:25 | s3: | goto.cs:12:38:12:40 | "1" | semmle.label | successor | -| goto.cs:12:28:12:41 | goto case ...; | goto.cs:13:13:13:21 | case ...: | semmle.label | goto | +| goto.cs:12:13:12:22 | After case ...: [match] | goto.cs:12:18:12:21 | null | semmle.label | successor | +| goto.cs:12:13:12:22 | After case ...: [no-match] | goto.cs:13:13:13:21 | case ...: | semmle.label | successor | +| goto.cs:12:13:12:22 | case ...: | goto.cs:12:13:12:22 | After case ...: [match] | semmle.label | match | +| goto.cs:12:13:12:22 | case ...: | goto.cs:12:13:12:22 | After case ...: [no-match] | semmle.label | no-match | +| goto.cs:12:18:12:21 | null | goto.cs:12:24:12:25 | s3: | semmle.label | successor | +| goto.cs:12:24:12:25 | s3: | goto.cs:12:28:12:41 | Before goto case ...; | semmle.label | successor | +| goto.cs:12:28:12:41 | Before goto case ...; | goto.cs:12:38:12:40 | "1" | semmle.label | successor | +| goto.cs:12:28:12:41 | goto case ...; | goto.cs:13:13:13:21 | After case ...: [match] | semmle.label | goto | | goto.cs:12:38:12:40 | "1" | goto.cs:12:28:12:41 | goto case ...; | semmle.label | successor | -| goto.cs:13:13:13:21 | case ...: | goto.cs:13:18:13:20 | "1" | semmle.label | successor | -| goto.cs:13:18:13:20 | "1" | goto.cs:13:23:13:24 | s4: | semmle.label | match | -| goto.cs:13:18:13:20 | "1" | goto.cs:14:13:14:21 | case ...: | semmle.label | no-match | -| goto.cs:13:23:13:24 | s4: | goto.cs:13:37:13:39 | "2" | semmle.label | successor | -| goto.cs:13:27:13:40 | goto case ...; | goto.cs:14:13:14:21 | case ...: | semmle.label | goto | +| goto.cs:13:13:13:21 | After case ...: [match] | goto.cs:13:18:13:20 | "1" | semmle.label | successor | +| goto.cs:13:13:13:21 | After case ...: [no-match] | goto.cs:14:13:14:21 | case ...: | semmle.label | successor | +| goto.cs:13:13:13:21 | case ...: | goto.cs:13:13:13:21 | After case ...: [match] | semmle.label | match | +| goto.cs:13:13:13:21 | case ...: | goto.cs:13:13:13:21 | After case ...: [no-match] | semmle.label | no-match | +| goto.cs:13:18:13:20 | "1" | goto.cs:13:23:13:24 | s4: | semmle.label | successor | +| goto.cs:13:23:13:24 | s4: | goto.cs:13:27:13:40 | Before goto case ...; | semmle.label | successor | +| goto.cs:13:27:13:40 | Before goto case ...; | goto.cs:13:37:13:39 | "2" | semmle.label | successor | +| goto.cs:13:27:13:40 | goto case ...; | goto.cs:14:13:14:21 | After case ...: [match] | semmle.label | goto | | goto.cs:13:37:13:39 | "2" | goto.cs:13:27:13:40 | goto case ...; | semmle.label | successor | -| goto.cs:14:13:14:21 | case ...: | goto.cs:14:18:14:20 | "2" | semmle.label | successor | -| goto.cs:14:18:14:20 | "2" | goto.cs:14:23:14:24 | s5: | semmle.label | match | -| goto.cs:14:18:14:20 | "2" | goto.cs:15:13:15:21 | case ...: | semmle.label | no-match | -| goto.cs:14:23:14:24 | s5: | goto.cs:14:27:14:34 | goto ...; | semmle.label | successor | +| goto.cs:14:13:14:21 | After case ...: [match] | goto.cs:14:18:14:20 | "2" | semmle.label | successor | +| goto.cs:14:13:14:21 | After case ...: [no-match] | goto.cs:15:13:15:21 | case ...: | semmle.label | successor | +| goto.cs:14:13:14:21 | case ...: | goto.cs:14:13:14:21 | After case ...: [match] | semmle.label | match | +| goto.cs:14:13:14:21 | case ...: | goto.cs:14:13:14:21 | After case ...: [no-match] | semmle.label | no-match | +| goto.cs:14:18:14:20 | "2" | goto.cs:14:23:14:24 | s5: | semmle.label | successor | +| goto.cs:14:23:14:24 | s5: | goto.cs:14:27:14:34 | Before goto ...; | semmle.label | successor | +| goto.cs:14:27:14:34 | Before goto ...; | goto.cs:14:27:14:34 | goto ...; | semmle.label | successor | | goto.cs:14:27:14:34 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto | -| goto.cs:15:13:15:21 | case ...: | goto.cs:15:18:15:20 | "3" | semmle.label | successor | -| goto.cs:15:18:15:20 | "3" | goto.cs:15:23:15:24 | s6: | semmle.label | match | -| goto.cs:15:18:15:20 | "3" | goto.cs:16:13:16:21 | case ...: | semmle.label | no-match | -| goto.cs:15:23:15:24 | s6: | goto.cs:15:27:15:39 | goto default; | semmle.label | successor | -| goto.cs:15:27:15:39 | goto default; | goto.cs:17:13:17:20 | default: | semmle.label | goto | -| goto.cs:16:13:16:21 | case ...: | goto.cs:16:18:16:20 | "4" | semmle.label | successor | -| goto.cs:16:18:16:20 | "4" | goto.cs:16:23:16:24 | s7: | semmle.label | match | -| goto.cs:16:18:16:20 | "4" | goto.cs:17:13:17:20 | default: | semmle.label | no-match | -| goto.cs:16:23:16:24 | s7: | goto.cs:16:27:16:32 | break; | semmle.label | successor | -| goto.cs:16:27:16:32 | break; | goto.cs:19:9:19:10 | s9: | semmle.label | break | -| goto.cs:17:13:17:20 | default: | goto.cs:17:22:17:23 | s8: | semmle.label | successor | -| goto.cs:17:22:17:23 | s8: | goto.cs:17:36:17:39 | null | semmle.label | successor | -| goto.cs:17:26:17:40 | goto case ...; | goto.cs:12:13:12:22 | case ...: | semmle.label | goto | +| goto.cs:15:13:15:21 | After case ...: [match] | goto.cs:15:18:15:20 | "3" | semmle.label | successor | +| goto.cs:15:13:15:21 | After case ...: [no-match] | goto.cs:16:13:16:21 | case ...: | semmle.label | successor | +| goto.cs:15:13:15:21 | case ...: | goto.cs:15:13:15:21 | After case ...: [match] | semmle.label | match | +| goto.cs:15:13:15:21 | case ...: | goto.cs:15:13:15:21 | After case ...: [no-match] | semmle.label | no-match | +| goto.cs:15:18:15:20 | "3" | goto.cs:15:23:15:24 | s6: | semmle.label | successor | +| goto.cs:15:23:15:24 | s6: | goto.cs:15:27:15:39 | Before goto default; | semmle.label | successor | +| goto.cs:15:27:15:39 | Before goto default; | goto.cs:15:27:15:39 | goto default; | semmle.label | successor | +| goto.cs:15:27:15:39 | goto default; | goto.cs:17:13:17:20 | After default: [match] | semmle.label | goto | +| goto.cs:16:13:16:21 | After case ...: [match] | goto.cs:16:18:16:20 | "4" | semmle.label | successor | +| goto.cs:16:13:16:21 | After case ...: [no-match] | goto.cs:17:13:17:20 | default: | semmle.label | successor | +| goto.cs:16:13:16:21 | case ...: | goto.cs:16:13:16:21 | After case ...: [match] | semmle.label | match | +| goto.cs:16:13:16:21 | case ...: | goto.cs:16:13:16:21 | After case ...: [no-match] | semmle.label | no-match | +| goto.cs:16:18:16:20 | "4" | goto.cs:16:23:16:24 | s7: | semmle.label | successor | +| goto.cs:16:23:16:24 | s7: | goto.cs:16:27:16:32 | Before break; | semmle.label | successor | +| goto.cs:16:27:16:32 | Before break; | goto.cs:16:27:16:32 | break; | semmle.label | successor | +| goto.cs:16:27:16:32 | break; | goto.cs:10:9:18:9 | After switch (...) {...} | semmle.label | break | +| goto.cs:17:13:17:20 | After default: [match] | goto.cs:17:22:17:23 | s8: | semmle.label | successor | +| goto.cs:17:13:17:20 | default: | goto.cs:17:13:17:20 | After default: [match] | semmle.label | match | +| goto.cs:17:22:17:23 | s8: | goto.cs:17:26:17:40 | Before goto case ...; | semmle.label | successor | +| goto.cs:17:26:17:40 | Before goto case ...; | goto.cs:17:36:17:39 | null | semmle.label | successor | +| goto.cs:17:26:17:40 | goto case ...; | goto.cs:12:13:12:22 | After case ...: [match] | semmle.label | goto | | goto.cs:17:36:17:39 | null | goto.cs:17:26:17:40 | goto case ...; | semmle.label | successor | | goto.cs:19:9:19:10 | s9: | goto.cs:19:12:19:12 | ; | semmle.label | successor | -| goto.cs:19:12:19:12 | ; | goto.cs:4:17:4:20 | exit Main (normal) | semmle.label | successor | +| goto.cs:19:12:19:12 | ; | goto.cs:5:5:20:5 | After {...} | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/obinit/ObInit.expected b/csharp/ql/test/library-tests/obinit/ObInit.expected index 3d2c7df895f..2b89fa6670e 100644 --- a/csharp/ql/test/library-tests/obinit/ObInit.expected +++ b/csharp/ql/test/library-tests/obinit/ObInit.expected @@ -6,22 +6,59 @@ call | obinit.cs:9:16:9:16 | call to method | obinit.cs:2:18:2:18 | | obinit.cs:9:16:9:16 | A | | obinit.cs:15:16:15:16 | call to method | obinit.cs:14:18:14:18 | | obinit.cs:15:16:15:16 | B | cfg -| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | access to field x | obinit.cs:3:13:3:17 | ... = ... | normal | 2 | -| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | this access | obinit.cs:3:17:3:17 | 1 | normal | 0 | -| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | ... = ... | obinit.cs:5:23:5:23 | this access | normal | 3 | -| obinit.cs:2:18:2:18 | | obinit.cs:3:17:3:17 | 1 | obinit.cs:3:13:3:13 | access to field x | normal | 1 | -| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | access to field s | obinit.cs:5:23:5:34 | ... = ... | normal | 6 | -| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | this access | obinit.cs:5:27:5:34 | "source" | normal | 4 | -| obinit.cs:2:18:2:18 | | obinit.cs:5:27:5:34 | "source" | obinit.cs:5:23:5:23 | access to field s | normal | 5 | -| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to constructor Object | obinit.cs:7:20:7:22 | {...} | normal | 2 | -| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to method | obinit.cs:7:16:7:16 | call to constructor Object | normal | 1 | -| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | this access | obinit.cs:7:16:7:16 | call to method | normal | 0 | -| 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 | +| obinit.cs:2:18:2:18 | | obinit.cs:2:18:2:18 | Entry | obinit.cs:3:13:3:17 | Before ... = ... | successor | 0 | +| obinit.cs:2:18:2:18 | | obinit.cs:2:18:2:18 | Normal Exit | obinit.cs:2:18:2:18 | Exit | successor | 17 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | After access to field x | obinit.cs:3:17:3:17 | 1 | successor | 5 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | Before access to field x | obinit.cs:3:13:3:13 | this access | successor | 2 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | access to field x | obinit.cs:3:13:3:13 | After access to field x | successor | 4 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | this access | obinit.cs:3:13:3:13 | access to field x | successor | 3 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | ... = ... | obinit.cs:3:13:3:17 | After ... = ... | successor | 7 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | After ... = ... | obinit.cs:5:23:5:34 | Before ... = ... | successor | 8 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | Before ... = ... | obinit.cs:3:13:3:13 | Before access to field x | successor | 1 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:17:3:17 | 1 | obinit.cs:3:13:3:17 | ... = ... | successor | 6 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | After access to field s | obinit.cs:5:27:5:34 | "source" | successor | 13 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | Before access to field s | obinit.cs:5:23:5:23 | this access | successor | 10 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | access to field s | obinit.cs:5:23:5:23 | After access to field s | successor | 12 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | this access | obinit.cs:5:23:5:23 | access to field s | successor | 11 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:34 | ... = ... | obinit.cs:5:23:5:34 | After ... = ... | successor | 15 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:34 | After ... = ... | obinit.cs:2:18:2:18 | Normal Exit | successor | 16 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:34 | Before ... = ... | obinit.cs:5:23:5:23 | Before access to field s | successor | 9 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:27:5:34 | "source" | obinit.cs:5:23:5:34 | ... = ... | successor | 14 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | After call to constructor Object | obinit.cs:7:20:7:22 | {...} | successor | 7 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | After call to method | obinit.cs:7:16:7:16 | Before call to constructor Object | successor | 4 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | Before call to constructor Object | obinit.cs:7:16:7:16 | call to constructor Object | successor | 5 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | Before call to method | obinit.cs:7:16:7:16 | this access | successor | 1 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | Entry | obinit.cs:7:16:7:16 | Before call to method | successor | 0 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | Normal Exit | obinit.cs:7:16:7:16 | Exit | successor | 9 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to constructor Object | obinit.cs:7:16:7:16 | After call to constructor Object | successor | 6 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to method | obinit.cs:7:16:7:16 | After call to method | successor | 3 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | this access | obinit.cs:7:16:7:16 | call to method | successor | 2 | +| obinit.cs:7:16:7:16 | A | obinit.cs:7:20:7:22 | {...} | obinit.cs:7:16:7:16 | Normal Exit | successor | 8 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | After call to constructor Object | obinit.cs:9:25:9:27 | {...} | successor | 7 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | After call to method | obinit.cs:9:16:9:16 | Before call to constructor Object | successor | 4 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | Before call to constructor Object | obinit.cs:9:16:9:16 | call to constructor Object | successor | 5 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | Before call to method | obinit.cs:9:16:9:16 | this access | successor | 1 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | Entry | obinit.cs:9:16:9:16 | Before call to method | successor | 0 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | Normal Exit | obinit.cs:9:16:9:16 | Exit | successor | 9 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | call to constructor Object | obinit.cs:9:16:9:16 | After call to constructor Object | successor | 6 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | call to method | obinit.cs:9:16:9:16 | After call to method | successor | 3 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | this access | obinit.cs:9:16:9:16 | call to method | successor | 2 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:25:9:27 | {...} | obinit.cs:9:16:9:16 | Normal Exit | successor | 8 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:16:11:16 | Entry | obinit.cs:11:34:11:37 | Before call to constructor A | successor | 0 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:16:11:16 | Normal Exit | obinit.cs:11:16:11:16 | Exit | successor | 6 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:34:11:37 | After call to constructor A | obinit.cs:11:42:11:44 | {...} | successor | 4 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:34:11:37 | Before call to constructor A | obinit.cs:11:39:11:39 | access to parameter y | successor | 1 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:34:11:37 | call to constructor A | obinit.cs:11:34:11:37 | After call to constructor A | successor | 3 | +| 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 | successor | 2 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:42:11:44 | {...} | obinit.cs:11:16:11:16 | Normal Exit | successor | 5 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | After call to method | obinit.cs:15:22:15:25 | Before call to constructor A | successor | 4 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | Before call to method | obinit.cs:15:16:15:16 | this access | successor | 1 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | Entry | obinit.cs:15:16:15:16 | Before call to method | successor | 0 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | Normal Exit | obinit.cs:15:16:15:16 | Exit | successor | 10 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | call to method | obinit.cs:15:16:15:16 | After call to method | successor | 3 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | this access | obinit.cs:15:16:15:16 | call to method | successor | 2 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:22:15:25 | After call to constructor A | obinit.cs:15:31:15:33 | {...} | successor | 8 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:22:15:25 | Before call to constructor A | obinit.cs:15:27:15:28 | 10 | successor | 5 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:22:15:25 | call to constructor A | obinit.cs:15:22:15:25 | After call to constructor A | successor | 7 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:27:15:28 | 10 | obinit.cs:15:22:15:25 | call to constructor A | successor | 6 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:31:15:33 | {...} | obinit.cs:15:16:15:16 | Normal Exit | successor | 9 | diff --git a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected index d0838ceed01..0c425d257cf 100644 --- a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected +++ b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected @@ -1,42 +1,103 @@ -| ControlFlow.cs:3:7:3:9 | call to constructor Object | ControlFlow.cs:3:7:3:9 | {...} | -| 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 | After call to constructor Object | ControlFlow.cs:3:7:3:9 | {...} | +| ControlFlow.cs:3:7:3:9 | After call to method | ControlFlow.cs:3:7:3:9 | Before call to constructor Object | +| ControlFlow.cs:3:7:3:9 | Before call to constructor Object | ControlFlow.cs:3:7:3:9 | call to constructor Object | +| ControlFlow.cs:3:7:3:9 | Before call to method | ControlFlow.cs:3:7:3:9 | this access | +| ControlFlow.cs:3:7:3:9 | Entry | ControlFlow.cs:3:7:3:9 | Before call to method | +| ControlFlow.cs:3:7:3:9 | Normal Exit | ControlFlow.cs:3:7:3:9 | Exit | +| ControlFlow.cs:3:7:3:9 | call to constructor Object | ControlFlow.cs:3:7:3:9 | After call to constructor Object | +| ControlFlow.cs:3:7:3:9 | call to method | ControlFlow.cs:3:7:3:9 | After call to method | | 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 | +| ControlFlow.cs:3:7:3:9 | {...} | ControlFlow.cs:3:7:3:9 | Normal Exit | +| ControlFlow.cs:5:10:5:10 | Entry | ControlFlow.cs:6:5:11:5 | {...} | +| ControlFlow.cs:5:10:5:10 | Normal Exit | ControlFlow.cs:5:10:5:10 | Exit | +| ControlFlow.cs:6:5:11:5 | After {...} | ControlFlow.cs:5:10:5:10 | Normal Exit | | ControlFlow.cs:6:5:11:5 | {...} | ControlFlow.cs:7:9:7:34 | ... ...; | -| ControlFlow.cs:7:9:7:34 | ... ...; | ControlFlow.cs:7:17:7:33 | Call (unknown target) | -| ControlFlow.cs:7:9:7:34 | ... ...; | ControlFlow.cs:7:17:7:33 | object creation of type | -| ControlFlow.cs:7:13:7:33 | v = ... | ControlFlow.cs:8:9:8:44 | ...; | -| ControlFlow.cs:7:17:7:33 | Call (unknown target) | ControlFlow.cs:7:13:7:33 | v = ... | -| ControlFlow.cs:7:17:7:33 | object creation of type | ControlFlow.cs:7:13:7:33 | v = ... | -| ControlFlow.cs:8:9:8:13 | Expression | ControlFlow.cs:8:22:8:22 | access to local variable v | -| ControlFlow.cs:8:9:8:43 | Call (unknown target) | ControlFlow.cs:10:9:10:87 | ...; | -| ControlFlow.cs:8:9:8:43 | call to method | ControlFlow.cs:10:9:10:87 | ...; | -| ControlFlow.cs:8:9:8:44 | ...; | ControlFlow.cs:8:9:8:13 | Expression | +| ControlFlow.cs:7:9:7:34 | ... ...; | ControlFlow.cs:7:13:7:33 | Before v = ... | +| ControlFlow.cs:7:9:7:34 | After ... ...; | ControlFlow.cs:8:9:8:44 | ...; | +| ControlFlow.cs:7:13:7:13 | access to local variable v | ControlFlow.cs:7:17:7:33 | Before Call (unknown target) | +| ControlFlow.cs:7:13:7:13 | access to local variable v | ControlFlow.cs:7:17:7:33 | Before object creation of type | +| ControlFlow.cs:7:13:7:33 | v = ... | ControlFlow.cs:7:13:7:33 | After v = ... | +| ControlFlow.cs:7:13:7:33 | After v = ... | ControlFlow.cs:7:9:7:34 | After ... ...; | +| ControlFlow.cs:7:13:7:33 | Before v = ... | ControlFlow.cs:7:13:7:13 | access to local variable v | +| ControlFlow.cs:7:17:7:33 | After Call (unknown target) | ControlFlow.cs:7:13:7:33 | v = ... | +| ControlFlow.cs:7:17:7:33 | After object creation of type | ControlFlow.cs:7:13:7:33 | v = ... | +| ControlFlow.cs:7:17:7:33 | Before Call (unknown target) | ControlFlow.cs:7:17:7:33 | Call (unknown target) | +| ControlFlow.cs:7:17:7:33 | Before Call (unknown target) | ControlFlow.cs:7:17:7:33 | object creation of type | +| ControlFlow.cs:7:17:7:33 | Before object creation of type | ControlFlow.cs:7:17:7:33 | Call (unknown target) | +| ControlFlow.cs:7:17:7:33 | Before object creation of type | ControlFlow.cs:7:17:7:33 | object creation of type | +| ControlFlow.cs:7:17:7:33 | Call (unknown target) | ControlFlow.cs:7:17:7:33 | After Call (unknown target) | +| ControlFlow.cs:7:17:7:33 | Call (unknown target) | ControlFlow.cs:7:17:7:33 | After object creation of type | +| ControlFlow.cs:7:17:7:33 | object creation of type | ControlFlow.cs:7:17:7:33 | After Call (unknown target) | +| ControlFlow.cs:7:17:7:33 | object creation of type | ControlFlow.cs:7:17:7:33 | After object creation of type | +| ControlFlow.cs:8:9:8:13 | Expression | ControlFlow.cs:8:22:8:26 | Before Call (unknown target) | +| ControlFlow.cs:8:9:8:13 | Expression | ControlFlow.cs:8:22:8:26 | Before access to property (unknown) | +| ControlFlow.cs:8:9:8:43 | After Call (unknown target) | ControlFlow.cs:8:9:8:44 | After ...; | +| ControlFlow.cs:8:9:8:43 | After call to method | ControlFlow.cs:8:9:8:44 | After ...; | +| ControlFlow.cs:8:9:8:43 | Before Call (unknown target) | ControlFlow.cs:8:9:8:13 | Expression | +| ControlFlow.cs:8:9:8:43 | Before call to method | ControlFlow.cs:8:9:8:13 | Expression | +| ControlFlow.cs:8:9:8:43 | Call (unknown target) | ControlFlow.cs:8:9:8:43 | After Call (unknown target) | +| ControlFlow.cs:8:9:8:43 | Call (unknown target) | ControlFlow.cs:8:9:8:43 | After call to method | +| ControlFlow.cs:8:9:8:43 | call to method | ControlFlow.cs:8:9:8:43 | After Call (unknown target) | +| ControlFlow.cs:8:9:8:43 | call to method | ControlFlow.cs:8:9:8:43 | After call to method | +| ControlFlow.cs:8:9:8:44 | ...; | ControlFlow.cs:8:9:8:43 | Before Call (unknown target) | +| ControlFlow.cs:8:9:8:44 | ...; | ControlFlow.cs:8:9:8:43 | Before call to method | +| ControlFlow.cs:8:9:8:44 | After ...; | ControlFlow.cs:10:9:10:87 | ...; | | ControlFlow.cs:8:22:8:22 | access to local variable v | ControlFlow.cs:8:22:8:24 | Call (unknown target) | | ControlFlow.cs:8:22:8:22 | access to local variable v | ControlFlow.cs:8:22:8:24 | access to property (unknown) | -| ControlFlow.cs:8:22:8:24 | Call (unknown target) | ControlFlow.cs:8:22:8:26 | Call (unknown target) | -| ControlFlow.cs:8:22:8:24 | Call (unknown target) | ControlFlow.cs:8:22:8:26 | access to property (unknown) | -| ControlFlow.cs:8:22:8:24 | access to property (unknown) | ControlFlow.cs:8:22:8:26 | Call (unknown target) | -| ControlFlow.cs:8:22:8:24 | access to property (unknown) | ControlFlow.cs:8:22:8:26 | access to property (unknown) | -| ControlFlow.cs:8:22:8:26 | Call (unknown target) | ControlFlow.cs:8:29:8:42 | "This is true" | -| ControlFlow.cs:8:22:8:26 | access to property (unknown) | ControlFlow.cs:8:29:8:42 | "This is true" | +| ControlFlow.cs:8:22:8:24 | After Call (unknown target) | ControlFlow.cs:8:22:8:26 | Call (unknown target) | +| ControlFlow.cs:8:22:8:24 | After Call (unknown target) | ControlFlow.cs:8:22:8:26 | access to property (unknown) | +| ControlFlow.cs:8:22:8:24 | After access to property (unknown) | ControlFlow.cs:8:22:8:26 | Call (unknown target) | +| ControlFlow.cs:8:22:8:24 | After access to property (unknown) | ControlFlow.cs:8:22:8:26 | access to property (unknown) | +| ControlFlow.cs:8:22:8:24 | Before Call (unknown target) | ControlFlow.cs:8:22:8:22 | access to local variable v | +| ControlFlow.cs:8:22:8:24 | Before access to property (unknown) | ControlFlow.cs:8:22:8:22 | access to local variable v | +| ControlFlow.cs:8:22:8:24 | Call (unknown target) | ControlFlow.cs:8:22:8:24 | After Call (unknown target) | +| ControlFlow.cs:8:22:8:24 | Call (unknown target) | ControlFlow.cs:8:22:8:24 | After access to property (unknown) | +| ControlFlow.cs:8:22:8:24 | access to property (unknown) | ControlFlow.cs:8:22:8:24 | After Call (unknown target) | +| ControlFlow.cs:8:22:8:24 | access to property (unknown) | ControlFlow.cs:8:22:8:24 | After access to property (unknown) | +| ControlFlow.cs:8:22:8:26 | After Call (unknown target) | ControlFlow.cs:8:29:8:42 | "This is true" | +| ControlFlow.cs:8:22:8:26 | After access to property (unknown) | ControlFlow.cs:8:29:8:42 | "This is true" | +| ControlFlow.cs:8:22:8:26 | Before Call (unknown target) | ControlFlow.cs:8:22:8:24 | Before Call (unknown target) | +| ControlFlow.cs:8:22:8:26 | Before Call (unknown target) | ControlFlow.cs:8:22:8:24 | Before access to property (unknown) | +| ControlFlow.cs:8:22:8:26 | Before access to property (unknown) | ControlFlow.cs:8:22:8:24 | Before Call (unknown target) | +| ControlFlow.cs:8:22:8:26 | Before access to property (unknown) | ControlFlow.cs:8:22:8:24 | Before access to property (unknown) | +| ControlFlow.cs:8:22:8:26 | Call (unknown target) | ControlFlow.cs:8:22:8:26 | After Call (unknown target) | +| ControlFlow.cs:8:22:8:26 | Call (unknown target) | ControlFlow.cs:8:22:8:26 | After access to property (unknown) | +| ControlFlow.cs:8:22:8:26 | access to property (unknown) | ControlFlow.cs:8:22:8:26 | After Call (unknown target) | +| ControlFlow.cs:8:22:8:26 | access to property (unknown) | ControlFlow.cs:8:22:8:26 | After access to property (unknown) | | ControlFlow.cs:8:29:8:42 | "This is true" | ControlFlow.cs:8:9:8:43 | Call (unknown target) | | ControlFlow.cs:8:29:8:42 | "This is true" | ControlFlow.cs:8:9:8:43 | call to method | -| ControlFlow.cs:10:9:10:86 | Call (unknown target) | ControlFlow.cs:10:51:10:62 | access to field Empty | -| ControlFlow.cs:10:9:10:86 | object creation of type | ControlFlow.cs:10:51:10:62 | access to field Empty | -| ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | Call (unknown target) | -| ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | object creation of type | -| ControlFlow.cs:10:35:10:86 | { ..., ... } | ControlFlow.cs:5:10:5:10 | exit F (normal) | -| ControlFlow.cs:10:37:10:47 | access to array element | ControlFlow.cs:10:37:10:62 | ... = ... | -| ControlFlow.cs:10:37:10:62 | ... = ... | ControlFlow.cs:10:79:10:79 | access to local variable v | -| ControlFlow.cs:10:51:10:62 | access to field Empty | ControlFlow.cs:10:37:10:47 | access to array element | -| ControlFlow.cs:10:65:10:75 | access to array element | ControlFlow.cs:10:65:10:84 | ... = ... | -| ControlFlow.cs:10:65:10:84 | ... = ... | ControlFlow.cs:10:35:10:86 | { ..., ... } | +| ControlFlow.cs:10:9:10:86 | After Call (unknown target) | ControlFlow.cs:10:9:10:87 | After ...; | +| ControlFlow.cs:10:9:10:86 | After object creation of type | ControlFlow.cs:10:9:10:87 | After ...; | +| ControlFlow.cs:10:9:10:86 | Before Call (unknown target) | ControlFlow.cs:10:9:10:86 | Call (unknown target) | +| ControlFlow.cs:10:9:10:86 | Before Call (unknown target) | ControlFlow.cs:10:9:10:86 | object creation of type | +| ControlFlow.cs:10:9:10:86 | Before object creation of type | ControlFlow.cs:10:9:10:86 | Call (unknown target) | +| ControlFlow.cs:10:9:10:86 | Before object creation of type | ControlFlow.cs:10:9:10:86 | object creation of type | +| ControlFlow.cs:10:9:10:86 | Call (unknown target) | ControlFlow.cs:10:35:10:86 | Before { ..., ... } | +| ControlFlow.cs:10:9:10:86 | object creation of type | ControlFlow.cs:10:35:10:86 | Before { ..., ... } | +| ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | Before Call (unknown target) | +| ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | Before object creation of type | +| ControlFlow.cs:10:9:10:87 | After ...; | ControlFlow.cs:6:5:11:5 | After {...} | +| ControlFlow.cs:10:35:10:86 | After { ..., ... } | ControlFlow.cs:10:9:10:86 | After Call (unknown target) | +| ControlFlow.cs:10:35:10:86 | After { ..., ... } | ControlFlow.cs:10:9:10:86 | After object creation of type | +| ControlFlow.cs:10:35:10:86 | Before { ..., ... } | ControlFlow.cs:10:37:10:62 | Before ... = ... | +| ControlFlow.cs:10:35:10:86 | { ..., ... } | ControlFlow.cs:10:35:10:86 | After { ..., ... } | +| ControlFlow.cs:10:37:10:47 | access to array element | ControlFlow.cs:10:51:10:62 | access to field Empty | +| ControlFlow.cs:10:37:10:62 | ... = ... | ControlFlow.cs:10:37:10:62 | After ... = ... | +| ControlFlow.cs:10:37:10:62 | After ... = ... | ControlFlow.cs:10:65:10:84 | Before ... = ... | +| ControlFlow.cs:10:37:10:62 | Before ... = ... | ControlFlow.cs:10:37:10:47 | access to array element | +| ControlFlow.cs:10:51:10:62 | access to field Empty | ControlFlow.cs:10:37:10:62 | ... = ... | +| ControlFlow.cs:10:65:10:75 | access to array element | ControlFlow.cs:10:79:10:84 | Before Call (unknown target) | +| ControlFlow.cs:10:65:10:75 | access to array element | ControlFlow.cs:10:79:10:84 | Before access to property (unknown) | +| ControlFlow.cs:10:65:10:84 | ... = ... | ControlFlow.cs:10:65:10:84 | After ... = ... | +| ControlFlow.cs:10:65:10:84 | After ... = ... | ControlFlow.cs:10:35:10:86 | { ..., ... } | +| ControlFlow.cs:10:65:10:84 | Before ... = ... | ControlFlow.cs:10:65:10:75 | access to array element | | ControlFlow.cs:10:79:10:79 | access to local variable v | ControlFlow.cs:10:79:10:84 | Call (unknown target) | | ControlFlow.cs:10:79:10:79 | access to local variable v | ControlFlow.cs:10:79:10:84 | access to property (unknown) | -| ControlFlow.cs:10:79:10:84 | Call (unknown target) | ControlFlow.cs:10:65:10:75 | access to array element | -| ControlFlow.cs:10:79:10:84 | access to property (unknown) | ControlFlow.cs:10:65:10:75 | access to array element | +| ControlFlow.cs:10:79:10:84 | After Call (unknown target) | ControlFlow.cs:10:65:10:84 | ... = ... | +| ControlFlow.cs:10:79:10:84 | After access to property (unknown) | ControlFlow.cs:10:65:10:84 | ... = ... | +| ControlFlow.cs:10:79:10:84 | Before Call (unknown target) | ControlFlow.cs:10:79:10:79 | access to local variable v | +| ControlFlow.cs:10:79:10:84 | Before access to property (unknown) | ControlFlow.cs:10:79:10:79 | access to local variable v | +| ControlFlow.cs:10:79:10:84 | Call (unknown target) | ControlFlow.cs:10:79:10:84 | After Call (unknown target) | +| ControlFlow.cs:10:79:10:84 | Call (unknown target) | ControlFlow.cs:10:79:10:84 | After access to property (unknown) | +| ControlFlow.cs:10:79:10:84 | access to property (unknown) | ControlFlow.cs:10:79:10:84 | After Call (unknown target) | +| ControlFlow.cs:10:79:10:84 | access to property (unknown) | ControlFlow.cs:10:79:10:84 | After access to property (unknown) | From aaf9bb2e9e11471ab209f4522139c168dd71f2bf Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 9 Apr 2026 13:21:30 +0200 Subject: [PATCH 081/208] C#: Accept fewer CallContextSpecificCall due to no splitting. --- .../call-sensitivity/CallSensitivityFlow.expected | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected index bcd15ee7831..37639ca837a 100644 --- a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected @@ -10,17 +10,12 @@ edges | CallSensitivityFlow.cs:52:16:52:17 | access to local variable o3 : Object | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | provenance | | | CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | provenance | | | CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | provenance | | -| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | provenance | | -| CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | provenance | | | CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | provenance | | | CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | provenance | | | CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | provenance | | | CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | provenance | | -| CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | provenance | | | CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | provenance | | | CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | provenance | | -| CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | provenance | | -| CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | provenance | | | CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | provenance | | | CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | provenance | | | CallSensitivityFlow.cs:78:24:78:35 | object creation of type Object : Object | CallSensitivityFlow.cs:19:39:19:39 | o : Object | provenance | | @@ -80,17 +75,12 @@ nodes | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | semmle.label | access to local variable o3 | | CallSensitivityFlow.cs:56:46:56:46 | o : Object | semmle.label | o : Object | | CallSensitivityFlow.cs:56:46:56:46 | o : Object | semmle.label | o : Object | -| CallSensitivityFlow.cs:56:46:56:46 | o : Object | semmle.label | o : Object | -| CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | | CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | | CallSensitivityFlow.cs:58:16:58:17 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | | CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | semmle.label | access to local variable tmp : Object | | CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | semmle.label | access to local variable tmp : Object | -| CallSensitivityFlow.cs:62:20:62:22 | access to local variable tmp : Object | semmle.label | access to local variable tmp : Object | | CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | | CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | -| CallSensitivityFlow.cs:63:13:63:14 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | -| CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | semmle.label | access to local variable o3 : Object | | CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | semmle.label | access to local variable o3 : Object | | CallSensitivityFlow.cs:65:16:65:17 | access to local variable o3 : Object | semmle.label | access to local variable o3 : Object | | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | semmle.label | access to local variable o3 | From 452913f336b220870a51688bb62068d2ca55462c Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 10 Apr 2026 09:16:40 +0200 Subject: [PATCH 082/208] C#: Improve perf of UnsynchronizedStaticAccess.ql. --- .../Concurrency/UnsynchronizedStaticAccess.ql | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql index ca41f94cf56..bcb134a4e73 100644 --- a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql +++ b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql @@ -26,18 +26,28 @@ predicate correctlySynchronized(CollectionMember c, Expr access) { ) } -ControlFlowNode unlockedReachable(Callable a) { - result = a.getEntryPoint() +predicate firstLockingCallInBlock(BasicBlock b, int i) { + i = min(int j | b.getNode(j).asExpr() instanceof LockingCall) +} + +BasicBlock unlockedReachable(Callable a) { + result = a.getEntryPoint().getBasicBlock() or - exists(ControlFlowNode mid | mid = unlockedReachable(a) | - not mid.asExpr() instanceof LockingCall and + exists(BasicBlock mid | mid = unlockedReachable(a) | + not firstLockingCallInBlock(mid, _) and result = mid.getASuccessor() ) } predicate unlockedCalls(Callable a, Callable b) { - exists(Call call | - call.getAControlFlowNode() = unlockedReachable(a) and + exists(Call call, BasicBlock callBlock, int j | + call.getControlFlowNode() = callBlock.getNode(j) and + callBlock = unlockedReachable(a) and + ( + exists(int i | j <= i and firstLockingCallInBlock(callBlock, i)) + or + not firstLockingCallInBlock(callBlock, _) + ) and call.getARuntimeTarget() = b and not call.getParent*() instanceof LockStmt ) From d5c9fd1085da2faf6b3a868b37f134d87b0296c4 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 10 Apr 2026 15:36:01 +0200 Subject: [PATCH 083/208] C#/Cfg: A bit more qldoc. --- .../ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll | 1 + shared/controlflow/codeql/controlflow/ControlFlowGraph.qll | 1 + 2 files changed, 2 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index a0a578e2388..3847ce9494d 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -8,6 +8,7 @@ private import semmle.code.csharp.Caching private class TControlFlowElementOrCallable = @callable or @control_flow_element; +/** A `ControlFlowElement` or a `Callable`. */ class ControlFlowElementOrCallable extends ExprOrStmtParent, TControlFlowElementOrCallable { } /** diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index d52f423c080..c13ab65ff32 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -894,6 +894,7 @@ module Make0 Ast> { override string toString() { result = tag + " " + n } } + /** The `PreControlFlowNode` at the entry point of a callable. */ final class EntryNodeImpl extends NodeImpl, TEntryNode { private Callable c; From ad4018f399b87fccf34f54ef6e2ff765aff8ebe5 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 13:50:43 +0000 Subject: [PATCH 084/208] Python: Add parser support for lazy imports As defined in PEP-810. We implement this in much the same way as how we handle `async` annotations currently. The relevant nodes get an `is_lazy` field that defaults to being false. --- python/extractor/semmle/python/ast.py | 10 +- .../semmle/python/parser/dump_ast.py | 4 +- .../semmle/python/parser/tsg_parser.py | 2 +- .../tests/parser/lazy_imports_new.expected | 284 ++++++++++++++++++ .../tests/parser/lazy_imports_new.py | 34 +++ python/extractor/tsg-python/python.tsg | 7 + python/extractor/tsg-python/tsp/grammar.js | 3 + 7 files changed, 337 insertions(+), 7 deletions(-) create mode 100644 python/extractor/tests/parser/lazy_imports_new.expected create mode 100644 python/extractor/tests/parser/lazy_imports_new.py diff --git a/python/extractor/semmle/python/ast.py b/python/extractor/semmle/python/ast.py index 1efe5cd1d19..93ab146cb6f 100644 --- a/python/extractor/semmle/python/ast.py +++ b/python/extractor/semmle/python/ast.py @@ -845,17 +845,19 @@ class If(stmt): class Import(stmt): - __slots__ = "names", + __slots__ = "is_lazy", "names", - def __init__(self, names): + def __init__(self, names, is_lazy=False): self.names = names + self.is_lazy = is_lazy class ImportFrom(stmt): - __slots__ = "module", + __slots__ = "is_lazy", "module", - def __init__(self, module): + def __init__(self, module, is_lazy=False): self.module = module + self.is_lazy = is_lazy class Nonlocal(stmt): diff --git a/python/extractor/semmle/python/parser/dump_ast.py b/python/extractor/semmle/python/parser/dump_ast.py index 23e1a973dfc..802bed8fac2 100644 --- a/python/extractor/semmle/python/parser/dump_ast.py +++ b/python/extractor/semmle/python/parser/dump_ast.py @@ -72,8 +72,8 @@ class AstDumper(object): # just not print it in that case. if field == "parenthesised" and value is None: continue - # Likewise, the default value for `is_async` is `False`, so we don't need to print it. - if field == "is_async" and value is False: + # Likewise, the default value for `is_async` and `is_lazy` is `False`, so we don't need to print it. + if field in ("is_async", "is_lazy") and value is False: continue output.write("{} {}:".format(indent,field)) if isinstance(value, list): diff --git a/python/extractor/semmle/python/parser/tsg_parser.py b/python/extractor/semmle/python/parser/tsg_parser.py index 6ee8286c4c7..356faf249ed 100644 --- a/python/extractor/semmle/python/parser/tsg_parser.py +++ b/python/extractor/semmle/python/parser/tsg_parser.py @@ -291,7 +291,7 @@ def create_placeholder_args(cls): if cls in (ast.Raise, ast.Ellipsis): return {} fields = ast_fields[cls] - args = {field: None for field in fields if field != "is_async"} + args = {field: None for field in fields if field not in ("is_async", "is_lazy")} for field in list_fields.get(cls, ()): args[field] = [] if cls in (ast.GeneratorExp, ast.ListComp, ast.SetComp, ast.DictComp): diff --git a/python/extractor/tests/parser/lazy_imports_new.expected b/python/extractor/tests/parser/lazy_imports_new.expected new file mode 100644 index 00000000000..ae881c2c1b3 --- /dev/null +++ b/python/extractor/tests/parser/lazy_imports_new.expected @@ -0,0 +1,284 @@ +Module: [2, 0] - [35, 0] + body: [ + Import: [2, 0] - [2, 13] + is_lazy: True + names: [ + alias: [2, 12] - [2, 13] + value: + ImportExpr: [2, 12] - [2, 13] + level: 0 + name: 'a' + top: True + asname: + Name: [2, 12] - [2, 13] + variable: Variable('a', None) + ctx: Store + ] + Import: [4, 0] - [4, 18] + is_lazy: True + names: [ + alias: [4, 12] - [4, 14] + value: + ImportExpr: [4, 12] - [4, 14] + level: 0 + name: 'b1' + top: True + asname: + Name: [4, 12] - [4, 14] + variable: Variable('b1', None) + ctx: Store + alias: [4, 16] - [4, 18] + value: + ImportExpr: [4, 16] - [4, 18] + level: 0 + name: 'b2' + top: True + asname: + Name: [4, 16] - [4, 18] + variable: Variable('b2', None) + ctx: Store + ] + Import: [6, 0] - [6, 20] + is_lazy: True + names: [ + alias: [6, 12] - [6, 20] + value: + ImportExpr: [6, 12] - [6, 20] + level: 0 + name: 'c1.c2.c3' + top: True + asname: + Name: [6, 12] - [6, 20] + variable: Variable('c1', None) + ctx: Store + ] + Import: [8, 0] - [8, 23] + is_lazy: True + names: [ + alias: [8, 12] - [8, 23] + value: + ImportExpr: [8, 12] - [8, 17] + level: 0 + name: 'd1.d2' + top: False + asname: + Name: [8, 21] - [8, 23] + variable: Variable('d3', None) + ctx: Store + ] + Import: [10, 0] - [10, 20] + is_lazy: True + names: [ + alias: [10, 19] - [10, 20] + value: + ImportMember: [10, 19] - [10, 20] + module: + ImportExpr: [10, 10] - [10, 11] + level: 0 + name: 'e' + top: False + name: 'f' + asname: + Name: [10, 19] - [10, 20] + variable: Variable('f', None) + ctx: Store + ] + Import: [12, 0] - [12, 29] + is_lazy: True + names: [ + alias: [12, 23] - [12, 25] + value: + ImportMember: [12, 23] - [12, 25] + module: + ImportExpr: [12, 10] - [12, 15] + level: 0 + name: 'g1.g2' + top: False + name: 'h1' + asname: + Name: [12, 23] - [12, 25] + variable: Variable('h1', None) + ctx: Store + alias: [12, 27] - [12, 29] + value: + ImportMember: [12, 27] - [12, 29] + module: + ImportExpr: [12, 10] - [12, 15] + level: 0 + name: 'g1.g2' + top: False + name: 'h2' + asname: + Name: [12, 27] - [12, 29] + variable: Variable('h2', None) + ctx: Store + ] + Import: [14, 0] - [14, 32] + is_lazy: True + names: [ + alias: [14, 20] - [14, 28] + value: + ImportMember: [14, 20] - [14, 28] + module: + ImportExpr: [14, 10] - [14, 12] + level: 0 + name: 'i1' + top: False + name: 'j1' + asname: + Name: [14, 26] - [14, 28] + variable: Variable('j2', None) + ctx: Store + alias: [14, 30] - [14, 32] + value: + ImportMember: [14, 30] - [14, 32] + module: + ImportExpr: [14, 10] - [14, 12] + level: 0 + name: 'i1' + top: False + name: 'j3' + asname: + Name: [14, 30] - [14, 32] + variable: Variable('j3', None) + ctx: Store + ] + Import: [16, 0] - [16, 37] + is_lazy: True + names: [ + alias: [16, 25] - [16, 33] + value: + ImportMember: [16, 25] - [16, 33] + module: + ImportExpr: [16, 10] - [16, 17] + level: 2 + name: 'k1.k2' + top: False + name: 'l1' + asname: + Name: [16, 31] - [16, 33] + variable: Variable('l2', None) + ctx: Store + alias: [16, 35] - [16, 37] + value: + ImportMember: [16, 35] - [16, 37] + module: + ImportExpr: [16, 10] - [16, 17] + level: 2 + name: 'k1.k2' + top: False + name: 'l3' + asname: + Name: [16, 35] - [16, 37] + variable: Variable('l3', None) + ctx: Store + ] + Import: [18, 0] - [18, 20] + is_lazy: True + names: [ + alias: [18, 19] - [18, 20] + value: + ImportMember: [18, 19] - [18, 20] + module: + ImportExpr: [18, 10] - [18, 11] + level: 1 + name: None + top: False + name: 'm' + asname: + Name: [18, 19] - [18, 20] + variable: Variable('m', None) + ctx: Store + ] + Import: [20, 0] - [20, 22] + is_lazy: True + names: [ + alias: [20, 21] - [20, 22] + value: + ImportMember: [20, 21] - [20, 22] + module: + ImportExpr: [20, 10] - [20, 13] + level: 3 + name: None + top: False + name: 'n' + asname: + Name: [20, 21] - [20, 22] + variable: Variable('n', None) + ctx: Store + ] + ImportFrom: [22, 0] - [22, 20] + is_lazy: True + module: + ImportExpr: [22, 10] - [22, 11] + level: 0 + name: 'o' + top: False + Assign: [26, 0] - [26, 8] + targets: [ + Name: [26, 0] - [26, 4] + variable: Variable('lazy', None) + ctx: Store + ] + value: + Num: [26, 7] - [26, 8] + n: 1 + text: '1' + Assign: [28, 0] - [28, 11] + targets: [ + Subscript: [28, 0] - [28, 7] + value: + Name: [28, 0] - [28, 4] + variable: Variable('lazy', None) + ctx: Load + index: + Num: [28, 5] - [28, 6] + n: 2 + text: '2' + ctx: Store + ] + value: + Num: [28, 10] - [28, 11] + n: 3 + text: '3' + Assign: [30, 0] - [30, 12] + targets: [ + Attribute: [30, 0] - [30, 8] + value: + Name: [30, 0] - [30, 4] + variable: Variable('lazy', None) + ctx: Load + attr: 'foo' + ctx: Store + ] + value: + Num: [30, 11] - [30, 12] + n: 4 + text: '4' + Expr: [32, 0] - [32, 6] + value: + Call: [32, 0] - [32, 6] + func: + Name: [32, 0] - [32, 4] + variable: Variable('lazy', None) + ctx: Load + positional_args: [] + named_args: [] + AnnAssign: [34, 0] - [34, 14] + value: None + annotation: + Name: [34, 10] - [34, 14] + variable: Variable('case', None) + ctx: Load + target: + Subscript: [34, 0] - [34, 7] + value: + Name: [34, 0] - [34, 4] + variable: Variable('lazy', None) + ctx: Load + index: + Num: [34, 5] - [34, 6] + n: 5 + text: '5' + ctx: Store + ] diff --git a/python/extractor/tests/parser/lazy_imports_new.py b/python/extractor/tests/parser/lazy_imports_new.py new file mode 100644 index 00000000000..13d01eaa6c4 --- /dev/null +++ b/python/extractor/tests/parser/lazy_imports_new.py @@ -0,0 +1,34 @@ +# Basic lazy imports (PEP 810) +lazy import a + +lazy import b1, b2 + +lazy import c1.c2.c3 + +lazy import d1.d2 as d3 + +lazy from e import f + +lazy from g1.g2 import h1, h2 + +lazy from i1 import j1 as j2, j3 + +lazy from ..k1.k2 import l1 as l2, l3 + +lazy from . import m + +lazy from ... import n + +lazy from o import * + + +# `lazy` used as a regular identifier (soft keyword behavior) +lazy = 1 + +lazy[2] = 3 + +lazy.foo = 4 + +lazy() + +lazy[5] : case diff --git a/python/extractor/tsg-python/python.tsg b/python/extractor/tsg-python/python.tsg index dd11814753d..93d6e95a344 100644 --- a/python/extractor/tsg-python/python.tsg +++ b/python/extractor/tsg-python/python.tsg @@ -1777,6 +1777,13 @@ attr (@importfrom.importexpr) level = level } +; Set is_lazy for lazy import statements (PEP 810) +[ + (import_statement is_lazy: _) + (import_from_statement is_lazy: _) +] @lazy_import +{ attr (@lazy_import.node) is_lazy = #true } + ;;;;;; End of Import (`from ... import ...`) ;;;;;; Raise (`raise ...`) diff --git a/python/extractor/tsg-python/tsp/grammar.js b/python/extractor/tsg-python/tsp/grammar.js index c53a67da126..05b792340dd 100644 --- a/python/extractor/tsg-python/tsp/grammar.js +++ b/python/extractor/tsg-python/tsp/grammar.js @@ -109,6 +109,7 @@ module.exports = grammar({ ), import_statement: $ => seq( + optional(field('is_lazy', 'lazy')), 'import', $._import_list ), @@ -131,6 +132,7 @@ module.exports = grammar({ ), import_from_statement: $ => seq( + optional(field('is_lazy', 'lazy')), 'from', field('module_name', choice( $.relative_import, @@ -1228,6 +1230,7 @@ module.exports = grammar({ 'await', 'match', 'type', + 'lazy', ), $.identifier )), From 2c79f9d8282ed0b1bbe03d6f126871c53d6523d1 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 13:50:59 +0000 Subject: [PATCH 085/208] Python: Regenerate parser files --- .../extractor/tsg-python/tsp/src/grammar.json | 36 + .../tsg-python/tsp/src/node-types.json | 24 + python/extractor/tsg-python/tsp/src/parser.c | 129879 ++++++++------- .../tsg-python/tsp/src/tree_sitter/array.h | 57 +- 4 files changed, 65469 insertions(+), 64527 deletions(-) diff --git a/python/extractor/tsg-python/tsp/src/grammar.json b/python/extractor/tsg-python/tsp/src/grammar.json index fbe1f17b949..552597b18a9 100644 --- a/python/extractor/tsg-python/tsp/src/grammar.json +++ b/python/extractor/tsg-python/tsp/src/grammar.json @@ -144,6 +144,22 @@ "import_statement": { "type": "SEQ", "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "is_lazy", + "content": { + "type": "STRING", + "value": "lazy" + } + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "import" @@ -232,6 +248,22 @@ "import_from_statement": { "type": "SEQ", "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "is_lazy", + "content": { + "type": "STRING", + "value": "lazy" + } + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "from" @@ -6721,6 +6753,10 @@ { "type": "STRING", "value": "type" + }, + { + "type": "STRING", + "value": "lazy" } ] }, diff --git a/python/extractor/tsg-python/tsp/src/node-types.json b/python/extractor/tsg-python/tsp/src/node-types.json index 609952bd5e5..f8659f44e2e 100644 --- a/python/extractor/tsg-python/tsp/src/node-types.json +++ b/python/extractor/tsg-python/tsp/src/node-types.json @@ -1811,6 +1811,16 @@ "type": "import_from_statement", "named": true, "fields": { + "is_lazy": { + "multiple": false, + "required": false, + "types": [ + { + "type": "lazy", + "named": false + } + ] + }, "module_name": { "multiple": false, "required": true, @@ -1860,6 +1870,16 @@ "type": "import_statement", "named": true, "fields": { + "is_lazy": { + "multiple": false, + "required": false, + "types": [ + { + "type": "lazy", + "named": false + } + ] + }, "name": { "multiple": true, "required": true, @@ -4154,6 +4174,10 @@ "type": "lambda", "named": false }, + { + "type": "lazy", + "named": false + }, { "type": "match", "named": false diff --git a/python/extractor/tsg-python/tsp/src/parser.c b/python/extractor/tsg-python/tsp/src/parser.c index 74a0d1440fb..c0d6afc81ee 100644 --- a/python/extractor/tsg-python/tsp/src/parser.c +++ b/python/extractor/tsg-python/tsp/src/parser.c @@ -7,317 +7,319 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 1723 +#define STATE_COUNT 1734 #define LARGE_STATE_COUNT 156 -#define SYMBOL_COUNT 291 +#define SYMBOL_COUNT 292 #define ALIAS_COUNT 3 -#define TOKEN_COUNT 109 +#define TOKEN_COUNT 110 #define EXTERNAL_TOKEN_COUNT 7 -#define FIELD_COUNT 54 +#define FIELD_COUNT 55 #define MAX_ALIAS_SEQUENCE_LENGTH 10 #define MAX_RESERVED_WORD_SET_SIZE 0 -#define PRODUCTION_ID_COUNT 166 +#define PRODUCTION_ID_COUNT 170 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { sym_identifier = 1, - anon_sym_import = 2, - anon_sym_DOT = 3, - anon_sym_from = 4, - anon_sym___future__ = 5, - anon_sym_LPAREN = 6, - anon_sym_RPAREN = 7, - anon_sym_COMMA = 8, - anon_sym_as = 9, - anon_sym_STAR = 10, - anon_sym_print = 11, - anon_sym_GT_GT = 12, - anon_sym_assert = 13, - anon_sym_COLON_EQ = 14, - anon_sym_return = 15, - anon_sym_del = 16, - anon_sym_raise = 17, - anon_sym_pass = 18, - anon_sym_break = 19, - anon_sym_continue = 20, - anon_sym_if = 21, - anon_sym_COLON = 22, - anon_sym_elif = 23, - anon_sym_else = 24, - anon_sym_async = 25, - anon_sym_for = 26, - anon_sym_in = 27, - anon_sym_while = 28, - anon_sym_try = 29, - anon_sym_except = 30, - anon_sym_finally = 31, - anon_sym_with = 32, - anon_sym_match = 33, - anon_sym_case = 34, - anon_sym_PIPE = 35, - anon_sym_DASH = 36, - anon_sym_PLUS = 37, - sym_match_wildcard_pattern = 38, - anon_sym_LBRACK = 39, - anon_sym_RBRACK = 40, - anon_sym_LBRACE = 41, - anon_sym_RBRACE = 42, - anon_sym_STAR_STAR = 43, - anon_sym_EQ = 44, - anon_sym_def = 45, - anon_sym_DASH_GT = 46, - anon_sym_global = 47, - anon_sym_nonlocal = 48, - anon_sym_exec = 49, - anon_sym_type = 50, - anon_sym_class = 51, - anon_sym_AT = 52, - anon_sym_not = 53, - anon_sym_and = 54, - anon_sym_or = 55, - anon_sym_SLASH = 56, - anon_sym_PERCENT = 57, - anon_sym_SLASH_SLASH = 58, - anon_sym_AMP = 59, - anon_sym_CARET = 60, - anon_sym_LT_LT = 61, - anon_sym_TILDE = 62, - anon_sym_LT = 63, - anon_sym_LT_EQ = 64, - anon_sym_EQ_EQ = 65, - anon_sym_BANG_EQ = 66, - anon_sym_GT_EQ = 67, - anon_sym_GT = 68, - anon_sym_LT_GT = 69, - anon_sym_is = 70, - anon_sym_lambda = 71, - anon_sym_PLUS_EQ = 72, - anon_sym_DASH_EQ = 73, - anon_sym_STAR_EQ = 74, - anon_sym_SLASH_EQ = 75, - anon_sym_AT_EQ = 76, - anon_sym_SLASH_SLASH_EQ = 77, - anon_sym_PERCENT_EQ = 78, - anon_sym_STAR_STAR_EQ = 79, - anon_sym_GT_GT_EQ = 80, - anon_sym_LT_LT_EQ = 81, - anon_sym_AMP_EQ = 82, - anon_sym_CARET_EQ = 83, - anon_sym_PIPE_EQ = 84, - anon_sym_yield = 85, - sym_ellipsis = 86, - anon_sym_LBRACE2 = 87, - sym__escape_interpolation = 88, - sym_escape_sequence = 89, - anon_sym_BSLASH = 90, - anon_sym_COLON2 = 91, - aux_sym_format_specifier_token1 = 92, - sym_type_conversion = 93, - sym_integer = 94, - sym_float = 95, - anon_sym_await = 96, - sym_true = 97, - sym_false = 98, - sym_none = 99, - sym_comment = 100, - anon_sym_SEMI = 101, - sym__newline = 102, - sym__indent = 103, - sym__dedent = 104, - sym__string_start = 105, - sym__string_content = 106, - sym__string_end = 107, - sym__template_string_start = 108, - sym_module = 109, - sym__statement = 110, - sym__simple_statements = 111, - sym_import_statement = 112, - sym_import_prefix = 113, - sym_relative_import = 114, - sym_future_import_statement = 115, - sym_import_from_statement = 116, - sym__import_list = 117, - sym_aliased_import = 118, - sym_wildcard_import = 119, - sym_print_statement = 120, - sym_chevron = 121, - sym_assert_statement = 122, - sym_expression_statement = 123, - sym_named_expression = 124, - sym_return_statement = 125, - sym_delete_statement = 126, - sym_raise_statement = 127, - sym_pass_statement = 128, - sym_break_statement = 129, - sym_continue_statement = 130, - sym_if_statement = 131, - sym_elif_clause = 132, - sym_else_clause = 133, - sym_for_statement = 134, - sym_while_statement = 135, - sym_try_statement = 136, - sym_exception_list = 137, - sym_except_clause = 138, - sym_except_group_clause = 139, - sym_finally_clause = 140, - sym_with_statement = 141, - sym_with_clause = 142, - sym_with_item = 143, - sym_match_statement = 144, - sym_cases = 145, - sym_case_block = 146, - sym__match_patterns = 147, - sym_open_sequence_match_pattern = 148, - sym__match_pattern = 149, - sym_match_as_pattern = 150, - sym__match_or_pattern = 151, - sym_match_or_pattern = 152, - sym__closed_pattern = 153, - sym_match_literal_pattern = 154, - sym_match_capture_pattern = 155, - sym_match_value_pattern = 156, - sym_match_group_pattern = 157, - sym_match_sequence_pattern = 158, - sym__match_maybe_star_pattern = 159, - sym_match_star_pattern = 160, - sym_match_mapping_pattern = 161, - sym_match_double_star_pattern = 162, - sym_match_key_value_pattern = 163, - sym_match_class_pattern = 164, - sym_pattern_class_name = 165, - sym_match_positional_pattern = 166, - sym_match_keyword_pattern = 167, - sym_guard = 168, - sym_function_definition = 169, - sym_parameters = 170, - sym_lambda_parameters = 171, - sym_list_splat = 172, - sym_dictionary_splat = 173, - sym_global_statement = 174, - sym_nonlocal_statement = 175, - sym_exec_statement = 176, - sym_type_alias_statement = 177, - sym_class_definition = 178, - sym_type_parameters = 179, - sym__type_bound = 180, - sym_typevar_parameter = 181, - sym_typevartuple_parameter = 182, - sym_paramspec_parameter = 183, - sym__type_parameter = 184, - sym__type_param_default = 185, - sym_parenthesized_list_splat = 186, - sym_argument_list = 187, - sym_decorated_definition = 188, - sym_decorator = 189, - sym_block = 190, - sym_expression_list = 191, - sym_dotted_name = 192, - sym__parameters = 193, - sym__patterns = 194, - sym_parameter = 195, - sym_pattern = 196, - sym_tuple_pattern = 197, - sym_list_pattern = 198, - sym_default_parameter = 199, - sym_typed_default_parameter = 200, - sym_list_splat_pattern = 201, - sym_dictionary_splat_pattern = 202, - sym__expression_within_for_in_clause = 203, - sym_expression = 204, - sym_primary_expression = 205, - sym_not_operator = 206, - sym_boolean_operator = 207, - sym_binary_operator = 208, - sym_unary_operator = 209, - sym_comparison_operator = 210, - sym_lambda = 211, - sym_lambda_within_for_in_clause = 212, - sym_assignment = 213, - sym_augmented_assignment = 214, - sym_pattern_list = 215, - sym__right_hand_side = 216, - sym_yield = 217, - sym_attribute = 218, - sym__index_expression = 219, - sym_index_expression_list = 220, - sym_subscript = 221, - sym_slice = 222, - sym_call = 223, - sym_typed_parameter = 224, - sym_type = 225, - sym_keyword_argument = 226, - sym_list = 227, - sym_set = 228, - sym_tuple = 229, - sym_dictionary = 230, - sym_pair = 231, - sym_list_comprehension = 232, - sym_dictionary_comprehension = 233, - sym_set_comprehension = 234, - sym_generator_expression = 235, - sym__comprehension_clauses = 236, - sym_parenthesized_expression = 237, - sym__collection_elements = 238, - sym_for_in_clause = 239, - sym_if_clause = 240, - sym_conditional_expression = 241, - sym_concatenated_string = 242, - sym_string = 243, - sym_concatenated_template_string = 244, - sym_template_string = 245, - sym_string_content = 246, - sym_interpolation = 247, - sym__f_expression = 248, - sym__not_escape_sequence = 249, - sym_format_specifier = 250, - sym_await = 251, - sym_positional_separator = 252, - sym_keyword_separator = 253, - sym__semicolon = 254, - aux_sym_module_repeat1 = 255, - aux_sym__simple_statements_repeat1 = 256, - aux_sym_import_prefix_repeat1 = 257, - aux_sym__import_list_repeat1 = 258, - aux_sym_print_statement_repeat1 = 259, - aux_sym_assert_statement_repeat1 = 260, - aux_sym_if_statement_repeat1 = 261, - aux_sym_try_statement_repeat1 = 262, - aux_sym_try_statement_repeat2 = 263, - aux_sym_exception_list_repeat1 = 264, - aux_sym_with_clause_repeat1 = 265, - aux_sym_cases_repeat1 = 266, - aux_sym_open_sequence_match_pattern_repeat1 = 267, - aux_sym_match_or_pattern_repeat1 = 268, - aux_sym_match_value_pattern_repeat1 = 269, - aux_sym_match_mapping_pattern_repeat1 = 270, - aux_sym_match_class_pattern_repeat1 = 271, - aux_sym_match_class_pattern_repeat2 = 272, - aux_sym_global_statement_repeat1 = 273, - aux_sym_type_parameters_repeat1 = 274, - aux_sym_argument_list_repeat1 = 275, - aux_sym_decorated_definition_repeat1 = 276, - aux_sym_expression_list_repeat1 = 277, - aux_sym__parameters_repeat1 = 278, - aux_sym__patterns_repeat1 = 279, - aux_sym_comparison_operator_repeat1 = 280, - aux_sym_index_expression_list_repeat1 = 281, - aux_sym_dictionary_repeat1 = 282, - aux_sym__comprehension_clauses_repeat1 = 283, - aux_sym__collection_elements_repeat1 = 284, - aux_sym_for_in_clause_repeat1 = 285, - aux_sym_concatenated_string_repeat1 = 286, - aux_sym_string_repeat1 = 287, - aux_sym_concatenated_template_string_repeat1 = 288, - aux_sym_string_content_repeat1 = 289, - aux_sym_format_specifier_repeat1 = 290, - alias_sym_format_expression = 291, - anon_alias_sym_isnot = 292, - anon_alias_sym_notin = 293, + anon_sym_lazy = 2, + anon_sym_import = 3, + anon_sym_DOT = 4, + anon_sym_from = 5, + anon_sym___future__ = 6, + anon_sym_LPAREN = 7, + anon_sym_RPAREN = 8, + anon_sym_COMMA = 9, + anon_sym_as = 10, + anon_sym_STAR = 11, + anon_sym_print = 12, + anon_sym_GT_GT = 13, + anon_sym_assert = 14, + anon_sym_COLON_EQ = 15, + anon_sym_return = 16, + anon_sym_del = 17, + anon_sym_raise = 18, + anon_sym_pass = 19, + anon_sym_break = 20, + anon_sym_continue = 21, + anon_sym_if = 22, + anon_sym_COLON = 23, + anon_sym_elif = 24, + anon_sym_else = 25, + anon_sym_async = 26, + anon_sym_for = 27, + anon_sym_in = 28, + anon_sym_while = 29, + anon_sym_try = 30, + anon_sym_except = 31, + anon_sym_finally = 32, + anon_sym_with = 33, + anon_sym_match = 34, + anon_sym_case = 35, + anon_sym_PIPE = 36, + anon_sym_DASH = 37, + anon_sym_PLUS = 38, + sym_match_wildcard_pattern = 39, + anon_sym_LBRACK = 40, + anon_sym_RBRACK = 41, + anon_sym_LBRACE = 42, + anon_sym_RBRACE = 43, + anon_sym_STAR_STAR = 44, + anon_sym_EQ = 45, + anon_sym_def = 46, + anon_sym_DASH_GT = 47, + anon_sym_global = 48, + anon_sym_nonlocal = 49, + anon_sym_exec = 50, + anon_sym_type = 51, + anon_sym_class = 52, + anon_sym_AT = 53, + anon_sym_not = 54, + anon_sym_and = 55, + anon_sym_or = 56, + anon_sym_SLASH = 57, + anon_sym_PERCENT = 58, + anon_sym_SLASH_SLASH = 59, + anon_sym_AMP = 60, + anon_sym_CARET = 61, + anon_sym_LT_LT = 62, + anon_sym_TILDE = 63, + anon_sym_LT = 64, + anon_sym_LT_EQ = 65, + anon_sym_EQ_EQ = 66, + anon_sym_BANG_EQ = 67, + anon_sym_GT_EQ = 68, + anon_sym_GT = 69, + anon_sym_LT_GT = 70, + anon_sym_is = 71, + anon_sym_lambda = 72, + anon_sym_PLUS_EQ = 73, + anon_sym_DASH_EQ = 74, + anon_sym_STAR_EQ = 75, + anon_sym_SLASH_EQ = 76, + anon_sym_AT_EQ = 77, + anon_sym_SLASH_SLASH_EQ = 78, + anon_sym_PERCENT_EQ = 79, + anon_sym_STAR_STAR_EQ = 80, + anon_sym_GT_GT_EQ = 81, + anon_sym_LT_LT_EQ = 82, + anon_sym_AMP_EQ = 83, + anon_sym_CARET_EQ = 84, + anon_sym_PIPE_EQ = 85, + anon_sym_yield = 86, + sym_ellipsis = 87, + anon_sym_LBRACE2 = 88, + sym__escape_interpolation = 89, + sym_escape_sequence = 90, + anon_sym_BSLASH = 91, + anon_sym_COLON2 = 92, + aux_sym_format_specifier_token1 = 93, + sym_type_conversion = 94, + sym_integer = 95, + sym_float = 96, + anon_sym_await = 97, + sym_true = 98, + sym_false = 99, + sym_none = 100, + sym_comment = 101, + anon_sym_SEMI = 102, + sym__newline = 103, + sym__indent = 104, + sym__dedent = 105, + sym__string_start = 106, + sym__string_content = 107, + sym__string_end = 108, + sym__template_string_start = 109, + sym_module = 110, + sym__statement = 111, + sym__simple_statements = 112, + sym_import_statement = 113, + sym_import_prefix = 114, + sym_relative_import = 115, + sym_future_import_statement = 116, + sym_import_from_statement = 117, + sym__import_list = 118, + sym_aliased_import = 119, + sym_wildcard_import = 120, + sym_print_statement = 121, + sym_chevron = 122, + sym_assert_statement = 123, + sym_expression_statement = 124, + sym_named_expression = 125, + sym_return_statement = 126, + sym_delete_statement = 127, + sym_raise_statement = 128, + sym_pass_statement = 129, + sym_break_statement = 130, + sym_continue_statement = 131, + sym_if_statement = 132, + sym_elif_clause = 133, + sym_else_clause = 134, + sym_for_statement = 135, + sym_while_statement = 136, + sym_try_statement = 137, + sym_exception_list = 138, + sym_except_clause = 139, + sym_except_group_clause = 140, + sym_finally_clause = 141, + sym_with_statement = 142, + sym_with_clause = 143, + sym_with_item = 144, + sym_match_statement = 145, + sym_cases = 146, + sym_case_block = 147, + sym__match_patterns = 148, + sym_open_sequence_match_pattern = 149, + sym__match_pattern = 150, + sym_match_as_pattern = 151, + sym__match_or_pattern = 152, + sym_match_or_pattern = 153, + sym__closed_pattern = 154, + sym_match_literal_pattern = 155, + sym_match_capture_pattern = 156, + sym_match_value_pattern = 157, + sym_match_group_pattern = 158, + sym_match_sequence_pattern = 159, + sym__match_maybe_star_pattern = 160, + sym_match_star_pattern = 161, + sym_match_mapping_pattern = 162, + sym_match_double_star_pattern = 163, + sym_match_key_value_pattern = 164, + sym_match_class_pattern = 165, + sym_pattern_class_name = 166, + sym_match_positional_pattern = 167, + sym_match_keyword_pattern = 168, + sym_guard = 169, + sym_function_definition = 170, + sym_parameters = 171, + sym_lambda_parameters = 172, + sym_list_splat = 173, + sym_dictionary_splat = 174, + sym_global_statement = 175, + sym_nonlocal_statement = 176, + sym_exec_statement = 177, + sym_type_alias_statement = 178, + sym_class_definition = 179, + sym_type_parameters = 180, + sym__type_bound = 181, + sym_typevar_parameter = 182, + sym_typevartuple_parameter = 183, + sym_paramspec_parameter = 184, + sym__type_parameter = 185, + sym__type_param_default = 186, + sym_parenthesized_list_splat = 187, + sym_argument_list = 188, + sym_decorated_definition = 189, + sym_decorator = 190, + sym_block = 191, + sym_expression_list = 192, + sym_dotted_name = 193, + sym__parameters = 194, + sym__patterns = 195, + sym_parameter = 196, + sym_pattern = 197, + sym_tuple_pattern = 198, + sym_list_pattern = 199, + sym_default_parameter = 200, + sym_typed_default_parameter = 201, + sym_list_splat_pattern = 202, + sym_dictionary_splat_pattern = 203, + sym__expression_within_for_in_clause = 204, + sym_expression = 205, + sym_primary_expression = 206, + sym_not_operator = 207, + sym_boolean_operator = 208, + sym_binary_operator = 209, + sym_unary_operator = 210, + sym_comparison_operator = 211, + sym_lambda = 212, + sym_lambda_within_for_in_clause = 213, + sym_assignment = 214, + sym_augmented_assignment = 215, + sym_pattern_list = 216, + sym__right_hand_side = 217, + sym_yield = 218, + sym_attribute = 219, + sym__index_expression = 220, + sym_index_expression_list = 221, + sym_subscript = 222, + sym_slice = 223, + sym_call = 224, + sym_typed_parameter = 225, + sym_type = 226, + sym_keyword_argument = 227, + sym_list = 228, + sym_set = 229, + sym_tuple = 230, + sym_dictionary = 231, + sym_pair = 232, + sym_list_comprehension = 233, + sym_dictionary_comprehension = 234, + sym_set_comprehension = 235, + sym_generator_expression = 236, + sym__comprehension_clauses = 237, + sym_parenthesized_expression = 238, + sym__collection_elements = 239, + sym_for_in_clause = 240, + sym_if_clause = 241, + sym_conditional_expression = 242, + sym_concatenated_string = 243, + sym_string = 244, + sym_concatenated_template_string = 245, + sym_template_string = 246, + sym_string_content = 247, + sym_interpolation = 248, + sym__f_expression = 249, + sym__not_escape_sequence = 250, + sym_format_specifier = 251, + sym_await = 252, + sym_positional_separator = 253, + sym_keyword_separator = 254, + sym__semicolon = 255, + aux_sym_module_repeat1 = 256, + aux_sym__simple_statements_repeat1 = 257, + aux_sym_import_prefix_repeat1 = 258, + aux_sym__import_list_repeat1 = 259, + aux_sym_print_statement_repeat1 = 260, + aux_sym_assert_statement_repeat1 = 261, + aux_sym_if_statement_repeat1 = 262, + aux_sym_try_statement_repeat1 = 263, + aux_sym_try_statement_repeat2 = 264, + aux_sym_exception_list_repeat1 = 265, + aux_sym_with_clause_repeat1 = 266, + aux_sym_cases_repeat1 = 267, + aux_sym_open_sequence_match_pattern_repeat1 = 268, + aux_sym_match_or_pattern_repeat1 = 269, + aux_sym_match_value_pattern_repeat1 = 270, + aux_sym_match_mapping_pattern_repeat1 = 271, + aux_sym_match_class_pattern_repeat1 = 272, + aux_sym_match_class_pattern_repeat2 = 273, + aux_sym_global_statement_repeat1 = 274, + aux_sym_type_parameters_repeat1 = 275, + aux_sym_argument_list_repeat1 = 276, + aux_sym_decorated_definition_repeat1 = 277, + aux_sym_expression_list_repeat1 = 278, + aux_sym__parameters_repeat1 = 279, + aux_sym__patterns_repeat1 = 280, + aux_sym_comparison_operator_repeat1 = 281, + aux_sym_index_expression_list_repeat1 = 282, + aux_sym_dictionary_repeat1 = 283, + aux_sym__comprehension_clauses_repeat1 = 284, + aux_sym__collection_elements_repeat1 = 285, + aux_sym_for_in_clause_repeat1 = 286, + aux_sym_concatenated_string_repeat1 = 287, + aux_sym_string_repeat1 = 288, + aux_sym_concatenated_template_string_repeat1 = 289, + aux_sym_string_content_repeat1 = 290, + aux_sym_format_specifier_repeat1 = 291, + alias_sym_format_expression = 292, + anon_alias_sym_isnot = 293, + anon_alias_sym_notin = 294, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", + [anon_sym_lazy] = "lazy", [anon_sym_import] = "import", [anon_sym_DOT] = ".", [anon_sym_from] = "from", @@ -615,6 +617,7 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, + [anon_sym_lazy] = anon_sym_lazy, [anon_sym_import] = anon_sym_import, [anon_sym_DOT] = anon_sym_DOT, [anon_sym_from] = anon_sym_from, @@ -918,6 +921,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [anon_sym_lazy] = { + .visible = true, + .named = false, + }, [anon_sym_import] = { .visible = true, .named = false, @@ -2116,37 +2123,38 @@ enum ts_field_identifiers { field_imaginary = 21, field_inner = 22, field_interpolation = 23, - field_key = 24, - field_kwarg = 25, - field_left = 26, - field_module_name = 27, - field_name = 28, - field_object = 29, - field_operator = 30, - field_operators = 31, - field_parameters = 32, - field_pattern = 33, - field_prefix = 34, - field_prefix_operator = 35, - field_real = 36, - field_return_type = 37, - field_right = 38, - field_start = 39, - field_step = 40, - field_stop = 41, - field_string_content = 42, - field_subject = 43, - field_subscript = 44, - field_suffix = 45, - field_superclasses = 46, - field_target = 47, - field_test = 48, - field_trailing_comma = 49, - field_type = 50, - field_type_parameter = 51, - field_type_parameters = 52, - field_value = 53, - field_vararg = 54, + field_is_lazy = 24, + field_key = 25, + field_kwarg = 26, + field_left = 27, + field_module_name = 28, + field_name = 29, + field_object = 30, + field_operator = 31, + field_operators = 32, + field_parameters = 33, + field_pattern = 34, + field_prefix = 35, + field_prefix_operator = 36, + field_real = 37, + field_return_type = 38, + field_right = 39, + field_start = 40, + field_step = 41, + field_stop = 42, + field_string_content = 43, + field_subject = 44, + field_subscript = 45, + field_suffix = 46, + field_superclasses = 47, + field_target = 48, + field_test = 49, + field_trailing_comma = 50, + field_type = 51, + field_type_parameter = 52, + field_type_parameters = 53, + field_value = 54, + field_vararg = 55, }; static const char * const ts_field_names[] = { @@ -2174,6 +2182,7 @@ static const char * const ts_field_names[] = { [field_imaginary] = "imaginary", [field_inner] = "inner", [field_interpolation] = "interpolation", + [field_is_lazy] = "is_lazy", [field_key] = "key", [field_kwarg] = "kwarg", [field_left] = "left", @@ -2229,147 +2238,151 @@ static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [20] = {.index = 21, .length = 4}, [21] = {.index = 25, .length = 4}, [22] = {.index = 29, .length = 2}, - [23] = {.index = 31, .length = 1}, - [24] = {.index = 32, .length = 2}, - [25] = {.index = 34, .length = 2}, - [26] = {.index = 36, .length = 1}, - [27] = {.index = 37, .length = 2}, - [28] = {.index = 39, .length = 1}, - [29] = {.index = 40, .length = 2}, - [30] = {.index = 42, .length = 1}, - [31] = {.index = 43, .length = 1}, - [32] = {.index = 44, .length = 1}, - [33] = {.index = 45, .length = 1}, - [34] = {.index = 45, .length = 1}, - [35] = {.index = 37, .length = 2}, - [36] = {.index = 46, .length = 2}, + [23] = {.index = 31, .length = 2}, + [24] = {.index = 33, .length = 2}, + [25] = {.index = 35, .length = 1}, + [26] = {.index = 36, .length = 2}, + [27] = {.index = 38, .length = 2}, + [28] = {.index = 40, .length = 1}, + [29] = {.index = 41, .length = 1}, + [30] = {.index = 42, .length = 2}, + [31] = {.index = 44, .length = 1}, + [32] = {.index = 45, .length = 1}, + [33] = {.index = 46, .length = 1}, + [34] = {.index = 47, .length = 1}, + [35] = {.index = 47, .length = 1}, + [36] = {.index = 31, .length = 2}, [37] = {.index = 48, .length = 2}, [38] = {.index = 50, .length = 2}, - [39] = {.index = 52, .length = 3}, - [40] = {.index = 55, .length = 2}, - [41] = {.index = 57, .length = 1}, - [42] = {.index = 58, .length = 2}, - [43] = {.index = 60, .length = 1}, - [44] = {.index = 61, .length = 2}, + [39] = {.index = 52, .length = 2}, + [40] = {.index = 54, .length = 3}, + [41] = {.index = 57, .length = 2}, + [42] = {.index = 59, .length = 1}, + [43] = {.index = 60, .length = 2}, + [44] = {.index = 62, .length = 1}, [45] = {.index = 63, .length = 2}, - [46] = {.index = 65, .length = 1}, - [47] = {.index = 66, .length = 2}, - [48] = {.index = 68, .length = 1}, - [50] = {.index = 69, .length = 3}, - [51] = {.index = 72, .length = 1}, - [52] = {.index = 73, .length = 2}, - [53] = {.index = 75, .length = 1}, - [54] = {.index = 76, .length = 2}, + [46] = {.index = 65, .length = 2}, + [47] = {.index = 67, .length = 1}, + [48] = {.index = 68, .length = 2}, + [49] = {.index = 70, .length = 1}, + [51] = {.index = 71, .length = 3}, + [52] = {.index = 74, .length = 1}, + [53] = {.index = 75, .length = 2}, + [54] = {.index = 77, .length = 1}, [55] = {.index = 78, .length = 2}, - [56] = {.index = 44, .length = 1}, - [57] = {.index = 80, .length = 1}, - [58] = {.index = 81, .length = 2}, + [56] = {.index = 80, .length = 2}, + [57] = {.index = 46, .length = 1}, + [58] = {.index = 82, .length = 1}, [59] = {.index = 83, .length = 2}, - [60] = {.index = 83, .length = 2}, + [60] = {.index = 85, .length = 2}, [61] = {.index = 85, .length = 2}, [62] = {.index = 87, .length = 2}, [63] = {.index = 89, .length = 2}, [64] = {.index = 91, .length = 2}, - [65] = {.index = 93, .length = 1}, - [66] = {.index = 94, .length = 2}, - [67] = {.index = 43, .length = 1}, - [68] = {.index = 96, .length = 1}, - [69] = {.index = 97, .length = 1}, - [70] = {.index = 98, .length = 2}, + [65] = {.index = 93, .length = 2}, + [66] = {.index = 95, .length = 1}, + [67] = {.index = 96, .length = 2}, + [68] = {.index = 45, .length = 1}, + [69] = {.index = 98, .length = 1}, + [70] = {.index = 99, .length = 1}, [71] = {.index = 100, .length = 2}, - [72] = {.index = 100, .length = 2}, - [74] = {.index = 102, .length = 1}, - [75] = {.index = 103, .length = 3}, - [76] = {.index = 106, .length = 3}, - [77] = {.index = 109, .length = 3}, - [78] = {.index = 112, .length = 1}, + [72] = {.index = 102, .length = 2}, + [73] = {.index = 102, .length = 2}, + [75] = {.index = 104, .length = 3}, + [76] = {.index = 107, .length = 2}, + [77] = {.index = 109, .length = 1}, + [78] = {.index = 110, .length = 3}, [79] = {.index = 113, .length = 3}, [80] = {.index = 116, .length = 3}, - [81] = {.index = 119, .length = 2}, - [82] = {.index = 121, .length = 2}, - [83] = {.index = 123, .length = 1}, - [84] = {.index = 124, .length = 2}, - [85] = {.index = 126, .length = 2}, - [86] = {.index = 128, .length = 1}, - [87] = {.index = 129, .length = 3}, - [88] = {.index = 132, .length = 3}, - [89] = {.index = 135, .length = 3}, - [90] = {.index = 138, .length = 3}, - [91] = {.index = 141, .length = 3}, - [92] = {.index = 144, .length = 3}, - [93] = {.index = 85, .length = 2}, - [94] = {.index = 147, .length = 1}, - [95] = {.index = 148, .length = 2}, - [96] = {.index = 150, .length = 1}, - [97] = {.index = 151, .length = 2}, - [98] = {.index = 153, .length = 2}, - [99] = {.index = 155, .length = 4}, - [100] = {.index = 159, .length = 2}, - [101] = {.index = 161, .length = 4}, - [102] = {.index = 165, .length = 4}, - [103] = {.index = 169, .length = 2}, - [104] = {.index = 171, .length = 3}, - [105] = {.index = 174, .length = 3}, - [106] = {.index = 177, .length = 4}, - [107] = {.index = 181, .length = 2}, - [108] = {.index = 183, .length = 2}, - [109] = {.index = 185, .length = 1}, - [110] = {.index = 186, .length = 1}, - [111] = {.index = 187, .length = 3}, - [112] = {.index = 190, .length = 2}, - [113] = {.index = 192, .length = 2}, - [114] = {.index = 194, .length = 4}, - [115] = {.index = 198, .length = 4}, - [116] = {.index = 202, .length = 4}, - [117] = {.index = 206, .length = 4}, - [118] = {.index = 210, .length = 4}, - [119] = {.index = 214, .length = 3}, - [120] = {.index = 217, .length = 2}, - [121] = {.index = 219, .length = 2}, - [122] = {.index = 221, .length = 2}, - [123] = {.index = 223, .length = 3}, - [124] = {.index = 226, .length = 5}, - [125] = {.index = 231, .length = 3}, - [126] = {.index = 234, .length = 4}, - [127] = {.index = 238, .length = 4}, - [128] = {.index = 242, .length = 4}, - [129] = {.index = 246, .length = 4}, - [130] = {.index = 250, .length = 2}, - [131] = {.index = 252, .length = 1}, - [132] = {.index = 253, .length = 3}, - [133] = {.index = 256, .length = 1}, - [134] = {.index = 257, .length = 2}, - [135] = {.index = 259, .length = 2}, - [136] = {.index = 261, .length = 1}, - [137] = {.index = 262, .length = 4}, - [138] = {.index = 266, .length = 5}, - [139] = {.index = 271, .length = 5}, - [140] = {.index = 276, .length = 3}, - [141] = {.index = 279, .length = 3}, - [142] = {.index = 282, .length = 4}, - [143] = {.index = 286, .length = 4}, - [144] = {.index = 290, .length = 4}, - [145] = {.index = 294, .length = 5}, - [146] = {.index = 299, .length = 5}, - [147] = {.index = 304, .length = 2}, - [148] = {.index = 306, .length = 3}, - [149] = {.index = 309, .length = 4}, - [150] = {.index = 313, .length = 3}, - [151] = {.index = 316, .length = 3}, - [152] = {.index = 319, .length = 5}, - [153] = {.index = 324, .length = 5}, - [154] = {.index = 329, .length = 5}, - [155] = {.index = 334, .length = 5}, - [156] = {.index = 339, .length = 5}, - [157] = {.index = 344, .length = 3}, - [158] = {.index = 347, .length = 3}, - [159] = {.index = 350, .length = 4}, - [160] = {.index = 354, .length = 2}, - [161] = {.index = 356, .length = 6}, - [162] = {.index = 362, .length = 6}, - [163] = {.index = 368, .length = 3}, - [164] = {.index = 371, .length = 4}, - [165] = {.index = 375, .length = 4}, + [81] = {.index = 119, .length = 1}, + [82] = {.index = 120, .length = 3}, + [83] = {.index = 123, .length = 3}, + [84] = {.index = 126, .length = 2}, + [85] = {.index = 128, .length = 2}, + [86] = {.index = 130, .length = 1}, + [87] = {.index = 131, .length = 2}, + [88] = {.index = 133, .length = 2}, + [89] = {.index = 135, .length = 1}, + [90] = {.index = 136, .length = 3}, + [91] = {.index = 139, .length = 3}, + [92] = {.index = 142, .length = 3}, + [93] = {.index = 145, .length = 3}, + [94] = {.index = 148, .length = 3}, + [95] = {.index = 151, .length = 3}, + [96] = {.index = 87, .length = 2}, + [97] = {.index = 154, .length = 1}, + [98] = {.index = 155, .length = 2}, + [99] = {.index = 157, .length = 1}, + [100] = {.index = 158, .length = 2}, + [101] = {.index = 160, .length = 2}, + [102] = {.index = 162, .length = 4}, + [103] = {.index = 166, .length = 2}, + [104] = {.index = 168, .length = 4}, + [105] = {.index = 172, .length = 4}, + [106] = {.index = 176, .length = 2}, + [107] = {.index = 178, .length = 3}, + [108] = {.index = 181, .length = 3}, + [109] = {.index = 184, .length = 4}, + [110] = {.index = 188, .length = 2}, + [111] = {.index = 190, .length = 2}, + [112] = {.index = 192, .length = 1}, + [113] = {.index = 193, .length = 1}, + [114] = {.index = 194, .length = 3}, + [115] = {.index = 197, .length = 2}, + [116] = {.index = 199, .length = 2}, + [117] = {.index = 201, .length = 4}, + [118] = {.index = 205, .length = 4}, + [119] = {.index = 209, .length = 4}, + [120] = {.index = 213, .length = 4}, + [121] = {.index = 217, .length = 4}, + [122] = {.index = 221, .length = 3}, + [123] = {.index = 224, .length = 2}, + [124] = {.index = 226, .length = 2}, + [125] = {.index = 228, .length = 3}, + [126] = {.index = 231, .length = 2}, + [127] = {.index = 233, .length = 3}, + [128] = {.index = 236, .length = 5}, + [129] = {.index = 241, .length = 3}, + [130] = {.index = 244, .length = 4}, + [131] = {.index = 248, .length = 4}, + [132] = {.index = 252, .length = 4}, + [133] = {.index = 256, .length = 4}, + [134] = {.index = 260, .length = 2}, + [135] = {.index = 262, .length = 1}, + [136] = {.index = 263, .length = 3}, + [137] = {.index = 266, .length = 1}, + [138] = {.index = 267, .length = 2}, + [139] = {.index = 269, .length = 2}, + [140] = {.index = 271, .length = 1}, + [141] = {.index = 272, .length = 4}, + [142] = {.index = 276, .length = 5}, + [143] = {.index = 281, .length = 5}, + [144] = {.index = 286, .length = 3}, + [145] = {.index = 289, .length = 3}, + [146] = {.index = 292, .length = 4}, + [147] = {.index = 296, .length = 4}, + [148] = {.index = 300, .length = 4}, + [149] = {.index = 304, .length = 5}, + [150] = {.index = 309, .length = 5}, + [151] = {.index = 314, .length = 2}, + [152] = {.index = 316, .length = 3}, + [153] = {.index = 319, .length = 4}, + [154] = {.index = 323, .length = 3}, + [155] = {.index = 326, .length = 3}, + [156] = {.index = 329, .length = 5}, + [157] = {.index = 334, .length = 5}, + [158] = {.index = 339, .length = 5}, + [159] = {.index = 344, .length = 5}, + [160] = {.index = 349, .length = 5}, + [161] = {.index = 354, .length = 3}, + [162] = {.index = 357, .length = 3}, + [163] = {.index = 360, .length = 4}, + [164] = {.index = 364, .length = 2}, + [165] = {.index = 366, .length = 6}, + [166] = {.index = 372, .length = 6}, + [167] = {.index = 378, .length = 3}, + [168] = {.index = 381, .length = 4}, + [169] = {.index = 385, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -2422,486 +2435,500 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_string_content, 0, .inherited = true}, {field_string_content, 1, .inherited = true}, [29] = - {field_name, 0}, - {field_name, 1, .inherited = true}, + {field_is_lazy, 0}, + {field_name, 2, .inherited = true}, [31] = - {field_name, 1}, - [32] = - {field_element, 0}, - {field_trailing_comma, 1}, - [34] = - {field_element, 1, .inherited = true}, - {field_trailing_comma, 1, .inherited = true}, - [36] = - {field_inner, 1}, - [37] = {field_name, 0}, {field_value, 2}, - [39] = - {field_argument, 2, .inherited = true}, + [33] = + {field_name, 0}, + {field_name, 1, .inherited = true}, + [35] = + {field_name, 1}, + [36] = + {field_element, 0}, + {field_trailing_comma, 1}, + [38] = + {field_element, 1, .inherited = true}, + {field_trailing_comma, 1, .inherited = true}, [40] = - {field_argument, 1}, + {field_inner, 1}, + [41] = {field_argument, 2, .inherited = true}, [42] = - {field_cause, 2}, - [43] = - {field_element, 1}, + {field_argument, 1}, + {field_argument, 2, .inherited = true}, [44] = - {field_body, 2}, + {field_cause, 2}, [45] = - {field_kwarg, 1}, + {field_element, 1}, [46] = + {field_body, 2}, + [47] = + {field_kwarg, 1}, + [48] = {field_element, 0, .inherited = true}, {field_element, 1, .inherited = true}, - [48] = - {field_left, 0}, - {field_type, 2}, [50] = {field_left, 0}, - {field_right, 2}, + {field_type, 2}, [52] = + {field_left, 0}, + {field_right, 2}, + [54] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [55] = + [57] = {field_attribute, 2}, {field_object, 0}, - [57] = + [59] = {field_operators, 0}, - [58] = + [60] = {field_operators, 0, .inherited = true}, {field_operators, 1, .inherited = true}, - [60] = + [62] = {field_expression, 1}, - [61] = + [63] = {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, - [63] = + [65] = {field_alias, 2}, {field_name, 0}, - [65] = - {field_name, 3, .inherited = true}, - [66] = - {field_module_name, 1}, + [67] = {field_name, 3, .inherited = true}, [68] = {field_module_name, 1}, - [69] = + {field_name, 3, .inherited = true}, + [70] = + {field_module_name, 1}, + [71] = {field_element, 0}, {field_element, 1, .inherited = true}, {field_trailing_comma, 2}, - [72] = + [74] = {field_body, 1}, - [73] = + [75] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, - [75] = + [77] = {field_cause, 3}, - [76] = + [78] = {field_condition, 1}, {field_consequence, 3}, - [78] = - {field_body, 3}, - {field_condition, 1}, [80] = {field_body, 3}, - [81] = + {field_condition, 1}, + [82] = + {field_body, 3}, + [83] = {field_alias, 2}, {field_value, 0}, - [83] = + [85] = {field_cases, 3}, {field_subject, 1}, - [85] = + [87] = {field_element, 1}, {field_element, 2, .inherited = true}, - [87] = + [89] = {field_key, 0}, {field_value, 2}, - [89] = + [91] = {field_name, 1}, {field_value, 3}, - [91] = + [93] = {field_body, 3}, {field_name, 1}, - [93] = + [95] = {field_type, 2}, - [94] = + [96] = {field_body, 3}, {field_parameters, 1}, - [96] = - {field_stop, 1}, - [97] = - {field_start, 0}, [98] = + {field_stop, 1}, + [99] = + {field_start, 0}, + [100] = {field_subscript, 2}, {field_value, 0}, - [100] = + [102] = {field_operators, 0}, {field_operators, 1}, - [102] = + [104] = + {field_is_lazy, 0}, + {field_module_name, 2}, + {field_name, 4, .inherited = true}, + [107] = + {field_is_lazy, 0}, + {field_module_name, 2}, + [109] = {field_alternative, 0}, - [103] = + [110] = {field_alternative, 4}, {field_condition, 1}, {field_consequence, 3}, - [106] = + [113] = {field_alternative, 4, .inherited = true}, {field_condition, 1}, {field_consequence, 3}, - [109] = + [116] = {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [112] = + [119] = {field_body, 4}, - [113] = + [120] = {field_alternative, 4}, {field_body, 3}, {field_condition, 1}, - [116] = + [123] = {field_body, 3}, {field_body, 4}, {field_condition, 1}, - [119] = + [126] = {field_body, 2}, {field_body, 3}, - [121] = + [128] = {field_body, 3}, {field_body, 4}, - [123] = + [130] = {field_real, 0}, - [124] = + [131] = {field_bound, 1, .inherited = true}, {field_name, 0}, - [126] = + [133] = {field_default, 1, .inherited = true}, {field_name, 0}, - [128] = + [135] = {field_type_parameter, 1}, - [129] = + [136] = {field_body, 4}, {field_name, 1}, {field_parameters, 2}, - [132] = + [139] = {field_name, 1}, {field_type_parameters, 2}, {field_value, 4}, - [135] = + [142] = {field_body, 3}, {field_body, 4}, {field_name, 1}, - [138] = + [145] = {field_body, 4}, {field_name, 1}, {field_type_parameters, 2}, - [141] = + [148] = {field_body, 4}, {field_name, 1}, {field_superclasses, 2}, - [144] = + [151] = {field_left, 0}, {field_right, 4}, {field_type, 2}, - [147] = + [154] = {field_step, 2}, - [148] = + [155] = {field_start, 0}, {field_stop, 2}, - [150] = + [157] = {field_name, 4, .inherited = true}, - [151] = + [158] = {field_module_name, 1}, {field_name, 4, .inherited = true}, - [153] = + [160] = {field_left, 1}, {field_right, 3}, - [155] = + [162] = {field_alternative, 4, .inherited = true}, {field_alternative, 5}, {field_condition, 1}, {field_consequence, 3}, - [159] = + [166] = {field_alternative, 0, .inherited = true}, {field_alternative, 1, .inherited = true}, - [161] = + [168] = {field_alternative, 5}, {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [165] = + [172] = {field_alternative, 5, .inherited = true}, {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [169] = + [176] = {field_body, 4}, {field_body, 5}, - [171] = + [178] = {field_body, 5}, {field_name, 2}, {field_parameters, 3}, - [174] = + [181] = {field_body, 5}, {field_left, 1}, {field_right, 3}, - [177] = + [184] = {field_alternative, 5}, {field_body, 3}, {field_body, 4}, {field_condition, 1}, - [181] = + [188] = {field_prefix_operator, 0}, {field_real, 1}, - [183] = + [190] = {field_default, 2, .inherited = true}, {field_name, 1}, - [185] = + [192] = {field_bound, 1}, - [186] = + [193] = {field_default, 1}, - [187] = + [194] = {field_bound, 1, .inherited = true}, {field_default, 2, .inherited = true}, {field_name, 0}, - [190] = + [197] = {field_type_parameter, 1}, {field_type_parameter, 2, .inherited = true}, - [192] = + [199] = {field_type_parameter, 0, .inherited = true}, {field_type_parameter, 1, .inherited = true}, - [194] = + [201] = {field_body, 4}, {field_body, 5}, {field_name, 1}, {field_parameters, 2}, - [198] = + [205] = {field_body, 5}, {field_name, 1}, {field_parameters, 3}, {field_type_parameters, 2}, - [202] = + [209] = {field_body, 4}, {field_body, 5}, {field_name, 1}, {field_type_parameters, 2}, - [206] = + [213] = {field_body, 5}, {field_name, 1}, {field_superclasses, 3}, {field_type_parameters, 2}, - [210] = + [217] = {field_body, 4}, {field_body, 5}, {field_name, 1}, {field_superclasses, 2}, - [214] = + [221] = {field_name, 0}, {field_type, 2}, {field_value, 4}, - [217] = + [224] = {field_step, 3}, {field_stop, 1}, - [219] = + [226] = {field_start, 0}, {field_step, 3}, - [221] = + [228] = + {field_is_lazy, 0}, + {field_module_name, 2}, + {field_name, 5, .inherited = true}, + [231] = {field_left, 2}, {field_right, 4}, - [223] = + [233] = {field_left, 1}, {field_right, 3}, {field_right, 4}, - [226] = + [236] = {field_alternative, 5, .inherited = true}, {field_alternative, 6}, {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [231] = + [241] = {field_body, 6}, {field_left, 2}, {field_right, 4}, - [234] = + [244] = {field_body, 5}, {field_body, 6}, {field_name, 2}, {field_parameters, 3}, - [238] = + [248] = {field_body, 6}, {field_name, 2}, {field_parameters, 4}, {field_type_parameters, 3}, - [242] = + [252] = {field_alternative, 6}, {field_body, 5}, {field_left, 1}, {field_right, 3}, - [246] = + [256] = {field_body, 5}, {field_body, 6}, {field_left, 1}, {field_right, 3}, - [250] = + [260] = {field_body, 3}, {field_type, 1}, - [252] = + [262] = {field_content, 1}, - [253] = + [263] = {field_imaginary, 2}, {field_operator, 1}, {field_real, 0}, - [256] = + [266] = {field_test, 1}, - [257] = + [267] = {field_body, 3}, {field_pattern, 1}, - [259] = + [269] = {field_alias, 2}, {field_pattern, 0}, - [261] = + [271] = {field_class, 0}, - [262] = + [272] = {field_body, 6}, {field_name, 1}, {field_parameters, 2}, {field_return_type, 4}, - [266] = + [276] = {field_body, 5}, {field_body, 6}, {field_name, 1}, {field_parameters, 3}, {field_type_parameters, 2}, - [271] = + [281] = {field_body, 5}, {field_body, 6}, {field_name, 1}, {field_superclasses, 3}, {field_type_parameters, 2}, - [276] = + [286] = {field_start, 0}, {field_step, 4}, {field_stop, 2}, - [279] = + [289] = {field_left, 2}, {field_right, 4}, {field_right, 5}, - [282] = + [292] = {field_alternative, 7}, {field_body, 6}, {field_left, 2}, {field_right, 4}, - [286] = + [296] = {field_body, 6}, {field_body, 7}, {field_left, 2}, {field_right, 4}, - [290] = + [300] = {field_body, 7}, {field_name, 2}, {field_parameters, 3}, {field_return_type, 5}, - [294] = + [304] = {field_body, 6}, {field_body, 7}, {field_name, 2}, {field_parameters, 4}, {field_type_parameters, 3}, - [299] = + [309] = {field_alternative, 7}, {field_body, 5}, {field_body, 6}, {field_left, 1}, {field_right, 3}, - [304] = + [314] = {field_body, 4}, {field_type, 2}, - [306] = + [316] = {field_body, 3}, {field_body, 4}, {field_type, 1}, - [309] = + [319] = {field_imaginary, 3}, {field_operator, 2}, {field_prefix_operator, 0}, {field_real, 1}, - [313] = + [323] = {field_body, 3}, {field_body, 4}, {field_pattern, 1}, - [316] = + [326] = {field_body, 4}, {field_guard, 2}, {field_pattern, 1}, - [319] = + [329] = {field_body, 6}, {field_body, 7}, {field_name, 1}, {field_parameters, 2}, {field_return_type, 4}, - [324] = + [334] = {field_body, 7}, {field_name, 1}, {field_parameters, 3}, {field_return_type, 5}, {field_type_parameters, 2}, - [329] = + [339] = {field_alternative, 8}, {field_body, 6}, {field_body, 7}, {field_left, 2}, {field_right, 4}, - [334] = + [344] = {field_body, 7}, {field_body, 8}, {field_name, 2}, {field_parameters, 3}, {field_return_type, 5}, - [339] = + [349] = {field_body, 8}, {field_name, 2}, {field_parameters, 4}, {field_return_type, 6}, {field_type_parameters, 3}, - [344] = + [354] = {field_body, 4}, {field_body, 5}, {field_type, 2}, - [347] = + [357] = {field_alias, 3}, {field_body, 5}, {field_type, 1}, - [350] = + [360] = {field_body, 4}, {field_body, 5}, {field_guard, 2}, {field_pattern, 1}, - [354] = + [364] = {field_attribute, 0}, {field_value, 2}, - [356] = + [366] = {field_body, 7}, {field_body, 8}, {field_name, 1}, {field_parameters, 3}, {field_return_type, 5}, {field_type_parameters, 2}, - [362] = + [372] = {field_body, 8}, {field_body, 9}, {field_name, 2}, {field_parameters, 4}, {field_return_type, 6}, {field_type_parameters, 3}, - [368] = + [378] = {field_alias, 4}, {field_body, 6}, {field_type, 2}, - [371] = + [381] = {field_alias, 3}, {field_body, 5}, {field_body, 6}, {field_type, 1}, - [375] = + [385] = {field_alias, 4}, {field_body, 6}, {field_body, 7}, @@ -2916,126 +2943,126 @@ static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE [8] = { [1] = sym_identifier, }, - [27] = { + [23] = { [0] = sym_identifier, }, - [33] = { + [34] = { [1] = sym_identifier, }, - [49] = { + [50] = { [1] = sym_parenthesized_expression, }, - [54] = { - [3] = sym_block, - }, [55] = { [3] = sym_block, }, [56] = { - [2] = sym_block, + [3] = sym_block, }, [57] = { + [2] = sym_block, + }, + [58] = { [3] = sym_block, }, - [59] = { + [60] = { [1] = sym_tuple, }, - [64] = { + [65] = { [3] = sym_block, }, - [67] = { + [68] = { [1] = sym_parenthesized_expression, }, - [71] = { + [72] = { [0] = anon_alias_sym_notin, [1] = anon_alias_sym_notin, }, - [72] = { + [73] = { [0] = anon_alias_sym_isnot, [1] = anon_alias_sym_isnot, }, - [73] = { + [74] = { [0] = alias_sym_format_expression, }, - [75] = { - [3] = sym_block, - }, - [76] = { - [3] = sym_block, - }, [78] = { - [4] = sym_block, + [3] = sym_block, }, [79] = { [3] = sym_block, }, - [87] = { + [81] = { [4] = sym_block, }, + [82] = { + [3] = sym_block, + }, [90] = { [4] = sym_block, }, - [91] = { + [93] = { [4] = sym_block, }, - [93] = { + [94] = { + [4] = sym_block, + }, + [96] = { [1] = sym_parenthesized_expression, }, - [99] = { + [102] = { [3] = sym_block, }, - [104] = { + [107] = { [5] = sym_block, }, - [105] = { + [108] = { [5] = sym_block, }, - [115] = { + [118] = { [5] = sym_block, }, - [117] = { + [120] = { [5] = sym_block, }, - [125] = { + [129] = { [6] = sym_block, }, - [127] = { + [131] = { [6] = sym_block, }, - [128] = { + [132] = { [5] = sym_block, }, - [130] = { - [3] = sym_block, - }, [134] = { [3] = sym_block, }, - [137] = { + [138] = { + [3] = sym_block, + }, + [141] = { [6] = sym_block, }, - [142] = { + [146] = { [6] = sym_block, }, - [144] = { + [148] = { [7] = sym_block, }, - [147] = { - [4] = sym_block, - }, [151] = { [4] = sym_block, }, - [153] = { + [155] = { + [4] = sym_block, + }, + [157] = { [7] = sym_block, }, - [156] = { + [160] = { [8] = sym_block, }, - [158] = { + [162] = { [5] = sym_block, }, - [163] = { + [167] = { [6] = sym_block, }, }; @@ -3088,41 +3115,41 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [28] = 28, [29] = 29, [30] = 30, - [31] = 3, + [31] = 31, [32] = 5, - [33] = 6, - [34] = 7, - [35] = 8, - [36] = 9, - [37] = 10, - [38] = 11, - [39] = 12, - [40] = 13, - [41] = 14, - [42] = 15, - [43] = 16, - [44] = 17, - [45] = 18, - [46] = 19, - [47] = 20, - [48] = 21, - [49] = 22, - [50] = 23, - [51] = 24, - [52] = 25, - [53] = 26, - [54] = 27, - [55] = 28, - [56] = 56, - [57] = 29, - [58] = 30, - [59] = 56, + [33] = 7, + [34] = 8, + [35] = 9, + [36] = 10, + [37] = 11, + [38] = 12, + [39] = 13, + [40] = 14, + [41] = 15, + [42] = 16, + [43] = 17, + [44] = 18, + [45] = 19, + [46] = 20, + [47] = 21, + [48] = 22, + [49] = 23, + [50] = 24, + [51] = 25, + [52] = 26, + [53] = 27, + [54] = 28, + [55] = 29, + [56] = 30, + [57] = 31, + [58] = 3, + [59] = 6, [60] = 60, - [61] = 61, + [61] = 60, [62] = 62, - [63] = 61, + [63] = 63, [64] = 60, - [65] = 61, + [65] = 63, [66] = 66, [67] = 66, [68] = 68, @@ -3131,84 +3158,84 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [71] = 71, [72] = 72, [73] = 73, - [74] = 74, + [74] = 71, [75] = 75, [76] = 76, [77] = 77, [78] = 78, [79] = 79, - [80] = 80, + [80] = 68, [81] = 81, [82] = 82, [83] = 83, [84] = 84, - [85] = 71, - [86] = 72, + [85] = 76, + [86] = 86, [87] = 87, - [88] = 74, - [89] = 75, - [90] = 80, - [91] = 82, - [92] = 92, - [93] = 83, - [94] = 94, - [95] = 87, - [96] = 84, - [97] = 94, - [98] = 98, - [99] = 76, + [88] = 88, + [89] = 69, + [90] = 70, + [91] = 91, + [92] = 72, + [93] = 78, + [94] = 79, + [95] = 95, + [96] = 82, + [97] = 97, + [98] = 77, + [99] = 91, [100] = 100, - [101] = 100, - [102] = 102, - [103] = 77, - [104] = 104, + [101] = 95, + [102] = 97, + [103] = 103, + [104] = 103, [105] = 105, - [106] = 102, - [107] = 107, - [108] = 104, - [109] = 105, + [106] = 105, + [107] = 81, + [108] = 108, + [109] = 108, [110] = 110, - [111] = 78, + [111] = 83, [112] = 112, - [113] = 79, - [114] = 107, + [113] = 110, + [114] = 84, [115] = 115, - [116] = 116, - [117] = 110, - [118] = 92, - [119] = 70, - [120] = 112, - [121] = 81, - [122] = 73, - [123] = 115, - [124] = 69, - [125] = 116, - [126] = 98, + [116] = 112, + [117] = 117, + [118] = 73, + [119] = 115, + [120] = 100, + [121] = 86, + [122] = 117, + [123] = 87, + [124] = 124, + [125] = 88, + [126] = 124, [127] = 127, - [128] = 128, - [129] = 128, - [130] = 127, - [131] = 128, - [132] = 127, + [128] = 127, + [129] = 127, + [130] = 130, + [131] = 130, + [132] = 130, [133] = 133, [134] = 134, [135] = 135, [136] = 136, [137] = 137, [138] = 136, - [139] = 139, + [139] = 136, [140] = 136, - [141] = 136, + [141] = 141, [142] = 142, [143] = 137, - [144] = 136, - [145] = 137, - [146] = 146, - [147] = 136, - [148] = 134, + [144] = 135, + [145] = 145, + [146] = 136, + [147] = 137, + [148] = 136, [149] = 137, - [150] = 137, - [151] = 146, + [150] = 145, + [151] = 137, [152] = 137, [153] = 153, [154] = 154, @@ -3217,10 +3244,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [157] = 157, [158] = 158, [159] = 159, - [160] = 157, - [161] = 161, - [162] = 159, - [163] = 157, + [160] = 160, + [161] = 156, + [162] = 157, + [163] = 156, [164] = 164, [165] = 164, [166] = 164, @@ -3231,96 +3258,96 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [171] = 171, [172] = 172, [173] = 173, - [174] = 168, - [175] = 175, + [174] = 174, + [175] = 174, [176] = 176, - [177] = 177, - [178] = 170, - [179] = 171, - [180] = 172, - [181] = 173, - [182] = 176, - [183] = 183, + [177] = 168, + [178] = 178, + [179] = 179, + [180] = 173, + [181] = 171, + [182] = 170, + [183] = 172, [184] = 184, [185] = 185, - [186] = 186, - [187] = 176, - [188] = 176, + [186] = 174, + [187] = 187, + [188] = 174, [189] = 189, [190] = 190, - [191] = 170, - [192] = 192, + [191] = 171, + [192] = 170, [193] = 172, [194] = 194, [195] = 195, [196] = 196, [197] = 197, [198] = 198, - [199] = 199, - [200] = 200, - [201] = 189, - [202] = 195, - [203] = 196, + [199] = 196, + [200] = 197, + [201] = 201, + [202] = 202, + [203] = 203, [204] = 204, - [205] = 205, - [206] = 194, - [207] = 197, - [208] = 194, - [209] = 198, - [210] = 199, - [211] = 199, - [212] = 195, - [213] = 196, - [214] = 198, - [215] = 189, - [216] = 200, - [217] = 217, - [218] = 194, + [205] = 201, + [206] = 202, + [207] = 207, + [208] = 198, + [209] = 189, + [210] = 197, + [211] = 198, + [212] = 212, + [213] = 201, + [214] = 202, + [215] = 203, + [216] = 204, + [217] = 189, + [218] = 196, [219] = 197, - [220] = 171, - [221] = 195, - [222] = 196, - [223] = 198, + [220] = 201, + [221] = 202, + [222] = 203, + [223] = 204, [224] = 189, - [225] = 200, - [226] = 194, - [227] = 197, - [228] = 200, - [229] = 194, - [230] = 197, - [231] = 197, + [225] = 196, + [226] = 197, + [227] = 196, + [228] = 197, + [229] = 203, + [230] = 204, + [231] = 196, [232] = 232, [233] = 233, [234] = 234, [235] = 235, [236] = 236, [237] = 237, - [238] = 232, + [238] = 233, [239] = 239, - [240] = 232, - [241] = 232, + [240] = 233, + [241] = 233, [242] = 242, [243] = 243, [244] = 244, [245] = 245, [246] = 246, - [247] = 246, - [248] = 243, + [247] = 245, + [248] = 244, [249] = 249, [250] = 250, [251] = 250, [252] = 252, - [253] = 253, - [254] = 249, - [255] = 252, - [256] = 252, - [257] = 253, - [258] = 249, - [259] = 252, - [260] = 253, + [253] = 249, + [254] = 254, + [255] = 250, + [256] = 254, + [257] = 250, + [258] = 252, + [259] = 249, + [260] = 252, [261] = 249, - [262] = 253, - [263] = 250, + [262] = 254, + [263] = 252, [264] = 264, [265] = 265, [266] = 266, @@ -3328,23 +3355,23 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [268] = 266, [269] = 269, [270] = 270, - [271] = 265, + [271] = 269, [272] = 272, - [273] = 273, + [273] = 272, [274] = 274, [275] = 275, [276] = 276, - [277] = 277, - [278] = 278, - [279] = 275, - [280] = 267, - [281] = 273, + [277] = 267, + [278] = 275, + [279] = 276, + [280] = 280, + [281] = 281, [282] = 282, [283] = 283, - [284] = 278, - [285] = 276, - [286] = 270, - [287] = 283, + [284] = 284, + [285] = 264, + [286] = 274, + [287] = 265, [288] = 288, [289] = 289, [290] = 290, @@ -3359,165 +3386,165 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [299] = 299, [300] = 300, [301] = 301, - [302] = 302, + [302] = 296, [303] = 303, - [304] = 288, + [304] = 304, [305] = 305, [306] = 306, [307] = 307, - [308] = 308, - [309] = 309, - [310] = 305, - [311] = 295, + [308] = 297, + [309] = 307, + [310] = 310, + [311] = 311, [312] = 312, [313] = 313, [314] = 314, [315] = 315, [316] = 316, [317] = 317, - [318] = 313, - [319] = 312, + [318] = 318, + [319] = 310, [320] = 320, [321] = 321, - [322] = 322, - [323] = 323, + [322] = 321, + [323] = 313, [324] = 324, - [325] = 320, - [326] = 321, - [327] = 322, + [325] = 325, + [326] = 320, + [327] = 327, [328] = 328, - [329] = 329, - [330] = 328, - [331] = 329, - [332] = 314, + [329] = 311, + [330] = 312, + [331] = 325, + [332] = 327, [333] = 316, - [334] = 334, - [335] = 317, - [336] = 334, - [337] = 323, - [338] = 324, + [334] = 317, + [335] = 314, + [336] = 318, + [337] = 337, + [338] = 338, [339] = 339, [340] = 340, [341] = 341, [342] = 342, - [343] = 340, + [343] = 343, [344] = 344, - [345] = 345, + [345] = 339, [346] = 346, [347] = 347, - [348] = 345, - [349] = 349, + [348] = 348, + [349] = 342, [350] = 350, [351] = 351, [352] = 352, [353] = 353, [354] = 354, [355] = 355, - [356] = 356, - [357] = 356, - [358] = 358, - [359] = 341, + [356] = 337, + [357] = 357, + [358] = 340, + [359] = 359, [360] = 360, - [361] = 361, + [361] = 339, [362] = 362, - [363] = 363, + [363] = 342, [364] = 364, [365] = 365, - [366] = 356, - [367] = 367, - [368] = 361, - [369] = 351, - [370] = 341, - [371] = 344, + [366] = 337, + [367] = 357, + [368] = 340, + [369] = 339, + [370] = 362, + [371] = 346, [372] = 372, - [373] = 373, - [374] = 353, - [375] = 362, - [376] = 360, + [373] = 342, + [374] = 364, + [375] = 375, + [376] = 376, [377] = 377, [378] = 378, - [379] = 361, - [380] = 380, - [381] = 364, - [382] = 351, - [383] = 383, - [384] = 384, + [379] = 379, + [380] = 362, + [381] = 346, + [382] = 357, + [383] = 375, + [384] = 343, [385] = 385, - [386] = 353, - [387] = 360, - [388] = 344, - [389] = 344, - [390] = 378, - [391] = 340, - [392] = 356, - [393] = 361, - [394] = 364, - [395] = 351, - [396] = 353, - [397] = 397, - [398] = 360, - [399] = 354, - [400] = 344, - [401] = 340, - [402] = 402, - [403] = 340, - [404] = 350, - [405] = 356, + [386] = 337, + [387] = 378, + [388] = 357, + [389] = 346, + [390] = 376, + [391] = 346, + [392] = 340, + [393] = 339, + [394] = 375, + [395] = 362, + [396] = 396, + [397] = 376, + [398] = 343, + [399] = 399, + [400] = 376, + [401] = 376, + [402] = 362, + [403] = 403, + [404] = 404, + [405] = 342, [406] = 406, - [407] = 407, - [408] = 356, - [409] = 361, - [410] = 364, - [411] = 351, - [412] = 353, - [413] = 360, - [414] = 344, - [415] = 361, - [416] = 340, - [417] = 350, - [418] = 362, - [419] = 350, - [420] = 364, - [421] = 350, - [422] = 350, - [423] = 385, - [424] = 407, + [407] = 337, + [408] = 346, + [409] = 337, + [410] = 357, + [411] = 340, + [412] = 339, + [413] = 362, + [414] = 342, + [415] = 376, + [416] = 378, + [417] = 404, + [418] = 347, + [419] = 404, + [420] = 404, + [421] = 404, + [422] = 396, + [423] = 348, + [424] = 404, [425] = 425, - [426] = 351, - [427] = 353, + [426] = 357, + [427] = 340, [428] = 360, - [429] = 380, + [429] = 429, [430] = 430, - [431] = 378, - [432] = 432, - [433] = 402, - [434] = 397, - [435] = 364, + [431] = 425, + [432] = 354, + [433] = 430, + [434] = 434, + [435] = 435, [436] = 436, [437] = 437, [438] = 438, [439] = 439, [440] = 440, - [441] = 441, + [441] = 438, [442] = 442, - [443] = 443, - [444] = 436, - [445] = 442, + [443] = 439, + [444] = 444, + [445] = 445, [446] = 446, [447] = 447, [448] = 446, [449] = 447, [450] = 450, - [451] = 440, + [451] = 437, [452] = 452, - [453] = 452, - [454] = 437, - [455] = 441, - [456] = 438, - [457] = 443, - [458] = 458, - [459] = 439, - [460] = 450, + [453] = 442, + [454] = 444, + [455] = 445, + [456] = 435, + [457] = 457, + [458] = 436, + [459] = 457, + [460] = 440, [461] = 461, [462] = 462, [463] = 463, @@ -3525,51 +3552,51 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [465] = 465, [466] = 466, [467] = 467, - [468] = 468, + [468] = 461, [469] = 469, - [470] = 470, - [471] = 471, - [472] = 470, - [473] = 463, + [470] = 462, + [471] = 469, + [472] = 465, + [473] = 473, [474] = 474, - [475] = 294, - [476] = 466, - [477] = 477, + [475] = 474, + [476] = 476, + [477] = 463, [478] = 478, - [479] = 468, + [479] = 478, [480] = 480, - [481] = 480, + [481] = 467, [482] = 482, - [483] = 307, - [484] = 469, + [483] = 473, + [484] = 466, [485] = 485, - [486] = 471, + [486] = 464, [487] = 487, - [488] = 464, - [489] = 485, - [490] = 477, - [491] = 482, + [488] = 488, + [489] = 489, + [490] = 490, + [491] = 491, [492] = 492, [493] = 493, [494] = 494, - [495] = 495, - [496] = 496, + [495] = 489, + [496] = 324, [497] = 497, - [498] = 492, - [499] = 499, - [500] = 500, + [498] = 498, + [499] = 328, + [500] = 497, [501] = 501, [502] = 502, - [503] = 495, - [504] = 496, - [505] = 499, - [506] = 500, - [507] = 501, - [508] = 493, - [509] = 509, - [510] = 510, + [503] = 503, + [504] = 504, + [505] = 488, + [506] = 498, + [507] = 491, + [508] = 502, + [509] = 493, + [510] = 492, [511] = 511, - [512] = 511, + [512] = 512, [513] = 513, [514] = 514, [515] = 515, @@ -3581,9 +3608,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [521] = 521, [522] = 522, [523] = 523, - [524] = 524, - [525] = 525, - [526] = 526, + [524] = 514, + [525] = 515, + [526] = 517, [527] = 527, [528] = 528, [529] = 529, @@ -3601,158 +3628,158 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [541] = 541, [542] = 542, [543] = 543, - [544] = 544, + [544] = 527, [545] = 545, [546] = 546, [547] = 547, - [548] = 548, + [548] = 528, [549] = 549, [550] = 550, [551] = 551, - [552] = 521, + [552] = 529, [553] = 553, [554] = 554, [555] = 555, - [556] = 556, + [556] = 530, [557] = 557, - [558] = 514, + [558] = 558, [559] = 559, [560] = 560, - [561] = 534, - [562] = 535, - [563] = 540, - [564] = 541, - [565] = 547, - [566] = 550, - [567] = 567, - [568] = 568, - [569] = 569, + [561] = 561, + [562] = 562, + [563] = 531, + [564] = 564, + [565] = 565, + [566] = 566, + [567] = 532, + [568] = 533, + [569] = 534, [570] = 570, [571] = 571, - [572] = 515, - [573] = 516, - [574] = 517, - [575] = 518, - [576] = 519, - [577] = 520, - [578] = 522, - [579] = 523, - [580] = 524, - [581] = 567, - [582] = 525, - [583] = 526, - [584] = 527, - [585] = 528, - [586] = 529, - [587] = 530, - [588] = 560, - [589] = 531, - [590] = 532, - [591] = 533, - [592] = 536, - [593] = 537, - [594] = 538, - [595] = 539, - [596] = 568, - [597] = 569, - [598] = 542, - [599] = 543, - [600] = 544, - [601] = 545, - [602] = 546, - [603] = 548, - [604] = 549, - [605] = 570, - [606] = 571, - [607] = 553, - [608] = 554, - [609] = 555, - [610] = 556, - [611] = 557, - [612] = 612, - [613] = 559, - [614] = 614, + [572] = 535, + [573] = 536, + [574] = 574, + [575] = 537, + [576] = 538, + [577] = 539, + [578] = 512, + [579] = 540, + [580] = 541, + [581] = 542, + [582] = 582, + [583] = 543, + [584] = 513, + [585] = 585, + [586] = 545, + [587] = 546, + [588] = 588, + [589] = 547, + [590] = 590, + [591] = 511, + [592] = 549, + [593] = 551, + [594] = 553, + [595] = 554, + [596] = 555, + [597] = 558, + [598] = 559, + [599] = 516, + [600] = 560, + [601] = 561, + [602] = 562, + [603] = 518, + [604] = 564, + [605] = 565, + [606] = 519, + [607] = 520, + [608] = 521, + [609] = 522, + [610] = 550, + [611] = 566, + [612] = 574, + [613] = 523, + [614] = 570, [615] = 615, [616] = 616, - [617] = 617, - [618] = 615, - [619] = 619, - [620] = 620, - [621] = 621, - [622] = 615, - [623] = 615, + [617] = 616, + [618] = 616, + [619] = 616, + [620] = 616, + [621] = 616, + [622] = 622, + [623] = 623, [624] = 624, - [625] = 615, - [626] = 615, - [627] = 627, + [625] = 625, + [626] = 626, + [627] = 625, [628] = 628, [629] = 629, - [630] = 630, - [631] = 627, + [630] = 624, + [631] = 631, [632] = 632, - [633] = 633, - [634] = 634, - [635] = 628, - [636] = 629, + [633] = 625, + [634] = 626, + [635] = 629, + [636] = 636, [637] = 628, - [638] = 629, - [639] = 630, + [638] = 628, + [639] = 631, [640] = 640, - [641] = 641, + [641] = 631, [642] = 642, - [643] = 633, - [644] = 634, - [645] = 632, + [643] = 640, + [644] = 642, + [645] = 645, [646] = 628, - [647] = 629, - [648] = 630, - [649] = 640, - [650] = 634, - [651] = 642, - [652] = 633, - [653] = 634, + [647] = 631, + [648] = 640, + [649] = 642, + [650] = 622, + [651] = 651, + [652] = 623, + [653] = 624, [654] = 640, - [655] = 627, - [656] = 632, - [657] = 657, - [658] = 627, - [659] = 632, - [660] = 641, - [661] = 630, - [662] = 662, - [663] = 628, - [664] = 629, - [665] = 630, - [666] = 640, - [667] = 641, + [655] = 626, + [656] = 625, + [657] = 629, + [658] = 658, + [659] = 623, + [660] = 626, + [661] = 651, + [662] = 629, + [663] = 651, + [664] = 623, + [665] = 628, + [666] = 631, + [667] = 640, [668] = 642, - [669] = 633, - [670] = 634, - [671] = 642, - [672] = 640, - [673] = 627, - [674] = 632, - [675] = 657, - [676] = 657, - [677] = 657, - [678] = 678, - [679] = 657, - [680] = 641, - [681] = 628, - [682] = 629, - [683] = 630, - [684] = 640, - [685] = 641, - [686] = 642, - [687] = 633, - [688] = 634, - [689] = 633, - [690] = 627, - [691] = 632, - [692] = 657, - [693] = 642, - [694] = 641, - [695] = 695, + [669] = 622, + [670] = 651, + [671] = 623, + [672] = 624, + [673] = 629, + [674] = 642, + [675] = 675, + [676] = 676, + [677] = 624, + [678] = 628, + [679] = 631, + [680] = 640, + [681] = 642, + [682] = 622, + [683] = 651, + [684] = 623, + [685] = 624, + [686] = 622, + [687] = 626, + [688] = 625, + [689] = 629, + [690] = 626, + [691] = 625, + [692] = 692, + [693] = 693, + [694] = 651, + [695] = 622, [696] = 696, [697] = 697, [698] = 698, @@ -3782,8 +3809,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [722] = 722, [723] = 723, [724] = 724, - [725] = 719, - [726] = 726, + [725] = 725, + [726] = 719, [727] = 727, [728] = 728, [729] = 729, @@ -3794,300 +3821,300 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [734] = 734, [735] = 735, [736] = 736, - [737] = 737, - [738] = 738, + [737] = 735, + [738] = 693, [739] = 739, - [740] = 734, - [741] = 741, + [740] = 740, + [741] = 740, [742] = 742, [743] = 743, - [744] = 616, - [745] = 617, - [746] = 619, - [747] = 620, + [744] = 744, + [745] = 744, + [746] = 746, + [747] = 747, [748] = 748, [749] = 749, - [750] = 736, - [751] = 737, - [752] = 738, + [750] = 750, + [751] = 743, + [752] = 692, [753] = 739, - [754] = 741, - [755] = 742, - [756] = 743, - [757] = 748, - [758] = 749, - [759] = 759, - [760] = 735, - [761] = 759, - [762] = 620, - [763] = 624, - [764] = 713, - [765] = 616, - [766] = 719, - [767] = 621, - [768] = 624, - [769] = 616, - [770] = 617, - [771] = 619, - [772] = 719, - [773] = 773, - [774] = 774, - [775] = 619, - [776] = 620, - [777] = 712, - [778] = 617, - [779] = 719, - [780] = 773, - [781] = 774, - [782] = 621, - [783] = 734, - [784] = 759, - [785] = 735, - [786] = 736, - [787] = 737, - [788] = 738, - [789] = 739, - [790] = 735, - [791] = 741, - [792] = 742, - [793] = 743, - [794] = 621, - [795] = 624, - [796] = 736, - [797] = 748, - [798] = 749, - [799] = 737, - [800] = 738, - [801] = 739, - [802] = 734, - [803] = 759, - [804] = 742, - [805] = 743, - [806] = 695, - [807] = 696, - [808] = 697, - [809] = 698, - [810] = 735, - [811] = 759, - [812] = 736, - [813] = 737, - [814] = 738, - [815] = 739, - [816] = 734, - [817] = 741, - [818] = 742, - [819] = 743, - [820] = 748, - [821] = 749, - [822] = 719, - [823] = 748, - [824] = 749, - [825] = 741, - [826] = 773, - [827] = 696, - [828] = 736, - [829] = 737, - [830] = 698, - [831] = 738, - [832] = 739, - [833] = 734, - [834] = 509, - [835] = 741, - [836] = 742, - [837] = 743, - [838] = 502, + [754] = 742, + [755] = 746, + [756] = 747, + [757] = 736, + [758] = 748, + [759] = 675, + [760] = 676, + [761] = 749, + [762] = 750, + [763] = 719, + [764] = 764, + [765] = 719, + [766] = 645, + [767] = 675, + [768] = 676, + [769] = 658, + [770] = 692, + [771] = 693, + [772] = 700, + [773] = 764, + [774] = 676, + [775] = 645, + [776] = 658, + [777] = 720, + [778] = 693, + [779] = 692, + [780] = 719, + [781] = 781, + [782] = 675, + [783] = 781, + [784] = 740, + [785] = 739, + [786] = 740, + [787] = 697, + [788] = 698, + [789] = 744, + [790] = 736, + [791] = 735, + [792] = 719, + [793] = 645, + [794] = 658, + [795] = 696, + [796] = 699, + [797] = 743, + [798] = 746, + [799] = 735, + [800] = 740, + [801] = 746, + [802] = 747, + [803] = 746, + [804] = 744, + [805] = 748, + [806] = 749, + [807] = 750, + [808] = 743, + [809] = 748, + [810] = 739, + [811] = 742, + [812] = 749, + [813] = 744, + [814] = 736, + [815] = 750, + [816] = 743, + [817] = 747, + [818] = 748, + [819] = 739, + [820] = 742, + [821] = 742, + [822] = 736, + [823] = 749, + [824] = 750, + [825] = 735, + [826] = 747, + [827] = 827, + [828] = 828, + [829] = 781, + [830] = 827, + [831] = 746, + [832] = 747, + [833] = 735, + [834] = 571, + [835] = 740, + [836] = 697, + [837] = 698, + [838] = 748, [839] = 839, - [840] = 773, - [841] = 697, - [842] = 774, - [843] = 748, - [844] = 749, - [845] = 759, - [846] = 846, - [847] = 695, - [848] = 735, - [849] = 494, - [850] = 695, - [851] = 698, - [852] = 852, - [853] = 774, + [840] = 749, + [841] = 750, + [842] = 503, + [843] = 696, + [844] = 764, + [845] = 739, + [846] = 742, + [847] = 847, + [848] = 582, + [849] = 487, + [850] = 764, + [851] = 781, + [852] = 696, + [853] = 697, [854] = 854, - [855] = 855, - [856] = 856, - [857] = 513, - [858] = 462, - [859] = 696, - [860] = 860, - [861] = 697, - [862] = 856, - [863] = 773, - [864] = 465, - [865] = 774, - [866] = 720, - [867] = 716, - [868] = 710, - [869] = 705, - [870] = 712, - [871] = 713, - [872] = 706, - [873] = 707, - [874] = 708, - [875] = 709, - [876] = 294, - [877] = 699, - [878] = 732, - [879] = 721, - [880] = 726, - [881] = 727, - [882] = 728, - [883] = 729, - [884] = 730, - [885] = 731, - [886] = 706, + [855] = 744, + [856] = 736, + [857] = 699, + [858] = 858, + [859] = 585, + [860] = 698, + [861] = 557, + [862] = 862, + [863] = 781, + [864] = 699, + [865] = 764, + [866] = 743, + [867] = 718, + [868] = 732, + [869] = 701, + [870] = 715, + [871] = 781, + [872] = 582, + [873] = 709, + [874] = 874, + [875] = 875, + [876] = 710, + [877] = 557, + [878] = 725, + [879] = 764, + [880] = 711, + [881] = 733, + [882] = 701, + [883] = 571, + [884] = 709, + [885] = 721, + [886] = 707, [887] = 722, - [888] = 700, - [889] = 702, - [890] = 307, - [891] = 705, - [892] = 717, - [893] = 714, - [894] = 716, - [895] = 718, - [896] = 732, - [897] = 711, - [898] = 701, - [899] = 703, - [900] = 704, - [901] = 710, - [902] = 708, - [903] = 718, - [904] = 733, - [905] = 712, - [906] = 733, - [907] = 721, - [908] = 724, - [909] = 714, - [910] = 726, - [911] = 773, - [912] = 774, - [913] = 727, - [914] = 701, - [915] = 494, - [916] = 703, - [917] = 704, - [918] = 713, - [919] = 502, - [920] = 728, - [921] = 729, + [888] = 710, + [889] = 889, + [890] = 703, + [891] = 708, + [892] = 711, + [893] = 731, + [894] = 704, + [895] = 702, + [896] = 708, + [897] = 706, + [898] = 723, + [899] = 899, + [900] = 734, + [901] = 714, + [902] = 712, + [903] = 734, + [904] = 700, + [905] = 720, + [906] = 705, + [907] = 732, + [908] = 718, + [909] = 700, + [910] = 720, + [911] = 721, + [912] = 722, + [913] = 723, + [914] = 724, + [915] = 713, + [916] = 324, + [917] = 733, + [918] = 724, + [919] = 717, + [920] = 725, + [921] = 728, [922] = 730, - [923] = 731, - [924] = 724, - [925] = 513, - [926] = 723, - [927] = 927, - [928] = 928, - [929] = 722, - [930] = 700, - [931] = 699, - [932] = 932, - [933] = 933, - [934] = 934, - [935] = 935, - [936] = 702, - [937] = 707, - [938] = 723, + [923] = 923, + [924] = 924, + [925] = 729, + [926] = 704, + [927] = 714, + [928] = 716, + [929] = 716, + [930] = 731, + [931] = 702, + [932] = 713, + [933] = 727, + [934] = 728, + [935] = 729, + [936] = 727, + [937] = 705, + [938] = 703, [939] = 715, - [940] = 717, - [941] = 720, - [942] = 715, - [943] = 711, - [944] = 709, - [945] = 706, - [946] = 710, - [947] = 294, - [948] = 722, - [949] = 699, - [950] = 702, - [951] = 307, - [952] = 715, - [953] = 724, - [954] = 717, - [955] = 714, - [956] = 716, - [957] = 718, - [958] = 720, - [959] = 732, - [960] = 711, - [961] = 701, - [962] = 703, - [963] = 723, - [964] = 964, - [965] = 704, - [966] = 707, - [967] = 721, - [968] = 708, - [969] = 705, - [970] = 726, - [971] = 727, - [972] = 839, - [973] = 852, - [974] = 728, - [975] = 709, - [976] = 729, - [977] = 733, - [978] = 730, - [979] = 979, + [940] = 706, + [941] = 707, + [942] = 712, + [943] = 328, + [944] = 730, + [945] = 717, + [946] = 722, + [947] = 728, + [948] = 729, + [949] = 707, + [950] = 708, + [951] = 703, + [952] = 706, + [953] = 712, + [954] = 862, + [955] = 328, + [956] = 723, + [957] = 717, + [958] = 704, + [959] = 705, + [960] = 714, + [961] = 730, + [962] = 732, + [963] = 701, + [964] = 715, + [965] = 709, + [966] = 710, + [967] = 724, + [968] = 711, + [969] = 969, + [970] = 725, + [971] = 828, + [972] = 972, + [973] = 973, + [974] = 718, + [975] = 324, + [976] = 721, + [977] = 716, + [978] = 733, + [979] = 734, [980] = 980, [981] = 731, - [982] = 982, - [983] = 700, - [984] = 984, + [982] = 702, + [983] = 713, + [984] = 727, [985] = 985, [986] = 986, [987] = 987, [988] = 988, [989] = 989, - [990] = 989, + [990] = 990, [991] = 991, [992] = 991, - [993] = 993, + [993] = 990, [994] = 994, - [995] = 989, - [996] = 996, - [997] = 991, + [995] = 995, + [996] = 991, + [997] = 997, [998] = 998, [999] = 999, - [1000] = 1000, + [1000] = 991, [1001] = 1001, - [1002] = 991, - [1003] = 989, + [1002] = 1002, + [1003] = 991, [1004] = 1004, - [1005] = 1005, - [1006] = 991, - [1007] = 989, - [1008] = 1008, - [1009] = 991, - [1010] = 1010, - [1011] = 989, + [1005] = 990, + [1006] = 990, + [1007] = 1007, + [1008] = 990, + [1009] = 1009, + [1010] = 990, + [1011] = 991, [1012] = 1012, [1013] = 1013, [1014] = 1014, [1015] = 1014, [1016] = 1014, - [1017] = 1014, + [1017] = 1017, [1018] = 1014, [1019] = 1019, [1020] = 1014, - [1021] = 1021, + [1021] = 1014, [1022] = 1022, [1023] = 1023, [1024] = 1024, - [1025] = 1025, - [1026] = 1025, - [1027] = 1023, - [1028] = 1028, - [1029] = 1028, - [1030] = 1030, + [1025] = 1024, + [1026] = 1026, + [1027] = 1027, + [1028] = 1027, + [1029] = 1029, + [1030] = 1029, [1031] = 1031, [1032] = 1032, [1033] = 1033, @@ -4099,55 +4126,55 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1039] = 1039, [1040] = 1040, [1041] = 1041, - [1042] = 1042, - [1043] = 1033, - [1044] = 1035, - [1045] = 1037, - [1046] = 1034, - [1047] = 1033, - [1048] = 1036, - [1049] = 1049, - [1050] = 1035, + [1042] = 1038, + [1043] = 1039, + [1044] = 1038, + [1045] = 1039, + [1046] = 1040, + [1047] = 1037, + [1048] = 1038, + [1049] = 1039, + [1050] = 1040, [1051] = 1037, - [1052] = 1052, - [1053] = 1033, - [1054] = 1036, - [1055] = 1035, - [1056] = 1037, - [1057] = 1033, - [1058] = 1036, - [1059] = 1035, - [1060] = 1034, - [1061] = 1034, - [1062] = 1062, + [1052] = 1039, + [1053] = 1037, + [1054] = 1040, + [1055] = 1041, + [1056] = 1056, + [1057] = 1057, + [1058] = 1041, + [1059] = 1041, + [1060] = 1060, + [1061] = 1061, + [1062] = 1037, [1063] = 1063, [1064] = 1064, [1065] = 1065, [1066] = 1066, [1067] = 1067, - [1068] = 1063, + [1068] = 1068, [1069] = 1065, - [1070] = 1070, - [1071] = 1071, + [1070] = 1068, + [1071] = 1064, [1072] = 1072, - [1073] = 1066, - [1074] = 1070, - [1075] = 1067, - [1076] = 1067, + [1073] = 1073, + [1074] = 1063, + [1075] = 1064, + [1076] = 1076, [1077] = 1077, - [1078] = 1078, - [1079] = 1066, - [1080] = 1067, - [1081] = 1081, - [1082] = 1064, - [1083] = 1081, - [1084] = 1066, - [1085] = 1071, - [1086] = 1081, - [1087] = 1077, - [1088] = 1081, - [1089] = 1062, - [1090] = 1090, + [1078] = 1067, + [1079] = 1079, + [1080] = 1072, + [1081] = 1073, + [1082] = 1066, + [1083] = 1068, + [1084] = 1079, + [1085] = 1079, + [1086] = 1079, + [1087] = 1064, + [1088] = 1088, + [1089] = 1076, + [1090] = 1068, [1091] = 1091, [1092] = 1092, [1093] = 1093, @@ -4159,73 +4186,73 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1099] = 1099, [1100] = 1100, [1101] = 1101, - [1102] = 1071, - [1103] = 1064, - [1104] = 1062, - [1105] = 1063, - [1106] = 1065, - [1107] = 1070, - [1108] = 1071, - [1109] = 1071, + [1102] = 1102, + [1103] = 1103, + [1104] = 1032, + [1105] = 1105, + [1106] = 1031, + [1107] = 1107, + [1108] = 1108, + [1109] = 1109, [1110] = 1110, [1111] = 1111, - [1112] = 1096, + [1112] = 1112, [1113] = 1113, [1114] = 1114, [1115] = 1115, [1116] = 1116, [1117] = 1117, - [1118] = 1113, - [1119] = 1119, - [1120] = 1120, - [1121] = 1063, - [1122] = 1122, - [1123] = 1065, - [1124] = 1124, - [1125] = 1125, - [1126] = 1126, + [1118] = 1118, + [1119] = 1067, + [1120] = 1072, + [1121] = 1073, + [1122] = 1076, + [1123] = 1063, + [1124] = 1066, + [1125] = 1065, + [1126] = 1073, [1127] = 1127, - [1128] = 1128, - [1129] = 1031, + [1128] = 1127, + [1129] = 1129, [1130] = 1130, - [1131] = 1131, + [1131] = 1094, [1132] = 1132, [1133] = 1133, [1134] = 1134, - [1135] = 1030, + [1135] = 1135, [1136] = 1136, [1137] = 1137, [1138] = 1138, [1139] = 1139, [1140] = 1140, - [1141] = 1096, - [1142] = 1142, + [1141] = 1067, + [1142] = 1094, [1143] = 1143, - [1144] = 1070, - [1145] = 1077, - [1146] = 1146, - [1147] = 1147, - [1148] = 1093, - [1149] = 1077, - [1150] = 1064, - [1151] = 1062, - [1152] = 1063, - [1153] = 1065, - [1154] = 1154, - [1155] = 1155, - [1156] = 1064, - [1157] = 1070, - [1158] = 1031, - [1159] = 1159, - [1160] = 1160, - [1161] = 1161, - [1162] = 1162, - [1163] = 1062, - [1164] = 1117, - [1165] = 1077, - [1166] = 1125, - [1167] = 1167, - [1168] = 1030, + [1144] = 1102, + [1145] = 1066, + [1146] = 1076, + [1147] = 1063, + [1148] = 1148, + [1149] = 1149, + [1150] = 1150, + [1151] = 1143, + [1152] = 1065, + [1153] = 1153, + [1154] = 1153, + [1155] = 1072, + [1156] = 1032, + [1157] = 1157, + [1158] = 1067, + [1159] = 1072, + [1160] = 1073, + [1161] = 1076, + [1162] = 1063, + [1163] = 1066, + [1164] = 1065, + [1165] = 1165, + [1166] = 1166, + [1167] = 1031, + [1168] = 1168, [1169] = 1169, [1170] = 1170, [1171] = 1171, @@ -4233,150 +4260,150 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1173] = 1173, [1174] = 1174, [1175] = 1175, - [1176] = 1031, + [1176] = 1176, [1177] = 1177, - [1178] = 1178, + [1178] = 1066, [1179] = 1179, [1180] = 1180, - [1181] = 1173, + [1181] = 1181, [1182] = 1182, [1183] = 1183, - [1184] = 1184, - [1185] = 1185, + [1184] = 1143, + [1185] = 1065, [1186] = 1186, - [1187] = 1171, - [1188] = 1077, - [1189] = 1183, - [1190] = 1170, - [1191] = 1125, - [1192] = 1064, - [1193] = 1062, - [1194] = 1063, - [1195] = 1065, - [1196] = 1196, - [1197] = 1197, - [1198] = 1170, - [1199] = 1117, - [1200] = 1200, + [1187] = 1067, + [1188] = 1188, + [1189] = 1031, + [1190] = 1190, + [1191] = 1191, + [1192] = 1170, + [1193] = 1193, + [1194] = 1072, + [1195] = 1102, + [1196] = 1188, + [1197] = 1073, + [1198] = 1076, + [1199] = 1170, + [1200] = 1063, [1201] = 1201, - [1202] = 1093, + [1202] = 1202, [1203] = 1203, - [1204] = 1204, - [1205] = 1186, + [1204] = 1174, + [1205] = 1205, [1206] = 1206, - [1207] = 1204, - [1208] = 1070, - [1209] = 1071, - [1210] = 1030, - [1211] = 1211, - [1212] = 1170, - [1213] = 1213, - [1214] = 1214, + [1207] = 1207, + [1208] = 1208, + [1209] = 1171, + [1210] = 1203, + [1211] = 1032, + [1212] = 1153, + [1213] = 1175, + [1214] = 1170, [1215] = 1215, [1216] = 1216, [1217] = 1217, [1218] = 1218, - [1219] = 1216, + [1219] = 1219, [1220] = 1220, [1221] = 1221, - [1222] = 1221, + [1222] = 1222, [1223] = 1223, - [1224] = 1224, + [1224] = 1222, [1225] = 1225, [1226] = 1226, [1227] = 1227, - [1228] = 1228, + [1228] = 1217, [1229] = 1229, [1230] = 1230, [1231] = 1231, - [1232] = 1215, - [1233] = 1233, - [1234] = 1032, + [1232] = 1232, + [1233] = 1231, + [1234] = 1234, [1235] = 1235, [1236] = 1236, - [1237] = 1235, + [1237] = 1237, [1238] = 1238, [1239] = 1239, - [1240] = 1236, - [1241] = 1233, + [1240] = 1240, + [1241] = 1238, [1242] = 1242, - [1243] = 1243, + [1243] = 1201, [1244] = 1244, - [1245] = 1245, - [1246] = 1246, - [1247] = 1247, + [1245] = 1234, + [1246] = 1237, + [1247] = 1219, [1248] = 1248, - [1249] = 1249, - [1250] = 1172, - [1251] = 1229, + [1249] = 1033, + [1250] = 1220, + [1251] = 1251, [1252] = 1252, [1253] = 1253, - [1254] = 1230, + [1254] = 1254, [1255] = 1255, [1256] = 1256, [1257] = 1257, - [1258] = 1183, + [1258] = 1258, [1259] = 1259, - [1260] = 1215, + [1260] = 1180, [1261] = 1261, [1262] = 1262, [1263] = 1263, [1264] = 1264, [1265] = 1265, - [1266] = 1266, + [1266] = 1262, [1267] = 1267, [1268] = 1268, [1269] = 1269, [1270] = 1270, [1271] = 1271, - [1272] = 1272, - [1273] = 1267, - [1274] = 1274, + [1272] = 1220, + [1273] = 1273, + [1274] = 1188, [1275] = 1275, [1276] = 1276, [1277] = 1277, - [1278] = 1229, + [1278] = 1219, [1279] = 1279, - [1280] = 1221, - [1281] = 1256, - [1282] = 1214, - [1283] = 1283, - [1284] = 1284, + [1280] = 1280, + [1281] = 1281, + [1282] = 1282, + [1283] = 1273, + [1284] = 1231, [1285] = 1285, [1286] = 1286, - [1287] = 1265, + [1287] = 1287, [1288] = 1288, - [1289] = 1049, + [1289] = 1289, [1290] = 1290, - [1291] = 1291, + [1291] = 1269, [1292] = 1292, [1293] = 1293, - [1294] = 1294, + [1294] = 1056, [1295] = 1295, - [1296] = 1296, + [1296] = 1295, [1297] = 1297, [1298] = 1298, [1299] = 1299, [1300] = 1300, - [1301] = 1301, + [1301] = 1299, [1302] = 1302, [1303] = 1303, [1304] = 1304, - [1305] = 1298, + [1305] = 1300, [1306] = 1306, - [1307] = 1297, + [1307] = 1307, [1308] = 1308, [1309] = 1309, - [1310] = 1302, + [1310] = 1310, [1311] = 1311, [1312] = 1312, [1313] = 1313, - [1314] = 1314, - [1315] = 1315, + [1314] = 1061, + [1315] = 1035, [1316] = 1316, - [1317] = 1039, - [1318] = 1040, - [1319] = 1319, + [1317] = 1262, + [1318] = 1308, + [1319] = 1281, [1320] = 1320, [1321] = 1321, [1322] = 1322, @@ -4385,202 +4412,202 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1325] = 1325, [1326] = 1326, [1327] = 1327, - [1328] = 1271, - [1329] = 1275, - [1330] = 1290, + [1328] = 1328, + [1329] = 1329, + [1330] = 1330, [1331] = 1331, - [1332] = 1332, - [1333] = 1303, - [1334] = 1334, - [1335] = 1297, - [1336] = 1336, + [1332] = 1299, + [1333] = 1333, + [1334] = 1289, + [1335] = 1300, + [1336] = 1306, [1337] = 1337, [1338] = 1338, - [1339] = 1297, + [1339] = 1339, [1340] = 1340, [1341] = 1341, [1342] = 1342, - [1343] = 1303, + [1343] = 1306, [1344] = 1344, - [1345] = 1297, - [1346] = 1322, - [1347] = 1334, - [1348] = 1332, - [1349] = 1349, - [1350] = 1295, - [1351] = 1351, - [1352] = 1349, + [1345] = 1306, + [1346] = 1346, + [1347] = 1347, + [1348] = 1348, + [1349] = 1306, + [1350] = 1350, + [1351] = 1312, + [1352] = 1337, [1353] = 1353, [1354] = 1354, - [1355] = 1355, - [1356] = 1356, + [1355] = 1309, + [1356] = 1327, [1357] = 1357, - [1358] = 1267, + [1358] = 1264, [1359] = 1359, [1360] = 1360, - [1361] = 1351, + [1361] = 1361, [1362] = 1362, - [1363] = 1304, - [1364] = 1364, + [1363] = 1363, + [1364] = 1357, [1365] = 1365, - [1366] = 1297, - [1367] = 1255, - [1368] = 1368, - [1369] = 1301, - [1370] = 1323, + [1366] = 1366, + [1367] = 1303, + [1368] = 1304, + [1369] = 1306, + [1370] = 1370, [1371] = 1371, [1372] = 1372, - [1373] = 1332, + [1373] = 1373, [1374] = 1374, - [1375] = 1375, - [1376] = 1376, + [1375] = 1307, + [1376] = 1359, [1377] = 1377, [1378] = 1378, [1379] = 1379, - [1380] = 1223, + [1380] = 1380, [1381] = 1381, - [1382] = 1306, + [1382] = 1382, [1383] = 1383, - [1384] = 1309, + [1384] = 1384, [1385] = 1385, [1386] = 1386, - [1387] = 1387, - [1388] = 1388, + [1387] = 1384, + [1388] = 696, [1389] = 1389, [1390] = 1390, [1391] = 1391, [1392] = 1392, [1393] = 1393, [1394] = 1394, - [1395] = 1368, + [1395] = 1395, [1396] = 1396, - [1397] = 1387, - [1398] = 1388, + [1397] = 1397, + [1398] = 1398, [1399] = 1399, - [1400] = 1383, + [1400] = 1400, [1401] = 1401, - [1402] = 1402, + [1402] = 1393, [1403] = 1403, - [1404] = 697, - [1405] = 1405, - [1406] = 1406, - [1407] = 1377, - [1408] = 1389, - [1409] = 1409, - [1410] = 1403, - [1411] = 1387, - [1412] = 1388, + [1404] = 1395, + [1405] = 1394, + [1406] = 1320, + [1407] = 1407, + [1408] = 1408, + [1409] = 1322, + [1410] = 1410, + [1411] = 1411, + [1412] = 1379, [1413] = 1413, - [1414] = 1377, - [1415] = 1415, - [1416] = 1416, - [1417] = 1417, + [1414] = 1251, + [1415] = 1384, + [1416] = 1393, + [1417] = 1394, [1418] = 1418, [1419] = 1419, - [1420] = 1420, + [1420] = 1397, [1421] = 1421, - [1422] = 1422, - [1423] = 1383, + [1422] = 1399, + [1423] = 1400, [1424] = 1424, - [1425] = 1403, - [1426] = 1389, - [1427] = 1409, - [1428] = 1385, - [1429] = 1387, - [1430] = 1388, + [1425] = 1425, + [1426] = 1407, + [1427] = 1427, + [1428] = 1386, + [1429] = 697, + [1430] = 1395, [1431] = 1431, - [1432] = 1377, - [1433] = 1409, - [1434] = 1434, - [1435] = 1415, - [1436] = 1417, - [1437] = 1418, - [1438] = 1438, - [1439] = 1439, - [1440] = 1440, - [1441] = 1441, - [1442] = 1442, + [1432] = 1407, + [1433] = 1433, + [1434] = 1397, + [1435] = 1435, + [1436] = 1379, + [1437] = 1413, + [1438] = 1399, + [1439] = 1384, + [1440] = 1393, + [1441] = 1400, + [1442] = 1394, [1443] = 1443, [1444] = 1444, - [1445] = 1445, + [1445] = 1397, [1446] = 1446, - [1447] = 1447, - [1448] = 1415, + [1447] = 1399, + [1448] = 1400, [1449] = 1449, - [1450] = 1417, - [1451] = 1418, + [1450] = 1425, + [1451] = 1344, [1452] = 1452, [1453] = 1453, [1454] = 1454, - [1455] = 1253, - [1456] = 1390, + [1455] = 1455, + [1456] = 1456, [1457] = 1457, - [1458] = 1419, + [1458] = 1458, [1459] = 1459, [1460] = 1460, [1461] = 1461, - [1462] = 1415, - [1463] = 1308, - [1464] = 1464, + [1462] = 1462, + [1463] = 1463, + [1464] = 1252, [1465] = 1465, [1466] = 1466, [1467] = 1467, [1468] = 1468, [1469] = 1469, - [1470] = 695, - [1471] = 1376, + [1470] = 1463, + [1471] = 1471, [1472] = 1472, - [1473] = 1473, + [1473] = 1326, [1474] = 1474, - [1475] = 1475, - [1476] = 1476, + [1475] = 1328, + [1476] = 1230, [1477] = 1477, [1478] = 1478, - [1479] = 1342, + [1479] = 1395, [1480] = 1480, - [1481] = 1417, - [1482] = 1218, - [1483] = 1418, + [1481] = 1481, + [1482] = 1482, + [1483] = 1483, [1484] = 1484, - [1485] = 1389, + [1485] = 1485, [1486] = 1486, - [1487] = 1353, - [1488] = 1359, - [1489] = 1383, - [1490] = 1403, - [1491] = 1409, - [1492] = 1492, - [1493] = 1453, - [1494] = 1457, + [1487] = 1372, + [1488] = 1488, + [1489] = 1489, + [1490] = 1490, + [1491] = 1491, + [1492] = 1226, + [1493] = 1452, + [1494] = 1494, [1495] = 1495, - [1496] = 1496, + [1496] = 1401, [1497] = 1497, - [1498] = 1498, - [1499] = 1460, - [1500] = 1500, - [1501] = 1501, - [1502] = 1217, - [1503] = 1503, - [1504] = 1496, - [1505] = 1473, - [1506] = 1443, - [1507] = 1507, - [1508] = 1508, - [1509] = 1509, + [1498] = 1379, + [1499] = 1499, + [1500] = 1324, + [1501] = 1413, + [1502] = 1410, + [1503] = 1467, + [1504] = 1504, + [1505] = 1407, + [1506] = 1506, + [1507] = 1413, + [1508] = 1411, + [1509] = 1478, [1510] = 1510, - [1511] = 1511, + [1511] = 1453, [1512] = 1512, [1513] = 1513, [1514] = 1514, - [1515] = 313, + [1515] = 1515, [1516] = 1516, [1517] = 1517, [1518] = 1518, [1519] = 1519, - [1520] = 1442, - [1521] = 320, + [1520] = 1518, + [1521] = 1521, [1522] = 1522, - [1523] = 1523, + [1523] = 320, [1524] = 1524, [1525] = 1525, [1526] = 1526, @@ -4590,61 +4617,61 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1530] = 1530, [1531] = 1531, [1532] = 1532, - [1533] = 1533, + [1533] = 1186, [1534] = 1534, [1535] = 1535, - [1536] = 314, - [1537] = 1196, - [1538] = 317, + [1536] = 1536, + [1537] = 1537, + [1538] = 1538, [1539] = 1539, - [1540] = 1486, + [1540] = 1540, [1541] = 1541, - [1542] = 1542, - [1543] = 1511, + [1542] = 321, + [1543] = 1539, [1544] = 1544, - [1545] = 1421, - [1546] = 1513, + [1545] = 1545, + [1546] = 1531, [1547] = 1547, [1548] = 1548, - [1549] = 1510, + [1549] = 1549, [1550] = 1550, [1551] = 1551, - [1552] = 1548, - [1553] = 1553, - [1554] = 1541, - [1555] = 1555, - [1556] = 1556, + [1552] = 1552, + [1553] = 1381, + [1554] = 1391, + [1555] = 1550, + [1556] = 1547, [1557] = 1557, [1558] = 1558, [1559] = 1559, [1560] = 1560, [1561] = 1561, - [1562] = 1562, + [1562] = 1548, [1563] = 1563, - [1564] = 1564, - [1565] = 1550, + [1564] = 310, + [1565] = 1565, [1566] = 1566, - [1567] = 1510, - [1568] = 1568, + [1567] = 1567, + [1568] = 1518, [1569] = 1569, [1570] = 1570, [1571] = 1571, [1572] = 1572, [1573] = 1573, - [1574] = 1574, - [1575] = 1575, - [1576] = 1557, + [1574] = 1510, + [1575] = 318, + [1576] = 1576, [1577] = 1577, - [1578] = 1512, + [1578] = 1578, [1579] = 1579, - [1580] = 334, - [1581] = 1581, - [1582] = 1539, - [1583] = 1583, + [1580] = 1580, + [1581] = 327, + [1582] = 1538, + [1583] = 1512, [1584] = 1584, [1585] = 1585, - [1586] = 1584, - [1587] = 1587, + [1586] = 1586, + [1587] = 1545, [1588] = 1588, [1589] = 1589, [1590] = 1590, @@ -4659,127 +4686,138 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1599] = 1599, [1600] = 1600, [1601] = 1601, - [1602] = 1600, + [1602] = 1602, [1603] = 1603, - [1604] = 1593, + [1604] = 1604, [1605] = 1605, - [1606] = 1588, - [1607] = 1589, - [1608] = 1608, + [1606] = 1606, + [1607] = 1607, + [1608] = 1594, [1609] = 1609, [1610] = 1610, [1611] = 1611, [1612] = 1612, - [1613] = 1592, + [1613] = 1613, [1614] = 1614, - [1615] = 1591, + [1615] = 1615, [1616] = 1616, [1617] = 1617, - [1618] = 1617, + [1618] = 1618, [1619] = 1619, [1620] = 1620, [1621] = 1621, [1622] = 1622, [1623] = 1623, - [1624] = 1614, - [1625] = 1610, - [1626] = 1591, - [1627] = 1627, - [1628] = 1628, + [1624] = 1624, + [1625] = 1625, + [1626] = 1626, + [1627] = 1609, + [1628] = 1617, [1629] = 1629, - [1630] = 1630, + [1630] = 1593, [1631] = 1631, - [1632] = 1605, - [1633] = 1594, - [1634] = 1612, - [1635] = 1584, + [1632] = 1614, + [1633] = 1633, + [1634] = 1634, + [1635] = 1635, [1636] = 1636, - [1637] = 1603, - [1638] = 1638, - [1639] = 1583, + [1637] = 1615, + [1638] = 1616, + [1639] = 1639, [1640] = 1640, [1641] = 1641, - [1642] = 1616, - [1643] = 1643, - [1644] = 1644, - [1645] = 1627, - [1646] = 1609, - [1647] = 1647, + [1642] = 1622, + [1643] = 1615, + [1644] = 1620, + [1645] = 1599, + [1646] = 1646, + [1647] = 1633, [1648] = 1648, - [1649] = 1627, - [1650] = 1631, - [1651] = 1605, - [1652] = 1587, - [1653] = 1653, - [1654] = 1654, + [1649] = 1621, + [1650] = 1650, + [1651] = 1607, + [1652] = 1652, + [1653] = 1611, + [1654] = 1600, [1655] = 1655, - [1656] = 1594, - [1657] = 1657, + [1656] = 1641, + [1657] = 1652, [1658] = 1658, [1659] = 1659, - [1660] = 1653, + [1660] = 1660, [1661] = 1661, - [1662] = 1662, + [1662] = 1597, [1663] = 1663, [1664] = 1664, - [1665] = 1596, - [1666] = 1608, - [1667] = 1667, - [1668] = 1593, - [1669] = 1653, - [1670] = 1597, - [1671] = 1612, - [1672] = 1672, - [1673] = 1593, - [1674] = 1612, - [1675] = 1591, - [1676] = 1590, - [1677] = 1614, - [1678] = 1596, - [1679] = 1594, - [1680] = 1680, - [1681] = 1636, - [1682] = 1682, - [1683] = 1596, - [1684] = 1684, + [1665] = 1665, + [1666] = 1603, + [1667] = 1601, + [1668] = 1668, + [1669] = 1655, + [1670] = 1652, + [1671] = 1671, + [1672] = 1603, + [1673] = 1655, + [1674] = 1664, + [1675] = 1675, + [1676] = 1676, + [1677] = 1677, + [1678] = 1601, + [1679] = 1655, + [1680] = 1618, + [1681] = 1594, + [1682] = 1622, + [1683] = 1641, + [1684] = 1616, [1685] = 1685, - [1686] = 1592, - [1687] = 1600, - [1688] = 1688, - [1689] = 1621, - [1690] = 1593, - [1691] = 1629, - [1692] = 1641, - [1693] = 1653, - [1694] = 1584, - [1695] = 1605, - [1696] = 1696, - [1697] = 1622, - [1698] = 1667, - [1699] = 1644, - [1700] = 1612, - [1701] = 1701, - [1702] = 1702, - [1703] = 1703, - [1704] = 1611, - [1705] = 1600, + [1686] = 1659, + [1687] = 1618, + [1688] = 1629, + [1689] = 1689, + [1690] = 1690, + [1691] = 1641, + [1692] = 1618, + [1693] = 1626, + [1694] = 1694, + [1695] = 1593, + [1696] = 1594, + [1697] = 1697, + [1698] = 1626, + [1699] = 1660, + [1700] = 1700, + [1701] = 1593, + [1702] = 1663, + [1703] = 1634, + [1704] = 1704, + [1705] = 1622, [1706] = 1592, [1707] = 1707, - [1708] = 1614, - [1709] = 1709, - [1710] = 1601, - [1711] = 1593, - [1712] = 1688, - [1713] = 1619, - [1714] = 1599, - [1715] = 1627, - [1716] = 1661, - [1717] = 1685, - [1718] = 1631, - [1719] = 1672, - [1720] = 1612, - [1721] = 1631, - [1722] = 1722, + [1708] = 1616, + [1709] = 1596, + [1710] = 1622, + [1711] = 1711, + [1712] = 1619, + [1713] = 1713, + [1714] = 1714, + [1715] = 1676, + [1716] = 1626, + [1717] = 1717, + [1718] = 1694, + [1719] = 1603, + [1720] = 1622, + [1721] = 1601, + [1722] = 1615, + [1723] = 1641, + [1724] = 1671, + [1725] = 1639, + [1726] = 1659, + [1727] = 1612, + [1728] = 1668, + [1729] = 1641, + [1730] = 1648, + [1731] = 1652, + [1732] = 1659, + [1733] = 1624, }; static const TSCharacterRange sym_identifier_character_set_1[] = { @@ -6043,79 +6081,80 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { END_STATE(); case 46: if (lookahead == 'm') ADVANCE(82); + if (lookahead == 'z') ADVANCE(83); END_STATE(); case 47: - if (lookahead == 't') ADVANCE(83); + if (lookahead == 't') ADVANCE(84); END_STATE(); case 48: - if (lookahead == 'n') ADVANCE(84); - if (lookahead == 't') ADVANCE(85); + if (lookahead == 'n') ADVANCE(85); + if (lookahead == 't') ADVANCE(86); END_STATE(); case 49: ACCEPT_TOKEN(anon_sym_or); END_STATE(); case 50: - if (lookahead == 's') ADVANCE(86); + if (lookahead == 's') ADVANCE(87); END_STATE(); case 51: - if (lookahead == 'i') ADVANCE(87); - END_STATE(); - case 52: if (lookahead == 'i') ADVANCE(88); END_STATE(); + case 52: + if (lookahead == 'i') ADVANCE(89); + END_STATE(); case 53: - if (lookahead == 't') ADVANCE(89); + if (lookahead == 't') ADVANCE(90); END_STATE(); case 54: - if (lookahead == 'y') ADVANCE(90); + if (lookahead == 'y') ADVANCE(91); END_STATE(); case 55: - if (lookahead == 'p') ADVANCE(91); + if (lookahead == 'p') ADVANCE(92); END_STATE(); case 56: - if (lookahead == 'i') ADVANCE(92); + if (lookahead == 'i') ADVANCE(93); END_STATE(); case 57: - if (lookahead == 't') ADVANCE(93); + if (lookahead == 't') ADVANCE(94); END_STATE(); case 58: - if (lookahead == 'e') ADVANCE(94); + if (lookahead == 'e') ADVANCE(95); END_STATE(); case 59: - if (lookahead == 's') ADVANCE(95); + if (lookahead == 's') ADVANCE(96); END_STATE(); case 60: - if (lookahead == 'e') ADVANCE(96); - END_STATE(); - case 61: if (lookahead == 'e') ADVANCE(97); END_STATE(); + case 61: + if (lookahead == 'e') ADVANCE(98); + END_STATE(); case 62: - if (lookahead == 'u') ADVANCE(98); + if (lookahead == 'u') ADVANCE(99); END_STATE(); case 63: ACCEPT_TOKEN(anon_sym_and); END_STATE(); case 64: - if (lookahead == 'e') ADVANCE(99); + if (lookahead == 'e') ADVANCE(100); END_STATE(); case 65: - if (lookahead == 'n') ADVANCE(100); + if (lookahead == 'n') ADVANCE(101); END_STATE(); case 66: - if (lookahead == 'i') ADVANCE(101); + if (lookahead == 'i') ADVANCE(102); END_STATE(); case 67: - if (lookahead == 'a') ADVANCE(102); + if (lookahead == 'a') ADVANCE(103); END_STATE(); case 68: - if (lookahead == 'e') ADVANCE(103); + if (lookahead == 'e') ADVANCE(104); END_STATE(); case 69: - if (lookahead == 's') ADVANCE(104); + if (lookahead == 's') ADVANCE(105); END_STATE(); case 70: - if (lookahead == 't') ADVANCE(105); + if (lookahead == 't') ADVANCE(106); END_STATE(); case 71: ACCEPT_TOKEN(anon_sym_def); @@ -6124,276 +6163,282 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_del); END_STATE(); case 73: - if (lookahead == 'f') ADVANCE(106); + if (lookahead == 'f') ADVANCE(107); END_STATE(); case 74: - if (lookahead == 'e') ADVANCE(107); - END_STATE(); - case 75: if (lookahead == 'e') ADVANCE(108); END_STATE(); + case 75: + if (lookahead == 'e') ADVANCE(109); + END_STATE(); case 76: - if (lookahead == 'c') ADVANCE(109); + if (lookahead == 'c') ADVANCE(110); END_STATE(); case 77: - if (lookahead == 'a') ADVANCE(110); + if (lookahead == 'a') ADVANCE(111); END_STATE(); case 78: ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 79: - if (lookahead == 'm') ADVANCE(111); + if (lookahead == 'm') ADVANCE(112); END_STATE(); case 80: - if (lookahead == 'b') ADVANCE(112); + if (lookahead == 'b') ADVANCE(113); END_STATE(); case 81: - if (lookahead == 'o') ADVANCE(113); + if (lookahead == 'o') ADVANCE(114); END_STATE(); case 82: - if (lookahead == 'b') ADVANCE(114); + if (lookahead == 'b') ADVANCE(115); END_STATE(); case 83: - if (lookahead == 'c') ADVANCE(115); + if (lookahead == 'y') ADVANCE(116); END_STATE(); case 84: - if (lookahead == 'l') ADVANCE(116); + if (lookahead == 'c') ADVANCE(117); END_STATE(); case 85: - ACCEPT_TOKEN(anon_sym_not); + if (lookahead == 'l') ADVANCE(118); END_STATE(); case 86: - if (lookahead == 's') ADVANCE(117); + ACCEPT_TOKEN(anon_sym_not); END_STATE(); case 87: - if (lookahead == 'n') ADVANCE(118); - END_STATE(); - case 88: if (lookahead == 's') ADVANCE(119); END_STATE(); + case 88: + if (lookahead == 'n') ADVANCE(120); + END_STATE(); case 89: - if (lookahead == 'u') ADVANCE(120); + if (lookahead == 's') ADVANCE(121); END_STATE(); case 90: - ACCEPT_TOKEN(anon_sym_try); + if (lookahead == 'u') ADVANCE(122); END_STATE(); case 91: - if (lookahead == 'e') ADVANCE(121); + ACCEPT_TOKEN(anon_sym_try); END_STATE(); case 92: - if (lookahead == 'l') ADVANCE(122); + if (lookahead == 'e') ADVANCE(123); END_STATE(); case 93: - if (lookahead == 'h') ADVANCE(123); - END_STATE(); - case 94: if (lookahead == 'l') ADVANCE(124); END_STATE(); + case 94: + if (lookahead == 'h') ADVANCE(125); + END_STATE(); case 95: - if (lookahead == 'e') ADVANCE(125); + if (lookahead == 'l') ADVANCE(126); END_STATE(); case 96: - ACCEPT_TOKEN(sym_none); + if (lookahead == 'e') ADVANCE(127); END_STATE(); case 97: - ACCEPT_TOKEN(sym_true); + ACCEPT_TOKEN(sym_none); END_STATE(); case 98: - if (lookahead == 't') ADVANCE(126); + ACCEPT_TOKEN(sym_true); END_STATE(); case 99: - if (lookahead == 'r') ADVANCE(127); + if (lookahead == 't') ADVANCE(128); END_STATE(); case 100: - if (lookahead == 'c') ADVANCE(128); + if (lookahead == 'r') ADVANCE(129); END_STATE(); case 101: - if (lookahead == 't') ADVANCE(129); + if (lookahead == 'c') ADVANCE(130); END_STATE(); case 102: - if (lookahead == 'k') ADVANCE(130); + if (lookahead == 't') ADVANCE(131); END_STATE(); case 103: - ACCEPT_TOKEN(anon_sym_case); + if (lookahead == 'k') ADVANCE(132); END_STATE(); case 104: - if (lookahead == 's') ADVANCE(131); + ACCEPT_TOKEN(anon_sym_case); END_STATE(); case 105: - if (lookahead == 'i') ADVANCE(132); + if (lookahead == 's') ADVANCE(133); END_STATE(); case 106: - ACCEPT_TOKEN(anon_sym_elif); + if (lookahead == 'i') ADVANCE(134); END_STATE(); case 107: - ACCEPT_TOKEN(anon_sym_else); + ACCEPT_TOKEN(anon_sym_elif); END_STATE(); case 108: - if (lookahead == 'p') ADVANCE(133); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 109: - ACCEPT_TOKEN(anon_sym_exec); + if (lookahead == 'p') ADVANCE(135); END_STATE(); case 110: - if (lookahead == 'l') ADVANCE(134); + ACCEPT_TOKEN(anon_sym_exec); END_STATE(); case 111: - ACCEPT_TOKEN(anon_sym_from); + if (lookahead == 'l') ADVANCE(136); END_STATE(); case 112: - if (lookahead == 'a') ADVANCE(135); + ACCEPT_TOKEN(anon_sym_from); END_STATE(); case 113: - if (lookahead == 'r') ADVANCE(136); + if (lookahead == 'a') ADVANCE(137); END_STATE(); case 114: - if (lookahead == 'd') ADVANCE(137); + if (lookahead == 'r') ADVANCE(138); END_STATE(); case 115: - if (lookahead == 'h') ADVANCE(138); + if (lookahead == 'd') ADVANCE(139); END_STATE(); case 116: - if (lookahead == 'o') ADVANCE(139); + ACCEPT_TOKEN(anon_sym_lazy); END_STATE(); case 117: - ACCEPT_TOKEN(anon_sym_pass); + if (lookahead == 'h') ADVANCE(140); END_STATE(); case 118: - if (lookahead == 't') ADVANCE(140); + if (lookahead == 'o') ADVANCE(141); END_STATE(); case 119: - if (lookahead == 'e') ADVANCE(141); + ACCEPT_TOKEN(anon_sym_pass); END_STATE(); case 120: - if (lookahead == 'r') ADVANCE(142); + if (lookahead == 't') ADVANCE(142); END_STATE(); case 121: - ACCEPT_TOKEN(anon_sym_type); - END_STATE(); - case 122: if (lookahead == 'e') ADVANCE(143); END_STATE(); + case 122: + if (lookahead == 'r') ADVANCE(144); + END_STATE(); case 123: - ACCEPT_TOKEN(anon_sym_with); + ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 124: - if (lookahead == 'd') ADVANCE(144); + if (lookahead == 'e') ADVANCE(145); END_STATE(); case 125: - ACCEPT_TOKEN(sym_false); + ACCEPT_TOKEN(anon_sym_with); END_STATE(); case 126: - if (lookahead == 'u') ADVANCE(145); + if (lookahead == 'd') ADVANCE(146); END_STATE(); case 127: - if (lookahead == 't') ADVANCE(146); + ACCEPT_TOKEN(sym_false); END_STATE(); case 128: - ACCEPT_TOKEN(anon_sym_async); + if (lookahead == 'u') ADVANCE(147); END_STATE(); case 129: - ACCEPT_TOKEN(anon_sym_await); - END_STATE(); - case 130: - ACCEPT_TOKEN(anon_sym_break); - END_STATE(); - case 131: - ACCEPT_TOKEN(anon_sym_class); - END_STATE(); - case 132: - if (lookahead == 'n') ADVANCE(147); - END_STATE(); - case 133: if (lookahead == 't') ADVANCE(148); END_STATE(); + case 130: + ACCEPT_TOKEN(anon_sym_async); + END_STATE(); + case 131: + ACCEPT_TOKEN(anon_sym_await); + END_STATE(); + case 132: + ACCEPT_TOKEN(anon_sym_break); + END_STATE(); + case 133: + ACCEPT_TOKEN(anon_sym_class); + END_STATE(); case 134: - if (lookahead == 'l') ADVANCE(149); + if (lookahead == 'n') ADVANCE(149); END_STATE(); case 135: - if (lookahead == 'l') ADVANCE(150); + if (lookahead == 't') ADVANCE(150); END_STATE(); case 136: - if (lookahead == 't') ADVANCE(151); + if (lookahead == 'l') ADVANCE(151); END_STATE(); case 137: - if (lookahead == 'a') ADVANCE(152); + if (lookahead == 'l') ADVANCE(152); END_STATE(); case 138: - ACCEPT_TOKEN(anon_sym_match); + if (lookahead == 't') ADVANCE(153); END_STATE(); case 139: - if (lookahead == 'c') ADVANCE(153); + if (lookahead == 'a') ADVANCE(154); END_STATE(); case 140: - ACCEPT_TOKEN(anon_sym_print); + ACCEPT_TOKEN(anon_sym_match); END_STATE(); case 141: - ACCEPT_TOKEN(anon_sym_raise); + if (lookahead == 'c') ADVANCE(155); END_STATE(); case 142: - if (lookahead == 'n') ADVANCE(154); + ACCEPT_TOKEN(anon_sym_print); END_STATE(); case 143: - ACCEPT_TOKEN(anon_sym_while); + ACCEPT_TOKEN(anon_sym_raise); END_STATE(); case 144: - ACCEPT_TOKEN(anon_sym_yield); + if (lookahead == 'n') ADVANCE(156); END_STATE(); case 145: - if (lookahead == 'r') ADVANCE(155); + ACCEPT_TOKEN(anon_sym_while); END_STATE(); case 146: - ACCEPT_TOKEN(anon_sym_assert); + ACCEPT_TOKEN(anon_sym_yield); END_STATE(); case 147: - if (lookahead == 'u') ADVANCE(156); + if (lookahead == 'r') ADVANCE(157); END_STATE(); case 148: - ACCEPT_TOKEN(anon_sym_except); + ACCEPT_TOKEN(anon_sym_assert); END_STATE(); case 149: - if (lookahead == 'y') ADVANCE(157); + if (lookahead == 'u') ADVANCE(158); END_STATE(); case 150: - ACCEPT_TOKEN(anon_sym_global); + ACCEPT_TOKEN(anon_sym_except); END_STATE(); case 151: - ACCEPT_TOKEN(anon_sym_import); + if (lookahead == 'y') ADVANCE(159); END_STATE(); case 152: - ACCEPT_TOKEN(anon_sym_lambda); + ACCEPT_TOKEN(anon_sym_global); END_STATE(); case 153: - if (lookahead == 'a') ADVANCE(158); + ACCEPT_TOKEN(anon_sym_import); END_STATE(); case 154: - ACCEPT_TOKEN(anon_sym_return); + ACCEPT_TOKEN(anon_sym_lambda); END_STATE(); case 155: - if (lookahead == 'e') ADVANCE(159); + if (lookahead == 'a') ADVANCE(160); END_STATE(); case 156: - if (lookahead == 'e') ADVANCE(160); + ACCEPT_TOKEN(anon_sym_return); END_STATE(); case 157: - ACCEPT_TOKEN(anon_sym_finally); + if (lookahead == 'e') ADVANCE(161); END_STATE(); case 158: - if (lookahead == 'l') ADVANCE(161); + if (lookahead == 'e') ADVANCE(162); END_STATE(); case 159: - if (lookahead == '_') ADVANCE(162); + ACCEPT_TOKEN(anon_sym_finally); END_STATE(); case 160: - ACCEPT_TOKEN(anon_sym_continue); + if (lookahead == 'l') ADVANCE(163); END_STATE(); case 161: - ACCEPT_TOKEN(anon_sym_nonlocal); + if (lookahead == '_') ADVANCE(164); END_STATE(); case 162: - if (lookahead == '_') ADVANCE(163); + ACCEPT_TOKEN(anon_sym_continue); END_STATE(); case 163: + ACCEPT_TOKEN(anon_sym_nonlocal); + END_STATE(); + case 164: + if (lookahead == '_') ADVANCE(165); + END_STATE(); + case 165: ACCEPT_TOKEN(anon_sym___future__); END_STATE(); default: @@ -6462,22 +6507,22 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [57] = {.lex_state = 51, .external_lex_state = 3}, [58] = {.lex_state = 51, .external_lex_state = 3}, [59] = {.lex_state = 51, .external_lex_state = 3}, - [60] = {.lex_state = 51, .external_lex_state = 2}, + [60] = {.lex_state = 51, .external_lex_state = 3}, [61] = {.lex_state = 51, .external_lex_state = 3}, [62] = {.lex_state = 51, .external_lex_state = 2}, [63] = {.lex_state = 51, .external_lex_state = 3}, [64] = {.lex_state = 51, .external_lex_state = 3}, - [65] = {.lex_state = 51, .external_lex_state = 3}, + [65] = {.lex_state = 51, .external_lex_state = 2}, [66] = {.lex_state = 51, .external_lex_state = 4}, [67] = {.lex_state = 51, .external_lex_state = 4}, - [68] = {.lex_state = 51, .external_lex_state = 4}, + [68] = {.lex_state = 51, .external_lex_state = 5}, [69] = {.lex_state = 51, .external_lex_state = 5}, [70] = {.lex_state = 51, .external_lex_state = 5}, [71] = {.lex_state = 51, .external_lex_state = 5}, [72] = {.lex_state = 51, .external_lex_state = 5}, [73] = {.lex_state = 51, .external_lex_state = 5}, [74] = {.lex_state = 51, .external_lex_state = 5}, - [75] = {.lex_state = 51, .external_lex_state = 5}, + [75] = {.lex_state = 51, .external_lex_state = 4}, [76] = {.lex_state = 51, .external_lex_state = 5}, [77] = {.lex_state = 51, .external_lex_state = 5}, [78] = {.lex_state = 51, .external_lex_state = 5}, @@ -6536,22 +6581,22 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [131] = {.lex_state = 51, .external_lex_state = 4}, [132] = {.lex_state = 51, .external_lex_state = 4}, [133] = {.lex_state = 51, .external_lex_state = 2}, - [134] = {.lex_state = 51, .external_lex_state = 4}, - [135] = {.lex_state = 51, .external_lex_state = 2}, + [134] = {.lex_state = 51, .external_lex_state = 2}, + [135] = {.lex_state = 51, .external_lex_state = 4}, [136] = {.lex_state = 51, .external_lex_state = 2}, [137] = {.lex_state = 51, .external_lex_state = 2}, [138] = {.lex_state = 51, .external_lex_state = 2}, - [139] = {.lex_state = 51, .external_lex_state = 2}, - [140] = {.lex_state = 51, .external_lex_state = 4}, - [141] = {.lex_state = 14, .external_lex_state = 2}, + [139] = {.lex_state = 51, .external_lex_state = 4}, + [140] = {.lex_state = 14, .external_lex_state = 2}, + [141] = {.lex_state = 51, .external_lex_state = 2}, [142] = {.lex_state = 51, .external_lex_state = 2}, [143] = {.lex_state = 51, .external_lex_state = 2}, [144] = {.lex_state = 51, .external_lex_state = 2}, - [145] = {.lex_state = 14, .external_lex_state = 2}, + [145] = {.lex_state = 51, .external_lex_state = 2}, [146] = {.lex_state = 51, .external_lex_state = 2}, - [147] = {.lex_state = 51, .external_lex_state = 2}, + [147] = {.lex_state = 51, .external_lex_state = 4}, [148] = {.lex_state = 51, .external_lex_state = 2}, - [149] = {.lex_state = 51, .external_lex_state = 4}, + [149] = {.lex_state = 14, .external_lex_state = 2}, [150] = {.lex_state = 51, .external_lex_state = 2}, [151] = {.lex_state = 51, .external_lex_state = 2}, [152] = {.lex_state = 51, .external_lex_state = 2}, @@ -6576,17 +6621,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [171] = {.lex_state = 51, .external_lex_state = 2}, [172] = {.lex_state = 51, .external_lex_state = 2}, [173] = {.lex_state = 51, .external_lex_state = 2}, - [174] = {.lex_state = 51, .external_lex_state = 4}, + [174] = {.lex_state = 51, .external_lex_state = 2}, [175] = {.lex_state = 51, .external_lex_state = 2}, [176] = {.lex_state = 51, .external_lex_state = 2}, - [177] = {.lex_state = 51, .external_lex_state = 2}, - [178] = {.lex_state = 14, .external_lex_state = 2}, - [179] = {.lex_state = 14, .external_lex_state = 2}, - [180] = {.lex_state = 14, .external_lex_state = 2}, - [181] = {.lex_state = 51, .external_lex_state = 2}, - [182] = {.lex_state = 51, .external_lex_state = 2}, - [183] = {.lex_state = 51, .external_lex_state = 2}, - [184] = {.lex_state = 51, .external_lex_state = 4}, + [177] = {.lex_state = 51, .external_lex_state = 4}, + [178] = {.lex_state = 51, .external_lex_state = 4}, + [179] = {.lex_state = 51, .external_lex_state = 2}, + [180] = {.lex_state = 51, .external_lex_state = 2}, + [181] = {.lex_state = 14, .external_lex_state = 2}, + [182] = {.lex_state = 14, .external_lex_state = 2}, + [183] = {.lex_state = 14, .external_lex_state = 2}, + [184] = {.lex_state = 51, .external_lex_state = 2}, [185] = {.lex_state = 51, .external_lex_state = 2}, [186] = {.lex_state = 51, .external_lex_state = 2}, [187] = {.lex_state = 51, .external_lex_state = 2}, @@ -6594,10 +6639,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [189] = {.lex_state = 51, .external_lex_state = 2}, [190] = {.lex_state = 51, .external_lex_state = 2}, [191] = {.lex_state = 51, .external_lex_state = 4}, - [192] = {.lex_state = 51, .external_lex_state = 2}, + [192] = {.lex_state = 51, .external_lex_state = 4}, [193] = {.lex_state = 51, .external_lex_state = 4}, [194] = {.lex_state = 51, .external_lex_state = 2}, - [195] = {.lex_state = 51, .external_lex_state = 2}, + [195] = {.lex_state = 51, .external_lex_state = 4}, [196] = {.lex_state = 51, .external_lex_state = 2}, [197] = {.lex_state = 51, .external_lex_state = 2}, [198] = {.lex_state = 51, .external_lex_state = 2}, @@ -6619,10 +6664,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [214] = {.lex_state = 51, .external_lex_state = 2}, [215] = {.lex_state = 51, .external_lex_state = 2}, [216] = {.lex_state = 51, .external_lex_state = 2}, - [217] = {.lex_state = 51, .external_lex_state = 4}, + [217] = {.lex_state = 51, .external_lex_state = 2}, [218] = {.lex_state = 51, .external_lex_state = 2}, [219] = {.lex_state = 51, .external_lex_state = 2}, - [220] = {.lex_state = 51, .external_lex_state = 4}, + [220] = {.lex_state = 51, .external_lex_state = 2}, [221] = {.lex_state = 51, .external_lex_state = 2}, [222] = {.lex_state = 51, .external_lex_state = 2}, [223] = {.lex_state = 51, .external_lex_state = 2}, @@ -6669,13 +6714,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [264] = {.lex_state = 51, .external_lex_state = 2}, [265] = {.lex_state = 51, .external_lex_state = 2}, [266] = {.lex_state = 51, .external_lex_state = 3}, - [267] = {.lex_state = 51, .external_lex_state = 3}, + [267] = {.lex_state = 51, .external_lex_state = 2}, [268] = {.lex_state = 51, .external_lex_state = 2}, [269] = {.lex_state = 51, .external_lex_state = 2}, [270] = {.lex_state = 51, .external_lex_state = 2}, - [271] = {.lex_state = 51, .external_lex_state = 2}, + [271] = {.lex_state = 51, .external_lex_state = 3}, [272] = {.lex_state = 51, .external_lex_state = 2}, - [273] = {.lex_state = 51, .external_lex_state = 2}, + [273] = {.lex_state = 51, .external_lex_state = 3}, [274] = {.lex_state = 51, .external_lex_state = 2}, [275] = {.lex_state = 51, .external_lex_state = 2}, [276] = {.lex_state = 51, .external_lex_state = 2}, @@ -6685,62 +6730,62 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [280] = {.lex_state = 51, .external_lex_state = 2}, [281] = {.lex_state = 51, .external_lex_state = 2}, [282] = {.lex_state = 51, .external_lex_state = 2}, - [283] = {.lex_state = 51, .external_lex_state = 3}, + [283] = {.lex_state = 51, .external_lex_state = 2}, [284] = {.lex_state = 51, .external_lex_state = 2}, [285] = {.lex_state = 51, .external_lex_state = 2}, [286] = {.lex_state = 51, .external_lex_state = 2}, [287] = {.lex_state = 51, .external_lex_state = 2}, - [288] = {.lex_state = 51, .external_lex_state = 2}, - [289] = {.lex_state = 51, .external_lex_state = 4}, + [288] = {.lex_state = 51, .external_lex_state = 4}, + [289] = {.lex_state = 51, .external_lex_state = 2}, [290] = {.lex_state = 51, .external_lex_state = 4}, [291] = {.lex_state = 51, .external_lex_state = 4}, - [292] = {.lex_state = 51, .external_lex_state = 2}, + [292] = {.lex_state = 51, .external_lex_state = 4}, [293] = {.lex_state = 51, .external_lex_state = 2}, - [294] = {.lex_state = 16}, + [294] = {.lex_state = 51, .external_lex_state = 2}, [295] = {.lex_state = 51, .external_lex_state = 2}, [296] = {.lex_state = 51, .external_lex_state = 2}, [297] = {.lex_state = 51, .external_lex_state = 2}, [298] = {.lex_state = 51, .external_lex_state = 2}, [299] = {.lex_state = 51, .external_lex_state = 2}, - [300] = {.lex_state = 51, .external_lex_state = 4}, + [300] = {.lex_state = 51, .external_lex_state = 2}, [301] = {.lex_state = 51, .external_lex_state = 2}, [302] = {.lex_state = 51, .external_lex_state = 2}, [303] = {.lex_state = 51, .external_lex_state = 2}, [304] = {.lex_state = 51, .external_lex_state = 2}, [305] = {.lex_state = 51, .external_lex_state = 2}, [306] = {.lex_state = 51, .external_lex_state = 2}, - [307] = {.lex_state = 16}, + [307] = {.lex_state = 51, .external_lex_state = 2}, [308] = {.lex_state = 51, .external_lex_state = 2}, [309] = {.lex_state = 51, .external_lex_state = 2}, - [310] = {.lex_state = 51, .external_lex_state = 2}, + [310] = {.lex_state = 51, .external_lex_state = 3}, [311] = {.lex_state = 51, .external_lex_state = 2}, [312] = {.lex_state = 51, .external_lex_state = 2}, [313] = {.lex_state = 51, .external_lex_state = 3}, - [314] = {.lex_state = 51, .external_lex_state = 3}, + [314] = {.lex_state = 51, .external_lex_state = 2}, [315] = {.lex_state = 51, .external_lex_state = 2}, [316] = {.lex_state = 51, .external_lex_state = 2}, [317] = {.lex_state = 51, .external_lex_state = 2}, - [318] = {.lex_state = 51, .external_lex_state = 2}, - [319] = {.lex_state = 51, .external_lex_state = 3}, - [320] = {.lex_state = 51, .external_lex_state = 3}, + [318] = {.lex_state = 51, .external_lex_state = 3}, + [319] = {.lex_state = 51, .external_lex_state = 2}, + [320] = {.lex_state = 51, .external_lex_state = 2}, [321] = {.lex_state = 51, .external_lex_state = 2}, - [322] = {.lex_state = 51, .external_lex_state = 2}, + [322] = {.lex_state = 51, .external_lex_state = 3}, [323] = {.lex_state = 51, .external_lex_state = 2}, - [324] = {.lex_state = 16, .external_lex_state = 6}, - [325] = {.lex_state = 51, .external_lex_state = 2}, + [324] = {.lex_state = 16}, + [325] = {.lex_state = 51, .external_lex_state = 3}, [326] = {.lex_state = 51, .external_lex_state = 3}, - [327] = {.lex_state = 51, .external_lex_state = 3}, - [328] = {.lex_state = 51, .external_lex_state = 2}, - [329] = {.lex_state = 51, .external_lex_state = 2}, + [327] = {.lex_state = 51, .external_lex_state = 2}, + [328] = {.lex_state = 16}, + [329] = {.lex_state = 51, .external_lex_state = 3}, [330] = {.lex_state = 51, .external_lex_state = 3}, - [331] = {.lex_state = 51, .external_lex_state = 3}, - [332] = {.lex_state = 51, .external_lex_state = 2}, + [331] = {.lex_state = 51, .external_lex_state = 2}, + [332] = {.lex_state = 51, .external_lex_state = 3}, [333] = {.lex_state = 51, .external_lex_state = 3}, - [334] = {.lex_state = 51, .external_lex_state = 2}, - [335] = {.lex_state = 51, .external_lex_state = 3}, - [336] = {.lex_state = 51, .external_lex_state = 3}, + [334] = {.lex_state = 51, .external_lex_state = 3}, + [335] = {.lex_state = 51, .external_lex_state = 2}, + [336] = {.lex_state = 51, .external_lex_state = 2}, [337] = {.lex_state = 51, .external_lex_state = 2}, - [338] = {.lex_state = 16, .external_lex_state = 6}, + [338] = {.lex_state = 51, .external_lex_state = 2}, [339] = {.lex_state = 51, .external_lex_state = 2}, [340] = {.lex_state = 51, .external_lex_state = 2}, [341] = {.lex_state = 51, .external_lex_state = 2}, @@ -6769,14 +6814,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [364] = {.lex_state = 51, .external_lex_state = 2}, [365] = {.lex_state = 51, .external_lex_state = 2}, [366] = {.lex_state = 51, .external_lex_state = 2}, - [367] = {.lex_state = 16, .external_lex_state = 7}, + [367] = {.lex_state = 51, .external_lex_state = 2}, [368] = {.lex_state = 51, .external_lex_state = 2}, [369] = {.lex_state = 51, .external_lex_state = 2}, [370] = {.lex_state = 51, .external_lex_state = 2}, [371] = {.lex_state = 51, .external_lex_state = 2}, [372] = {.lex_state = 51, .external_lex_state = 2}, [373] = {.lex_state = 51, .external_lex_state = 2}, - [374] = {.lex_state = 51, .external_lex_state = 2}, + [374] = {.lex_state = 51, .external_lex_state = 3}, [375] = {.lex_state = 51, .external_lex_state = 2}, [376] = {.lex_state = 51, .external_lex_state = 2}, [377] = {.lex_state = 51, .external_lex_state = 2}, @@ -6801,7 +6846,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [396] = {.lex_state = 51, .external_lex_state = 2}, [397] = {.lex_state = 51, .external_lex_state = 2}, [398] = {.lex_state = 51, .external_lex_state = 2}, - [399] = {.lex_state = 51, .external_lex_state = 3}, + [399] = {.lex_state = 51, .external_lex_state = 2}, [400] = {.lex_state = 51, .external_lex_state = 2}, [401] = {.lex_state = 51, .external_lex_state = 2}, [402] = {.lex_state = 51, .external_lex_state = 2}, @@ -6832,201 +6877,201 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [427] = {.lex_state = 51, .external_lex_state = 2}, [428] = {.lex_state = 51, .external_lex_state = 2}, [429] = {.lex_state = 51, .external_lex_state = 2}, - [430] = {.lex_state = 51, .external_lex_state = 2}, + [430] = {.lex_state = 16, .external_lex_state = 6}, [431] = {.lex_state = 51, .external_lex_state = 2}, [432] = {.lex_state = 51, .external_lex_state = 2}, - [433] = {.lex_state = 51, .external_lex_state = 2}, + [433] = {.lex_state = 16, .external_lex_state = 6}, [434] = {.lex_state = 51, .external_lex_state = 2}, - [435] = {.lex_state = 51, .external_lex_state = 2}, - [436] = {.lex_state = 51, .external_lex_state = 2}, - [437] = {.lex_state = 51, .external_lex_state = 3}, - [438] = {.lex_state = 51, .external_lex_state = 3}, - [439] = {.lex_state = 51, .external_lex_state = 3}, + [435] = {.lex_state = 51, .external_lex_state = 3}, + [436] = {.lex_state = 51, .external_lex_state = 3}, + [437] = {.lex_state = 51, .external_lex_state = 2}, + [438] = {.lex_state = 51, .external_lex_state = 2}, + [439] = {.lex_state = 51, .external_lex_state = 2}, [440] = {.lex_state = 51, .external_lex_state = 3}, [441] = {.lex_state = 51, .external_lex_state = 3}, [442] = {.lex_state = 51, .external_lex_state = 2}, [443] = {.lex_state = 51, .external_lex_state = 3}, [444] = {.lex_state = 51, .external_lex_state = 3}, - [445] = {.lex_state = 51, .external_lex_state = 3}, + [445] = {.lex_state = 51, .external_lex_state = 2}, [446] = {.lex_state = 51, .external_lex_state = 3}, [447] = {.lex_state = 51, .external_lex_state = 3}, [448] = {.lex_state = 51, .external_lex_state = 2}, [449] = {.lex_state = 51, .external_lex_state = 2}, - [450] = {.lex_state = 51, .external_lex_state = 2}, - [451] = {.lex_state = 51, .external_lex_state = 2}, - [452] = {.lex_state = 51, .external_lex_state = 3}, - [453] = {.lex_state = 51, .external_lex_state = 2}, + [450] = {.lex_state = 16, .external_lex_state = 6}, + [451] = {.lex_state = 51, .external_lex_state = 3}, + [452] = {.lex_state = 16, .external_lex_state = 7}, + [453] = {.lex_state = 51, .external_lex_state = 3}, [454] = {.lex_state = 51, .external_lex_state = 2}, - [455] = {.lex_state = 51, .external_lex_state = 2}, + [455] = {.lex_state = 51, .external_lex_state = 3}, [456] = {.lex_state = 51, .external_lex_state = 2}, [457] = {.lex_state = 51, .external_lex_state = 2}, - [458] = {.lex_state = 16, .external_lex_state = 6}, - [459] = {.lex_state = 51, .external_lex_state = 2}, - [460] = {.lex_state = 51, .external_lex_state = 3}, + [458] = {.lex_state = 51, .external_lex_state = 2}, + [459] = {.lex_state = 51, .external_lex_state = 3}, + [460] = {.lex_state = 51, .external_lex_state = 2}, [461] = {.lex_state = 51, .external_lex_state = 2}, - [462] = {.lex_state = 16, .external_lex_state = 6}, - [463] = {.lex_state = 51, .external_lex_state = 2}, + [462] = {.lex_state = 51, .external_lex_state = 2}, + [463] = {.lex_state = 51, .external_lex_state = 3}, [464] = {.lex_state = 51, .external_lex_state = 2}, - [465] = {.lex_state = 16, .external_lex_state = 6}, + [465] = {.lex_state = 51, .external_lex_state = 2}, [466] = {.lex_state = 51, .external_lex_state = 3}, [467] = {.lex_state = 51, .external_lex_state = 2}, - [468] = {.lex_state = 51, .external_lex_state = 2}, + [468] = {.lex_state = 51, .external_lex_state = 3}, [469] = {.lex_state = 51, .external_lex_state = 3}, [470] = {.lex_state = 51, .external_lex_state = 3}, [471] = {.lex_state = 51, .external_lex_state = 2}, - [472] = {.lex_state = 51, .external_lex_state = 2}, - [473] = {.lex_state = 51, .external_lex_state = 3}, - [474] = {.lex_state = 16}, - [475] = {.lex_state = 16, .external_lex_state = 6}, + [472] = {.lex_state = 51, .external_lex_state = 3}, + [473] = {.lex_state = 51, .external_lex_state = 2}, + [474] = {.lex_state = 51, .external_lex_state = 2}, + [475] = {.lex_state = 51, .external_lex_state = 3}, [476] = {.lex_state = 51, .external_lex_state = 2}, - [477] = {.lex_state = 51, .external_lex_state = 3}, + [477] = {.lex_state = 51, .external_lex_state = 2}, [478] = {.lex_state = 51, .external_lex_state = 2}, [479] = {.lex_state = 51, .external_lex_state = 3}, - [480] = {.lex_state = 51, .external_lex_state = 3}, - [481] = {.lex_state = 51, .external_lex_state = 2}, + [480] = {.lex_state = 16, .external_lex_state = 6}, + [481] = {.lex_state = 51, .external_lex_state = 3}, [482] = {.lex_state = 51, .external_lex_state = 2}, - [483] = {.lex_state = 16, .external_lex_state = 6}, + [483] = {.lex_state = 51, .external_lex_state = 3}, [484] = {.lex_state = 51, .external_lex_state = 2}, [485] = {.lex_state = 51, .external_lex_state = 2}, [486] = {.lex_state = 51, .external_lex_state = 3}, - [487] = {.lex_state = 16}, + [487] = {.lex_state = 16, .external_lex_state = 6}, [488] = {.lex_state = 51, .external_lex_state = 3}, - [489] = {.lex_state = 51, .external_lex_state = 3}, - [490] = {.lex_state = 51, .external_lex_state = 2}, + [489] = {.lex_state = 51, .external_lex_state = 2}, + [490] = {.lex_state = 16}, [491] = {.lex_state = 51, .external_lex_state = 3}, - [492] = {.lex_state = 51, .external_lex_state = 3}, + [492] = {.lex_state = 51, .external_lex_state = 2}, [493] = {.lex_state = 51, .external_lex_state = 2}, - [494] = {.lex_state = 16, .external_lex_state = 6}, - [495] = {.lex_state = 51, .external_lex_state = 2}, - [496] = {.lex_state = 51, .external_lex_state = 2}, - [497] = {.lex_state = 51, .external_lex_state = 2}, + [494] = {.lex_state = 16}, + [495] = {.lex_state = 51, .external_lex_state = 3}, + [496] = {.lex_state = 16, .external_lex_state = 6}, + [497] = {.lex_state = 51, .external_lex_state = 3}, [498] = {.lex_state = 51, .external_lex_state = 2}, - [499] = {.lex_state = 51, .external_lex_state = 2}, + [499] = {.lex_state = 16, .external_lex_state = 6}, [500] = {.lex_state = 51, .external_lex_state = 2}, [501] = {.lex_state = 51, .external_lex_state = 2}, - [502] = {.lex_state = 16, .external_lex_state = 6}, - [503] = {.lex_state = 51, .external_lex_state = 3}, - [504] = {.lex_state = 51, .external_lex_state = 3}, - [505] = {.lex_state = 51, .external_lex_state = 3}, + [502] = {.lex_state = 51, .external_lex_state = 3}, + [503] = {.lex_state = 16, .external_lex_state = 6}, + [504] = {.lex_state = 51, .external_lex_state = 2}, + [505] = {.lex_state = 51, .external_lex_state = 2}, [506] = {.lex_state = 51, .external_lex_state = 3}, - [507] = {.lex_state = 51, .external_lex_state = 3}, + [507] = {.lex_state = 51, .external_lex_state = 2}, [508] = {.lex_state = 51, .external_lex_state = 2}, - [509] = {.lex_state = 16}, + [509] = {.lex_state = 51, .external_lex_state = 2}, [510] = {.lex_state = 51, .external_lex_state = 2}, - [511] = {.lex_state = 51, .external_lex_state = 2}, - [512] = {.lex_state = 51, .external_lex_state = 2}, - [513] = {.lex_state = 16, .external_lex_state = 6}, + [511] = {.lex_state = 51, .external_lex_state = 3}, + [512] = {.lex_state = 51, .external_lex_state = 3}, + [513] = {.lex_state = 51, .external_lex_state = 3}, [514] = {.lex_state = 51, .external_lex_state = 2}, [515] = {.lex_state = 51, .external_lex_state = 2}, - [516] = {.lex_state = 51, .external_lex_state = 2}, + [516] = {.lex_state = 51, .external_lex_state = 3}, [517] = {.lex_state = 51, .external_lex_state = 2}, - [518] = {.lex_state = 51, .external_lex_state = 2}, - [519] = {.lex_state = 51, .external_lex_state = 2}, - [520] = {.lex_state = 51, .external_lex_state = 2}, - [521] = {.lex_state = 51, .external_lex_state = 2}, - [522] = {.lex_state = 51, .external_lex_state = 2}, - [523] = {.lex_state = 51, .external_lex_state = 2}, - [524] = {.lex_state = 51, .external_lex_state = 2}, - [525] = {.lex_state = 51, .external_lex_state = 2}, - [526] = {.lex_state = 51, .external_lex_state = 2}, - [527] = {.lex_state = 51, .external_lex_state = 2}, - [528] = {.lex_state = 51, .external_lex_state = 2}, - [529] = {.lex_state = 51, .external_lex_state = 2}, - [530] = {.lex_state = 51, .external_lex_state = 2}, - [531] = {.lex_state = 51, .external_lex_state = 2}, - [532] = {.lex_state = 51, .external_lex_state = 2}, - [533] = {.lex_state = 51, .external_lex_state = 2}, - [534] = {.lex_state = 51, .external_lex_state = 2}, - [535] = {.lex_state = 51, .external_lex_state = 2}, - [536] = {.lex_state = 51, .external_lex_state = 2}, - [537] = {.lex_state = 51, .external_lex_state = 2}, - [538] = {.lex_state = 51, .external_lex_state = 2}, - [539] = {.lex_state = 51, .external_lex_state = 2}, - [540] = {.lex_state = 51, .external_lex_state = 2}, - [541] = {.lex_state = 51, .external_lex_state = 2}, - [542] = {.lex_state = 51, .external_lex_state = 2}, - [543] = {.lex_state = 51, .external_lex_state = 2}, + [518] = {.lex_state = 51, .external_lex_state = 3}, + [519] = {.lex_state = 51, .external_lex_state = 3}, + [520] = {.lex_state = 51, .external_lex_state = 3}, + [521] = {.lex_state = 51, .external_lex_state = 3}, + [522] = {.lex_state = 51, .external_lex_state = 3}, + [523] = {.lex_state = 51, .external_lex_state = 3}, + [524] = {.lex_state = 51, .external_lex_state = 3}, + [525] = {.lex_state = 51, .external_lex_state = 3}, + [526] = {.lex_state = 51, .external_lex_state = 3}, + [527] = {.lex_state = 51, .external_lex_state = 3}, + [528] = {.lex_state = 51, .external_lex_state = 3}, + [529] = {.lex_state = 51, .external_lex_state = 3}, + [530] = {.lex_state = 51, .external_lex_state = 3}, + [531] = {.lex_state = 51, .external_lex_state = 3}, + [532] = {.lex_state = 51, .external_lex_state = 3}, + [533] = {.lex_state = 51, .external_lex_state = 3}, + [534] = {.lex_state = 51, .external_lex_state = 3}, + [535] = {.lex_state = 51, .external_lex_state = 3}, + [536] = {.lex_state = 51, .external_lex_state = 3}, + [537] = {.lex_state = 51, .external_lex_state = 3}, + [538] = {.lex_state = 51, .external_lex_state = 3}, + [539] = {.lex_state = 51, .external_lex_state = 3}, + [540] = {.lex_state = 51, .external_lex_state = 3}, + [541] = {.lex_state = 51, .external_lex_state = 3}, + [542] = {.lex_state = 51, .external_lex_state = 3}, + [543] = {.lex_state = 51, .external_lex_state = 3}, [544] = {.lex_state = 51, .external_lex_state = 2}, - [545] = {.lex_state = 51, .external_lex_state = 2}, - [546] = {.lex_state = 51, .external_lex_state = 2}, - [547] = {.lex_state = 51, .external_lex_state = 2}, + [545] = {.lex_state = 51, .external_lex_state = 3}, + [546] = {.lex_state = 51, .external_lex_state = 3}, + [547] = {.lex_state = 51, .external_lex_state = 3}, [548] = {.lex_state = 51, .external_lex_state = 2}, - [549] = {.lex_state = 51, .external_lex_state = 2}, + [549] = {.lex_state = 51, .external_lex_state = 3}, [550] = {.lex_state = 51, .external_lex_state = 2}, - [551] = {.lex_state = 51, .external_lex_state = 2}, - [552] = {.lex_state = 51, .external_lex_state = 3}, + [551] = {.lex_state = 51, .external_lex_state = 3}, + [552] = {.lex_state = 51, .external_lex_state = 2}, [553] = {.lex_state = 51, .external_lex_state = 3}, [554] = {.lex_state = 51, .external_lex_state = 3}, [555] = {.lex_state = 51, .external_lex_state = 3}, - [556] = {.lex_state = 51, .external_lex_state = 3}, - [557] = {.lex_state = 51, .external_lex_state = 3}, + [556] = {.lex_state = 51, .external_lex_state = 2}, + [557] = {.lex_state = 16, .external_lex_state = 6}, [558] = {.lex_state = 51, .external_lex_state = 3}, [559] = {.lex_state = 51, .external_lex_state = 3}, [560] = {.lex_state = 51, .external_lex_state = 3}, [561] = {.lex_state = 51, .external_lex_state = 3}, [562] = {.lex_state = 51, .external_lex_state = 3}, - [563] = {.lex_state = 51, .external_lex_state = 3}, + [563] = {.lex_state = 51, .external_lex_state = 2}, [564] = {.lex_state = 51, .external_lex_state = 3}, [565] = {.lex_state = 51, .external_lex_state = 3}, - [566] = {.lex_state = 51, .external_lex_state = 3}, - [567] = {.lex_state = 51, .external_lex_state = 3}, - [568] = {.lex_state = 51, .external_lex_state = 3}, - [569] = {.lex_state = 51, .external_lex_state = 3}, - [570] = {.lex_state = 51, .external_lex_state = 3}, - [571] = {.lex_state = 51, .external_lex_state = 3}, - [572] = {.lex_state = 51, .external_lex_state = 3}, - [573] = {.lex_state = 51, .external_lex_state = 3}, - [574] = {.lex_state = 51, .external_lex_state = 3}, - [575] = {.lex_state = 51, .external_lex_state = 3}, - [576] = {.lex_state = 51, .external_lex_state = 3}, - [577] = {.lex_state = 51, .external_lex_state = 3}, - [578] = {.lex_state = 51, .external_lex_state = 3}, - [579] = {.lex_state = 51, .external_lex_state = 3}, - [580] = {.lex_state = 51, .external_lex_state = 3}, + [566] = {.lex_state = 51, .external_lex_state = 2}, + [567] = {.lex_state = 51, .external_lex_state = 2}, + [568] = {.lex_state = 51, .external_lex_state = 2}, + [569] = {.lex_state = 51, .external_lex_state = 2}, + [570] = {.lex_state = 51, .external_lex_state = 2}, + [571] = {.lex_state = 16, .external_lex_state = 6}, + [572] = {.lex_state = 51, .external_lex_state = 2}, + [573] = {.lex_state = 51, .external_lex_state = 2}, + [574] = {.lex_state = 51, .external_lex_state = 2}, + [575] = {.lex_state = 51, .external_lex_state = 2}, + [576] = {.lex_state = 51, .external_lex_state = 2}, + [577] = {.lex_state = 51, .external_lex_state = 2}, + [578] = {.lex_state = 51, .external_lex_state = 2}, + [579] = {.lex_state = 51, .external_lex_state = 2}, + [580] = {.lex_state = 51, .external_lex_state = 2}, [581] = {.lex_state = 51, .external_lex_state = 2}, - [582] = {.lex_state = 51, .external_lex_state = 3}, - [583] = {.lex_state = 51, .external_lex_state = 3}, - [584] = {.lex_state = 51, .external_lex_state = 3}, - [585] = {.lex_state = 51, .external_lex_state = 3}, - [586] = {.lex_state = 51, .external_lex_state = 3}, - [587] = {.lex_state = 51, .external_lex_state = 3}, + [582] = {.lex_state = 16, .external_lex_state = 6}, + [583] = {.lex_state = 51, .external_lex_state = 2}, + [584] = {.lex_state = 51, .external_lex_state = 2}, + [585] = {.lex_state = 16}, + [586] = {.lex_state = 51, .external_lex_state = 2}, + [587] = {.lex_state = 51, .external_lex_state = 2}, [588] = {.lex_state = 51, .external_lex_state = 2}, - [589] = {.lex_state = 51, .external_lex_state = 3}, - [590] = {.lex_state = 51, .external_lex_state = 3}, - [591] = {.lex_state = 51, .external_lex_state = 3}, - [592] = {.lex_state = 51, .external_lex_state = 3}, - [593] = {.lex_state = 51, .external_lex_state = 3}, - [594] = {.lex_state = 51, .external_lex_state = 3}, - [595] = {.lex_state = 51, .external_lex_state = 3}, + [589] = {.lex_state = 51, .external_lex_state = 2}, + [590] = {.lex_state = 51, .external_lex_state = 2}, + [591] = {.lex_state = 51, .external_lex_state = 2}, + [592] = {.lex_state = 51, .external_lex_state = 2}, + [593] = {.lex_state = 51, .external_lex_state = 2}, + [594] = {.lex_state = 51, .external_lex_state = 2}, + [595] = {.lex_state = 51, .external_lex_state = 2}, [596] = {.lex_state = 51, .external_lex_state = 2}, [597] = {.lex_state = 51, .external_lex_state = 2}, - [598] = {.lex_state = 51, .external_lex_state = 3}, - [599] = {.lex_state = 51, .external_lex_state = 3}, - [600] = {.lex_state = 51, .external_lex_state = 3}, - [601] = {.lex_state = 51, .external_lex_state = 3}, - [602] = {.lex_state = 51, .external_lex_state = 3}, - [603] = {.lex_state = 51, .external_lex_state = 3}, - [604] = {.lex_state = 51, .external_lex_state = 3}, + [598] = {.lex_state = 51, .external_lex_state = 2}, + [599] = {.lex_state = 51, .external_lex_state = 2}, + [600] = {.lex_state = 51, .external_lex_state = 2}, + [601] = {.lex_state = 51, .external_lex_state = 2}, + [602] = {.lex_state = 51, .external_lex_state = 2}, + [603] = {.lex_state = 51, .external_lex_state = 2}, + [604] = {.lex_state = 51, .external_lex_state = 2}, [605] = {.lex_state = 51, .external_lex_state = 2}, [606] = {.lex_state = 51, .external_lex_state = 2}, [607] = {.lex_state = 51, .external_lex_state = 2}, [608] = {.lex_state = 51, .external_lex_state = 2}, [609] = {.lex_state = 51, .external_lex_state = 2}, - [610] = {.lex_state = 51, .external_lex_state = 2}, - [611] = {.lex_state = 51, .external_lex_state = 2}, - [612] = {.lex_state = 51, .external_lex_state = 2}, + [610] = {.lex_state = 51, .external_lex_state = 3}, + [611] = {.lex_state = 51, .external_lex_state = 3}, + [612] = {.lex_state = 51, .external_lex_state = 3}, [613] = {.lex_state = 51, .external_lex_state = 2}, - [614] = {.lex_state = 51, .external_lex_state = 2}, + [614] = {.lex_state = 51, .external_lex_state = 3}, [615] = {.lex_state = 51, .external_lex_state = 2}, - [616] = {.lex_state = 16, .external_lex_state = 8}, - [617] = {.lex_state = 16, .external_lex_state = 9}, + [616] = {.lex_state = 51, .external_lex_state = 2}, + [617] = {.lex_state = 51, .external_lex_state = 2}, [618] = {.lex_state = 51, .external_lex_state = 2}, - [619] = {.lex_state = 16, .external_lex_state = 8}, - [620] = {.lex_state = 16, .external_lex_state = 9}, - [621] = {.lex_state = 16, .external_lex_state = 8}, + [619] = {.lex_state = 51, .external_lex_state = 2}, + [620] = {.lex_state = 51, .external_lex_state = 2}, + [621] = {.lex_state = 51, .external_lex_state = 2}, [622] = {.lex_state = 51, .external_lex_state = 2}, [623] = {.lex_state = 51, .external_lex_state = 2}, - [624] = {.lex_state = 16, .external_lex_state = 9}, + [624] = {.lex_state = 51, .external_lex_state = 2}, [625] = {.lex_state = 51, .external_lex_state = 2}, [626] = {.lex_state = 51, .external_lex_state = 2}, [627] = {.lex_state = 51, .external_lex_state = 2}, @@ -7047,7 +7092,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [642] = {.lex_state = 51, .external_lex_state = 2}, [643] = {.lex_state = 51, .external_lex_state = 2}, [644] = {.lex_state = 51, .external_lex_state = 2}, - [645] = {.lex_state = 51, .external_lex_state = 2}, + [645] = {.lex_state = 16, .external_lex_state = 8}, [646] = {.lex_state = 51, .external_lex_state = 2}, [647] = {.lex_state = 51, .external_lex_state = 2}, [648] = {.lex_state = 51, .external_lex_state = 2}, @@ -7060,7 +7105,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [655] = {.lex_state = 51, .external_lex_state = 2}, [656] = {.lex_state = 51, .external_lex_state = 2}, [657] = {.lex_state = 51, .external_lex_state = 2}, - [658] = {.lex_state = 51, .external_lex_state = 2}, + [658] = {.lex_state = 16, .external_lex_state = 9}, [659] = {.lex_state = 51, .external_lex_state = 2}, [660] = {.lex_state = 51, .external_lex_state = 2}, [661] = {.lex_state = 51, .external_lex_state = 2}, @@ -7077,8 +7122,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [672] = {.lex_state = 51, .external_lex_state = 2}, [673] = {.lex_state = 51, .external_lex_state = 2}, [674] = {.lex_state = 51, .external_lex_state = 2}, - [675] = {.lex_state = 51, .external_lex_state = 2}, - [676] = {.lex_state = 51, .external_lex_state = 2}, + [675] = {.lex_state = 16, .external_lex_state = 8}, + [676] = {.lex_state = 16, .external_lex_state = 9}, [677] = {.lex_state = 51, .external_lex_state = 2}, [678] = {.lex_state = 51, .external_lex_state = 2}, [679] = {.lex_state = 51, .external_lex_state = 2}, @@ -7094,15 +7139,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [689] = {.lex_state = 51, .external_lex_state = 2}, [690] = {.lex_state = 51, .external_lex_state = 2}, [691] = {.lex_state = 51, .external_lex_state = 2}, - [692] = {.lex_state = 51, .external_lex_state = 2}, - [693] = {.lex_state = 51, .external_lex_state = 2}, + [692] = {.lex_state = 16, .external_lex_state = 8}, + [693] = {.lex_state = 16, .external_lex_state = 9}, [694] = {.lex_state = 51, .external_lex_state = 2}, - [695] = {.lex_state = 16, .external_lex_state = 8}, - [696] = {.lex_state = 16, .external_lex_state = 9}, + [695] = {.lex_state = 51, .external_lex_state = 2}, + [696] = {.lex_state = 16, .external_lex_state = 8}, [697] = {.lex_state = 16, .external_lex_state = 8}, [698] = {.lex_state = 16, .external_lex_state = 9}, - [699] = {.lex_state = 16}, - [700] = {.lex_state = 16}, + [699] = {.lex_state = 16, .external_lex_state = 9}, + [700] = {.lex_state = 15}, [701] = {.lex_state = 16}, [702] = {.lex_state = 16}, [703] = {.lex_state = 16}, @@ -7114,15 +7159,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [709] = {.lex_state = 16}, [710] = {.lex_state = 16}, [711] = {.lex_state = 16}, - [712] = {.lex_state = 15}, - [713] = {.lex_state = 15}, + [712] = {.lex_state = 16}, + [713] = {.lex_state = 16}, [714] = {.lex_state = 16}, [715] = {.lex_state = 16}, [716] = {.lex_state = 16}, [717] = {.lex_state = 16}, [718] = {.lex_state = 16}, [719] = {.lex_state = 16}, - [720] = {.lex_state = 16}, + [720] = {.lex_state = 15}, [721] = {.lex_state = 16}, [722] = {.lex_state = 16}, [723] = {.lex_state = 16}, @@ -7140,214 +7185,214 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [735] = {.lex_state = 16}, [736] = {.lex_state = 16}, [737] = {.lex_state = 16}, - [738] = {.lex_state = 16}, + [738] = {.lex_state = 16, .external_lex_state = 9}, [739] = {.lex_state = 16}, [740] = {.lex_state = 16}, [741] = {.lex_state = 16}, [742] = {.lex_state = 16}, [743] = {.lex_state = 16}, - [744] = {.lex_state = 16, .external_lex_state = 8}, - [745] = {.lex_state = 16, .external_lex_state = 9}, - [746] = {.lex_state = 16, .external_lex_state = 8}, - [747] = {.lex_state = 16, .external_lex_state = 9}, + [744] = {.lex_state = 16}, + [745] = {.lex_state = 16}, + [746] = {.lex_state = 16}, + [747] = {.lex_state = 16}, [748] = {.lex_state = 16}, [749] = {.lex_state = 16}, [750] = {.lex_state = 16}, [751] = {.lex_state = 16}, - [752] = {.lex_state = 16}, + [752] = {.lex_state = 16, .external_lex_state = 8}, [753] = {.lex_state = 16}, [754] = {.lex_state = 16}, [755] = {.lex_state = 16}, [756] = {.lex_state = 16}, [757] = {.lex_state = 16}, [758] = {.lex_state = 16}, - [759] = {.lex_state = 16}, - [760] = {.lex_state = 16}, + [759] = {.lex_state = 16, .external_lex_state = 8}, + [760] = {.lex_state = 16, .external_lex_state = 9}, [761] = {.lex_state = 16}, - [762] = {.lex_state = 15, .external_lex_state = 9}, - [763] = {.lex_state = 16, .external_lex_state = 10}, + [762] = {.lex_state = 16}, + [763] = {.lex_state = 15}, [764] = {.lex_state = 16}, - [765] = {.lex_state = 16, .external_lex_state = 7}, - [766] = {.lex_state = 15}, + [765] = {.lex_state = 16, .external_lex_state = 6}, + [766] = {.lex_state = 15, .external_lex_state = 8}, [767] = {.lex_state = 15, .external_lex_state = 8}, [768] = {.lex_state = 15, .external_lex_state = 9}, - [769] = {.lex_state = 15, .external_lex_state = 8}, - [770] = {.lex_state = 15, .external_lex_state = 9}, - [771] = {.lex_state = 15, .external_lex_state = 8}, + [769] = {.lex_state = 16, .external_lex_state = 10}, + [770] = {.lex_state = 15, .external_lex_state = 8}, + [771] = {.lex_state = 15, .external_lex_state = 9}, [772] = {.lex_state = 16}, [773] = {.lex_state = 16}, - [774] = {.lex_state = 16}, + [774] = {.lex_state = 16, .external_lex_state = 10}, [775] = {.lex_state = 16, .external_lex_state = 7}, - [776] = {.lex_state = 16, .external_lex_state = 10}, + [776] = {.lex_state = 15, .external_lex_state = 9}, [777] = {.lex_state = 16}, [778] = {.lex_state = 16, .external_lex_state = 10}, - [779] = {.lex_state = 16, .external_lex_state = 6}, + [779] = {.lex_state = 16, .external_lex_state = 7}, [780] = {.lex_state = 16}, [781] = {.lex_state = 16}, [782] = {.lex_state = 16, .external_lex_state = 7}, - [783] = {.lex_state = 15}, - [784] = {.lex_state = 15}, - [785] = {.lex_state = 15}, - [786] = {.lex_state = 15}, - [787] = {.lex_state = 15}, - [788] = {.lex_state = 15}, - [789] = {.lex_state = 15}, - [790] = {.lex_state = 16}, - [791] = {.lex_state = 15}, - [792] = {.lex_state = 15}, - [793] = {.lex_state = 15}, - [794] = {.lex_state = 16, .external_lex_state = 8}, - [795] = {.lex_state = 16, .external_lex_state = 9}, - [796] = {.lex_state = 16, .external_lex_state = 6}, - [797] = {.lex_state = 15}, - [798] = {.lex_state = 15}, - [799] = {.lex_state = 16, .external_lex_state = 6}, - [800] = {.lex_state = 16, .external_lex_state = 6}, - [801] = {.lex_state = 16, .external_lex_state = 6}, - [802] = {.lex_state = 16, .external_lex_state = 6}, + [783] = {.lex_state = 16}, + [784] = {.lex_state = 16}, + [785] = {.lex_state = 16, .external_lex_state = 6}, + [786] = {.lex_state = 16, .external_lex_state = 6}, + [787] = {.lex_state = 16, .external_lex_state = 8}, + [788] = {.lex_state = 16, .external_lex_state = 9}, + [789] = {.lex_state = 16, .external_lex_state = 6}, + [790] = {.lex_state = 16, .external_lex_state = 6}, + [791] = {.lex_state = 16, .external_lex_state = 6}, + [792] = {.lex_state = 16}, + [793] = {.lex_state = 16, .external_lex_state = 8}, + [794] = {.lex_state = 16, .external_lex_state = 9}, + [795] = {.lex_state = 16, .external_lex_state = 8}, + [796] = {.lex_state = 16, .external_lex_state = 9}, + [797] = {.lex_state = 16, .external_lex_state = 6}, + [798] = {.lex_state = 16, .external_lex_state = 6}, + [799] = {.lex_state = 15}, + [800] = {.lex_state = 15}, + [801] = {.lex_state = 15}, + [802] = {.lex_state = 15}, [803] = {.lex_state = 16}, - [804] = {.lex_state = 16, .external_lex_state = 6}, - [805] = {.lex_state = 16, .external_lex_state = 6}, - [806] = {.lex_state = 16, .external_lex_state = 8}, - [807] = {.lex_state = 16, .external_lex_state = 9}, - [808] = {.lex_state = 16, .external_lex_state = 8}, - [809] = {.lex_state = 16, .external_lex_state = 9}, - [810] = {.lex_state = 16, .external_lex_state = 6}, - [811] = {.lex_state = 16, .external_lex_state = 6}, - [812] = {.lex_state = 16}, + [804] = {.lex_state = 15}, + [805] = {.lex_state = 16}, + [806] = {.lex_state = 16}, + [807] = {.lex_state = 16}, + [808] = {.lex_state = 16}, + [809] = {.lex_state = 15}, + [810] = {.lex_state = 16}, + [811] = {.lex_state = 16}, + [812] = {.lex_state = 15}, [813] = {.lex_state = 16}, [814] = {.lex_state = 16}, - [815] = {.lex_state = 16}, - [816] = {.lex_state = 16}, - [817] = {.lex_state = 16}, - [818] = {.lex_state = 16}, - [819] = {.lex_state = 16}, - [820] = {.lex_state = 16}, - [821] = {.lex_state = 16}, - [822] = {.lex_state = 16}, + [815] = {.lex_state = 15}, + [816] = {.lex_state = 15}, + [817] = {.lex_state = 16, .external_lex_state = 6}, + [818] = {.lex_state = 16, .external_lex_state = 6}, + [819] = {.lex_state = 15}, + [820] = {.lex_state = 15}, + [821] = {.lex_state = 16, .external_lex_state = 6}, + [822] = {.lex_state = 15}, [823] = {.lex_state = 16, .external_lex_state = 6}, [824] = {.lex_state = 16, .external_lex_state = 6}, - [825] = {.lex_state = 16, .external_lex_state = 6}, - [826] = {.lex_state = 16, .external_lex_state = 6}, - [827] = {.lex_state = 16, .external_lex_state = 10}, + [825] = {.lex_state = 16}, + [826] = {.lex_state = 16}, + [827] = {.lex_state = 51, .external_lex_state = 2}, [828] = {.lex_state = 16}, [829] = {.lex_state = 16}, - [830] = {.lex_state = 16, .external_lex_state = 10}, + [830] = {.lex_state = 51, .external_lex_state = 2}, [831] = {.lex_state = 16}, [832] = {.lex_state = 16}, [833] = {.lex_state = 16}, [834] = {.lex_state = 16}, [835] = {.lex_state = 16}, - [836] = {.lex_state = 16}, - [837] = {.lex_state = 16}, + [836] = {.lex_state = 16, .external_lex_state = 7}, + [837] = {.lex_state = 15, .external_lex_state = 9}, [838] = {.lex_state = 16}, [839] = {.lex_state = 16}, - [840] = {.lex_state = 15}, - [841] = {.lex_state = 15, .external_lex_state = 8}, + [840] = {.lex_state = 16}, + [841] = {.lex_state = 16}, [842] = {.lex_state = 16}, - [843] = {.lex_state = 16}, - [844] = {.lex_state = 16}, + [843] = {.lex_state = 15, .external_lex_state = 8}, + [844] = {.lex_state = 16, .external_lex_state = 6}, [845] = {.lex_state = 16}, - [846] = {.lex_state = 51, .external_lex_state = 2}, - [847] = {.lex_state = 16, .external_lex_state = 7}, + [846] = {.lex_state = 16}, + [847] = {.lex_state = 51, .external_lex_state = 2}, [848] = {.lex_state = 16}, [849] = {.lex_state = 16}, - [850] = {.lex_state = 15, .external_lex_state = 8}, - [851] = {.lex_state = 15, .external_lex_state = 9}, - [852] = {.lex_state = 16}, - [853] = {.lex_state = 16, .external_lex_state = 6}, - [854] = {.lex_state = 51, .external_lex_state = 2}, + [850] = {.lex_state = 16}, + [851] = {.lex_state = 16, .external_lex_state = 6}, + [852] = {.lex_state = 16, .external_lex_state = 7}, + [853] = {.lex_state = 15, .external_lex_state = 8}, + [854] = {.lex_state = 16}, [855] = {.lex_state = 16}, - [856] = {.lex_state = 51, .external_lex_state = 2}, - [857] = {.lex_state = 16}, - [858] = {.lex_state = 16}, - [859] = {.lex_state = 15, .external_lex_state = 9}, - [860] = {.lex_state = 16}, - [861] = {.lex_state = 16, .external_lex_state = 7}, - [862] = {.lex_state = 51, .external_lex_state = 2}, - [863] = {.lex_state = 16}, - [864] = {.lex_state = 16}, + [856] = {.lex_state = 16}, + [857] = {.lex_state = 16, .external_lex_state = 10}, + [858] = {.lex_state = 51, .external_lex_state = 2}, + [859] = {.lex_state = 16}, + [860] = {.lex_state = 16, .external_lex_state = 10}, + [861] = {.lex_state = 16}, + [862] = {.lex_state = 16}, + [863] = {.lex_state = 15}, + [864] = {.lex_state = 15, .external_lex_state = 9}, [865] = {.lex_state = 15}, - [866] = {.lex_state = 15}, + [866] = {.lex_state = 16}, [867] = {.lex_state = 16, .external_lex_state = 6}, - [868] = {.lex_state = 15}, + [868] = {.lex_state = 16, .external_lex_state = 6}, [869] = {.lex_state = 15}, - [870] = {.lex_state = 16}, + [870] = {.lex_state = 15}, [871] = {.lex_state = 16}, - [872] = {.lex_state = 15}, + [872] = {.lex_state = 16}, [873] = {.lex_state = 15}, - [874] = {.lex_state = 15}, - [875] = {.lex_state = 15}, + [874] = {.lex_state = 51, .external_lex_state = 2}, + [875] = {.lex_state = 51, .external_lex_state = 2}, [876] = {.lex_state = 15}, - [877] = {.lex_state = 15}, - [878] = {.lex_state = 16, .external_lex_state = 6}, - [879] = {.lex_state = 15}, + [877] = {.lex_state = 16}, + [878] = {.lex_state = 15}, + [879] = {.lex_state = 16}, [880] = {.lex_state = 15}, - [881] = {.lex_state = 15}, - [882] = {.lex_state = 15}, - [883] = {.lex_state = 15}, - [884] = {.lex_state = 15}, - [885] = {.lex_state = 15}, - [886] = {.lex_state = 16, .external_lex_state = 6}, - [887] = {.lex_state = 15}, - [888] = {.lex_state = 15}, - [889] = {.lex_state = 15}, - [890] = {.lex_state = 15}, - [891] = {.lex_state = 16, .external_lex_state = 6}, - [892] = {.lex_state = 15}, - [893] = {.lex_state = 15}, + [881] = {.lex_state = 16, .external_lex_state = 6}, + [882] = {.lex_state = 16, .external_lex_state = 6}, + [883] = {.lex_state = 16}, + [884] = {.lex_state = 16, .external_lex_state = 6}, + [885] = {.lex_state = 16, .external_lex_state = 6}, + [886] = {.lex_state = 15}, + [887] = {.lex_state = 16, .external_lex_state = 6}, + [888] = {.lex_state = 16, .external_lex_state = 6}, + [889] = {.lex_state = 51, .external_lex_state = 2}, + [890] = {.lex_state = 16, .external_lex_state = 6}, + [891] = {.lex_state = 15}, + [892] = {.lex_state = 16, .external_lex_state = 6}, + [893] = {.lex_state = 16, .external_lex_state = 6}, [894] = {.lex_state = 15}, - [895] = {.lex_state = 15}, - [896] = {.lex_state = 15}, - [897] = {.lex_state = 15}, - [898] = {.lex_state = 15}, - [899] = {.lex_state = 15}, - [900] = {.lex_state = 15}, + [895] = {.lex_state = 16, .external_lex_state = 6}, + [896] = {.lex_state = 16, .external_lex_state = 6}, + [897] = {.lex_state = 16, .external_lex_state = 6}, + [898] = {.lex_state = 16, .external_lex_state = 6}, + [899] = {.lex_state = 51, .external_lex_state = 2}, + [900] = {.lex_state = 16, .external_lex_state = 6}, [901] = {.lex_state = 16, .external_lex_state = 6}, [902] = {.lex_state = 16, .external_lex_state = 6}, - [903] = {.lex_state = 16, .external_lex_state = 6}, + [903] = {.lex_state = 15}, [904] = {.lex_state = 16, .external_lex_state = 6}, [905] = {.lex_state = 16, .external_lex_state = 6}, [906] = {.lex_state = 15}, - [907] = {.lex_state = 16, .external_lex_state = 6}, - [908] = {.lex_state = 16, .external_lex_state = 6}, - [909] = {.lex_state = 16, .external_lex_state = 6}, - [910] = {.lex_state = 16, .external_lex_state = 6}, - [911] = {.lex_state = 16}, - [912] = {.lex_state = 16}, - [913] = {.lex_state = 16, .external_lex_state = 6}, - [914] = {.lex_state = 16, .external_lex_state = 6}, - [915] = {.lex_state = 16}, - [916] = {.lex_state = 16, .external_lex_state = 6}, - [917] = {.lex_state = 16, .external_lex_state = 6}, + [907] = {.lex_state = 15}, + [908] = {.lex_state = 15}, + [909] = {.lex_state = 16}, + [910] = {.lex_state = 16}, + [911] = {.lex_state = 15}, + [912] = {.lex_state = 15}, + [913] = {.lex_state = 15}, + [914] = {.lex_state = 15}, + [915] = {.lex_state = 16, .external_lex_state = 6}, + [916] = {.lex_state = 15}, + [917] = {.lex_state = 15}, [918] = {.lex_state = 16, .external_lex_state = 6}, - [919] = {.lex_state = 16}, + [919] = {.lex_state = 16, .external_lex_state = 6}, [920] = {.lex_state = 16, .external_lex_state = 6}, [921] = {.lex_state = 16, .external_lex_state = 6}, [922] = {.lex_state = 16, .external_lex_state = 6}, - [923] = {.lex_state = 16, .external_lex_state = 6}, - [924] = {.lex_state = 15}, - [925] = {.lex_state = 16}, + [923] = {.lex_state = 51, .external_lex_state = 2}, + [924] = {.lex_state = 51, .external_lex_state = 2}, + [925] = {.lex_state = 16, .external_lex_state = 6}, [926] = {.lex_state = 16, .external_lex_state = 6}, - [927] = {.lex_state = 51, .external_lex_state = 2}, - [928] = {.lex_state = 51, .external_lex_state = 2}, - [929] = {.lex_state = 16, .external_lex_state = 6}, - [930] = {.lex_state = 16, .external_lex_state = 6}, - [931] = {.lex_state = 16, .external_lex_state = 6}, - [932] = {.lex_state = 51, .external_lex_state = 2}, - [933] = {.lex_state = 51, .external_lex_state = 2}, - [934] = {.lex_state = 51, .external_lex_state = 2}, - [935] = {.lex_state = 51, .external_lex_state = 2}, + [927] = {.lex_state = 15}, + [928] = {.lex_state = 16, .external_lex_state = 6}, + [929] = {.lex_state = 15}, + [930] = {.lex_state = 15}, + [931] = {.lex_state = 15}, + [932] = {.lex_state = 15}, + [933] = {.lex_state = 15}, + [934] = {.lex_state = 15}, + [935] = {.lex_state = 15}, [936] = {.lex_state = 16, .external_lex_state = 6}, [937] = {.lex_state = 16, .external_lex_state = 6}, [938] = {.lex_state = 15}, - [939] = {.lex_state = 15}, - [940] = {.lex_state = 16, .external_lex_state = 6}, + [939] = {.lex_state = 16, .external_lex_state = 6}, + [940] = {.lex_state = 15}, [941] = {.lex_state = 16, .external_lex_state = 6}, - [942] = {.lex_state = 16, .external_lex_state = 6}, - [943] = {.lex_state = 16, .external_lex_state = 6}, - [944] = {.lex_state = 16, .external_lex_state = 6}, - [945] = {.lex_state = 16}, + [942] = {.lex_state = 15}, + [943] = {.lex_state = 15}, + [944] = {.lex_state = 15}, + [945] = {.lex_state = 15}, [946] = {.lex_state = 16}, [947] = {.lex_state = 16}, [948] = {.lex_state = 16}, @@ -7366,56 +7411,56 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [961] = {.lex_state = 16}, [962] = {.lex_state = 16}, [963] = {.lex_state = 16}, - [964] = {.lex_state = 51, .external_lex_state = 2}, + [964] = {.lex_state = 16}, [965] = {.lex_state = 16}, [966] = {.lex_state = 16}, [967] = {.lex_state = 16}, [968] = {.lex_state = 16}, - [969] = {.lex_state = 16}, + [969] = {.lex_state = 51, .external_lex_state = 2}, [970] = {.lex_state = 16}, [971] = {.lex_state = 16}, - [972] = {.lex_state = 16}, - [973] = {.lex_state = 16}, + [972] = {.lex_state = 51, .external_lex_state = 2}, + [973] = {.lex_state = 51, .external_lex_state = 2}, [974] = {.lex_state = 16}, [975] = {.lex_state = 16}, [976] = {.lex_state = 16}, [977] = {.lex_state = 16}, [978] = {.lex_state = 16}, - [979] = {.lex_state = 51, .external_lex_state = 2}, + [979] = {.lex_state = 16}, [980] = {.lex_state = 51, .external_lex_state = 2}, [981] = {.lex_state = 16}, - [982] = {.lex_state = 51, .external_lex_state = 2}, + [982] = {.lex_state = 16}, [983] = {.lex_state = 16}, - [984] = {.lex_state = 51, .external_lex_state = 2}, + [984] = {.lex_state = 16}, [985] = {.lex_state = 51, .external_lex_state = 2}, [986] = {.lex_state = 51, .external_lex_state = 2}, [987] = {.lex_state = 51, .external_lex_state = 2}, [988] = {.lex_state = 51, .external_lex_state = 2}, - [989] = {.lex_state = 51}, + [989] = {.lex_state = 51, .external_lex_state = 2}, [990] = {.lex_state = 0}, - [991] = {.lex_state = 51}, - [992] = {.lex_state = 0}, + [991] = {.lex_state = 0}, + [992] = {.lex_state = 51}, [993] = {.lex_state = 51}, - [994] = {.lex_state = 51, .external_lex_state = 2}, - [995] = {.lex_state = 14}, - [996] = {.lex_state = 51, .external_lex_state = 2}, - [997] = {.lex_state = 51}, + [994] = {.lex_state = 51}, + [995] = {.lex_state = 51, .external_lex_state = 2}, + [996] = {.lex_state = 51}, + [997] = {.lex_state = 16}, [998] = {.lex_state = 51}, [999] = {.lex_state = 51}, - [1000] = {.lex_state = 16}, - [1001] = {.lex_state = 16}, - [1002] = {.lex_state = 0, .external_lex_state = 6}, - [1003] = {.lex_state = 0, .external_lex_state = 6}, - [1004] = {.lex_state = 51}, - [1005] = {.lex_state = 51}, - [1006] = {.lex_state = 14}, - [1007] = {.lex_state = 51}, - [1008] = {.lex_state = 51, .external_lex_state = 2}, - [1009] = {.lex_state = 51}, + [1000] = {.lex_state = 0, .external_lex_state = 6}, + [1001] = {.lex_state = 51}, + [1002] = {.lex_state = 51}, + [1003] = {.lex_state = 14}, + [1004] = {.lex_state = 16}, + [1005] = {.lex_state = 14}, + [1006] = {.lex_state = 51}, + [1007] = {.lex_state = 51, .external_lex_state = 2}, + [1008] = {.lex_state = 0, .external_lex_state = 6}, + [1009] = {.lex_state = 51, .external_lex_state = 2}, [1010] = {.lex_state = 51}, [1011] = {.lex_state = 51}, - [1012] = {.lex_state = 16}, - [1013] = {.lex_state = 51}, + [1012] = {.lex_state = 51}, + [1013] = {.lex_state = 16}, [1014] = {.lex_state = 51}, [1015] = {.lex_state = 51}, [1016] = {.lex_state = 51}, @@ -7423,420 +7468,420 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1018] = {.lex_state = 51}, [1019] = {.lex_state = 51}, [1020] = {.lex_state = 51}, - [1021] = {.lex_state = 51, .external_lex_state = 2}, + [1021] = {.lex_state = 51}, [1022] = {.lex_state = 0}, - [1023] = {.lex_state = 51}, - [1024] = {.lex_state = 51}, + [1023] = {.lex_state = 51, .external_lex_state = 2}, + [1024] = {.lex_state = 0}, [1025] = {.lex_state = 51}, - [1026] = {.lex_state = 0}, + [1026] = {.lex_state = 51}, [1027] = {.lex_state = 0}, - [1028] = {.lex_state = 0}, + [1028] = {.lex_state = 51}, [1029] = {.lex_state = 0}, - [1030] = {.lex_state = 51}, + [1030] = {.lex_state = 0}, [1031] = {.lex_state = 51}, - [1032] = {.lex_state = 16}, - [1033] = {.lex_state = 18, .external_lex_state = 11}, - [1034] = {.lex_state = 51}, - [1035] = {.lex_state = 18, .external_lex_state = 11}, - [1036] = {.lex_state = 18, .external_lex_state = 11}, + [1032] = {.lex_state = 51}, + [1033] = {.lex_state = 16}, + [1034] = {.lex_state = 18, .external_lex_state = 11}, + [1035] = {.lex_state = 51, .external_lex_state = 9}, + [1036] = {.lex_state = 16}, [1037] = {.lex_state = 18, .external_lex_state = 11}, - [1038] = {.lex_state = 16}, - [1039] = {.lex_state = 51, .external_lex_state = 8}, - [1040] = {.lex_state = 51, .external_lex_state = 9}, - [1041] = {.lex_state = 0}, - [1042] = {.lex_state = 16}, + [1038] = {.lex_state = 18, .external_lex_state = 11}, + [1039] = {.lex_state = 18, .external_lex_state = 11}, + [1040] = {.lex_state = 18, .external_lex_state = 11}, + [1041] = {.lex_state = 51}, + [1042] = {.lex_state = 18, .external_lex_state = 11}, [1043] = {.lex_state = 18, .external_lex_state = 11}, [1044] = {.lex_state = 18, .external_lex_state = 11}, [1045] = {.lex_state = 18, .external_lex_state = 11}, - [1046] = {.lex_state = 51}, + [1046] = {.lex_state = 18, .external_lex_state = 11}, [1047] = {.lex_state = 18, .external_lex_state = 11}, [1048] = {.lex_state = 18, .external_lex_state = 11}, - [1049] = {.lex_state = 16}, + [1049] = {.lex_state = 18, .external_lex_state = 11}, [1050] = {.lex_state = 18, .external_lex_state = 11}, [1051] = {.lex_state = 18, .external_lex_state = 11}, [1052] = {.lex_state = 18, .external_lex_state = 11}, [1053] = {.lex_state = 18, .external_lex_state = 11}, [1054] = {.lex_state = 18, .external_lex_state = 11}, - [1055] = {.lex_state = 18, .external_lex_state = 11}, - [1056] = {.lex_state = 18, .external_lex_state = 11}, - [1057] = {.lex_state = 18, .external_lex_state = 11}, - [1058] = {.lex_state = 18, .external_lex_state = 11}, - [1059] = {.lex_state = 18, .external_lex_state = 11}, - [1060] = {.lex_state = 51}, - [1061] = {.lex_state = 51}, - [1062] = {.lex_state = 0}, - [1063] = {.lex_state = 51}, + [1055] = {.lex_state = 51}, + [1056] = {.lex_state = 16}, + [1057] = {.lex_state = 0}, + [1058] = {.lex_state = 51}, + [1059] = {.lex_state = 51}, + [1060] = {.lex_state = 16}, + [1061] = {.lex_state = 51, .external_lex_state = 8}, + [1062] = {.lex_state = 18, .external_lex_state = 11}, + [1063] = {.lex_state = 0}, [1064] = {.lex_state = 0}, - [1065] = {.lex_state = 51}, - [1066] = {.lex_state = 0}, + [1065] = {.lex_state = 0}, + [1066] = {.lex_state = 51}, [1067] = {.lex_state = 0}, [1068] = {.lex_state = 0}, - [1069] = {.lex_state = 0}, - [1070] = {.lex_state = 51}, - [1071] = {.lex_state = 51}, - [1072] = {.lex_state = 51}, + [1069] = {.lex_state = 51}, + [1070] = {.lex_state = 0}, + [1071] = {.lex_state = 0}, + [1072] = {.lex_state = 0}, [1073] = {.lex_state = 0}, - [1074] = {.lex_state = 0}, + [1074] = {.lex_state = 51}, [1075] = {.lex_state = 0}, [1076] = {.lex_state = 0}, [1077] = {.lex_state = 51}, [1078] = {.lex_state = 51}, [1079] = {.lex_state = 0}, - [1080] = {.lex_state = 0}, - [1081] = {.lex_state = 0}, - [1082] = {.lex_state = 51}, + [1080] = {.lex_state = 51}, + [1081] = {.lex_state = 51}, + [1082] = {.lex_state = 0}, [1083] = {.lex_state = 0}, [1084] = {.lex_state = 0}, [1085] = {.lex_state = 0}, [1086] = {.lex_state = 0}, [1087] = {.lex_state = 0}, - [1088] = {.lex_state = 0}, + [1088] = {.lex_state = 51}, [1089] = {.lex_state = 51}, [1090] = {.lex_state = 0}, - [1091] = {.lex_state = 51}, + [1091] = {.lex_state = 0}, [1092] = {.lex_state = 0}, - [1093] = {.lex_state = 14}, - [1094] = {.lex_state = 0}, - [1095] = {.lex_state = 14}, - [1096] = {.lex_state = 51}, - [1097] = {.lex_state = 51}, - [1098] = {.lex_state = 0}, + [1093] = {.lex_state = 51}, + [1094] = {.lex_state = 51}, + [1095] = {.lex_state = 0}, + [1096] = {.lex_state = 14}, + [1097] = {.lex_state = 0}, + [1098] = {.lex_state = 51}, [1099] = {.lex_state = 0}, - [1100] = {.lex_state = 0}, - [1101] = {.lex_state = 51}, - [1102] = {.lex_state = 51}, - [1103] = {.lex_state = 14}, + [1100] = {.lex_state = 51}, + [1101] = {.lex_state = 0}, + [1102] = {.lex_state = 14}, + [1103] = {.lex_state = 51}, [1104] = {.lex_state = 14}, - [1105] = {.lex_state = 14}, + [1105] = {.lex_state = 51}, [1106] = {.lex_state = 14}, - [1107] = {.lex_state = 14}, - [1108] = {.lex_state = 14}, - [1109] = {.lex_state = 0, .external_lex_state = 6}, + [1107] = {.lex_state = 51}, + [1108] = {.lex_state = 51}, + [1109] = {.lex_state = 51}, [1110] = {.lex_state = 51}, - [1111] = {.lex_state = 0}, - [1112] = {.lex_state = 14}, + [1111] = {.lex_state = 16}, + [1112] = {.lex_state = 0}, [1113] = {.lex_state = 0}, [1114] = {.lex_state = 51}, [1115] = {.lex_state = 51}, [1116] = {.lex_state = 51}, - [1117] = {.lex_state = 51}, - [1118] = {.lex_state = 0}, - [1119] = {.lex_state = 51}, - [1120] = {.lex_state = 51}, - [1121] = {.lex_state = 0, .external_lex_state = 6}, - [1122] = {.lex_state = 0, .external_lex_state = 6}, - [1123] = {.lex_state = 0, .external_lex_state = 6}, - [1124] = {.lex_state = 51}, + [1117] = {.lex_state = 0}, + [1118] = {.lex_state = 51}, + [1119] = {.lex_state = 14}, + [1120] = {.lex_state = 14}, + [1121] = {.lex_state = 14}, + [1122] = {.lex_state = 14}, + [1123] = {.lex_state = 14}, + [1124] = {.lex_state = 14}, [1125] = {.lex_state = 14}, - [1126] = {.lex_state = 51}, - [1127] = {.lex_state = 51}, + [1126] = {.lex_state = 0, .external_lex_state = 6}, + [1127] = {.lex_state = 0}, [1128] = {.lex_state = 0}, - [1129] = {.lex_state = 14}, + [1129] = {.lex_state = 51}, [1130] = {.lex_state = 51}, - [1131] = {.lex_state = 51}, + [1131] = {.lex_state = 14}, [1132] = {.lex_state = 51}, - [1133] = {.lex_state = 18, .external_lex_state = 11}, - [1134] = {.lex_state = 51}, - [1135] = {.lex_state = 0, .external_lex_state = 6}, - [1136] = {.lex_state = 0}, + [1133] = {.lex_state = 51}, + [1134] = {.lex_state = 0, .external_lex_state = 6}, + [1135] = {.lex_state = 18, .external_lex_state = 11}, + [1136] = {.lex_state = 51}, [1137] = {.lex_state = 51}, [1138] = {.lex_state = 51}, - [1139] = {.lex_state = 16}, + [1139] = {.lex_state = 51}, [1140] = {.lex_state = 51}, [1141] = {.lex_state = 0, .external_lex_state = 6}, - [1142] = {.lex_state = 51}, - [1143] = {.lex_state = 51}, - [1144] = {.lex_state = 0, .external_lex_state = 6}, + [1142] = {.lex_state = 0, .external_lex_state = 6}, + [1143] = {.lex_state = 14}, + [1144] = {.lex_state = 0}, [1145] = {.lex_state = 0, .external_lex_state = 6}, - [1146] = {.lex_state = 0}, - [1147] = {.lex_state = 18, .external_lex_state = 11}, - [1148] = {.lex_state = 0}, - [1149] = {.lex_state = 51}, + [1146] = {.lex_state = 0, .external_lex_state = 6}, + [1147] = {.lex_state = 0, .external_lex_state = 6}, + [1148] = {.lex_state = 51}, + [1149] = {.lex_state = 18, .external_lex_state = 11}, [1150] = {.lex_state = 51}, [1151] = {.lex_state = 51}, - [1152] = {.lex_state = 51}, + [1152] = {.lex_state = 0, .external_lex_state = 6}, [1153] = {.lex_state = 51}, - [1154] = {.lex_state = 51}, - [1155] = {.lex_state = 0}, + [1154] = {.lex_state = 14}, + [1155] = {.lex_state = 0, .external_lex_state = 6}, [1156] = {.lex_state = 0, .external_lex_state = 6}, - [1157] = {.lex_state = 51}, - [1158] = {.lex_state = 0, .external_lex_state = 6}, + [1157] = {.lex_state = 0}, + [1158] = {.lex_state = 51}, [1159] = {.lex_state = 51}, [1160] = {.lex_state = 51}, [1161] = {.lex_state = 51}, - [1162] = {.lex_state = 0}, - [1163] = {.lex_state = 0, .external_lex_state = 6}, - [1164] = {.lex_state = 14}, - [1165] = {.lex_state = 14}, - [1166] = {.lex_state = 51}, - [1167] = {.lex_state = 51}, - [1168] = {.lex_state = 14}, - [1169] = {.lex_state = 0}, + [1162] = {.lex_state = 51}, + [1163] = {.lex_state = 51}, + [1164] = {.lex_state = 51}, + [1165] = {.lex_state = 0}, + [1166] = {.lex_state = 0}, + [1167] = {.lex_state = 0, .external_lex_state = 6}, + [1168] = {.lex_state = 51}, + [1169] = {.lex_state = 51}, [1170] = {.lex_state = 0}, [1171] = {.lex_state = 0}, - [1172] = {.lex_state = 51}, + [1172] = {.lex_state = 0}, [1173] = {.lex_state = 0}, - [1174] = {.lex_state = 0}, - [1175] = {.lex_state = 0, .external_lex_state = 6}, - [1176] = {.lex_state = 51}, - [1177] = {.lex_state = 0, .external_lex_state = 6}, - [1178] = {.lex_state = 0}, + [1174] = {.lex_state = 51}, + [1175] = {.lex_state = 0}, + [1176] = {.lex_state = 0, .external_lex_state = 6}, + [1177] = {.lex_state = 16}, + [1178] = {.lex_state = 51}, [1179] = {.lex_state = 0, .external_lex_state = 6}, - [1180] = {.lex_state = 0, .external_lex_state = 6}, - [1181] = {.lex_state = 0}, - [1182] = {.lex_state = 0}, - [1183] = {.lex_state = 14}, - [1184] = {.lex_state = 51}, - [1185] = {.lex_state = 0, .external_lex_state = 6}, - [1186] = {.lex_state = 51}, - [1187] = {.lex_state = 0}, - [1188] = {.lex_state = 51}, - [1189] = {.lex_state = 0}, + [1180] = {.lex_state = 0}, + [1181] = {.lex_state = 0, .external_lex_state = 6}, + [1182] = {.lex_state = 0, .external_lex_state = 6}, + [1183] = {.lex_state = 0}, + [1184] = {.lex_state = 0, .external_lex_state = 6}, + [1185] = {.lex_state = 51}, + [1186] = {.lex_state = 14}, + [1187] = {.lex_state = 51}, + [1188] = {.lex_state = 14}, + [1189] = {.lex_state = 51}, [1190] = {.lex_state = 0}, - [1191] = {.lex_state = 0, .external_lex_state = 6}, - [1192] = {.lex_state = 51}, - [1193] = {.lex_state = 51}, + [1191] = {.lex_state = 0}, + [1192] = {.lex_state = 0}, + [1193] = {.lex_state = 0}, [1194] = {.lex_state = 51}, - [1195] = {.lex_state = 51}, - [1196] = {.lex_state = 14}, - [1197] = {.lex_state = 0, .external_lex_state = 6}, - [1198] = {.lex_state = 0}, - [1199] = {.lex_state = 0, .external_lex_state = 6}, + [1195] = {.lex_state = 0, .external_lex_state = 6}, + [1196] = {.lex_state = 0}, + [1197] = {.lex_state = 51}, + [1198] = {.lex_state = 51}, + [1199] = {.lex_state = 0}, [1200] = {.lex_state = 51}, - [1201] = {.lex_state = 16}, - [1202] = {.lex_state = 0, .external_lex_state = 6}, - [1203] = {.lex_state = 0}, + [1201] = {.lex_state = 51}, + [1202] = {.lex_state = 0}, + [1203] = {.lex_state = 51}, [1204] = {.lex_state = 51}, [1205] = {.lex_state = 51}, - [1206] = {.lex_state = 0}, - [1207] = {.lex_state = 51}, - [1208] = {.lex_state = 51}, - [1209] = {.lex_state = 51}, + [1206] = {.lex_state = 0, .external_lex_state = 6}, + [1207] = {.lex_state = 0, .external_lex_state = 6}, + [1208] = {.lex_state = 0}, + [1209] = {.lex_state = 0}, [1210] = {.lex_state = 51}, - [1211] = {.lex_state = 0}, - [1212] = {.lex_state = 0}, - [1213] = {.lex_state = 0, .external_lex_state = 6}, + [1211] = {.lex_state = 51}, + [1212] = {.lex_state = 0, .external_lex_state = 6}, + [1213] = {.lex_state = 0}, [1214] = {.lex_state = 0}, - [1215] = {.lex_state = 14}, - [1216] = {.lex_state = 16}, - [1217] = {.lex_state = 18, .external_lex_state = 11}, - [1218] = {.lex_state = 18, .external_lex_state = 11}, - [1219] = {.lex_state = 16, .external_lex_state = 6}, - [1220] = {.lex_state = 51}, - [1221] = {.lex_state = 14}, - [1222] = {.lex_state = 51}, - [1223] = {.lex_state = 18, .external_lex_state = 11}, - [1224] = {.lex_state = 0, .external_lex_state = 6}, - [1225] = {.lex_state = 0}, - [1226] = {.lex_state = 0, .external_lex_state = 6}, - [1227] = {.lex_state = 0, .external_lex_state = 6}, - [1228] = {.lex_state = 51}, - [1229] = {.lex_state = 51}, - [1230] = {.lex_state = 51}, + [1215] = {.lex_state = 51}, + [1216] = {.lex_state = 0, .external_lex_state = 6}, + [1217] = {.lex_state = 16, .external_lex_state = 6}, + [1218] = {.lex_state = 51}, + [1219] = {.lex_state = 14}, + [1220] = {.lex_state = 14}, + [1221] = {.lex_state = 51}, + [1222] = {.lex_state = 16}, + [1223] = {.lex_state = 51}, + [1224] = {.lex_state = 16, .external_lex_state = 6}, + [1225] = {.lex_state = 0, .external_lex_state = 6}, + [1226] = {.lex_state = 18, .external_lex_state = 11}, + [1227] = {.lex_state = 51}, + [1228] = {.lex_state = 16}, + [1229] = {.lex_state = 0}, + [1230] = {.lex_state = 18, .external_lex_state = 11}, [1231] = {.lex_state = 51}, - [1232] = {.lex_state = 51}, - [1233] = {.lex_state = 16, .external_lex_state = 6}, - [1234] = {.lex_state = 16, .external_lex_state = 6}, + [1232] = {.lex_state = 0}, + [1233] = {.lex_state = 14}, + [1234] = {.lex_state = 51}, [1235] = {.lex_state = 51}, [1236] = {.lex_state = 51}, [1237] = {.lex_state = 51}, - [1238] = {.lex_state = 0}, + [1238] = {.lex_state = 51}, [1239] = {.lex_state = 51}, - [1240] = {.lex_state = 51}, - [1241] = {.lex_state = 16}, - [1242] = {.lex_state = 51}, - [1243] = {.lex_state = 51}, + [1240] = {.lex_state = 0, .external_lex_state = 6}, + [1241] = {.lex_state = 51}, + [1242] = {.lex_state = 0, .external_lex_state = 6}, + [1243] = {.lex_state = 0, .external_lex_state = 6}, [1244] = {.lex_state = 51}, - [1245] = {.lex_state = 18, .external_lex_state = 11}, + [1245] = {.lex_state = 51}, [1246] = {.lex_state = 51}, [1247] = {.lex_state = 51}, - [1248] = {.lex_state = 0}, - [1249] = {.lex_state = 51}, - [1250] = {.lex_state = 0, .external_lex_state = 6}, - [1251] = {.lex_state = 14}, + [1248] = {.lex_state = 16}, + [1249] = {.lex_state = 16, .external_lex_state = 6}, + [1250] = {.lex_state = 51}, + [1251] = {.lex_state = 18, .external_lex_state = 11}, [1252] = {.lex_state = 18, .external_lex_state = 11}, - [1253] = {.lex_state = 18, .external_lex_state = 11}, - [1254] = {.lex_state = 51}, - [1255] = {.lex_state = 0, .external_lex_state = 6}, + [1253] = {.lex_state = 51}, + [1254] = {.lex_state = 18, .external_lex_state = 11}, + [1255] = {.lex_state = 18, .external_lex_state = 11}, [1256] = {.lex_state = 51}, [1257] = {.lex_state = 0}, - [1258] = {.lex_state = 0, .external_lex_state = 6}, - [1259] = {.lex_state = 0}, - [1260] = {.lex_state = 0, .external_lex_state = 6}, + [1258] = {.lex_state = 0}, + [1259] = {.lex_state = 51}, + [1260] = {.lex_state = 0}, [1261] = {.lex_state = 0}, - [1262] = {.lex_state = 0}, - [1263] = {.lex_state = 51}, - [1264] = {.lex_state = 0}, - [1265] = {.lex_state = 14}, - [1266] = {.lex_state = 0}, - [1267] = {.lex_state = 51}, - [1268] = {.lex_state = 0}, - [1269] = {.lex_state = 0, .external_lex_state = 6}, - [1270] = {.lex_state = 0}, - [1271] = {.lex_state = 0, .external_lex_state = 6}, - [1272] = {.lex_state = 0}, - [1273] = {.lex_state = 14}, - [1274] = {.lex_state = 0}, - [1275] = {.lex_state = 0, .external_lex_state = 6}, + [1262] = {.lex_state = 51}, + [1263] = {.lex_state = 0}, + [1264] = {.lex_state = 0, .external_lex_state = 6}, + [1265] = {.lex_state = 0, .external_lex_state = 6}, + [1266] = {.lex_state = 14}, + [1267] = {.lex_state = 0}, + [1268] = {.lex_state = 0, .external_lex_state = 6}, + [1269] = {.lex_state = 14}, + [1270] = {.lex_state = 0, .external_lex_state = 6}, + [1271] = {.lex_state = 0}, + [1272] = {.lex_state = 0, .external_lex_state = 6}, + [1273] = {.lex_state = 51}, + [1274] = {.lex_state = 0, .external_lex_state = 6}, + [1275] = {.lex_state = 0}, [1276] = {.lex_state = 0}, - [1277] = {.lex_state = 51}, + [1277] = {.lex_state = 0, .external_lex_state = 6}, [1278] = {.lex_state = 0, .external_lex_state = 6}, - [1279] = {.lex_state = 0, .external_lex_state = 6}, - [1280] = {.lex_state = 0, .external_lex_state = 6}, - [1281] = {.lex_state = 51}, + [1279] = {.lex_state = 10}, + [1280] = {.lex_state = 0}, + [1281] = {.lex_state = 0, .external_lex_state = 6}, [1282] = {.lex_state = 0}, - [1283] = {.lex_state = 10}, - [1284] = {.lex_state = 10}, - [1285] = {.lex_state = 0, .external_lex_state = 6}, + [1283] = {.lex_state = 51}, + [1284] = {.lex_state = 0, .external_lex_state = 6}, + [1285] = {.lex_state = 0}, [1286] = {.lex_state = 0}, - [1287] = {.lex_state = 14}, + [1287] = {.lex_state = 0}, [1288] = {.lex_state = 10}, - [1289] = {.lex_state = 16, .external_lex_state = 6}, - [1290] = {.lex_state = 0, .external_lex_state = 6}, - [1291] = {.lex_state = 0}, - [1292] = {.lex_state = 0, .external_lex_state = 6}, - [1293] = {.lex_state = 0}, - [1294] = {.lex_state = 51}, - [1295] = {.lex_state = 51}, - [1296] = {.lex_state = 51}, - [1297] = {.lex_state = 0}, - [1298] = {.lex_state = 0}, + [1289] = {.lex_state = 0, .external_lex_state = 6}, + [1290] = {.lex_state = 0}, + [1291] = {.lex_state = 14}, + [1292] = {.lex_state = 10}, + [1293] = {.lex_state = 51}, + [1294] = {.lex_state = 16, .external_lex_state = 6}, + [1295] = {.lex_state = 0, .external_lex_state = 6}, + [1296] = {.lex_state = 0}, + [1297] = {.lex_state = 0, .external_lex_state = 6}, + [1298] = {.lex_state = 0, .external_lex_state = 6}, [1299] = {.lex_state = 0, .external_lex_state = 6}, - [1300] = {.lex_state = 0}, - [1301] = {.lex_state = 0}, - [1302] = {.lex_state = 14}, - [1303] = {.lex_state = 0, .external_lex_state = 6}, + [1300] = {.lex_state = 0, .external_lex_state = 6}, + [1301] = {.lex_state = 0, .external_lex_state = 6}, + [1302] = {.lex_state = 51}, + [1303] = {.lex_state = 0}, [1304] = {.lex_state = 0}, - [1305] = {.lex_state = 0}, - [1306] = {.lex_state = 0, .external_lex_state = 6}, + [1305] = {.lex_state = 0, .external_lex_state = 6}, + [1306] = {.lex_state = 0}, [1307] = {.lex_state = 0}, - [1308] = {.lex_state = 51}, - [1309] = {.lex_state = 0, .external_lex_state = 6}, - [1310] = {.lex_state = 14}, + [1308] = {.lex_state = 14}, + [1309] = {.lex_state = 51}, + [1310] = {.lex_state = 0, .external_lex_state = 6}, [1311] = {.lex_state = 0}, - [1312] = {.lex_state = 0}, - [1313] = {.lex_state = 0}, - [1314] = {.lex_state = 0}, - [1315] = {.lex_state = 0}, + [1312] = {.lex_state = 51}, + [1313] = {.lex_state = 51}, + [1314] = {.lex_state = 51, .external_lex_state = 8}, + [1315] = {.lex_state = 51, .external_lex_state = 9}, [1316] = {.lex_state = 0, .external_lex_state = 6}, - [1317] = {.lex_state = 51, .external_lex_state = 8}, - [1318] = {.lex_state = 51, .external_lex_state = 9}, - [1319] = {.lex_state = 0, .external_lex_state = 6}, + [1317] = {.lex_state = 0, .external_lex_state = 6}, + [1318] = {.lex_state = 14}, + [1319] = {.lex_state = 0}, [1320] = {.lex_state = 0, .external_lex_state = 6}, - [1321] = {.lex_state = 0}, - [1322] = {.lex_state = 51}, - [1323] = {.lex_state = 0}, - [1324] = {.lex_state = 0, .external_lex_state = 6}, + [1321] = {.lex_state = 0, .external_lex_state = 6}, + [1322] = {.lex_state = 0, .external_lex_state = 6}, + [1323] = {.lex_state = 16}, + [1324] = {.lex_state = 51}, [1325] = {.lex_state = 51}, [1326] = {.lex_state = 0, .external_lex_state = 6}, - [1327] = {.lex_state = 0}, - [1328] = {.lex_state = 0}, - [1329] = {.lex_state = 0}, + [1327] = {.lex_state = 51}, + [1328] = {.lex_state = 0, .external_lex_state = 6}, + [1329] = {.lex_state = 51}, [1330] = {.lex_state = 0}, - [1331] = {.lex_state = 51}, + [1331] = {.lex_state = 0}, [1332] = {.lex_state = 0, .external_lex_state = 6}, - [1333] = {.lex_state = 0, .external_lex_state = 6}, - [1334] = {.lex_state = 51}, - [1335] = {.lex_state = 0}, - [1336] = {.lex_state = 16}, - [1337] = {.lex_state = 0, .external_lex_state = 6}, - [1338] = {.lex_state = 51}, - [1339] = {.lex_state = 0}, - [1340] = {.lex_state = 0, .external_lex_state = 6}, - [1341] = {.lex_state = 51}, + [1333] = {.lex_state = 0}, + [1334] = {.lex_state = 0}, + [1335] = {.lex_state = 0, .external_lex_state = 6}, + [1336] = {.lex_state = 0}, + [1337] = {.lex_state = 51}, + [1338] = {.lex_state = 0, .external_lex_state = 6}, + [1339] = {.lex_state = 51}, + [1340] = {.lex_state = 51}, + [1341] = {.lex_state = 0}, [1342] = {.lex_state = 51}, - [1343] = {.lex_state = 0, .external_lex_state = 6}, - [1344] = {.lex_state = 0, .external_lex_state = 6}, + [1343] = {.lex_state = 0}, + [1344] = {.lex_state = 51}, [1345] = {.lex_state = 0}, - [1346] = {.lex_state = 51}, - [1347] = {.lex_state = 51}, - [1348] = {.lex_state = 0, .external_lex_state = 6}, - [1349] = {.lex_state = 51}, - [1350] = {.lex_state = 51}, + [1346] = {.lex_state = 0}, + [1347] = {.lex_state = 0}, + [1348] = {.lex_state = 0}, + [1349] = {.lex_state = 0}, + [1350] = {.lex_state = 0, .external_lex_state = 6}, [1351] = {.lex_state = 51}, [1352] = {.lex_state = 51}, [1353] = {.lex_state = 0, .external_lex_state = 6}, [1354] = {.lex_state = 0, .external_lex_state = 6}, - [1355] = {.lex_state = 0, .external_lex_state = 6}, - [1356] = {.lex_state = 0}, - [1357] = {.lex_state = 0, .external_lex_state = 6}, - [1358] = {.lex_state = 0, .external_lex_state = 6}, - [1359] = {.lex_state = 0, .external_lex_state = 6}, + [1355] = {.lex_state = 51}, + [1356] = {.lex_state = 51}, + [1357] = {.lex_state = 51}, + [1358] = {.lex_state = 0}, + [1359] = {.lex_state = 0}, [1360] = {.lex_state = 0, .external_lex_state = 6}, - [1361] = {.lex_state = 51}, - [1362] = {.lex_state = 16}, - [1363] = {.lex_state = 0}, + [1361] = {.lex_state = 0}, + [1362] = {.lex_state = 0}, + [1363] = {.lex_state = 0, .external_lex_state = 6}, [1364] = {.lex_state = 51}, [1365] = {.lex_state = 0, .external_lex_state = 6}, - [1366] = {.lex_state = 0}, + [1366] = {.lex_state = 0, .external_lex_state = 6}, [1367] = {.lex_state = 0}, - [1368] = {.lex_state = 0, .external_lex_state = 6}, + [1368] = {.lex_state = 0}, [1369] = {.lex_state = 0}, - [1370] = {.lex_state = 0}, + [1370] = {.lex_state = 0, .external_lex_state = 6}, [1371] = {.lex_state = 0}, - [1372] = {.lex_state = 0}, - [1373] = {.lex_state = 0, .external_lex_state = 6}, - [1374] = {.lex_state = 0}, + [1372] = {.lex_state = 0, .external_lex_state = 6}, + [1373] = {.lex_state = 0}, + [1374] = {.lex_state = 16}, [1375] = {.lex_state = 0}, [1376] = {.lex_state = 0}, [1377] = {.lex_state = 0}, [1378] = {.lex_state = 0}, - [1379] = {.lex_state = 51}, - [1380] = {.lex_state = 10}, - [1381] = {.lex_state = 0}, + [1379] = {.lex_state = 0}, + [1380] = {.lex_state = 51}, + [1381] = {.lex_state = 0, .external_lex_state = 6}, [1382] = {.lex_state = 0}, - [1383] = {.lex_state = 0}, + [1383] = {.lex_state = 51}, [1384] = {.lex_state = 0}, - [1385] = {.lex_state = 51}, - [1386] = {.lex_state = 0}, + [1385] = {.lex_state = 0}, + [1386] = {.lex_state = 51}, [1387] = {.lex_state = 0}, - [1388] = {.lex_state = 0}, - [1389] = {.lex_state = 0}, - [1390] = {.lex_state = 51}, - [1391] = {.lex_state = 51}, - [1392] = {.lex_state = 0}, - [1393] = {.lex_state = 0, .external_lex_state = 6}, - [1394] = {.lex_state = 51}, + [1388] = {.lex_state = 0, .external_lex_state = 6}, + [1389] = {.lex_state = 51}, + [1390] = {.lex_state = 0}, + [1391] = {.lex_state = 0, .external_lex_state = 6}, + [1392] = {.lex_state = 0, .external_lex_state = 6}, + [1393] = {.lex_state = 0}, + [1394] = {.lex_state = 0}, [1395] = {.lex_state = 0}, [1396] = {.lex_state = 0}, [1397] = {.lex_state = 0}, [1398] = {.lex_state = 0}, [1399] = {.lex_state = 0}, [1400] = {.lex_state = 0}, - [1401] = {.lex_state = 0}, + [1401] = {.lex_state = 14}, [1402] = {.lex_state = 0}, [1403] = {.lex_state = 0}, - [1404] = {.lex_state = 0, .external_lex_state = 6}, + [1404] = {.lex_state = 0}, [1405] = {.lex_state = 0}, - [1406] = {.lex_state = 0, .external_lex_state = 6}, + [1406] = {.lex_state = 0}, [1407] = {.lex_state = 0}, - [1408] = {.lex_state = 0}, + [1408] = {.lex_state = 16}, [1409] = {.lex_state = 0}, - [1410] = {.lex_state = 0}, + [1410] = {.lex_state = 51}, [1411] = {.lex_state = 0}, [1412] = {.lex_state = 0}, [1413] = {.lex_state = 0}, - [1414] = {.lex_state = 0}, + [1414] = {.lex_state = 10}, [1415] = {.lex_state = 0}, [1416] = {.lex_state = 0}, [1417] = {.lex_state = 0}, [1418] = {.lex_state = 0}, - [1419] = {.lex_state = 14}, - [1420] = {.lex_state = 0, .external_lex_state = 6}, - [1421] = {.lex_state = 0, .external_lex_state = 6}, + [1419] = {.lex_state = 0}, + [1420] = {.lex_state = 0}, + [1421] = {.lex_state = 0}, [1422] = {.lex_state = 0}, [1423] = {.lex_state = 0}, [1424] = {.lex_state = 0}, - [1425] = {.lex_state = 0}, + [1425] = {.lex_state = 14}, [1426] = {.lex_state = 0}, [1427] = {.lex_state = 0}, [1428] = {.lex_state = 0}, - [1429] = {.lex_state = 0}, + [1429] = {.lex_state = 0, .external_lex_state = 6}, [1430] = {.lex_state = 0}, [1431] = {.lex_state = 0}, [1432] = {.lex_state = 0}, [1433] = {.lex_state = 0}, - [1434] = {.lex_state = 51}, + [1434] = {.lex_state = 0}, [1435] = {.lex_state = 0}, [1436] = {.lex_state = 0}, [1437] = {.lex_state = 0}, @@ -7844,241 +7889,241 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1439] = {.lex_state = 0}, [1440] = {.lex_state = 0}, [1441] = {.lex_state = 0}, - [1442] = {.lex_state = 51}, - [1443] = {.lex_state = 0}, - [1444] = {.lex_state = 51}, - [1445] = {.lex_state = 51}, - [1446] = {.lex_state = 51}, - [1447] = {.lex_state = 51}, + [1442] = {.lex_state = 0}, + [1443] = {.lex_state = 51}, + [1444] = {.lex_state = 0}, + [1445] = {.lex_state = 0}, + [1446] = {.lex_state = 10}, + [1447] = {.lex_state = 0}, [1448] = {.lex_state = 0}, [1449] = {.lex_state = 0}, - [1450] = {.lex_state = 0}, - [1451] = {.lex_state = 0}, - [1452] = {.lex_state = 51}, + [1450] = {.lex_state = 14}, + [1451] = {.lex_state = 0, .external_lex_state = 6}, + [1452] = {.lex_state = 0}, [1453] = {.lex_state = 51}, - [1454] = {.lex_state = 0}, - [1455] = {.lex_state = 10}, - [1456] = {.lex_state = 51}, - [1457] = {.lex_state = 14}, - [1458] = {.lex_state = 14}, + [1454] = {.lex_state = 51}, + [1455] = {.lex_state = 0}, + [1456] = {.lex_state = 0}, + [1457] = {.lex_state = 0}, + [1458] = {.lex_state = 0, .external_lex_state = 6}, [1459] = {.lex_state = 0}, [1460] = {.lex_state = 0}, [1461] = {.lex_state = 0}, [1462] = {.lex_state = 0}, - [1463] = {.lex_state = 0, .external_lex_state = 6}, - [1464] = {.lex_state = 51}, - [1465] = {.lex_state = 51}, + [1463] = {.lex_state = 51}, + [1464] = {.lex_state = 10}, + [1465] = {.lex_state = 0, .external_lex_state = 6}, [1466] = {.lex_state = 0}, - [1467] = {.lex_state = 0}, + [1467] = {.lex_state = 51}, [1468] = {.lex_state = 0}, [1469] = {.lex_state = 0}, - [1470] = {.lex_state = 0, .external_lex_state = 6}, - [1471] = {.lex_state = 51}, + [1470] = {.lex_state = 51}, + [1471] = {.lex_state = 0}, [1472] = {.lex_state = 0}, [1473] = {.lex_state = 0}, [1474] = {.lex_state = 0}, - [1475] = {.lex_state = 0, .external_lex_state = 6}, - [1476] = {.lex_state = 0}, - [1477] = {.lex_state = 0}, - [1478] = {.lex_state = 16}, - [1479] = {.lex_state = 51}, + [1475] = {.lex_state = 0}, + [1476] = {.lex_state = 10}, + [1477] = {.lex_state = 51}, + [1478] = {.lex_state = 0}, + [1479] = {.lex_state = 0}, [1480] = {.lex_state = 0}, - [1481] = {.lex_state = 0}, - [1482] = {.lex_state = 10}, + [1481] = {.lex_state = 51}, + [1482] = {.lex_state = 0}, [1483] = {.lex_state = 0}, [1484] = {.lex_state = 0}, [1485] = {.lex_state = 0}, - [1486] = {.lex_state = 0, .external_lex_state = 6}, + [1486] = {.lex_state = 51}, [1487] = {.lex_state = 0}, - [1488] = {.lex_state = 0}, + [1488] = {.lex_state = 51}, [1489] = {.lex_state = 0}, [1490] = {.lex_state = 0}, - [1491] = {.lex_state = 0}, - [1492] = {.lex_state = 0}, - [1493] = {.lex_state = 51}, - [1494] = {.lex_state = 14}, - [1495] = {.lex_state = 0}, - [1496] = {.lex_state = 0}, - [1497] = {.lex_state = 10}, + [1491] = {.lex_state = 51}, + [1492] = {.lex_state = 10}, + [1493] = {.lex_state = 0}, + [1494] = {.lex_state = 0, .external_lex_state = 6}, + [1495] = {.lex_state = 51}, + [1496] = {.lex_state = 14}, + [1497] = {.lex_state = 0}, [1498] = {.lex_state = 0}, [1499] = {.lex_state = 0}, - [1500] = {.lex_state = 0}, - [1501] = {.lex_state = 51}, - [1502] = {.lex_state = 10}, - [1503] = {.lex_state = 0}, - [1504] = {.lex_state = 0}, + [1500] = {.lex_state = 51}, + [1501] = {.lex_state = 0}, + [1502] = {.lex_state = 0}, + [1503] = {.lex_state = 51}, + [1504] = {.lex_state = 51}, [1505] = {.lex_state = 0}, - [1506] = {.lex_state = 51}, - [1507] = {.lex_state = 0, .external_lex_state = 6}, + [1506] = {.lex_state = 0}, + [1507] = {.lex_state = 0}, [1508] = {.lex_state = 0}, [1509] = {.lex_state = 0}, - [1510] = {.lex_state = 0}, - [1511] = {.lex_state = 17}, + [1510] = {.lex_state = 51}, + [1511] = {.lex_state = 0}, [1512] = {.lex_state = 0}, - [1513] = {.lex_state = 17}, - [1514] = {.lex_state = 0, .external_lex_state = 6}, + [1513] = {.lex_state = 0, .external_lex_state = 6}, + [1514] = {.lex_state = 0}, [1515] = {.lex_state = 0}, - [1516] = {.lex_state = 0}, + [1516] = {.lex_state = 0, .external_lex_state = 6}, [1517] = {.lex_state = 0, .external_lex_state = 6}, - [1518] = {.lex_state = 0, .external_lex_state = 6}, + [1518] = {.lex_state = 0}, [1519] = {.lex_state = 0}, - [1520] = {.lex_state = 51}, - [1521] = {.lex_state = 0}, - [1522] = {.lex_state = 0}, - [1523] = {.lex_state = 0, .external_lex_state = 6}, + [1520] = {.lex_state = 0}, + [1521] = {.lex_state = 0, .external_lex_state = 6}, + [1522] = {.lex_state = 0, .external_lex_state = 6}, + [1523] = {.lex_state = 0}, [1524] = {.lex_state = 0}, - [1525] = {.lex_state = 0, .external_lex_state = 6}, - [1526] = {.lex_state = 0}, - [1527] = {.lex_state = 0, .external_lex_state = 6}, + [1525] = {.lex_state = 17}, + [1526] = {.lex_state = 0, .external_lex_state = 6}, + [1527] = {.lex_state = 0}, [1528] = {.lex_state = 0, .external_lex_state = 6}, [1529] = {.lex_state = 0}, [1530] = {.lex_state = 0, .external_lex_state = 6}, - [1531] = {.lex_state = 0, .external_lex_state = 6}, - [1532] = {.lex_state = 0, .external_lex_state = 6}, + [1531] = {.lex_state = 17}, + [1532] = {.lex_state = 0}, [1533] = {.lex_state = 0, .external_lex_state = 6}, - [1534] = {.lex_state = 0}, + [1534] = {.lex_state = 0, .external_lex_state = 6}, [1535] = {.lex_state = 0, .external_lex_state = 6}, [1536] = {.lex_state = 0}, - [1537] = {.lex_state = 0, .external_lex_state = 6}, + [1537] = {.lex_state = 0}, [1538] = {.lex_state = 0}, [1539] = {.lex_state = 17}, [1540] = {.lex_state = 0}, - [1541] = {.lex_state = 17}, + [1541] = {.lex_state = 0}, [1542] = {.lex_state = 0}, [1543] = {.lex_state = 17}, [1544] = {.lex_state = 0}, - [1545] = {.lex_state = 0}, + [1545] = {.lex_state = 17}, [1546] = {.lex_state = 17}, [1547] = {.lex_state = 17}, [1548] = {.lex_state = 51}, [1549] = {.lex_state = 0}, [1550] = {.lex_state = 51}, - [1551] = {.lex_state = 0, .external_lex_state = 6}, - [1552] = {.lex_state = 51}, + [1551] = {.lex_state = 0}, + [1552] = {.lex_state = 0, .external_lex_state = 6}, [1553] = {.lex_state = 0}, - [1554] = {.lex_state = 17}, - [1555] = {.lex_state = 0}, - [1556] = {.lex_state = 0}, + [1554] = {.lex_state = 0}, + [1555] = {.lex_state = 51}, + [1556] = {.lex_state = 17}, [1557] = {.lex_state = 0}, - [1558] = {.lex_state = 0}, - [1559] = {.lex_state = 0}, + [1558] = {.lex_state = 16}, + [1559] = {.lex_state = 0, .external_lex_state = 6}, [1560] = {.lex_state = 0}, [1561] = {.lex_state = 0}, - [1562] = {.lex_state = 16}, - [1563] = {.lex_state = 0}, + [1562] = {.lex_state = 51}, + [1563] = {.lex_state = 0, .external_lex_state = 6}, [1564] = {.lex_state = 0}, - [1565] = {.lex_state = 51}, - [1566] = {.lex_state = 0}, + [1565] = {.lex_state = 0}, + [1566] = {.lex_state = 0, .external_lex_state = 6}, [1567] = {.lex_state = 0}, - [1568] = {.lex_state = 0, .external_lex_state = 6}, + [1568] = {.lex_state = 0}, [1569] = {.lex_state = 0}, - [1570] = {.lex_state = 0}, - [1571] = {.lex_state = 17}, + [1570] = {.lex_state = 0, .external_lex_state = 6}, + [1571] = {.lex_state = 0, .external_lex_state = 6}, [1572] = {.lex_state = 0, .external_lex_state = 6}, - [1573] = {.lex_state = 0}, - [1574] = {.lex_state = 0}, + [1573] = {.lex_state = 0, .external_lex_state = 6}, + [1574] = {.lex_state = 51}, [1575] = {.lex_state = 0}, [1576] = {.lex_state = 0}, - [1577] = {.lex_state = 0}, - [1578] = {.lex_state = 0}, - [1579] = {.lex_state = 0, .external_lex_state = 6}, + [1577] = {.lex_state = 0, .external_lex_state = 6}, + [1578] = {.lex_state = 0, .external_lex_state = 6}, + [1579] = {.lex_state = 0}, [1580] = {.lex_state = 0}, [1581] = {.lex_state = 0}, - [1582] = {.lex_state = 17}, - [1583] = {.lex_state = 51}, + [1582] = {.lex_state = 0}, + [1583] = {.lex_state = 0}, [1584] = {.lex_state = 0}, [1585] = {.lex_state = 0}, [1586] = {.lex_state = 0}, - [1587] = {.lex_state = 0}, - [1588] = {.lex_state = 51}, - [1589] = {.lex_state = 51}, - [1590] = {.lex_state = 51}, + [1587] = {.lex_state = 17}, + [1588] = {.lex_state = 0, .external_lex_state = 6}, + [1589] = {.lex_state = 0}, + [1590] = {.lex_state = 17}, [1591] = {.lex_state = 0}, - [1592] = {.lex_state = 0}, - [1593] = {.lex_state = 51}, + [1592] = {.lex_state = 51}, + [1593] = {.lex_state = 0}, [1594] = {.lex_state = 0}, [1595] = {.lex_state = 0}, [1596] = {.lex_state = 0}, - [1597] = {.lex_state = 51}, - [1598] = {.lex_state = 51}, - [1599] = {.lex_state = 0}, - [1600] = {.lex_state = 0}, - [1601] = {.lex_state = 51}, - [1602] = {.lex_state = 0}, - [1603] = {.lex_state = 51}, - [1604] = {.lex_state = 51}, - [1605] = {.lex_state = 0}, + [1597] = {.lex_state = 0}, + [1598] = {.lex_state = 0}, + [1599] = {.lex_state = 51}, + [1600] = {.lex_state = 51}, + [1601] = {.lex_state = 0}, + [1602] = {.lex_state = 51}, + [1603] = {.lex_state = 0}, + [1604] = {.lex_state = 0}, + [1605] = {.lex_state = 51}, [1606] = {.lex_state = 51}, [1607] = {.lex_state = 51}, - [1608] = {.lex_state = 51}, + [1608] = {.lex_state = 0}, [1609] = {.lex_state = 51}, - [1610] = {.lex_state = 51}, - [1611] = {.lex_state = 0}, + [1610] = {.lex_state = 0}, + [1611] = {.lex_state = 51}, [1612] = {.lex_state = 0}, [1613] = {.lex_state = 0}, - [1614] = {.lex_state = 0}, + [1614] = {.lex_state = 51}, [1615] = {.lex_state = 0}, - [1616] = {.lex_state = 51}, + [1616] = {.lex_state = 0}, [1617] = {.lex_state = 51}, - [1618] = {.lex_state = 51}, - [1619] = {.lex_state = 0}, + [1618] = {.lex_state = 0}, + [1619] = {.lex_state = 51}, [1620] = {.lex_state = 51}, [1621] = {.lex_state = 51}, [1622] = {.lex_state = 51}, [1623] = {.lex_state = 0}, [1624] = {.lex_state = 0}, - [1625] = {.lex_state = 51}, + [1625] = {.lex_state = 0}, [1626] = {.lex_state = 0}, - [1627] = {.lex_state = 0}, - [1628] = {.lex_state = 0}, - [1629] = {.lex_state = 0}, - [1630] = {.lex_state = 51}, + [1627] = {.lex_state = 51}, + [1628] = {.lex_state = 51}, + [1629] = {.lex_state = 51}, + [1630] = {.lex_state = 0}, [1631] = {.lex_state = 0}, - [1632] = {.lex_state = 0}, - [1633] = {.lex_state = 0}, - [1634] = {.lex_state = 0}, + [1632] = {.lex_state = 51}, + [1633] = {.lex_state = 51}, + [1634] = {.lex_state = 51}, [1635] = {.lex_state = 0}, [1636] = {.lex_state = 0}, - [1637] = {.lex_state = 51}, + [1637] = {.lex_state = 0}, [1638] = {.lex_state = 0}, - [1639] = {.lex_state = 51}, - [1640] = {.lex_state = 51}, + [1639] = {.lex_state = 0}, + [1640] = {.lex_state = 0}, [1641] = {.lex_state = 0}, [1642] = {.lex_state = 51}, [1643] = {.lex_state = 0}, - [1644] = {.lex_state = 0}, - [1645] = {.lex_state = 0}, - [1646] = {.lex_state = 51}, - [1647] = {.lex_state = 0}, + [1644] = {.lex_state = 51}, + [1645] = {.lex_state = 51}, + [1646] = {.lex_state = 0}, + [1647] = {.lex_state = 51}, [1648] = {.lex_state = 0}, - [1649] = {.lex_state = 0}, + [1649] = {.lex_state = 51}, [1650] = {.lex_state = 0}, - [1651] = {.lex_state = 0}, + [1651] = {.lex_state = 51}, [1652] = {.lex_state = 0}, - [1653] = {.lex_state = 0}, - [1654] = {.lex_state = 0}, + [1653] = {.lex_state = 51}, + [1654] = {.lex_state = 51}, [1655] = {.lex_state = 0}, [1656] = {.lex_state = 0}, [1657] = {.lex_state = 0}, - [1658] = {.lex_state = 0}, + [1658] = {.lex_state = 51}, [1659] = {.lex_state = 0}, - [1660] = {.lex_state = 0}, + [1660] = {.lex_state = 51}, [1661] = {.lex_state = 0}, [1662] = {.lex_state = 0}, [1663] = {.lex_state = 0}, [1664] = {.lex_state = 0}, [1665] = {.lex_state = 0}, - [1666] = {.lex_state = 51}, + [1666] = {.lex_state = 0}, [1667] = {.lex_state = 0}, - [1668] = {.lex_state = 51}, + [1668] = {.lex_state = 0}, [1669] = {.lex_state = 0}, - [1670] = {.lex_state = 51}, + [1670] = {.lex_state = 0}, [1671] = {.lex_state = 0}, [1672] = {.lex_state = 0}, - [1673] = {.lex_state = 51}, + [1673] = {.lex_state = 0}, [1674] = {.lex_state = 0}, [1675] = {.lex_state = 0}, - [1676] = {.lex_state = 51}, + [1676] = {.lex_state = 0}, [1677] = {.lex_state = 0}, [1678] = {.lex_state = 0}, [1679] = {.lex_state = 0}, @@ -8091,7 +8136,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1686] = {.lex_state = 0}, [1687] = {.lex_state = 0}, [1688] = {.lex_state = 51}, - [1689] = {.lex_state = 51}, + [1689] = {.lex_state = 0}, [1690] = {.lex_state = 51}, [1691] = {.lex_state = 0}, [1692] = {.lex_state = 0}, @@ -8099,21 +8144,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1694] = {.lex_state = 0}, [1695] = {.lex_state = 0}, [1696] = {.lex_state = 0}, - [1697] = {.lex_state = 51}, + [1697] = {.lex_state = 0}, [1698] = {.lex_state = 0}, - [1699] = {.lex_state = 0}, + [1699] = {.lex_state = 51}, [1700] = {.lex_state = 0}, [1701] = {.lex_state = 0}, [1702] = {.lex_state = 0}, - [1703] = {.lex_state = 0}, + [1703] = {.lex_state = 51}, [1704] = {.lex_state = 0}, - [1705] = {.lex_state = 0}, - [1706] = {.lex_state = 0}, - [1707] = {.lex_state = 0}, + [1705] = {.lex_state = 51}, + [1706] = {.lex_state = 51}, + [1707] = {.lex_state = 51}, [1708] = {.lex_state = 0}, [1709] = {.lex_state = 0}, [1710] = {.lex_state = 51}, - [1711] = {.lex_state = 51}, + [1711] = {.lex_state = 0}, [1712] = {.lex_state = 51}, [1713] = {.lex_state = 0}, [1714] = {.lex_state = 0}, @@ -8122,15 +8167,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1717] = {.lex_state = 0}, [1718] = {.lex_state = 0}, [1719] = {.lex_state = 0}, - [1720] = {.lex_state = 0}, + [1720] = {.lex_state = 51}, [1721] = {.lex_state = 0}, - [1722] = {.lex_state = 51}, + [1722] = {.lex_state = 0}, + [1723] = {.lex_state = 0}, + [1724] = {.lex_state = 0}, + [1725] = {.lex_state = 0}, + [1726] = {.lex_state = 0}, + [1727] = {.lex_state = 0}, + [1728] = {.lex_state = 0}, + [1729] = {.lex_state = 0}, + [1730] = {.lex_state = 0}, + [1731] = {.lex_state = 0}, + [1732] = {.lex_state = 0}, + [1733] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(0)] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), + [anon_sym_lazy] = ACTIONS(1), [anon_sym_import] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [anon_sym_from] = ACTIONS(1), @@ -8236,22 +8293,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(1), }, [STATE(1)] = { - [sym_module] = STATE(1655), + [sym_module] = STATE(1610), [sym__statement] = STATE(62), [sym__simple_statements] = STATE(62), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), [sym_if_statement] = STATE(62), [sym_for_statement] = STATE(62), [sym_while_statement] = STATE(62), @@ -8259,219 +8316,340 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(62), [sym_match_statement] = STATE(62), [sym_function_definition] = STATE(62), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), [sym_class_definition] = STATE(62), [sym_decorated_definition] = STATE(62), - [sym_decorator] = STATE(1118), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_decorator] = STATE(1128), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [aux_sym_module_repeat1] = STATE(62), - [aux_sym_decorated_definition_repeat1] = STATE(1118), + [aux_sym_decorated_definition_repeat1] = STATE(1128), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_async] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), - [anon_sym_while] = ACTIONS(39), - [anon_sym_try] = ACTIONS(41), - [anon_sym_with] = ACTIONS(43), - [anon_sym_match] = ACTIONS(45), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(55), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(65), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_async] = ACTIONS(37), + [anon_sym_for] = ACTIONS(39), + [anon_sym_while] = ACTIONS(41), + [anon_sym_try] = ACTIONS(43), + [anon_sym_with] = ACTIONS(45), + [anon_sym_match] = ACTIONS(47), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(57), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(67), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(2)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(327), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(330), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(3)] = { + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(1213), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(107), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(4)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), @@ -8480,7 +8658,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), @@ -8494,3286 +8672,3195 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(1181), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(312), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(4)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(322), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(5)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(490), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(474), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(6)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(540), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(609), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(7)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(547), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(514), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(8)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(605), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(552), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(9)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(519), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(572), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(10)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(522), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(575), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(11)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(524), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(577), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(12)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(526), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(580), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(13)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(484), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(473), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(14)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(456), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(448), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(15)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(529), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(586), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(16)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(532), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(591), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(17)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(533), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(592), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(18)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(498), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(507), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(19)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(476), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(462), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(20)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(538), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(595), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(21)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(455), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(445), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(22)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(499), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(505), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(23)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(542), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(597), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(24)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(471), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(467), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(25)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(545), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(601), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(26)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(457), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(456), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(27)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(501), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(498), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(28)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(548), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(604), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(29)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(448), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(605), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(30)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(449), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(438), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(31)] = { [sym__statement] = STATE(61), @@ -11784,7 +11871,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), @@ -11798,3288 +11885,3435 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(1173), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(439), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(32)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(477), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(475), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(33)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(563), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(524), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(34)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(565), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(529), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(35)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(570), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(535), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(36)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(576), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(537), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(37)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(578), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(539), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(38)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(580), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(541), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(39)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(583), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(483), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(40)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(469), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(446), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(41)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(438), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(545), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(42)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(586), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(511), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(43)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(590), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(549), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(44)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(591), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(491), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(45)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(492), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(470), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(46)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(466), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(554), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(47)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(594), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(455), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(48)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(441), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(488), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(49)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(505), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(558), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(50)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(598), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(481), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(51)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(486), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(561), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(52)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(601), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(435), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(53)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(443), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(506), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(54)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(507), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(564), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(55)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(603), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(565), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(56)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(604), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(441), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(57)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(446), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(443), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(58)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(447), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(1175), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(107), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(59)] = { + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1127), + [sym_block] = STATE(522), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(60)] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), [sym_import_statement] = STATE(1332), @@ -15088,7 +15322,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), @@ -15102,5949 +15336,2852 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(549), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_decorator] = STATE(1127), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(60)] = { - [sym__statement] = STATE(60), - [sym__simple_statements] = STATE(60), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_if_statement] = STATE(60), - [sym_for_statement] = STATE(60), - [sym_while_statement] = STATE(60), - [sym_try_statement] = STATE(60), - [sym_with_statement] = STATE(60), - [sym_match_statement] = STATE(60), - [sym_function_definition] = STATE(60), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_class_definition] = STATE(60), - [sym_decorated_definition] = STATE(60), - [sym_decorator] = STATE(1118), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(60), - [aux_sym_decorated_definition_repeat1] = STATE(1118), - [ts_builtin_sym_end] = ACTIONS(109), - [sym_identifier] = ACTIONS(111), - [anon_sym_import] = ACTIONS(114), - [anon_sym_from] = ACTIONS(117), - [anon_sym_LPAREN] = ACTIONS(120), - [anon_sym_STAR] = ACTIONS(123), - [anon_sym_print] = ACTIONS(126), - [anon_sym_assert] = ACTIONS(129), - [anon_sym_return] = ACTIONS(132), - [anon_sym_del] = ACTIONS(135), - [anon_sym_raise] = ACTIONS(138), - [anon_sym_pass] = ACTIONS(141), - [anon_sym_break] = ACTIONS(144), - [anon_sym_continue] = ACTIONS(147), - [anon_sym_if] = ACTIONS(150), - [anon_sym_async] = ACTIONS(153), - [anon_sym_for] = ACTIONS(156), - [anon_sym_while] = ACTIONS(159), - [anon_sym_try] = ACTIONS(162), - [anon_sym_with] = ACTIONS(165), - [anon_sym_match] = ACTIONS(168), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_LBRACK] = ACTIONS(174), - [anon_sym_LBRACE] = ACTIONS(177), - [anon_sym_STAR_STAR] = ACTIONS(180), - [anon_sym_def] = ACTIONS(183), - [anon_sym_global] = ACTIONS(186), - [anon_sym_nonlocal] = ACTIONS(189), - [anon_sym_exec] = ACTIONS(192), - [anon_sym_type] = ACTIONS(195), - [anon_sym_class] = ACTIONS(198), - [anon_sym_AT] = ACTIONS(201), - [anon_sym_not] = ACTIONS(204), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_lambda] = ACTIONS(207), - [anon_sym_yield] = ACTIONS(210), - [sym_ellipsis] = ACTIONS(213), - [sym_integer] = ACTIONS(216), - [sym_float] = ACTIONS(213), - [anon_sym_await] = ACTIONS(219), - [sym_true] = ACTIONS(216), - [sym_false] = ACTIONS(216), - [sym_none] = ACTIONS(216), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(222), - [sym__template_string_start] = ACTIONS(225), + [sym__dedent] = ACTIONS(111), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(61)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1127), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1127), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(228), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(113), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(62)] = { - [sym__statement] = STATE(60), - [sym__simple_statements] = STATE(60), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_if_statement] = STATE(60), - [sym_for_statement] = STATE(60), - [sym_while_statement] = STATE(60), - [sym_try_statement] = STATE(60), - [sym_with_statement] = STATE(60), - [sym_match_statement] = STATE(60), - [sym_function_definition] = STATE(60), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_class_definition] = STATE(60), - [sym_decorated_definition] = STATE(60), - [sym_decorator] = STATE(1118), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(60), - [aux_sym_decorated_definition_repeat1] = STATE(1118), - [ts_builtin_sym_end] = ACTIONS(230), + [sym__statement] = STATE(65), + [sym__simple_statements] = STATE(65), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_if_statement] = STATE(65), + [sym_for_statement] = STATE(65), + [sym_while_statement] = STATE(65), + [sym_try_statement] = STATE(65), + [sym_with_statement] = STATE(65), + [sym_match_statement] = STATE(65), + [sym_function_definition] = STATE(65), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_class_definition] = STATE(65), + [sym_decorated_definition] = STATE(65), + [sym_decorator] = STATE(1128), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(65), + [aux_sym_decorated_definition_repeat1] = STATE(1128), + [ts_builtin_sym_end] = ACTIONS(115), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_async] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), - [anon_sym_while] = ACTIONS(39), - [anon_sym_try] = ACTIONS(41), - [anon_sym_with] = ACTIONS(43), - [anon_sym_match] = ACTIONS(45), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(55), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(65), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_async] = ACTIONS(37), + [anon_sym_for] = ACTIONS(39), + [anon_sym_while] = ACTIONS(41), + [anon_sym_try] = ACTIONS(43), + [anon_sym_with] = ACTIONS(45), + [anon_sym_match] = ACTIONS(47), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(57), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(67), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(63)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1127), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym_identifier] = ACTIONS(117), + [anon_sym_lazy] = ACTIONS(120), + [anon_sym_import] = ACTIONS(123), + [anon_sym_from] = ACTIONS(126), + [anon_sym_LPAREN] = ACTIONS(129), + [anon_sym_STAR] = ACTIONS(132), + [anon_sym_print] = ACTIONS(135), + [anon_sym_assert] = ACTIONS(138), + [anon_sym_return] = ACTIONS(141), + [anon_sym_del] = ACTIONS(144), + [anon_sym_raise] = ACTIONS(147), + [anon_sym_pass] = ACTIONS(150), + [anon_sym_break] = ACTIONS(153), + [anon_sym_continue] = ACTIONS(156), + [anon_sym_if] = ACTIONS(159), + [anon_sym_async] = ACTIONS(162), + [anon_sym_for] = ACTIONS(165), + [anon_sym_while] = ACTIONS(168), + [anon_sym_try] = ACTIONS(171), + [anon_sym_with] = ACTIONS(174), + [anon_sym_match] = ACTIONS(177), + [anon_sym_DASH] = ACTIONS(180), + [anon_sym_PLUS] = ACTIONS(180), + [anon_sym_LBRACK] = ACTIONS(183), + [anon_sym_LBRACE] = ACTIONS(186), + [anon_sym_STAR_STAR] = ACTIONS(189), + [anon_sym_def] = ACTIONS(192), + [anon_sym_global] = ACTIONS(195), + [anon_sym_nonlocal] = ACTIONS(198), + [anon_sym_exec] = ACTIONS(201), + [anon_sym_type] = ACTIONS(204), + [anon_sym_class] = ACTIONS(207), + [anon_sym_AT] = ACTIONS(210), + [anon_sym_not] = ACTIONS(213), + [anon_sym_TILDE] = ACTIONS(180), + [anon_sym_lambda] = ACTIONS(216), + [anon_sym_yield] = ACTIONS(219), + [sym_ellipsis] = ACTIONS(222), + [sym_integer] = ACTIONS(225), + [sym_float] = ACTIONS(222), + [anon_sym_await] = ACTIONS(228), + [sym_true] = ACTIONS(225), + [sym_false] = ACTIONS(225), + [sym_none] = ACTIONS(225), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(232), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(231), + [sym__string_start] = ACTIONS(233), + [sym__template_string_start] = ACTIONS(236), }, [STATE(64)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(111), - [anon_sym_import] = ACTIONS(114), - [anon_sym_from] = ACTIONS(117), - [anon_sym_LPAREN] = ACTIONS(120), - [anon_sym_STAR] = ACTIONS(123), - [anon_sym_print] = ACTIONS(126), - [anon_sym_assert] = ACTIONS(129), - [anon_sym_return] = ACTIONS(132), - [anon_sym_del] = ACTIONS(135), - [anon_sym_raise] = ACTIONS(138), - [anon_sym_pass] = ACTIONS(141), - [anon_sym_break] = ACTIONS(144), - [anon_sym_continue] = ACTIONS(147), - [anon_sym_if] = ACTIONS(234), - [anon_sym_async] = ACTIONS(237), - [anon_sym_for] = ACTIONS(240), - [anon_sym_while] = ACTIONS(243), - [anon_sym_try] = ACTIONS(246), - [anon_sym_with] = ACTIONS(249), - [anon_sym_match] = ACTIONS(252), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_LBRACK] = ACTIONS(174), - [anon_sym_LBRACE] = ACTIONS(177), - [anon_sym_STAR_STAR] = ACTIONS(180), - [anon_sym_def] = ACTIONS(255), - [anon_sym_global] = ACTIONS(186), - [anon_sym_nonlocal] = ACTIONS(189), - [anon_sym_exec] = ACTIONS(192), - [anon_sym_type] = ACTIONS(195), - [anon_sym_class] = ACTIONS(258), - [anon_sym_AT] = ACTIONS(201), - [anon_sym_not] = ACTIONS(204), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_lambda] = ACTIONS(207), - [anon_sym_yield] = ACTIONS(210), - [sym_ellipsis] = ACTIONS(213), - [sym_integer] = ACTIONS(216), - [sym_float] = ACTIONS(213), - [anon_sym_await] = ACTIONS(219), - [sym_true] = ACTIONS(216), - [sym_false] = ACTIONS(216), - [sym_none] = ACTIONS(216), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1127), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(109), - [sym__string_start] = ACTIONS(222), - [sym__template_string_start] = ACTIONS(225), + [sym__dedent] = ACTIONS(239), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(65)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym__statement] = STATE(65), + [sym__simple_statements] = STATE(65), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_if_statement] = STATE(65), + [sym_for_statement] = STATE(65), + [sym_while_statement] = STATE(65), + [sym_try_statement] = STATE(65), + [sym_with_statement] = STATE(65), + [sym_match_statement] = STATE(65), + [sym_function_definition] = STATE(65), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_class_definition] = STATE(65), + [sym_decorated_definition] = STATE(65), + [sym_decorator] = STATE(1128), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [aux_sym_module_repeat1] = STATE(65), + [aux_sym_decorated_definition_repeat1] = STATE(1128), + [ts_builtin_sym_end] = ACTIONS(231), + [sym_identifier] = ACTIONS(117), + [anon_sym_lazy] = ACTIONS(120), + [anon_sym_import] = ACTIONS(123), + [anon_sym_from] = ACTIONS(126), + [anon_sym_LPAREN] = ACTIONS(129), + [anon_sym_STAR] = ACTIONS(132), + [anon_sym_print] = ACTIONS(135), + [anon_sym_assert] = ACTIONS(138), + [anon_sym_return] = ACTIONS(141), + [anon_sym_del] = ACTIONS(144), + [anon_sym_raise] = ACTIONS(147), + [anon_sym_pass] = ACTIONS(150), + [anon_sym_break] = ACTIONS(153), + [anon_sym_continue] = ACTIONS(156), + [anon_sym_if] = ACTIONS(241), + [anon_sym_async] = ACTIONS(244), + [anon_sym_for] = ACTIONS(247), + [anon_sym_while] = ACTIONS(250), + [anon_sym_try] = ACTIONS(253), + [anon_sym_with] = ACTIONS(256), + [anon_sym_match] = ACTIONS(259), + [anon_sym_DASH] = ACTIONS(180), + [anon_sym_PLUS] = ACTIONS(180), + [anon_sym_LBRACK] = ACTIONS(183), + [anon_sym_LBRACE] = ACTIONS(186), + [anon_sym_STAR_STAR] = ACTIONS(189), + [anon_sym_def] = ACTIONS(262), + [anon_sym_global] = ACTIONS(195), + [anon_sym_nonlocal] = ACTIONS(198), + [anon_sym_exec] = ACTIONS(201), + [anon_sym_type] = ACTIONS(204), + [anon_sym_class] = ACTIONS(265), + [anon_sym_AT] = ACTIONS(210), + [anon_sym_not] = ACTIONS(213), + [anon_sym_TILDE] = ACTIONS(180), + [anon_sym_lambda] = ACTIONS(216), + [anon_sym_yield] = ACTIONS(219), + [sym_ellipsis] = ACTIONS(222), + [sym_integer] = ACTIONS(225), + [sym_float] = ACTIONS(222), + [anon_sym_await] = ACTIONS(228), + [sym_true] = ACTIONS(225), + [sym_false] = ACTIONS(225), + [sym_none] = ACTIONS(225), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(261), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(233), + [sym__template_string_start] = ACTIONS(236), }, [STATE(66)] = { - [sym_named_expression] = STATE(1031), - [sym_list_splat] = STATE(1510), - [sym_dictionary_splat] = STATE(1510), - [sym_expression_list] = STATE(1590), - [sym_expression] = STATE(1254), + [sym_named_expression] = STATE(1032), + [sym_list_splat] = STATE(1518), + [sym_dictionary_splat] = STATE(1518), + [sym_expression_list] = STATE(1654), + [sym_expression] = STATE(1245), [sym_primary_expression] = STATE(719), - [sym_not_operator] = STATE(1031), - [sym_boolean_operator] = STATE(1031), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_comparison_operator] = STATE(1031), - [sym_lambda] = STATE(1031), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_conditional_expression] = STATE(1031), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(263), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(267), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(273), - [anon_sym_print] = ACTIONS(276), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(276), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(276), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(282), - [anon_sym_PLUS] = ACTIONS(282), - [anon_sym_LBRACK] = ACTIONS(285), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(290), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(276), - [anon_sym_type] = ACTIONS(276), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(293), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_lambda] = ACTIONS(300), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(308), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_not_operator] = STATE(1032), + [sym_boolean_operator] = STATE(1032), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_comparison_operator] = STATE(1032), + [sym_lambda] = STATE(1032), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_conditional_expression] = STATE(1032), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(268), + [anon_sym_lazy] = ACTIONS(270), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(274), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(280), + [anon_sym_print] = ACTIONS(270), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(270), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(270), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(287), + [anon_sym_PLUS] = ACTIONS(287), + [anon_sym_LBRACK] = ACTIONS(290), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(295), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(270), + [anon_sym_type] = ACTIONS(270), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(298), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_lambda] = ACTIONS(305), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(313), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(67)] = { - [sym_named_expression] = STATE(1031), - [sym_list_splat] = STATE(1510), - [sym_dictionary_splat] = STATE(1510), - [sym_expression_list] = STATE(1676), - [sym_expression] = STATE(1230), + [sym_named_expression] = STATE(1032), + [sym_list_splat] = STATE(1518), + [sym_dictionary_splat] = STATE(1518), + [sym_expression_list] = STATE(1600), + [sym_expression] = STATE(1234), [sym_primary_expression] = STATE(719), - [sym_not_operator] = STATE(1031), - [sym_boolean_operator] = STATE(1031), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_comparison_operator] = STATE(1031), - [sym_lambda] = STATE(1031), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_conditional_expression] = STATE(1031), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(263), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(267), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(273), - [anon_sym_print] = ACTIONS(276), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(276), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(276), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(282), - [anon_sym_PLUS] = ACTIONS(282), - [anon_sym_LBRACK] = ACTIONS(285), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(290), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(276), - [anon_sym_type] = ACTIONS(276), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(293), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_lambda] = ACTIONS(300), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(308), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_not_operator] = STATE(1032), + [sym_boolean_operator] = STATE(1032), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_comparison_operator] = STATE(1032), + [sym_lambda] = STATE(1032), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_conditional_expression] = STATE(1032), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(268), + [anon_sym_lazy] = ACTIONS(270), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(274), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(280), + [anon_sym_print] = ACTIONS(270), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(270), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(270), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(287), + [anon_sym_PLUS] = ACTIONS(287), + [anon_sym_LBRACK] = ACTIONS(290), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(295), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(270), + [anon_sym_type] = ACTIONS(270), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(298), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_lambda] = ACTIONS(305), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(313), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(68)] = { - [sym_chevron] = STATE(1316), - [sym_named_expression] = STATE(1158), - [sym_expression] = STATE(1175), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(314), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(316), - [anon_sym_GT_GT] = ACTIONS(318), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(316), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(316), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(265), - [anon_sym_PLUS] = ACTIONS(265), - [anon_sym_LBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(316), - [anon_sym_type] = ACTIONS(316), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(320), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym__simple_statements] = STATE(614), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(321), + [sym__indent] = ACTIONS(323), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(69)] = { - [sym__simple_statements] = STATE(1171), - [sym_import_statement] = STATE(1373), - [sym_future_import_statement] = STATE(1373), - [sym_import_from_statement] = STATE(1373), - [sym_print_statement] = STATE(1373), - [sym_assert_statement] = STATE(1373), - [sym_expression_statement] = STATE(1373), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1373), - [sym_delete_statement] = STATE(1373), - [sym_raise_statement] = STATE(1373), - [sym_pass_statement] = STATE(1373), - [sym_break_statement] = STATE(1373), - [sym_continue_statement] = STATE(1373), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1373), - [sym_nonlocal_statement] = STATE(1373), - [sym_exec_statement] = STATE(1373), - [sym_type_alias_statement] = STATE(1373), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(567), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(324), - [sym__indent] = ACTIONS(326), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(325), + [sym__indent] = ACTIONS(327), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(70)] = { - [sym__simple_statements] = STATE(436), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(573), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(328), - [sym__indent] = ACTIONS(330), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(329), + [sym__indent] = ACTIONS(331), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(71)] = { - [sym__simple_statements] = STATE(550), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(477), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(332), - [sym__indent] = ACTIONS(334), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(333), + [sym__indent] = ACTIONS(335), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(72)] = { - [sym__simple_statements] = STATE(581), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(576), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(336), - [sym__indent] = ACTIONS(338), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(337), + [sym__indent] = ACTIONS(339), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(73)] = { - [sym__simple_statements] = STATE(442), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(325), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(340), - [sym__indent] = ACTIONS(342), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(341), + [sym__indent] = ACTIONS(343), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(74)] = { - [sym__simple_statements] = STATE(606), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(463), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(344), - [sym__indent] = ACTIONS(346), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(345), + [sym__indent] = ACTIONS(347), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(75)] = { - [sym__simple_statements] = STATE(482), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_chevron] = STATE(1370), + [sym_named_expression] = STATE(1156), + [sym_expression] = STATE(1181), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_attribute] = STATE(920), + [sym_subscript] = STATE(920), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(349), + [anon_sym_lazy] = ACTIONS(351), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(351), + [anon_sym_GT_GT] = ACTIONS(353), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(351), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(351), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(272), + [anon_sym_PLUS] = ACTIONS(272), + [anon_sym_LBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(351), + [anon_sym_type] = ACTIONS(351), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(355), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(348), - [sym__indent] = ACTIONS(350), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(76)] = { - [sym__simple_statements] = STATE(319), + [sym__simple_statements] = STATE(513), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(352), - [sym__indent] = ACTIONS(354), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(357), + [sym__indent] = ACTIONS(359), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(77)] = { - [sym__simple_statements] = STATE(489), + [sym__simple_statements] = STATE(518), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(356), - [sym__indent] = ACTIONS(358), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(361), + [sym__indent] = ACTIONS(363), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(78)] = { - [sym__simple_statements] = STATE(554), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(500), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(360), - [sym__indent] = ACTIONS(362), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(365), + [sym__indent] = ACTIONS(367), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(79)] = { - [sym__simple_statements] = STATE(557), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(465), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(364), - [sym__indent] = ACTIONS(366), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(369), + [sym__indent] = ACTIONS(371), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(80)] = { - [sym__simple_statements] = STATE(454), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(570), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(368), - [sym__indent] = ACTIONS(370), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(373), + [sym__indent] = ACTIONS(375), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(81)] = { - [sym__simple_statements] = STATE(559), + [sym__simple_statements] = STATE(523), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(372), - [sym__indent] = ACTIONS(374), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(377), + [sym__indent] = ACTIONS(379), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(82)] = { - [sym__simple_statements] = STATE(516), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(581), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(376), - [sym__indent] = ACTIONS(378), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(381), + [sym__indent] = ACTIONS(383), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(83)] = { - [sym__simple_statements] = STATE(520), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(525), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(380), - [sym__indent] = ACTIONS(382), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(385), + [sym__indent] = ACTIONS(387), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(84)] = { - [sym__simple_statements] = STATE(564), + [sym__simple_statements] = STATE(526), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(384), - [sym__indent] = ACTIONS(386), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(389), + [sym__indent] = ACTIONS(391), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(85)] = { - [sym__simple_statements] = STATE(566), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(584), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(388), - [sym__indent] = ACTIONS(390), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(393), + [sym__indent] = ACTIONS(395), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(86)] = { - [sym__simple_statements] = STATE(567), + [sym__simple_statements] = STATE(530), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(392), - [sym__indent] = ACTIONS(394), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(397), + [sym__indent] = ACTIONS(399), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(87)] = { - [sym__simple_statements] = STATE(523), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(486), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(396), - [sym__indent] = ACTIONS(398), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(401), + [sym__indent] = ACTIONS(403), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(88)] = { - [sym__simple_statements] = STATE(571), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(400), - [sym__indent] = ACTIONS(402), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(89)] = { - [sym__simple_statements] = STATE(491), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(404), - [sym__indent] = ACTIONS(406), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(90)] = { - [sym__simple_statements] = STATE(437), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(408), - [sym__indent] = ACTIONS(410), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(91)] = { - [sym__simple_statements] = STATE(573), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(412), - [sym__indent] = ACTIONS(414), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(92)] = { - [sym__simple_statements] = STATE(546), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(416), - [sym__indent] = ACTIONS(418), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(93)] = { - [sym__simple_statements] = STATE(577), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(420), - [sym__indent] = ACTIONS(422), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(94)] = { - [sym__simple_statements] = STATE(495), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(424), - [sym__indent] = ACTIONS(426), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(95)] = { - [sym__simple_statements] = STATE(579), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(428), - [sym__indent] = ACTIONS(430), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(96)] = { - [sym__simple_statements] = STATE(541), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(432), - [sym__indent] = ACTIONS(434), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(97)] = { - [sym__simple_statements] = STATE(503), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(436), - [sym__indent] = ACTIONS(438), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(98)] = { - [sym__simple_statements] = STATE(480), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(440), - [sym__indent] = ACTIONS(442), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(99)] = { - [sym__simple_statements] = STATE(312), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(444), - [sym__indent] = ACTIONS(446), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(100)] = { - [sym__simple_statements] = STATE(584), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(448), - [sym__indent] = ACTIONS(450), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(101)] = { - [sym__simple_statements] = STATE(527), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(452), - [sym__indent] = ACTIONS(454), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(102)] = { - [sym__simple_statements] = STATE(439), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(456), - [sym__indent] = ACTIONS(458), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(103)] = { - [sym__simple_statements] = STATE(485), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(460), - [sym__indent] = ACTIONS(462), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(104)] = { - [sym__simple_statements] = STATE(504), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(464), - [sym__indent] = ACTIONS(466), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(105)] = { - [sym__simple_statements] = STATE(589), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(468), - [sym__indent] = ACTIONS(470), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(106)] = { - [sym__simple_statements] = STATE(459), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(472), - [sym__indent] = ACTIONS(474), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(107)] = { - [sym__simple_statements] = STATE(488), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(476), - [sym__indent] = ACTIONS(478), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(108)] = { - [sym__simple_statements] = STATE(496), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(480), - [sym__indent] = ACTIONS(482), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(109)] = { - [sym__simple_statements] = STATE(531), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(484), - [sym__indent] = ACTIONS(486), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(110)] = { - [sym__simple_statements] = STATE(593), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(488), - [sym__indent] = ACTIONS(490), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(111)] = { - [sym__simple_statements] = STATE(608), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(492), - [sym__indent] = ACTIONS(494), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(112)] = { - [sym__simple_statements] = STATE(440), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(496), - [sym__indent] = ACTIONS(498), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(113)] = { - [sym__simple_statements] = STATE(611), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(500), - [sym__indent] = ACTIONS(502), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(114)] = { - [sym__simple_statements] = STATE(464), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(504), - [sym__indent] = ACTIONS(506), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(115)] = { - [sym__simple_statements] = STATE(506), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(508), - [sym__indent] = ACTIONS(510), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(116)] = { - [sym__simple_statements] = STATE(599), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(512), - [sym__indent] = ACTIONS(514), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(117)] = { - [sym__simple_statements] = STATE(537), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(516), - [sym__indent] = ACTIONS(518), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(118)] = { - [sym__simple_statements] = STATE(602), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(520), - [sym__indent] = ACTIONS(522), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(119)] = { [sym__simple_statements] = STATE(444), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), @@ -21052,3716 +18189,6242 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(524), - [sym__indent] = ACTIONS(526), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(405), + [sym__indent] = ACTIONS(407), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, - [STATE(120)] = { - [sym__simple_statements] = STATE(451), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(528), - [sym__indent] = ACTIONS(530), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(121)] = { - [sym__simple_statements] = STATE(613), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(532), - [sym__indent] = ACTIONS(534), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(122)] = { - [sym__simple_statements] = STATE(445), + [STATE(89)] = { + [sym__simple_statements] = STATE(532), [sym_import_statement] = STATE(1332), [sym_future_import_statement] = STATE(1332), [sym_import_from_statement] = STATE(1332), [sym_print_statement] = STATE(1332), [sym_assert_statement] = STATE(1332), [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), + [sym_named_expression] = STATE(1156), [sym_return_statement] = STATE(1332), [sym_delete_statement] = STATE(1332), [sym_raise_statement] = STATE(1332), [sym_pass_statement] = STATE(1332), [sym_break_statement] = STATE(1332), [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), [sym_global_statement] = STATE(1332), [sym_nonlocal_statement] = STATE(1332), [sym_exec_statement] = STATE(1332), [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(536), - [sym__indent] = ACTIONS(538), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(409), + [sym__indent] = ACTIONS(411), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(90)] = { + [sym__simple_statements] = STATE(536), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(413), + [sym__indent] = ACTIONS(415), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(91)] = { + [sym__simple_statements] = STATE(449), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(417), + [sym__indent] = ACTIONS(419), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(92)] = { + [sym__simple_statements] = STATE(538), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(421), + [sym__indent] = ACTIONS(423), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(93)] = { + [sym__simple_statements] = STATE(497), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(425), + [sym__indent] = ACTIONS(427), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(94)] = { + [sym__simple_statements] = STATE(472), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(429), + [sym__indent] = ACTIONS(431), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(95)] = { + [sym__simple_statements] = STATE(508), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(433), + [sym__indent] = ACTIONS(435), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(96)] = { + [sym__simple_statements] = STATE(542), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(437), + [sym__indent] = ACTIONS(439), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(97)] = { + [sym__simple_statements] = STATE(589), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(441), + [sym__indent] = ACTIONS(443), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(98)] = { + [sym__simple_statements] = STATE(603), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(445), + [sym__indent] = ACTIONS(447), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(99)] = { + [sym__simple_statements] = STATE(447), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(449), + [sym__indent] = ACTIONS(451), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(100)] = { + [sym__simple_statements] = STATE(460), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(453), + [sym__indent] = ACTIONS(455), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(101)] = { + [sym__simple_statements] = STATE(502), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(457), + [sym__indent] = ACTIONS(459), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(102)] = { + [sym__simple_statements] = STATE(547), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(461), + [sym__indent] = ACTIONS(463), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(103)] = { + [sym__simple_statements] = STATE(461), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(465), + [sym__indent] = ACTIONS(467), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(104)] = { + [sym__simple_statements] = STATE(468), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(469), + [sym__indent] = ACTIONS(471), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(105)] = { + [sym__simple_statements] = STATE(594), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(473), + [sym__indent] = ACTIONS(475), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(106)] = { + [sym__simple_statements] = STATE(553), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(477), + [sym__indent] = ACTIONS(479), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(107)] = { + [sym__simple_statements] = STATE(613), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(481), + [sym__indent] = ACTIONS(483), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(108)] = { + [sym__simple_statements] = STATE(453), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(485), + [sym__indent] = ACTIONS(487), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(109)] = { + [sym__simple_statements] = STATE(442), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(489), + [sym__indent] = ACTIONS(491), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(110)] = { + [sym__simple_statements] = STATE(495), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(493), + [sym__indent] = ACTIONS(495), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(111)] = { + [sym__simple_statements] = STATE(515), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(497), + [sym__indent] = ACTIONS(499), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(112)] = { + [sym__simple_statements] = STATE(559), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(501), + [sym__indent] = ACTIONS(503), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(113)] = { + [sym__simple_statements] = STATE(489), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(505), + [sym__indent] = ACTIONS(507), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(114)] = { + [sym__simple_statements] = STATE(517), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(509), + [sym__indent] = ACTIONS(511), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(115)] = { + [sym__simple_statements] = STATE(562), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(513), + [sym__indent] = ACTIONS(515), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(116)] = { + [sym__simple_statements] = STATE(598), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(517), + [sym__indent] = ACTIONS(519), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(117)] = { + [sym__simple_statements] = STATE(459), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(521), + [sym__indent] = ACTIONS(523), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(118)] = { + [sym__simple_statements] = STATE(331), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(525), + [sym__indent] = ACTIONS(527), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(119)] = { + [sym__simple_statements] = STATE(602), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(529), + [sym__indent] = ACTIONS(531), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(120)] = { + [sym__simple_statements] = STATE(440), + [sym_import_statement] = STATE(1332), + [sym_future_import_statement] = STATE(1332), + [sym_import_from_statement] = STATE(1332), + [sym_print_statement] = STATE(1332), + [sym_assert_statement] = STATE(1332), + [sym_expression_statement] = STATE(1332), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1332), + [sym_delete_statement] = STATE(1332), + [sym_raise_statement] = STATE(1332), + [sym_pass_statement] = STATE(1332), + [sym_break_statement] = STATE(1332), + [sym_continue_statement] = STATE(1332), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1332), + [sym_nonlocal_statement] = STATE(1332), + [sym_exec_statement] = STATE(1332), + [sym_type_alias_statement] = STATE(1332), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(533), + [sym__indent] = ACTIONS(535), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(121)] = { + [sym__simple_statements] = STATE(556), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(537), + [sym__indent] = ACTIONS(539), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(122)] = { + [sym__simple_statements] = STATE(457), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(541), + [sym__indent] = ACTIONS(543), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(123)] = { - [sym__simple_statements] = STATE(500), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(464), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(540), - [sym__indent] = ACTIONS(542), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(545), + [sym__indent] = ACTIONS(547), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(124)] = { - [sym__simple_statements] = STATE(1187), - [sym_import_statement] = STATE(1373), - [sym_future_import_statement] = STATE(1373), - [sym_import_from_statement] = STATE(1373), - [sym_print_statement] = STATE(1373), - [sym_assert_statement] = STATE(1373), - [sym_expression_statement] = STATE(1373), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1373), - [sym_delete_statement] = STATE(1373), - [sym_raise_statement] = STATE(1373), - [sym_pass_statement] = STATE(1373), - [sym_break_statement] = STATE(1373), - [sym_continue_statement] = STATE(1373), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1373), - [sym_nonlocal_statement] = STATE(1373), - [sym_exec_statement] = STATE(1373), - [sym_type_alias_statement] = STATE(1373), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(1171), + [sym_import_statement] = STATE(1299), + [sym_future_import_statement] = STATE(1299), + [sym_import_from_statement] = STATE(1299), + [sym_print_statement] = STATE(1299), + [sym_assert_statement] = STATE(1299), + [sym_expression_statement] = STATE(1299), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1299), + [sym_delete_statement] = STATE(1299), + [sym_raise_statement] = STATE(1299), + [sym_pass_statement] = STATE(1299), + [sym_break_statement] = STATE(1299), + [sym_continue_statement] = STATE(1299), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1299), + [sym_nonlocal_statement] = STATE(1299), + [sym_exec_statement] = STATE(1299), + [sym_type_alias_statement] = STATE(1299), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(544), - [sym__indent] = ACTIONS(546), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(549), + [sym__indent] = ACTIONS(551), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(125)] = { - [sym__simple_statements] = STATE(543), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(454), + [sym_import_statement] = STATE(1301), + [sym_future_import_statement] = STATE(1301), + [sym_import_from_statement] = STATE(1301), + [sym_print_statement] = STATE(1301), + [sym_assert_statement] = STATE(1301), + [sym_expression_statement] = STATE(1301), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1301), + [sym_delete_statement] = STATE(1301), + [sym_raise_statement] = STATE(1301), + [sym_pass_statement] = STATE(1301), + [sym_break_statement] = STATE(1301), + [sym_continue_statement] = STATE(1301), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1301), + [sym_nonlocal_statement] = STATE(1301), + [sym_exec_statement] = STATE(1301), + [sym_type_alias_statement] = STATE(1301), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(548), - [sym__indent] = ACTIONS(550), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(553), + [sym__indent] = ACTIONS(555), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(126)] = { - [sym__simple_statements] = STATE(481), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(1209), + [sym_import_statement] = STATE(1299), + [sym_future_import_statement] = STATE(1299), + [sym_import_from_statement] = STATE(1299), + [sym_print_statement] = STATE(1299), + [sym_assert_statement] = STATE(1299), + [sym_expression_statement] = STATE(1299), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1299), + [sym_delete_statement] = STATE(1299), + [sym_raise_statement] = STATE(1299), + [sym_pass_statement] = STATE(1299), + [sym_break_statement] = STATE(1299), + [sym_continue_statement] = STATE(1299), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1299), + [sym_nonlocal_statement] = STATE(1299), + [sym_exec_statement] = STATE(1299), + [sym_type_alias_statement] = STATE(1299), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(552), - [sym__indent] = ACTIONS(554), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(557), + [sym__indent] = ACTIONS(559), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(127)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1566), + [sym_future_import_statement] = STATE(1566), + [sym_import_from_statement] = STATE(1566), + [sym_print_statement] = STATE(1566), + [sym_assert_statement] = STATE(1566), + [sym_expression_statement] = STATE(1566), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1566), + [sym_delete_statement] = STATE(1566), + [sym_raise_statement] = STATE(1566), + [sym_pass_statement] = STATE(1566), + [sym_break_statement] = STATE(1566), + [sym_continue_statement] = STATE(1566), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1566), + [sym_nonlocal_statement] = STATE(1566), + [sym_exec_statement] = STATE(1566), + [sym_type_alias_statement] = STATE(1566), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(556), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(561), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(128)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1566), + [sym_future_import_statement] = STATE(1566), + [sym_import_from_statement] = STATE(1566), + [sym_print_statement] = STATE(1566), + [sym_assert_statement] = STATE(1566), + [sym_expression_statement] = STATE(1566), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1566), + [sym_delete_statement] = STATE(1566), + [sym_raise_statement] = STATE(1566), + [sym_pass_statement] = STATE(1566), + [sym_break_statement] = STATE(1566), + [sym_continue_statement] = STATE(1566), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1566), + [sym_nonlocal_statement] = STATE(1566), + [sym_exec_statement] = STATE(1566), + [sym_type_alias_statement] = STATE(1566), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(558), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(563), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(129)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1566), + [sym_future_import_statement] = STATE(1566), + [sym_import_from_statement] = STATE(1566), + [sym_print_statement] = STATE(1566), + [sym_assert_statement] = STATE(1566), + [sym_expression_statement] = STATE(1566), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1566), + [sym_delete_statement] = STATE(1566), + [sym_raise_statement] = STATE(1566), + [sym_pass_statement] = STATE(1566), + [sym_break_statement] = STATE(1566), + [sym_continue_statement] = STATE(1566), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1566), + [sym_nonlocal_statement] = STATE(1566), + [sym_exec_statement] = STATE(1566), + [sym_type_alias_statement] = STATE(1566), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(560), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(565), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(130)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1566), + [sym_future_import_statement] = STATE(1566), + [sym_import_from_statement] = STATE(1566), + [sym_print_statement] = STATE(1566), + [sym_assert_statement] = STATE(1566), + [sym_expression_statement] = STATE(1566), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1566), + [sym_delete_statement] = STATE(1566), + [sym_raise_statement] = STATE(1566), + [sym_pass_statement] = STATE(1566), + [sym_break_statement] = STATE(1566), + [sym_continue_statement] = STATE(1566), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1566), + [sym_nonlocal_statement] = STATE(1566), + [sym_exec_statement] = STATE(1566), + [sym_type_alias_statement] = STATE(1566), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(562), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(567), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(131)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1566), + [sym_future_import_statement] = STATE(1566), + [sym_import_from_statement] = STATE(1566), + [sym_print_statement] = STATE(1566), + [sym_assert_statement] = STATE(1566), + [sym_expression_statement] = STATE(1566), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1566), + [sym_delete_statement] = STATE(1566), + [sym_raise_statement] = STATE(1566), + [sym_pass_statement] = STATE(1566), + [sym_break_statement] = STATE(1566), + [sym_continue_statement] = STATE(1566), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1566), + [sym_nonlocal_statement] = STATE(1566), + [sym_exec_statement] = STATE(1566), + [sym_type_alias_statement] = STATE(1566), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(564), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(569), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(132)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1566), + [sym_future_import_statement] = STATE(1566), + [sym_import_from_statement] = STATE(1566), + [sym_print_statement] = STATE(1566), + [sym_assert_statement] = STATE(1566), + [sym_expression_statement] = STATE(1566), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1566), + [sym_delete_statement] = STATE(1566), + [sym_raise_statement] = STATE(1566), + [sym_pass_statement] = STATE(1566), + [sym_break_statement] = STATE(1566), + [sym_continue_statement] = STATE(1566), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1566), + [sym_nonlocal_statement] = STATE(1566), + [sym_exec_statement] = STATE(1566), + [sym_type_alias_statement] = STATE(1566), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(566), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(571), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(133)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1566), + [sym_future_import_statement] = STATE(1566), + [sym_import_from_statement] = STATE(1566), + [sym_print_statement] = STATE(1566), + [sym_assert_statement] = STATE(1566), + [sym_expression_statement] = STATE(1566), + [sym_named_expression] = STATE(1156), + [sym_return_statement] = STATE(1566), + [sym_delete_statement] = STATE(1566), + [sym_raise_statement] = STATE(1566), + [sym_pass_statement] = STATE(1566), + [sym_break_statement] = STATE(1566), + [sym_continue_statement] = STATE(1566), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_global_statement] = STATE(1566), + [sym_nonlocal_statement] = STATE(1566), + [sym_exec_statement] = STATE(1566), + [sym_type_alias_statement] = STATE(1566), + [sym_expression_list] = STATE(1522), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1176), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1522), + [sym_augmented_assignment] = STATE(1522), + [sym_pattern_list] = STATE(1026), + [sym_yield] = STATE(1522), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(134)] = { - [sym_primary_expression] = STATE(810), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(77), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(568), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(570), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(570), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(570), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(572), - [anon_sym_PLUS] = ACTIONS(572), - [anon_sym_LBRACK] = ACTIONS(574), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(570), - [anon_sym_type] = ACTIONS(570), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(576), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_primary_expression] = STATE(741), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_RPAREN] = ACTIONS(577), + [anon_sym_COMMA] = ACTIONS(577), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(580), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(582), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(584), + [anon_sym_PLUS] = ACTIONS(584), + [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_RBRACK] = ACTIONS(577), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(582), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_PLUS_EQ] = ACTIONS(588), + [anon_sym_DASH_EQ] = ACTIONS(588), + [anon_sym_STAR_EQ] = ACTIONS(588), + [anon_sym_SLASH_EQ] = ACTIONS(588), + [anon_sym_AT_EQ] = ACTIONS(588), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(588), + [anon_sym_PERCENT_EQ] = ACTIONS(588), + [anon_sym_STAR_STAR_EQ] = ACTIONS(588), + [anon_sym_GT_GT_EQ] = ACTIONS(588), + [anon_sym_LT_LT_EQ] = ACTIONS(588), + [anon_sym_AMP_EQ] = ACTIONS(588), + [anon_sym_CARET_EQ] = ACTIONS(588), + [anon_sym_PIPE_EQ] = ACTIONS(588), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(590), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(135)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(580), - [anon_sym_COMMA] = ACTIONS(580), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(585), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(587), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(589), - [anon_sym_PLUS] = ACTIONS(589), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(580), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(587), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_PLUS_EQ] = ACTIONS(593), - [anon_sym_DASH_EQ] = ACTIONS(593), - [anon_sym_STAR_EQ] = ACTIONS(593), - [anon_sym_SLASH_EQ] = ACTIONS(593), - [anon_sym_AT_EQ] = ACTIONS(593), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(593), - [anon_sym_PERCENT_EQ] = ACTIONS(593), - [anon_sym_STAR_STAR_EQ] = ACTIONS(593), - [anon_sym_GT_GT_EQ] = ACTIONS(593), - [anon_sym_LT_LT_EQ] = ACTIONS(593), - [anon_sym_AMP_EQ] = ACTIONS(593), - [anon_sym_CARET_EQ] = ACTIONS(593), - [anon_sym_PIPE_EQ] = ACTIONS(593), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(786), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_attribute] = STATE(920), + [sym_subscript] = STATE(920), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(79), + [anon_sym_lazy] = ACTIONS(592), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(594), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(592), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(592), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(592), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(596), + [anon_sym_PLUS] = ACTIONS(596), + [anon_sym_LBRACK] = ACTIONS(598), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(592), + [anon_sym_type] = ACTIONS(592), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(136)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(585), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(265), - [anon_sym_else] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(296), - [anon_sym_PLUS] = ACTIONS(296), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(741), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(580), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(272), + [anon_sym_else] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(301), + [anon_sym_PLUS] = ACTIONS(301), + [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(590), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(137)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(298), - [anon_sym_else] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(296), - [anon_sym_PLUS] = ACTIONS(296), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(741), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), + [anon_sym_else] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(301), + [anon_sym_PLUS] = ACTIONS(301), + [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(590), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(138)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(599), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(740), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(139)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(593), - [anon_sym_COMMA] = ACTIONS(593), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(593), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(587), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(589), - [anon_sym_PLUS] = ACTIONS(589), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(593), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(593), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_PLUS_EQ] = ACTIONS(593), - [anon_sym_DASH_EQ] = ACTIONS(593), - [anon_sym_STAR_EQ] = ACTIONS(593), - [anon_sym_SLASH_EQ] = ACTIONS(593), - [anon_sym_AT_EQ] = ACTIONS(593), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(593), - [anon_sym_PERCENT_EQ] = ACTIONS(593), - [anon_sym_STAR_STAR_EQ] = ACTIONS(593), - [anon_sym_GT_GT_EQ] = ACTIONS(593), - [anon_sym_LT_LT_EQ] = ACTIONS(593), - [anon_sym_AMP_EQ] = ACTIONS(593), - [anon_sym_CARET_EQ] = ACTIONS(593), - [anon_sym_PIPE_EQ] = ACTIONS(593), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(786), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_attribute] = STATE(920), + [sym_subscript] = STATE(920), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(79), + [anon_sym_lazy] = ACTIONS(592), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_from] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(594), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(592), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(592), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(592), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(598), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(592), + [anon_sym_type] = ACTIONS(592), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(140)] = { - [sym_primary_expression] = STATE(810), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(77), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_from] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(568), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(570), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(570), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(570), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(574), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(570), - [anon_sym_type] = ACTIONS(570), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(576), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_primary_expression] = STATE(800), + [sym_binary_operator] = STATE(878), + [sym_unary_operator] = STATE(878), + [sym_attribute] = STATE(878), + [sym_subscript] = STATE(878), + [sym_call] = STATE(878), + [sym_list] = STATE(878), + [sym_set] = STATE(878), + [sym_tuple] = STATE(878), + [sym_dictionary] = STATE(878), + [sym_list_comprehension] = STATE(878), + [sym_dictionary_comprehension] = STATE(878), + [sym_set_comprehension] = STATE(878), + [sym_generator_expression] = STATE(878), + [sym_parenthesized_expression] = STATE(878), + [sym_concatenated_string] = STATE(878), + [sym_string] = STATE(766), + [sym_concatenated_template_string] = STATE(878), + [sym_template_string] = STATE(776), + [sym_await] = STATE(878), + [sym_identifier] = ACTIONS(612), + [anon_sym_lazy] = ACTIONS(614), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(616), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(614), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(618), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(614), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(614), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(620), + [anon_sym_PLUS] = ACTIONS(620), + [anon_sym_LBRACK] = ACTIONS(622), + [anon_sym_LBRACE] = ACTIONS(624), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(614), + [anon_sym_type] = ACTIONS(614), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(620), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(626), + [anon_sym_COLON2] = ACTIONS(303), + [sym_type_conversion] = ACTIONS(303), + [sym_integer] = ACTIONS(612), + [sym_float] = ACTIONS(626), + [anon_sym_await] = ACTIONS(628), + [sym_true] = ACTIONS(612), + [sym_false] = ACTIONS(612), + [sym_none] = ACTIONS(612), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(630), + [sym__template_string_start] = ACTIONS(632), }, [STATE(141)] = { - [sym_primary_expression] = STATE(785), - [sym_binary_operator] = STATE(924), - [sym_unary_operator] = STATE(924), - [sym_attribute] = STATE(924), - [sym_subscript] = STATE(924), - [sym_call] = STATE(924), - [sym_list] = STATE(924), - [sym_set] = STATE(924), - [sym_tuple] = STATE(924), - [sym_dictionary] = STATE(924), - [sym_list_comprehension] = STATE(924), - [sym_dictionary_comprehension] = STATE(924), - [sym_set_comprehension] = STATE(924), - [sym_generator_expression] = STATE(924), - [sym_parenthesized_expression] = STATE(924), - [sym_concatenated_string] = STATE(924), - [sym_string] = STATE(767), - [sym_concatenated_template_string] = STATE(924), - [sym_template_string] = STATE(768), - [sym_await] = STATE(924), - [sym_identifier] = ACTIONS(607), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(609), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(611), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(613), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(611), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(611), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(615), - [anon_sym_PLUS] = ACTIONS(615), - [anon_sym_LBRACK] = ACTIONS(617), - [anon_sym_LBRACE] = ACTIONS(619), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(611), - [anon_sym_type] = ACTIONS(611), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(615), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(621), - [anon_sym_COLON2] = ACTIONS(298), - [sym_type_conversion] = ACTIONS(298), - [sym_integer] = ACTIONS(607), - [sym_float] = ACTIONS(621), - [anon_sym_await] = ACTIONS(623), - [sym_true] = ACTIONS(607), - [sym_false] = ACTIONS(607), - [sym_none] = ACTIONS(607), + [sym_primary_expression] = STATE(741), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_RPAREN] = ACTIONS(307), + [anon_sym_COMMA] = ACTIONS(307), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(307), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(285), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(584), + [anon_sym_PLUS] = ACTIONS(584), + [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_RBRACK] = ACTIONS(307), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(307), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(590), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(625), - [sym__template_string_start] = ACTIONS(627), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(142)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(302), - [anon_sym_COMMA] = ACTIONS(302), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(302), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(280), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(589), - [anon_sym_PLUS] = ACTIONS(589), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(302), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(302), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(741), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_RPAREN] = ACTIONS(588), + [anon_sym_COMMA] = ACTIONS(588), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(588), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(582), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(584), + [anon_sym_PLUS] = ACTIONS(584), + [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_RBRACK] = ACTIONS(588), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(588), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_PLUS_EQ] = ACTIONS(588), + [anon_sym_DASH_EQ] = ACTIONS(588), + [anon_sym_STAR_EQ] = ACTIONS(588), + [anon_sym_SLASH_EQ] = ACTIONS(588), + [anon_sym_AT_EQ] = ACTIONS(588), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(588), + [anon_sym_PERCENT_EQ] = ACTIONS(588), + [anon_sym_STAR_STAR_EQ] = ACTIONS(588), + [anon_sym_GT_GT_EQ] = ACTIONS(588), + [anon_sym_LT_LT_EQ] = ACTIONS(588), + [anon_sym_AMP_EQ] = ACTIONS(588), + [anon_sym_CARET_EQ] = ACTIONS(588), + [anon_sym_PIPE_EQ] = ACTIONS(588), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(590), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(143)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(740), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(144)] = { - [sym_primary_expression] = STATE(848), - [sym_binary_operator] = STATE(953), - [sym_unary_operator] = STATE(953), - [sym_attribute] = STATE(953), - [sym_subscript] = STATE(953), - [sym_call] = STATE(953), - [sym_list] = STATE(953), - [sym_set] = STATE(953), - [sym_tuple] = STATE(953), - [sym_dictionary] = STATE(953), - [sym_list_comprehension] = STATE(953), - [sym_dictionary_comprehension] = STATE(953), - [sym_set_comprehension] = STATE(953), - [sym_generator_expression] = STATE(953), - [sym_parenthesized_expression] = STATE(953), - [sym_concatenated_string] = STATE(953), - [sym_string] = STATE(794), - [sym_concatenated_template_string] = STATE(953), - [sym_template_string] = STATE(795), - [sym_await] = STATE(953), - [sym_identifier] = ACTIONS(629), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(631), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(633), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(635), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(265), - [anon_sym_async] = ACTIONS(633), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(633), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(637), - [anon_sym_PLUS] = ACTIONS(637), - [anon_sym_LBRACK] = ACTIONS(639), - [anon_sym_LBRACE] = ACTIONS(641), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(633), - [anon_sym_type] = ACTIONS(633), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(637), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(643), - [sym_integer] = ACTIONS(629), - [sym_float] = ACTIONS(643), - [anon_sym_await] = ACTIONS(645), - [sym_true] = ACTIONS(629), - [sym_false] = ACTIONS(629), - [sym_none] = ACTIONS(629), + [sym_primary_expression] = STATE(740), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(277), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(277), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(647), - [sym__template_string_start] = ACTIONS(649), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(145)] = { - [sym_primary_expression] = STATE(785), - [sym_binary_operator] = STATE(924), - [sym_unary_operator] = STATE(924), - [sym_attribute] = STATE(924), - [sym_subscript] = STATE(924), - [sym_call] = STATE(924), - [sym_list] = STATE(924), - [sym_set] = STATE(924), - [sym_tuple] = STATE(924), - [sym_dictionary] = STATE(924), - [sym_list_comprehension] = STATE(924), - [sym_dictionary_comprehension] = STATE(924), - [sym_set_comprehension] = STATE(924), - [sym_generator_expression] = STATE(924), - [sym_parenthesized_expression] = STATE(924), - [sym_concatenated_string] = STATE(924), - [sym_string] = STATE(767), - [sym_concatenated_template_string] = STATE(924), - [sym_template_string] = STATE(768), - [sym_await] = STATE(924), - [sym_identifier] = ACTIONS(607), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(609), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(611), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(611), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(611), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(615), - [anon_sym_PLUS] = ACTIONS(615), - [anon_sym_LBRACK] = ACTIONS(617), - [anon_sym_LBRACE] = ACTIONS(619), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(611), - [anon_sym_type] = ACTIONS(611), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(615), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(621), - [anon_sym_COLON2] = ACTIONS(298), - [sym_type_conversion] = ACTIONS(298), - [sym_integer] = ACTIONS(607), - [sym_float] = ACTIONS(621), - [anon_sym_await] = ACTIONS(623), - [sym_true] = ACTIONS(607), - [sym_false] = ACTIONS(607), - [sym_none] = ACTIONS(607), + [sym_primary_expression] = STATE(740), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(634), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(625), - [sym__template_string_start] = ACTIONS(627), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(146)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(599), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(651), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(835), + [sym_binary_operator] = STATE(970), + [sym_unary_operator] = STATE(970), + [sym_attribute] = STATE(970), + [sym_subscript] = STATE(970), + [sym_call] = STATE(970), + [sym_list] = STATE(970), + [sym_set] = STATE(970), + [sym_tuple] = STATE(970), + [sym_dictionary] = STATE(970), + [sym_list_comprehension] = STATE(970), + [sym_dictionary_comprehension] = STATE(970), + [sym_set_comprehension] = STATE(970), + [sym_generator_expression] = STATE(970), + [sym_parenthesized_expression] = STATE(970), + [sym_concatenated_string] = STATE(970), + [sym_string] = STATE(793), + [sym_concatenated_template_string] = STATE(970), + [sym_template_string] = STATE(794), + [sym_await] = STATE(970), + [sym_identifier] = ACTIONS(636), + [anon_sym_lazy] = ACTIONS(638), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(640), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(638), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(642), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(272), + [anon_sym_async] = ACTIONS(638), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(638), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(644), + [anon_sym_PLUS] = ACTIONS(644), + [anon_sym_LBRACK] = ACTIONS(646), + [anon_sym_LBRACE] = ACTIONS(648), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(638), + [anon_sym_type] = ACTIONS(638), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(644), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(650), + [sym_integer] = ACTIONS(636), + [sym_float] = ACTIONS(650), + [anon_sym_await] = ACTIONS(652), + [sym_true] = ACTIONS(636), + [sym_false] = ACTIONS(636), + [sym_none] = ACTIONS(636), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(654), + [sym__template_string_start] = ACTIONS(656), }, [STATE(147)] = { - [sym_primary_expression] = STATE(790), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(653), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(655), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(657), - [anon_sym_PLUS] = ACTIONS(657), - [anon_sym_LBRACK] = ACTIONS(659), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(657), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(661), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(786), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_attribute] = STATE(920), + [sym_subscript] = STATE(920), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), + [sym_identifier] = ACTIONS(79), + [anon_sym_lazy] = ACTIONS(592), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_from] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(594), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(592), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(592), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(592), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(598), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(592), + [anon_sym_type] = ACTIONS(592), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(148)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(270), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(599), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_RBRACK] = ACTIONS(270), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(784), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(658), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(660), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(662), + [anon_sym_PLUS] = ACTIONS(662), + [anon_sym_LBRACK] = ACTIONS(664), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(662), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(666), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(149)] = { - [sym_primary_expression] = STATE(810), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(77), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_from] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(568), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(570), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(570), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(570), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(574), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(570), - [anon_sym_type] = ACTIONS(570), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(576), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_primary_expression] = STATE(800), + [sym_binary_operator] = STATE(878), + [sym_unary_operator] = STATE(878), + [sym_attribute] = STATE(878), + [sym_subscript] = STATE(878), + [sym_call] = STATE(878), + [sym_list] = STATE(878), + [sym_set] = STATE(878), + [sym_tuple] = STATE(878), + [sym_dictionary] = STATE(878), + [sym_list_comprehension] = STATE(878), + [sym_dictionary_comprehension] = STATE(878), + [sym_set_comprehension] = STATE(878), + [sym_generator_expression] = STATE(878), + [sym_parenthesized_expression] = STATE(878), + [sym_concatenated_string] = STATE(878), + [sym_string] = STATE(766), + [sym_concatenated_template_string] = STATE(878), + [sym_template_string] = STATE(776), + [sym_await] = STATE(878), + [sym_identifier] = ACTIONS(612), + [anon_sym_lazy] = ACTIONS(614), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(616), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(614), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(614), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(614), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(620), + [anon_sym_PLUS] = ACTIONS(620), + [anon_sym_LBRACK] = ACTIONS(622), + [anon_sym_LBRACE] = ACTIONS(624), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(614), + [anon_sym_type] = ACTIONS(614), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(620), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(626), + [anon_sym_COLON2] = ACTIONS(303), + [sym_type_conversion] = ACTIONS(303), + [sym_integer] = ACTIONS(612), + [sym_float] = ACTIONS(626), + [anon_sym_await] = ACTIONS(628), + [sym_true] = ACTIONS(612), + [sym_false] = ACTIONS(612), + [sym_none] = ACTIONS(612), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(630), + [sym__template_string_start] = ACTIONS(632), }, [STATE(150)] = { - [sym_primary_expression] = STATE(848), - [sym_binary_operator] = STATE(953), - [sym_unary_operator] = STATE(953), - [sym_attribute] = STATE(953), - [sym_subscript] = STATE(953), - [sym_call] = STATE(953), - [sym_list] = STATE(953), - [sym_set] = STATE(953), - [sym_tuple] = STATE(953), - [sym_dictionary] = STATE(953), - [sym_list_comprehension] = STATE(953), - [sym_dictionary_comprehension] = STATE(953), - [sym_set_comprehension] = STATE(953), - [sym_generator_expression] = STATE(953), - [sym_parenthesized_expression] = STATE(953), - [sym_concatenated_string] = STATE(953), - [sym_string] = STATE(794), - [sym_concatenated_template_string] = STATE(953), - [sym_template_string] = STATE(795), - [sym_await] = STATE(953), - [sym_identifier] = ACTIONS(629), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(631), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(633), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(298), - [anon_sym_async] = ACTIONS(633), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(633), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(637), - [anon_sym_PLUS] = ACTIONS(637), - [anon_sym_LBRACK] = ACTIONS(639), - [anon_sym_LBRACE] = ACTIONS(641), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(633), - [anon_sym_type] = ACTIONS(633), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(637), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(643), - [sym_integer] = ACTIONS(629), - [sym_float] = ACTIONS(643), - [anon_sym_await] = ACTIONS(645), - [sym_true] = ACTIONS(629), - [sym_false] = ACTIONS(629), - [sym_none] = ACTIONS(629), + [sym_primary_expression] = STATE(741), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(580), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(301), + [anon_sym_PLUS] = ACTIONS(301), + [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(634), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(590), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(647), - [sym__template_string_start] = ACTIONS(649), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(151)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(585), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(296), - [anon_sym_PLUS] = ACTIONS(296), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(651), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(835), + [sym_binary_operator] = STATE(970), + [sym_unary_operator] = STATE(970), + [sym_attribute] = STATE(970), + [sym_subscript] = STATE(970), + [sym_call] = STATE(970), + [sym_list] = STATE(970), + [sym_set] = STATE(970), + [sym_tuple] = STATE(970), + [sym_dictionary] = STATE(970), + [sym_list_comprehension] = STATE(970), + [sym_dictionary_comprehension] = STATE(970), + [sym_set_comprehension] = STATE(970), + [sym_generator_expression] = STATE(970), + [sym_parenthesized_expression] = STATE(970), + [sym_concatenated_string] = STATE(970), + [sym_string] = STATE(793), + [sym_concatenated_template_string] = STATE(970), + [sym_template_string] = STATE(794), + [sym_await] = STATE(970), + [sym_identifier] = ACTIONS(636), + [anon_sym_lazy] = ACTIONS(638), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(640), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(638), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), + [anon_sym_async] = ACTIONS(638), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(638), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(644), + [anon_sym_PLUS] = ACTIONS(644), + [anon_sym_LBRACK] = ACTIONS(646), + [anon_sym_LBRACE] = ACTIONS(648), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(638), + [anon_sym_type] = ACTIONS(638), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(644), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(650), + [sym_integer] = ACTIONS(636), + [sym_float] = ACTIONS(650), + [anon_sym_await] = ACTIONS(652), + [sym_true] = ACTIONS(636), + [sym_false] = ACTIONS(636), + [sym_none] = ACTIONS(636), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(654), + [sym__template_string_start] = ACTIONS(656), }, [STATE(152)] = { - [sym_primary_expression] = STATE(790), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(653), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(298), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(657), - [anon_sym_PLUS] = ACTIONS(657), - [anon_sym_LBRACK] = ACTIONS(659), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(657), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(661), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(784), + [sym_binary_operator] = STATE(725), + [sym_unary_operator] = STATE(725), + [sym_attribute] = STATE(725), + [sym_subscript] = STATE(725), + [sym_call] = STATE(725), + [sym_list] = STATE(725), + [sym_set] = STATE(725), + [sym_tuple] = STATE(725), + [sym_dictionary] = STATE(725), + [sym_list_comprehension] = STATE(725), + [sym_dictionary_comprehension] = STATE(725), + [sym_set_comprehension] = STATE(725), + [sym_generator_expression] = STATE(725), + [sym_parenthesized_expression] = STATE(725), + [sym_concatenated_string] = STATE(725), + [sym_string] = STATE(645), + [sym_concatenated_template_string] = STATE(725), + [sym_template_string] = STATE(658), + [sym_await] = STATE(725), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(658), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), + [anon_sym_async] = ACTIONS(573), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(662), + [anon_sym_PLUS] = ACTIONS(662), + [anon_sym_LBRACK] = ACTIONS(664), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(662), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(666), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(153)] = { - [sym_named_expression] = STATE(1158), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_expression_list] = STATE(1535), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1213), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1535), - [sym_augmented_assignment] = STATE(1535), - [sym_pattern_list] = STATE(1024), - [sym__right_hand_side] = STATE(1535), - [sym_yield] = STATE(1535), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_named_expression] = STATE(1156), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_expression_list] = STATE(1570), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1179), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1570), + [sym_augmented_assignment] = STATE(1570), + [sym_pattern_list] = STATE(1026), + [sym__right_hand_side] = STATE(1570), + [sym_yield] = STATE(1570), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(322), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_exec] = ACTIONS(322), - [anon_sym_type] = ACTIONS(322), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(319), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(319), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_exec] = ACTIONS(319), + [anon_sym_type] = ACTIONS(319), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(154)] = { - [sym_named_expression] = STATE(1158), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_expression_list] = STATE(1518), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1213), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1518), - [sym_augmented_assignment] = STATE(1518), - [sym_pattern_list] = STATE(1024), - [sym__right_hand_side] = STATE(1518), - [sym_yield] = STATE(1518), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_named_expression] = STATE(1156), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_expression_list] = STATE(1516), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1179), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1516), + [sym_augmented_assignment] = STATE(1516), + [sym_pattern_list] = STATE(1026), + [sym__right_hand_side] = STATE(1516), + [sym_yield] = STATE(1516), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(322), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_exec] = ACTIONS(322), - [anon_sym_type] = ACTIONS(322), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(319), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(319), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_exec] = ACTIONS(319), + [anon_sym_type] = ACTIONS(319), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(155)] = { - [sym_named_expression] = STATE(1158), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_expression_list] = STATE(1530), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1213), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1530), - [sym_augmented_assignment] = STATE(1530), - [sym_pattern_list] = STATE(1024), - [sym__right_hand_side] = STATE(1530), - [sym_yield] = STATE(1530), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_named_expression] = STATE(1156), + [sym_list_splat] = STATE(1520), + [sym_dictionary_splat] = STATE(1520), + [sym_expression_list] = STATE(1526), + [sym_pattern] = STATE(1017), + [sym_tuple_pattern] = STATE(1001), + [sym_list_pattern] = STATE(1001), + [sym_list_splat_pattern] = STATE(1001), + [sym_expression] = STATE(1179), + [sym_primary_expression] = STATE(765), + [sym_not_operator] = STATE(1156), + [sym_boolean_operator] = STATE(1156), + [sym_binary_operator] = STATE(920), + [sym_unary_operator] = STATE(920), + [sym_comparison_operator] = STATE(1156), + [sym_lambda] = STATE(1156), + [sym_assignment] = STATE(1526), + [sym_augmented_assignment] = STATE(1526), + [sym_pattern_list] = STATE(1026), + [sym__right_hand_side] = STATE(1526), + [sym_yield] = STATE(1526), + [sym_attribute] = STATE(582), + [sym_subscript] = STATE(582), + [sym_call] = STATE(920), + [sym_list] = STATE(920), + [sym_set] = STATE(920), + [sym_tuple] = STATE(920), + [sym_dictionary] = STATE(920), + [sym_list_comprehension] = STATE(920), + [sym_dictionary_comprehension] = STATE(920), + [sym_set_comprehension] = STATE(920), + [sym_generator_expression] = STATE(920), + [sym_parenthesized_expression] = STATE(920), + [sym_conditional_expression] = STATE(1156), + [sym_concatenated_string] = STATE(920), + [sym_string] = STATE(775), + [sym_concatenated_template_string] = STATE(920), + [sym_template_string] = STATE(769), + [sym_await] = STATE(920), [sym_identifier] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(322), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_exec] = ACTIONS(322), - [anon_sym_type] = ACTIONS(322), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(319), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(319), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_exec] = ACTIONS(319), + [anon_sym_type] = ACTIONS(319), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 23, + [0] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(296), 1, - anon_sym_TILDE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(663), 1, + ACTIONS(668), 1, sym_identifier, - ACTIONS(665), 1, + ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(667), 1, + ACTIONS(674), 1, anon_sym_STAR, - ACTIONS(673), 1, - anon_sym_in, - ACTIONS(675), 1, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(589), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(849), 2, - sym_attribute, - sym_subscript, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(671), 15, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [110] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(689), 1, + ACTIONS(678), 1, anon_sym_RBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(697), 1, + ACTIONS(686), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1628), 1, - sym__patterns, - STATE(1633), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [232] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(296), 1, - anon_sym_TILDE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(667), 1, - anon_sym_STAR, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(701), 1, - anon_sym_in, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(589), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(849), 2, - sym_attribute, - sym_subscript, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(699), 15, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [342] = 30, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(703), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, - sym__collection_elements, - STATE(1643), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [466] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(705), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1628), 1, - sym__patterns, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [588] = 31, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(707), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1383), 1, - sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, - sym__collection_elements, - STATE(1643), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [714] = 30, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(709), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, STATE(1084), 1, sym_expression, - STATE(1356), 1, + STATE(1311), 1, sym_pattern, - STATE(1489), 1, - sym_yield, - STATE(1626), 1, - sym__collection_elements, - STATE(1643), 1, + STATE(1675), 1, sym__patterns, - ACTIONS(304), 2, + STATE(1693), 1, + sym__collection_elements, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(915), 2, + STATE(872), 2, sym_attribute, sym_subscript, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1001), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + STATE(1290), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(685), 5, + ACTIONS(670), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24777,84 +24440,452 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [838] = 29, + [123] = 30, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(679), 1, + ACTIONS(668), 1, sym_identifier, - ACTIONS(681), 1, + ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(683), 1, + ACTIONS(674), 1, anon_sym_STAR, - ACTIONS(687), 1, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(697), 1, + ACTIONS(686), 1, anon_sym_await, - ACTIONS(711), 1, + ACTIONS(688), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1068), 1, + sym_expression, + STATE(1311), 1, + sym_pattern, + STATE(1479), 1, + sym_yield, + STATE(1689), 1, + sym__patterns, + STATE(1692), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(872), 2, + sym_attribute, + sym_subscript, + STATE(1290), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(670), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [248] = 31, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(668), 1, + sym_identifier, + ACTIONS(672), 1, + anon_sym_LPAREN, + ACTIONS(674), 1, + anon_sym_STAR, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, + anon_sym_await, + ACTIONS(690), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1083), 1, + sym_expression, + STATE(1311), 1, + sym_pattern, + STATE(1385), 1, + sym_list_splat, + STATE(1390), 1, + sym_parenthesized_list_splat, + STATE(1395), 1, + sym_yield, + STATE(1680), 1, + sym__collection_elements, + STATE(1689), 1, + sym__patterns, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(872), 2, + sym_attribute, + sym_subscript, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(670), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [375] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(301), 1, + anon_sym_TILDE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(698), 1, + anon_sym_STAR, + ACTIONS(702), 1, + anon_sym_in, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(998), 1, + sym_pattern, + STATE(1013), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(584), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(848), 2, + sym_attribute, + sym_subscript, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(694), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + ACTIONS(700), 15, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [486] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(301), 1, + anon_sym_TILDE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(698), 1, + anon_sym_STAR, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + ACTIONS(710), 1, + anon_sym_in, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(998), 1, + sym_pattern, + STATE(1013), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(584), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(848), 2, + sym_attribute, + sym_subscript, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(694), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + ACTIONS(708), 15, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [597] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(668), 1, + sym_identifier, + ACTIONS(672), 1, + anon_sym_LPAREN, + ACTIONS(674), 1, + anon_sym_STAR, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, + anon_sym_await, + ACTIONS(712), 1, anon_sym_RBRACK, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, - STATE(1081), 1, + STATE(1079), 1, sym_expression, - STATE(1356), 1, + STATE(1311), 1, sym_pattern, - STATE(1628), 1, + STATE(1675), 1, sym__patterns, - STATE(1656), 1, + STATE(1716), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(915), 2, + STATE(872), 2, sym_attribute, sym_subscript, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1001), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - STATE(1257), 3, + STATE(1290), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(685), 5, + ACTIONS(670), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24870,81 +24901,271 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [960] = 29, + [720] = 30, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(713), 1, + ACTIONS(668), 1, sym_identifier, - ACTIONS(715), 1, + ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(717), 1, - anon_sym_COMMA, - ACTIONS(719), 1, + ACTIONS(674), 1, anon_sym_STAR, - ACTIONS(723), 1, - anon_sym_RBRACE, - ACTIONS(725), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(714), 1, + anon_sym_RPAREN, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(772), 1, + STATE(726), 1, sym_primary_expression, - STATE(1046), 1, + STATE(1083), 1, sym_expression, - STATE(1212), 1, - sym_pair, - STATE(1490), 1, - sym_dictionary_splat, - STATE(1705), 1, + STATE(1311), 1, + sym_pattern, + STATE(1395), 1, + sym_yield, + STATE(1680), 1, sym__collection_elements, - ACTIONS(304), 2, + STATE(1689), 1, + sym__patterns, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + STATE(872), 2, + sym_attribute, + sym_subscript, + STATE(1290), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(670), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [845] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(668), 1, + sym_identifier, + ACTIONS(672), 1, + anon_sym_LPAREN, + ACTIONS(674), 1, + anon_sym_STAR, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, + anon_sym_await, + ACTIONS(716), 1, + anon_sym_RBRACK, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1079), 1, + sym_expression, + STATE(1311), 1, + sym_pattern, + STATE(1675), 1, + sym__patterns, + STATE(1716), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(872), 2, + sym_attribute, + sym_subscript, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + STATE(1290), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(670), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [968] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, + ACTIONS(724), 1, + anon_sym_COMMA, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(728), 1, + anon_sym_RBRACE, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1059), 1, + sym_expression, + STATE(1199), 1, + sym_pair, + STATE(1432), 1, + sym_dictionary_splat, + STATE(1638), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1290), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -24962,81 +25183,82 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1081] = 29, + [1090] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(659), 1, + ACTIONS(664), 1, anon_sym_LBRACK, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(713), 1, + ACTIONS(718), 1, sym_identifier, - ACTIONS(715), 1, + ACTIONS(722), 1, anon_sym_LPAREN, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(725), 1, + ACTIONS(730), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(732), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(734), 1, anon_sym_await, - ACTIONS(731), 1, + ACTIONS(736), 1, anon_sym_COMMA, - ACTIONS(733), 1, + ACTIONS(738), 1, anon_sym_RBRACE, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(772), 1, + STATE(780), 1, sym_primary_expression, - STATE(1061), 1, + STATE(1055), 1, sym_expression, - STATE(1190), 1, + STATE(1214), 1, sym_pair, - STATE(1403), 1, + STATE(1426), 1, sym_dictionary_splat, - STATE(1687), 1, + STATE(1616), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(662), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1257), 3, + STATE(1290), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(720), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25054,81 +25276,175 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1202] = 29, + [1212] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(659), 1, + ACTIONS(664), 1, anon_sym_LBRACK, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(713), 1, + ACTIONS(718), 1, sym_identifier, - ACTIONS(715), 1, + ACTIONS(722), 1, anon_sym_LPAREN, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(725), 1, + ACTIONS(730), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(732), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(734), 1, anon_sym_await, - ACTIONS(735), 1, + ACTIONS(740), 1, anon_sym_COMMA, - ACTIONS(737), 1, + ACTIONS(742), 1, anon_sym_RBRACE, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(772), 1, + STATE(780), 1, sym_primary_expression, - STATE(1060), 1, + STATE(1058), 1, + sym_expression, + STATE(1192), 1, + sym_pair, + STATE(1407), 1, + sym_dictionary_splat, + STATE(1708), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1290), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1334] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + ACTIONS(744), 1, + anon_sym_COMMA, + ACTIONS(746), 1, + anon_sym_RBRACE, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1041), 1, sym_expression, STATE(1170), 1, sym_pair, - STATE(1410), 1, + STATE(1505), 1, sym_dictionary_splat, - STATE(1600), 1, + STATE(1684), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(662), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1257), 3, + STATE(1290), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(720), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25146,169 +25462,78 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1323] = 29, + [1456] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(713), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(715), 1, - anon_sym_LPAREN, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, - anon_sym_await, - ACTIONS(739), 1, - anon_sym_COMMA, - ACTIONS(741), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, - sym_primary_expression, - STATE(1034), 1, - sym_expression, - STATE(1198), 1, - sym_pair, - STATE(1425), 1, - sym_dictionary_splat, - STATE(1602), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1444] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(743), 1, + ACTIONS(748), 1, anon_sym_from, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1148), 1, + STATE(1144), 1, sym_expression, - STATE(1196), 1, + STATE(1186), 1, sym_expression_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1510), 2, + STATE(1518), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(745), 4, + ACTIONS(750), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_RBRACE, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25326,77 +25551,78 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1558] = 26, + [1571] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(609), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(617), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(625), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(749), 1, + ACTIONS(754), 1, sym_identifier, - ACTIONS(751), 1, + ACTIONS(758), 1, anon_sym_from, - ACTIONS(755), 1, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(757), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(759), 1, + ACTIONS(764), 1, anon_sym_await, - STATE(766), 1, + STATE(763), 1, sym_primary_expression, - STATE(767), 1, + STATE(766), 1, sym_string, - STATE(768), 1, + STATE(776), 1, sym_template_string, - STATE(1093), 1, + STATE(1102), 1, sym_expression, - STATE(1196), 1, + STATE(1186), 1, sym_expression_list, - ACTIONS(621), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1567), 2, + STATE(1568), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(615), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(745), 4, + ACTIONS(750), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - ACTIONS(753), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25414,159 +25640,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1672] = 24, + [1686] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1117), 1, + STATE(1153), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1267), 2, + STATE(1262), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(761), 5, + ACTIONS(766), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1781] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1117), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1267), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - ACTIONS(763), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25584,74 +25726,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1890] = 24, + [1796] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1117), 1, + STATE(1153), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1267), 2, + STATE(1262), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(768), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - ACTIONS(763), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25669,74 +25812,161 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1999] = 25, + [1906] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(749), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(759), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(765), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1153), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1262), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(766), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2016] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(770), 1, anon_sym_yield, - STATE(766), 1, + STATE(763), 1, sym_primary_expression, - STATE(767), 1, + STATE(766), 1, sym_string, - STATE(768), 1, + STATE(776), 1, sym_template_string, - STATE(1095), 1, + STATE(1096), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1567), 2, + STATE(1568), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(615), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1265), 3, + STATE(1291), 3, sym_expression_list, sym_yield, sym__f_expression, - ACTIONS(607), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25754,75 +25984,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2109] = 26, + [2127] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(767), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, + ACTIONS(772), 1, + sym_identifier, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(778), 1, + anon_sym_RPAREN, + ACTIONS(780), 1, + anon_sym_COMMA, + ACTIONS(782), 1, + anon_sym_await, + STATE(645), 1, sym_string, - STATE(1202), 1, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1075), 1, sym_expression, - STATE(1537), 1, - sym_expression_list, - ACTIONS(75), 2, + STATE(1440), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(745), 2, - sym__newline, - anon_sym_SEMI, - STATE(1549), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + STATE(1439), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(774), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25840,73 +26071,161 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2221] = 24, + [2240] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(747), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(773), 1, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, anon_sym_STAR, - STATE(621), 1, + ACTIONS(772), 1, + sym_identifier, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_await, + ACTIONS(784), 1, + anon_sym_RPAREN, + ACTIONS(786), 1, + anon_sym_COMMA, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1064), 1, + sym_expression, + STATE(1402), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1384), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(774), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2353] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1174), 1, + STATE(1193), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(771), 3, + ACTIONS(790), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1315), 3, + STATE(1348), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25924,49 +26243,223 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2329] = 26, + [2462] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, sym_identifier, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(779), 1, - anon_sym_RPAREN, - ACTIONS(781), 1, - anon_sym_COMMA, - ACTIONS(785), 1, + ACTIONS(355), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(794), 1, + anon_sym_from, + STATE(765), 1, sym_primary_expression, - STATE(1076), 1, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1195), 1, sym_expression, - STATE(1388), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, + STATE(1533), 1, + sym_expression_list, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(750), 2, + sym__newline, + anon_sym_SEMI, + STATE(1520), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2575] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(796), 1, + anon_sym_from, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1134), 1, + sym_expression, + STATE(1458), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(798), 2, + sym__newline, + anon_sym_SEMI, + STATE(1520), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2688] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(804), 1, + anon_sym_RPAREN, + ACTIONS(806), 1, + anon_sym_COMMA, + ACTIONS(808), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1232), 1, + sym_expression, + STATE(1393), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -25974,25 +26467,26 @@ static const uint16_t ts_small_parse_table[] = { sym_list_splat, sym_dictionary_splat, sym_keyword_argument, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(783), 5, + ACTIONS(802), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26010,412 +26504,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2441] = 26, + [2801] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(789), 1, - anon_sym_RPAREN, - ACTIONS(791), 1, - anon_sym_COMMA, - ACTIONS(795), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1225), 1, - sym_expression, - STATE(1398), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1397), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2553] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(625), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(797), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1164), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1273), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(761), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2661] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, + ACTIONS(754), 1, sym_identifier, - ACTIONS(755), 1, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(757), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(759), 1, + ACTIONS(764), 1, anon_sym_await, - ACTIONS(797), 1, - anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1164), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1273), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(763), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2769] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(797), 1, - anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1164), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1273), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(763), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2877] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(765), 1, + ACTIONS(770), 1, anon_sym_yield, - STATE(766), 1, + STATE(763), 1, sym_primary_expression, - STATE(767), 1, + STATE(766), 1, sym_string, - STATE(768), 1, + STATE(776), 1, sym_template_string, - STATE(1095), 1, + STATE(1096), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1567), 2, + STATE(1568), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(615), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1287), 3, + STATE(1269), 3, sym_expression_list, sym_yield, sym__f_expression, - ACTIONS(607), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26433,75 +26590,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2987] = 26, + [2912] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, - sym_identifier, - ACTIONS(777), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(785), 1, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, anon_sym_await, - ACTIONS(789), 1, - anon_sym_RPAREN, - ACTIONS(791), 1, - anon_sym_COMMA, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + ACTIONS(810), 1, + anon_sym_STAR, + ACTIONS(812), 1, + anon_sym_STAR_STAR, + STATE(763), 1, sym_primary_expression, - STATE(1067), 1, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1154), 1, sym_expression, - STATE(1398), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + STATE(1266), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1397), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(783), 5, + ACTIONS(768), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26519,76 +26675,504 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3099] = 27, + [3021] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(801), 1, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, sym_identifier, - ACTIONS(803), 1, - anon_sym_RPAREN, - ACTIONS(807), 1, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + ACTIONS(810), 1, + anon_sym_STAR, + ACTIONS(812), 1, + anon_sym_STAR_STAR, + STATE(763), 1, sym_primary_expression, - STATE(1041), 1, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1154), 1, sym_expression, - STATE(1400), 1, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1266), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(766), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(756), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1104), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3130] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(810), 1, + anon_sym_STAR, + ACTIONS(812), 1, + anon_sym_STAR_STAR, + STATE(763), 1, + sym_primary_expression, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1154), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1266), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(766), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(756), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1104), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3239] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1193), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(814), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1348), 3, + sym_list_splat, + sym_parenthesized_list_splat, sym_yield, - STATE(1439), 1, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3348] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1193), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(814), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1348), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3457] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(772), 1, + sym_identifier, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_await, + ACTIONS(804), 1, + anon_sym_RPAREN, + ACTIONS(806), 1, + anon_sym_COMMA, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1087), 1, + sym_expression, + STATE(1393), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1387), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(774), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3570] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(820), 1, + anon_sym_RPAREN, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1057), 1, + sym_expression, + STATE(1404), 1, + sym_yield, + STATE(1484), 1, sym_with_item, - STATE(1675), 1, + STATE(1687), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1257), 2, + STATE(1290), 2, sym_list_splat, sym_parenthesized_list_splat, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26606,75 +27190,667 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3213] = 26, + [3685] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(809), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, + ACTIONS(772), 1, + sym_identifier, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_await, + ACTIONS(824), 1, + anon_sym_RPAREN, + ACTIONS(826), 1, + anon_sym_COMMA, + STATE(645), 1, sym_string, - STATE(1122), 1, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1071), 1, sym_expression, - STATE(1475), 1, + STATE(1416), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1415), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(774), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3798] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(828), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3908] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1173), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(830), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(832), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4014] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(836), 1, + anon_sym_from, + ACTIONS(838), 1, + anon_sym_STAR, + ACTIONS(840), 1, + anon_sym_STAR_STAR, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1212), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(768), 2, + sym__newline, + anon_sym_SEMI, + STATE(1317), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4124] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(838), 1, + anon_sym_STAR, + ACTIONS(840), 1, + anon_sym_STAR_STAR, + ACTIONS(842), 1, + anon_sym_from, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1212), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(766), 2, + sym__newline, + anon_sym_SEMI, + STATE(1317), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4234] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(838), 1, + anon_sym_STAR, + ACTIONS(840), 1, + anon_sym_STAR_STAR, + ACTIONS(842), 1, + anon_sym_from, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1212), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(766), 2, + sym__newline, + anon_sym_SEMI, + STATE(1317), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4344] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1173), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(844), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(846), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4450] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1206), 1, + sym_expression, + STATE(1530), 1, sym_expression_list, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(811), 2, + ACTIONS(848), 2, sym__newline, anon_sym_SEMI, - STATE(1549), 2, + STATE(1520), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(351), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1156), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26692,830 +27868,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3325] = 24, + [4560] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(695), 1, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, + ACTIONS(776), 1, anon_sym_LPAREN, - ACTIONS(773), 1, + ACTIONS(792), 1, anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1174), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(813), 3, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(850), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1315), 3, - sym_list_splat, - sym_parenthesized_list_splat, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1068), 1, + sym_expression, + STATE(1479), 1, sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3433] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1174), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(813), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1315), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3541] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, - sym_identifier, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(785), 1, - anon_sym_await, - ACTIONS(815), 1, - anon_sym_RPAREN, - ACTIONS(817), 1, - anon_sym_COMMA, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1075), 1, - sym_expression, - STATE(1412), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1411), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(783), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3653] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, - sym_identifier, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(785), 1, - anon_sym_await, - ACTIONS(819), 1, - anon_sym_RPAREN, - ACTIONS(821), 1, - anon_sym_COMMA, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1080), 1, - sym_expression, - STATE(1430), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1429), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(783), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3765] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(823), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3874] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(825), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(827), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3979] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(831), 1, - anon_sym_from, - ACTIONS(833), 1, - anon_sym_STAR, - ACTIONS(835), 1, - anon_sym_STAR_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(761), 2, - sym__newline, - anon_sym_SEMI, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4088] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(837), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(839), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4193] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(833), 1, - anon_sym_STAR, - ACTIONS(835), 1, - anon_sym_STAR_STAR, - ACTIONS(841), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(763), 2, - sym__newline, - anon_sym_SEMI, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4302] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(803), 1, - anon_sym_RPAREN, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, + STATE(1692), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1257), 2, + STATE(1290), 2, sym_list_splat, sym_parenthesized_list_splat, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27533,996 +27954,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4413] = 25, + [4672] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(843), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4522] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(845), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4631] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, + ACTIONS(776), 1, anon_sym_LPAREN, - ACTIONS(801), 1, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(822), 1, anon_sym_await, - ACTIONS(847), 1, + ACTIONS(852), 1, anon_sym_RBRACK, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4740] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(849), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4849] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(851), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4962] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(853), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5071] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(855), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5180] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(857), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5289] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(859), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5398] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(861), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(863), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5503] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(865), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(867), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5608] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(869), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, STATE(1084), 1, sym_expression, - STATE(1489), 1, - sym_yield, - STATE(1626), 1, + STATE(1693), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + STATE(1290), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28540,158 +28039,76 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5719] = 25, + [4782] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(603), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, + ACTIONS(776), 1, anon_sym_LPAREN, - ACTIONS(801), 1, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(822), 1, anon_sym_await, - ACTIONS(871), 1, - anon_sym_RBRACK, - STATE(621), 1, + ACTIONS(854), 1, + anon_sym_RPAREN, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, STATE(1083), 1, sym_expression, - STATE(1633), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, + STATE(1385), 1, sym_list_splat, + STATE(1390), 1, sym_parenthesized_list_splat, + STATE(1395), 1, sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5828] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(873), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1073), 1, - sym_expression, - STATE(1423), 1, - sym_yield, - STATE(1591), 1, + STATE(1680), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28709,159 +28126,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5939] = 25, + [4896] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(875), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6048] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, + ACTIONS(776), 1, anon_sym_LPAREN, - ACTIONS(801), 1, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, sym_identifier, - ACTIONS(803), 1, + ACTIONS(820), 1, anon_sym_RPAREN, - ACTIONS(807), 1, + ACTIONS(822), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, - STATE(1066), 1, + STATE(1083), 1, sym_expression, - STATE(1383), 1, + STATE(1395), 1, sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, + STATE(1680), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + STATE(1290), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28879,1674 +28212,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6161] = 27, + [5008] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(603), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, + ACTIONS(776), 1, anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(873), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6274] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(792), 1, anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, + ACTIONS(816), 1, sym_identifier, - ACTIONS(795), 1, + ACTIONS(822), 1, anon_sym_await, - ACTIONS(877), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6383] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(879), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6492] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(881), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6601] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(883), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6710] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(885), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6819] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1179), 1, - sym_expression, - STATE(1572), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(887), 2, - sym__newline, - anon_sym_SEMI, - STATE(1549), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6928] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(873), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7039] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(889), 1, + ACTIONS(856), 1, anon_sym_RBRACK, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1088), 1, - sym_expression, - STATE(1594), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7148] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(833), 1, - anon_sym_STAR, - ACTIONS(835), 1, - anon_sym_STAR_STAR, - ACTIONS(841), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(763), 2, - sym__newline, - anon_sym_SEMI, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7257] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(891), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7366] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(893), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7475] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(895), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7584] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(897), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7693] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(899), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7802] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(851), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7913] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(889), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8022] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(901), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8131] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(803), 1, - anon_sym_RPAREN, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, STATE(1079), 1, sym_expression, - STATE(1400), 1, - sym_yield, - STATE(1675), 1, + STATE(1716), 1, sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8242] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(847), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1086), 1, - sym_expression, - STATE(1679), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, + STATE(1290), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30564,237 +28297,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8351] = 25, + [5118] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(903), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8460] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1246), 1, - sym_expression, - STATE(1693), 1, - sym_index_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1407), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8566] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(769), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(787), 1, + ACTIONS(800), 1, sym_identifier, - ACTIONS(795), 1, + ACTIONS(808), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(858), 1, + anon_sym_RPAREN, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1261), 1, + STATE(1280), 1, sym_expression, - STATE(1577), 1, + STATE(1524), 1, sym_parenthesized_list_splat, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1570), 3, + STATE(1567), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(793), 5, + ACTIONS(802), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30812,153 +28382,754 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8672] = 24, + [5228] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - ACTIONS(907), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1246), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1508), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8778] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(808), 1, anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(813), 1, + ACTIONS(860), 1, anon_sym_RPAREN, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1174), 1, + STATE(1280), 1, sym_expression, - ACTIONS(304), 2, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1315), 3, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5338] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(862), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5448] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5558] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(866), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5668] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(868), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5778] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1173), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(870), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(872), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5884] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(874), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1083), 1, + sym_expression, + STATE(1385), 1, + sym_list_splat, + STATE(1390), 1, + sym_parenthesized_list_splat, + STATE(1395), 1, + sym_yield, + STATE(1680), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5998] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(876), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6108] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(878), 1, + anon_sym_RBRACK, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1079), 1, + sym_expression, + STATE(1716), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1290), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30976,153 +29147,755 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8884] = 24, + [6218] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - ACTIONS(909), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1246), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1508), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8990] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, + ACTIONS(776), 1, anon_sym_LPAREN, - ACTIONS(773), 1, + ACTIONS(792), 1, anon_sym_STAR, - ACTIONS(813), 1, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(820), 1, anon_sym_RPAREN, - STATE(621), 1, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(719), 1, + STATE(726), 1, sym_primary_expression, - STATE(1174), 1, + STATE(1083), 1, sym_expression, - ACTIONS(304), 2, + STATE(1385), 1, + sym_list_splat, + STATE(1390), 1, + sym_parenthesized_list_splat, + STATE(1395), 1, + sym_yield, + STATE(1680), 1, + sym__collection_elements, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1315), 3, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6332] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1173), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(880), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(882), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6438] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(884), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6548] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(886), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6658] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6768] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(890), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6878] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(892), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6988] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(854), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1083), 1, + sym_expression, + STATE(1395), 1, + sym_yield, + STATE(1680), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1290), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7100] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(894), 1, + anon_sym_RBRACK, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1626), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1290), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31140,71 +29913,1178 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9096] = 24, + [7210] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - STATE(621), 1, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(896), 1, + anon_sym_RPAREN, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1246), 1, + STATE(1280), 1, sym_expression, - STATE(1660), 1, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7320] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(898), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7430] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(900), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7540] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(902), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7650] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(904), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7760] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(874), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1083), 1, + sym_expression, + STATE(1395), 1, + sym_yield, + STATE(1680), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1290), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7872] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(894), 1, + anon_sym_RBRACK, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1079), 1, + sym_expression, + STATE(1716), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1290), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7982] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(820), 1, + anon_sym_RPAREN, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1090), 1, + sym_expression, + STATE(1404), 1, + sym_yield, + STATE(1687), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1290), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8094] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(856), 1, + anon_sym_RBRACK, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1085), 1, + sym_expression, + STATE(1698), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1290), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8204] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(906), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8314] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, + anon_sym_await, + ACTIONS(908), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8424] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(776), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(854), 1, + anon_sym_RPAREN, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1070), 1, + sym_expression, + STATE(1430), 1, + sym_yield, + STATE(1618), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1290), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8536] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(910), 1, + anon_sym_COLON, + ACTIONS(912), 1, + anon_sym_RBRACK, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1236), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1515), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8643] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(910), 1, + anon_sym_COLON, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1236), 1, + sym_expression, + STATE(1696), 1, sym_index_expression_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1377), 3, + STATE(1394), 3, sym_list_splat, sym__index_expression, sym_slice, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31222,55 +31102,222 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9202] = 18, + [8750] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(595), 1, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + sym_identifier, + ACTIONS(808), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(735), 1, + STATE(719), 1, sym_primary_expression, - ACTIONS(304), 2, + STATE(1280), 1, + sym_expression, + STATE(1524), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(265), 3, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1567), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(802), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8857] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(910), 1, + anon_sym_COLON, + ACTIONS(914), 1, + anon_sym_RBRACK, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1236), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1515), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8964] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(590), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(741), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(272), 3, anon_sym_DOT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(911), 3, + ACTIONS(916), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - ACTIONS(298), 9, + ACTIONS(303), 9, anon_sym_GT_GT, anon_sym_PIPE, anon_sym_STAR_STAR, @@ -31280,7 +31327,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31298,233 +31345,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9296] = 24, + [9059] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1246), 1, - sym_expression, - STATE(1669), 1, - sym_index_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1414), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9402] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1246), 1, - sym_expression, - STATE(1653), 1, - sym_index_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1432), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9508] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(769), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(773), 1, + ACTIONS(792), 1, anon_sym_STAR, - STATE(621), 1, + ACTIONS(814), 1, + anon_sym_RPAREN, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1174), 1, + STATE(1193), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1315), 3, + STATE(1348), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31542,393 +31428,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9611] = 24, + [9166] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1237), 1, - sym_expression, - STATE(1637), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9716] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(792), 1, anon_sym_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1180), 1, - sym_expression, - STATE(1579), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - STATE(1549), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9821] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(905), 1, + ACTIONS(910), 1, anon_sym_COLON, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1246), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1508), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9924] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1240), 1, - sym_expression, - STATE(1625), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10029] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, STATE(1236), 1, sym_expression, - STATE(1610), 1, - sym_expression_list, - ACTIONS(304), 2, + STATE(1594), 1, + sym_index_expression_list, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + STATE(1405), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31946,70 +31511,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10134] = 24, + [9273] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, + ACTIONS(814), 1, + anon_sym_RPAREN, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1235), 1, + STATE(1193), 1, sym_expression, - STATE(1603), 1, - sym_expression_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + STATE(1348), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32027,68 +31594,807 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10239] = 23, + [9380] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(913), 1, - anon_sym_RBRACE, - STATE(621), 1, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(910), 1, + anon_sym_COLON, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1331), 1, + STATE(1236), 1, sym_expression, - ACTIONS(304), 2, + STATE(1608), 1, + sym_index_expression_list, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1563), 2, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1417), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9487] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(910), 1, + anon_sym_COLON, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1236), 1, + sym_expression, + STATE(1681), 1, + sym_index_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1442), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9594] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1193), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1348), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9698] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + ACTIONS(910), 1, + anon_sym_COLON, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1236), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1515), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9802] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1246), 1, + sym_expression, + STATE(1632), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1518), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9908] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1241), 1, + sym_expression, + STATE(1649), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1518), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10014] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1207), 1, + sym_expression, + STATE(1571), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + STATE(1520), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10120] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1238), 1, + sym_expression, + STATE(1621), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1518), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10226] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1237), 1, + sym_expression, + STATE(1614), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1518), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10332] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(918), 1, + anon_sym_RBRACE, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1313), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1569), 2, sym_dictionary_splat, sym_pair, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32106,147 +32412,549 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10341] = 23, + [10435] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(833), 1, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(920), 1, + anon_sym_RBRACE, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1313), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1569), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10538] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(922), 1, + anon_sym_RBRACE, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1313), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1569), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10641] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(924), 1, + anon_sym_RBRACE, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1313), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1569), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10744] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(926), 1, + anon_sym_RBRACE, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1313), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1569), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10847] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(838), 1, anon_sym_STAR, - ACTIONS(835), 1, + ACTIONS(840), 1, + anon_sym_STAR_STAR, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1212), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + STATE(1317), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10950] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(928), 1, + anon_sym_RBRACE, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1313), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1569), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11053] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(810), 1, + anon_sym_STAR, + ACTIONS(812), 1, anon_sym_STAR_STAR, STATE(763), 1, - sym_template_string, - STATE(779), 1, sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10443] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(797), 1, - anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, STATE(766), 1, - sym_primary_expression, - STATE(767), 1, sym_string, - STATE(768), 1, + STATE(776), 1, sym_template_string, - STATE(1164), 1, + STATE(1154), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1273), 2, + STATE(1266), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(615), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32264,542 +32972,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10545] = 23, + [11156] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(915), 1, + ACTIONS(930), 1, anon_sym_RBRACE, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1331), 1, + STATE(1313), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1563), 2, + STATE(1569), 2, sym_dictionary_splat, sym_pair, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10647] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(917), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10749] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(919), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10851] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(921), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10953] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(923), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11055] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(925), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11157] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(927), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32820,65 +33055,66 @@ static const uint16_t ts_small_parse_table[] = { [11259] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(929), 1, + ACTIONS(932), 1, anon_sym_RBRACE, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1331), 1, + STATE(1313), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1563), 2, + STATE(1569), 2, sym_dictionary_splat, sym_pair, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32896,68 +33132,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11361] = 23, + [11362] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(931), 1, + ACTIONS(934), 1, anon_sym_RBRACE, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1331), 1, + STATE(1313), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1563), 2, + STATE(1569), 2, sym_dictionary_splat, sym_pair, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32975,68 +33212,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11463] = 23, + [11465] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(933), 1, + ACTIONS(936), 1, anon_sym_RBRACE, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1331), 1, + STATE(1313), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1563), 2, + STATE(1569), 2, sym_dictionary_splat, sym_pair, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33054,68 +33292,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11565] = 23, + [11568] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(935), 1, + ACTIONS(938), 1, anon_sym_RBRACE, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1331), 1, + STATE(1313), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1563), 2, + STATE(1569), 2, sym_dictionary_splat, sym_pair, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33133,68 +33372,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11667] = 23, + [11671] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1117), 1, + STATE(1153), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1267), 2, + STATE(1262), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33212,67 +33452,148 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11769] = 23, + [11774] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, + ACTIONS(940), 1, + anon_sym_RBRACE, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1172), 1, + STATE(1313), 1, sym_expression, - STATE(1308), 1, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1569), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11877] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1201), 1, + sym_expression, + STATE(1344), 1, sym_list_splat, - STATE(1447), 1, + STATE(1609), 1, sym_type, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33290,67 +33611,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11870] = 23, + [11979] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(792), 1, anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1172), 1, + STATE(1201), 1, sym_expression, - STATE(1308), 1, + STATE(1344), 1, sym_list_splat, - STATE(1583), 1, + STATE(1647), 1, sym_type, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33368,23 +33690,23 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11971] = 9, + [12081] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, + ACTIONS(946), 1, anon_sym_else, - ACTIONS(943), 1, + ACTIONS(948), 1, anon_sym_except, - ACTIONS(945), 1, + ACTIONS(950), 1, anon_sym_finally, - STATE(470), 1, + STATE(479), 1, sym_else_clause, - STATE(575), 1, + STATE(520), 1, sym_finally_clause, - STATE(330), 2, + STATE(333), 2, sym_except_clause, aux_sym_try_statement_repeat1, - ACTIONS(939), 13, + ACTIONS(944), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -33398,7 +33720,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(937), 33, + ACTIONS(942), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -33432,87 +33755,102 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [12044] = 9, + [12155] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(945), 1, - anon_sym_finally, - ACTIONS(947), 1, - anon_sym_except, - STATE(470), 1, - sym_else_clause, - STATE(575), 1, - sym_finally_clause, - STATE(331), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(939), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, + ACTIONS(640), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(646), 1, anon_sym_LBRACK, + ACTIONS(648), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(956), 1, + anon_sym_STAR, + ACTIONS(958), 1, + anon_sym_COLON, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1210), 1, + sym_expression, + STATE(1562), 1, + sym_exception_list, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, sym_integer, - sym_identifier, - anon_sym_await, sym_true, sym_false, sym_none, - [12117] = 9, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12257] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, + ACTIONS(966), 1, anon_sym_else, - ACTIONS(951), 1, + ACTIONS(968), 1, anon_sym_except, - ACTIONS(953), 1, + ACTIONS(970), 1, anon_sym_finally, - STATE(472), 1, + STATE(478), 1, sym_else_clause, - STATE(518), 1, + STATE(607), 1, sym_finally_clause, - STATE(328), 2, + STATE(316), 2, sym_except_clause, aux_sym_try_statement_repeat1, - ACTIONS(939), 13, + ACTIONS(944), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -33526,7 +33864,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(937), 33, + ACTIONS(942), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -33560,787 +33899,296 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [12190] = 22, + [12331] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(957), 1, - anon_sym_COLON, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1247), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(955), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12289] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1697), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12390] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1639), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12491] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(959), 1, - anon_sym_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1250), 1, - sym_expression, - STATE(1406), 1, - sym_type, - STATE(1463), 1, - sym_list_splat, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12592] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(963), 1, - anon_sym_STAR, - ACTIONS(967), 1, - anon_sym_COLON, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1207), 1, - sym_expression, - STATE(1552), 1, - sym_exception_list, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12693] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(977), 1, - anon_sym_COLON, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1249), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(975), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12792] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, + ACTIONS(966), 1, anon_sym_else, - ACTIONS(951), 1, - anon_sym_except, - ACTIONS(953), 1, + ACTIONS(970), 1, anon_sym_finally, - STATE(468), 1, + ACTIONS(972), 1, + anon_sym_except, + STATE(478), 1, + sym_else_clause, + STATE(607), 1, + sym_finally_clause, + STATE(317), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(944), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(942), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12405] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(976), 1, + anon_sym_COLON, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1256), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(974), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12505] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + ACTIONS(950), 1, + anon_sym_finally, + ACTIONS(978), 1, + anon_sym_except, + STATE(479), 1, + sym_else_clause, + STATE(520), 1, + sym_finally_clause, + STATE(334), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(944), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(942), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12579] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, + anon_sym_else, + ACTIONS(968), 1, + anon_sym_except, + ACTIONS(970), 1, + anon_sym_finally, + STATE(484), 1, + sym_else_clause, + STATE(569), 1, + sym_finally_clause, + STATE(316), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(980), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(982), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12653] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + ACTIONS(948), 1, + anon_sym_except, + ACTIONS(950), 1, + anon_sym_finally, + STATE(466), 1, sym_else_clause, STATE(534), 1, sym_finally_clause, - STATE(328), 2, + STATE(333), 2, sym_except_clause, aux_sym_try_statement_repeat1, - ACTIONS(979), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(981), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12865] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1617), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12966] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1341), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13067] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1642), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13168] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(943), 1, - anon_sym_except, - ACTIONS(945), 1, - anon_sym_finally, - STATE(479), 1, - sym_else_clause, - STATE(561), 1, - sym_finally_clause, - STATE(330), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(979), 13, + ACTIONS(980), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -34354,7 +34202,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(981), 33, + ACTIONS(982), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34388,23 +34237,181 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13241] = 9, + [12727] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1201), 1, + sym_expression, + STATE(1344), 1, + sym_list_splat, + STATE(1688), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12829] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1201), 1, + sym_expression, + STATE(1344), 1, + sym_list_splat, + STATE(1703), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12931] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, anon_sym_else, - ACTIONS(953), 1, + ACTIONS(970), 1, anon_sym_finally, - ACTIONS(983), 1, + ACTIONS(972), 1, anon_sym_except, - STATE(472), 1, + STATE(484), 1, sym_else_clause, - STATE(518), 1, + STATE(569), 1, sym_finally_clause, - STATE(329), 2, + STATE(317), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(939), 13, + ACTIONS(980), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -34418,7 +34425,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(937), 33, + ACTIONS(982), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34452,67 +34460,68 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13314] = 23, + [13005] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, + ACTIONS(640), 1, anon_sym_LPAREN, - ACTIONS(639), 1, + ACTIONS(646), 1, anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(648), 1, anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(952), 1, sym_identifier, - ACTIONS(969), 1, + ACTIONS(960), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(962), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(964), 1, anon_sym_await, - ACTIONS(985), 1, + ACTIONS(984), 1, anon_sym_STAR, - ACTIONS(987), 1, + ACTIONS(986), 1, anon_sym_COLON, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, + STATE(792), 1, sym_primary_expression, - STATE(1204), 1, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1203), 1, sym_expression, STATE(1548), 1, sym_exception_list, - ACTIONS(643), 2, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(636), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(954), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1211), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34530,66 +34539,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13415] = 22, + [13107] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1331), 1, + STATE(1201), 1, sym_expression, - ACTIONS(304), 2, + STATE(1344), 1, + sym_list_splat, + STATE(1634), 1, + sym_type, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34607,23 +34618,23 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13514] = 9, + [13209] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, + ACTIONS(946), 1, anon_sym_else, - ACTIONS(945), 1, + ACTIONS(950), 1, anon_sym_finally, - ACTIONS(947), 1, + ACTIONS(978), 1, anon_sym_except, - STATE(479), 1, + STATE(466), 1, sym_else_clause, - STATE(561), 1, + STATE(534), 1, sym_finally_clause, - STATE(331), 2, + STATE(334), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(979), 13, + ACTIONS(980), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -34637,7 +34648,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(981), 33, + ACTIONS(982), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34671,67 +34683,67 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13587] = 23, + [13283] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1172), 1, + STATE(1313), 1, sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1616), 1, - sym_type, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + STATE(1569), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34749,67 +34761,304 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13688] = 23, + [13383] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(792), 1, anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1172), 1, + STATE(1201), 1, sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1618), 1, + STATE(1325), 1, sym_type, - ACTIONS(304), 2, + STATE(1344), 1, + sym_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13485] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(990), 1, + anon_sym_COLON, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1223), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(988), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13585] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(992), 1, + anon_sym_STAR, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1243), 1, + sym_expression, + STATE(1392), 1, + sym_type, + STATE(1451), 1, + sym_list_splat, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13687] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1201), 1, + sym_expression, + STATE(1344), 1, + sym_list_splat, + STATE(1389), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34830,64 +35079,65 @@ static const uint16_t ts_small_parse_table[] = { [13789] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(792), 1, anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1172), 1, + STATE(1201), 1, sym_expression, - STATE(1308), 1, + STATE(1344), 1, sym_list_splat, - STATE(1622), 1, + STATE(1627), 1, sym_type, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34905,129 +35155,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13890] = 9, + [13891] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(953), 1, - anon_sym_finally, - ACTIONS(983), 1, - anon_sym_except, - STATE(468), 1, - sym_else_clause, - STATE(534), 1, - sym_finally_clause, - STATE(329), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(979), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(981), 33, - anon_sym_import, - anon_sym_from, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [13963] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(989), 1, - anon_sym_LPAREN, - STATE(794), 1, + STATE(645), 1, sym_string, - STATE(795), 1, + STATE(658), 1, sym_template_string, - STATE(822), 1, + STATE(719), 1, sym_primary_expression, - STATE(1200), 1, + STATE(1201), 1, sym_expression, - STATE(1434), 1, - sym_with_item, - STATE(1607), 1, - sym_with_clause, - ACTIONS(643), 2, + STATE(1344), 1, + sym_list_splat, + STATE(1629), 1, + sym_type, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -35045,64 +35234,144 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14061] = 21, + [13993] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, sym_string, - STATE(1224), 1, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1201), 1, sym_expression, - ACTIONS(75), 2, + STATE(1344), 1, + sym_list_splat, + STATE(1633), 1, + sym_type, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(991), 2, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14095] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1240), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(994), 2, sym__newline, anon_sym_SEMI, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(351), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1156), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -35120,289 +35389,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14157] = 21, + [14192] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1224), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(993), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14253] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1224), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(995), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14349] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1098), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1203), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14445] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, STATE(1276), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(997), 2, + ACTIONS(996), 2, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -35420,499 +35465,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14541] = 3, + [14289] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1001), 17, - anon_sym_as, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(999), 35, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [14601] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(967), 1, - anon_sym_COLON, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1207), 1, - sym_expression, - STATE(1552), 1, - sym_exception_list, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14699] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1266), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1003), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14795] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14891] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1264), 1, - sym_expression, - STATE(1519), 1, - sym_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14989] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(1005), 1, - anon_sym_RPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1501), 1, - sym_with_item, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15087] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(349), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(355), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(594), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(598), 1, anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, + STATE(765), 1, sym_primary_expression, - STATE(782), 1, + STATE(769), 1, + sym_template_string, + STATE(775), 1, sym_string, - STATE(1224), 1, + STATE(1240), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(1007), 2, + ACTIONS(998), 2, sym__newline, anon_sym_SEMI, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(351), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1156), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -35930,64 +35541,217 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15183] = 21, + [14386] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(71), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, sym_string, - STATE(624), 1, + STATE(1240), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(1000), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14483] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1240), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(1002), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14580] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1268), 1, + STATE(1261), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(1009), 2, + ACTIONS(1004), 2, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36005,64 +35769,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15279] = 21, + [14677] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(801), 1, + ACTIONS(816), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(822), 1, anon_sym_await, - ACTIONS(829), 1, + ACTIONS(834), 1, anon_sym_lambda, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, - STATE(1090), 1, + STATE(1097), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1178), 2, + STATE(1208), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36080,424 +35845,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15375] = 21, + [14774] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(640), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(646), 1, anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1128), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15471] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(648), 1, anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(952), 1, sym_identifier, - ACTIONS(969), 1, + ACTIONS(960), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(962), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(964), 1, anon_sym_await, - ACTIONS(989), 1, - anon_sym_LPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1434), 1, - sym_with_item, - STATE(1589), 1, - sym_with_clause, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15569] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(989), 1, - anon_sym_LPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1434), 1, - sym_with_item, - STATE(1597), 1, - sym_with_clause, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15667] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1291), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1011), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15763] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1015), 17, - anon_sym_as, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1013), 35, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1006), 1, anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [15823] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(1017), 1, - anon_sym_RPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, + STATE(792), 1, sym_primary_expression, - STATE(1200), 1, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1205), 1, sym_expression, - STATE(1501), 1, + STATE(1481), 1, sym_with_item, - ACTIONS(643), 2, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(636), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(954), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1211), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36515,216 +35922,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15921] = 21, + [14873] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(640), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(646), 1, anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1111), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16017] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(648), 1, anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(952), 1, sym_identifier, - ACTIONS(969), 1, + ACTIONS(960), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(962), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(964), 1, anon_sym_await, - ACTIONS(989), 1, - anon_sym_LPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1434), 1, - sym_with_item, - STATE(1670), 1, - sym_with_clause, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16115] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(987), 1, + ACTIONS(986), 1, anon_sym_COLON, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, + STATE(792), 1, sym_primary_expression, - STATE(1204), 1, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1203), 1, sym_expression, STATE(1548), 1, sym_exception_list, - ACTIONS(643), 2, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(636), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(954), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1211), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36742,1554 +35999,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [16213] = 8, + [14972] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(1023), 1, - anon_sym_elif, - STATE(321), 1, - aux_sym_if_statement_repeat1, - STATE(463), 1, - sym_elif_clause, - STATE(514), 1, - sym_else_clause, - ACTIONS(1019), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(646), 1, anon_sym_LBRACK, + ACTIONS(648), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1021), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16282] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1027), 13, - sym__dedent, + ACTIONS(654), 1, sym__string_start, + ACTIONS(656), 1, sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1025), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, + ACTIONS(952), 1, sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16341] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1031), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1029), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, + ACTIONS(960), 1, anon_sym_not, + ACTIONS(962), 1, anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(964), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [16400] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, + ACTIONS(1008), 1, anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, + STATE(792), 1, sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1501), 1, - sym_with_item, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16495] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(1023), 1, - anon_sym_elif, - STATE(354), 1, - aux_sym_if_statement_repeat1, - STATE(463), 1, - sym_elif_clause, - STATE(525), 1, - sym_else_clause, - ACTIONS(1033), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1035), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16564] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1037), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1039), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16623] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1027), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1025), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16682] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, - anon_sym_elif, - STATE(326), 1, - aux_sym_if_statement_repeat1, - STATE(473), 1, - sym_elif_clause, - STATE(558), 1, - sym_else_clause, - ACTIONS(1019), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1021), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16751] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1045), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1043), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16810] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(1023), 1, - anon_sym_elif, - STATE(354), 1, - aux_sym_if_statement_repeat1, - STATE(463), 1, - sym_elif_clause, - STATE(596), 1, - sym_else_clause, - ACTIONS(1047), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1049), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16879] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(1023), 1, - anon_sym_elif, - STATE(316), 1, - aux_sym_if_statement_repeat1, - STATE(463), 1, - sym_elif_clause, - STATE(597), 1, - sym_else_clause, - ACTIONS(1051), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1053), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16948] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, + STATE(793), 1, sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1186), 1, - sym_expression, - STATE(1565), 1, - sym_exception_list, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17043] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1055), 1, - anon_sym_for, - ACTIONS(1057), 1, - anon_sym_with, - ACTIONS(1059), 1, - anon_sym_def, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [17116] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1045), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1043), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17175] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, - anon_sym_elif, - STATE(399), 1, - aux_sym_if_statement_repeat1, - STATE(473), 1, - sym_elif_clause, - STATE(568), 1, - sym_else_clause, - ACTIONS(1047), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1049), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17244] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, - anon_sym_elif, - STATE(333), 1, - aux_sym_if_statement_repeat1, - STATE(473), 1, - sym_elif_clause, - STATE(569), 1, - sym_else_clause, - ACTIONS(1051), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1053), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17313] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1065), 1, - anon_sym_except, - STATE(328), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(1061), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1063), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17376] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1072), 1, - anon_sym_except, - STATE(329), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(1068), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1070), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17439] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1075), 1, - anon_sym_except, - STATE(330), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(1061), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1063), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17502] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1078), 1, - anon_sym_except, - STATE(331), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(1068), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1070), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17565] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1031), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1029), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17624] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, - anon_sym_elif, - STATE(399), 1, - aux_sym_if_statement_repeat1, - STATE(473), 1, - sym_elif_clause, - STATE(582), 1, - sym_else_clause, - ACTIONS(1033), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1035), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17693] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1081), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1083), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17752] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1037), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1039), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17811] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1081), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1083), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17870] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, STATE(794), 1, - sym_string, - STATE(795), 1, sym_template_string, - STATE(822), 1, - sym_primary_expression, STATE(1205), 1, sym_expression, - STATE(1550), 1, - sym_exception_list, - ACTIONS(643), 2, + STATE(1477), 1, + sym_with_item, + STATE(1651), 1, + sym_with_clause, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(636), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(954), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1211), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38307,484 +36076,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [17965] = 10, + [15071] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1085), 1, - anon_sym_for, - ACTIONS(1087), 1, - anon_sym_with, - ACTIONS(1089), 1, - anon_sym_def, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [18038] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1224), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18130] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, + ACTIONS(313), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1030), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18222] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1112), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18314] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1324), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18406] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, + STATE(645), 1, sym_string, - STATE(1135), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18498] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1071), 1, + STATE(1285), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(1010), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38802,61 +36152,448 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18590] = 20, + [15168] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(680), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1173), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15265] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1165), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15362] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1117), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15459] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(958), 1, + anon_sym_COLON, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1210), 1, + sym_expression, + STATE(1562), 1, + sym_exception_list, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15558] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + ACTIONS(1012), 1, + anon_sym_RPAREN, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1205), 1, + sym_expression, + STATE(1481), 1, + sym_with_item, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15657] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + ACTIONS(792), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, STATE(1282), 1, sym_expression, - ACTIONS(304), 2, + STATE(1549), 1, + sym_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38874,133 +36611,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18682] = 20, + [15756] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1155), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18774] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1296), 1, + STATE(1258), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(1014), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39018,61 +36687,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18866] = 20, + [15853] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, + ACTIONS(816), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(822), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(834), 1, + anon_sym_lambda, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(725), 1, + STATE(726), 1, sym_primary_expression, - STATE(1214), 1, + STATE(1099), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + STATE(1172), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39090,61 +36763,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18958] = 20, + [15950] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(952), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(1008), 1, anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, + STATE(792), 1, sym_primary_expression, - STATE(782), 1, + STATE(793), 1, sym_string, - STATE(1197), 1, + STATE(794), 1, + sym_template_string, + STATE(1205), 1, sym_expression, - ACTIONS(75), 2, + STATE(1477), 1, + sym_with_item, + STATE(1599), 1, + sym_with_clause, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(636), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(954), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1211), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39162,205 +36840,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19050] = 20, + [16049] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1297), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19142] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(952), 1, sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1121), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19234] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, + ACTIONS(960), 1, anon_sym_not, - ACTIONS(71), 1, + ACTIONS(962), 1, anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, + ACTIONS(964), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(1008), 1, anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, + STATE(792), 1, sym_primary_expression, - STATE(782), 1, + STATE(793), 1, sym_string, - STATE(1292), 1, + STATE(794), 1, + sym_template_string, + STATE(1205), 1, sym_expression, - ACTIONS(75), 2, + STATE(1477), 1, + sym_with_item, + STATE(1607), 1, + sym_with_clause, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(636), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(954), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1211), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39378,61 +36917,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19326] = 20, + [16148] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(952), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(1008), 1, anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, + STATE(792), 1, sym_primary_expression, - STATE(782), 1, + STATE(793), 1, sym_string, - STATE(1123), 1, + STATE(794), 1, + sym_template_string, + STATE(1205), 1, sym_expression, - ACTIONS(75), 2, + STATE(1477), 1, + sym_with_item, + STATE(1645), 1, + sym_with_clause, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(636), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(954), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1211), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39450,16 +36994,77 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19418] = 6, + [16247] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1095), 1, + ACTIONS(1018), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1016), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, anon_sym_elif, - STATE(354), 1, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16307] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, + anon_sym_else, + ACTIONS(1024), 1, + anon_sym_elif, + STATE(364), 1, aux_sym_if_statement_repeat1, - STATE(463), 1, + STATE(471), 1, sym_elif_clause, - ACTIONS(1091), 13, + STATE(544), 1, + sym_else_clause, + ACTIONS(1020), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -39473,7 +37078,3559 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1093), 34, + ACTIONS(1022), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16377] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, + anon_sym_else, + ACTIONS(1024), 1, + anon_sym_elif, + STATE(323), 1, + aux_sym_if_statement_repeat1, + STATE(471), 1, + sym_elif_clause, + STATE(548), 1, + sym_else_clause, + ACTIONS(1026), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1028), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16447] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + ACTIONS(1034), 1, + anon_sym_elif, + STATE(374), 1, + aux_sym_if_statement_repeat1, + STATE(469), 1, + sym_elif_clause, + STATE(540), 1, + sym_else_clause, + ACTIONS(1032), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1030), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16517] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1174), 1, + sym_expression, + STATE(1555), 1, + sym_exception_list, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16613] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1205), 1, + sym_expression, + STATE(1481), 1, + sym_with_item, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16709] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1040), 1, + anon_sym_except, + STATE(316), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(1036), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1038), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16773] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1047), 1, + anon_sym_except, + STATE(317), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(1043), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1045), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16837] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1052), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1050), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16897] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1018), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1016), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16957] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1056), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17017] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1058), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1060), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17077] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1058), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1060), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17137] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, + anon_sym_else, + ACTIONS(1024), 1, + anon_sym_elif, + STATE(364), 1, + aux_sym_if_statement_repeat1, + STATE(471), 1, + sym_elif_clause, + STATE(579), 1, + sym_else_clause, + ACTIONS(1032), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1030), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17207] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1064), 17, + anon_sym_as, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1062), 35, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17267] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + ACTIONS(1034), 1, + anon_sym_elif, + STATE(329), 1, + aux_sym_if_statement_repeat1, + STATE(469), 1, + sym_elif_clause, + STATE(516), 1, + sym_else_clause, + ACTIONS(1068), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1066), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17337] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1056), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17397] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1070), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17457] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1076), 17, + anon_sym_as, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1074), 35, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [17517] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + ACTIONS(1034), 1, + anon_sym_elif, + STATE(374), 1, + aux_sym_if_statement_repeat1, + STATE(469), 1, + sym_elif_clause, + STATE(527), 1, + sym_else_clause, + ACTIONS(1020), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1022), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17587] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + ACTIONS(1034), 1, + anon_sym_elif, + STATE(313), 1, + aux_sym_if_statement_repeat1, + STATE(469), 1, + sym_elif_clause, + STATE(528), 1, + sym_else_clause, + ACTIONS(1026), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1028), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17657] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, + anon_sym_else, + ACTIONS(1024), 1, + anon_sym_elif, + STATE(311), 1, + aux_sym_if_statement_repeat1, + STATE(471), 1, + sym_elif_clause, + STATE(599), 1, + sym_else_clause, + ACTIONS(1068), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1066), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17727] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1070), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17787] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1078), 1, + anon_sym_except, + STATE(333), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(1036), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1038), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17851] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1081), 1, + anon_sym_except, + STATE(334), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(1043), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1045), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17915] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1204), 1, + sym_expression, + STATE(1550), 1, + sym_exception_list, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18011] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1052), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1050), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [18071] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1155), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18164] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1225), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18257] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1147), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18350] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1089), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18443] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1270), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18536] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1069), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18629] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1094), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18722] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1265), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18815] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1074), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18908] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(763), 1, + sym_primary_expression, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1119), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(756), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1104), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19001] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1180), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19094] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1337), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19187] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1152), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19280] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1263), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19373] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1275), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19466] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1182), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19559] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1268), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19652] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1364), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19745] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1339), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19838] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1194), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19931] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1197), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20024] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1198), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20117] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1240), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20210] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1309), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20303] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1200), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20396] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1178), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20489] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1185), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20582] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 1, + anon_sym_elif, + STATE(364), 1, + aux_sym_if_statement_repeat1, + STATE(471), 1, + sym_elif_clause, + ACTIONS(1084), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1086), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -39508,281 +40665,67 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [19482] = 20, + [20647] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(81), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1279), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19574] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, + ACTIONS(752), 1, anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1188), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19666] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, + ACTIONS(1091), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(1095), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1087), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19758] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1228), 1, + STATE(1094), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + STATE(585), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(1093), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 15, sym_binary_operator, sym_unary_operator, - sym_attribute, - sym_subscript, sym_call, sym_list, sym_set, @@ -39796,61 +40739,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19850] = 20, + [20742] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(622), 1, anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, STATE(763), 1, - sym_template_string, - STATE(779), 1, sym_primary_expression, - STATE(782), 1, + STATE(766), 1, sym_string, - STATE(1141), 1, + STATE(776), 1, + sym_template_string, + STATE(1120), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39868,61 +40812,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19942] = 20, + [20835] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(622), 1, anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, STATE(763), 1, - sym_template_string, - STATE(779), 1, sym_primary_expression, - STATE(782), 1, + STATE(766), 1, sym_string, - STATE(1144), 1, + STATE(776), 1, + sym_template_string, + STATE(1121), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39940,61 +40885,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20034] = 20, + [20928] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + STATE(763), 1, sym_primary_expression, - STATE(1064), 1, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1122), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40012,914 +40958,208 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20126] = 20, + [21021] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(763), 1, + sym_primary_expression, + STATE(766), 1, sym_string, - STATE(624), 1, + STATE(776), 1, + sym_template_string, + STATE(1123), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(756), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1104), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21114] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(763), 1, + sym_primary_expression, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1124), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(756), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1104), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21207] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1189), 1, + STATE(1078), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20218] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1285), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20310] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1062), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20402] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1226), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20494] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1145), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20586] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1098), 1, - sym__string_start, - STATE(1393), 1, - sym_string, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [20656] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1156), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20748] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1068), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20840] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1096), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20932] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1109), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21024] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1262), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21116] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1274), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21208] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1069), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40940,1139 +41180,132 @@ static const uint16_t ts_small_parse_table[] = { [21300] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1229), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21393] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, STATE(763), 1, - sym_template_string, - STATE(779), 1, sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1258), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21392] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1074), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21484] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1231), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21576] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1166), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21668] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1192), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21760] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1295), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21852] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1193), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21944] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1194), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22036] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1269), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22128] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(1100), 1, - sym_identifier, - ACTIONS(1104), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1096), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(509), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1102), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22222] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1322), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22314] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1195), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22406] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1208), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22498] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1209), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22590] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1085), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22682] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, STATE(766), 1, - sym_primary_expression, - STATE(767), 1, sym_string, - STATE(768), 1, + STATE(776), 1, sym_template_string, STATE(1125), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42090,592 +41323,16 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22774] = 20, + [21486] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1030), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22866] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1165), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22958] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1103), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23050] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1104), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23142] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1105), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23234] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1106), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23326] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1349), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23418] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1107), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23510] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1106), 1, + ACTIONS(1097), 1, anon_sym_elif, - STATE(399), 1, + STATE(374), 1, aux_sym_if_statement_repeat1, - STATE(473), 1, + STATE(469), 1, sym_elif_clause, - ACTIONS(1091), 13, + ACTIONS(1084), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -42689,7 +41346,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1093), 34, + ACTIONS(1086), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -42724,493 +41382,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [23574] = 20, + [21551] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(617), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(625), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(749), 1, + ACTIONS(754), 1, sym_identifier, - ACTIONS(755), 1, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(757), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(759), 1, + ACTIONS(764), 1, anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1108), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23666] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1210), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23758] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1361), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23850] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1168), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23942] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1307), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24034] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1077), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24126] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, STATE(763), 1, - sym_template_string, - STATE(779), 1, sym_primary_expression, - STATE(782), 1, + STATE(766), 1, sym_string, - STATE(1177), 1, + STATE(776), 1, + sym_template_string, + STATE(1143), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43228,61 +41455,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24218] = 20, + [21644] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1334), 1, + STATE(1031), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43300,61 +41528,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24310] = 20, + [21737] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, sym_primary_expression, - STATE(1149), 1, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1366), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(351), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1156), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43372,61 +41601,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24402] = 20, + [21830] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, sym_primary_expression, - STATE(1150), 1, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1274), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(351), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1156), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43444,61 +41674,354 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24494] = 20, + [21923] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(313), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(772), 1, + STATE(719), 1, + sym_primary_expression, + STATE(1244), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22016] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1145), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22109] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1067), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22202] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1126), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22295] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, sym_primary_expression, STATE(1151), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43516,61 +42039,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24586] = 20, + [22388] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, sym_primary_expression, - STATE(1152), 1, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1142), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(351), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1156), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43588,133 +42112,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24678] = 20, + [22481] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(729), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, - sym_primary_expression, - STATE(1153), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24770] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(816), 1, sym_identifier, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(822), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(772), 1, + STATE(726), 1, sym_primary_expression, STATE(1157), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43732,61 +42185,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24862] = 20, + [22574] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(772), 1, + STATE(726), 1, sym_primary_expression, - STATE(1102), 1, + STATE(1072), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43804,61 +42258,646 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24954] = 20, + [22667] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, + STATE(1196), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22760] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1073), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22853] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1187), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22946] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1189), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23039] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1141), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23132] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1076), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23225] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1063), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23318] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1184), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23411] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, STATE(1082), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(818), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43876,133 +42915,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25046] = 20, + [23504] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, - sym_primary_expression, - STATE(1030), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25138] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1335), 1, + STATE(1312), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44020,61 +42988,135 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25230] = 20, + [23597] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(625), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(757), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(759), 1, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1031), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23690] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(763), 1, + sym_primary_expression, STATE(766), 1, - sym_primary_expression, - STATE(767), 1, sym_string, - STATE(768), 1, + STATE(776), 1, sym_template_string, - STATE(1183), 1, + STATE(1131), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(756), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1104), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44092,61 +43134,281 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25322] = 20, + [23783] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(71), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, sym_string, - STATE(624), 1, + STATE(1277), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23876] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1167), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23969] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(763), 1, + sym_primary_expression, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1106), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(756), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1104), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24062] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1339), 1, + STATE(1066), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44164,61 +43426,135 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25414] = 20, + [24155] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(71), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, sym_string, - STATE(624), 1, + STATE(1216), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24248] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1089), 1, + STATE(1306), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44236,61 +43572,135 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25506] = 20, + [24341] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(680), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(816), 1, + sym_identifier, + ACTIONS(822), 1, + anon_sym_await, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, + sym_template_string, + STATE(726), 1, + sym_primary_expression, + STATE(1065), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(818), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24434] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1366), 1, + STATE(1235), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44308,61 +43718,938 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25598] = 20, + [24527] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1080), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24620] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1158), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24713] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1159), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24806] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1160), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24899] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1161), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24992] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1162), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25085] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1163), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25178] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1164), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25271] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(730), 1, + anon_sym_not, + ACTIONS(732), 1, + anon_sym_lambda, + ACTIONS(734), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(780), 1, + sym_primary_expression, + STATE(1031), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25364] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(754), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(763), 1, + sym_primary_expression, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(1188), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(756), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1104), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25457] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1336), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25550] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1260), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25643] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, STATE(1345), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44380,61 +44667,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25690] = 20, + [25736] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1346), 1, + STATE(1369), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44452,61 +44740,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25782] = 20, + [25829] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, - STATE(1347), 1, + STATE(1349), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -44524,637 +44813,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25874] = 20, + [25922] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1238), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25966] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1063), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26058] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1065), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26150] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1070), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26242] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1350), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26334] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1243), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26426] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1191), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26518] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1227), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26610] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, STATE(1351), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -45172,61 +44886,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26702] = 20, + [26015] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(752), 1, anon_sym_not, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(719), 1, sym_primary_expression, STATE(1352), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -45244,61 +44959,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26794] = 20, + [26108] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, sym_string, - STATE(1163), 1, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1343), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1032), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -45316,1427 +45032,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26886] = 3, + [26201] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1109), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1111), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, + ACTIONS(305), 1, anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(313), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [26943] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1115), 13, - sym__dedent, + ACTIONS(315), 1, sym__string_start, + ACTIONS(317), 1, sym__template_string_start, + ACTIONS(575), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(586), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1113), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, + ACTIONS(752), 1, anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27000] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1119), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1117), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27057] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1123), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1121), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27114] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1127), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1125), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27171] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1131), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1129), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27228] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1133), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1135), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27285] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1139), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1137), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27342] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1109), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1111), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27399] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1133), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1135), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27456] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1143), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1141), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27513] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1147), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1145), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27570] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1143), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1141), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27627] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1147), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1145), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27684] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1153), 1, - anon_sym_case, - STATE(450), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1149), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1151), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27745] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1127), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1125), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27802] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1160), 1, - anon_sym_case, - STATE(460), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1158), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1156), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27863] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1162), 1, - anon_sym_case, - STATE(450), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1158), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1156), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27924] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1115), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1113), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27981] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1131), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1129), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28038] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1119), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1117), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28095] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1139), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1137), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28152] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1164), 1, - sym_identifier, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(298), 10, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_SEMI, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 21, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - anon_sym_is, - [28219] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1123), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1121), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28276] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1166), 1, - anon_sym_case, - STATE(460), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1149), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1151), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28337] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, + STATE(719), 1, sym_primary_expression, - ACTIONS(304), 2, + STATE(1327), 1, + sym_expression, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(1169), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, sym_binary_operator, sym_unary_operator, + sym_attribute, + sym_subscript, sym_call, sym_list, sym_set, @@ -46750,17 +45105,315 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [28429] = 7, + [26294] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1175), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1081), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26387] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1146), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26480] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1355), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26573] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(952), 1, + sym_identifier, + ACTIONS(960), 1, + anon_sym_not, + ACTIONS(962), 1, + anon_sym_lambda, + ACTIONS(964), 1, + anon_sym_await, + STATE(792), 1, + sym_primary_expression, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(1253), 1, + sym_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(954), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1211), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26666] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, anon_sym_COMMA, - ACTIONS(1180), 1, + ACTIONS(283), 1, anon_sym_COLON_EQ, - ACTIONS(1182), 2, + ACTIONS(1100), 1, + anon_sym_for, + ACTIONS(1102), 1, + anon_sym_with, + ACTIONS(1104), 1, + anon_sym_def, + ACTIONS(285), 2, anon_sym_COLON, anon_sym_EQ, - ACTIONS(1184), 13, + ACTIONS(307), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -46774,7 +45427,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1178), 15, + ACTIONS(272), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -46790,7 +45443,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 16, + ACTIONS(303), 16, sym__newline, anon_sym_DOT, anon_sym_LPAREN, @@ -46807,10 +45460,409 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [28493] = 3, + [26739] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1186), 13, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1356), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26832] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(752), 1, + anon_sym_not, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(719), 1, + sym_primary_expression, + STATE(1357), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1032), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26925] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1106), 1, + anon_sym_for, + ACTIONS(1108), 1, + anon_sym_with, + ACTIONS(1110), 1, + anon_sym_def, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [26998] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(349), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_await, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + STATE(765), 1, + sym_primary_expression, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(1242), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(351), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1156), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27091] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1114), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1112), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27149] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1120), 1, + anon_sym_case, + STATE(436), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1118), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1116), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27211] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1127), 1, + anon_sym_case, + STATE(458), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1123), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46824,7 +45876,1341 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1188), 35, + ACTIONS(1125), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27273] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1129), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1131), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27331] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1133), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1135), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27389] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1139), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1137), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27447] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1129), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1131), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27505] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1141), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1143), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27563] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1133), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1135), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27621] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1147), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1145), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27679] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1149), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1151), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27737] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1155), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1153), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27795] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1159), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1157), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27853] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1155), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1153), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27911] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1159), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1157), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27969] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1161), 1, + anon_sym_import, + ACTIONS(1163), 1, + anon_sym_from, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [28039] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1165), 1, + anon_sym_case, + STATE(436), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1123), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1125), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28101] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1167), 1, + sym__string_start, + STATE(1465), 1, + sym_string, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [28171] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1141), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1143), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28229] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1147), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1145), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28287] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1149), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1151), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28345] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1114), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1112), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28403] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1169), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1171), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28461] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1173), 1, + anon_sym_case, + STATE(458), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1118), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1116), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28523] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1169), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1171), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28581] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1139), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1137), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28639] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1176), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1178), 36, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46860,250 +47246,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28549] = 3, + [28696] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1190), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1192), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28605] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [28669] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, + ACTIONS(966), 1, anon_sym_else, STATE(600), 1, sym_else_clause, - ACTIONS(1196), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1194), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28729] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1198), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [28821] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(953), 1, - anon_sym_finally, - STATE(517), 1, - sym_finally_clause, - ACTIONS(1200), 13, + ACTIONS(1180), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47117,7 +47267,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1202), 33, + ACTIONS(1182), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47151,14 +47302,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28881] = 5, + [28757] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, + ACTIONS(946), 1, anon_sym_else, - STATE(595), 1, + STATE(519), 1, sym_else_clause, - ACTIONS(1206), 13, + ACTIONS(1186), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -47172,7 +47323,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1204), 33, + ACTIONS(1184), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47206,14 +47358,126 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28941] = 5, + [28818] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(945), 1, + ACTIONS(966), 1, + anon_sym_else, + STATE(583), 1, + sym_else_clause, + ACTIONS(1188), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1190), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28879] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, + anon_sym_else, + STATE(593), 1, + sym_else_clause, + ACTIONS(1192), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1194), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28940] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(950), 1, anon_sym_finally, - STATE(587), 1, + STATE(546), 1, sym_finally_clause, - ACTIONS(1210), 13, + ACTIONS(1198), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -47227,7 +47491,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1208), 33, + ACTIONS(1196), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47264,574 +47529,7 @@ static const uint16_t ts_small_parse_table[] = { [29001] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1212), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1214), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29057] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(953), 1, - anon_sym_finally, - STATE(530), 1, - sym_finally_clause, - ACTIONS(1210), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1208), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29117] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1186), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1188), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29173] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1219), 1, - anon_sym_COLON_EQ, - ACTIONS(1221), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(1216), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1223), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1173), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(1178), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - [29237] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1001), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(999), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - anon_sym_SEMI, - [29293] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(544), 1, - sym_else_clause, - ACTIONS(1196), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1194), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29353] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(572), 1, - sym_else_clause, - ACTIONS(1227), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1225), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29413] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - ACTIONS(1229), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1356), 1, - sym_pattern, - STATE(1643), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [29507] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(945), 1, - anon_sym_finally, - STATE(574), 1, - sym_finally_clause, ACTIONS(1200), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1202), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29567] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(592), 1, - sym_else_clause, - ACTIONS(1233), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1231), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29627] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(536), 1, - sym_else_clause, - ACTIONS(1233), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47845,7 +47543,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1231), 33, + ACTIONS(1202), 36, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47858,6 +47557,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, + anon_sym_elif, + anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, @@ -47879,17 +47580,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29687] = 5, + [29058] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(528), 1, - sym_else_clause, - ACTIONS(1235), 13, + ACTIONS(1176), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -47900,7 +47597,120 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1237), 33, + ACTIONS(1178), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29115] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1206), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1204), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29172] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + STATE(560), 1, + sym_else_clause, + ACTIONS(1180), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1182), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47934,66 +47744,9 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29747] = 3, + [29233] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1015), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1013), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - anon_sym_SEMI, - [29803] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(539), 1, - sym_else_clause, ACTIONS(1206), 13, sym__string_start, sym__template_string_start, @@ -48008,7 +47761,66 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1204), 33, + ACTIONS(1204), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29290] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + STATE(551), 1, + sym_else_clause, + ACTIONS(1192), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1194), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48042,14 +47854,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29863] = 5, + [29351] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, + ACTIONS(966), 1, anon_sym_else, - STATE(588), 1, + STATE(596), 1, sym_else_clause, - ACTIONS(1239), 13, + ACTIONS(1208), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -48063,7 +47875,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1241), 33, + ACTIONS(1210), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48097,9 +47910,69 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29923] = 3, + [29412] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(966), 1, + anon_sym_else, + STATE(563), 1, + sym_else_clause, + ACTIONS(1212), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1214), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29473] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + STATE(531), 1, + sym_else_clause, ACTIONS(1212), 13, sym__dedent, sym__string_start, @@ -48114,7 +47987,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1214), 35, + ACTIONS(1214), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48127,8 +48001,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_elif, - anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, @@ -48150,19 +48022,271 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29979] = 7, + [29534] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(585), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + ACTIONS(1216), 1, + anon_sym_RPAREN, + ACTIONS(1218), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(1013), 1, + sym_primary_expression, + STATE(1311), 1, + sym_pattern, + STATE(1689), 1, + sym__patterns, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(848), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(694), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [29629] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(966), 1, + anon_sym_else, + STATE(606), 1, + sym_else_clause, + ACTIONS(1186), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1184), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29690] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(970), 1, + anon_sym_finally, + STATE(568), 1, + sym_finally_clause, + ACTIONS(1220), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1222), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29751] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(950), 1, + anon_sym_finally, + STATE(533), 1, + sym_finally_clause, + ACTIONS(1220), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1222), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29812] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, anon_sym_COLON_EQ, - ACTIONS(587), 2, + ACTIONS(1224), 1, + sym_identifier, + ACTIONS(285), 2, anon_sym_COLON, anon_sym_EQ, - ACTIONS(580), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(593), 13, + ACTIONS(303), 10, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_SEMI, + ACTIONS(307), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -48176,29 +48300,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(298), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(265), 15, + ACTIONS(272), 21, anon_sym_STAR, anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR_STAR, anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, anon_sym_SLASH, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -48207,10 +48321,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - [30043] = 3, + anon_sym_is, + [29879] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1190), 13, + ACTIONS(1200), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -48224,7 +48339,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1192), 35, + ACTIONS(1202), 36, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48260,278 +48376,63 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30099] = 5, + [29936] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(560), 1, - sym_else_clause, - ACTIONS(1239), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1241), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30159] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(515), 1, - sym_else_clause, - ACTIONS(1227), 13, + ACTIONS(315), 1, sym__string_start, + ACTIONS(317), 1, sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1225), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, + ACTIONS(692), 1, sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30219] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(585), 1, - sym_else_clause, - ACTIONS(1235), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, + ACTIONS(696), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(704), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1237), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(706), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [30279] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1245), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1243), 34, - anon_sym_import, - anon_sym_from, + ACTIONS(1218), 1, anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30334] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1504), 1, + STATE(998), 1, sym_pattern, - STATE(1716), 1, - sym_pattern_list, - ACTIONS(304), 2, + STATE(1013), 1, + sym_primary_expression, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + ACTIONS(1226), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(848), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1001), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(694), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -48547,15 +48448,257 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [30425] = 6, + [30029] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1175), 1, + ACTIONS(946), 1, + anon_sym_else, + STATE(555), 1, + sym_else_clause, + ACTIONS(1208), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1210), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30090] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(970), 1, + anon_sym_finally, + STATE(587), 1, + sym_finally_clause, + ACTIONS(1198), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1196), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30151] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + ACTIONS(1218), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(998), 1, + sym_pattern, + STATE(1013), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1228), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(848), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(694), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [30244] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(946), 1, + anon_sym_else, + STATE(543), 1, + sym_else_clause, + ACTIONS(1188), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1190), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30305] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1232), 1, anon_sym_COMMA, - ACTIONS(1182), 1, - anon_sym_EQ, - ACTIONS(1184), 14, + ACTIONS(1237), 1, + anon_sym_COLON_EQ, + ACTIONS(1239), 2, anon_sym_COLON, + anon_sym_EQ, + ACTIONS(1241), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -48569,7 +48712,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1178), 15, + ACTIONS(1235), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -48585,7 +48728,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 16, + ACTIONS(1230), 16, sym__newline, anon_sym_DOT, anon_sym_LPAREN, @@ -48602,187 +48745,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [30486] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1247), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1249), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30541] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1251), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1253), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30596] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1461), 1, - sym_pattern, - STATE(1657), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [30687] = 3, + [30369] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1245), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48793,59 +48762,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1243), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30742] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1255), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1257), 34, + ACTIONS(1243), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48880,172 +48798,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30797] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1259), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1261), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30852] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1263), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1265), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30907] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1269), 1, - anon_sym_COMMA, - ACTIONS(1276), 1, - anon_sym_EQ, - ACTIONS(1274), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1272), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [30968] = 3, + [30425] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1247), 13, - sym__dedent, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -49056,59 +48815,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1249), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31023] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1251), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1253), 34, + ACTIONS(1249), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -49143,242 +48851,33 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31078] = 3, + [30481] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(1255), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1257), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31133] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1259), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1261), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31188] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1263), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1265), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31243] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1496), 1, - sym_pattern, - STATE(1661), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [31334] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1221), 1, + ACTIONS(580), 1, + anon_sym_COLON_EQ, + ACTIONS(582), 2, + anon_sym_COLON, anon_sym_EQ, - ACTIONS(1216), 3, + ACTIONS(577), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(1173), 14, + ACTIONS(588), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(303), 14, anon_sym_DOT, anon_sym_LPAREN, anon_sym_if, @@ -49393,22 +48892,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - ACTIONS(1223), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1178), 15, + ACTIONS(272), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -49424,61 +48908,115 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - [31395] = 21, + [30545] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(1253), 13, + sym__dedent, sym__string_start, - ACTIONS(312), 1, sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, anon_sym_LPAREN, - ACTIONS(675), 1, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1500), 1, - sym_pattern, - STATE(1707), 1, - sym_pattern_list, - ACTIONS(304), 2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - STATE(849), 2, + ACTIONS(1251), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30601] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + ACTIONS(1218), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(1013), 1, + sym_primary_expression, + STATE(1478), 1, + sym_pattern, + STATE(1648), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(848), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1001), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(694), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -49494,61 +49032,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31486] = 21, + [30693] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(663), 1, + ACTIONS(692), 1, sym_identifier, - ACTIONS(665), 1, + ACTIONS(696), 1, anon_sym_LPAREN, - ACTIONS(675), 1, + ACTIONS(704), 1, anon_sym_LBRACK, - ACTIONS(677), 1, + ACTIONS(706), 1, anon_sym_await, - ACTIONS(1171), 1, + ACTIONS(1218), 1, anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(1012), 1, + STATE(1013), 1, sym_primary_expression, - STATE(1473), 1, + STATE(1411), 1, sym_pattern, - STATE(1672), 1, + STATE(1612), 1, sym_pattern_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + STATE(848), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1001), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(694), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -49564,85 +49103,19 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31577] = 21, + [30785] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1505), 1, - sym_pattern, - STATE(1719), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [31668] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1280), 1, - anon_sym_COMMA, - ACTIONS(1287), 1, + ACTIONS(1258), 1, + anon_sym_COLON_EQ, + ACTIONS(1260), 2, + anon_sym_COLON, anon_sym_EQ, - ACTIONS(1285), 14, - anon_sym_COLON, + ACTIONS(1255), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1262), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -49656,7 +49129,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1283), 15, + ACTIONS(1230), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + ACTIONS(1235), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -49672,7 +49160,489 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(1278), 16, + [30849] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1247), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1249), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30905] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1064), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1062), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_SEMI, + [30961] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1266), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1264), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31017] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1268), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1270), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31073] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1076), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1074), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_SEMI, + [31129] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1266), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1264), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31185] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + ACTIONS(1218), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(1013), 1, + sym_primary_expression, + STATE(1457), 1, + sym_pattern, + STATE(1595), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(848), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(694), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31277] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1274), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1272), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31333] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, sym__newline, anon_sym_DOT, anon_sym_LPAREN, @@ -49689,1946 +49659,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [31729] = 3, + [31397] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1289), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1291), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31783] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1293), 13, + ACTIONS(315), 1, sym__string_start, + ACTIONS(317), 1, sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1295), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, + ACTIONS(692), 1, sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31837] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1297), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, + ACTIONS(696), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(704), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1299), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(706), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [31891] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1301), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1303), 33, - anon_sym_import, - anon_sym_from, + ACTIONS(1218), 1, anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31945] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1210), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1208), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31999] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1305), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1307), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32053] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1309), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1311), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32107] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1313), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1315), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32161] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1317), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1319), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32215] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1321), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1323), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32269] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1325), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1327), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32323] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1329), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1331), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32377] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1333), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1335), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32431] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1337), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1339), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32485] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1341), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1343), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32539] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1345), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1347), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32593] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1349), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1351), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32647] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1353), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1355), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32701] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1357), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1359), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32755] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1361), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1363), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32809] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1200), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1202), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32863] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(939), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32917] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1365), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1367), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32971] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1369), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1371), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33025] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1373), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1375), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33079] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1377), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1379), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33133] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1381), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1383), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33187] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1385), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1387), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33241] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1389), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1391), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33295] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1393), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1395), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33349] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1397), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1399), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33403] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1401), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1403), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33457] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1405), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1407), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33511] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1409), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1411), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33565] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1413), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1415), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33619] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1417), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1419), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33673] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1421), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1423), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33727] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(1012), 1, + STATE(1013), 1, sym_primary_expression, - STATE(1445), 1, + STATE(1469), 1, sym_pattern, - ACTIONS(304), 2, + STATE(1650), 1, + sym_pattern_list, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + STATE(848), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1001), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(694), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -51644,10 +49730,63 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [33815] = 3, + [31489] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1313), 13, + ACTIONS(1245), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1243), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31545] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1268), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51661,7 +49800,309 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1315), 33, + ACTIONS(1270), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31601] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1253), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1251), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31657] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1274), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1272), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31713] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + ACTIONS(1218), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(1013), 1, + sym_primary_expression, + STATE(1508), 1, + sym_pattern, + STATE(1727), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(848), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(694), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31805] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(692), 1, + sym_identifier, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, + anon_sym_await, + ACTIONS(1218), 1, + anon_sym_STAR, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(1013), 1, + sym_primary_expression, + STATE(1509), 1, + sym_pattern, + STATE(1730), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(848), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(694), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31897] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1278), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1276), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51695,10 +50136,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33869] = 3, + [31952] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(979), 13, + ACTIONS(1282), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51712,7 +50153,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(981), 33, + ACTIONS(1280), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51746,10 +50188,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33923] = 3, + [32007] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1427), 13, + ACTIONS(1286), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51763,7 +50205,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1425), 33, + ACTIONS(1284), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51797,13 +50240,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33977] = 3, + [32062] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1431), 13, - sym__dedent, + ACTIONS(1288), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51814,7 +50257,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1429), 33, + ACTIONS(1290), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51848,13 +50292,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34031] = 3, + [32117] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1435), 13, - sym__dedent, + ACTIONS(1292), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51865,7 +50309,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1433), 33, + ACTIONS(1294), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51899,10 +50344,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34085] = 3, + [32172] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1439), 13, + ACTIONS(1298), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51916,7 +50361,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1437), 33, + ACTIONS(1296), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51950,13 +50396,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34139] = 3, + [32227] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1289), 13, - sym__dedent, + ACTIONS(1300), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51967,7 +50413,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1291), 33, + ACTIONS(1302), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52001,10 +50448,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34193] = 3, + [32282] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1443), 13, + ACTIONS(1306), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52018,7 +50465,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1441), 33, + ACTIONS(1304), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52052,10 +50500,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34247] = 3, + [32337] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1447), 13, + ACTIONS(1310), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52069,7 +50517,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1445), 33, + ACTIONS(1308), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52103,10 +50552,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34301] = 3, + [32392] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1200), 13, + ACTIONS(1220), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52120,7 +50569,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1202), 33, + ACTIONS(1222), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52154,10 +50604,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34355] = 3, + [32447] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(939), 13, + ACTIONS(980), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52171,7 +50621,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(937), 33, + ACTIONS(982), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52205,10 +50656,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34409] = 3, + [32502] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1381), 13, + ACTIONS(1314), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52222,7 +50673,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1383), 33, + ACTIONS(1312), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52256,10 +50708,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34463] = 3, + [32557] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1385), 13, + ACTIONS(1318), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52273,7 +50725,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1387), 33, + ACTIONS(1316), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52307,10 +50760,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34517] = 3, + [32612] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1409), 13, + ACTIONS(1288), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52324,7 +50777,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1411), 33, + ACTIONS(1290), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52358,10 +50812,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34571] = 3, + [32667] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1421), 13, + ACTIONS(1292), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52375,7 +50829,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1423), 33, + ACTIONS(1294), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52409,10 +50864,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34625] = 3, + [32722] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1451), 13, + ACTIONS(1300), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52426,7 +50881,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1449), 33, + ACTIONS(1302), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52460,10 +50916,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34679] = 3, + [32777] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1455), 13, + ACTIONS(1322), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52477,7 +50933,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1453), 33, + ACTIONS(1320), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -52511,622 +50968,2197 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34733] = 3, + [32832] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1326), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1324), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32887] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1330), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1328), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32942] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1334), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1332), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32997] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1336), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33052] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1342), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1340), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33107] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1346), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1344), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33162] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1198), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1196), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33217] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1350), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1348), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33272] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1354), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1352), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33327] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1358), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1356), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33382] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1362), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1360), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33437] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1366), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1364), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33492] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1370), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1368), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33547] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1374), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1372), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33602] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1378), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1376), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33657] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1382), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1380), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33712] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1322), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1320), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33767] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1386), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1384), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33822] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1390), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1388), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33877] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1394), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1392), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33932] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1326), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1324), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33987] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1398), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1396), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34042] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1400), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1402), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34097] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1406), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1404), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34152] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1330), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1328), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34207] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1410), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1408), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34262] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1414), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1412), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34317] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1418), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1416), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34372] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1334), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1332), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34427] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1422), 1, + anon_sym_COMMA, + ACTIONS(1429), 1, + anon_sym_EQ, + ACTIONS(1427), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1425), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [34488] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1433), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1431), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34543] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1437), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1435), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34598] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1439), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34653] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1445), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1443), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34708] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1449), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1447), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34763] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1336), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34818] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1453), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1451), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34873] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1457), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1455), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34928] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(944), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(942), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34983] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1342), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1340), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35038] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1346), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1344), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35093] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1198), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1196), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35148] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1459), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1457), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34787] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1463), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1461), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34841] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1467), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1465), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34895] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1293), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1295), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34949] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1297), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1299), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35003] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1301), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1303), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35057] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1210), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1208), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35111] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1305), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1307), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35165] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1309), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1311), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35219] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1317), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1319), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35273] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1321), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1323), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35327] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1325), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1327), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35381] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1451), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -53140,7 +53172,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1449), 33, + ACTIONS(1461), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53174,13 +53207,68 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35435] = 3, + [35203] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1329), 13, - sym__dedent, + ACTIONS(1465), 1, + anon_sym_COMMA, + ACTIONS(1472), 1, + anon_sym_EQ, + ACTIONS(1470), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1468), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [35264] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1350), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53191,7 +53279,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1331), 33, + ACTIONS(1348), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53225,13 +53314,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35489] = 3, + [35319] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1333), 13, - sym__dedent, + ACTIONS(1354), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53242,7 +53331,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1335), 33, + ACTIONS(1352), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53276,13 +53366,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35543] = 3, + [35374] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1337), 13, - sym__dedent, + ACTIONS(1474), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53293,7 +53383,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1339), 33, + ACTIONS(1476), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53327,13 +53418,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35597] = 3, + [35429] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1341), 13, - sym__dedent, + ACTIONS(1358), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53344,7 +53435,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1343), 33, + ACTIONS(1356), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53378,13 +53470,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35651] = 3, + [35484] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1345), 13, - sym__dedent, + ACTIONS(1362), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53395,7 +53487,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1347), 33, + ACTIONS(1360), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53429,13 +53522,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35705] = 3, + [35539] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1349), 13, - sym__dedent, + ACTIONS(1366), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -53446,7 +53539,164 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1351), 33, + ACTIONS(1364), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35594] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1282), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1280), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35649] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1370), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1368), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35704] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1374), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1372), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53483,7 +53733,7 @@ static const uint16_t ts_small_parse_table[] = { [35759] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1447), 13, + ACTIONS(1378), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -53497,7 +53747,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1445), 33, + ACTIONS(1376), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53531,367 +53782,65 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35813] = 3, + [35814] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1353), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, + ACTIONS(1232), 1, + anon_sym_COMMA, + ACTIONS(1239), 1, + anon_sym_EQ, + ACTIONS(1241), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1235), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1355), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35867] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1357), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 16, + sym__newline, + anon_sym_DOT, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1359), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, + anon_sym_in, + anon_sym_LBRACK, anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35921] = 3, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [35875] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1361), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1363), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35975] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1365), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1367), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36029] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1369), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1371), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36083] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1373), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1375), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36137] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1377), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1379), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36191] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1455), 13, + ACTIONS(1382), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -53905,7 +53854,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1453), 33, + ACTIONS(1380), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53939,10 +53889,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36245] = 3, + [35930] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 13, + ACTIONS(1286), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -53956,7 +53906,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1457), 33, + ACTIONS(1284), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53990,367 +53941,65 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36299] = 3, + [35985] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1389), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, + ACTIONS(1260), 1, + anon_sym_EQ, + ACTIONS(1255), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1230), 14, + anon_sym_DOT, anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + ACTIONS(1262), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1235), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1391), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36353] = 3, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + [36046] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1393), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1395), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36407] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1397), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1399), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36461] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1401), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1403), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36515] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1405), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1407), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36569] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1413), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1415), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36623] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1417), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1419), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36677] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1463), 13, + ACTIONS(1386), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54364,7 +54013,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1461), 33, + ACTIONS(1384), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -54398,10 +54048,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36731] = 3, + [36101] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1467), 13, + ACTIONS(1390), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54415,7 +54065,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1465), 33, + ACTIONS(1388), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -54449,314 +54100,60 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36785] = 3, + [36156] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(979), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(981), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36839] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1427), 13, + ACTIONS(315), 1, sym__string_start, + ACTIONS(317), 1, sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1425), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, + ACTIONS(692), 1, sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36893] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1431), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, + ACTIONS(696), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(704), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1429), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(706), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [36947] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1435), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1433), 33, - anon_sym_import, - anon_sym_from, + ACTIONS(1218), 1, anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [37001] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1439), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1437), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [37055] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, + STATE(1013), 1, sym_primary_expression, - ACTIONS(304), 2, + STATE(1495), 1, + sym_pattern, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + STATE(848), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1001), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(694), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -54772,10 +54169,10 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37143] = 3, + [36245] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1443), 13, + ACTIONS(1394), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54789,7 +54186,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1441), 33, + ACTIONS(1392), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -54823,55 +54221,60 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37197] = 18, + [36300] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(1469), 1, + ACTIONS(692), 1, sym_identifier, - ACTIONS(1475), 1, + ACTIONS(696), 1, + anon_sym_LPAREN, + ACTIONS(704), 1, + anon_sym_LBRACK, + ACTIONS(706), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(1218), 1, + anon_sym_STAR, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(1012), 1, + STATE(998), 1, + sym_pattern, + STATE(1013), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(834), 2, + STATE(848), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(1471), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(306), 4, + STATE(1001), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(1473), 5, + ACTIONS(694), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(725), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -54887,49 +54290,1363 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37279] = 16, + [36389] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(1278), 13, sym__string_start, - ACTIONS(312), 1, sym__template_string_start, - ACTIONS(597), 1, + ts_builtin_sym_end, anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - ACTIONS(1477), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(738), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_TILDE, - ACTIONS(306), 5, + sym_ellipsis, + sym_float, + ACTIONS(1276), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, sym_integer, sym_identifier, + anon_sym_await, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + [36444] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1398), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1396), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36499] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1406), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1404), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36554] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1410), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1408), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36609] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1414), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1412), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36664] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1418), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1416), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36719] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1433), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1431), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36774] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1437), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1435), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36829] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1298), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1296), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36884] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1439), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36939] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1445), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1443), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36994] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1449), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1447), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37049] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1306), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1304), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37104] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1453), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1451), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37159] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1457), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1455), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37214] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1310), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1308), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37269] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1220), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1222), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37324] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(980), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(982), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37379] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1314), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1312), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37434] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1400), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1402), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37489] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(944), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(942), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37544] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1474), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1476), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37599] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1318), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1316), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37654] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1459), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1461), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37709] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(1478), 1, + sym_identifier, + ACTIONS(1484), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(1013), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(859), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(1482), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1480), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [37792] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1486), 1, + anon_sym_not, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(838), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -54947,147 +55664,111 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37355] = 5, + [37869] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 1, - sym__string_start, - STATE(619), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1479), 33, - anon_sym_DOT, + ACTIONS(616), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(622), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37409] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - STATE(620), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1483), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37463] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(81), 1, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(1488), 1, + anon_sym_not, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(809), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [37946] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(594), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(598), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(600), 1, anon_sym_await, - ACTIONS(1487), 1, + ACTIONS(1490), 1, anon_sym_not, - STATE(763), 1, + STATE(769), 1, sym_template_string, - STATE(782), 1, + STATE(775), 1, sym_string, - STATE(800), 1, + STATE(818), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(592), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -55105,196 +55786,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37539] = 5, + [38023] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(1493), 1, - sym__string_start, - STATE(619), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1489), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37593] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1500), 1, - sym__template_string_start, - STATE(620), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1496), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37647] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - STATE(616), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37701] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(1503), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(590), 1, + anon_sym_await, + ACTIONS(1492), 1, anon_sym_not, - STATE(794), 1, + STATE(645), 1, sym_string, - STATE(795), 1, + STATE(658), 1, sym_template_string, - STATE(831), 1, + STATE(758), 1, sym_primary_expression, - ACTIONS(643), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(633), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(953), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -55312,508 +55847,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37777] = 16, + [38100] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(1505), 1, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + ACTIONS(1494), 1, anon_sym_not, - STATE(767), 1, + STATE(645), 1, sym_string, - STATE(768), 1, - sym_template_string, - STATE(788), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37853] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - STATE(617), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37907] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - ACTIONS(1507), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(752), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37983] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - ACTIONS(1509), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(814), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38059] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(843), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38132] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(736), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38205] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(737), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38278] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(738), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38351] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(748), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -55831,163 +55908,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38424] = 15, + [38177] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(658), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(664), 1, anon_sym_LBRACK, - ACTIONS(605), 1, + ACTIONS(666), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(1496), 1, + anon_sym_not, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(749), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38497] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(804), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38570] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, STATE(805), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(662), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56005,47 +55969,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38643] = 15, + [38254] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(594), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(598), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(600), 1, anon_sym_await, - STATE(763), 1, + STATE(769), 1, sym_template_string, - STATE(782), 1, + STATE(775), 1, sym_string, - STATE(796), 1, + STATE(824), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(592), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56063,47 +56028,461 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38716] = 15, + [38328] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(81), 1, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(819), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38402] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(820), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38476] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(856), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38550] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(804), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38624] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(822), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38698] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(801), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38772] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(737), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38846] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(594), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(598), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(600), 1, anon_sym_await, - STATE(763), 1, + STATE(769), 1, sym_template_string, - STATE(782), 1, + STATE(775), 1, sym_string, - STATE(799), 1, + STATE(821), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(592), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56121,47 +56500,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38789] = 15, + [38920] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(639), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(645), 1, + ACTIONS(628), 1, anon_sym_await, - ACTIONS(647), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(632), 1, sym__template_string_start, - STATE(794), 1, + STATE(766), 1, sym_string, - STATE(795), 1, + STATE(776), 1, sym_template_string, - STATE(828), 1, + STATE(802), 1, sym_primary_expression, - ACTIONS(643), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(633), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(953), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56179,47 +56559,109 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38862] = 15, + [38994] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(794), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(1498), 1, + sym_identifier, + ACTIONS(1502), 1, + anon_sym_await, + STATE(645), 1, sym_string, - STATE(795), 1, + STATE(658), 1, sym_template_string, - STATE(829), 1, + STATE(1013), 1, sym_primary_expression, - ACTIONS(643), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + STATE(1004), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 5, + ACTIONS(311), 4, sym_integer, - sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(633), 5, + ACTIONS(1500), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(953), 17, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39072] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(790), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(592), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56237,395 +56679,227 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [38935] = 15, + [39146] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(85), 1, sym__template_string_start, - STATE(794), 1, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, sym_string, - STATE(795), 1, + STATE(789), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(592), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39220] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(791), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(592), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39294] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(1478), 1, + sym_identifier, + ACTIONS(1484), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(1013), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(859), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1480), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39372] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, sym_template_string, STATE(831), 1, sym_primary_expression, - ACTIONS(643), 2, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 5, + ACTIONS(636), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(633), 5, + ACTIONS(638), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39008] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(832), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39081] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(833), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39154] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(835), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39227] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(836), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39300] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(837), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39373] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(844), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56646,624 +56920,45 @@ static const uint16_t ts_small_parse_table[] = { [39446] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(85), 1, sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(786), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39519] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, + ACTIONS(594), 1, anon_sym_LPAREN, - ACTIONS(617), 1, + ACTIONS(598), 1, anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, + ACTIONS(600), 1, anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, + STATE(769), 1, sym_template_string, - STATE(787), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39592] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, + STATE(775), 1, sym_string, - STATE(768), 1, - sym_template_string, - STATE(788), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39665] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(789), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39738] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(743), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39811] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(791), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39884] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(792), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39957] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(793), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40030] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(739), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40103] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(797), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40176] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, STATE(798), 1, sym_primary_expression, - ACTIONS(621), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(611), 5, + ACTIONS(592), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(924), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57281,47 +56976,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40249] = 15, + [39520] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(640), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(646), 1, anon_sym_LBRACK, - ACTIONS(605), 1, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, sym_string, - STATE(624), 1, + STATE(794), 1, sym_template_string, - STATE(759), 1, + STATE(832), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(650), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(644), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(636), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(638), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(970), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57339,47 +57035,284 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40322] = 15, + [39594] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(640), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(646), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, anon_sym_await, - STATE(763), 1, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, sym_template_string, - STATE(782), 1, + STATE(838), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39668] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(817), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(592), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39742] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(840), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39816] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(818), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(592), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39890] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, sym_string, STATE(823), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(592), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(920), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57397,629 +57330,97 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40395] = 15, + [39964] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, + STATE(675), 2, sym_string, - STATE(824), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, + aux_sym_concatenated_string_repeat1, + ACTIONS(1235), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40468] = 15, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40018] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(605), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(740), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40541] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(800), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40614] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(1469), 1, - sym_identifier, - ACTIONS(1475), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(834), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1473), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40691] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(750), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40764] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(751), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40837] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(752), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40910] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(753), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40983] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(734), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41056] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(754), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41129] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(755), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58037,47 +57438,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41202] = 15, + [40092] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(595), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(756), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58095,221 +57497,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41275] = 15, + [40166] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(605), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(741), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41348] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(801), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41421] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(757), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41494] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(758), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58327,47 +57556,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41567] = 15, + [40240] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(595), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(761), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58385,47 +57615,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41640] = 15, + [40314] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(81), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(763), 1, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, - STATE(782), 1, - sym_string, - STATE(811), 1, + STATE(762), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58443,47 +57674,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41713] = 15, + [40388] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(794), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(590), 1, + anon_sym_await, + STATE(645), 1, sym_string, - STATE(795), 1, + STATE(658), 1, sym_template_string, - STATE(845), 1, + STATE(743), 1, sym_primary_expression, - ACTIONS(643), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(633), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(953), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58501,107 +57733,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41786] = 17, + [40462] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(1511), 1, - sym_identifier, - ACTIONS(1515), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(1012), 1, + STATE(739), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1000), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1513), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41863] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(784), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(611), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(924), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58619,569 +57792,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41936] = 15, + [40536] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(81), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, + STATE(645), 1, sym_string, - STATE(802), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42009] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(812), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42082] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(813), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42155] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(814), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42228] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(815), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42301] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(816), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42374] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(817), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42447] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(818), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42520] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(819), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42593] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, STATE(742), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59199,47 +57851,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42666] = 15, + [40610] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, sym_string, - STATE(624), 1, + STATE(776), 1, sym_template_string, - STATE(820), 1, + STATE(809), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(878), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59257,47 +57910,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42739] = 15, + [40684] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, sym_template_string, - STATE(821), 1, + STATE(745), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59315,47 +57969,1316 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42812] = 15, + [40758] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(586), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(590), 1, anon_sym_await, - STATE(621), 1, + STATE(645), 1, sym_string, - STATE(624), 1, + STATE(658), 1, + sym_template_string, + STATE(757), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40832] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(586), 1, + anon_sym_LBRACK, + ACTIONS(590), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(735), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40906] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + STATE(676), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1235), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40960] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(785), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(592), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41034] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(855), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41108] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(866), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41182] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(833), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41256] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(594), 1, + anon_sym_LPAREN, + ACTIONS(598), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(769), 1, + sym_template_string, + STATE(775), 1, + sym_string, + STATE(797), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(592), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(920), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41330] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(845), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41404] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(746), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41478] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(747), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41552] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(748), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41626] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(749), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41700] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(750), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41774] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(751), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41848] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(753), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41922] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(754), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41996] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(799), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42070] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(812), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42144] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + STATE(692), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1506), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1504), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [42198] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + STATE(693), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1510), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1508), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [42252] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(846), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42326] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, sym_template_string, STATE(803), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(662), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59373,47 +59296,638 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42885] = 15, + [42400] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(81), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(658), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(664), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(666), 1, anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, + STATE(645), 1, sym_string, + STATE(658), 1, + sym_template_string, + STATE(826), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42474] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(805), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42548] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(806), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42622] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(807), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42696] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(808), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42770] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(810), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42844] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(811), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42918] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(815), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42992] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(813), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43066] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(814), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(662), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43140] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(658), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_LBRACK, + ACTIONS(666), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, STATE(825), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(662), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59431,47 +59945,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42958] = 15, + [43214] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(767), 1, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, sym_string, - STATE(768), 1, + STATE(658), 1, sym_template_string, - STATE(783), 1, + STATE(744), 1, sym_primary_expression, - ACTIONS(621), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(611), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(924), 17, + STATE(725), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59489,2291 +60004,91 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43031] = 3, + [43288] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1519), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1517), 34, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43079] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 34, + ACTIONS(317), 1, sym__template_string_start, - anon_sym_DOT, + ACTIONS(602), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(645), 1, + sym_string, + STATE(658), 1, + sym_template_string, + STATE(736), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43127] = 3, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(725), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43362] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1527), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 34, + ACTIONS(1516), 1, sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43175] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 34, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43223] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43270] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1539), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1537), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43317] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43364] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1547), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1545), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43411] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1551), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1549), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43458] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43505] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43552] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1559), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1557), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43599] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43646] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43693] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43740] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43787] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43834] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [43881] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1283), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [43928] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43975] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1587), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1585), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44022] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1591), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44069] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44116] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44163] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1605), 1, - anon_sym_PIPE, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1613), 1, - anon_sym_EQ, - ACTIONS(1617), 1, - anon_sym_not, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1625), 1, - anon_sym_is, - STATE(991), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1623), 2, - anon_sym_LT, - anon_sym_GT, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1603), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [44244] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1627), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44291] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44338] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1637), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1635), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44385] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44432] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44479] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1613), 1, - anon_sym_as, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1653), 1, - anon_sym_not, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1661), 1, - anon_sym_is, - STATE(992), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1659), 2, - anon_sym_LT, - anon_sym_GT, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1643), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [44560] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1663), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44607] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1669), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1667), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44654] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44701] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1677), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1675), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44748] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1681), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1679), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44795] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44842] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1685), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1683), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44889] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1689), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1687), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44936] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 24, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44996] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1695), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45052] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45108] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45170] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1701), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1699), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45240] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45308] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 24, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45368] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45424] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45490] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45554] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - STATE(746), 2, + STATE(692), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 4, + ACTIONS(1514), 6, + anon_sym_as, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1479), 31, + ACTIONS(1512), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -61797,20 +60112,2092 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45604] = 5, + [43416] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(649), 1, + ACTIONS(1523), 1, sym__template_string_start, - STATE(747), 2, + STATE(693), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 4, + ACTIONS(1521), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1519), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43470] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(766), 1, + sym_string, + STATE(776), 1, + sym_template_string, + STATE(816), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(878), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43544] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(640), 1, + anon_sym_LPAREN, + ACTIONS(646), 1, + anon_sym_LBRACK, + ACTIONS(648), 1, + anon_sym_LBRACE, + ACTIONS(652), 1, + anon_sym_await, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + STATE(793), 1, + sym_string, + STATE(794), 1, + sym_template_string, + STATE(841), 1, + sym_primary_expression, + ACTIONS(650), 2, + sym_ellipsis, + sym_float, + ACTIONS(644), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(636), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(638), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(970), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43618] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1528), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1526), 34, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43666] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1532), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 34, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43714] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1536), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1534), 34, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43762] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 34, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43810] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1425), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [43857] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1544), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1542), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43904] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1548), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1546), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43951] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43998] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1556), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1554), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44045] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1556), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1554), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44092] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1560), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1558), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44139] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44186] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1564), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1562), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44233] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1568), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1566), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44280] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1572), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1570), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44327] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1568), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1566), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44374] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1576), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1574), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44421] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1578), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44468] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1584), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1582), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44515] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1588), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1586), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44562] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1592), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1590), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44609] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1596), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1594), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44656] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1600), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1598), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44703] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1614), 1, + anon_sym_PIPE, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + ACTIONS(1622), 1, + anon_sym_EQ, + ACTIONS(1626), 1, + anon_sym_not, + ACTIONS(1628), 1, + anon_sym_AMP, + ACTIONS(1630), 1, + anon_sym_CARET, + ACTIONS(1634), 1, + anon_sym_is, + STATE(993), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1610), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1616), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1632), 2, + anon_sym_LT, + anon_sym_GT, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1612), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1606), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [44784] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1468), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [44831] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1638), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1636), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44878] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44925] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1646), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1644), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44972] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45019] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1235), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45066] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1622), 1, + anon_sym_as, + ACTIONS(1658), 1, + anon_sym_PIPE, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1666), 1, + anon_sym_not, + ACTIONS(1668), 1, + anon_sym_AMP, + ACTIONS(1670), 1, + anon_sym_CARET, + ACTIONS(1674), 1, + anon_sym_is, + STATE(990), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1654), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1672), 2, + anon_sym_LT, + anon_sym_GT, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1656), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1606), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [45147] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45194] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45241] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1578), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45288] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1588), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1586), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45335] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45382] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45429] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45476] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45523] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45579] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1658), 1, + anon_sym_PIPE, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1668), 1, + anon_sym_AMP, + ACTIONS(1670), 1, + anon_sym_CARET, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1654), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1706), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45649] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1702), 5, + anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1483), 31, + ACTIONS(1700), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45705] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1708), 1, + sym__template_string_start, + STATE(738), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1521), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1519), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61842,20 +62229,685 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45654] = 5, + [45755] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1703), 1, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + ACTIONS(1630), 1, + anon_sym_CARET, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1610), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1616), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45821] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1717), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1715), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45877] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1717), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1715), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45933] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1610), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1616), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45997] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46053] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1658), 1, + anon_sym_PIPE, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1668), 1, + anon_sym_AMP, + ACTIONS(1670), 1, + anon_sym_CARET, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1654), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1721), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1719), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46123] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1614), 1, + anon_sym_PIPE, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + ACTIONS(1628), 1, + anon_sym_AMP, + ACTIONS(1630), 1, + anon_sym_CARET, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1610), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1616), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1721), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1719), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46193] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46249] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46311] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1658), 1, + anon_sym_PIPE, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1668), 1, + anon_sym_AMP, + ACTIONS(1670), 1, + anon_sym_CARET, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1654), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1725), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1723), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46381] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1668), 1, + anon_sym_AMP, + ACTIONS(1670), 1, + anon_sym_CARET, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1654), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46449] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 24, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46509] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46565] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1727), 1, sym__string_start, - STATE(746), 2, + STATE(752), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 4, + ACTIONS(1514), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1489), 31, + ACTIONS(1512), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61887,20 +62939,379 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45704] = 5, + [46615] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1706), 1, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1670), 1, + anon_sym_CARET, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1654), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46681] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1662), 1, + anon_sym_STAR_STAR, + ACTIONS(1652), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1654), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1660), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1664), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46745] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46801] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1616), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46863] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1614), 1, + anon_sym_PIPE, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + ACTIONS(1628), 1, + anon_sym_AMP, + ACTIONS(1630), 1, + anon_sym_CARET, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1610), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1616), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1706), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46933] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1614), 1, + anon_sym_PIPE, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1620), 1, + anon_sym_STAR_STAR, + ACTIONS(1628), 1, + anon_sym_AMP, + ACTIONS(1630), 1, + anon_sym_CARET, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1610), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1616), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1725), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1723), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47003] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + STATE(752), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1506), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1504), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47053] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, sym__template_string_start, - STATE(747), 2, + STATE(738), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 4, + ACTIONS(1510), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1496), 31, + ACTIONS(1508), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61932,306 +63343,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45754] = 15, + [47103] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1602), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1604), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1618), 1, anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, + ACTIONS(1620), 1, anon_sym_STAR_STAR, - ACTIONS(1655), 1, + ACTIONS(1628), 1, anon_sym_AMP, - ACTIONS(1657), 1, + ACTIONS(1630), 1, anon_sym_CARET, - ACTIONS(1639), 2, + ACTIONS(1608), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1641), 2, + ACTIONS(1610), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1647), 2, + ACTIONS(1616), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(733), 2, + STATE(734), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1651), 3, + ACTIONS(1624), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1709), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45824] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1715), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1713), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45894] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45950] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, + ACTIONS(1713), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46012] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1605), 1, - anon_sym_PIPE, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1701), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1699), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46082] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 18, + ACTIONS(1711), 18, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -62250,27 +63397,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46150] = 8, + [47171] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1602), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1604), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1618), 1, anon_sym_LBRACK, - ACTIONS(1611), 1, + ACTIONS(1620), 1, anon_sym_STAR_STAR, - STATE(733), 2, + ACTIONS(1608), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(734), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, + ACTIONS(1624), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1713), 3, anon_sym_EQ, - anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 27, + ACTIONS(1711), 24, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -62283,12 +63435,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, @@ -62298,242 +63447,79 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46206] = 13, + [47231] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1622), 1, + anon_sym_EQ, + ACTIONS(1730), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1732), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1740), 1, + anon_sym_PIPE, + ACTIONS(1744), 1, anon_sym_LBRACK, - ACTIONS(1611), 1, + ACTIONS(1746), 1, anon_sym_STAR_STAR, - ACTIONS(1621), 1, + ACTIONS(1750), 1, + anon_sym_not, + ACTIONS(1752), 1, + anon_sym_AMP, + ACTIONS(1754), 1, anon_sym_CARET, - ACTIONS(1599), 2, + ACTIONS(1758), 1, + anon_sym_is, + STATE(1005), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1734), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1601), 2, + ACTIONS(1736), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1607), 2, + ACTIONS(1742), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(733), 2, + ACTIONS(1756), 2, + anon_sym_LT, + anon_sym_GT, + STATE(903), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1615), 3, + ACTIONS(1748), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, + ACTIONS(1738), 6, anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - anon_sym_is, - [46272] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 20, - anon_sym_RPAREN, + ACTIONS(1606), 7, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46336] = 15, + anon_sym_COLON2, + sym_type_conversion, + [47310] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1605), 1, - anon_sym_PIPE, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1709), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46406] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1605), 1, - anon_sym_PIPE, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1715), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1713), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46476] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1717), 27, + ACTIONS(303), 31, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -62544,8 +63530,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -62561,117 +63549,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46532] = 8, + [47357] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1622), 1, + anon_sym_EQ, + ACTIONS(1760), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1762), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1770), 1, + anon_sym_PIPE, + ACTIONS(1774), 1, anon_sym_LBRACK, - ACTIONS(1649), 1, + ACTIONS(1776), 1, anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, - anon_sym_as, + ACTIONS(1780), 1, + anon_sym_not, + ACTIONS(1782), 1, + anon_sym_AMP, + ACTIONS(1784), 1, + anon_sym_CARET, + ACTIONS(1788), 1, + anon_sym_is, + STATE(1008), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1764), 2, anon_sym_STAR, anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1695), 27, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(1766), 2, anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, + anon_sym_LT_LT, + ACTIONS(1772), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, + ACTIONS(1786), 2, + anon_sym_LT, + anon_sym_GT, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1778), 3, anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, + ACTIONS(1768), 6, + anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - anon_sym_is, - [46588] = 8, + ACTIONS(1606), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [47436] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, + ACTIONS(630), 1, + sym__string_start, + STATE(767), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1235), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1717), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46644] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1721), 1, - sym__template_string_start, - STATE(762), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1496), 29, + ACTIONS(1230), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -62701,21 +63652,326 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [46693] = 5, + [47485] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(83), 1, + ACTIONS(630), 1, + sym__string_start, + STATE(770), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1506), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1504), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [47534] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(632), 1, + sym__template_string_start, + STATE(771), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1510), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1508), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [47583] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(85), 1, + sym__template_string_start, + STATE(774), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1235), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [47632] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1790), 1, + sym__string_start, + STATE(770), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1514), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1512), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [47681] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1793), 1, + sym__template_string_start, + STATE(771), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1521), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1519), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [47730] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1425), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 32, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47775] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(580), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 6, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47822] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(85), 1, sym__template_string_start, STATE(778), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 5, + ACTIONS(1510), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(1508), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -62745,849 +64001,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [46742] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1283), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 32, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46787] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(81), 1, - sym__string_start, - STATE(775), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1479), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [46836] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1613), 1, - anon_sym_EQ, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1744), 1, - anon_sym_not, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1752), 1, - anon_sym_is, - STATE(1006), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1750), 2, - anon_sym_LT, - anon_sym_GT, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1732), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [46915] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(625), 1, - sym__string_start, - STATE(769), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [46964] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__template_string_start, - STATE(770), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47013] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(625), 1, - sym__string_start, - STATE(771), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1479), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47062] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__template_string_start, - STATE(762), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1483), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47111] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1754), 1, - sym__string_start, - STATE(771), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1489), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47160] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1771), 1, - anon_sym_not, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1779), 1, - anon_sym_is, - STATE(997), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1777), 2, - anon_sym_LT, - anon_sym_GT, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1761), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [47237] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(585), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 6, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47284] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1219), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 6, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47331] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1781), 1, - sym__string_start, - STATE(775), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1489), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47380] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1784), 1, - sym__template_string_start, - STATE(776), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1496), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47429] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 32, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47474] = 5, + [47871] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(83), 1, - sym__template_string_start, - STATE(776), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1483), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47523] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1613), 1, - anon_sym_EQ, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1807), 1, - anon_sym_not, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1815), 1, - anon_sym_is, - STATE(1002), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1813), 2, - anon_sym_LT, - anon_sym_GT, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1795), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [47602] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(599), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47649] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1817), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47696] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(81), 1, sym__string_start, - STATE(765), 2, + STATE(782), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 5, + ACTIONS(1235), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(1230), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -63617,716 +64045,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [47745] = 10, + [47920] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 22, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47803] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47857] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1695), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47911] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47965] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 20, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48025] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1701), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48093] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48159] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1695), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48213] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48267] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48331] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48393] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - STATE(744), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48441] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(649), 1, + ACTIONS(632), 1, sym__template_string_start, - STATE(745), 2, + STATE(768), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48489] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, + ACTIONS(1235), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48543] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, + ACTIONS(1230), 29, anon_sym_DOT, - ACTIONS(1726), 1, anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1711), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1709), 15, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -64335,418 +64089,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [48611] = 15, + [47969] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, + ACTIONS(1468), 5, anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1715), 3, anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48679] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 20, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48739] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1701), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48807] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 16, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48873] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 22, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48931] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 4, - anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1717), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48985] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [49049] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [49111] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1519), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1517), 32, - sym__string_start, + ACTIONS(1463), 32, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -64755,6 +64107,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, + anon_sym_else, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -64778,31 +64131,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49155] = 3, + [48014] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1523), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 32, + ACTIONS(1796), 1, sym__template_string_start, + STATE(778), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1521), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1519), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -64819,111 +64174,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49199] = 3, + anon_sym_SEMI, + [48063] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1527), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 32, + ACTIONS(1799), 1, sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49243] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 32, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49287] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, + STATE(779), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1514), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1695), 25, + ACTIONS(1512), 29, sym__newline, + anon_sym_DOT, anon_sym_from, + anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -64931,6 +64201,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -64947,1197 +64219,135 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [49341] = 8, + [48112] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(1787), 1, + ACTIONS(1602), 1, anon_sym_DOT, - ACTIONS(1789), 1, + ACTIONS(1604), 1, anon_sym_LPAREN, - ACTIONS(1801), 1, + ACTIONS(1618), 1, anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, + ACTIONS(1808), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [49395] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, + ACTIONS(1812), 1, anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, + ACTIONS(1816), 1, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + ACTIONS(1818), 1, anon_sym_AMP, + ACTIONS(1820), 1, anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, + ACTIONS(1824), 1, anon_sym_is, - [49449] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 21, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49509] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1701), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49577] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49643] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 23, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49701] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49755] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49819] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 19, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49881] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1711), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1709), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49949] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1715), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50017] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1829), 1, - anon_sym_PIPE, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1839), 1, - anon_sym_not, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1847), 1, - anon_sym_is, - STATE(1009), 1, + STATE(1006), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1823), 2, + ACTIONS(1802), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1825), 2, + ACTIONS(1804), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1831), 2, + ACTIONS(1810), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1845), 2, + ACTIONS(1822), 2, anon_sym_LT, anon_sym_GT, - STATE(977), 2, + STATE(734), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1837), 3, + ACTIONS(1814), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1827), 6, + ACTIONS(1806), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1597), 7, - anon_sym_RPAREN, + ACTIONS(1606), 8, anon_sym_COMMA, - anon_sym_as, anon_sym_if, anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [50093] = 15, + [48189] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1711), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1709), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50161] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1715), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50229] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50283] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(278), 1, + ACTIONS(1258), 1, anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(1235), 6, anon_sym_STAR, + anon_sym_COLON, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, - sym__newline, + ACTIONS(1230), 30, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50328] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 30, - sym__newline, - sym__template_string_start, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50371] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50424] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50483] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 30, - sym__newline, - sym__template_string_start, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, + anon_sym_else, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50526] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1829), 1, - anon_sym_PIPE, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1701), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50593] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 16, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50658] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50715] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1173), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1178), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1223), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48236] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym__string_start, + STATE(779), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1506), 5, + anon_sym_STAR, anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [50760] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 25, - anon_sym_RPAREN, + ACTIONS(1504), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -66153,159 +64363,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [50813] = 13, + anon_sym_SEMI, + [48285] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50876] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50937] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1267), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1272), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1274), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [50982] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(599), 1, + ACTIONS(1826), 1, anon_sym_COLON_EQ, - ACTIONS(651), 1, - anon_sym_EQ, - ACTIONS(265), 4, + ACTIONS(1235), 5, + anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(1230), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -66319,6 +64389,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -66335,20 +64407,126 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51029] = 4, + [48332] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(613), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1717), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1715), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48386] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + ACTIONS(1784), 1, + anon_sym_CARET, + ACTIONS(1764), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1766), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1772), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 17, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48450] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1717), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1715), 25, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -66356,7 +64534,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48504] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1532), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 32, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, @@ -66374,21 +64591,583 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, + [48548] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1536), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1534), 32, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48592] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1770), 1, + anon_sym_PIPE, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + ACTIONS(1782), 1, + anon_sym_AMP, + ACTIONS(1784), 1, + anon_sym_CARET, + ACTIONS(1764), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1766), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1772), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1721), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1719), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48660] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1770), 1, + anon_sym_PIPE, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + ACTIONS(1782), 1, + anon_sym_AMP, + ACTIONS(1784), 1, + anon_sym_CARET, + ACTIONS(1764), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1766), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1772), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1706), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1704), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48728] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48782] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1838), 1, + anon_sym_PIPE, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1848), 1, + anon_sym_not, + ACTIONS(1850), 1, + anon_sym_AMP, + ACTIONS(1852), 1, + anon_sym_CARET, + ACTIONS(1856), 1, + anon_sym_is, + STATE(1010), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1834), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1854), 2, + anon_sym_LT, + anon_sym_GT, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1836), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1606), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [48858] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + STATE(759), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1235), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48906] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + sym__template_string_start, + STATE(760), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1235), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48954] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1528), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1526), 32, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48998] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 32, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49042] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49096] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49150] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51074] = 3, + [49204] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1527), 5, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1717), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1525), 30, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1715), 25, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -66396,9 +65175,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, anon_sym_RBRACE, - anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -66416,32 +65193,132 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51117] = 4, + [49258] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1849), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 5, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, anon_sym_STAR, - anon_sym_COLON, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1711), 25, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49312] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + ACTIONS(1734), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1742), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 20, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49372] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, anon_sym_async, anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, anon_sym_RBRACE, - anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -66457,48 +65334,755 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51162] = 15, + [49426] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1819), 1, + ACTIONS(1730), 1, anon_sym_DOT, - ACTIONS(1821), 1, + ACTIONS(1732), 1, anon_sym_LPAREN, - ACTIONS(1829), 1, + ACTIONS(1740), 1, anon_sym_PIPE, - ACTIONS(1833), 1, + ACTIONS(1744), 1, anon_sym_LBRACK, - ACTIONS(1835), 1, + ACTIONS(1746), 1, anon_sym_STAR_STAR, - ACTIONS(1841), 1, + ACTIONS(1752), 1, anon_sym_AMP, - ACTIONS(1843), 1, + ACTIONS(1754), 1, anon_sym_CARET, - ACTIONS(1711), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, + ACTIONS(1734), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1825), 2, + ACTIONS(1736), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1831), 2, + ACTIONS(1742), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(977), 2, + STATE(903), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1837), 3, + ACTIONS(1721), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1709), 15, - anon_sym_RPAREN, + ACTIONS(1719), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49494] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1808), 1, + anon_sym_PIPE, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1818), 1, + anon_sym_AMP, + ACTIONS(1820), 1, + anon_sym_CARET, + ACTIONS(1725), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1804), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1810), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1723), 16, anon_sym_COMMA, - anon_sym_as, anon_sym_if, anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49562] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1818), 1, + anon_sym_AMP, + ACTIONS(1820), 1, + anon_sym_CARET, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1804), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1810), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 17, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49628] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 23, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49686] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49740] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1740), 1, + anon_sym_PIPE, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 1, + anon_sym_AMP, + ACTIONS(1754), 1, + anon_sym_CARET, + ACTIONS(1734), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1736), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1742), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1725), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1723), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49808] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1820), 1, + anon_sym_CARET, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1804), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1810), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 18, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49872] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1804), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1810), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 19, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49934] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 1, + anon_sym_AMP, + ACTIONS(1754), 1, + anon_sym_CARET, + ACTIONS(1734), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1736), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1742), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50000] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1808), 1, + anon_sym_PIPE, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1818), 1, + anon_sym_AMP, + ACTIONS(1820), 1, + anon_sym_CARET, + ACTIONS(1721), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1804), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1810), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1719), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50068] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1808), 1, + anon_sym_PIPE, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1818), 1, + anon_sym_AMP, + ACTIONS(1820), 1, + anon_sym_CARET, + ACTIONS(1706), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1804), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1810), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1704), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50136] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + ACTIONS(1734), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 22, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50194] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50248] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + ACTIONS(1764), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1772), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 20, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [50308] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1770), 1, + anon_sym_PIPE, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + ACTIONS(1782), 1, + anon_sym_AMP, + ACTIONS(1784), 1, + anon_sym_CARET, + ACTIONS(1764), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1766), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1772), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1725), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1723), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, anon_sym_in, anon_sym_not, anon_sym_and, @@ -66509,49 +66093,200 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51229] = 15, + anon_sym_SEMI, + [50376] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1819), 1, + ACTIONS(1730), 1, anon_sym_DOT, - ACTIONS(1821), 1, + ACTIONS(1732), 1, anon_sym_LPAREN, - ACTIONS(1829), 1, - anon_sym_PIPE, - ACTIONS(1833), 1, + ACTIONS(1744), 1, anon_sym_LBRACK, - ACTIONS(1835), 1, + ACTIONS(1746), 1, anon_sym_STAR_STAR, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, + ACTIONS(1754), 1, anon_sym_CARET, - ACTIONS(1715), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, + ACTIONS(1734), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1825), 2, + ACTIONS(1736), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1831), 2, + ACTIONS(1742), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(977), 2, + STATE(903), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1837), 3, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1713), 15, - anon_sym_RPAREN, + ACTIONS(1711), 17, anon_sym_COMMA, - anon_sym_as, anon_sym_if, - anon_sym_COLON, anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50440] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + ACTIONS(1734), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1736), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1742), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 18, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50502] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + ACTIONS(1764), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1766), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1772), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 18, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [50564] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1730), 1, + anon_sym_DOT, + ACTIONS(1732), 1, + anon_sym_LPAREN, + ACTIONS(1740), 1, + anon_sym_PIPE, + ACTIONS(1744), 1, + anon_sym_LBRACK, + ACTIONS(1746), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 1, + anon_sym_AMP, + ACTIONS(1754), 1, + anon_sym_CARET, + ACTIONS(1734), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1736), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1742), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(903), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1706), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1748), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1704), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, anon_sym_not, anon_sym_and, anon_sym_or, @@ -66561,36 +66296,139 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51296] = 8, + anon_sym_COLON2, + sym_type_conversion, + [50632] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(1819), 1, + ACTIONS(1760), 1, anon_sym_DOT, - ACTIONS(1821), 1, + ACTIONS(1762), 1, anon_sym_LPAREN, - ACTIONS(1833), 1, + ACTIONS(1774), 1, anon_sym_LBRACK, - ACTIONS(1835), 1, + ACTIONS(1776), 1, anon_sym_STAR_STAR, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 4, + ACTIONS(1782), 1, + anon_sym_AMP, + ACTIONS(1784), 1, + anon_sym_CARET, + ACTIONS(1764), 2, anon_sym_STAR, anon_sym_SLASH, + ACTIONS(1766), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1772), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1717), 25, - anon_sym_RPAREN, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 16, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [50698] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 1, + anon_sym_DOT, + ACTIONS(1762), 1, + anon_sym_LPAREN, + ACTIONS(1774), 1, + anon_sym_LBRACK, + ACTIONS(1776), 1, + anon_sym_STAR_STAR, + ACTIONS(1764), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(900), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 22, + sym__newline, + anon_sym_from, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [50756] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -66606,57 +66444,106 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51349] = 22, + [50810] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, + ACTIONS(1602), 1, + anon_sym_DOT, + ACTIONS(1604), 1, + anon_sym_LPAREN, + ACTIONS(1618), 1, + anon_sym_LBRACK, + ACTIONS(1812), 1, + anon_sym_STAR_STAR, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1802), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1810), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(734), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1814), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 21, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50870] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(1851), 1, + ACTIONS(1858), 1, sym_identifier, - ACTIONS(1853), 1, + ACTIONS(1860), 1, anon_sym_LPAREN, - ACTIONS(1855), 1, + ACTIONS(1862), 1, anon_sym_STAR, - ACTIONS(1857), 1, - anon_sym_if, - ACTIONS(1859), 1, - anon_sym_COLON, - ACTIONS(1861), 1, + ACTIONS(1864), 1, anon_sym_DASH, - ACTIONS(1863), 1, + ACTIONS(1866), 1, sym_match_wildcard_pattern, - ACTIONS(1865), 1, + ACTIONS(1868), 1, anon_sym_LBRACK, - ACTIONS(1867), 1, + ACTIONS(1870), 1, anon_sym_LBRACE, - ACTIONS(1869), 1, + ACTIONS(1872), 1, sym_integer, - ACTIONS(1871), 1, + ACTIONS(1874), 1, sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, + STATE(1035), 1, sym_template_string, - STATE(1680), 1, + STATE(1061), 1, + sym_string, + STATE(1714), 1, sym_pattern_class_name, - STATE(1140), 2, + STATE(1168), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1184), 2, + STATE(1215), 2, sym__match_or_pattern, sym_match_or_pattern, - ACTIONS(1873), 3, + STATE(1467), 2, + sym__match_patterns, + sym_open_sequence_match_pattern, + STATE(1504), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1585), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1876), 3, sym_true, sym_false, sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, + STATE(1139), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -66665,20 +66552,424 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, + [50951] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1826), 1, + anon_sym_COLON_EQ, + ACTIONS(1878), 1, + anon_sym_EQ, + ACTIONS(1235), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50998] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1880), 1, + anon_sym_COLON_EQ, + ACTIONS(1235), 5, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51043] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1503), 2, + sym__match_patterns, + sym_open_sequence_match_pattern, + STATE(1504), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1585), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [51124] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51177] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51236] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51289] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1463), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1468), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1470), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [51334] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1717), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1715), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51387] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1532), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 30, + sym__newline, + sym__string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, [51430] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1519), 5, + ACTIONS(1536), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1517), 30, - sym__newline, - sym__string_start, + ACTIONS(1534), 30, + sym__template_string_start, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -66688,6 +66979,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -66704,27 +66996,1275 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [51473] = 8, + anon_sym_COLON2, + sym_type_conversion, + [51473] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1819), 1, + ACTIONS(1828), 1, anon_sym_DOT, - ACTIONS(1821), 1, + ACTIONS(1830), 1, anon_sym_LPAREN, - ACTIONS(1833), 1, + ACTIONS(1838), 1, + anon_sym_PIPE, + ACTIONS(1842), 1, anon_sym_LBRACK, - ACTIONS(1835), 1, + ACTIONS(1844), 1, anon_sym_STAR_STAR, - STATE(977), 2, + ACTIONS(1850), 1, + anon_sym_AMP, + ACTIONS(1852), 1, + anon_sym_CARET, + ACTIONS(1725), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1834), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(979), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1697), 4, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1723), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51540] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(303), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(272), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(307), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [51585] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1850), 1, + anon_sym_AMP, + ACTIONS(1852), 1, + anon_sym_CARET, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1834), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 16, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51650] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51707] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(277), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(272), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1695), 25, + ACTIONS(303), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51754] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1528), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1526), 30, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51797] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [51842] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1852), 1, + anon_sym_CARET, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1834), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51905] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1713), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1834), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1711), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51966] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1882), 1, + anon_sym_if, + ACTIONS(1884), 1, + anon_sym_COLON, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1293), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [52047] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1230), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1235), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1241), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [52092] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1826), 1, + anon_sym_COLON_EQ, + ACTIONS(1232), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1235), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52139] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(660), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52184] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1237), 1, + anon_sym_COLON_EQ, + ACTIONS(1235), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [52229] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1528), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1526), 30, + sym__newline, + sym__string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [52272] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1532), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 30, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [52315] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(303), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(272), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(588), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [52360] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1838), 1, + anon_sym_PIPE, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1850), 1, + anon_sym_AMP, + ACTIONS(1852), 1, + anon_sym_CARET, + ACTIONS(1721), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1834), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1719), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52427] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1838), 1, + anon_sym_PIPE, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + ACTIONS(1850), 1, + anon_sym_AMP, + ACTIONS(1852), 1, + anon_sym_CARET, + ACTIONS(1706), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1832), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1834), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1840), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1846), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1704), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52494] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 30, + sym__newline, + sym__template_string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [52537] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1886), 1, + anon_sym_if, + ACTIONS(1888), 1, + anon_sym_COLON, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1293), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [52618] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1230), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1235), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1262), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [52663] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1536), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1534), 30, + sym__newline, + sym__template_string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [52706] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1420), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1425), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1427), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [52751] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(634), 1, + anon_sym_EQ, + ACTIONS(272), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52798] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1890), 1, + anon_sym_COLON_EQ, + ACTIONS(1235), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [52843] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 30, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [52886] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(618), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [52931] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_DOT, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1842), 1, + anon_sym_LBRACK, + ACTIONS(1844), 1, + anon_sym_STAR_STAR, + STATE(979), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1713), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1711), 25, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66750,58 +68290,94 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51526] = 4, + [52984] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1173), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1178), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1184), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [51571] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1519), 5, + ACTIONS(1600), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1517), 30, - sym__string_start, + ACTIONS(1598), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53026] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53068] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1544), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1542), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -66831,17 +68407,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51614] = 3, + [53110] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1531), 5, + ACTIONS(1588), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1529), 30, - sym__template_string_start, + ACTIONS(1586), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -66871,2402 +68446,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51657] = 5, + [53152] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1817), 1, + ACTIONS(1892), 1, anon_sym_COLON_EQ, - ACTIONS(1875), 1, - anon_sym_EQ, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51704] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1180), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [51749] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1877), 1, - anon_sym_if, - ACTIONS(1879), 1, - anon_sym_COLON, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [51830] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(298), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(265), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(302), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [51875] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1390), 2, - sym__match_patterns, - sym_open_sequence_match_pattern, - STATE(1391), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1509), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [51956] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1278), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1283), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1285), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [52001] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1817), 1, - anon_sym_COLON_EQ, - ACTIONS(1175), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52048] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 30, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52091] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(298), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(265), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(593), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [52136] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1527), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 30, - sym__newline, - sym__string_start, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [52179] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1391), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1456), 2, - sym__match_patterns, - sym_open_sequence_match_pattern, - STATE(1509), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [52260] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(655), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(1235), 5, anon_sym_STAR, anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52305] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(599), 1, - anon_sym_COLON_EQ, - ACTIONS(270), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(265), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52352] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52397] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1627), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52439] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1591), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [52481] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52523] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52565] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52607] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1283), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52649] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1559), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1557), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52691] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52733] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52775] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52817] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1001), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(999), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52859] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52901] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1685), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1683), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [52943] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52985] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1663), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53027] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1669), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1667), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53069] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53111] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1677), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1675), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53153] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1681), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1679), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53195] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53237] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1559), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1557), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53279] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1637), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1635), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53321] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1539), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1537), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53363] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1547), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1545), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53405] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1015), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1013), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53447] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53489] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53531] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53573] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1591), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53615] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53657] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1685), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1683), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53699] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53741] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53783] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1551), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1549), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53825] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53867] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53909] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53951] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53993] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1689), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1687), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54035] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54077] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1689), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1687), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54119] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54161] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54203] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54245] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1663), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54287] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(635), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 5, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 28, + ACTIONS(1230), 28, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -69295,18 +68486,329 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54331] = 4, + [53196] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1883), 1, + ACTIONS(1232), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1235), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53240] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1568), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1566), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53282] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1894), 1, + anon_sym_RPAREN, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1293), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [53360] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1894), 1, + anon_sym_RBRACK, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1293), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [53438] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1572), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1570), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53480] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1422), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1425), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53524] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1235), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53566] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(642), 1, anon_sym_COLON_EQ, - ACTIONS(1178), 5, + ACTIONS(272), 5, anon_sym_STAR, anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 28, + ACTIONS(303), 28, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -69335,447 +68837,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54375] = 3, + [53610] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1669), 5, + ACTIONS(1568), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1667), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54417] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54459] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1175), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [54503] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1551), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1549), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54545] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54587] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1283), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54629] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1269), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1272), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [54673] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54715] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1677), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1675), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54757] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1681), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1679), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54799] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54841] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(1566), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -69805,19 +68876,97 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [54883] = 4, + [53652] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1280), 3, + ACTIONS(1694), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53694] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1544), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1542), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53736] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1465), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(1283), 4, + ACTIONS(1468), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1278), 27, + ACTIONS(1463), 27, anon_sym_DOT, anon_sym_LPAREN, anon_sym_GT_GT, @@ -69845,16 +68994,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54927] = 3, + [53780] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(265), 5, + ACTIONS(1568), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(1566), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69884,130 +69033,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54969] = 21, + [53822] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1885), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55047] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1885), 1, - anon_sym_RBRACK, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55125] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1637), 5, + ACTIONS(1638), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1635), 29, + ACTIONS(1636), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70037,401 +69072,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55167] = 3, + [53864] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1539), 5, + ACTIONS(272), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1537), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55209] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55251] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1887), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1553), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1556), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55331] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1887), 1, - anon_sym_RBRACK, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1469), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55409] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1889), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55487] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1889), 1, - anon_sym_RBRACK, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55565] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1547), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1545), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55607] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55649] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(303), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -70461,16 +69111,191 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [55691] = 3, + [53906] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1587), 5, + ACTIONS(1642), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1585), 29, + ACTIONS(1640), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53948] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1572), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1570), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53990] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1896), 1, + anon_sym_RPAREN, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1540), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1541), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [54070] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54112] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1564), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1562), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -70500,16 +69325,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [55733] = 3, + [54154] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1583), 5, + ACTIONS(1568), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1581), 29, + ACTIONS(1566), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70539,16 +69364,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55775] = 3, + [54196] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1629), 5, + ACTIONS(1686), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1627), 29, + ACTIONS(1684), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70578,16 +69403,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55817] = 3, + [54238] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1587), 5, + ACTIONS(1556), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1585), 29, + ACTIONS(1554), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54280] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1548), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1546), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70617,16 +69481,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55859] = 3, + [54322] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1579), 5, + ACTIONS(1564), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1577), 29, + ACTIONS(1562), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70656,16 +69520,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55901] = 3, + [54364] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1571), 5, + ACTIONS(1560), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1569), 29, + ACTIONS(1558), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70695,23 +69559,704 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55943] = 3, + [54406] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1559), 4, + ACTIONS(1646), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1644), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54448] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1896), 1, + anon_sym_RBRACK, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1472), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [54526] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54568] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1584), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1582), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54610] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1576), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1574), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54652] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54694] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1425), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54736] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1468), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54778] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1556), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1554), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54820] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54862] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1600), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1598), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54904] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1425), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1557), 29, + ACTIONS(1420), 30, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [54946] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1468), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [54988] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1638), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1636), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55030] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55072] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1646), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1644), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55114] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55156] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1578), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -70733,15 +70278,1222 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, + anon_sym_SEMI, + [55198] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1064), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1062), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55240] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55282] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55324] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1596), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1594), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55366] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1235), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1230), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55408] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55450] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1588), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1586), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55492] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1898), 1, + anon_sym_RPAREN, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1293), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [55570] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1862), 1, + anon_sym_STAR, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1898), 1, + anon_sym_RBRACK, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1293), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [55648] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1578), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55690] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1556), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1554), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55732] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1584), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1582), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55774] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1592), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1590), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55816] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1592), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1590), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55858] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55900] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1548), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1546), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55942] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1578), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, [55984] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1575), 4, + ACTIONS(1678), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56026] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56068] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1578), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56110] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56152] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1556), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1554), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56194] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56236] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1588), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1586), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56278] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1560), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1558), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56320] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56362] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1576), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1574), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56404] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1076), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1074), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56446] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1588), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1586), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56488] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1596), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1594), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56530] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1573), 29, + ACTIONS(1640), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -70771,15 +71523,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56025] = 3, + [56571] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1001), 4, + ACTIONS(1682), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(999), 29, + ACTIONS(1680), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -70809,15 +71561,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56066] = 3, + [56612] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1637), 4, + ACTIONS(1580), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1635), 29, + ACTIONS(1578), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -70847,15 +71599,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56107] = 3, + [56653] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1535), 4, + ACTIONS(272), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1533), 29, + ACTIONS(303), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -70885,15 +71637,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56148] = 3, + [56694] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1547), 4, + ACTIONS(1564), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1545), 29, + ACTIONS(1562), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -70923,15 +71675,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56189] = 3, + [56735] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1015), 4, + ACTIONS(1552), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1013), 29, + ACTIONS(1550), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -70961,15 +71713,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56230] = 3, + [56776] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1587), 4, + ACTIONS(1560), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1585), 29, + ACTIONS(1558), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -70999,15 +71751,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56271] = 3, + [56817] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1178), 4, + ACTIONS(1576), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(1574), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71037,15 +71789,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56312] = 3, + [56858] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1583), 4, + ACTIONS(580), 1, + anon_sym_COLON_EQ, + ACTIONS(634), 1, + anon_sym_EQ, + ACTIONS(272), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1581), 29, + ACTIONS(303), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [56903] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1076), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1074), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71075,15 +71867,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56353] = 3, + [56944] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1583), 4, + ACTIONS(1646), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1581), 29, + ACTIONS(1644), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71113,15 +71905,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56394] = 3, + [56985] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1591), 4, + ACTIONS(1596), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1589), 29, + ACTIONS(1594), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71151,15 +71943,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56435] = 3, + [57026] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1579), 4, + ACTIONS(1556), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1577), 29, + ACTIONS(1554), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71189,15 +71981,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56476] = 3, + [57067] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1629), 4, + ACTIONS(1556), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1627), 29, + ACTIONS(1554), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71227,15 +72019,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56517] = 3, + [57108] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1685), 4, + ACTIONS(1584), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1683), 29, + ACTIONS(1582), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71265,15 +72057,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56558] = 3, + [57149] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1579), 4, + ACTIONS(1588), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1577), 29, + ACTIONS(1586), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71303,15 +72095,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56599] = 3, + [57190] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1543), 4, + ACTIONS(1690), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1541), 29, + ACTIONS(1688), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71341,15 +72133,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56640] = 3, + [57231] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1551), 4, + ACTIONS(1544), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1549), 29, + ACTIONS(1542), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71379,15 +72171,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56681] = 3, + [57272] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(265), 4, + ACTIONS(1588), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(1586), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71417,55 +72209,207 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56722] = 22, + [57313] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, + ACTIONS(1568), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1566), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57354] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1572), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1570), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57395] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57436] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1568), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1566), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57477] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(1853), 1, + ACTIONS(1860), 1, anon_sym_LPAREN, - ACTIONS(1861), 1, + ACTIONS(1864), 1, anon_sym_DASH, - ACTIONS(1863), 1, + ACTIONS(1866), 1, sym_match_wildcard_pattern, - ACTIONS(1865), 1, + ACTIONS(1868), 1, anon_sym_LBRACK, - ACTIONS(1867), 1, + ACTIONS(1870), 1, anon_sym_LBRACE, - ACTIONS(1869), 1, + ACTIONS(1872), 1, sym_integer, - ACTIONS(1871), 1, + ACTIONS(1874), 1, sym_float, - ACTIONS(1891), 1, + ACTIONS(1900), 1, sym_identifier, - ACTIONS(1893), 1, + ACTIONS(1902), 1, anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, + STATE(1035), 1, sym_template_string, - STATE(1459), 1, - sym_match_keyword_pattern, - STATE(1534), 1, + STATE(1061), 1, + sym_string, + STATE(1444), 1, sym_match_positional_pattern, - STATE(1680), 1, + STATE(1449), 1, + sym_match_keyword_pattern, + STATE(1714), 1, sym_pattern_class_name, - STATE(1140), 2, + STATE(1168), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1184), 2, + STATE(1215), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1526), 2, + STATE(1532), 2, sym__match_pattern, sym_match_as_pattern, - ACTIONS(1873), 3, + ACTIONS(1876), 3, sym_true, sym_false, sym_none, - STATE(1142), 8, + STATE(1139), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -71474,15 +72418,15 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [56801] = 3, + [57556] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1543), 4, + ACTIONS(1235), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1541), 29, + ACTIONS(1230), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71512,247 +72456,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56842] = 3, + [57597] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1563), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56883] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56924] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56965] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57006] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1663), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57047] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1669), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1667), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57088] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(585), 1, + ACTIONS(1258), 1, anon_sym_COLON_EQ, - ACTIONS(651), 1, + ACTIONS(1878), 1, anon_sym_EQ, - ACTIONS(265), 4, + ACTIONS(1235), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 27, + ACTIONS(1230), 27, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -71780,283 +72496,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57133] = 5, + [57642] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1219), 1, - anon_sym_COLON_EQ, - ACTIONS(1875), 1, - anon_sym_EQ, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57178] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57219] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57260] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1677), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1675), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57301] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1689), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1687), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57342] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1681), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1679), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57383] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(1851), 1, + ACTIONS(1858), 1, sym_identifier, - ACTIONS(1853), 1, + ACTIONS(1860), 1, anon_sym_LPAREN, - ACTIONS(1855), 1, + ACTIONS(1862), 1, anon_sym_STAR, - ACTIONS(1861), 1, + ACTIONS(1864), 1, anon_sym_DASH, - ACTIONS(1863), 1, + ACTIONS(1866), 1, sym_match_wildcard_pattern, - ACTIONS(1865), 1, + ACTIONS(1868), 1, anon_sym_LBRACK, - ACTIONS(1867), 1, + ACTIONS(1870), 1, anon_sym_LBRACE, - ACTIONS(1869), 1, + ACTIONS(1872), 1, sym_integer, - ACTIONS(1871), 1, + ACTIONS(1874), 1, sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, + STATE(1035), 1, sym_template_string, - STATE(1680), 1, + STATE(1061), 1, + sym_string, + STATE(1714), 1, sym_pattern_class_name, - STATE(1140), 2, + STATE(1168), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1184), 2, + STATE(1215), 2, sym__match_or_pattern, sym_match_or_pattern, - ACTIONS(1873), 3, + ACTIONS(1876), 3, sym_true, sym_false, sym_none, - STATE(1277), 4, + STATE(1293), 4, sym__match_pattern, sym_match_as_pattern, sym__match_maybe_star_pattern, sym_match_star_pattern, - STATE(1142), 8, + STATE(1139), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -72065,1036 +72551,1340 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [57458] = 22, + [57717] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, + ACTIONS(654), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - ACTIONS(1853), 1, + ACTIONS(1860), 1, anon_sym_LPAREN, - ACTIONS(1861), 1, + ACTIONS(1864), 1, anon_sym_DASH, - ACTIONS(1863), 1, + ACTIONS(1866), 1, sym_match_wildcard_pattern, - ACTIONS(1865), 1, + ACTIONS(1868), 1, anon_sym_LBRACK, - ACTIONS(1867), 1, + ACTIONS(1870), 1, anon_sym_LBRACE, - ACTIONS(1869), 1, + ACTIONS(1872), 1, sym_integer, - ACTIONS(1871), 1, + ACTIONS(1874), 1, sym_float, - ACTIONS(1891), 1, + ACTIONS(1900), 1, sym_identifier, - ACTIONS(1895), 1, + ACTIONS(1904), 1, anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, + STATE(1035), 1, sym_template_string, - STATE(1438), 1, + STATE(1061), 1, + sym_string, + STATE(1421), 1, sym_match_keyword_pattern, - STATE(1534), 1, - sym_match_positional_pattern, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1526), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57537] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57578] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1891), 1, - sym_identifier, - ACTIONS(1897), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1381), 1, - sym_match_keyword_pattern, - STATE(1466), 1, - sym_match_positional_pattern, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1526), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57657] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1539), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1537), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57698] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1534), 1, - sym_match_positional_pattern, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1526), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57771] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1542), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57841] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1575), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57911] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1899), 1, - sym_match_wildcard_pattern, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1116), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57973] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1901), 1, - sym_match_wildcard_pattern, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1091), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [58035] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_EQ, - ACTIONS(1910), 1, - anon_sym_not, - ACTIONS(1916), 1, - anon_sym_is, - STATE(989), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1913), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1905), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1903), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58074] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_as, - ACTIONS(1922), 1, - anon_sym_not, - ACTIONS(1928), 1, - anon_sym_is, - STATE(990), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1925), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1919), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1903), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58113] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1617), 1, - anon_sym_not, - ACTIONS(1625), 1, - anon_sym_is, - ACTIONS(1933), 1, - anon_sym_EQ, - STATE(989), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1623), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1603), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58152] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1653), 1, - anon_sym_not, - ACTIONS(1661), 1, - anon_sym_is, - ACTIONS(1933), 1, - anon_sym_as, - STATE(990), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1659), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1643), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58191] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1937), 1, - anon_sym_COMMA, - STATE(993), 1, - aux_sym__patterns_repeat1, - ACTIONS(1935), 18, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58221] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1940), 1, - sym_identifier, - ACTIONS(1942), 1, - anon_sym_RBRACE, - ACTIONS(1944), 1, - anon_sym_STAR_STAR, - STATE(1317), 1, - sym_string, - STATE(1318), 1, - sym_template_string, - STATE(1477), 1, - sym_match_key_value_pattern, - STATE(1564), 1, - sym_match_double_star_pattern, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1722), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - [58274] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_EQ, - ACTIONS(1949), 1, - anon_sym_not, - ACTIONS(1955), 1, - anon_sym_is, - STATE(995), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1952), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1946), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1903), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [58311] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1940), 1, - sym_identifier, - ACTIONS(1944), 1, - anon_sym_STAR_STAR, - ACTIONS(1958), 1, - anon_sym_RBRACE, - STATE(1317), 1, - sym_string, - STATE(1318), 1, - sym_template_string, - STATE(1569), 1, - sym_match_double_star_pattern, - STATE(1573), 1, - sym_match_key_value_pattern, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1722), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - [58364] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1771), 1, - anon_sym_not, - ACTIONS(1779), 1, - anon_sym_is, - STATE(1007), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1777), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1761), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58399] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1960), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58424] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1184), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58449] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1962), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(1173), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - [58478] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(911), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(298), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - [58507] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1807), 1, - anon_sym_not, - ACTIONS(1815), 1, - anon_sym_is, - ACTIONS(1933), 1, - anon_sym_EQ, - STATE(1003), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1813), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1795), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [58544] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_EQ, - ACTIONS(1967), 1, - anon_sym_not, - ACTIONS(1973), 1, - anon_sym_is, - STATE(1003), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1970), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1964), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1903), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [58581] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1976), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58606] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1978), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58631] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1744), 1, - anon_sym_not, - ACTIONS(1752), 1, - anon_sym_is, - ACTIONS(1933), 1, - anon_sym_EQ, - STATE(995), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1750), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1732), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [58668] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1983), 1, - anon_sym_not, - ACTIONS(1989), 1, - anon_sym_is, - STATE(1007), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1986), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1980), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1903), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58703] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1940), 1, - sym_identifier, - ACTIONS(1944), 1, - anon_sym_STAR_STAR, - ACTIONS(1992), 1, - anon_sym_RBRACE, - STATE(1317), 1, - sym_string, - STATE(1318), 1, - sym_template_string, STATE(1544), 1, - sym_match_double_star_pattern, - STATE(1573), 1, - sym_match_key_value_pattern, - STATE(1140), 2, + sym_match_positional_pattern, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1722), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1873), 3, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1532), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1876), 3, sym_true, sym_false, sym_none, - [58756] = 7, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [57796] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1839), 1, - anon_sym_not, - ACTIONS(1847), 1, - anon_sym_is, - STATE(1011), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1845), 2, + ACTIONS(1600), 4, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1827), 6, + ACTIONS(1598), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57837] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1064), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1062), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57878] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1638), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1636), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57919] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1592), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1590), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57960] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58001] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58042] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1900), 1, + sym_identifier, + ACTIONS(1906), 1, + anon_sym_RPAREN, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1468), 1, + sym_match_keyword_pattern, + STATE(1544), 1, + sym_match_positional_pattern, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1532), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58121] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58162] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1548), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1546), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58203] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1578), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58244] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58285] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1544), 1, + sym_match_positional_pattern, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1532), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58358] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1536), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58428] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1866), 1, + sym_match_wildcard_pattern, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1215), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1580), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1139), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58498] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1908), 1, + sym_match_wildcard_pattern, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1098), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58560] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + ACTIONS(656), 1, + sym__template_string_start, + ACTIONS(1858), 1, + sym_identifier, + ACTIONS(1860), 1, + anon_sym_LPAREN, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1868), 1, + anon_sym_LBRACK, + ACTIONS(1870), 1, + anon_sym_LBRACE, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1910), 1, + sym_match_wildcard_pattern, + STATE(1035), 1, + sym_template_string, + STATE(1061), 1, + sym_string, + STATE(1714), 1, + sym_pattern_class_name, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + STATE(1132), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58622] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1666), 1, + anon_sym_not, + ACTIONS(1674), 1, + anon_sym_is, + ACTIONS(1914), 1, + anon_sym_as, + STATE(991), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1672), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1656), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1931), 7, + ACTIONS(1912), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [58661] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1918), 1, + anon_sym_as, + ACTIONS(1923), 1, + anon_sym_not, + ACTIONS(1929), 1, + anon_sym_is, + STATE(991), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1926), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1920), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1916), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [58700] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1918), 1, + anon_sym_EQ, + ACTIONS(1935), 1, + anon_sym_not, + ACTIONS(1941), 1, + anon_sym_is, + STATE(992), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1938), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1932), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1916), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [58739] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 1, + anon_sym_not, + ACTIONS(1634), 1, + anon_sym_is, + ACTIONS(1914), 1, + anon_sym_EQ, + STATE(992), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1632), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1912), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [58778] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1946), 1, + anon_sym_COMMA, + STATE(994), 1, + aux_sym__patterns_repeat1, + ACTIONS(1944), 18, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [58808] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1949), 1, + sym_identifier, + ACTIONS(1951), 1, + anon_sym_RBRACE, + ACTIONS(1953), 1, + anon_sym_STAR_STAR, + STATE(1314), 1, + sym_string, + STATE(1315), 1, + sym_template_string, + STATE(1529), 1, + sym_match_double_star_pattern, + STATE(1586), 1, + sym_match_key_value_pattern, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1658), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + [58861] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1958), 1, + anon_sym_not, + ACTIONS(1964), 1, + anon_sym_is, + STATE(996), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1961), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1955), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1916), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [58896] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(916), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(303), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + [58925] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1967), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [58950] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1969), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [58975] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1918), 1, + anon_sym_EQ, + ACTIONS(1974), 1, + anon_sym_not, + ACTIONS(1980), 1, + anon_sym_is, + STATE(1000), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1977), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1971), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1916), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [59012] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1241), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59037] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1983), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59062] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1918), 1, + anon_sym_EQ, + ACTIONS(1988), 1, + anon_sym_not, + ACTIONS(1994), 1, + anon_sym_is, + STATE(1003), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1991), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1985), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1916), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [59099] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1235), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1997), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(1230), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + [59128] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1750), 1, + anon_sym_not, + ACTIONS(1758), 1, + anon_sym_is, + ACTIONS(1914), 1, + anon_sym_EQ, + STATE(1003), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1756), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1912), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [59165] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1816), 1, + anon_sym_not, + ACTIONS(1824), 1, + anon_sym_is, + STATE(996), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1822), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1806), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1912), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [59200] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1949), 1, + sym_identifier, + ACTIONS(1953), 1, + anon_sym_STAR_STAR, + ACTIONS(1999), 1, + anon_sym_RBRACE, + STATE(1314), 1, + sym_string, + STATE(1315), 1, + sym_template_string, + STATE(1485), 1, + sym_match_key_value_pattern, + STATE(1560), 1, + sym_match_double_star_pattern, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1658), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + [59253] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1780), 1, + anon_sym_not, + ACTIONS(1788), 1, + anon_sym_is, + ACTIONS(1914), 1, + anon_sym_EQ, + STATE(1000), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1786), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1912), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [59290] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1949), 1, + sym_identifier, + ACTIONS(1953), 1, + anon_sym_STAR_STAR, + ACTIONS(2001), 1, + anon_sym_RBRACE, + STATE(1314), 1, + sym_string, + STATE(1315), 1, + sym_template_string, + STATE(1584), 1, + sym_match_double_star_pattern, + STATE(1586), 1, + sym_match_key_value_pattern, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1658), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + [59343] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1848), 1, + anon_sym_not, + ACTIONS(1856), 1, + anon_sym_is, + STATE(1011), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1854), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1836), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1912), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -73102,14 +73892,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [58790] = 4, + [59377] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(1994), 1, + ACTIONS(2006), 1, + anon_sym_not, + ACTIONS(2012), 1, + anon_sym_is, + STATE(1011), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(2009), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(2003), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1916), 7, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(993), 1, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [59411] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2015), 1, + anon_sym_COMMA, + STATE(994), 1, aux_sym__patterns_repeat1, - ACTIONS(1996), 16, + ACTIONS(2017), 16, anon_sym_COLON, anon_sym_in, anon_sym_EQ, @@ -73126,403 +73943,144 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58818] = 7, + [59439] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(2001), 1, - anon_sym_not, - ACTIONS(2007), 1, - anon_sym_is, - STATE(1011), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(2004), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1998), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1903), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [58852] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, + ACTIONS(1602), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1604), 1, anon_sym_LPAREN, - ACTIONS(1605), 1, + ACTIONS(1614), 1, anon_sym_PIPE, - ACTIONS(1609), 1, + ACTIONS(1618), 1, anon_sym_LBRACK, - ACTIONS(1611), 1, + ACTIONS(1620), 1, anon_sym_STAR_STAR, - ACTIONS(1619), 1, + ACTIONS(1628), 1, anon_sym_AMP, - ACTIONS(1621), 1, + ACTIONS(1630), 1, anon_sym_CARET, - ACTIONS(1599), 2, + ACTIONS(1608), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1601), 2, + ACTIONS(1610), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1607), 2, + ACTIONS(1616), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(733), 2, + STATE(734), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1615), 3, + ACTIONS(1624), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - [58898] = 6, + [59485] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(2012), 1, - anon_sym_COLON, - ACTIONS(2014), 1, - anon_sym_EQ, - STATE(1010), 1, - aux_sym__patterns_repeat1, - ACTIONS(2016), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58929] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, + ACTIONS(2019), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2021), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2023), 1, anon_sym_STAR, - ACTIONS(2024), 1, + ACTIONS(2025), 1, anon_sym_COLON, - ACTIONS(2026), 1, + ACTIONS(2027), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2029), 1, anon_sym_SLASH, - STATE(1385), 1, + STATE(1453), 1, sym_parameter, - STATE(1593), 1, - sym_lambda_parameters, - STATE(1598), 1, + STATE(1606), 1, sym__parameters, - STATE(1520), 2, + STATE(1720), 1, + sym_lambda_parameters, + STATE(1574), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1454), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [58972] = 12, + [59528] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2019), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2021), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2023), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2027), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2029), 1, anon_sym_SLASH, - ACTIONS(2030), 1, + ACTIONS(2031), 1, anon_sym_COLON, - STATE(1385), 1, + STATE(1453), 1, sym_parameter, - STATE(1598), 1, - sym__parameters, - STATE(1690), 1, - sym_lambda_parameters, - STATE(1520), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59015] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2032), 1, - anon_sym_COLON, - STATE(1385), 1, - sym_parameter, - STATE(1598), 1, - sym__parameters, - STATE(1668), 1, - sym_lambda_parameters, - STATE(1520), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59058] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2034), 1, - anon_sym_COLON, - STATE(1385), 1, - sym_parameter, - STATE(1598), 1, - sym__parameters, - STATE(1604), 1, - sym_lambda_parameters, - STATE(1520), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59101] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2036), 1, - anon_sym_COLON, - STATE(1385), 1, - sym_parameter, - STATE(1598), 1, - sym__parameters, - STATE(1673), 1, - sym_lambda_parameters, - STATE(1520), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59144] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2038), 1, - anon_sym_COLON, - STATE(1385), 1, - sym_parameter, - STATE(1598), 1, + STATE(1606), 1, sym__parameters, STATE(1682), 1, sym_lambda_parameters, - STATE(1520), 2, + STATE(1574), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1454), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59187] = 12, + [59571] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2019), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2021), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2023), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2027), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2029), 1, anon_sym_SLASH, - ACTIONS(2040), 1, + ACTIONS(2033), 1, anon_sym_COLON, - STATE(1385), 1, + STATE(1453), 1, sym_parameter, - STATE(1598), 1, + STATE(1606), 1, sym__parameters, - STATE(1711), 1, + STATE(1710), 1, sym_lambda_parameters, - STATE(1520), 2, + STATE(1574), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1454), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59230] = 13, + [59614] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1940), 1, - sym_identifier, - STATE(1317), 1, - sym_string, - STATE(1318), 1, - sym_template_string, - STATE(1573), 1, - sym_match_key_value_pattern, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1722), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - [59274] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2042), 1, - sym_identifier, - ACTIONS(2044), 1, - anon_sym_RPAREN, - STATE(1428), 1, - sym_parameter, - STATE(1684), 1, - sym__parameters, - STATE(1442), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59314] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2046), 1, + ACTIONS(2035), 1, + anon_sym_COMMA, + ACTIONS(2037), 1, anon_sym_COLON, - STATE(1444), 1, - sym_parameter, - STATE(1520), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59351] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2012), 1, - anon_sym_COLON, - ACTIONS(2014), 1, + ACTIONS(2039), 1, anon_sym_EQ, - ACTIONS(2016), 13, + STATE(1012), 1, + aux_sym__patterns_repeat1, + ACTIONS(2041), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -73536,143 +74094,375 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [59376] = 10, + [59645] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2019), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2021), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2023), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2027), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2029), 1, anon_sym_SLASH, - ACTIONS(2048), 1, + ACTIONS(2043), 1, anon_sym_COLON, - STATE(1444), 1, + STATE(1453), 1, sym_parameter, - STATE(1520), 2, + STATE(1606), 1, + sym__parameters, + STATE(1622), 1, + sym_lambda_parameters, + STATE(1574), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1454), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59413] = 10, + [59688] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2042), 1, + ACTIONS(2019), 1, sym_identifier, - ACTIONS(2048), 1, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2045), 1, + anon_sym_COLON, + STATE(1453), 1, + sym_parameter, + STATE(1605), 1, + sym_lambda_parameters, + STATE(1606), 1, + sym__parameters, + STATE(1574), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1454), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [59731] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2019), 1, + sym_identifier, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2047), 1, + anon_sym_COLON, + STATE(1453), 1, + sym_parameter, + STATE(1606), 1, + sym__parameters, + STATE(1705), 1, + sym_lambda_parameters, + STATE(1574), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1454), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [59774] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2019), 1, + sym_identifier, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2049), 1, + anon_sym_COLON, + STATE(1453), 1, + sym_parameter, + STATE(1606), 1, + sym__parameters, + STATE(1642), 1, + sym_lambda_parameters, + STATE(1574), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1454), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [59817] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2051), 1, + sym_identifier, + ACTIONS(2053), 1, anon_sym_RPAREN, - STATE(1444), 1, + STATE(1511), 1, sym_parameter, - STATE(1442), 2, + STATE(1613), 1, + sym__parameters, + STATE(1510), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1454), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59450] = 10, + [59857] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2042), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1864), 1, + anon_sym_DASH, + ACTIONS(1872), 1, + sym_integer, + ACTIONS(1874), 1, + sym_float, + ACTIONS(1949), 1, sym_identifier, - ACTIONS(2046), 1, + STATE(1314), 1, + sym_string, + STATE(1315), 1, + sym_template_string, + STATE(1586), 1, + sym_match_key_value_pattern, + STATE(1168), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1658), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1876), 3, + sym_true, + sym_false, + sym_none, + [59901] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2051), 1, + sym_identifier, + ACTIONS(2055), 1, anon_sym_RPAREN, - STATE(1444), 1, + STATE(1383), 1, sym_parameter, - STATE(1442), 2, + STATE(1510), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1454), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59487] = 9, + [59938] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2042), 1, + ACTIONS(2019), 1, sym_identifier, - STATE(1444), 1, - sym_parameter, - STATE(1442), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59521] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2021), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2023), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2027), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2029), 1, anon_sym_SLASH, - STATE(1444), 1, + ACTIONS(2055), 1, + anon_sym_COLON, + STATE(1383), 1, sym_parameter, - STATE(1520), 2, + STATE(1574), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1454), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59555] = 3, + [59975] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2052), 1, + ACTIONS(2037), 1, + anon_sym_COLON, + ACTIONS(2039), 1, + anon_sym_EQ, + ACTIONS(2041), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [60000] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2051), 1, + sym_identifier, + ACTIONS(2057), 1, + anon_sym_RPAREN, + STATE(1383), 1, + sym_parameter, + STATE(1510), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1454), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60037] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2019), 1, + sym_identifier, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2057), 1, + anon_sym_COLON, + STATE(1383), 1, + sym_parameter, + STATE(1574), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1454), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60074] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + ACTIONS(2051), 1, + sym_identifier, + STATE(1383), 1, + sym_parameter, + STATE(1510), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1454), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60108] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2019), 1, + sym_identifier, + ACTIONS(2021), 1, + anon_sym_LPAREN, + ACTIONS(2023), 1, + anon_sym_STAR, + ACTIONS(2027), 1, + anon_sym_STAR_STAR, + ACTIONS(2029), 1, + anon_sym_SLASH, + STATE(1383), 1, + sym_parameter, + STATE(1574), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1454), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60142] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2061), 1, anon_sym_as, - ACTIONS(2050), 12, + ACTIONS(2059), 12, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73685,12 +74475,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_and, anon_sym_or, - [59576] = 3, + [60163] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1613), 1, + ACTIONS(1622), 1, anon_sym_as, - ACTIONS(1597), 12, + ACTIONS(1606), 12, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73703,14 +74493,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_and, anon_sym_or, - [59597] = 4, + [60184] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2056), 1, + ACTIONS(2065), 1, anon_sym_DOT, - STATE(1032), 1, + STATE(1033), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2054), 10, + ACTIONS(2063), 10, anon_sym_import, anon_sym_LPAREN, anon_sym_RPAREN, @@ -73721,163 +74511,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [59619] = 9, - ACTIONS(2059), 1, + [60206] = 9, + ACTIONS(2068), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2074), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2067), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59650] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COLON, - ACTIONS(2075), 1, - anon_sym_async, ACTIONS(2077), 1, - anon_sym_for, + sym_comment, ACTIONS(2079), 1, - anon_sym_RBRACE, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1627), 1, - sym__comprehension_clauses, - [59687] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2085), 1, sym__string_end, - STATE(1043), 1, + STATE(1034), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1254), 1, sym_string_content, - STATE(1147), 2, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2071), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [59718] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2087), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59749] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2089), 1, - sym__string_end, - STATE(1036), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59780] = 5, + [60237] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - ACTIONS(2093), 1, - anon_sym_LPAREN, - STATE(1042), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2095), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [59803] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - STATE(744), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(2097), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [59824] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(649), 1, + ACTIONS(656), 1, sym__template_string_start, - STATE(745), 2, + STATE(760), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(2097), 8, + ACTIONS(2081), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -73886,191 +74550,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [59845] = 12, + [60258] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2099), 1, - anon_sym_RPAREN, - ACTIONS(2101), 1, - anon_sym_COMMA, - ACTIONS(2104), 1, - anon_sym_as, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1706), 1, - sym__comprehension_clauses, - [59882] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - ACTIONS(2112), 1, - anon_sym_LPAREN, - STATE(1032), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2114), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [59905] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2116), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59936] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2118), 1, - sym__string_end, - STATE(1047), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59967] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2120), 1, - sym__string_end, - STATE(1048), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59998] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COLON, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACE, - ACTIONS(2081), 1, - anon_sym_and, ACTIONS(2083), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1645), 1, - sym__comprehension_clauses, - [60035] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2122), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60066] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2124), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60097] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2054), 11, - anon_sym_import, anon_sym_DOT, + ACTIONS(2085), 1, anon_sym_LPAREN, + STATE(1033), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2087), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -74079,286 +74568,587 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60114] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, + [60281] = 9, + ACTIONS(2077), 1, sym_comment, - ACTIONS(2126), 1, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2095), 1, sym__string_end, - STATE(1053), 1, + STATE(1039), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1254), 1, sym_string_content, - STATE(1147), 2, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2091), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60145] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, + [60312] = 9, + ACTIONS(2077), 1, sym_comment, - ACTIONS(2128), 1, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2097), 1, + sym__string_end, + STATE(1040), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60343] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2099), 1, + sym__string_end, + STATE(1034), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60374] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2101), 1, + sym__string_end, + STATE(1034), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60405] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2105), 1, + anon_sym_if, + ACTIONS(2107), 1, + anon_sym_COLON, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2113), 1, + anon_sym_RBRACE, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1719), 1, + sym__comprehension_clauses, + [60442] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2119), 1, sym__string_end, STATE(1054), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1254), 1, sym_string_content, - STATE(1147), 2, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2091), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60176] = 9, - ACTIONS(2065), 1, + [60473] = 9, + ACTIONS(2077), 1, sym_comment, - ACTIONS(2130), 1, + ACTIONS(2089), 1, anon_sym_LBRACE2, - ACTIONS(2136), 1, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2121), 1, + sym__string_end, + STATE(1034), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60504] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2123), 1, + sym__string_end, + STATE(1046), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60535] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2125), 1, + sym__string_end, + STATE(1034), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60566] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2127), 1, + sym__string_end, + STATE(1034), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60597] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2129), 1, + sym__string_end, + STATE(1049), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60628] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2131), 1, + sym__string_end, + STATE(1050), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60659] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2133), 1, + sym__string_end, + STATE(1034), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60690] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2135), 1, + sym__string_end, + STATE(1034), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60721] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2137), 1, + sym__string_end, + STATE(1052), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60752] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, anon_sym_BSLASH, ACTIONS(2139), 1, sym__string_end, - STATE(1052), 1, + STATE(1034), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1254), 1, sym_string_content, - STATE(1147), 2, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2133), 3, + ACTIONS(2091), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60207] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, + [60783] = 9, + ACTIONS(2077), 1, sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, ACTIONS(2141), 1, sym__string_end, - STATE(1052), 1, + STATE(1043), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1254), 1, sym_string_content, - STATE(1147), 2, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2091), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60238] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, + [60814] = 9, + ACTIONS(2077), 1, sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, ACTIONS(2143), 1, sym__string_end, - STATE(1052), 1, + STATE(1034), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1254), 1, sym_string_content, - STATE(1147), 2, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2091), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60269] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, + [60845] = 12, + ACTIONS(3), 1, sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2105), 1, + anon_sym_if, + ACTIONS(2107), 1, + anon_sym_COLON, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2113), 1, + anon_sym_RBRACE, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1672), 1, + sym__comprehension_clauses, + [60882] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 11, + anon_sym_import, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [60899] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, ACTIONS(2145), 1, - sym__string_end, - STATE(1057), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60300] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, + anon_sym_RPAREN, ACTIONS(2147), 1, - sym__string_end, - STATE(1058), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60331] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2149), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60362] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2151), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60393] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2153), 1, - sym__string_end, - STATE(1033), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60424] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, anon_sym_COMMA, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COLON, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACE, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1649), 1, - sym__comprehension_clauses, - [60461] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COLON, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACE, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1715), 1, - sym__comprehension_clauses, - [60498] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2157), 1, + ACTIONS(2150), 1, anon_sym_as, - ACTIONS(2155), 7, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1731), 1, + sym__comprehension_clauses, + [60936] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2105), 1, + anon_sym_if, + ACTIONS(2107), 1, + anon_sym_COLON, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2113), 1, + anon_sym_RBRACE, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1603), 1, + sym__comprehension_clauses, + [60973] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2105), 1, + anon_sym_if, + ACTIONS(2107), 1, + anon_sym_COLON, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2113), 1, + anon_sym_RBRACE, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1666), 1, + sym__comprehension_clauses, + [61010] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2083), 1, + anon_sym_DOT, + ACTIONS(2158), 1, + anon_sym_LPAREN, + STATE(1036), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2160), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61033] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(654), 1, + sym__string_start, + STATE(759), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(2081), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61054] = 9, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2089), 1, + anon_sym_LBRACE2, + ACTIONS(2093), 1, + anon_sym_BSLASH, + ACTIONS(2162), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1254), 1, + sym_string_content, + STATE(1255), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2091), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61085] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2166), 1, + anon_sym_as, + ACTIONS(2164), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74366,12 +75156,210 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [60520] = 3, + [61107] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, anon_sym_and, - ACTIONS(2159), 9, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2168), 1, + anon_sym_RPAREN, + ACTIONS(2170), 1, + anon_sym_COMMA, + STATE(1091), 1, + sym_for_in_clause, + STATE(1400), 1, + aux_sym_argument_list_repeat1, + STATE(1652), 1, + sym__comprehension_clauses, + [61141] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2174), 1, + anon_sym_as, + ACTIONS(2172), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61165] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2176), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61187] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2186), 1, + anon_sym_as, + ACTIONS(2184), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61209] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2188), 1, + anon_sym_RPAREN, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1652), 1, + sym__comprehension_clauses, + [61243] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2172), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61265] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2190), 1, + anon_sym_RPAREN, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1657), 1, + sym__comprehension_clauses, + [61299] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2192), 1, + anon_sym_RPAREN, + ACTIONS(2194), 1, + anon_sym_COMMA, + STATE(1091), 1, + sym_for_in_clause, + STATE(1423), 1, + aux_sym_argument_list_repeat1, + STATE(1731), 1, + sym__comprehension_clauses, + [61333] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_as, + ACTIONS(2196), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61357] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2202), 1, + anon_sym_as, + ACTIONS(2200), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61379] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2164), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74380,33 +75368,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - anon_sym_or, - [60538] = 6, + [61399] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2106), 1, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2152), 1, anon_sym_if, - ACTIONS(2108), 1, + ACTIONS(2154), 1, anon_sym_and, - ACTIONS(2110), 1, + ACTIONS(2156), 1, anon_sym_or, - ACTIONS(2165), 1, + ACTIONS(2204), 1, + anon_sym_RPAREN, + ACTIONS(2206), 1, + anon_sym_COMMA, + STATE(1091), 1, + sym_for_in_clause, + STATE(1448), 1, + aux_sym_argument_list_repeat1, + STATE(1657), 1, + sym__comprehension_clauses, + [61433] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2166), 1, anon_sym_as, - ACTIONS(2163), 6, + ACTIONS(2164), 8, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [60562] = 4, + anon_sym_or, + [61453] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2210), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2208), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61471] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2180), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2182), 1, anon_sym_or, - ACTIONS(2159), 8, + ACTIONS(2184), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74415,126 +75438,202 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - [60582] = 11, + [61491] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 1, + ACTIONS(2103), 1, anon_sym_COMMA, - ACTIONS(2075), 1, + ACTIONS(2109), 1, anon_sym_async, - ACTIONS(2077), 1, + ACTIONS(2111), 1, anon_sym_for, - ACTIONS(2106), 1, + ACTIONS(2113), 1, + anon_sym_RBRACK, + ACTIONS(2152), 1, anon_sym_if, - ACTIONS(2108), 1, + ACTIONS(2154), 1, anon_sym_and, - ACTIONS(2110), 1, + ACTIONS(2156), 1, anon_sym_or, - ACTIONS(2169), 1, - anon_sym_RPAREN, - STATE(1100), 1, + STATE(1091), 1, sym_for_in_clause, - STATE(1270), 1, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1726), 1, + sym__comprehension_clauses, + [61525] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2196), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61547] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2200), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61567] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2212), 1, + anon_sym_as, + ACTIONS(2176), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61591] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2214), 1, + anon_sym_RPAREN, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1670), 1, + sym__comprehension_clauses, + [61625] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2113), 1, + anon_sym_RBRACK, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, aux_sym__collection_elements_repeat1, STATE(1686), 1, sym__comprehension_clauses, - [60616] = 11, + [61659] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2171), 1, - anon_sym_RPAREN, - ACTIONS(2173), 1, + ACTIONS(2103), 1, anon_sym_COMMA, - STATE(1100), 1, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2113), 1, + anon_sym_RBRACK, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + STATE(1091), 1, sym_for_in_clause, - STATE(1451), 1, - aux_sym_argument_list_repeat1, - STATE(1686), 1, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1732), 1, sym__comprehension_clauses, - [60650] = 4, + [61693] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2175), 1, - anon_sym_as, - ACTIONS(2159), 8, - anon_sym_RPAREN, + ACTIONS(2103), 1, anon_sym_COMMA, - anon_sym_if, + ACTIONS(2109), 1, anon_sym_async, + ACTIONS(2111), 1, anon_sym_for, + ACTIONS(2113), 1, anon_sym_RBRACK, - anon_sym_RBRACE, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, anon_sym_or, - [60670] = 5, + STATE(1091), 1, + sym_for_in_clause, + STATE(1267), 1, + aux_sym__collection_elements_repeat1, + STATE(1659), 1, + sym__comprehension_clauses, + [61727] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2175), 1, - anon_sym_as, - ACTIONS(2159), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, + ACTIONS(2109), 1, anon_sym_async, + ACTIONS(2111), 1, anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60692] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2152), 1, anon_sym_if, - ACTIONS(2177), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [60714] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, + ACTIONS(2154), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2156), 1, anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2181), 7, + ACTIONS(2216), 1, anon_sym_RPAREN, + ACTIONS(2218), 1, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [60736] = 3, + STATE(1091), 1, + sym_for_in_clause, + STATE(1441), 1, + aux_sym_argument_list_repeat1, + STATE(1670), 1, + sym__comprehension_clauses, + [61761] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2185), 2, + ACTIONS(2222), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(2183), 8, + ACTIONS(2220), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -74543,101 +75642,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60754] = 11, + [61779] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, + ACTIONS(2180), 1, anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2187), 1, - anon_sym_RPAREN, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1613), 1, - sym__comprehension_clauses, - [60788] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2189), 1, - anon_sym_as, - ACTIONS(2177), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60812] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2191), 1, - anon_sym_RPAREN, - ACTIONS(2193), 1, - anon_sym_COMMA, - STATE(1100), 1, - sym_for_in_clause, - STATE(1418), 1, - aux_sym_argument_list_repeat1, - STATE(1706), 1, - sym__comprehension_clauses, - [60846] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2195), 1, - anon_sym_RPAREN, - ACTIONS(2197), 1, - anon_sym_COMMA, - STATE(1100), 1, - sym_for_in_clause, - STATE(1483), 1, - aux_sym_argument_list_repeat1, - STATE(1592), 1, - sym__comprehension_clauses, - [60880] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2199), 8, + ACTIONS(2164), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74646,323 +75656,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - [60900] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2203), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(2201), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60918] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2099), 1, - anon_sym_RPAREN, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, anon_sym_or, - STATE(1100), 1, + [61797] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2145), 1, + anon_sym_RPAREN, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + STATE(1091), 1, sym_for_in_clause, - STATE(1270), 1, + STATE(1267), 1, aux_sym__collection_elements_repeat1, - STATE(1706), 1, + STATE(1731), 1, sym__comprehension_clauses, - [60952] = 11, + [61831] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2075), 1, + ACTIONS(2109), 1, anon_sym_async, - ACTIONS(2077), 1, + ACTIONS(2111), 1, anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2205), 1, - anon_sym_RPAREN, - ACTIONS(2207), 1, - anon_sym_COMMA, - STATE(1100), 1, - sym_for_in_clause, - STATE(1437), 1, - aux_sym_argument_list_repeat1, - STATE(1613), 1, - sym__comprehension_clauses, - [60986] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1624), 1, - sym__comprehension_clauses, - [61020] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2163), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61042] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1677), 1, - sym__comprehension_clauses, - [61076] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2209), 1, - anon_sym_RPAREN, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1592), 1, - sym__comprehension_clauses, - [61110] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2211), 1, - anon_sym_as, - ACTIONS(2181), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61134] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1708), 1, - sym__comprehension_clauses, - [61168] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2213), 1, - anon_sym_as, - ACTIONS(2199), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61190] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1614), 1, - sym__comprehension_clauses, - [61224] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2155), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61244] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2215), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61263] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2219), 1, - anon_sym_PIPE, - STATE(1101), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2217), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61282] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2223), 1, - anon_sym_if, ACTIONS(2226), 1, - anon_sym_async, - ACTIONS(2229), 1, - anon_sym_for, - ACTIONS(2221), 3, + anon_sym_if, + ACTIONS(2224), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1092), 3, + STATE(1095), 3, sym_for_in_clause, sym_if_clause, aux_sym__comprehension_clauses_repeat1, - [61305] = 7, + [61854] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2232), 1, - anon_sym_COMMA, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, + ACTIONS(2154), 1, anon_sym_and, - ACTIONS(2240), 1, + ACTIONS(2156), 1, anon_sym_or, - STATE(1215), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2236), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61330] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2215), 7, + ACTIONS(2228), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74970,48 +75712,95 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61349] = 7, + [61873] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2232), 1, + anon_sym_PIPE, + STATE(1100), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2230), 7, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(2234), 1, + anon_sym_as, anon_sym_if, - ACTIONS(2238), 1, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61892] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, anon_sym_and, - ACTIONS(2240), 1, + ACTIONS(2182), 1, anon_sym_or, - STATE(1215), 1, + ACTIONS(2234), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61913] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2226), 1, + anon_sym_if, + ACTIONS(2236), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1101), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [61936] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2238), 1, + anon_sym_COMMA, + ACTIONS(2240), 1, + anon_sym_if, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + STATE(1220), 1, aux_sym_expression_list_repeat1, ACTIONS(2242), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [61374] = 5, + [61961] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2154), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2156), 1, anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2244), 6, + ACTIONS(2228), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_COLON, + anon_sym_if, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - [61395] = 4, + [61980] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2248), 1, + ACTIONS(2232), 1, anon_sym_PIPE, - STATE(1097), 1, + STATE(1093), 1, aux_sym_match_or_pattern_repeat1, - ACTIONS(2246), 7, + ACTIONS(2248), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75019,14 +75808,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [61414] = 4, + [61999] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2108), 1, + ACTIONS(2154), 1, anon_sym_and, - ACTIONS(2110), 1, + ACTIONS(2156), 1, anon_sym_or, - ACTIONS(2215), 7, + ACTIONS(2228), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -75034,310 +75823,197 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61433] = 6, + [62018] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2253), 1, - anon_sym_if, - ACTIONS(2251), 3, + ACTIONS(2252), 1, + anon_sym_PIPE, + STATE(1100), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2250), 7, anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1092), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [61456] = 6, + [62037] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2253), 1, + ACTIONS(2257), 1, anon_sym_if, + ACTIONS(2260), 1, + anon_sym_async, + ACTIONS(2263), 1, + anon_sym_for, ACTIONS(2255), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1099), 3, + STATE(1101), 3, sym_for_in_clause, sym_if_clause, aux_sym__comprehension_clauses_repeat1, - [61479] = 4, + [62060] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2219), 1, - anon_sym_PIPE, - STATE(1097), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2257), 7, + ACTIONS(2238), 1, + anon_sym_COMMA, + ACTIONS(2240), 1, + anon_sym_if, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + STATE(1220), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2266), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62085] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2268), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61498] = 5, + [62099] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2071), 1, + ACTIONS(1606), 8, + anon_sym_COMMA, anon_sym_if, - ACTIONS(2081), 1, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [62113] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2270), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62127] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2059), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [62141] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2272), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62155] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2274), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62169] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2276), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62183] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2278), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62197] = 6, + ACTIONS(3), 1, + sym_comment, ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2181), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [61518] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2163), 5, - anon_sym_COMMA, - anon_sym_RBRACE, + anon_sym_DOT, + ACTIONS(2158), 1, + anon_sym_LPAREN, + ACTIONS(2280), 1, anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61538] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2155), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61556] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2159), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [61572] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2159), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61590] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2177), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61610] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2181), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61630] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2181), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [61650] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2265), 8, + STATE(1036), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2160), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, - anon_sym_if, - anon_sym_COLON, anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61664] = 4, + [62219] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2269), 1, + ACTIONS(2284), 1, anon_sym_COMMA, - STATE(1136), 1, + STATE(1113), 1, aux_sym_for_in_clause_repeat1, - ACTIONS(2267), 6, + ACTIONS(2282), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61682] = 5, + [62237] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2244), 5, + ACTIONS(2288), 1, anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61702] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(67), 1, - anon_sym_AT, - ACTIONS(2271), 1, + STATE(1113), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2286), 6, + anon_sym_RPAREN, + anon_sym_if, anon_sym_async, - ACTIONS(2273), 1, - anon_sym_def, - ACTIONS(2275), 1, - anon_sym_class, - STATE(552), 2, - sym_function_definition, - sym_class_definition, - STATE(1248), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [61726] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2277), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61740] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2279), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61754] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2246), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61768] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2281), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61788] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(67), 1, - anon_sym_AT, - ACTIONS(2283), 1, - anon_sym_async, - ACTIONS(2285), 1, - anon_sym_def, - ACTIONS(2287), 1, - anon_sym_class, - STATE(521), 2, - sym_function_definition, - sym_class_definition, - STATE(1248), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [61812] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2289), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61826] = 2, + [62255] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2291), 8, @@ -75349,55 +76025,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61840] = 3, + [62269] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2159), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_or, - anon_sym_SEMI, - [61856] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2293), 1, - anon_sym_from, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2297), 2, - sym__newline, - anon_sym_SEMI, - [61882] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2159), 6, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_SEMI, - [61900] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2299), 8, + ACTIONS(2293), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75406,25 +76037,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61914] = 5, + [62283] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2301), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61934] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 8, + ACTIONS(2295), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75433,215 +76049,278 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61948] = 2, + [62297] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2305), 8, - anon_sym_RPAREN, + ACTIONS(2299), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61962] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2309), 1, - anon_sym_COMMA, - STATE(1146), 1, + STATE(1166), 1, aux_sym_for_in_clause_repeat1, - ACTIONS(2307), 6, + ACTIONS(2297), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61980] = 2, + [62315] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1597), 8, + ACTIONS(2301), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62329] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2184), 6, anon_sym_COMMA, anon_sym_if, anon_sym_RBRACE, anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62347] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2240), 1, + anon_sym_if, + ACTIONS(2244), 1, anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2196), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62367] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2200), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62385] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2164), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_or, anon_sym_COLON2, sym_type_conversion, - [61994] = 2, + [62401] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2311), 8, - anon_sym_RPAREN, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2164), 6, anon_sym_COMMA, - anon_sym_as, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, anon_sym_RBRACE, - [62008] = 2, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62419] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2313), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2240), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2176), 5, + anon_sym_COMMA, anon_sym_RBRACE, - [62022] = 2, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62439] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2315), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2240), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2172), 5, + anon_sym_COMMA, anon_sym_RBRACE, - [62036] = 6, - ACTIONS(2065), 1, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62459] = 4, + ACTIONS(3), 1, sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2200), 6, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_SEMI, + [62477] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(69), 1, + anon_sym_AT, + ACTIONS(2307), 1, + anon_sym_async, + ACTIONS(2309), 1, + anon_sym_def, + ACTIONS(2311), 1, + anon_sym_class, + STATE(610), 2, + sym_function_definition, + sym_class_definition, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [62501] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(69), 1, + anon_sym_AT, + ACTIONS(2313), 1, + anon_sym_async, + ACTIONS(2315), 1, + anon_sym_def, ACTIONS(2317), 1, - anon_sym_LBRACE2, - ACTIONS(2322), 1, - anon_sym_BSLASH, + anon_sym_class, + STATE(550), 2, + sym_function_definition, + sym_class_definition, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [62525] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2319), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62539] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2321), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62553] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2240), 1, + anon_sym_if, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2234), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62573] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2250), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62587] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2323), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62601] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, ACTIONS(2325), 1, + anon_sym_from, + ACTIONS(2327), 1, + anon_sym_COMMA, + ACTIONS(2329), 1, + anon_sym_if, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2331), 2, + sym__newline, + anon_sym_SEMI, + [62627] = 6, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2333), 1, + anon_sym_LBRACE2, + ACTIONS(2338), 1, + anon_sym_BSLASH, + ACTIONS(2341), 1, sym__string_end, - STATE(1133), 2, + STATE(1135), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2319), 3, + ACTIONS(2335), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [62058] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2327), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62072] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2050), 8, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [62086] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2331), 1, - anon_sym_COMMA, - STATE(1162), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2329), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62104] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2333), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62118] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2335), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62132] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - ACTIONS(2093), 1, - anon_sym_LPAREN, - ACTIONS(2337), 1, - anon_sym_EQ, - STATE(1042), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2095), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_PIPE, - [62154] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2097), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62168] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2244), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62188] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2341), 1, - anon_sym_PIPE, - ACTIONS(2339), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62204] = 2, + [62649] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2343), 8, @@ -75653,153 +76332,159 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62218] = 5, + [62663] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2177), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62238] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2199), 6, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_SEMI, - [62256] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2347), 1, - anon_sym_COMMA, - STATE(1162), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2345), 6, + ACTIONS(2345), 8, anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, - anon_sym_async, - anon_sym_for, + anon_sym_COLON, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62274] = 6, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2349), 1, - anon_sym_LBRACE2, - ACTIONS(2353), 1, - anon_sym_BSLASH, - ACTIONS(2355), 1, - sym__string_end, - STATE(1133), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2351), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [62296] = 7, + [62677] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2347), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62691] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2351), 1, + anon_sym_PIPE, + ACTIONS(2349), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62707] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2353), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62721] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2184), 6, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_SEMI, + [62739] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2234), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [62759] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2240), 1, + anon_sym_if, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2355), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62779] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, ACTIONS(2357), 1, anon_sym_COMMA, - STATE(1232), 1, + STATE(1250), 1, aux_sym_expression_list_repeat1, - ACTIONS(2236), 3, + ACTIONS(2266), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - [62320] = 4, + [62803] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2081), 1, + ACTIONS(2303), 1, anon_sym_and, - ACTIONS(2083), 1, + ACTIONS(2305), 1, anon_sym_or, - ACTIONS(2199), 6, - anon_sym_COMMA, + ACTIONS(2329), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62338] = 5, + ACTIONS(2176), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [62823] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2081), 1, + ACTIONS(2303), 1, anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2163), 5, + ACTIONS(2164), 7, + sym__newline, + anon_sym_from, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62358] = 4, + anon_sym_if, + anon_sym_EQ, + anon_sym_or, + anon_sym_SEMI, + [62839] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2081), 1, + ACTIONS(2303), 1, anon_sym_and, - ACTIONS(2083), 1, + ACTIONS(2305), 1, anon_sym_or, - ACTIONS(2155), 6, + ACTIONS(2164), 6, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62376] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2159), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_or, - [62392] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2159), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62410] = 2, + anon_sym_EQ, + anon_sym_SEMI, + [62857] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2359), 8, @@ -75811,333 +76496,335 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62424] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2361), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62442] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2163), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62462] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2177), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62482] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1597), 8, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [62496] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2363), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62510] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2365), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62524] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2367), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62538] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2371), 1, - anon_sym_COMMA, - STATE(1162), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2369), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62556] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2155), 6, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_SEMI, - [62574] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2281), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62594] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2199), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62612] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2301), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62632] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2374), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62646] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2050), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [62660] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - ACTIONS(2378), 1, - anon_sym_LPAREN, - ACTIONS(2380), 1, - anon_sym_STAR, - STATE(1290), 1, - sym_dotted_name, - STATE(1368), 1, - sym_aliased_import, - STATE(1532), 1, - sym__import_list, - STATE(1533), 1, - sym_wildcard_import, - [62685] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, + [62871] = 6, ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2382), 1, + sym_comment, + ACTIONS(2361), 1, + anon_sym_LBRACE2, + ACTIONS(2365), 1, + anon_sym_BSLASH, + ACTIONS(2367), 1, + sym__string_end, + STATE(1135), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2363), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [62893] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2369), 8, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(2384), 1, - anon_sym_RBRACE, - STATE(1100), 1, - sym_for_in_clause, - STATE(1491), 1, - aux_sym_dictionary_repeat1, - STATE(1650), 1, - sym__comprehension_clauses, - [62710] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2386), 1, - anon_sym_except, - ACTIONS(2388), 1, - anon_sym_finally, - STATE(553), 1, - sym_finally_clause, - STATE(279), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(283), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [62731] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, + anon_sym_as, anon_sym_if, - ACTIONS(2390), 4, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62907] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2355), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - anon_sym_EQ, - [62750] = 6, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62927] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2386), 1, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2172), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [62947] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2371), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62967] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2240), 1, + anon_sym_if, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2371), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62987] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2196), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [63007] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1606), 8, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [63021] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2373), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63039] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + ACTIONS(2184), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63057] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2105), 1, + anon_sym_if, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + ACTIONS(2196), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63077] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + ACTIONS(2200), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63095] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2164), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_or, + [63111] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + ACTIONS(2164), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63129] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2105), 1, + anon_sym_if, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + ACTIONS(2176), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63149] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2105), 1, + anon_sym_if, + ACTIONS(2115), 1, + anon_sym_and, + ACTIONS(2117), 1, + anon_sym_or, + ACTIONS(2172), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63169] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2377), 1, + anon_sym_COMMA, + STATE(1112), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2375), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63187] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2381), 1, + anon_sym_COMMA, + STATE(1113), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2379), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63205] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2059), 8, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [63219] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2081), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63233] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2383), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63247] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2385), 1, + anon_sym_COMMA, + ACTIONS(2387), 1, + anon_sym_RBRACE, + STATE(1091), 1, + sym_for_in_clause, + STATE(1507), 1, + aux_sym_dictionary_repeat1, + STATE(1721), 1, + sym__comprehension_clauses, + [63272] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2389), 1, anon_sym_except, - ACTIONS(2388), 1, + ACTIONS(2391), 1, anon_sym_finally, - STATE(562), 1, + STATE(611), 1, sym_finally_clause, STATE(266), 2, sym_except_clause, aux_sym_try_statement_repeat1, - STATE(267), 2, + STATE(271), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - [62771] = 5, + [63293] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2392), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62790] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2394), 1, - anon_sym_COMMA, - STATE(1360), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2396), 2, - sym__newline, - anon_sym_SEMI, - [62813] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1597), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [62826] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2398), 1, - anon_sym_COMMA, - STATE(1365), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2400), 2, - sym__newline, - anon_sym_SEMI, - [62849] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2402), 7, + ACTIONS(2393), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -76145,1001 +76832,1100 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [62862] = 7, + [63306] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, + ACTIONS(2286), 7, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2404), 2, - sym__newline, - anon_sym_SEMI, - [62885] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2406), 2, - sym__newline, - anon_sym_SEMI, - [62908] = 6, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63319] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2408), 1, + ACTIONS(2395), 1, + anon_sym_COMMA, + ACTIONS(2397), 1, + anon_sym_as, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2401), 1, + anon_sym_COLON, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + STATE(1342), 1, + aux_sym_exception_list_repeat1, + [63344] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2389), 1, anon_sym_except, - ACTIONS(2410), 1, + ACTIONS(2391), 1, anon_sym_finally, - STATE(535), 1, + STATE(521), 1, + sym_finally_clause, + STATE(273), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + STATE(279), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + [63365] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2327), 1, + anon_sym_COMMA, + ACTIONS(2329), 1, + anon_sym_if, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2407), 2, + sym__newline, + anon_sym_SEMI, + [63388] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2409), 1, + sym_identifier, + ACTIONS(2411), 1, + anon_sym_DOT, + ACTIONS(2413), 1, + anon_sym___future__, + STATE(1374), 1, + aux_sym_import_prefix_repeat1, + STATE(1419), 1, + sym_import_prefix, + STATE(1677), 2, + sym_relative_import, + sym_dotted_name, + [63411] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2176), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [63430] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2327), 1, + anon_sym_COMMA, + ACTIONS(2329), 1, + anon_sym_if, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2415), 2, + sym__newline, + anon_sym_SEMI, + [63453] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2152), 1, + anon_sym_if, + ACTIONS(2154), 1, + anon_sym_and, + ACTIONS(2156), 1, + anon_sym_or, + ACTIONS(2417), 4, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63472] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2419), 1, + anon_sym_COMMA, + STATE(1350), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2421), 2, + sym__newline, + anon_sym_SEMI, + [63495] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2423), 1, + anon_sym_COMMA, + STATE(1360), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2425), 2, + sym__newline, + anon_sym_SEMI, + [63518] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2427), 1, + sym_identifier, + ACTIONS(2429), 1, + anon_sym_LPAREN, + ACTIONS(2431), 1, + anon_sym_STAR, + STATE(1281), 1, + sym_dotted_name, + STATE(1372), 1, + sym_aliased_import, + STATE(1517), 1, + sym__import_list, + STATE(1521), 1, + sym_wildcard_import, + [63543] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2355), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_SEMI, + [63562] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2172), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [63581] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2266), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63594] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2184), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [63611] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2240), 1, + anon_sym_if, + ACTIONS(2244), 1, + anon_sym_and, + ACTIONS(2246), 1, + anon_sym_or, + ACTIONS(2433), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63630] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2059), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [63643] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2427), 1, + sym_identifier, + ACTIONS(2431), 1, + anon_sym_STAR, + ACTIONS(2435), 1, + anon_sym_LPAREN, + STATE(1281), 1, + sym_dotted_name, + STATE(1372), 1, + sym_aliased_import, + STATE(1534), 1, + sym__import_list, + STATE(1535), 1, + sym_wildcard_import, + [63668] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2437), 1, + sym_identifier, + ACTIONS(2439), 1, + anon_sym_STAR, + ACTIONS(2441), 1, + anon_sym_STAR_STAR, + STATE(1483), 4, + sym_typevar_parameter, + sym_typevartuple_parameter, + sym_paramspec_parameter, + sym__type_parameter, + [63687] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2443), 1, + anon_sym_COMMA, + ACTIONS(2445), 1, + anon_sym_RBRACE, + STATE(1091), 1, + sym_for_in_clause, + STATE(1413), 1, + aux_sym_dictionary_repeat1, + STATE(1601), 1, + sym__comprehension_clauses, + [63712] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2447), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63731] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2196), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [63750] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2327), 1, + anon_sym_COMMA, + ACTIONS(2329), 1, + anon_sym_if, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2266), 2, + sym__newline, + anon_sym_SEMI, + [63773] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2433), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63792] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2200), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [63809] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2164), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_or, + [63824] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2109), 1, + anon_sym_async, + ACTIONS(2111), 1, + anon_sym_for, + ACTIONS(2449), 1, + anon_sym_COMMA, + ACTIONS(2451), 1, + anon_sym_RBRACE, + STATE(1091), 1, + sym_for_in_clause, + STATE(1437), 1, + aux_sym_dictionary_repeat1, + STATE(1667), 1, + sym__comprehension_clauses, + [63849] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2164), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [63866] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2453), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_EQ, + [63885] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2437), 1, + sym_identifier, + ACTIONS(2439), 1, + anon_sym_STAR, + ACTIONS(2441), 1, + anon_sym_STAR_STAR, + STATE(1519), 4, + sym_typevar_parameter, + sym_typevartuple_parameter, + sym_paramspec_parameter, + sym__type_parameter, + [63904] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2395), 1, + anon_sym_COMMA, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2455), 1, + anon_sym_as, + ACTIONS(2457), 1, + anon_sym_COLON, + STATE(1342), 1, + aux_sym_exception_list_repeat1, + [63929] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2395), 1, + anon_sym_COMMA, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2459), 1, + anon_sym_as, + ACTIONS(2461), 1, + anon_sym_COLON, + STATE(1342), 1, + aux_sym_exception_list_repeat1, + [63954] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2465), 1, + anon_sym_as, + ACTIONS(2463), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [63975] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2327), 1, + anon_sym_COMMA, + ACTIONS(2329), 1, + anon_sym_if, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2467), 2, + sym__newline, + anon_sym_SEMI, + [63998] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2327), 1, + anon_sym_COMMA, + ACTIONS(2329), 1, + anon_sym_if, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2469), 2, + sym__newline, + anon_sym_SEMI, + [64021] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2471), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64034] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2473), 1, + anon_sym_except, + ACTIONS(2475), 1, + anon_sym_finally, + STATE(566), 1, sym_finally_clause, STATE(268), 2, sym_except_clause, aux_sym_try_statement_repeat1, - STATE(280), 2, + STATE(269), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - [62929] = 5, + [64055] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2412), 1, - sym_identifier, - ACTIONS(2414), 1, - anon_sym_STAR, - ACTIONS(2416), 1, - anon_sym_STAR_STAR, - STATE(1524), 4, - sym_typevar_parameter, - sym_typevartuple_parameter, - sym_paramspec_parameter, - sym__type_parameter, - [62948] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, + ACTIONS(2395), 1, + anon_sym_COMMA, + ACTIONS(2399), 1, anon_sym_if, - ACTIONS(2238), 1, + ACTIONS(2403), 1, anon_sym_and, - ACTIONS(2240), 1, + ACTIONS(2405), 1, anon_sym_or, - ACTIONS(2418), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62967] = 3, + ACTIONS(2477), 1, + anon_sym_as, + ACTIONS(2479), 1, + anon_sym_COLON, + STATE(1342), 1, + aux_sym_exception_list_repeat1, + [64080] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2422), 1, - anon_sym_as, - ACTIONS(2420), 6, + ACTIONS(1606), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62982] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2424), 2, - sym__newline, - anon_sym_SEMI, - [63005] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2428), 1, anon_sym_as, - ACTIONS(2430), 1, anon_sym_if, - ACTIONS(2432), 1, anon_sym_COLON, - ACTIONS(2434), 1, anon_sym_and, - ACTIONS(2436), 1, anon_sym_or, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63030] = 6, + [64093] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2408), 1, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2371), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_SEMI, + [64112] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2473), 1, anon_sym_except, - ACTIONS(2410), 1, + ACTIONS(2475), 1, anon_sym_finally, - STATE(607), 1, + STATE(608), 1, sym_finally_clause, - STATE(275), 2, + STATE(272), 2, sym_except_clause, aux_sym_try_statement_repeat1, - STATE(287), 2, + STATE(276), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - [63051] = 4, + [64133] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2199), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63068] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2418), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63087] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, + ACTIONS(2109), 1, anon_sym_async, - ACTIONS(2077), 1, + ACTIONS(2111), 1, anon_sym_for, - ACTIONS(2438), 1, + ACTIONS(2481), 1, anon_sym_COMMA, - ACTIONS(2440), 1, + ACTIONS(2483), 1, anon_sym_RBRACE, - STATE(1100), 1, + STATE(1091), 1, sym_for_in_clause, - STATE(1409), 1, + STATE(1501), 1, aux_sym_dictionary_repeat1, - STATE(1718), 1, + STATE(1678), 1, sym__comprehension_clauses, - [63112] = 5, + [64158] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2301), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_SEMI, - [63131] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2163), 4, + ACTIONS(2487), 1, + anon_sym_as, + ACTIONS(2485), 6, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63150] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2155), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, anon_sym_if, anon_sym_COLON, - [63167] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2159), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_or, - [63182] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2159), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63199] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2236), 7, - anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63212] = 7, + [64173] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, + ACTIONS(2303), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2305), 1, anon_sym_or, - ACTIONS(2398), 1, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2423), 1, anon_sym_COMMA, - STATE(1344), 1, + STATE(1354), 1, aux_sym_assert_statement_repeat1, - ACTIONS(2442), 2, + ACTIONS(2489), 2, sym__newline, anon_sym_SEMI, - [63235] = 8, + [64196] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2444), 1, - anon_sym_COMMA, - ACTIONS(2446), 1, - anon_sym_RBRACE, - STATE(1100), 1, - sym_for_in_clause, - STATE(1427), 1, - aux_sym_dictionary_repeat1, - STATE(1631), 1, - sym__comprehension_clauses, - [63260] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2281), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_SEMI, - [63279] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2450), 1, - anon_sym_as, - ACTIONS(2448), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [63300] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2452), 1, - sym_identifier, - ACTIONS(2454), 1, + ACTIONS(2491), 1, anon_sym_DOT, - ACTIONS(2456), 1, - anon_sym___future__, - STATE(1336), 1, - aux_sym_import_prefix_repeat1, - STATE(1402), 1, - sym_import_prefix, - STATE(1709), 2, - sym_relative_import, - sym_dotted_name, - [63323] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2236), 2, - sym__newline, - anon_sym_SEMI, - [63346] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2458), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63359] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2460), 1, - anon_sym_as, - ACTIONS(2462), 1, - anon_sym_COLON, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63384] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2464), 1, - anon_sym_as, - ACTIONS(2466), 1, - anon_sym_COLON, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63409] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2412), 1, - sym_identifier, - ACTIONS(2414), 1, - anon_sym_STAR, - ACTIONS(2416), 1, - anon_sym_STAR_STAR, - STATE(1416), 4, - sym_typevar_parameter, - sym_typevartuple_parameter, - sym_paramspec_parameter, - sym__type_parameter, - [63428] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2468), 1, - anon_sym_as, - ACTIONS(2470), 1, - anon_sym_COLON, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63453] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2177), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63472] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2181), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63491] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2050), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [63504] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2369), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63517] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2472), 1, - anon_sym_COMMA, - ACTIONS(2474), 1, - anon_sym_RBRACE, - STATE(1100), 1, - sym_for_in_clause, - STATE(1433), 1, - aux_sym_dictionary_repeat1, - STATE(1721), 1, - sym__comprehension_clauses, - [63542] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2476), 2, - sym__newline, - anon_sym_SEMI, - [63565] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2478), 4, - anon_sym_COMMA, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [63584] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2480), 1, - anon_sym_COMMA, - STATE(1221), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63600] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - STATE(1241), 1, + STATE(1224), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2484), 4, - anon_sym_import, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - [63616] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2486), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2488), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [63630] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2490), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2492), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [63644] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2494), 1, - anon_sym_DOT, - STATE(1233), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2484), 4, + ACTIONS(2493), 4, sym__newline, anon_sym_COMMA, anon_sym_as, anon_sym_SEMI, - [63660] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2498), 1, - anon_sym_COLON, - ACTIONS(2500), 1, - anon_sym_EQ, - STATE(1327), 1, - sym__type_bound, - STATE(1529), 1, - sym__type_param_default, - ACTIONS(2496), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [63680] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2502), 1, - anon_sym_COMMA, - STATE(1221), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2505), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63696] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2507), 1, - anon_sym_COMMA, - STATE(1222), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2505), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63712] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2510), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2512), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [63726] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2514), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [63744] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2171), 1, - anon_sym_RPAREN, - ACTIONS(2173), 1, - anon_sym_COMMA, - ACTIONS(2179), 1, - anon_sym_if, - STATE(1451), 1, - aux_sym_argument_list_repeat1, - [63766] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2516), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [63784] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2518), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [63802] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2520), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [63820] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2522), 1, - anon_sym_COMMA, - STATE(1222), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63836] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2524), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63858] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2526), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [63876] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2528), 1, - anon_sym_COMMA, - STATE(1222), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63892] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2494), 1, - anon_sym_DOT, - STATE(1234), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2530), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [63908] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2532), 1, - anon_sym_DOT, - STATE(1234), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2054), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [63924] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2535), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63946] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2537), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63968] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2539), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63990] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2541), 3, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_EQ, - [64008] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2095), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64020] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2543), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [64042] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - STATE(1032), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2530), 4, - anon_sym_import, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - [64058] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2547), 1, - anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(2545), 4, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [64074] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2550), 3, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [64092] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2552), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64104] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2554), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2556), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64118] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2560), 1, - anon_sym_COLON, - ACTIONS(2558), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64138] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2564), 1, - anon_sym_COLON, - ACTIONS(2562), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64158] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2568), 1, - anon_sym_AT, - STATE(1248), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - ACTIONS(2566), 3, - anon_sym_async, - anon_sym_def, - anon_sym_class, - [64174] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2573), 1, - anon_sym_COLON, - ACTIONS(2571), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64194] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2390), 3, - sym__newline, - anon_sym_EQ, - anon_sym_SEMI, [64212] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2575), 1, + ACTIONS(2497), 1, anon_sym_COMMA, - STATE(1221), 1, + STATE(1218), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(2495), 4, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [64228] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2500), 1, + anon_sym_COMMA, + STATE(1233), 1, aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, + ACTIONS(2502), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [64228] = 3, - ACTIONS(2065), 1, + [64244] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2504), 1, + anon_sym_COMMA, + STATE(1233), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2502), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [64260] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2160), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64272] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2083), 1, + anon_sym_DOT, + STATE(1033), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2506), 4, + anon_sym_import, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + [64288] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2510), 1, + anon_sym_COLON, + ACTIONS(2508), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [64308] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2491), 1, + anon_sym_DOT, + STATE(1249), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2506), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [64324] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2512), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [64342] = 3, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2514), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2516), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [64356] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2520), 1, + anon_sym_COLON, + ACTIONS(2522), 1, + anon_sym_EQ, + STATE(1371), 1, + sym__type_bound, + STATE(1537), 1, + sym__type_param_default, + ACTIONS(2518), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [64376] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2083), 1, + anon_sym_DOT, + STATE(1222), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2493), 4, + anon_sym_import, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + [64392] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2524), 3, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_EQ, + [64410] = 3, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2526), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2528), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [64424] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2532), 1, + anon_sym_COMMA, + STATE(1231), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 4, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64440] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2216), 1, + anon_sym_RPAREN, + ACTIONS(2218), 1, + anon_sym_COMMA, + STATE(1441), 1, + aux_sym_argument_list_repeat1, + [64462] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2535), 1, + anon_sym_COMMA, + STATE(1233), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [64478] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2357), 1, + anon_sym_COMMA, + ACTIONS(2538), 1, + anon_sym_COLON, + STATE(1250), 1, + aux_sym_expression_list_repeat1, + [64500] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2540), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [64518] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2544), 1, + anon_sym_COLON, + ACTIONS(2542), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [64538] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2357), 1, + anon_sym_COMMA, + ACTIONS(2546), 1, + anon_sym_COLON, + STATE(1250), 1, + aux_sym_expression_list_repeat1, + [64560] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2357), 1, + anon_sym_COMMA, + ACTIONS(2548), 1, + anon_sym_COLON, + STATE(1250), 1, + aux_sym_expression_list_repeat1, + [64582] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2550), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64594] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2552), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [64612] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2357), 1, + anon_sym_COMMA, + ACTIONS(2554), 1, + anon_sym_COLON, + STATE(1250), 1, + aux_sym_expression_list_repeat1, + [64634] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2556), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [64652] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2453), 3, + sym__newline, + anon_sym_EQ, + anon_sym_SEMI, + [64670] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2558), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [64688] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2357), 1, + anon_sym_COMMA, + ACTIONS(2560), 1, + anon_sym_COLON, + STATE(1250), 1, + aux_sym_expression_list_repeat1, + [64710] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2357), 1, + anon_sym_COMMA, + ACTIONS(2562), 1, + anon_sym_COLON, + STATE(1250), 1, + aux_sym_expression_list_repeat1, + [64732] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2564), 1, + anon_sym_COMMA, + STATE(1231), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2502), 4, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64748] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2411), 1, + anon_sym_DOT, + ACTIONS(2566), 1, + sym_identifier, + STATE(1374), 1, + aux_sym_import_prefix_repeat1, + STATE(1419), 1, + sym_import_prefix, + STATE(1661), 2, + sym_relative_import, + sym_dotted_name, + [64768] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2568), 1, + anon_sym_DOT, + STATE(1249), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2063), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [64784] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2571), 1, + anon_sym_COMMA, + STATE(1231), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2502), 4, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64800] = 3, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2573), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2575), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [64814] = 3, + ACTIONS(2077), 1, sym_comment, ACTIONS(2577), 2, anon_sym_LBRACE2, @@ -77149,5221 +77935,5323 @@ static const uint16_t ts_small_parse_table[] = { sym__string_end, sym__escape_interpolation, sym_escape_sequence, - [64242] = 3, - ACTIONS(2065), 1, + [64828] = 5, + ACTIONS(3), 1, sym_comment, - ACTIONS(2581), 2, + ACTIONS(2399), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_and, + ACTIONS(2405), 1, + anon_sym_or, + ACTIONS(2581), 3, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [64846] = 3, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2583), 2, anon_sym_LBRACE2, anon_sym_BSLASH, - ACTIONS(2583), 4, + ACTIONS(2585), 4, sym__string_content, sym__string_end, sym__escape_interpolation, sym_escape_sequence, - [64256] = 7, - ACTIONS(3), 1, + [64860] = 3, + ACTIONS(2077), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2585), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [64278] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, ACTIONS(2587), 2, - sym__newline, - anon_sym_SEMI, - [64295] = 6, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2589), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [64874] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2589), 1, - anon_sym_LPAREN, - ACTIONS(2591), 1, - anon_sym_COLON, - ACTIONS(2593), 1, - anon_sym_LBRACK, - STATE(1453), 1, - sym_type_parameters, - STATE(1601), 1, - sym_argument_list, - [64314] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - STATE(1259), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2079), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64329] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, + ACTIONS(2178), 1, anon_sym_if, - ACTIONS(2261), 1, + ACTIONS(2180), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2182), 1, anon_sym_or, - ACTIONS(2418), 2, - sym__newline, - anon_sym_SEMI, - [64346] = 4, + ACTIONS(2593), 1, + anon_sym_COLON, + ACTIONS(2591), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [64894] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2597), 1, - anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, + anon_sym_AT, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, ACTIONS(2595), 3, - anon_sym_RPAREN, + anon_sym_async, + anon_sym_def, + anon_sym_class, + [64910] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2600), 2, + anon_sym_COMMA, anon_sym_RBRACK, - anon_sym_RBRACE, - [64361] = 4, + [64927] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2599), 1, - anon_sym_COMMA, - STATE(1280), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 3, - sym__newline, - anon_sym_from, - anon_sym_SEMI, - [64376] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2601), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [64393] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2603), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [64410] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2605), 5, + ACTIONS(2602), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, anon_sym_COLON, anon_sym_RBRACK, - [64421] = 5, + [64938] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2178), 1, anon_sym_if, - ACTIONS(2607), 2, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2417), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [64955] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2604), 2, anon_sym_COMMA, anon_sym_RBRACK, - [64438] = 6, + [64972] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2609), 1, + ACTIONS(2371), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64983] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2606), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [65000] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2427), 1, + sym_identifier, + STATE(1326), 1, + sym_dotted_name, + STATE(1381), 1, + sym_aliased_import, + ACTIONS(2608), 2, + sym__newline, + anon_sym_SEMI, + [65017] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2610), 2, + sym__newline, + anon_sym_SEMI, + [65034] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2371), 5, + anon_sym_COMMA, anon_sym_RBRACE, - ACTIONS(2611), 1, anon_sym_EQ, - ACTIONS(2613), 1, anon_sym_COLON2, - ACTIONS(2615), 1, sym_type_conversion, - STATE(1652), 1, + [65045] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2614), 1, + anon_sym_COMMA, + STATE(1287), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2612), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65060] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2616), 2, + sym__newline, + anon_sym_SEMI, + [65077] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2618), 1, + anon_sym_RBRACE, + ACTIONS(2620), 1, + anon_sym_EQ, + ACTIONS(2622), 1, + anon_sym_COLON2, + ACTIONS(2624), 1, + sym_type_conversion, + STATE(1694), 1, sym_format_specifier, - [64457] = 5, + [65096] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2303), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2305), 1, anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2329), 1, anon_sym_if, - ACTIONS(2617), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64474] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2281), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64485] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2619), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64502] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2621), 2, + ACTIONS(2626), 2, sym__newline, anon_sym_SEMI, - [64519] = 4, + [65113] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2623), 1, - anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2595), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64534] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, + ACTIONS(2427), 1, sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, - ACTIONS(2625), 2, - sym__newline, - anon_sym_SEMI, - [64551] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - ACTIONS(2627), 1, + ACTIONS(2628), 1, anon_sym_LPAREN, - STATE(1290), 1, + STATE(1281), 1, sym_dotted_name, - STATE(1368), 1, + STATE(1372), 1, sym_aliased_import, - STATE(1527), 1, + STATE(1559), 1, sym__import_list, - [64570] = 2, + [65132] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2281), 5, + ACTIONS(2630), 1, anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [64581] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2629), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [64598] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, - ACTIONS(2625), 2, - sym__newline, - anon_sym_SEMI, - [64615] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2631), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64632] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2545), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [64643] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2633), 1, - anon_sym_COMMA, - STATE(1280), 1, + STATE(1284), 1, aux_sym_expression_list_repeat1, - ACTIONS(2482), 3, + ACTIONS(2502), 3, sym__newline, anon_sym_from, anon_sym_SEMI, - [64658] = 5, + [65147] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2635), 2, - sym__newline, - anon_sym_SEMI, - [64675] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2637), 1, - anon_sym_COMMA, - STATE(1280), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2505), 3, - sym__newline, - anon_sym_from, - anon_sym_SEMI, - [64690] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2589), 1, + ACTIONS(2632), 1, anon_sym_LPAREN, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(2640), 1, + ACTIONS(2634), 1, anon_sym_COLON, - STATE(1493), 1, + ACTIONS(2636), 1, + anon_sym_LBRACK, + STATE(1463), 1, sym_type_parameters, - STATE(1710), 1, + STATE(1611), 1, sym_argument_list, - [64709] = 5, + [65166] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2303), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2305), 1, anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2329), 1, anon_sym_if, - ACTIONS(2478), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [64726] = 6, - ACTIONS(2065), 1, + ACTIONS(2433), 2, + sym__newline, + anon_sym_SEMI, + [65183] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2638), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [65200] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2640), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65217] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2642), 2, + sym__newline, + anon_sym_SEMI, + [65234] = 4, + ACTIONS(3), 1, sym_comment, - ACTIONS(2642), 1, - anon_sym_RBRACE, ACTIONS(2644), 1, - anon_sym_LBRACE2, + anon_sym_COMMA, + STATE(1284), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2502), 3, + sym__newline, + anon_sym_from, + anon_sym_SEMI, + [65249] = 6, + ACTIONS(2077), 1, + sym_comment, ACTIONS(2646), 1, + anon_sym_RBRACE, + ACTIONS(2648), 1, + anon_sym_LBRACE2, + ACTIONS(2650), 1, aux_sym_format_specifier_token1, STATE(1288), 1, aux_sym_format_specifier_repeat1, - STATE(1497), 1, + STATE(1446), 1, sym_interpolation, - [64745] = 6, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2648), 1, - anon_sym_RBRACE, - ACTIONS(2650), 1, - anon_sym_LBRACE2, - ACTIONS(2653), 1, - aux_sym_format_specifier_token1, - STATE(1284), 1, - aux_sym_format_specifier_repeat1, - STATE(1497), 1, - sym_interpolation, - [64764] = 5, + [65268] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, + ACTIONS(2178), 1, anon_sym_if, - ACTIONS(2261), 1, + ACTIONS(2180), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2182), 1, anon_sym_or, - ACTIONS(2656), 2, + ACTIONS(2652), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [65285] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2654), 1, + anon_sym_COMMA, + ACTIONS(2656), 1, + anon_sym_as, + STATE(1322), 1, + aux_sym__import_list_repeat1, + ACTIONS(2658), 2, sym__newline, anon_sym_SEMI, - [64781] = 4, + [65302] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2660), 1, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2660), 2, anon_sym_COMMA, - STATE(1286), 1, + anon_sym_RBRACK, + [65319] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2632), 1, + anon_sym_LPAREN, + ACTIONS(2636), 1, + anon_sym_LBRACK, + ACTIONS(2662), 1, + anon_sym_COLON, + STATE(1470), 1, + sym_type_parameters, + STATE(1653), 1, + sym_argument_list, + [65338] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2664), 1, + anon_sym_COMMA, + STATE(1284), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 3, + sym__newline, + anon_sym_from, + anon_sym_SEMI, + [65353] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2667), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65370] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2669), 1, + anon_sym_COMMA, + STATE(1287), 1, aux_sym__collection_elements_repeat1, - ACTIONS(2658), 3, + ACTIONS(2612), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - [64796] = 6, + [65385] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2663), 1, + ACTIONS(2673), 1, + anon_sym_COMMA, + STATE(1287), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2671), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, anon_sym_RBRACE, - ACTIONS(2665), 1, - anon_sym_EQ, - ACTIONS(2667), 1, - sym_type_conversion, - STATE(1587), 1, - sym_format_specifier, - [64815] = 6, - ACTIONS(2065), 1, + [65400] = 6, + ACTIONS(2077), 1, sym_comment, - ACTIONS(2644), 1, + ACTIONS(2676), 1, + anon_sym_RBRACE, + ACTIONS(2678), 1, anon_sym_LBRACE2, - ACTIONS(2669), 1, - anon_sym_RBRACE, - ACTIONS(2671), 1, + ACTIONS(2681), 1, aux_sym_format_specifier_token1, - STATE(1284), 1, + STATE(1288), 1, aux_sym_format_specifier_repeat1, - STATE(1497), 1, + STATE(1446), 1, sym_interpolation, - [64834] = 2, + [65419] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2054), 5, + ACTIONS(2427), 1, + sym_identifier, + STATE(1326), 1, + sym_dotted_name, + STATE(1381), 1, + sym_aliased_import, + ACTIONS(2684), 2, + sym__newline, + anon_sym_SEMI, + [65436] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + STATE(1286), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2113), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65451] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_COLON2, + ACTIONS(2686), 1, + anon_sym_RBRACE, + ACTIONS(2688), 1, + anon_sym_EQ, + ACTIONS(2690), 1, + sym_type_conversion, + STATE(1718), 1, + sym_format_specifier, + [65470] = 6, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2648), 1, + anon_sym_LBRACE2, + ACTIONS(2692), 1, + anon_sym_RBRACE, + ACTIONS(2694), 1, + aux_sym_format_specifier_token1, + STATE(1279), 1, + aux_sym_format_specifier_repeat1, + STATE(1446), 1, + sym_interpolation, + [65489] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2495), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [65500] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 5, sym__newline, anon_sym_DOT, anon_sym_COMMA, anon_sym_as, anon_sym_SEMI, - [64845] = 5, + [65511] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2673), 1, - anon_sym_COMMA, - ACTIONS(2675), 1, - anon_sym_as, - STATE(1359), 1, - aux_sym__import_list_repeat1, - ACTIONS(2677), 2, + ACTIONS(2427), 1, + sym_identifier, + STATE(1326), 1, + sym_dotted_name, + STATE(1381), 1, + sym_aliased_import, + ACTIONS(2608), 2, sym__newline, anon_sym_SEMI, - [64862] = 5, + [65528] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2679), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64879] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2681), 2, - sym__newline, - anon_sym_SEMI, - [64896] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2685), 1, - anon_sym_COMMA, - STATE(993), 1, - aux_sym__patterns_repeat1, - ACTIONS(2683), 2, + ACTIONS(2566), 1, + sym_identifier, + ACTIONS(2608), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - [64910] = 4, + STATE(1473), 1, + sym_dotted_name, + STATE(1553), 1, + sym_aliased_import, + [65544] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2687), 1, + ACTIONS(2696), 1, anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(1859), 2, - anon_sym_if, + STATE(1321), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2698), 2, + sym__newline, + anon_sym_SEMI, + [65558] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2696), 1, + anon_sym_COMMA, + STATE(1321), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2700), 2, + sym__newline, + anon_sym_SEMI, + [65572] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2702), 1, + anon_sym_SEMI, + ACTIONS(2704), 1, + sym__newline, + STATE(129), 1, + sym__semicolon, + STATE(1300), 1, + aux_sym__simple_statements_repeat1, + [65588] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(565), 1, + sym__newline, + ACTIONS(2706), 1, + anon_sym_SEMI, + STATE(131), 1, + sym__semicolon, + STATE(1316), 1, + aux_sym__simple_statements_repeat1, + [65604] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2708), 1, + anon_sym_SEMI, + ACTIONS(2710), 1, + sym__newline, + STATE(127), 1, + sym__semicolon, + STATE(1305), 1, + aux_sym__simple_statements_repeat1, + [65620] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2714), 1, + anon_sym_COMMA, + STATE(1302), 1, + aux_sym_with_clause_repeat1, + ACTIONS(2712), 2, + anon_sym_RPAREN, anon_sym_COLON, - [64924] = 5, + [65634] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2689), 1, - anon_sym_COLON, - [64940] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2691), 1, - anon_sym_COLON, - [64956] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2693), 1, - anon_sym_else, - [64972] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2695), 1, + ACTIONS(2717), 1, anon_sym_case, - STATE(610), 1, + STATE(612), 1, sym_cases, - STATE(453), 2, + STATE(451), 2, sym_case_block, aux_sym_cases_repeat1, - [64986] = 4, + [65648] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2697), 1, + ACTIONS(2717), 1, + anon_sym_case, + STATE(512), 1, + sym_cases, + STATE(451), 2, + sym_case_block, + aux_sym_cases_repeat1, + [65662] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(561), 1, + sym__newline, + ACTIONS(2719), 1, + anon_sym_SEMI, + STATE(132), 1, + sym__semicolon, + STATE(1316), 1, + aux_sym__simple_statements_repeat1, + [65678] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2721), 1, + anon_sym_else, + [65694] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2636), 1, + anon_sym_LBRACK, + ACTIONS(2723), 1, + anon_sym_LPAREN, + STATE(1538), 1, + sym_type_parameters, + STATE(1539), 1, + sym_parameters, + [65710] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_COLON2, + ACTIONS(2725), 1, + anon_sym_RBRACE, + ACTIONS(2727), 1, + sym_type_conversion, + STATE(1733), 1, + sym_format_specifier, + [65726] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2729), 1, + anon_sym_COLON, + [65742] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2696), 1, anon_sym_COMMA, - STATE(1355), 1, + STATE(1297), 1, aux_sym_global_statement_repeat1, - ACTIONS(2699), 2, + ACTIONS(2731), 2, sym__newline, anon_sym_SEMI, - [65000] = 2, + [65756] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2701), 4, + ACTIONS(2735), 1, + anon_sym_COMMA, + STATE(1330), 1, + aux_sym__patterns_repeat1, + ACTIONS(2733), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [65770] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2737), 1, + anon_sym_COLON, + [65786] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2739), 1, + anon_sym_COLON, + [65802] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(2081), 1, + anon_sym_COLON, + STATE(675), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + [65816] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(2081), 1, + anon_sym_COLON, + STATE(676), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + [65830] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2741), 1, + anon_sym_SEMI, + ACTIONS(2744), 1, + sym__newline, + STATE(133), 1, + sym__semicolon, + STATE(1316), 1, + aux_sym__simple_statements_repeat1, + [65846] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2371), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_SEMI, + [65856] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_COLON2, + ACTIONS(2746), 1, + anon_sym_RBRACE, + ACTIONS(2748), 1, + sym_type_conversion, + STATE(1624), 1, + sym_format_specifier, + [65872] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2658), 1, + anon_sym_RPAREN, + ACTIONS(2750), 1, + anon_sym_COMMA, + ACTIONS(2752), 1, + anon_sym_as, + STATE(1409), 1, + aux_sym__import_list_repeat1, + [65888] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2754), 1, + anon_sym_COMMA, + STATE(1328), 1, + aux_sym__import_list_repeat1, + ACTIONS(2756), 2, + sym__newline, + anon_sym_SEMI, + [65902] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2758), 1, + anon_sym_COMMA, + STATE(1321), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2761), 2, + sym__newline, + anon_sym_SEMI, + [65916] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2763), 1, + anon_sym_COMMA, + STATE(1328), 1, + aux_sym__import_list_repeat1, + ACTIONS(2756), 2, + sym__newline, + anon_sym_SEMI, + [65930] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2767), 1, + anon_sym_DOT, + STATE(1323), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2765), 2, + anon_sym_import, + sym_identifier, + [65944] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2772), 1, + anon_sym_COLON, + ACTIONS(2774), 1, + anon_sym_EQ, + ACTIONS(2770), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [65958] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2778), 1, + anon_sym_EQ, + ACTIONS(2776), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [65970] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2656), 1, + anon_sym_as, + ACTIONS(2780), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [65982] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2782), 1, + anon_sym_COLON, + [65998] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2784), 1, + anon_sym_COMMA, + STATE(1328), 1, + aux_sym__import_list_repeat1, + ACTIONS(2787), 2, + sym__newline, + anon_sym_SEMI, + [66012] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2789), 1, + anon_sym_COMMA, + STATE(1329), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2792), 2, + anon_sym_as, + anon_sym_COLON, + [66026] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2796), 1, + anon_sym_COMMA, + STATE(994), 1, + aux_sym__patterns_repeat1, + ACTIONS(2794), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [66040] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2566), 1, + sym_identifier, + STATE(1319), 1, + sym_dotted_name, + STATE(1487), 1, + sym_aliased_import, + STATE(1713), 1, + sym__import_list, + [66056] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2798), 1, + anon_sym_SEMI, + ACTIONS(2800), 1, + sym__newline, + STATE(128), 1, + sym__semicolon, + STATE(1335), 1, + aux_sym__simple_statements_repeat1, + [66072] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2566), 1, + sym_identifier, + STATE(1319), 1, + sym_dotted_name, + STATE(1487), 1, + sym_aliased_import, + STATE(1717), 1, + sym__import_list, + [66088] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2566), 1, + sym_identifier, + ACTIONS(2684), 1, + anon_sym_RPAREN, + STATE(1473), 1, + sym_dotted_name, + STATE(1553), 1, + sym_aliased_import, + [66104] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(563), 1, + sym__newline, + ACTIONS(2802), 1, + anon_sym_SEMI, + STATE(130), 1, + sym__semicolon, + STATE(1316), 1, + aux_sym__simple_statements_repeat1, + [66120] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2804), 1, + anon_sym_else, + [66136] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2806), 1, + anon_sym_COLON, + [66152] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2808), 1, + anon_sym_COMMA, + STATE(1363), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2810), 2, + sym__newline, + anon_sym_SEMI, + [66166] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2812), 1, + anon_sym_COLON, + [66182] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2814), 1, + anon_sym_COMMA, + STATE(1218), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(1888), 2, + anon_sym_if, + anon_sym_COLON, + [66196] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2816), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66206] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2395), 1, + anon_sym_COMMA, + STATE(1329), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2818), 2, + anon_sym_as, + anon_sym_COLON, + [66220] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2820), 1, + anon_sym_else, + [66236] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2453), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_EQ, + [66246] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2822), 1, + anon_sym_else, + [66262] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2824), 4, anon_sym_async, anon_sym_def, anon_sym_class, anon_sym_AT, - [65010] = 5, + [66272] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1554), 1, - sym_parameters, - STATE(1557), 1, - sym_type_parameters, - [65026] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2705), 1, - anon_sym_RBRACE, - ACTIONS(2707), 1, - sym_type_conversion, - STATE(1692), 1, - sym_format_specifier, - [65042] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(562), 1, - sym__newline, - ACTIONS(2709), 1, - anon_sym_SEMI, - STATE(129), 1, - sym__semicolon, - STATE(1357), 1, - aux_sym__simple_statements_repeat1, - [65058] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2711), 1, - anon_sym_case, - STATE(555), 1, - sym_cases, - STATE(452), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65072] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2711), 1, - anon_sym_case, - STATE(556), 1, - sym_cases, - STATE(452), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65086] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2675), 1, - anon_sym_as, - ACTIONS(2713), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [65098] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2715), 1, - anon_sym_else, - [65114] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2390), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_EQ, - [65124] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2717), 1, - anon_sym_COMMA, - STATE(1309), 1, - aux_sym__import_list_repeat1, - ACTIONS(2720), 2, - sym__newline, - anon_sym_SEMI, - [65138] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2722), 1, - anon_sym_RBRACE, - ACTIONS(2724), 1, - sym_type_conversion, - STATE(1641), 1, - sym_format_specifier, - [65154] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2726), 1, + ACTIONS(2566), 1, sym_identifier, - STATE(1330), 1, - sym_dotted_name, - STATE(1395), 1, - sym_aliased_import, - STATE(1701), 1, - sym__import_list, - [65170] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2726), 1, - sym_identifier, - STATE(1330), 1, - sym_dotted_name, - STATE(1395), 1, - sym_aliased_import, - STATE(1702), 1, - sym__import_list, - [65186] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2728), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [65196] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2730), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [65206] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2392), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [65216] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2732), 1, - anon_sym_COMMA, - STATE(1340), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2734), 2, - sym__newline, - anon_sym_SEMI, - [65230] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(2097), 1, - anon_sym_COLON, - STATE(616), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - [65244] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(2097), 1, - anon_sym_COLON, - STATE(617), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - [65258] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2736), 1, - anon_sym_COMMA, STATE(1319), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2739), 2, - sym__newline, - anon_sym_SEMI, - [65272] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2741), 1, - anon_sym_COMMA, - STATE(1320), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2518), 2, - sym__newline, - anon_sym_SEMI, - [65286] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1290), 1, sym_dotted_name, - STATE(1368), 1, + STATE(1487), 1, sym_aliased_import, - STATE(1507), 1, + STATE(1640), 1, sym__import_list, - [65302] = 5, + [66288] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2447), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66298] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, anon_sym_if, - ACTIONS(2744), 1, - anon_sym_COLON, - [65318] = 5, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2826), 1, + anon_sym_else, + [66314] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2593), 1, + ACTIONS(2828), 1, + anon_sym_COMMA, + STATE(1363), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2830), 2, + sym__newline, + anon_sym_SEMI, + [66328] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2832), 1, + anon_sym_COLON, + [66344] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2834), 1, + anon_sym_COLON, + [66360] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2696), 1, + anon_sym_COMMA, + STATE(1298), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2836), 2, + sym__newline, + anon_sym_SEMI, + [66374] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2423), 1, + anon_sym_COMMA, + STATE(1365), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2838), 2, + sym__newline, + anon_sym_SEMI, + [66388] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2840), 1, + anon_sym_COLON, + [66404] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2842), 1, + anon_sym_COLON, + [66420] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2844), 1, + anon_sym_COLON, + [66436] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2566), 1, + sym_identifier, + ACTIONS(2608), 1, + anon_sym_RPAREN, + STATE(1473), 1, + sym_dotted_name, + STATE(1553), 1, + sym_aliased_import, + [66452] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2636), 1, anon_sym_LBRACK, - ACTIONS(2703), 1, + ACTIONS(2723), 1, anon_sym_LPAREN, - STATE(1511), 1, - sym_parameters, STATE(1512), 1, sym_type_parameters, - [65334] = 5, + STATE(1587), 1, + sym_parameters, + [66468] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2746), 1, - sym__newline, - [65350] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2750), 1, + ACTIONS(2423), 1, anon_sym_COMMA, - STATE(1325), 1, - aux_sym_with_clause_repeat1, - ACTIONS(2748), 2, - anon_sym_RPAREN, - anon_sym_COLON, - [65364] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2697), 1, - anon_sym_COMMA, - STATE(1354), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2753), 2, - sym__newline, - anon_sym_SEMI, - [65378] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2500), 1, - anon_sym_EQ, - STATE(1522), 1, - sym__type_param_default, - ACTIONS(2755), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [65392] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2625), 1, - anon_sym_RPAREN, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [65408] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2625), 1, - anon_sym_RPAREN, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [65424] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2677), 1, - anon_sym_RPAREN, - ACTIONS(2757), 1, - anon_sym_COMMA, - ACTIONS(2759), 1, - anon_sym_as, - STATE(1488), 1, - aux_sym__import_list_repeat1, - [65440] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2761), 1, - anon_sym_COLON, - [65456] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2763), 1, - anon_sym_SEMI, - ACTIONS(2765), 1, - sym__newline, - STATE(132), 1, - sym__semicolon, - STATE(1333), 1, - aux_sym__simple_statements_repeat1, - [65472] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(566), 1, - sym__newline, - ACTIONS(2767), 1, - anon_sym_SEMI, - STATE(131), 1, - sym__semicolon, - STATE(1357), 1, - aux_sym__simple_statements_repeat1, - [65488] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2769), 1, - anon_sym_COLON, - [65504] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2771), 1, - anon_sym_else, - [65520] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2775), 1, - anon_sym_DOT, - STATE(1362), 1, - aux_sym_import_prefix_repeat1, - ACTIONS(2773), 2, - anon_sym_import, - sym_identifier, - [65534] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2777), 1, - anon_sym_COMMA, - STATE(1337), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2780), 2, - sym__newline, - anon_sym_SEMI, - [65548] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - STATE(1364), 1, - aux_sym_exception_list_repeat1, - ACTIONS(2782), 2, - anon_sym_as, - anon_sym_COLON, - [65562] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2784), 1, - anon_sym_else, - [65578] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2786), 1, - anon_sym_COMMA, - STATE(1319), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2788), 2, - sym__newline, - anon_sym_SEMI, - [65592] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2792), 1, - anon_sym_EQ, - ACTIONS(2790), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [65604] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2796), 1, - anon_sym_COLON, - ACTIONS(2798), 1, - anon_sym_EQ, - ACTIONS(2794), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [65618] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(556), 1, - sym__newline, - ACTIONS(2800), 1, - anon_sym_SEMI, - STATE(128), 1, - sym__semicolon, - STATE(1357), 1, - aux_sym__simple_statements_repeat1, - [65634] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2398), 1, - anon_sym_COMMA, - STATE(1320), 1, + STATE(1365), 1, aux_sym_assert_statement_repeat1, - ACTIONS(2802), 2, + ACTIONS(2846), 2, sym__newline, anon_sym_SEMI, - [65648] = 5, + [66482] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2804), 1, - anon_sym_else, - [65664] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2806), 1, - anon_sym_COLON, - [65680] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2808), 1, - anon_sym_COLON, - [65696] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2810), 1, - anon_sym_SEMI, - ACTIONS(2812), 1, - sym__newline, - STATE(127), 1, - sym__semicolon, - STATE(1343), 1, - aux_sym__simple_statements_repeat1, - [65712] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2814), 1, - anon_sym_COLON, - [65728] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2816), 1, - anon_sym_COLON, - [65744] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2818), 1, - anon_sym_COLON, - [65760] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2820), 1, - anon_sym_COLON, - [65776] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2822), 1, - anon_sym_COMMA, - STATE(1309), 1, - aux_sym__import_list_repeat1, - ACTIONS(2824), 2, - sym__newline, - anon_sym_SEMI, - [65790] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2697), 1, - anon_sym_COMMA, - STATE(1337), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2826), 2, - sym__newline, - anon_sym_SEMI, - [65804] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2697), 1, - anon_sym_COMMA, - STATE(1337), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2828), 2, - sym__newline, - anon_sym_SEMI, - [65818] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2832), 1, - anon_sym_COMMA, - STATE(1293), 1, - aux_sym__patterns_repeat1, - ACTIONS(2830), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - [65832] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2834), 1, - anon_sym_SEMI, - ACTIONS(2837), 1, - sym__newline, - STATE(133), 1, - sym__semicolon, - STATE(1357), 1, - aux_sym__simple_statements_repeat1, - [65848] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2281), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_SEMI, - [65858] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2839), 1, - anon_sym_COMMA, - STATE(1309), 1, - aux_sym__import_list_repeat1, - ACTIONS(2824), 2, - sym__newline, - anon_sym_SEMI, - [65872] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2841), 1, - anon_sym_COMMA, - STATE(1319), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2843), 2, - sym__newline, - anon_sym_SEMI, - [65886] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2845), 1, - anon_sym_COLON, - [65902] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2849), 1, - anon_sym_DOT, - STATE(1362), 1, - aux_sym_import_prefix_repeat1, - ACTIONS(2847), 2, - anon_sym_import, + ACTIONS(2427), 1, sym_identifier, - [65916] = 4, + STATE(1281), 1, + sym_dotted_name, + STATE(1372), 1, + sym_aliased_import, + STATE(1577), 1, + sym__import_list, + [66498] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2695), 1, + ACTIONS(2427), 1, + sym_identifier, + STATE(1281), 1, + sym_dotted_name, + STATE(1372), 1, + sym_aliased_import, + STATE(1513), 1, + sym__import_list, + [66514] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2848), 1, + anon_sym_COMMA, + STATE(1363), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2851), 2, + sym__newline, + anon_sym_SEMI, + [66528] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2853), 1, + anon_sym_COLON, + [66544] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2855), 1, + anon_sym_COMMA, + STATE(1365), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2556), 2, + sym__newline, + anon_sym_SEMI, + [66558] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2303), 1, + anon_sym_and, + ACTIONS(2305), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_if, + ACTIONS(2858), 1, + sym__newline, + [66574] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2860), 1, anon_sym_case, - STATE(609), 1, + STATE(574), 1, sym_cases, - STATE(453), 2, + STATE(437), 2, sym_case_block, aux_sym_cases_repeat1, - [65930] = 4, + [66588] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2852), 1, + ACTIONS(2860), 1, + anon_sym_case, + STATE(578), 1, + sym_cases, + STATE(437), 2, + sym_case_block, + aux_sym_cases_repeat1, + [66602] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2178), 1, + anon_sym_if, + ACTIONS(2180), 1, + anon_sym_and, + ACTIONS(2182), 1, + anon_sym_or, + ACTIONS(2862), 1, + anon_sym_else, + [66618] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2864), 1, anon_sym_COMMA, - STATE(1364), 1, - aux_sym_exception_list_repeat1, - ACTIONS(2855), 2, - anon_sym_as, - anon_sym_COLON, - [65944] = 4, + STATE(1338), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2866), 2, + sym__newline, + anon_sym_SEMI, + [66632] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2398), 1, + ACTIONS(2522), 1, + anon_sym_EQ, + STATE(1589), 1, + sym__type_param_default, + ACTIONS(2868), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66646] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2654), 1, anon_sym_COMMA, STATE(1320), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2857), 2, - sym__newline, - anon_sym_SEMI, - [65958] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2859), 1, - anon_sym_else, - [65974] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2587), 1, - anon_sym_RPAREN, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [65990] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2673), 1, - anon_sym_COMMA, - STATE(1353), 1, aux_sym__import_list_repeat1, - ACTIONS(2677), 2, + ACTIONS(2658), 2, sym__newline, anon_sym_SEMI, - [66004] = 5, + [66660] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1541), 1, - sym_parameters, - STATE(1576), 1, - sym_type_parameters, - [66020] = 5, + ACTIONS(2522), 1, + anon_sym_EQ, + STATE(1527), 1, + sym__type_param_default, + ACTIONS(2870), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66674] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2593), 1, + ACTIONS(2874), 1, + anon_sym_DOT, + STATE(1323), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2872), 2, + anon_sym_import, + sym_identifier, + [66688] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2636), 1, anon_sym_LBRACK, - ACTIONS(2703), 1, + ACTIONS(2723), 1, anon_sym_LPAREN, STATE(1543), 1, sym_parameters, - STATE(1578), 1, + STATE(1582), 1, sym_type_parameters, - [66036] = 4, + [66704] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2500), 1, + ACTIONS(2636), 1, + anon_sym_LBRACK, + ACTIONS(2723), 1, + anon_sym_LPAREN, + STATE(1545), 1, + sym_parameters, + STATE(1583), 1, + sym_type_parameters, + [66720] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2522), 1, anon_sym_EQ, - STATE(1555), 1, + STATE(1591), 1, sym__type_param_default, - ACTIONS(2861), 2, + ACTIONS(2876), 2, anon_sym_COMMA, anon_sym_RBRACK, - [66050] = 4, + [66734] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2500), 1, - anon_sym_EQ, - STATE(1516), 1, - sym__type_param_default, - ACTIONS(2863), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [66064] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2865), 1, - anon_sym_SEMI, - ACTIONS(2867), 1, - sym__newline, - STATE(130), 1, - sym__semicolon, - STATE(1303), 1, - aux_sym__simple_statements_repeat1, - [66080] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2869), 1, - sym_identifier, - ACTIONS(2871), 1, - sym_match_wildcard_pattern, - STATE(1263), 1, - sym_match_capture_pattern, - [66093] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2873), 1, - anon_sym_COMMA, - ACTIONS(2876), 1, - anon_sym_RBRACK, - STATE(1375), 1, - aux_sym_type_parameters_repeat1, - [66106] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2048), 1, + ACTIONS(2878), 4, anon_sym_RPAREN, - ACTIONS(2878), 1, anon_sym_COMMA, - STATE(1443), 1, - aux_sym__parameters_repeat1, - [66119] = 4, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66744] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2880), 1, anon_sym_COMMA, ACTIONS(2882), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66132] = 4, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [66757] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2884), 1, - anon_sym_COMMA, - ACTIONS(2887), 1, - anon_sym_RBRACK, - STATE(1378), 1, - aux_sym_index_expression_list_repeat1, - [66145] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2889), 3, + ACTIONS(2884), 3, anon_sym_LPAREN, anon_sym_COLON, anon_sym_EQ, - [66154] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2510), 1, - anon_sym_RBRACE, - ACTIONS(2512), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [66165] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2891), 1, - anon_sym_RPAREN, - ACTIONS(2893), 1, - anon_sym_COMMA, - STATE(1413), 1, - aux_sym_match_class_pattern_repeat2, - [66178] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2759), 1, - anon_sym_as, - ACTIONS(2713), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [66189] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2169), 1, - anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [66202] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2720), 1, - anon_sym_RPAREN, - ACTIONS(2895), 1, - anon_sym_COMMA, - STATE(1384), 1, - aux_sym__import_list_repeat1, - [66215] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2898), 1, - anon_sym_COMMA, - ACTIONS(2900), 1, - anon_sym_COLON, - STATE(1471), 1, - aux_sym__parameters_repeat1, - [66228] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2902), 1, - anon_sym_COMMA, - ACTIONS(2904), 1, - anon_sym_RBRACK, - STATE(1375), 1, - aux_sym_type_parameters_repeat1, - [66241] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2195), 1, - anon_sym_RPAREN, - ACTIONS(2197), 1, - anon_sym_COMMA, - STATE(1462), 1, - aux_sym_argument_list_repeat1, - [66254] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2906), 1, - anon_sym_RPAREN, - ACTIONS(2908), 1, - anon_sym_COMMA, - STATE(1481), 1, - aux_sym_argument_list_repeat1, - [66267] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2910), 1, - anon_sym_COMMA, - ACTIONS(2912), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66280] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2914), 1, - anon_sym_if, - ACTIONS(2916), 1, - anon_sym_COLON, - STATE(1689), 1, - sym_guard, - [66293] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2918), 1, - anon_sym_COMMA, - ACTIONS(2920), 2, - anon_sym_if, - anon_sym_COLON, - [66304] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2922), 1, - anon_sym_RPAREN, - ACTIONS(2924), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66317] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2927), 1, - anon_sym_in, - ACTIONS(2929), 2, - sym__newline, - anon_sym_SEMI, - [66328] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2794), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [66337] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2677), 1, - anon_sym_RPAREN, - ACTIONS(2757), 1, - anon_sym_COMMA, - STATE(1487), 1, - aux_sym__import_list_repeat1, - [66350] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1893), 1, - anon_sym_RPAREN, - ACTIONS(2931), 1, - sym_identifier, - STATE(1558), 1, - sym_match_keyword_pattern, - [66363] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2171), 1, - anon_sym_RPAREN, - ACTIONS(2173), 1, - anon_sym_COMMA, - STATE(1448), 1, - aux_sym_argument_list_repeat1, - [66376] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2933), 1, - anon_sym_RPAREN, - ACTIONS(2935), 1, - anon_sym_COMMA, - STATE(1450), 1, - aux_sym_argument_list_repeat1, - [66389] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1895), 1, - anon_sym_RPAREN, - ACTIONS(2937), 1, - anon_sym_COMMA, - STATE(1468), 1, - aux_sym_match_class_pattern_repeat1, - [66402] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2099), 1, - anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [66415] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2939), 1, - anon_sym_COMMA, - ACTIONS(2942), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66428] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2452), 1, - sym_identifier, - ACTIONS(2944), 1, - anon_sym_import, - STATE(1654), 1, - sym_dotted_name, - [66441] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2438), 1, - anon_sym_COMMA, - ACTIONS(2440), 1, - anon_sym_RBRACE, - STATE(1408), 1, - aux_sym_dictionary_repeat1, - [66454] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1525), 3, - sym__newline, - anon_sym_in, - anon_sym_SEMI, - [66463] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1895), 1, - anon_sym_RPAREN, - ACTIONS(2931), 1, - sym_identifier, - STATE(1558), 1, - sym_match_keyword_pattern, - [66476] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2946), 1, - anon_sym_EQ, - ACTIONS(2948), 2, - sym__newline, - anon_sym_SEMI, - [66487] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, - anon_sym_COMMA, - ACTIONS(2950), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66500] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2952), 1, - anon_sym_COMMA, - ACTIONS(2954), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66513] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2956), 1, - anon_sym_COMMA, - ACTIONS(2958), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66526] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2382), 1, - anon_sym_COMMA, - ACTIONS(2384), 1, - anon_sym_RBRACE, - STATE(1485), 1, - aux_sym_dictionary_repeat1, - [66539] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2191), 1, - anon_sym_RPAREN, - ACTIONS(2193), 1, - anon_sym_COMMA, - STATE(1415), 1, - aux_sym_argument_list_repeat1, - [66552] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2960), 1, - anon_sym_RPAREN, - ACTIONS(2962), 1, - anon_sym_COMMA, - STATE(1417), 1, - aux_sym_argument_list_repeat1, - [66565] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1895), 1, - anon_sym_RPAREN, - ACTIONS(2964), 1, - anon_sym_COMMA, - STATE(1422), 1, - aux_sym_match_class_pattern_repeat2, - [66578] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, - anon_sym_COMMA, - ACTIONS(2966), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66591] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2968), 1, - anon_sym_RPAREN, - ACTIONS(2970), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66604] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2902), 1, - anon_sym_COMMA, - ACTIONS(2972), 1, - anon_sym_RBRACK, - STATE(1386), 1, - aux_sym_type_parameters_repeat1, - [66617] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2974), 1, - anon_sym_RPAREN, - ACTIONS(2976), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66630] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2978), 1, - anon_sym_RPAREN, - ACTIONS(2980), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66643] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2722), 1, - anon_sym_RBRACE, - STATE(1641), 1, - sym_format_specifier, - [66656] = 2, + [66766] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2780), 3, sym__newline, anon_sym_COMMA, anon_sym_SEMI, - [66665] = 2, + [66775] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2982), 3, + ACTIONS(2886), 1, + anon_sym_COMMA, + ACTIONS(2889), 1, + anon_sym_RBRACK, + STATE(1382), 1, + aux_sym_type_parameters_repeat1, + [66788] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2891), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [66797] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2168), 1, + anon_sym_RPAREN, + ACTIONS(2170), 1, + anon_sym_COMMA, + STATE(1397), 1, + aux_sym_argument_list_repeat1, + [66810] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2893), 1, + anon_sym_RPAREN, + STATE(1286), 1, + aux_sym__collection_elements_repeat1, + [66823] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2891), 1, + anon_sym_COLON, + ACTIONS(2895), 1, + anon_sym_COMMA, + STATE(1386), 1, + aux_sym__parameters_repeat1, + [66836] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2216), 1, + anon_sym_RPAREN, + ACTIONS(2218), 1, + anon_sym_COMMA, + STATE(1434), 1, + aux_sym_argument_list_repeat1, + [66849] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1526), 3, + sym__newline, + anon_sym_in, + anon_sym_SEMI, + [66858] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2776), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [66867] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2898), 1, + anon_sym_RPAREN, + STATE(1431), 1, + aux_sym__collection_elements_repeat1, + [66880] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2900), 3, sym__newline, anon_sym_COMMA, anon_sym_SEMI, - [66674] = 4, + [66889] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2902), 1, + anon_sym_EQ, + ACTIONS(2904), 2, + sym__newline, + anon_sym_SEMI, + [66900] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2906), 1, + anon_sym_RPAREN, + ACTIONS(2908), 1, + anon_sym_COMMA, + STATE(1438), 1, + aux_sym_argument_list_repeat1, + [66913] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2910), 1, + anon_sym_COMMA, + ACTIONS(2912), 1, + anon_sym_RBRACK, + STATE(1418), 1, + aux_sym_index_expression_list_repeat1, + [66926] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2214), 1, + anon_sym_RPAREN, + STATE(1398), 1, + aux_sym__collection_elements_repeat1, + [66939] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1894), 1, + anon_sym_RPAREN, + ACTIONS(2914), 1, + anon_sym_COMMA, + STATE(1218), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [66952] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2916), 1, + anon_sym_RPAREN, + ACTIONS(2918), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [66965] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2612), 1, + anon_sym_RPAREN, + ACTIONS(2920), 1, + anon_sym_COMMA, + STATE(1287), 1, + aux_sym__collection_elements_repeat1, + [66978] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2922), 1, + anon_sym_RPAREN, + ACTIONS(2924), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [66991] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2926), 1, + anon_sym_RPAREN, + ACTIONS(2928), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67004] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_COLON2, + ACTIONS(2725), 1, + anon_sym_RBRACE, + STATE(1733), 1, + sym_format_specifier, + [67017] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2930), 1, + anon_sym_RPAREN, + ACTIONS(2932), 1, + anon_sym_COMMA, + STATE(1399), 1, + aux_sym_argument_list_repeat1, + [67030] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1894), 1, + anon_sym_RBRACK, + ACTIONS(2934), 1, + anon_sym_COMMA, + STATE(1218), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [67043] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2145), 1, + anon_sym_RPAREN, + STATE(1398), 1, + aux_sym__collection_elements_repeat1, + [67056] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2910), 1, + anon_sym_COMMA, + ACTIONS(2936), 1, + anon_sym_RBRACK, + STATE(1418), 1, + aux_sym_index_expression_list_repeat1, + [67069] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2756), 1, + anon_sym_RPAREN, + ACTIONS(2938), 1, + anon_sym_COMMA, + STATE(1475), 1, + aux_sym__import_list_repeat1, + [67082] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2443), 1, + anon_sym_COMMA, + ACTIONS(2445), 1, + anon_sym_RBRACE, + STATE(1412), 1, + aux_sym_dictionary_repeat1, + [67095] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2083), 1, + anon_sym_DOT, + ACTIONS(2087), 1, + anon_sym_COLON, + STATE(1033), 1, + aux_sym_match_value_pattern_repeat1, + [67108] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2756), 1, + anon_sym_RPAREN, + ACTIONS(2940), 1, + anon_sym_COMMA, + STATE(1475), 1, + aux_sym__import_list_repeat1, + [67121] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2057), 1, + anon_sym_COLON, + ACTIONS(2942), 1, + anon_sym_COMMA, + STATE(1386), 1, + aux_sym__parameters_repeat1, + [67134] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2035), 1, + anon_sym_COMMA, + ACTIONS(2944), 1, + anon_sym_in, + STATE(1012), 1, + aux_sym__patterns_repeat1, + [67147] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2946), 1, + anon_sym_COMMA, + ACTIONS(2948), 1, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [67160] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2950), 1, + anon_sym_COMMA, + ACTIONS(2952), 1, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [67173] = 3, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2573), 1, + anon_sym_RBRACE, + ACTIONS(2575), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [67184] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2192), 1, + anon_sym_RPAREN, + ACTIONS(2194), 1, + anon_sym_COMMA, + STATE(1420), 1, + aux_sym_argument_list_repeat1, + [67197] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2954), 1, + anon_sym_RPAREN, + ACTIONS(2956), 1, + anon_sym_COMMA, + STATE(1422), 1, + aux_sym_argument_list_repeat1, + [67210] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2910), 1, + anon_sym_COMMA, + ACTIONS(2958), 1, + anon_sym_RBRACK, + STATE(1418), 1, + aux_sym_index_expression_list_repeat1, + [67223] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2960), 1, + anon_sym_COMMA, + ACTIONS(2962), 1, + anon_sym_RBRACK, + STATE(1456), 1, + aux_sym_index_expression_list_repeat1, + [67236] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2409), 1, + sym_identifier, + ACTIONS(2964), 1, + anon_sym_import, + STATE(1697), 1, + sym_dotted_name, + [67249] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2966), 1, + anon_sym_RPAREN, + ACTIONS(2968), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67262] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1906), 1, + anon_sym_RPAREN, + ACTIONS(2970), 1, + anon_sym_COMMA, + STATE(1462), 1, + aux_sym_match_class_pattern_repeat2, + [67275] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2972), 1, + anon_sym_RPAREN, + ACTIONS(2974), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67288] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2976), 1, + anon_sym_RPAREN, + ACTIONS(2978), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67301] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2001), 1, + anon_sym_RBRACE, + ACTIONS(2980), 1, + anon_sym_COMMA, + STATE(1506), 1, + aux_sym_match_mapping_pattern_repeat1, + [67314] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_COLON2, + ACTIONS(2982), 1, + anon_sym_RBRACE, + STATE(1596), 1, + sym_format_specifier, + [67327] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2481), 1, + anon_sym_COMMA, + ACTIONS(2483), 1, + anon_sym_RBRACE, + STATE(1498), 1, + aux_sym_dictionary_repeat1, + [67340] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2984), 1, anon_sym_RPAREN, ACTIONS(2986), 1, anon_sym_COMMA, - STATE(1422), 1, - aux_sym_match_class_pattern_repeat2, - [66687] = 4, + STATE(1427), 1, + aux_sym_match_class_pattern_repeat1, + [67353] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2187), 1, + ACTIONS(2891), 1, anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [66700] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1958), 1, - anon_sym_RBRACE, ACTIONS(2989), 1, anon_sym_COMMA, - STATE(1480), 1, - aux_sym_match_mapping_pattern_repeat1, - [66713] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2444), 1, - anon_sym_COMMA, - ACTIONS(2446), 1, - anon_sym_RBRACE, - STATE(1426), 1, - aux_sym_dictionary_repeat1, - [66726] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2991), 1, - anon_sym_COMMA, - ACTIONS(2993), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66739] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2995), 1, - anon_sym_COMMA, - ACTIONS(2997), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66752] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2900), 1, - anon_sym_RPAREN, - ACTIONS(2999), 1, - anon_sym_COMMA, - STATE(1376), 1, + STATE(1428), 1, aux_sym__parameters_repeat1, - [66765] = 4, + [67366] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2205), 1, + ACTIONS(1530), 3, + sym__newline, + anon_sym_in, + anon_sym_SEMI, + [67375] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2103), 1, + anon_sym_COMMA, + ACTIONS(2190), 1, anon_sym_RPAREN, - ACTIONS(2207), 1, + STATE(1398), 1, + aux_sym__collection_elements_repeat1, + [67388] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2612), 1, + anon_sym_RPAREN, + ACTIONS(2992), 1, + anon_sym_COMMA, + STATE(1287), 1, + aux_sym__collection_elements_repeat1, + [67401] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2449), 1, + anon_sym_COMMA, + ACTIONS(2451), 1, + anon_sym_RBRACE, + STATE(1436), 1, + aux_sym_dictionary_repeat1, + [67414] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1906), 1, + anon_sym_RPAREN, + ACTIONS(2994), 1, + sym_identifier, + STATE(1551), 1, + sym_match_keyword_pattern, + [67427] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2996), 1, + anon_sym_RPAREN, + ACTIONS(2998), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67440] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3000), 1, + anon_sym_RPAREN, + ACTIONS(3002), 1, anon_sym_COMMA, STATE(1435), 1, - aux_sym_argument_list_repeat1, - [66778] = 4, + aux_sym_match_class_pattern_repeat2, + [67453] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3001), 1, - anon_sym_RPAREN, - ACTIONS(3003), 1, - anon_sym_COMMA, - STATE(1436), 1, - aux_sym_argument_list_repeat1, - [66791] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2931), 1, - sym_identifier, ACTIONS(3005), 1, - anon_sym_RPAREN, - STATE(1558), 1, - sym_match_keyword_pattern, - [66804] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, anon_sym_COMMA, ACTIONS(3007), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66817] = 4, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [67466] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3009), 1, anon_sym_COMMA, ACTIONS(3011), 1, anon_sym_RBRACE, - STATE(1401), 1, + STATE(1482), 1, aux_sym_dictionary_repeat1, - [66830] = 4, + [67479] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3013), 1, - anon_sym_COMMA, + anon_sym_RPAREN, ACTIONS(3015), 1, - anon_sym_COLON, - STATE(1452), 1, - aux_sym_with_clause_repeat1, - [66843] = 4, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67492] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2204), 1, + anon_sym_RPAREN, + ACTIONS(2206), 1, + anon_sym_COMMA, + STATE(1445), 1, + aux_sym_argument_list_repeat1, + [67505] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3017), 1, anon_sym_RPAREN, ACTIONS(3019), 1, anon_sym_COMMA, - STATE(1392), 1, + STATE(1447), 1, aux_sym_argument_list_repeat1, - [66856] = 4, + [67518] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3021), 1, anon_sym_RPAREN, ACTIONS(3023), 1, anon_sym_COMMA, - STATE(1392), 1, + STATE(1460), 1, aux_sym_argument_list_repeat1, - [66869] = 4, + [67531] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3025), 1, - anon_sym_RPAREN, - ACTIONS(3027), 1, + ACTIONS(2910), 1, anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66882] = 4, + ACTIONS(3025), 1, + anon_sym_RBRACK, + STATE(1418), 1, + aux_sym_index_expression_list_repeat1, + [67544] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1893), 1, + ACTIONS(1427), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [67553] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3027), 1, anon_sym_RPAREN, ACTIONS(3029), 1, anon_sym_COMMA, - STATE(1449), 1, - aux_sym_match_class_pattern_repeat2, - [66895] = 4, + STATE(1490), 1, + aux_sym_match_class_pattern_repeat1, + [67566] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3031), 1, anon_sym_RPAREN, ACTIONS(3033), 1, anon_sym_COMMA, - STATE(1495), 1, - aux_sym_with_clause_repeat1, - [66908] = 4, - ACTIONS(3), 1, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67579] = 3, + ACTIONS(2077), 1, sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, ACTIONS(3035), 1, - anon_sym_RPAREN, - STATE(1441), 1, - aux_sym__collection_elements_repeat1, - [66921] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2595), 1, - anon_sym_RPAREN, - ACTIONS(3037), 1, - anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - [66934] = 3, + anon_sym_RBRACE, + ACTIONS(3037), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [67590] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3039), 1, - anon_sym_COLON, - ACTIONS(2794), 2, anon_sym_RPAREN, - anon_sym_COMMA, - [66945] = 4, - ACTIONS(3), 1, - sym_comment, ACTIONS(3041), 1, - anon_sym_RPAREN, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67603] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(3043), 1, - anon_sym_COMMA, - STATE(1443), 1, - aux_sym__parameters_repeat1, - [66958] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3041), 3, anon_sym_RPAREN, + ACTIONS(3045), 1, anon_sym_COMMA, - anon_sym_COLON, - [66967] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3046), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [66976] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3048), 3, - anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [66985] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2790), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [66994] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3050), 1, - anon_sym_RPAREN, - ACTIONS(3052), 1, - anon_sym_COMMA, - STATE(1392), 1, + STATE(1460), 1, aux_sym_argument_list_repeat1, - [67007] = 4, + [67616] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3005), 1, + ACTIONS(3027), 1, anon_sym_RPAREN, - ACTIONS(3054), 1, + ACTIONS(3047), 1, anon_sym_COMMA, - STATE(1422), 1, + STATE(1489), 1, aux_sym_match_class_pattern_repeat2, - [67020] = 4, + [67629] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3056), 1, - anon_sym_RPAREN, - ACTIONS(3058), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67033] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3060), 1, - anon_sym_RPAREN, - ACTIONS(3062), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67046] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3013), 1, - anon_sym_COMMA, - ACTIONS(3064), 1, - anon_sym_COLON, - STATE(1325), 1, - aux_sym_with_clause_repeat1, - [67059] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2589), 1, - anon_sym_LPAREN, - ACTIONS(3066), 1, - anon_sym_COLON, - STATE(1608), 1, - sym_argument_list, - [67072] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2595), 1, - anon_sym_RPAREN, - ACTIONS(3068), 1, - anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - [67085] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2581), 1, - anon_sym_RBRACE, - ACTIONS(2583), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67096] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2914), 1, - anon_sym_if, - ACTIONS(3070), 1, - anon_sym_COLON, - STATE(1621), 1, - sym_guard, - [67109] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, + ACTIONS(2622), 1, anon_sym_COLON2, - ACTIONS(3072), 1, + ACTIONS(3049), 1, anon_sym_RBRACE, - STATE(1699), 1, + STATE(1709), 1, sym_format_specifier, - [67122] = 4, + [67642] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2705), 1, - anon_sym_RBRACE, - STATE(1692), 1, - sym_format_specifier, - [67135] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3005), 1, - anon_sym_RPAREN, - ACTIONS(3054), 1, - anon_sym_COMMA, - STATE(1472), 1, - aux_sym_match_class_pattern_repeat2, - [67148] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [67161] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(3074), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67174] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3076), 1, - anon_sym_RPAREN, - ACTIONS(3078), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67187] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2390), 3, + ACTIONS(2453), 3, sym__newline, anon_sym_EQ, anon_sym_SEMI, - [67196] = 2, + [67651] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1274), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [67205] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3080), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [67214] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2891), 1, - anon_sym_RPAREN, - ACTIONS(3082), 1, - anon_sym_COMMA, - STATE(1399), 1, - aux_sym_match_class_pattern_repeat1, - [67227] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2931), 1, + ACTIONS(2427), 1, sym_identifier, - ACTIONS(3084), 1, - anon_sym_RPAREN, - STATE(1558), 1, - sym_match_keyword_pattern, - [67240] = 4, + STATE(1326), 1, + sym_dotted_name, + STATE(1381), 1, + sym_aliased_import, + [67664] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3086), 1, - anon_sym_RPAREN, - ACTIONS(3088), 1, + ACTIONS(3051), 1, anon_sym_COMMA, - STATE(1468), 1, - aux_sym_match_class_pattern_repeat1, - [67253] = 4, + ACTIONS(3053), 1, + anon_sym_COLON, + STATE(1410), 1, + aux_sym__parameters_repeat1, + [67677] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2770), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [67686] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1006), 1, + anon_sym_RPAREN, + ACTIONS(3055), 1, + anon_sym_COMMA, + STATE(1302), 1, + aux_sym_with_clause_repeat1, + [67699] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3057), 1, + anon_sym_COMMA, + ACTIONS(3060), 1, + anon_sym_RBRACK, + STATE(1456), 1, + aux_sym_index_expression_list_repeat1, + [67712] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2035), 1, + anon_sym_COMMA, + ACTIONS(3062), 1, + anon_sym_in, + STATE(1012), 1, + aux_sym__patterns_repeat1, + [67725] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2325), 1, + anon_sym_from, + ACTIONS(2331), 2, + sym__newline, + anon_sym_SEMI, + [67736] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1904), 1, + anon_sym_RPAREN, + ACTIONS(2994), 1, + sym_identifier, + STATE(1551), 1, + sym_match_keyword_pattern, + [67749] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3064), 1, + anon_sym_RPAREN, + ACTIONS(3066), 1, + anon_sym_COMMA, + STATE(1460), 1, + aux_sym_argument_list_repeat1, + [67762] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2994), 1, + sym_identifier, + ACTIONS(3069), 1, + anon_sym_RPAREN, + STATE(1551), 1, + sym_match_keyword_pattern, + [67775] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3069), 1, + anon_sym_RPAREN, + ACTIONS(3071), 1, + anon_sym_COMMA, + STATE(1435), 1, + aux_sym_match_class_pattern_repeat2, + [67788] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2632), 1, + anon_sym_LPAREN, + ACTIONS(3073), 1, + anon_sym_COLON, + STATE(1619), 1, + sym_argument_list, + [67801] = 3, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2577), 1, + anon_sym_RBRACE, + ACTIONS(2579), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [67812] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3075), 1, + anon_sym_in, + ACTIONS(3077), 2, + sym__newline, + anon_sym_SEMI, + [67823] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2636), 1, + anon_sym_LBRACK, + ACTIONS(3079), 1, + anon_sym_EQ, + STATE(1665), 1, + sym_type_parameters, + [67836] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3081), 1, + anon_sym_if, + ACTIONS(3083), 1, + anon_sym_COLON, + STATE(1592), 1, + sym_guard, + [67849] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3069), 1, + anon_sym_RPAREN, + ACTIONS(3071), 1, + anon_sym_COMMA, + STATE(1474), 1, + aux_sym_match_class_pattern_repeat2, + [67862] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2035), 1, + anon_sym_COMMA, + ACTIONS(3085), 1, + anon_sym_in, + STATE(1012), 1, + aux_sym__patterns_repeat1, + [67875] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2632), 1, + anon_sym_LPAREN, + ACTIONS(3087), 1, + anon_sym_COLON, + STATE(1712), 1, + sym_argument_list, + [67888] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2994), 1, + sym_identifier, + ACTIONS(3089), 1, + anon_sym_RPAREN, + STATE(1551), 1, + sym_match_keyword_pattern, + [67901] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3091), 1, anon_sym_COMMA, ACTIONS(3093), 1, anon_sym_RBRACK, - STATE(1503), 1, + STATE(1403), 1, aux_sym_open_sequence_match_pattern_repeat1, - [67266] = 2, + [67914] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1517), 3, - sym__newline, - anon_sym_in, - anon_sym_SEMI, - [67275] = 4, + ACTIONS(2752), 1, + anon_sym_as, + ACTIONS(2780), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [67925] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2048), 1, - anon_sym_COLON, + ACTIONS(3089), 1, + anon_sym_RPAREN, ACTIONS(3095), 1, anon_sym_COMMA, - STATE(1506), 1, - aux_sym__parameters_repeat1, - [67288] = 4, + STATE(1435), 1, + aux_sym_match_class_pattern_repeat2, + [67938] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3084), 1, + ACTIONS(2787), 1, anon_sym_RPAREN, ACTIONS(3097), 1, anon_sym_COMMA, - STATE(1422), 1, - aux_sym_match_class_pattern_repeat2, - [67301] = 4, + STATE(1475), 1, + aux_sym__import_list_repeat1, + [67951] = 3, + ACTIONS(2077), 1, + sym_comment, + ACTIONS(2526), 1, + anon_sym_RBRACE, + ACTIONS(2528), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [67962] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2010), 1, + ACTIONS(3100), 1, anon_sym_COMMA, - ACTIONS(3099), 1, + ACTIONS(3102), 1, + anon_sym_COLON, + STATE(1488), 1, + aux_sym_with_clause_repeat1, + [67975] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2035), 1, + anon_sym_COMMA, + ACTIONS(3104), 1, anon_sym_in, - STATE(1010), 1, + STATE(1012), 1, aux_sym__patterns_repeat1, - [67314] = 4, + [67988] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 1, + ACTIONS(2103), 1, anon_sym_COMMA, - ACTIONS(3101), 1, + ACTIONS(2188), 1, anon_sym_RPAREN, - STATE(1259), 1, + STATE(1398), 1, aux_sym__collection_elements_repeat1, - [67327] = 3, + [68001] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2293), 1, - anon_sym_from, - ACTIONS(2297), 2, - sym__newline, - anon_sym_SEMI, - [67338] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2931), 1, + ACTIONS(2994), 1, sym_identifier, - ACTIONS(3103), 1, + ACTIONS(3106), 1, anon_sym_RPAREN, - STATE(1558), 1, + STATE(1551), 1, sym_match_keyword_pattern, - [67351] = 4, + [68014] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3105), 1, + ACTIONS(2712), 3, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(3107), 1, + anon_sym_COLON, + [68023] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3108), 1, + anon_sym_COMMA, + ACTIONS(3111), 1, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [68036] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3113), 1, + anon_sym_COMMA, + ACTIONS(3115), 1, + anon_sym_RBRACK, + STATE(1499), 1, + aux_sym_type_parameters_repeat1, + [68049] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3117), 1, + anon_sym_RPAREN, + ACTIONS(3119), 1, + anon_sym_COMMA, + STATE(1455), 1, + aux_sym_with_clause_repeat1, + [68062] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3121), 1, + anon_sym_COMMA, + ACTIONS(3123), 1, anon_sym_RBRACE, STATE(1424), 1, aux_sym_match_mapping_pattern_repeat1, - [67364] = 4, + [68075] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - ACTIONS(2114), 1, - anon_sym_COLON, - STATE(1032), 1, - aux_sym_match_value_pattern_repeat1, - [67377] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2798), 1, - anon_sym_EQ, - ACTIONS(2794), 2, - anon_sym_COMMA, - anon_sym_COLON, - [67388] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3109), 1, - anon_sym_COMMA, - ACTIONS(3112), 1, - anon_sym_RBRACE, - STATE(1480), 1, - aux_sym_match_mapping_pattern_repeat1, - [67401] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3114), 1, - anon_sym_RPAREN, - ACTIONS(3116), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67414] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2490), 1, - anon_sym_RBRACE, - ACTIONS(2492), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67425] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3118), 1, - anon_sym_RPAREN, - ACTIONS(3120), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67438] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1889), 1, - anon_sym_RPAREN, - ACTIONS(3122), 1, - anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67451] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3124), 1, - anon_sym_COMMA, - ACTIONS(3126), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [67464] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2713), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [67473] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2824), 1, - anon_sym_RPAREN, - ACTIONS(3128), 1, - anon_sym_COMMA, - STATE(1384), 1, - aux_sym__import_list_repeat1, - [67486] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2824), 1, - anon_sym_RPAREN, - ACTIONS(3130), 1, - anon_sym_COMMA, - STATE(1384), 1, - aux_sym__import_list_repeat1, - [67499] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2209), 1, - anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [67512] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2472), 1, - anon_sym_COMMA, - ACTIONS(2474), 1, - anon_sym_RBRACE, - STATE(1389), 1, - aux_sym_dictionary_repeat1, - [67525] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3132), 1, - anon_sym_COMMA, - ACTIONS(3134), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [67538] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3136), 1, - anon_sym_COMMA, - ACTIONS(3138), 1, - anon_sym_RBRACK, - STATE(1378), 1, - aux_sym_index_expression_list_repeat1, - [67551] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2589), 1, + ACTIONS(3125), 3, anon_sym_LPAREN, - ACTIONS(3140), 1, anon_sym_COLON, - STATE(1666), 1, - sym_argument_list, - [67564] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(3142), 1, - anon_sym_RBRACE, - STATE(1644), 1, - sym_format_specifier, - [67577] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1017), 1, - anon_sym_RPAREN, - ACTIONS(3144), 1, - anon_sym_COMMA, - STATE(1325), 1, - aux_sym_with_clause_repeat1, - [67590] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(3146), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67603] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(3148), 1, - anon_sym_RBRACE, - ACTIONS(3150), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67614] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(3152), 1, anon_sym_EQ, - STATE(1647), 1, - sym_type_parameters, - [67627] = 4, + [68084] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, - [67640] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, + ACTIONS(2658), 1, + anon_sym_RPAREN, + ACTIONS(2750), 1, anon_sym_COMMA, - ACTIONS(3154), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67653] = 2, + STATE(1406), 1, + aux_sym__import_list_repeat1, + [68097] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2748), 3, + ACTIONS(3100), 1, + anon_sym_COMMA, + ACTIONS(3127), 1, + anon_sym_COLON, + STATE(1302), 1, + aux_sym_with_clause_repeat1, + [68110] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1904), 1, + anon_sym_RPAREN, + ACTIONS(3129), 1, + anon_sym_COMMA, + STATE(1435), 1, + aux_sym_match_class_pattern_repeat2, + [68123] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1904), 1, + anon_sym_RPAREN, + ACTIONS(3131), 1, + anon_sym_COMMA, + STATE(1427), 1, + aux_sym_match_class_pattern_repeat1, + [68136] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3133), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [67662] = 3, - ACTIONS(2065), 1, + [68145] = 3, + ACTIONS(2077), 1, sym_comment, - ACTIONS(2486), 1, + ACTIONS(2514), 1, anon_sym_RBRACE, - ACTIONS(2488), 2, + ACTIONS(2516), 2, anon_sym_LBRACE2, aux_sym_format_specifier_token1, - [67673] = 4, + [68156] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1889), 1, - anon_sym_RBRACK, - ACTIONS(3156), 1, + ACTIONS(2566), 1, + sym_identifier, + STATE(1473), 1, + sym_dotted_name, + STATE(1553), 1, + sym_aliased_import, + [68169] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2761), 3, + sym__newline, anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67686] = 4, + anon_sym_SEMI, + [68178] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2010), 1, + ACTIONS(3135), 3, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(3158), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67699] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(3160), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67712] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3041), 1, anon_sym_COLON, - ACTIONS(3162), 1, - anon_sym_COMMA, - STATE(1506), 1, - aux_sym__parameters_repeat1, - [67725] = 2, + [68187] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3165), 2, + ACTIONS(2622), 1, + anon_sym_COLON2, + ACTIONS(2746), 1, + anon_sym_RBRACE, + STATE(1624), 1, + sym_format_specifier, + [68200] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3137), 1, + sym_identifier, + ACTIONS(3139), 1, + sym_match_wildcard_pattern, + STATE(1259), 1, + sym_match_capture_pattern, + [68213] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3141), 1, + anon_sym_COMMA, + ACTIONS(3143), 1, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [68226] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3113), 1, + anon_sym_COMMA, + ACTIONS(3145), 1, + anon_sym_RBRACK, + STATE(1382), 1, + aux_sym_type_parameters_repeat1, + [68239] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2774), 1, + anon_sym_EQ, + ACTIONS(2770), 2, + anon_sym_COMMA, + anon_sym_COLON, + [68250] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3147), 1, + anon_sym_COMMA, + ACTIONS(3149), 1, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [68263] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2057), 1, + anon_sym_RPAREN, + ACTIONS(3151), 1, + anon_sym_COMMA, + STATE(1428), 1, + aux_sym__parameters_repeat1, + [68276] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3081), 1, + anon_sym_if, + ACTIONS(3153), 1, + anon_sym_COLON, + STATE(1706), 1, + sym_guard, + [68289] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3155), 1, + anon_sym_COMMA, + ACTIONS(3157), 2, + anon_sym_if, + anon_sym_COLON, + [68300] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2385), 1, + anon_sym_COMMA, + ACTIONS(2387), 1, + anon_sym_RBRACE, + STATE(1379), 1, + aux_sym_dictionary_repeat1, + [68313] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3159), 1, + anon_sym_COMMA, + ACTIONS(3162), 1, + anon_sym_RBRACE, + STATE(1506), 1, + aux_sym_match_mapping_pattern_repeat1, + [68326] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3164), 1, + anon_sym_COMMA, + ACTIONS(3166), 1, + anon_sym_RBRACE, + STATE(1482), 1, + aux_sym_dictionary_repeat1, + [68339] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2035), 1, + anon_sym_COMMA, + ACTIONS(3168), 1, + anon_sym_in, + STATE(1012), 1, + aux_sym__patterns_repeat1, + [68352] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2035), 1, + anon_sym_COMMA, + ACTIONS(3170), 1, + anon_sym_in, + STATE(1012), 1, + aux_sym__patterns_repeat1, + [68365] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3172), 1, + anon_sym_COLON, + ACTIONS(2770), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [68376] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3053), 1, + anon_sym_RPAREN, + ACTIONS(3174), 1, + anon_sym_COMMA, + STATE(1502), 1, + aux_sym__parameters_repeat1, + [68389] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2723), 1, + anon_sym_LPAREN, + STATE(1556), 1, + sym_parameters, + [68399] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3176), 2, sym__newline, anon_sym_SEMI, - [67733] = 2, + [68407] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3167), 2, + ACTIONS(2994), 1, + sym_identifier, + STATE(1551), 1, + sym_match_keyword_pattern, + [68417] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3178), 2, anon_sym_COMMA, anon_sym_RBRACK, - [67741] = 3, + [68425] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3169), 1, - anon_sym_COMMA, - STATE(1294), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67751] = 3, + ACTIONS(3180), 2, + sym__newline, + anon_sym_SEMI, + [68433] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3182), 2, + sym__newline, + anon_sym_SEMI, + [68441] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(2357), 1, anon_sym_COMMA, - STATE(1229), 1, + STATE(1247), 1, aux_sym_expression_list_repeat1, - [67761] = 3, + [68451] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3171), 1, - anon_sym_COLON, - ACTIONS(3173), 1, - anon_sym_DASH_GT, - [67771] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1539), 1, - sym_parameters, - [67781] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3175), 1, - anon_sym_COLON, - ACTIONS(3177), 1, - anon_sym_DASH_GT, - [67791] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3179), 2, - sym__newline, - anon_sym_SEMI, - [67799] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1027), 2, - anon_sym_except, - anon_sym_finally, - [67807] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3181), 2, + ACTIONS(3184), 2, anon_sym_COMMA, anon_sym_RBRACK, - [67815] = 2, + [68459] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2837), 2, - sym__newline, - anon_sym_SEMI, - [67823] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3183), 2, - sym__newline, - anon_sym_SEMI, - [67831] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2607), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67839] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2794), 2, - anon_sym_COMMA, - anon_sym_COLON, - [67847] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1045), 2, - anon_sym_except, - anon_sym_finally, - [67855] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3185), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67863] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3187), 2, - sym__newline, - anon_sym_SEMI, - [67871] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3189), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67879] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3191), 2, - sym__newline, - anon_sym_SEMI, - [67887] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3193), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [67895] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3195), 2, - sym__newline, - anon_sym_SEMI, - [67903] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3197), 2, - sym__newline, - anon_sym_SEMI, - [67911] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3199), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67919] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3201), 2, - sym__newline, - anon_sym_SEMI, - [67927] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3203), 2, - sym__newline, - anon_sym_SEMI, - [67935] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3205), 2, - sym__newline, - anon_sym_SEMI, - [67943] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3207), 2, - sym__newline, - anon_sym_SEMI, - [67951] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3086), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [67959] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3209), 2, - sym__newline, - anon_sym_SEMI, - [67967] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1031), 2, - anon_sym_except, - anon_sym_finally, - [67975] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2236), 2, - sym__newline, - anon_sym_SEMI, - [67983] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1037), 2, - anon_sym_except, - anon_sym_finally, - [67991] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3211), 1, - anon_sym_COLON, - ACTIONS(3213), 1, - anon_sym_DASH_GT, - [68001] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2713), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68009] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3215), 1, - anon_sym_COLON, - ACTIONS(3217), 1, - anon_sym_DASH_GT, - [68019] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3219), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [68027] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3221), 1, - anon_sym_COLON, - ACTIONS(3223), 1, - anon_sym_DASH_GT, - [68037] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3225), 1, - anon_sym_COMMA, - ACTIONS(3227), 1, - anon_sym_RBRACE, - [68047] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2982), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68055] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3229), 1, - anon_sym_COLON, - ACTIONS(3231), 1, - anon_sym_DASH_GT, - [68065] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3233), 2, - anon_sym_COLON, - anon_sym_DASH_GT, - [68073] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2460), 1, - anon_sym_as, - ACTIONS(2462), 1, - anon_sym_COLON, - [68083] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2295), 1, + ACTIONS(2327), 1, anon_sym_COMMA, STATE(1278), 1, aux_sym_expression_list_repeat1, - [68093] = 3, + [68469] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2464), 1, - anon_sym_as, - ACTIONS(2466), 1, - anon_sym_COLON, - [68103] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2424), 2, + ACTIONS(3186), 2, sym__newline, anon_sym_SEMI, - [68111] = 3, + [68477] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2468), 1, - anon_sym_as, - ACTIONS(2470), 1, - anon_sym_COLON, - [68121] = 3, + ACTIONS(2407), 2, + sym__newline, + anon_sym_SEMI, + [68485] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2918), 1, - anon_sym_COMMA, - ACTIONS(3235), 1, + ACTIONS(1054), 2, + anon_sym_except, + anon_sym_finally, + [68493] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3188), 2, anon_sym_RPAREN, - [68131] = 3, + anon_sym_COMMA, + [68501] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3237), 1, + ACTIONS(3190), 2, anon_sym_COLON, - ACTIONS(3239), 1, anon_sym_DASH_GT, - [68141] = 2, + [68509] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3241), 2, + ACTIONS(3192), 2, + sym__newline, + anon_sym_SEMI, + [68517] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3194), 2, anon_sym_COMMA, anon_sym_RBRACK, - [68149] = 3, + [68525] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3243), 1, + ACTIONS(3196), 2, + sym__newline, + anon_sym_SEMI, + [68533] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3198), 1, anon_sym_COMMA, - STATE(1484), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [68159] = 3, + ACTIONS(3200), 1, + anon_sym_RBRACE, + [68543] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2703), 1, + ACTIONS(2467), 2, + sym__newline, + anon_sym_SEMI, + [68551] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3202), 1, + anon_sym_COLON, + ACTIONS(3204), 1, + anon_sym_DASH_GT, + [68561] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3206), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [68569] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2266), 2, + sym__newline, + anon_sym_SEMI, + [68577] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3208), 2, + sym__newline, + anon_sym_SEMI, + [68585] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3210), 2, + sym__newline, + anon_sym_SEMI, + [68593] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3212), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [68601] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3214), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [68609] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2723), 1, anon_sym_LPAREN, - STATE(1513), 1, + STATE(1531), 1, sym_parameters, - [68169] = 2, + [68619] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3216), 1, + anon_sym_COLON, + ACTIONS(3218), 1, + anon_sym_DASH_GT, + [68629] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3155), 1, + anon_sym_COMMA, + ACTIONS(3220), 1, + anon_sym_RPAREN, + [68639] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3222), 1, + anon_sym_COMMA, + STATE(1396), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [68649] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1058), 2, + anon_sym_except, + anon_sym_finally, + [68657] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3224), 1, + anon_sym_COLON, + ACTIONS(3226), 1, + anon_sym_DASH_GT, + [68667] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2984), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68177] = 3, + [68675] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3245), 1, - sym_integer, - ACTIONS(3247), 1, - sym_float, - [68187] = 3, + ACTIONS(3228), 1, + anon_sym_COLON, + ACTIONS(3230), 1, + anon_sym_DASH_GT, + [68685] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2931), 1, - sym_identifier, - STATE(1558), 1, - sym_match_keyword_pattern, - [68197] = 3, + ACTIONS(3232), 1, + anon_sym_COLON, + ACTIONS(3234), 1, + anon_sym_DASH_GT, + [68695] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3249), 1, - sym_identifier, - STATE(1581), 1, - sym_match_capture_pattern, - [68207] = 3, + ACTIONS(3236), 1, + anon_sym_COLON, + ACTIONS(3238), 1, + anon_sym_DASH_GT, + [68705] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - STATE(1478), 1, - aux_sym_match_value_pattern_repeat1, - [68217] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3251), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [68225] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3107), 1, - anon_sym_RBRACE, - ACTIONS(3253), 1, - anon_sym_COMMA, - [68235] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2428), 1, + ACTIONS(2455), 1, anon_sym_as, - ACTIONS(2432), 1, + ACTIONS(2457), 1, anon_sym_COLON, - [68245] = 3, + [68715] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3255), 1, - sym_integer, - ACTIONS(3257), 1, - sym_float, - [68255] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2232), 1, + ACTIONS(2660), 2, anon_sym_COMMA, - STATE(1251), 1, - aux_sym_expression_list_repeat1, - [68265] = 2, + anon_sym_RBRACK, + [68723] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3259), 2, - sym__newline, - anon_sym_SEMI, - [68273] = 3, + ACTIONS(2459), 1, + anon_sym_as, + ACTIONS(2461), 1, + anon_sym_COLON, + [68733] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1992), 1, - anon_sym_RBRACE, - ACTIONS(3261), 1, - anon_sym_COMMA, - [68283] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2601), 2, + ACTIONS(3000), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68291] = 2, + [68741] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3263), 2, + ACTIONS(3240), 2, + sym__newline, + anon_sym_SEMI, + [68749] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2780), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [68757] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2900), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [68765] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_as, + ACTIONS(2401), 1, anon_sym_COLON, + [68775] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3242), 1, + anon_sym_COLON, + ACTIONS(3244), 1, anon_sym_DASH_GT, - [68299] = 2, + [68785] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2404), 2, + ACTIONS(3246), 1, + sym_identifier, + STATE(1576), 1, + sym_match_capture_pattern, + [68795] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2083), 1, + anon_sym_DOT, + STATE(1408), 1, + aux_sym_match_value_pattern_repeat1, + [68805] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3248), 2, sym__newline, anon_sym_SEMI, - [68307] = 2, + [68813] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3112), 2, - anon_sym_COMMA, + ACTIONS(3123), 1, anon_sym_RBRACE, - [68315] = 3, + ACTIONS(3250), 1, + anon_sym_COMMA, + [68823] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3265), 1, + ACTIONS(3252), 1, sym_integer, - ACTIONS(3267), 1, + ACTIONS(3254), 1, sym_float, - [68325] = 2, + [68833] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3269), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68333] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1546), 1, - sym_parameters, - [68343] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3271), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68351] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1582), 1, - sym_parameters, - [68361] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2406), 2, - sym__newline, - anon_sym_SEMI, - [68369] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1081), 2, - anon_sym_except, - anon_sym_finally, - [68377] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3273), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [68385] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3275), 1, - anon_sym_COLON, - ACTIONS(3277), 1, - anon_sym_DASH_GT, - [68395] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3279), 1, - anon_sym_COLON, - [68402] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3281), 1, - anon_sym_RPAREN, - [68409] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3283), 1, - sym_identifier, - [68416] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3285), 1, - anon_sym_RPAREN, - [68423] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2705), 1, - anon_sym_RBRACE, - [68430] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3287), 1, - anon_sym_COLON, - [68437] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3289), 1, - anon_sym_COLON, - [68444] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3291), 1, - anon_sym_COLON, - [68451] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3293), 1, - anon_sym_RPAREN, - [68458] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3295), 1, - anon_sym_RPAREN, - [68465] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3297), 1, - anon_sym_COLON, - [68472] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3299), 1, - anon_sym_RBRACK, - [68479] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3301), 1, - anon_sym_for, - [68486] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3303), 1, - anon_sym_RBRACE, - [68493] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3305), 1, - anon_sym_COLON, - [68500] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3307), 1, - anon_sym_COLON, - [68507] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3309), 1, - sym_identifier, - [68514] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3311), 1, - anon_sym_RBRACE, - [68521] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3313), 1, - anon_sym_COLON, - [68528] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3315), 1, - anon_sym_RBRACE, - [68535] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2535), 1, - anon_sym_COLON, - [68542] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3317), 1, - anon_sym_COLON, - [68549] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3319), 1, - sym_identifier, - [68556] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3321), 1, - anon_sym_COLON, - [68563] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3323), 1, - anon_sym_COLON, - [68570] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3325), 1, - anon_sym_COLON, - [68577] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3327), 1, - anon_sym_COLON, - [68584] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2537), 1, - anon_sym_COLON, - [68591] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(963), 1, - anon_sym_STAR, - [68598] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3329), 1, - anon_sym_in, - [68605] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3331), 1, - anon_sym_RPAREN, - [68612] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3333), 1, - anon_sym_RBRACK, - [68619] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3335), 1, - anon_sym_RPAREN, - [68626] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3337), 1, - anon_sym_COLON, - [68633] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3339), 1, - anon_sym_COLON, - [68640] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3341), 1, - anon_sym_COLON, - [68647] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3343), 1, - sym_identifier, - [68654] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3345), 1, - anon_sym_COLON, - [68661] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3347), 1, - anon_sym_COLON, - [68668] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3349), 1, - anon_sym_COLON, - [68675] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3227), 1, - anon_sym_RBRACE, - [68682] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3351), 1, - anon_sym_RBRACK, - [68689] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2543), 1, - anon_sym_COLON, - [68696] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3353), 1, - anon_sym_RPAREN, - [68703] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3355), 1, - anon_sym_RBRACE, - [68710] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3357), 1, - anon_sym_RBRACK, - [68717] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3359), 1, - sym_identifier, - [68724] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3361), 1, - anon_sym_COLON, - [68731] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3363), 1, - anon_sym_RBRACE, - [68738] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3365), 1, - sym_identifier, - [68745] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3367), 1, - anon_sym_RBRACK, - [68752] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3369), 1, - anon_sym_in, - [68759] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3371), 1, - anon_sym_RPAREN, - [68766] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3373), 1, - sym_identifier, - [68773] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2539), 1, - anon_sym_COLON, - [68780] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3375), 1, - sym_identifier, - [68787] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3377), 1, - anon_sym_COLON, - [68794] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3379), 1, - anon_sym_COLON, - [68801] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3072), 1, - anon_sym_RBRACE, - [68808] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3381), 1, - anon_sym_COLON, - [68815] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3383), 1, - anon_sym_RPAREN, - [68822] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3385), 1, - anon_sym_RBRACE, - [68829] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3387), 1, - anon_sym_RBRACE, - [68836] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3389), 1, + ACTIONS(2477), 1, + anon_sym_as, + ACTIONS(2479), 1, anon_sym_COLON, [68843] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3391), 1, - anon_sym_EQ, - [68850] = 2, + ACTIONS(3256), 2, + sym__newline, + anon_sym_SEMI, + [68851] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3393), 1, - sym_identifier, - [68857] = 2, + ACTIONS(1018), 2, + anon_sym_except, + anon_sym_finally, + [68859] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3395), 1, + ACTIONS(3258), 1, + sym_integer, + ACTIONS(3260), 1, + sym_float, + [68869] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2744), 2, + sym__newline, + anon_sym_SEMI, + [68877] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2652), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [68885] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2238), 1, + anon_sym_COMMA, + STATE(1219), 1, + aux_sym_expression_list_repeat1, + [68895] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3262), 2, + anon_sym_COMMA, anon_sym_RBRACE, - [68864] = 2, + [68903] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3397), 1, - anon_sym_RBRACE, - [68871] = 2, + ACTIONS(3264), 2, + sym__newline, + anon_sym_SEMI, + [68911] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3399), 1, - sym_identifier, - [68878] = 2, + ACTIONS(2469), 2, + sym__newline, + anon_sym_SEMI, + [68919] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2722), 1, - anon_sym_RBRACE, - [68885] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3007), 1, - anon_sym_RBRACK, - [68892] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3401), 1, - anon_sym_import, - [68899] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3403), 1, - ts_builtin_sym_end, - [68906] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3405), 1, - anon_sym_RBRACK, - [68913] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3074), 1, - anon_sym_in, - [68920] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2337), 1, - anon_sym_EQ, + ACTIONS(3266), 2, + sym__newline, + anon_sym_SEMI, [68927] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3407), 1, - sym_identifier, - [68934] = 2, + ACTIONS(3268), 2, + sym__newline, + anon_sym_SEMI, + [68935] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2882), 1, - anon_sym_RBRACK, - [68941] = 2, + ACTIONS(2770), 2, + anon_sym_COMMA, + anon_sym_COLON, + [68943] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3146), 1, - anon_sym_in, - [68948] = 2, + ACTIONS(1052), 2, + anon_sym_except, + anon_sym_finally, + [68951] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1958), 1, + ACTIONS(3270), 2, + anon_sym_COMMA, anon_sym_RBRACE, - [68955] = 2, + [68959] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3409), 1, + ACTIONS(3272), 2, + sym__newline, + anon_sym_SEMI, + [68967] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3274), 2, + sym__newline, + anon_sym_SEMI, + [68975] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3276), 1, + sym_integer, + ACTIONS(3278), 1, + sym_float, + [68985] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3280), 2, + anon_sym_COMMA, anon_sym_RBRACE, - [68962] = 2, + [68993] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3411), 1, - anon_sym_import, - [68969] = 2, + ACTIONS(1070), 2, + anon_sym_except, + anon_sym_finally, + [69001] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3413), 1, + ACTIONS(2723), 1, + anon_sym_LPAREN, + STATE(1546), 1, + sym_parameters, + [69011] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2723), 1, + anon_sym_LPAREN, + STATE(1547), 1, + sym_parameters, + [69021] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1951), 1, anon_sym_RBRACE, - [68976] = 2, + ACTIONS(3282), 1, + anon_sym_COMMA, + [69031] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3415), 1, - anon_sym_COLON, - [68983] = 2, + ACTIONS(3284), 1, + anon_sym_COMMA, + STATE(1340), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69041] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3417), 1, - sym_identifier, - [68990] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3419), 1, - anon_sym_COLON, - [68997] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2966), 1, - anon_sym_RBRACK, - [69004] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3421), 1, - anon_sym_COLON, - [69011] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3423), 1, - anon_sym_in, - [69018] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3099), 1, - anon_sym_in, - [69025] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3425), 1, - anon_sym_COLON, - [69032] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3427), 1, - anon_sym_in, - [69039] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3429), 1, - anon_sym_RPAREN, - [69046] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3431), 1, - anon_sym_COLON, - [69053] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3433), 1, - anon_sym_RBRACK, - [69060] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3435), 1, + ACTIONS(3162), 2, + anon_sym_COMMA, anon_sym_RBRACE, + [69049] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3286), 1, + anon_sym_COLON, + ACTIONS(3288), 1, + anon_sym_DASH_GT, + [69059] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3290), 2, + sym__newline, + anon_sym_SEMI, [69067] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3437), 1, + ACTIONS(3292), 2, + anon_sym_COMMA, anon_sym_RBRACK, - [69074] = 2, + [69075] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3439), 1, - anon_sym_LPAREN, - [69081] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3441), 1, - sym_identifier, - [69088] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3443), 1, + ACTIONS(3294), 2, anon_sym_COLON, - [69095] = 2, + anon_sym_DASH_GT, + [69083] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3445), 1, - anon_sym_RBRACE, - [69102] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3447), 1, - anon_sym_RPAREN, - [69109] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1059), 1, - anon_sym_def, - [69116] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3449), 1, - anon_sym_RPAREN, - [69123] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3451), 1, - anon_sym_RBRACE, - [69130] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3453), 1, - anon_sym_COLON, - [69137] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3455), 1, - anon_sym_COLON, - [69144] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3457), 1, - anon_sym_COLON, - [69151] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3459), 1, - sym_identifier, - [69158] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3142), 1, - anon_sym_RBRACE, - [69165] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2950), 1, + ACTIONS(3296), 2, + anon_sym_COMMA, anon_sym_RBRACK, - [69172] = 2, + [69091] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3461), 1, - anon_sym_RPAREN, - [69179] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3463), 1, - sym_identifier, - [69186] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3465), 1, - sym_identifier, - [69193] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3467), 1, + ACTIONS(3298), 1, anon_sym_COLON, - [69200] = 2, + [69098] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3469), 1, - sym_identifier, - [69207] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3471), 1, + ACTIONS(3300), 1, anon_sym_RBRACE, - [69214] = 2, + [69105] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3473), 1, + ACTIONS(2936), 1, + anon_sym_RBRACK, + [69112] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3062), 1, anon_sym_in, - [69221] = 2, + [69119] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3475), 1, - anon_sym_RPAREN, - [69228] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3477), 1, - anon_sym_RPAREN, - [69235] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3479), 1, - sym_identifier, - [69242] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(985), 1, - anon_sym_STAR, - [69249] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3481), 1, + ACTIONS(3302), 1, anon_sym_RBRACE, - [69256] = 2, + [69126] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3483), 1, - anon_sym_RPAREN, - [69263] = 2, + ACTIONS(3304), 1, + sym_identifier, + [69133] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3154), 1, - anon_sym_in, - [69270] = 2, + ACTIONS(3306), 1, + sym_identifier, + [69140] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3485), 1, + ACTIONS(3308), 1, + anon_sym_COLON, + [69147] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3310), 1, + anon_sym_COLON, + [69154] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3312), 1, + anon_sym_RBRACE, + [69161] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3314), 1, + anon_sym_COLON, + [69168] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3316), 1, + anon_sym_RBRACE, + [69175] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3318), 1, + sym_identifier, + [69182] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3320), 1, + anon_sym_COLON, + [69189] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3322), 1, + anon_sym_COLON, + [69196] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3324), 1, + anon_sym_COLON, + [69203] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2958), 1, anon_sym_RBRACK, - [69277] = 2, + [69210] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3487), 1, + ACTIONS(3326), 1, + anon_sym_COLON, + [69217] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3328), 1, + ts_builtin_sym_end, + [69224] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3330), 1, + anon_sym_COLON, + [69231] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2944), 1, + anon_sym_in, + [69238] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3332), 1, + anon_sym_RPAREN, + [69245] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2546), 1, + anon_sym_COLON, + [69252] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3334), 1, + sym_identifier, + [69259] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3336), 1, + anon_sym_RBRACE, + [69266] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3338), 1, + anon_sym_COLON, + [69273] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3340), 1, + anon_sym_RPAREN, + [69280] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3342), 1, + anon_sym_COLON, + [69287] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3344), 1, + anon_sym_COLON, + [69294] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2548), 1, + anon_sym_COLON, + [69301] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3346), 1, + anon_sym_COLON, + [69308] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3348), 1, + sym_identifier, + [69315] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2982), 1, + anon_sym_RBRACE, + [69322] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3350), 1, + sym_identifier, + [69329] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3352), 1, + anon_sym_RBRACK, + [69336] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3354), 1, + anon_sym_COLON, + [69343] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3356), 1, + anon_sym_COLON, + [69350] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3358), 1, + anon_sym_COLON, + [69357] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3360), 1, + anon_sym_RBRACE, + [69364] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2280), 1, + anon_sym_EQ, + [69371] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2562), 1, + anon_sym_COLON, + [69378] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3362), 1, + anon_sym_COLON, + [69385] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3364), 1, + anon_sym_COLON, + [69392] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3366), 1, + sym_identifier, + [69399] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2001), 1, + anon_sym_RBRACE, + [69406] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3368), 1, + sym_identifier, + [69413] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3370), 1, + anon_sym_RBRACE, + [69420] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3372), 1, + sym_identifier, + [69427] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3374), 1, + anon_sym_RPAREN, + [69434] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3376), 1, + anon_sym_in, + [69441] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3378), 1, + anon_sym_COLON, + [69448] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3380), 1, + sym_identifier, + [69455] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3382), 1, + anon_sym_COLON, + [69462] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3384), 1, + anon_sym_COLON, + [69469] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3386), 1, + anon_sym_for, + [69476] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3388), 1, + anon_sym_COLON, + [69483] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3104), 1, + anon_sym_in, + [69490] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2554), 1, + anon_sym_COLON, + [69497] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3085), 1, + anon_sym_in, + [69504] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3390), 1, + anon_sym_COLON, + [69511] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3392), 1, + anon_sym_RPAREN, + [69518] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3394), 1, + anon_sym_COLON, + [69525] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3396), 1, + anon_sym_COLON, + [69532] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3398), 1, + anon_sym_RPAREN, + [69539] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3400), 1, + anon_sym_in, + [69546] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3402), 1, + anon_sym_RPAREN, + [69553] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3404), 1, + anon_sym_COLON, + [69560] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3406), 1, + anon_sym_RBRACK, + [69567] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3408), 1, + anon_sym_COLON, + [69574] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3410), 1, anon_sym_import, - [69284] = 2, + [69581] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3489), 1, - anon_sym_COLON, - [69291] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3491), 1, - anon_sym_COLON, - [69298] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3493), 1, - anon_sym_COLON, - [69305] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3495), 1, + ACTIONS(3412), 1, sym_identifier, - [69312] = 2, + [69588] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3497), 1, + ACTIONS(3414), 1, sym_identifier, - [69319] = 2, + [69595] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3499), 1, + ACTIONS(3416), 1, + sym_identifier, + [69602] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3418), 1, + anon_sym_EQ, + [69609] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3420), 1, anon_sym_RBRACE, - [69326] = 2, + [69616] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3158), 1, - anon_sym_in, - [69333] = 2, + ACTIONS(3422), 1, + anon_sym_RBRACE, + [69623] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1089), 1, + ACTIONS(1104), 1, anon_sym_def, - [69340] = 2, + [69630] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3501), 1, + ACTIONS(3424), 1, + anon_sym_RPAREN, + [69637] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3426), 1, + anon_sym_RPAREN, + [69644] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3428), 1, + sym_identifier, + [69651] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3430), 1, anon_sym_RBRACE, - [69347] = 2, + [69658] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3160), 1, - anon_sym_in, - [69354] = 2, + ACTIONS(3432), 1, + anon_sym_RPAREN, + [69665] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3503), 1, - anon_sym_in, - [69361] = 2, + ACTIONS(3434), 1, + sym_identifier, + [69672] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3505), 1, + ACTIONS(3436), 1, + anon_sym_RBRACK, + [69679] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(956), 1, + anon_sym_STAR, + [69686] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3438), 1, + anon_sym_import, + [69693] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3440), 1, anon_sym_RBRACE, - [69368] = 2, + [69700] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3507), 1, + ACTIONS(3442), 1, + anon_sym_RPAREN, + [69707] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3444), 1, + anon_sym_RPAREN, + [69714] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3025), 1, + anon_sym_RBRACK, + [69721] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3446), 1, anon_sym_COLON, + [69728] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3448), 1, + anon_sym_in, + [69735] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3450), 1, + anon_sym_RBRACE, + [69742] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3200), 1, + anon_sym_RBRACE, + [69749] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3452), 1, + anon_sym_RBRACK, + [69756] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3454), 1, + anon_sym_RPAREN, + [69763] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3456), 1, + anon_sym_COLON, + [69770] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3458), 1, + anon_sym_RPAREN, + [69777] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3460), 1, + anon_sym_COLON, + [69784] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3462), 1, + anon_sym_in, + [69791] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3464), 1, + anon_sym_RPAREN, + [69798] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3466), 1, + anon_sym_RBRACK, + [69805] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2746), 1, + anon_sym_RBRACE, + [69812] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3468), 1, + anon_sym_RBRACE, + [69819] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2912), 1, + anon_sym_RBRACK, + [69826] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3470), 1, + anon_sym_import, + [69833] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3472), 1, + anon_sym_RBRACK, + [69840] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3474), 1, + anon_sym_COLON, + [69847] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3476), 1, + anon_sym_import, + [69854] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3478), 1, + anon_sym_RBRACE, + [69861] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3480), 1, + sym_identifier, + [69868] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3482), 1, + anon_sym_COLON, + [69875] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3484), 1, + anon_sym_RBRACE, + [69882] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3486), 1, + anon_sym_COLON, + [69889] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3488), 1, + anon_sym_COLON, + [69896] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3490), 1, + anon_sym_COLON, + [69903] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3492), 1, + anon_sym_RBRACE, + [69910] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3494), 1, + anon_sym_RBRACE, + [69917] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3496), 1, + anon_sym_COLON, + [69924] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3498), 1, + sym_identifier, + [69931] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3500), 1, + anon_sym_COLON, + [69938] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3502), 1, + anon_sym_RPAREN, + [69945] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3504), 1, + anon_sym_LPAREN, + [69952] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(984), 1, + anon_sym_STAR, + [69959] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3506), 1, + anon_sym_RBRACK, + [69966] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3508), 1, + anon_sym_RPAREN, + [69973] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2725), 1, + anon_sym_RBRACE, + [69980] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3510), 1, + anon_sym_RBRACE, + [69987] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3512), 1, + anon_sym_COLON, + [69994] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3514), 1, + anon_sym_RBRACE, + [70001] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3516), 1, + sym_identifier, + [70008] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3518), 1, + anon_sym_in, + [70015] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3520), 1, + sym_identifier, + [70022] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3522), 1, + sym_identifier, + [70029] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3524), 1, + anon_sym_RBRACK, + [70036] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3168), 1, + anon_sym_in, + [70043] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1110), 1, + anon_sym_def, + [70050] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3526), 1, + anon_sym_in, + [70057] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3170), 1, + anon_sym_in, + [70064] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3528), 1, + anon_sym_RPAREN, + [70071] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3530), 1, + anon_sym_RBRACK, + [70078] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3049), 1, + anon_sym_RBRACE, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(156)] = 0, - [SMALL_STATE(157)] = 110, - [SMALL_STATE(158)] = 232, - [SMALL_STATE(159)] = 342, - [SMALL_STATE(160)] = 466, - [SMALL_STATE(161)] = 588, - [SMALL_STATE(162)] = 714, - [SMALL_STATE(163)] = 838, - [SMALL_STATE(164)] = 960, - [SMALL_STATE(165)] = 1081, - [SMALL_STATE(166)] = 1202, - [SMALL_STATE(167)] = 1323, - [SMALL_STATE(168)] = 1444, - [SMALL_STATE(169)] = 1558, - [SMALL_STATE(170)] = 1672, - [SMALL_STATE(171)] = 1781, - [SMALL_STATE(172)] = 1890, - [SMALL_STATE(173)] = 1999, - [SMALL_STATE(174)] = 2109, - [SMALL_STATE(175)] = 2221, - [SMALL_STATE(176)] = 2329, - [SMALL_STATE(177)] = 2441, - [SMALL_STATE(178)] = 2553, - [SMALL_STATE(179)] = 2661, - [SMALL_STATE(180)] = 2769, - [SMALL_STATE(181)] = 2877, - [SMALL_STATE(182)] = 2987, - [SMALL_STATE(183)] = 3099, - [SMALL_STATE(184)] = 3213, - [SMALL_STATE(185)] = 3325, - [SMALL_STATE(186)] = 3433, - [SMALL_STATE(187)] = 3541, - [SMALL_STATE(188)] = 3653, - [SMALL_STATE(189)] = 3765, - [SMALL_STATE(190)] = 3874, - [SMALL_STATE(191)] = 3979, - [SMALL_STATE(192)] = 4088, - [SMALL_STATE(193)] = 4193, - [SMALL_STATE(194)] = 4302, - [SMALL_STATE(195)] = 4413, - [SMALL_STATE(196)] = 4522, - [SMALL_STATE(197)] = 4631, - [SMALL_STATE(198)] = 4740, - [SMALL_STATE(199)] = 4849, - [SMALL_STATE(200)] = 4962, - [SMALL_STATE(201)] = 5071, - [SMALL_STATE(202)] = 5180, - [SMALL_STATE(203)] = 5289, - [SMALL_STATE(204)] = 5398, - [SMALL_STATE(205)] = 5503, - [SMALL_STATE(206)] = 5608, - [SMALL_STATE(207)] = 5719, - [SMALL_STATE(208)] = 5828, - [SMALL_STATE(209)] = 5939, - [SMALL_STATE(210)] = 6048, - [SMALL_STATE(211)] = 6161, - [SMALL_STATE(212)] = 6274, - [SMALL_STATE(213)] = 6383, - [SMALL_STATE(214)] = 6492, - [SMALL_STATE(215)] = 6601, - [SMALL_STATE(216)] = 6710, - [SMALL_STATE(217)] = 6819, - [SMALL_STATE(218)] = 6928, - [SMALL_STATE(219)] = 7039, - [SMALL_STATE(220)] = 7148, - [SMALL_STATE(221)] = 7257, - [SMALL_STATE(222)] = 7366, - [SMALL_STATE(223)] = 7475, - [SMALL_STATE(224)] = 7584, - [SMALL_STATE(225)] = 7693, - [SMALL_STATE(226)] = 7802, - [SMALL_STATE(227)] = 7913, - [SMALL_STATE(228)] = 8022, - [SMALL_STATE(229)] = 8131, - [SMALL_STATE(230)] = 8242, - [SMALL_STATE(231)] = 8351, - [SMALL_STATE(232)] = 8460, - [SMALL_STATE(233)] = 8566, - [SMALL_STATE(234)] = 8672, - [SMALL_STATE(235)] = 8778, - [SMALL_STATE(236)] = 8884, - [SMALL_STATE(237)] = 8990, - [SMALL_STATE(238)] = 9096, - [SMALL_STATE(239)] = 9202, - [SMALL_STATE(240)] = 9296, - [SMALL_STATE(241)] = 9402, - [SMALL_STATE(242)] = 9508, - [SMALL_STATE(243)] = 9611, - [SMALL_STATE(244)] = 9716, - [SMALL_STATE(245)] = 9821, - [SMALL_STATE(246)] = 9924, - [SMALL_STATE(247)] = 10029, - [SMALL_STATE(248)] = 10134, - [SMALL_STATE(249)] = 10239, - [SMALL_STATE(250)] = 10341, - [SMALL_STATE(251)] = 10443, - [SMALL_STATE(252)] = 10545, - [SMALL_STATE(253)] = 10647, - [SMALL_STATE(254)] = 10749, - [SMALL_STATE(255)] = 10851, - [SMALL_STATE(256)] = 10953, - [SMALL_STATE(257)] = 11055, - [SMALL_STATE(258)] = 11157, - [SMALL_STATE(259)] = 11259, - [SMALL_STATE(260)] = 11361, - [SMALL_STATE(261)] = 11463, - [SMALL_STATE(262)] = 11565, - [SMALL_STATE(263)] = 11667, - [SMALL_STATE(264)] = 11769, - [SMALL_STATE(265)] = 11870, - [SMALL_STATE(266)] = 11971, - [SMALL_STATE(267)] = 12044, - [SMALL_STATE(268)] = 12117, - [SMALL_STATE(269)] = 12190, - [SMALL_STATE(270)] = 12289, - [SMALL_STATE(271)] = 12390, - [SMALL_STATE(272)] = 12491, - [SMALL_STATE(273)] = 12592, - [SMALL_STATE(274)] = 12693, - [SMALL_STATE(275)] = 12792, - [SMALL_STATE(276)] = 12865, - [SMALL_STATE(277)] = 12966, - [SMALL_STATE(278)] = 13067, - [SMALL_STATE(279)] = 13168, - [SMALL_STATE(280)] = 13241, - [SMALL_STATE(281)] = 13314, - [SMALL_STATE(282)] = 13415, - [SMALL_STATE(283)] = 13514, - [SMALL_STATE(284)] = 13587, - [SMALL_STATE(285)] = 13688, - [SMALL_STATE(286)] = 13789, - [SMALL_STATE(287)] = 13890, - [SMALL_STATE(288)] = 13963, - [SMALL_STATE(289)] = 14061, - [SMALL_STATE(290)] = 14157, - [SMALL_STATE(291)] = 14253, - [SMALL_STATE(292)] = 14349, - [SMALL_STATE(293)] = 14445, - [SMALL_STATE(294)] = 14541, - [SMALL_STATE(295)] = 14601, - [SMALL_STATE(296)] = 14699, - [SMALL_STATE(297)] = 14795, - [SMALL_STATE(298)] = 14891, - [SMALL_STATE(299)] = 14989, - [SMALL_STATE(300)] = 15087, - [SMALL_STATE(301)] = 15183, - [SMALL_STATE(302)] = 15279, - [SMALL_STATE(303)] = 15375, - [SMALL_STATE(304)] = 15471, - [SMALL_STATE(305)] = 15569, - [SMALL_STATE(306)] = 15667, - [SMALL_STATE(307)] = 15763, - [SMALL_STATE(308)] = 15823, - [SMALL_STATE(309)] = 15921, - [SMALL_STATE(310)] = 16017, - [SMALL_STATE(311)] = 16115, - [SMALL_STATE(312)] = 16213, - [SMALL_STATE(313)] = 16282, - [SMALL_STATE(314)] = 16341, - [SMALL_STATE(315)] = 16400, - [SMALL_STATE(316)] = 16495, - [SMALL_STATE(317)] = 16564, - [SMALL_STATE(318)] = 16623, - [SMALL_STATE(319)] = 16682, - [SMALL_STATE(320)] = 16751, - [SMALL_STATE(321)] = 16810, - [SMALL_STATE(322)] = 16879, - [SMALL_STATE(323)] = 16948, - [SMALL_STATE(324)] = 17043, - [SMALL_STATE(325)] = 17116, - [SMALL_STATE(326)] = 17175, - [SMALL_STATE(327)] = 17244, - [SMALL_STATE(328)] = 17313, - [SMALL_STATE(329)] = 17376, - [SMALL_STATE(330)] = 17439, - [SMALL_STATE(331)] = 17502, - [SMALL_STATE(332)] = 17565, - [SMALL_STATE(333)] = 17624, - [SMALL_STATE(334)] = 17693, - [SMALL_STATE(335)] = 17752, - [SMALL_STATE(336)] = 17811, - [SMALL_STATE(337)] = 17870, - [SMALL_STATE(338)] = 17965, - [SMALL_STATE(339)] = 18038, - [SMALL_STATE(340)] = 18130, - [SMALL_STATE(341)] = 18222, - [SMALL_STATE(342)] = 18314, - [SMALL_STATE(343)] = 18406, - [SMALL_STATE(344)] = 18498, - [SMALL_STATE(345)] = 18590, - [SMALL_STATE(346)] = 18682, - [SMALL_STATE(347)] = 18774, - [SMALL_STATE(348)] = 18866, - [SMALL_STATE(349)] = 18958, - [SMALL_STATE(350)] = 19050, - [SMALL_STATE(351)] = 19142, - [SMALL_STATE(352)] = 19234, - [SMALL_STATE(353)] = 19326, - [SMALL_STATE(354)] = 19418, - [SMALL_STATE(355)] = 19482, - [SMALL_STATE(356)] = 19574, - [SMALL_STATE(357)] = 19666, - [SMALL_STATE(358)] = 19758, - [SMALL_STATE(359)] = 19850, - [SMALL_STATE(360)] = 19942, - [SMALL_STATE(361)] = 20034, - [SMALL_STATE(362)] = 20126, - [SMALL_STATE(363)] = 20218, - [SMALL_STATE(364)] = 20310, - [SMALL_STATE(365)] = 20402, - [SMALL_STATE(366)] = 20494, - [SMALL_STATE(367)] = 20586, - [SMALL_STATE(368)] = 20656, - [SMALL_STATE(369)] = 20748, - [SMALL_STATE(370)] = 20840, - [SMALL_STATE(371)] = 20932, - [SMALL_STATE(372)] = 21024, - [SMALL_STATE(373)] = 21116, - [SMALL_STATE(374)] = 21208, - [SMALL_STATE(375)] = 21300, - [SMALL_STATE(376)] = 21392, - [SMALL_STATE(377)] = 21484, - [SMALL_STATE(378)] = 21576, - [SMALL_STATE(379)] = 21668, - [SMALL_STATE(380)] = 21760, - [SMALL_STATE(381)] = 21852, - [SMALL_STATE(382)] = 21944, - [SMALL_STATE(383)] = 22036, - [SMALL_STATE(384)] = 22128, - [SMALL_STATE(385)] = 22222, - [SMALL_STATE(386)] = 22314, - [SMALL_STATE(387)] = 22406, - [SMALL_STATE(388)] = 22498, - [SMALL_STATE(389)] = 22590, - [SMALL_STATE(390)] = 22682, - [SMALL_STATE(391)] = 22774, - [SMALL_STATE(392)] = 22866, - [SMALL_STATE(393)] = 22958, - [SMALL_STATE(394)] = 23050, - [SMALL_STATE(395)] = 23142, - [SMALL_STATE(396)] = 23234, - [SMALL_STATE(397)] = 23326, - [SMALL_STATE(398)] = 23418, - [SMALL_STATE(399)] = 23510, - [SMALL_STATE(400)] = 23574, - [SMALL_STATE(401)] = 23666, - [SMALL_STATE(402)] = 23758, - [SMALL_STATE(403)] = 23850, - [SMALL_STATE(404)] = 23942, - [SMALL_STATE(405)] = 24034, - [SMALL_STATE(406)] = 24126, - [SMALL_STATE(407)] = 24218, - [SMALL_STATE(408)] = 24310, - [SMALL_STATE(409)] = 24402, - [SMALL_STATE(410)] = 24494, - [SMALL_STATE(411)] = 24586, - [SMALL_STATE(412)] = 24678, - [SMALL_STATE(413)] = 24770, - [SMALL_STATE(414)] = 24862, - [SMALL_STATE(415)] = 24954, - [SMALL_STATE(416)] = 25046, - [SMALL_STATE(417)] = 25138, - [SMALL_STATE(418)] = 25230, - [SMALL_STATE(419)] = 25322, - [SMALL_STATE(420)] = 25414, - [SMALL_STATE(421)] = 25506, - [SMALL_STATE(422)] = 25598, - [SMALL_STATE(423)] = 25690, - [SMALL_STATE(424)] = 25782, - [SMALL_STATE(425)] = 25874, - [SMALL_STATE(426)] = 25966, - [SMALL_STATE(427)] = 26058, - [SMALL_STATE(428)] = 26150, - [SMALL_STATE(429)] = 26242, - [SMALL_STATE(430)] = 26334, - [SMALL_STATE(431)] = 26426, - [SMALL_STATE(432)] = 26518, - [SMALL_STATE(433)] = 26610, - [SMALL_STATE(434)] = 26702, - [SMALL_STATE(435)] = 26794, - [SMALL_STATE(436)] = 26886, - [SMALL_STATE(437)] = 26943, - [SMALL_STATE(438)] = 27000, - [SMALL_STATE(439)] = 27057, - [SMALL_STATE(440)] = 27114, - [SMALL_STATE(441)] = 27171, - [SMALL_STATE(442)] = 27228, - [SMALL_STATE(443)] = 27285, - [SMALL_STATE(444)] = 27342, - [SMALL_STATE(445)] = 27399, - [SMALL_STATE(446)] = 27456, - [SMALL_STATE(447)] = 27513, - [SMALL_STATE(448)] = 27570, - [SMALL_STATE(449)] = 27627, - [SMALL_STATE(450)] = 27684, - [SMALL_STATE(451)] = 27745, - [SMALL_STATE(452)] = 27802, - [SMALL_STATE(453)] = 27863, - [SMALL_STATE(454)] = 27924, - [SMALL_STATE(455)] = 27981, - [SMALL_STATE(456)] = 28038, - [SMALL_STATE(457)] = 28095, - [SMALL_STATE(458)] = 28152, - [SMALL_STATE(459)] = 28219, - [SMALL_STATE(460)] = 28276, - [SMALL_STATE(461)] = 28337, - [SMALL_STATE(462)] = 28429, - [SMALL_STATE(463)] = 28493, - [SMALL_STATE(464)] = 28549, - [SMALL_STATE(465)] = 28605, - [SMALL_STATE(466)] = 28669, - [SMALL_STATE(467)] = 28729, - [SMALL_STATE(468)] = 28821, - [SMALL_STATE(469)] = 28881, - [SMALL_STATE(470)] = 28941, - [SMALL_STATE(471)] = 29001, - [SMALL_STATE(472)] = 29057, - [SMALL_STATE(473)] = 29117, - [SMALL_STATE(474)] = 29173, - [SMALL_STATE(475)] = 29237, - [SMALL_STATE(476)] = 29293, - [SMALL_STATE(477)] = 29353, - [SMALL_STATE(478)] = 29413, - [SMALL_STATE(479)] = 29507, - [SMALL_STATE(480)] = 29567, - [SMALL_STATE(481)] = 29627, - [SMALL_STATE(482)] = 29687, - [SMALL_STATE(483)] = 29747, - [SMALL_STATE(484)] = 29803, - [SMALL_STATE(485)] = 29863, - [SMALL_STATE(486)] = 29923, - [SMALL_STATE(487)] = 29979, - [SMALL_STATE(488)] = 30043, - [SMALL_STATE(489)] = 30099, - [SMALL_STATE(490)] = 30159, - [SMALL_STATE(491)] = 30219, - [SMALL_STATE(492)] = 30279, - [SMALL_STATE(493)] = 30334, - [SMALL_STATE(494)] = 30425, - [SMALL_STATE(495)] = 30486, - [SMALL_STATE(496)] = 30541, - [SMALL_STATE(497)] = 30596, - [SMALL_STATE(498)] = 30687, - [SMALL_STATE(499)] = 30742, - [SMALL_STATE(500)] = 30797, - [SMALL_STATE(501)] = 30852, - [SMALL_STATE(502)] = 30907, - [SMALL_STATE(503)] = 30968, - [SMALL_STATE(504)] = 31023, - [SMALL_STATE(505)] = 31078, - [SMALL_STATE(506)] = 31133, - [SMALL_STATE(507)] = 31188, - [SMALL_STATE(508)] = 31243, - [SMALL_STATE(509)] = 31334, - [SMALL_STATE(510)] = 31395, - [SMALL_STATE(511)] = 31486, - [SMALL_STATE(512)] = 31577, - [SMALL_STATE(513)] = 31668, - [SMALL_STATE(514)] = 31729, - [SMALL_STATE(515)] = 31783, - [SMALL_STATE(516)] = 31837, - [SMALL_STATE(517)] = 31891, - [SMALL_STATE(518)] = 31945, - [SMALL_STATE(519)] = 31999, - [SMALL_STATE(520)] = 32053, - [SMALL_STATE(521)] = 32107, - [SMALL_STATE(522)] = 32161, - [SMALL_STATE(523)] = 32215, - [SMALL_STATE(524)] = 32269, - [SMALL_STATE(525)] = 32323, - [SMALL_STATE(526)] = 32377, - [SMALL_STATE(527)] = 32431, - [SMALL_STATE(528)] = 32485, - [SMALL_STATE(529)] = 32539, - [SMALL_STATE(530)] = 32593, - [SMALL_STATE(531)] = 32647, - [SMALL_STATE(532)] = 32701, - [SMALL_STATE(533)] = 32755, - [SMALL_STATE(534)] = 32809, - [SMALL_STATE(535)] = 32863, - [SMALL_STATE(536)] = 32917, - [SMALL_STATE(537)] = 32971, - [SMALL_STATE(538)] = 33025, - [SMALL_STATE(539)] = 33079, - [SMALL_STATE(540)] = 33133, - [SMALL_STATE(541)] = 33187, - [SMALL_STATE(542)] = 33241, - [SMALL_STATE(543)] = 33295, - [SMALL_STATE(544)] = 33349, - [SMALL_STATE(545)] = 33403, - [SMALL_STATE(546)] = 33457, - [SMALL_STATE(547)] = 33511, - [SMALL_STATE(548)] = 33565, - [SMALL_STATE(549)] = 33619, - [SMALL_STATE(550)] = 33673, - [SMALL_STATE(551)] = 33727, - [SMALL_STATE(552)] = 33815, - [SMALL_STATE(553)] = 33869, - [SMALL_STATE(554)] = 33923, - [SMALL_STATE(555)] = 33977, - [SMALL_STATE(556)] = 34031, - [SMALL_STATE(557)] = 34085, - [SMALL_STATE(558)] = 34139, - [SMALL_STATE(559)] = 34193, - [SMALL_STATE(560)] = 34247, - [SMALL_STATE(561)] = 34301, - [SMALL_STATE(562)] = 34355, - [SMALL_STATE(563)] = 34409, - [SMALL_STATE(564)] = 34463, - [SMALL_STATE(565)] = 34517, - [SMALL_STATE(566)] = 34571, - [SMALL_STATE(567)] = 34625, - [SMALL_STATE(568)] = 34679, - [SMALL_STATE(569)] = 34733, - [SMALL_STATE(570)] = 34787, - [SMALL_STATE(571)] = 34841, - [SMALL_STATE(572)] = 34895, - [SMALL_STATE(573)] = 34949, - [SMALL_STATE(574)] = 35003, - [SMALL_STATE(575)] = 35057, - [SMALL_STATE(576)] = 35111, - [SMALL_STATE(577)] = 35165, - [SMALL_STATE(578)] = 35219, - [SMALL_STATE(579)] = 35273, - [SMALL_STATE(580)] = 35327, - [SMALL_STATE(581)] = 35381, - [SMALL_STATE(582)] = 35435, - [SMALL_STATE(583)] = 35489, - [SMALL_STATE(584)] = 35543, - [SMALL_STATE(585)] = 35597, - [SMALL_STATE(586)] = 35651, - [SMALL_STATE(587)] = 35705, - [SMALL_STATE(588)] = 35759, - [SMALL_STATE(589)] = 35813, - [SMALL_STATE(590)] = 35867, - [SMALL_STATE(591)] = 35921, - [SMALL_STATE(592)] = 35975, - [SMALL_STATE(593)] = 36029, - [SMALL_STATE(594)] = 36083, - [SMALL_STATE(595)] = 36137, - [SMALL_STATE(596)] = 36191, - [SMALL_STATE(597)] = 36245, - [SMALL_STATE(598)] = 36299, - [SMALL_STATE(599)] = 36353, - [SMALL_STATE(600)] = 36407, - [SMALL_STATE(601)] = 36461, - [SMALL_STATE(602)] = 36515, - [SMALL_STATE(603)] = 36569, - [SMALL_STATE(604)] = 36623, - [SMALL_STATE(605)] = 36677, - [SMALL_STATE(606)] = 36731, - [SMALL_STATE(607)] = 36785, - [SMALL_STATE(608)] = 36839, - [SMALL_STATE(609)] = 36893, - [SMALL_STATE(610)] = 36947, - [SMALL_STATE(611)] = 37001, - [SMALL_STATE(612)] = 37055, - [SMALL_STATE(613)] = 37143, - [SMALL_STATE(614)] = 37197, - [SMALL_STATE(615)] = 37279, - [SMALL_STATE(616)] = 37355, - [SMALL_STATE(617)] = 37409, - [SMALL_STATE(618)] = 37463, - [SMALL_STATE(619)] = 37539, - [SMALL_STATE(620)] = 37593, - [SMALL_STATE(621)] = 37647, - [SMALL_STATE(622)] = 37701, - [SMALL_STATE(623)] = 37777, - [SMALL_STATE(624)] = 37853, - [SMALL_STATE(625)] = 37907, - [SMALL_STATE(626)] = 37983, - [SMALL_STATE(627)] = 38059, - [SMALL_STATE(628)] = 38132, - [SMALL_STATE(629)] = 38205, - [SMALL_STATE(630)] = 38278, - [SMALL_STATE(631)] = 38351, - [SMALL_STATE(632)] = 38424, - [SMALL_STATE(633)] = 38497, - [SMALL_STATE(634)] = 38570, - [SMALL_STATE(635)] = 38643, - [SMALL_STATE(636)] = 38716, - [SMALL_STATE(637)] = 38789, - [SMALL_STATE(638)] = 38862, - [SMALL_STATE(639)] = 38935, - [SMALL_STATE(640)] = 39008, - [SMALL_STATE(641)] = 39081, - [SMALL_STATE(642)] = 39154, - [SMALL_STATE(643)] = 39227, - [SMALL_STATE(644)] = 39300, - [SMALL_STATE(645)] = 39373, - [SMALL_STATE(646)] = 39446, - [SMALL_STATE(647)] = 39519, - [SMALL_STATE(648)] = 39592, - [SMALL_STATE(649)] = 39665, - [SMALL_STATE(650)] = 39738, - [SMALL_STATE(651)] = 39811, - [SMALL_STATE(652)] = 39884, - [SMALL_STATE(653)] = 39957, - [SMALL_STATE(654)] = 40030, - [SMALL_STATE(655)] = 40103, - [SMALL_STATE(656)] = 40176, - [SMALL_STATE(657)] = 40249, - [SMALL_STATE(658)] = 40322, - [SMALL_STATE(659)] = 40395, - [SMALL_STATE(660)] = 40468, - [SMALL_STATE(661)] = 40541, - [SMALL_STATE(662)] = 40614, - [SMALL_STATE(663)] = 40691, - [SMALL_STATE(664)] = 40764, - [SMALL_STATE(665)] = 40837, - [SMALL_STATE(666)] = 40910, - [SMALL_STATE(667)] = 40983, - [SMALL_STATE(668)] = 41056, - [SMALL_STATE(669)] = 41129, - [SMALL_STATE(670)] = 41202, - [SMALL_STATE(671)] = 41275, - [SMALL_STATE(672)] = 41348, - [SMALL_STATE(673)] = 41421, - [SMALL_STATE(674)] = 41494, - [SMALL_STATE(675)] = 41567, - [SMALL_STATE(676)] = 41640, - [SMALL_STATE(677)] = 41713, - [SMALL_STATE(678)] = 41786, - [SMALL_STATE(679)] = 41863, - [SMALL_STATE(680)] = 41936, - [SMALL_STATE(681)] = 42009, - [SMALL_STATE(682)] = 42082, - [SMALL_STATE(683)] = 42155, - [SMALL_STATE(684)] = 42228, - [SMALL_STATE(685)] = 42301, - [SMALL_STATE(686)] = 42374, - [SMALL_STATE(687)] = 42447, - [SMALL_STATE(688)] = 42520, - [SMALL_STATE(689)] = 42593, - [SMALL_STATE(690)] = 42666, - [SMALL_STATE(691)] = 42739, - [SMALL_STATE(692)] = 42812, - [SMALL_STATE(693)] = 42885, - [SMALL_STATE(694)] = 42958, - [SMALL_STATE(695)] = 43031, - [SMALL_STATE(696)] = 43079, - [SMALL_STATE(697)] = 43127, - [SMALL_STATE(698)] = 43175, - [SMALL_STATE(699)] = 43223, - [SMALL_STATE(700)] = 43270, - [SMALL_STATE(701)] = 43317, - [SMALL_STATE(702)] = 43364, - [SMALL_STATE(703)] = 43411, - [SMALL_STATE(704)] = 43458, - [SMALL_STATE(705)] = 43505, - [SMALL_STATE(706)] = 43552, - [SMALL_STATE(707)] = 43599, - [SMALL_STATE(708)] = 43646, - [SMALL_STATE(709)] = 43693, - [SMALL_STATE(710)] = 43740, - [SMALL_STATE(711)] = 43787, - [SMALL_STATE(712)] = 43834, - [SMALL_STATE(713)] = 43881, - [SMALL_STATE(714)] = 43928, - [SMALL_STATE(715)] = 43975, - [SMALL_STATE(716)] = 44022, - [SMALL_STATE(717)] = 44069, - [SMALL_STATE(718)] = 44116, - [SMALL_STATE(719)] = 44163, - [SMALL_STATE(720)] = 44244, - [SMALL_STATE(721)] = 44291, - [SMALL_STATE(722)] = 44338, - [SMALL_STATE(723)] = 44385, - [SMALL_STATE(724)] = 44432, - [SMALL_STATE(725)] = 44479, - [SMALL_STATE(726)] = 44560, - [SMALL_STATE(727)] = 44607, - [SMALL_STATE(728)] = 44654, - [SMALL_STATE(729)] = 44701, - [SMALL_STATE(730)] = 44748, - [SMALL_STATE(731)] = 44795, - [SMALL_STATE(732)] = 44842, - [SMALL_STATE(733)] = 44889, - [SMALL_STATE(734)] = 44936, - [SMALL_STATE(735)] = 44996, - [SMALL_STATE(736)] = 45052, - [SMALL_STATE(737)] = 45108, - [SMALL_STATE(738)] = 45170, - [SMALL_STATE(739)] = 45240, - [SMALL_STATE(740)] = 45308, - [SMALL_STATE(741)] = 45368, - [SMALL_STATE(742)] = 45424, - [SMALL_STATE(743)] = 45490, - [SMALL_STATE(744)] = 45554, - [SMALL_STATE(745)] = 45604, - [SMALL_STATE(746)] = 45654, - [SMALL_STATE(747)] = 45704, - [SMALL_STATE(748)] = 45754, - [SMALL_STATE(749)] = 45824, - [SMALL_STATE(750)] = 45894, - [SMALL_STATE(751)] = 45950, - [SMALL_STATE(752)] = 46012, - [SMALL_STATE(753)] = 46082, - [SMALL_STATE(754)] = 46150, - [SMALL_STATE(755)] = 46206, - [SMALL_STATE(756)] = 46272, - [SMALL_STATE(757)] = 46336, - [SMALL_STATE(758)] = 46406, - [SMALL_STATE(759)] = 46476, - [SMALL_STATE(760)] = 46532, - [SMALL_STATE(761)] = 46588, - [SMALL_STATE(762)] = 46644, - [SMALL_STATE(763)] = 46693, - [SMALL_STATE(764)] = 46742, - [SMALL_STATE(765)] = 46787, - [SMALL_STATE(766)] = 46836, - [SMALL_STATE(767)] = 46915, - [SMALL_STATE(768)] = 46964, - [SMALL_STATE(769)] = 47013, - [SMALL_STATE(770)] = 47062, - [SMALL_STATE(771)] = 47111, - [SMALL_STATE(772)] = 47160, - [SMALL_STATE(773)] = 47237, - [SMALL_STATE(774)] = 47284, - [SMALL_STATE(775)] = 47331, - [SMALL_STATE(776)] = 47380, - [SMALL_STATE(777)] = 47429, - [SMALL_STATE(778)] = 47474, - [SMALL_STATE(779)] = 47523, - [SMALL_STATE(780)] = 47602, - [SMALL_STATE(781)] = 47649, - [SMALL_STATE(782)] = 47696, - [SMALL_STATE(783)] = 47745, - [SMALL_STATE(784)] = 47803, - [SMALL_STATE(785)] = 47857, - [SMALL_STATE(786)] = 47911, - [SMALL_STATE(787)] = 47965, - [SMALL_STATE(788)] = 48025, - [SMALL_STATE(789)] = 48093, - [SMALL_STATE(790)] = 48159, - [SMALL_STATE(791)] = 48213, - [SMALL_STATE(792)] = 48267, - [SMALL_STATE(793)] = 48331, - [SMALL_STATE(794)] = 48393, - [SMALL_STATE(795)] = 48441, - [SMALL_STATE(796)] = 48489, - [SMALL_STATE(797)] = 48543, - [SMALL_STATE(798)] = 48611, - [SMALL_STATE(799)] = 48679, - [SMALL_STATE(800)] = 48739, - [SMALL_STATE(801)] = 48807, - [SMALL_STATE(802)] = 48873, - [SMALL_STATE(803)] = 48931, - [SMALL_STATE(804)] = 48985, - [SMALL_STATE(805)] = 49049, - [SMALL_STATE(806)] = 49111, - [SMALL_STATE(807)] = 49155, - [SMALL_STATE(808)] = 49199, - [SMALL_STATE(809)] = 49243, - [SMALL_STATE(810)] = 49287, - [SMALL_STATE(811)] = 49341, - [SMALL_STATE(812)] = 49395, - [SMALL_STATE(813)] = 49449, - [SMALL_STATE(814)] = 49509, - [SMALL_STATE(815)] = 49577, - [SMALL_STATE(816)] = 49643, - [SMALL_STATE(817)] = 49701, - [SMALL_STATE(818)] = 49755, - [SMALL_STATE(819)] = 49819, - [SMALL_STATE(820)] = 49881, - [SMALL_STATE(821)] = 49949, - [SMALL_STATE(822)] = 50017, - [SMALL_STATE(823)] = 50093, - [SMALL_STATE(824)] = 50161, - [SMALL_STATE(825)] = 50229, - [SMALL_STATE(826)] = 50283, - [SMALL_STATE(827)] = 50328, - [SMALL_STATE(828)] = 50371, - [SMALL_STATE(829)] = 50424, - [SMALL_STATE(830)] = 50483, - [SMALL_STATE(831)] = 50526, - [SMALL_STATE(832)] = 50593, - [SMALL_STATE(833)] = 50658, - [SMALL_STATE(834)] = 50715, - [SMALL_STATE(835)] = 50760, - [SMALL_STATE(836)] = 50813, - [SMALL_STATE(837)] = 50876, - [SMALL_STATE(838)] = 50937, - [SMALL_STATE(839)] = 50982, - [SMALL_STATE(840)] = 51029, - [SMALL_STATE(841)] = 51074, - [SMALL_STATE(842)] = 51117, - [SMALL_STATE(843)] = 51162, - [SMALL_STATE(844)] = 51229, - [SMALL_STATE(845)] = 51296, - [SMALL_STATE(846)] = 51349, - [SMALL_STATE(847)] = 51430, - [SMALL_STATE(848)] = 51473, - [SMALL_STATE(849)] = 51526, - [SMALL_STATE(850)] = 51571, - [SMALL_STATE(851)] = 51614, - [SMALL_STATE(852)] = 51657, - [SMALL_STATE(853)] = 51704, - [SMALL_STATE(854)] = 51749, - [SMALL_STATE(855)] = 51830, - [SMALL_STATE(856)] = 51875, - [SMALL_STATE(857)] = 51956, - [SMALL_STATE(858)] = 52001, - [SMALL_STATE(859)] = 52048, - [SMALL_STATE(860)] = 52091, - [SMALL_STATE(861)] = 52136, - [SMALL_STATE(862)] = 52179, - [SMALL_STATE(863)] = 52260, - [SMALL_STATE(864)] = 52305, - [SMALL_STATE(865)] = 52352, - [SMALL_STATE(866)] = 52397, - [SMALL_STATE(867)] = 52439, - [SMALL_STATE(868)] = 52481, - [SMALL_STATE(869)] = 52523, - [SMALL_STATE(870)] = 52565, - [SMALL_STATE(871)] = 52607, - [SMALL_STATE(872)] = 52649, - [SMALL_STATE(873)] = 52691, - [SMALL_STATE(874)] = 52733, - [SMALL_STATE(875)] = 52775, - [SMALL_STATE(876)] = 52817, - [SMALL_STATE(877)] = 52859, - [SMALL_STATE(878)] = 52901, - [SMALL_STATE(879)] = 52943, - [SMALL_STATE(880)] = 52985, - [SMALL_STATE(881)] = 53027, - [SMALL_STATE(882)] = 53069, - [SMALL_STATE(883)] = 53111, - [SMALL_STATE(884)] = 53153, - [SMALL_STATE(885)] = 53195, - [SMALL_STATE(886)] = 53237, - [SMALL_STATE(887)] = 53279, - [SMALL_STATE(888)] = 53321, - [SMALL_STATE(889)] = 53363, - [SMALL_STATE(890)] = 53405, - [SMALL_STATE(891)] = 53447, - [SMALL_STATE(892)] = 53489, - [SMALL_STATE(893)] = 53531, - [SMALL_STATE(894)] = 53573, - [SMALL_STATE(895)] = 53615, - [SMALL_STATE(896)] = 53657, - [SMALL_STATE(897)] = 53699, - [SMALL_STATE(898)] = 53741, - [SMALL_STATE(899)] = 53783, - [SMALL_STATE(900)] = 53825, - [SMALL_STATE(901)] = 53867, - [SMALL_STATE(902)] = 53909, - [SMALL_STATE(903)] = 53951, - [SMALL_STATE(904)] = 53993, - [SMALL_STATE(905)] = 54035, - [SMALL_STATE(906)] = 54077, - [SMALL_STATE(907)] = 54119, - [SMALL_STATE(908)] = 54161, - [SMALL_STATE(909)] = 54203, - [SMALL_STATE(910)] = 54245, - [SMALL_STATE(911)] = 54287, - [SMALL_STATE(912)] = 54331, - [SMALL_STATE(913)] = 54375, - [SMALL_STATE(914)] = 54417, - [SMALL_STATE(915)] = 54459, - [SMALL_STATE(916)] = 54503, - [SMALL_STATE(917)] = 54545, - [SMALL_STATE(918)] = 54587, - [SMALL_STATE(919)] = 54629, - [SMALL_STATE(920)] = 54673, - [SMALL_STATE(921)] = 54715, - [SMALL_STATE(922)] = 54757, - [SMALL_STATE(923)] = 54799, - [SMALL_STATE(924)] = 54841, - [SMALL_STATE(925)] = 54883, - [SMALL_STATE(926)] = 54927, - [SMALL_STATE(927)] = 54969, - [SMALL_STATE(928)] = 55047, - [SMALL_STATE(929)] = 55125, - [SMALL_STATE(930)] = 55167, - [SMALL_STATE(931)] = 55209, - [SMALL_STATE(932)] = 55251, - [SMALL_STATE(933)] = 55331, - [SMALL_STATE(934)] = 55409, - [SMALL_STATE(935)] = 55487, - [SMALL_STATE(936)] = 55565, - [SMALL_STATE(937)] = 55607, - [SMALL_STATE(938)] = 55649, - [SMALL_STATE(939)] = 55691, - [SMALL_STATE(940)] = 55733, - [SMALL_STATE(941)] = 55775, - [SMALL_STATE(942)] = 55817, - [SMALL_STATE(943)] = 55859, - [SMALL_STATE(944)] = 55901, - [SMALL_STATE(945)] = 55943, - [SMALL_STATE(946)] = 55984, - [SMALL_STATE(947)] = 56025, - [SMALL_STATE(948)] = 56066, - [SMALL_STATE(949)] = 56107, - [SMALL_STATE(950)] = 56148, - [SMALL_STATE(951)] = 56189, - [SMALL_STATE(952)] = 56230, - [SMALL_STATE(953)] = 56271, - [SMALL_STATE(954)] = 56312, - [SMALL_STATE(955)] = 56353, - [SMALL_STATE(956)] = 56394, - [SMALL_STATE(957)] = 56435, - [SMALL_STATE(958)] = 56476, - [SMALL_STATE(959)] = 56517, - [SMALL_STATE(960)] = 56558, - [SMALL_STATE(961)] = 56599, - [SMALL_STATE(962)] = 56640, - [SMALL_STATE(963)] = 56681, - [SMALL_STATE(964)] = 56722, - [SMALL_STATE(965)] = 56801, - [SMALL_STATE(966)] = 56842, - [SMALL_STATE(967)] = 56883, - [SMALL_STATE(968)] = 56924, - [SMALL_STATE(969)] = 56965, - [SMALL_STATE(970)] = 57006, - [SMALL_STATE(971)] = 57047, - [SMALL_STATE(972)] = 57088, - [SMALL_STATE(973)] = 57133, - [SMALL_STATE(974)] = 57178, - [SMALL_STATE(975)] = 57219, - [SMALL_STATE(976)] = 57260, - [SMALL_STATE(977)] = 57301, - [SMALL_STATE(978)] = 57342, - [SMALL_STATE(979)] = 57383, - [SMALL_STATE(980)] = 57458, - [SMALL_STATE(981)] = 57537, - [SMALL_STATE(982)] = 57578, - [SMALL_STATE(983)] = 57657, - [SMALL_STATE(984)] = 57698, - [SMALL_STATE(985)] = 57771, - [SMALL_STATE(986)] = 57841, - [SMALL_STATE(987)] = 57911, - [SMALL_STATE(988)] = 57973, - [SMALL_STATE(989)] = 58035, - [SMALL_STATE(990)] = 58074, - [SMALL_STATE(991)] = 58113, - [SMALL_STATE(992)] = 58152, - [SMALL_STATE(993)] = 58191, - [SMALL_STATE(994)] = 58221, - [SMALL_STATE(995)] = 58274, - [SMALL_STATE(996)] = 58311, - [SMALL_STATE(997)] = 58364, - [SMALL_STATE(998)] = 58399, - [SMALL_STATE(999)] = 58424, - [SMALL_STATE(1000)] = 58449, - [SMALL_STATE(1001)] = 58478, - [SMALL_STATE(1002)] = 58507, - [SMALL_STATE(1003)] = 58544, - [SMALL_STATE(1004)] = 58581, - [SMALL_STATE(1005)] = 58606, - [SMALL_STATE(1006)] = 58631, - [SMALL_STATE(1007)] = 58668, - [SMALL_STATE(1008)] = 58703, - [SMALL_STATE(1009)] = 58756, - [SMALL_STATE(1010)] = 58790, - [SMALL_STATE(1011)] = 58818, - [SMALL_STATE(1012)] = 58852, - [SMALL_STATE(1013)] = 58898, - [SMALL_STATE(1014)] = 58929, - [SMALL_STATE(1015)] = 58972, - [SMALL_STATE(1016)] = 59015, - [SMALL_STATE(1017)] = 59058, - [SMALL_STATE(1018)] = 59101, - [SMALL_STATE(1019)] = 59144, - [SMALL_STATE(1020)] = 59187, - [SMALL_STATE(1021)] = 59230, - [SMALL_STATE(1022)] = 59274, - [SMALL_STATE(1023)] = 59314, - [SMALL_STATE(1024)] = 59351, - [SMALL_STATE(1025)] = 59376, - [SMALL_STATE(1026)] = 59413, - [SMALL_STATE(1027)] = 59450, - [SMALL_STATE(1028)] = 59487, - [SMALL_STATE(1029)] = 59521, - [SMALL_STATE(1030)] = 59555, - [SMALL_STATE(1031)] = 59576, - [SMALL_STATE(1032)] = 59597, - [SMALL_STATE(1033)] = 59619, - [SMALL_STATE(1034)] = 59650, - [SMALL_STATE(1035)] = 59687, - [SMALL_STATE(1036)] = 59718, - [SMALL_STATE(1037)] = 59749, - [SMALL_STATE(1038)] = 59780, - [SMALL_STATE(1039)] = 59803, - [SMALL_STATE(1040)] = 59824, - [SMALL_STATE(1041)] = 59845, - [SMALL_STATE(1042)] = 59882, - [SMALL_STATE(1043)] = 59905, - [SMALL_STATE(1044)] = 59936, - [SMALL_STATE(1045)] = 59967, - [SMALL_STATE(1046)] = 59998, - [SMALL_STATE(1047)] = 60035, - [SMALL_STATE(1048)] = 60066, - [SMALL_STATE(1049)] = 60097, - [SMALL_STATE(1050)] = 60114, - [SMALL_STATE(1051)] = 60145, - [SMALL_STATE(1052)] = 60176, - [SMALL_STATE(1053)] = 60207, - [SMALL_STATE(1054)] = 60238, - [SMALL_STATE(1055)] = 60269, - [SMALL_STATE(1056)] = 60300, - [SMALL_STATE(1057)] = 60331, - [SMALL_STATE(1058)] = 60362, - [SMALL_STATE(1059)] = 60393, - [SMALL_STATE(1060)] = 60424, - [SMALL_STATE(1061)] = 60461, - [SMALL_STATE(1062)] = 60498, - [SMALL_STATE(1063)] = 60520, - [SMALL_STATE(1064)] = 60538, - [SMALL_STATE(1065)] = 60562, - [SMALL_STATE(1066)] = 60582, - [SMALL_STATE(1067)] = 60616, - [SMALL_STATE(1068)] = 60650, - [SMALL_STATE(1069)] = 60670, - [SMALL_STATE(1070)] = 60692, - [SMALL_STATE(1071)] = 60714, - [SMALL_STATE(1072)] = 60736, - [SMALL_STATE(1073)] = 60754, - [SMALL_STATE(1074)] = 60788, - [SMALL_STATE(1075)] = 60812, - [SMALL_STATE(1076)] = 60846, - [SMALL_STATE(1077)] = 60880, - [SMALL_STATE(1078)] = 60900, - [SMALL_STATE(1079)] = 60918, - [SMALL_STATE(1080)] = 60952, - [SMALL_STATE(1081)] = 60986, - [SMALL_STATE(1082)] = 61020, - [SMALL_STATE(1083)] = 61042, - [SMALL_STATE(1084)] = 61076, - [SMALL_STATE(1085)] = 61110, - [SMALL_STATE(1086)] = 61134, - [SMALL_STATE(1087)] = 61168, - [SMALL_STATE(1088)] = 61190, - [SMALL_STATE(1089)] = 61224, - [SMALL_STATE(1090)] = 61244, - [SMALL_STATE(1091)] = 61263, - [SMALL_STATE(1092)] = 61282, - [SMALL_STATE(1093)] = 61305, - [SMALL_STATE(1094)] = 61330, - [SMALL_STATE(1095)] = 61349, - [SMALL_STATE(1096)] = 61374, - [SMALL_STATE(1097)] = 61395, - [SMALL_STATE(1098)] = 61414, - [SMALL_STATE(1099)] = 61433, - [SMALL_STATE(1100)] = 61456, - [SMALL_STATE(1101)] = 61479, - [SMALL_STATE(1102)] = 61498, - [SMALL_STATE(1103)] = 61518, - [SMALL_STATE(1104)] = 61538, - [SMALL_STATE(1105)] = 61556, - [SMALL_STATE(1106)] = 61572, - [SMALL_STATE(1107)] = 61590, - [SMALL_STATE(1108)] = 61610, - [SMALL_STATE(1109)] = 61630, - [SMALL_STATE(1110)] = 61650, - [SMALL_STATE(1111)] = 61664, - [SMALL_STATE(1112)] = 61682, - [SMALL_STATE(1113)] = 61702, - [SMALL_STATE(1114)] = 61726, - [SMALL_STATE(1115)] = 61740, - [SMALL_STATE(1116)] = 61754, - [SMALL_STATE(1117)] = 61768, - [SMALL_STATE(1118)] = 61788, - [SMALL_STATE(1119)] = 61812, - [SMALL_STATE(1120)] = 61826, - [SMALL_STATE(1121)] = 61840, - [SMALL_STATE(1122)] = 61856, - [SMALL_STATE(1123)] = 61882, - [SMALL_STATE(1124)] = 61900, - [SMALL_STATE(1125)] = 61914, - [SMALL_STATE(1126)] = 61934, - [SMALL_STATE(1127)] = 61948, - [SMALL_STATE(1128)] = 61962, - [SMALL_STATE(1129)] = 61980, - [SMALL_STATE(1130)] = 61994, - [SMALL_STATE(1131)] = 62008, - [SMALL_STATE(1132)] = 62022, - [SMALL_STATE(1133)] = 62036, - [SMALL_STATE(1134)] = 62058, - [SMALL_STATE(1135)] = 62072, - [SMALL_STATE(1136)] = 62086, - [SMALL_STATE(1137)] = 62104, - [SMALL_STATE(1138)] = 62118, - [SMALL_STATE(1139)] = 62132, - [SMALL_STATE(1140)] = 62154, - [SMALL_STATE(1141)] = 62168, - [SMALL_STATE(1142)] = 62188, - [SMALL_STATE(1143)] = 62204, - [SMALL_STATE(1144)] = 62218, - [SMALL_STATE(1145)] = 62238, - [SMALL_STATE(1146)] = 62256, - [SMALL_STATE(1147)] = 62274, - [SMALL_STATE(1148)] = 62296, - [SMALL_STATE(1149)] = 62320, - [SMALL_STATE(1150)] = 62338, - [SMALL_STATE(1151)] = 62358, - [SMALL_STATE(1152)] = 62376, - [SMALL_STATE(1153)] = 62392, - [SMALL_STATE(1154)] = 62410, - [SMALL_STATE(1155)] = 62424, - [SMALL_STATE(1156)] = 62442, - [SMALL_STATE(1157)] = 62462, - [SMALL_STATE(1158)] = 62482, - [SMALL_STATE(1159)] = 62496, - [SMALL_STATE(1160)] = 62510, - [SMALL_STATE(1161)] = 62524, - [SMALL_STATE(1162)] = 62538, - [SMALL_STATE(1163)] = 62556, - [SMALL_STATE(1164)] = 62574, - [SMALL_STATE(1165)] = 62594, - [SMALL_STATE(1166)] = 62612, - [SMALL_STATE(1167)] = 62632, - [SMALL_STATE(1168)] = 62646, - [SMALL_STATE(1169)] = 62660, - [SMALL_STATE(1170)] = 62685, - [SMALL_STATE(1171)] = 62710, - [SMALL_STATE(1172)] = 62731, - [SMALL_STATE(1173)] = 62750, - [SMALL_STATE(1174)] = 62771, - [SMALL_STATE(1175)] = 62790, - [SMALL_STATE(1176)] = 62813, - [SMALL_STATE(1177)] = 62826, - [SMALL_STATE(1178)] = 62849, - [SMALL_STATE(1179)] = 62862, - [SMALL_STATE(1180)] = 62885, - [SMALL_STATE(1181)] = 62908, - [SMALL_STATE(1182)] = 62929, - [SMALL_STATE(1183)] = 62948, - [SMALL_STATE(1184)] = 62967, - [SMALL_STATE(1185)] = 62982, - [SMALL_STATE(1186)] = 63005, - [SMALL_STATE(1187)] = 63030, - [SMALL_STATE(1188)] = 63051, - [SMALL_STATE(1189)] = 63068, - [SMALL_STATE(1190)] = 63087, - [SMALL_STATE(1191)] = 63112, - [SMALL_STATE(1192)] = 63131, - [SMALL_STATE(1193)] = 63150, - [SMALL_STATE(1194)] = 63167, - [SMALL_STATE(1195)] = 63182, - [SMALL_STATE(1196)] = 63199, - [SMALL_STATE(1197)] = 63212, - [SMALL_STATE(1198)] = 63235, - [SMALL_STATE(1199)] = 63260, - [SMALL_STATE(1200)] = 63279, - [SMALL_STATE(1201)] = 63300, - [SMALL_STATE(1202)] = 63323, - [SMALL_STATE(1203)] = 63346, - [SMALL_STATE(1204)] = 63359, - [SMALL_STATE(1205)] = 63384, - [SMALL_STATE(1206)] = 63409, - [SMALL_STATE(1207)] = 63428, - [SMALL_STATE(1208)] = 63453, - [SMALL_STATE(1209)] = 63472, - [SMALL_STATE(1210)] = 63491, - [SMALL_STATE(1211)] = 63504, - [SMALL_STATE(1212)] = 63517, - [SMALL_STATE(1213)] = 63542, - [SMALL_STATE(1214)] = 63565, - [SMALL_STATE(1215)] = 63584, - [SMALL_STATE(1216)] = 63600, - [SMALL_STATE(1217)] = 63616, - [SMALL_STATE(1218)] = 63630, - [SMALL_STATE(1219)] = 63644, - [SMALL_STATE(1220)] = 63660, - [SMALL_STATE(1221)] = 63680, - [SMALL_STATE(1222)] = 63696, - [SMALL_STATE(1223)] = 63712, - [SMALL_STATE(1224)] = 63726, - [SMALL_STATE(1225)] = 63744, - [SMALL_STATE(1226)] = 63766, - [SMALL_STATE(1227)] = 63784, - [SMALL_STATE(1228)] = 63802, - [SMALL_STATE(1229)] = 63820, - [SMALL_STATE(1230)] = 63836, - [SMALL_STATE(1231)] = 63858, - [SMALL_STATE(1232)] = 63876, - [SMALL_STATE(1233)] = 63892, - [SMALL_STATE(1234)] = 63908, - [SMALL_STATE(1235)] = 63924, - [SMALL_STATE(1236)] = 63946, - [SMALL_STATE(1237)] = 63968, - [SMALL_STATE(1238)] = 63990, - [SMALL_STATE(1239)] = 64008, - [SMALL_STATE(1240)] = 64020, - [SMALL_STATE(1241)] = 64042, - [SMALL_STATE(1242)] = 64058, - [SMALL_STATE(1243)] = 64074, - [SMALL_STATE(1244)] = 64092, - [SMALL_STATE(1245)] = 64104, - [SMALL_STATE(1246)] = 64118, - [SMALL_STATE(1247)] = 64138, - [SMALL_STATE(1248)] = 64158, - [SMALL_STATE(1249)] = 64174, - [SMALL_STATE(1250)] = 64194, - [SMALL_STATE(1251)] = 64212, - [SMALL_STATE(1252)] = 64228, - [SMALL_STATE(1253)] = 64242, - [SMALL_STATE(1254)] = 64256, - [SMALL_STATE(1255)] = 64278, - [SMALL_STATE(1256)] = 64295, - [SMALL_STATE(1257)] = 64314, - [SMALL_STATE(1258)] = 64329, - [SMALL_STATE(1259)] = 64346, - [SMALL_STATE(1260)] = 64361, - [SMALL_STATE(1261)] = 64376, - [SMALL_STATE(1262)] = 64393, - [SMALL_STATE(1263)] = 64410, - [SMALL_STATE(1264)] = 64421, - [SMALL_STATE(1265)] = 64438, - [SMALL_STATE(1266)] = 64457, - [SMALL_STATE(1267)] = 64474, - [SMALL_STATE(1268)] = 64485, - [SMALL_STATE(1269)] = 64502, - [SMALL_STATE(1270)] = 64519, - [SMALL_STATE(1271)] = 64534, - [SMALL_STATE(1272)] = 64551, - [SMALL_STATE(1273)] = 64570, - [SMALL_STATE(1274)] = 64581, - [SMALL_STATE(1275)] = 64598, - [SMALL_STATE(1276)] = 64615, - [SMALL_STATE(1277)] = 64632, - [SMALL_STATE(1278)] = 64643, - [SMALL_STATE(1279)] = 64658, - [SMALL_STATE(1280)] = 64675, - [SMALL_STATE(1281)] = 64690, - [SMALL_STATE(1282)] = 64709, - [SMALL_STATE(1283)] = 64726, - [SMALL_STATE(1284)] = 64745, - [SMALL_STATE(1285)] = 64764, - [SMALL_STATE(1286)] = 64781, - [SMALL_STATE(1287)] = 64796, - [SMALL_STATE(1288)] = 64815, - [SMALL_STATE(1289)] = 64834, - [SMALL_STATE(1290)] = 64845, - [SMALL_STATE(1291)] = 64862, - [SMALL_STATE(1292)] = 64879, - [SMALL_STATE(1293)] = 64896, - [SMALL_STATE(1294)] = 64910, - [SMALL_STATE(1295)] = 64924, - [SMALL_STATE(1296)] = 64940, - [SMALL_STATE(1297)] = 64956, - [SMALL_STATE(1298)] = 64972, - [SMALL_STATE(1299)] = 64986, - [SMALL_STATE(1300)] = 65000, - [SMALL_STATE(1301)] = 65010, - [SMALL_STATE(1302)] = 65026, - [SMALL_STATE(1303)] = 65042, - [SMALL_STATE(1304)] = 65058, - [SMALL_STATE(1305)] = 65072, - [SMALL_STATE(1306)] = 65086, - [SMALL_STATE(1307)] = 65098, - [SMALL_STATE(1308)] = 65114, - [SMALL_STATE(1309)] = 65124, - [SMALL_STATE(1310)] = 65138, - [SMALL_STATE(1311)] = 65154, - [SMALL_STATE(1312)] = 65170, - [SMALL_STATE(1313)] = 65186, - [SMALL_STATE(1314)] = 65196, - [SMALL_STATE(1315)] = 65206, - [SMALL_STATE(1316)] = 65216, - [SMALL_STATE(1317)] = 65230, - [SMALL_STATE(1318)] = 65244, - [SMALL_STATE(1319)] = 65258, - [SMALL_STATE(1320)] = 65272, - [SMALL_STATE(1321)] = 65286, - [SMALL_STATE(1322)] = 65302, - [SMALL_STATE(1323)] = 65318, - [SMALL_STATE(1324)] = 65334, - [SMALL_STATE(1325)] = 65350, - [SMALL_STATE(1326)] = 65364, - [SMALL_STATE(1327)] = 65378, - [SMALL_STATE(1328)] = 65392, - [SMALL_STATE(1329)] = 65408, - [SMALL_STATE(1330)] = 65424, - [SMALL_STATE(1331)] = 65440, - [SMALL_STATE(1332)] = 65456, - [SMALL_STATE(1333)] = 65472, - [SMALL_STATE(1334)] = 65488, - [SMALL_STATE(1335)] = 65504, - [SMALL_STATE(1336)] = 65520, - [SMALL_STATE(1337)] = 65534, - [SMALL_STATE(1338)] = 65548, - [SMALL_STATE(1339)] = 65562, - [SMALL_STATE(1340)] = 65578, - [SMALL_STATE(1341)] = 65592, - [SMALL_STATE(1342)] = 65604, - [SMALL_STATE(1343)] = 65618, - [SMALL_STATE(1344)] = 65634, - [SMALL_STATE(1345)] = 65648, - [SMALL_STATE(1346)] = 65664, - [SMALL_STATE(1347)] = 65680, - [SMALL_STATE(1348)] = 65696, - [SMALL_STATE(1349)] = 65712, - [SMALL_STATE(1350)] = 65728, - [SMALL_STATE(1351)] = 65744, - [SMALL_STATE(1352)] = 65760, - [SMALL_STATE(1353)] = 65776, - [SMALL_STATE(1354)] = 65790, - [SMALL_STATE(1355)] = 65804, - [SMALL_STATE(1356)] = 65818, - [SMALL_STATE(1357)] = 65832, - [SMALL_STATE(1358)] = 65848, - [SMALL_STATE(1359)] = 65858, - [SMALL_STATE(1360)] = 65872, - [SMALL_STATE(1361)] = 65886, - [SMALL_STATE(1362)] = 65902, - [SMALL_STATE(1363)] = 65916, - [SMALL_STATE(1364)] = 65930, - [SMALL_STATE(1365)] = 65944, - [SMALL_STATE(1366)] = 65958, - [SMALL_STATE(1367)] = 65974, - [SMALL_STATE(1368)] = 65990, - [SMALL_STATE(1369)] = 66004, - [SMALL_STATE(1370)] = 66020, - [SMALL_STATE(1371)] = 66036, - [SMALL_STATE(1372)] = 66050, - [SMALL_STATE(1373)] = 66064, - [SMALL_STATE(1374)] = 66080, - [SMALL_STATE(1375)] = 66093, - [SMALL_STATE(1376)] = 66106, - [SMALL_STATE(1377)] = 66119, - [SMALL_STATE(1378)] = 66132, - [SMALL_STATE(1379)] = 66145, - [SMALL_STATE(1380)] = 66154, - [SMALL_STATE(1381)] = 66165, - [SMALL_STATE(1382)] = 66178, - [SMALL_STATE(1383)] = 66189, - [SMALL_STATE(1384)] = 66202, - [SMALL_STATE(1385)] = 66215, - [SMALL_STATE(1386)] = 66228, - [SMALL_STATE(1387)] = 66241, - [SMALL_STATE(1388)] = 66254, - [SMALL_STATE(1389)] = 66267, - [SMALL_STATE(1390)] = 66280, - [SMALL_STATE(1391)] = 66293, - [SMALL_STATE(1392)] = 66304, - [SMALL_STATE(1393)] = 66317, - [SMALL_STATE(1394)] = 66328, - [SMALL_STATE(1395)] = 66337, - [SMALL_STATE(1396)] = 66350, - [SMALL_STATE(1397)] = 66363, - [SMALL_STATE(1398)] = 66376, - [SMALL_STATE(1399)] = 66389, - [SMALL_STATE(1400)] = 66402, - [SMALL_STATE(1401)] = 66415, - [SMALL_STATE(1402)] = 66428, - [SMALL_STATE(1403)] = 66441, - [SMALL_STATE(1404)] = 66454, - [SMALL_STATE(1405)] = 66463, - [SMALL_STATE(1406)] = 66476, - [SMALL_STATE(1407)] = 66487, - [SMALL_STATE(1408)] = 66500, - [SMALL_STATE(1409)] = 66513, - [SMALL_STATE(1410)] = 66526, - [SMALL_STATE(1411)] = 66539, - [SMALL_STATE(1412)] = 66552, - [SMALL_STATE(1413)] = 66565, - [SMALL_STATE(1414)] = 66578, - [SMALL_STATE(1415)] = 66591, - [SMALL_STATE(1416)] = 66604, - [SMALL_STATE(1417)] = 66617, - [SMALL_STATE(1418)] = 66630, - [SMALL_STATE(1419)] = 66643, - [SMALL_STATE(1420)] = 66656, - [SMALL_STATE(1421)] = 66665, - [SMALL_STATE(1422)] = 66674, - [SMALL_STATE(1423)] = 66687, - [SMALL_STATE(1424)] = 66700, - [SMALL_STATE(1425)] = 66713, - [SMALL_STATE(1426)] = 66726, - [SMALL_STATE(1427)] = 66739, - [SMALL_STATE(1428)] = 66752, - [SMALL_STATE(1429)] = 66765, - [SMALL_STATE(1430)] = 66778, - [SMALL_STATE(1431)] = 66791, - [SMALL_STATE(1432)] = 66804, - [SMALL_STATE(1433)] = 66817, - [SMALL_STATE(1434)] = 66830, - [SMALL_STATE(1435)] = 66843, - [SMALL_STATE(1436)] = 66856, - [SMALL_STATE(1437)] = 66869, - [SMALL_STATE(1438)] = 66882, - [SMALL_STATE(1439)] = 66895, - [SMALL_STATE(1440)] = 66908, - [SMALL_STATE(1441)] = 66921, - [SMALL_STATE(1442)] = 66934, - [SMALL_STATE(1443)] = 66945, - [SMALL_STATE(1444)] = 66958, - [SMALL_STATE(1445)] = 66967, - [SMALL_STATE(1446)] = 66976, - [SMALL_STATE(1447)] = 66985, - [SMALL_STATE(1448)] = 66994, - [SMALL_STATE(1449)] = 67007, - [SMALL_STATE(1450)] = 67020, - [SMALL_STATE(1451)] = 67033, - [SMALL_STATE(1452)] = 67046, - [SMALL_STATE(1453)] = 67059, - [SMALL_STATE(1454)] = 67072, - [SMALL_STATE(1455)] = 67085, - [SMALL_STATE(1456)] = 67096, - [SMALL_STATE(1457)] = 67109, - [SMALL_STATE(1458)] = 67122, - [SMALL_STATE(1459)] = 67135, - [SMALL_STATE(1460)] = 67148, - [SMALL_STATE(1461)] = 67161, - [SMALL_STATE(1462)] = 67174, - [SMALL_STATE(1463)] = 67187, - [SMALL_STATE(1464)] = 67196, - [SMALL_STATE(1465)] = 67205, - [SMALL_STATE(1466)] = 67214, - [SMALL_STATE(1467)] = 67227, - [SMALL_STATE(1468)] = 67240, - [SMALL_STATE(1469)] = 67253, - [SMALL_STATE(1470)] = 67266, - [SMALL_STATE(1471)] = 67275, - [SMALL_STATE(1472)] = 67288, - [SMALL_STATE(1473)] = 67301, - [SMALL_STATE(1474)] = 67314, - [SMALL_STATE(1475)] = 67327, - [SMALL_STATE(1476)] = 67338, - [SMALL_STATE(1477)] = 67351, - [SMALL_STATE(1478)] = 67364, - [SMALL_STATE(1479)] = 67377, - [SMALL_STATE(1480)] = 67388, - [SMALL_STATE(1481)] = 67401, - [SMALL_STATE(1482)] = 67414, - [SMALL_STATE(1483)] = 67425, - [SMALL_STATE(1484)] = 67438, - [SMALL_STATE(1485)] = 67451, - [SMALL_STATE(1486)] = 67464, - [SMALL_STATE(1487)] = 67473, - [SMALL_STATE(1488)] = 67486, - [SMALL_STATE(1489)] = 67499, - [SMALL_STATE(1490)] = 67512, - [SMALL_STATE(1491)] = 67525, - [SMALL_STATE(1492)] = 67538, - [SMALL_STATE(1493)] = 67551, - [SMALL_STATE(1494)] = 67564, - [SMALL_STATE(1495)] = 67577, - [SMALL_STATE(1496)] = 67590, - [SMALL_STATE(1497)] = 67603, - [SMALL_STATE(1498)] = 67614, - [SMALL_STATE(1499)] = 67627, - [SMALL_STATE(1500)] = 67640, - [SMALL_STATE(1501)] = 67653, - [SMALL_STATE(1502)] = 67662, - [SMALL_STATE(1503)] = 67673, - [SMALL_STATE(1504)] = 67686, - [SMALL_STATE(1505)] = 67699, - [SMALL_STATE(1506)] = 67712, - [SMALL_STATE(1507)] = 67725, - [SMALL_STATE(1508)] = 67733, - [SMALL_STATE(1509)] = 67741, - [SMALL_STATE(1510)] = 67751, - [SMALL_STATE(1511)] = 67761, - [SMALL_STATE(1512)] = 67771, - [SMALL_STATE(1513)] = 67781, - [SMALL_STATE(1514)] = 67791, - [SMALL_STATE(1515)] = 67799, - [SMALL_STATE(1516)] = 67807, - [SMALL_STATE(1517)] = 67815, - [SMALL_STATE(1518)] = 67823, - [SMALL_STATE(1519)] = 67831, - [SMALL_STATE(1520)] = 67839, - [SMALL_STATE(1521)] = 67847, - [SMALL_STATE(1522)] = 67855, - [SMALL_STATE(1523)] = 67863, - [SMALL_STATE(1524)] = 67871, - [SMALL_STATE(1525)] = 67879, - [SMALL_STATE(1526)] = 67887, - [SMALL_STATE(1527)] = 67895, - [SMALL_STATE(1528)] = 67903, - [SMALL_STATE(1529)] = 67911, - [SMALL_STATE(1530)] = 67919, - [SMALL_STATE(1531)] = 67927, - [SMALL_STATE(1532)] = 67935, - [SMALL_STATE(1533)] = 67943, - [SMALL_STATE(1534)] = 67951, - [SMALL_STATE(1535)] = 67959, - [SMALL_STATE(1536)] = 67967, - [SMALL_STATE(1537)] = 67975, - [SMALL_STATE(1538)] = 67983, - [SMALL_STATE(1539)] = 67991, - [SMALL_STATE(1540)] = 68001, - [SMALL_STATE(1541)] = 68009, - [SMALL_STATE(1542)] = 68019, - [SMALL_STATE(1543)] = 68027, - [SMALL_STATE(1544)] = 68037, - [SMALL_STATE(1545)] = 68047, - [SMALL_STATE(1546)] = 68055, - [SMALL_STATE(1547)] = 68065, - [SMALL_STATE(1548)] = 68073, - [SMALL_STATE(1549)] = 68083, - [SMALL_STATE(1550)] = 68093, - [SMALL_STATE(1551)] = 68103, - [SMALL_STATE(1552)] = 68111, - [SMALL_STATE(1553)] = 68121, - [SMALL_STATE(1554)] = 68131, - [SMALL_STATE(1555)] = 68141, - [SMALL_STATE(1556)] = 68149, - [SMALL_STATE(1557)] = 68159, - [SMALL_STATE(1558)] = 68169, - [SMALL_STATE(1559)] = 68177, - [SMALL_STATE(1560)] = 68187, - [SMALL_STATE(1561)] = 68197, - [SMALL_STATE(1562)] = 68207, - [SMALL_STATE(1563)] = 68217, - [SMALL_STATE(1564)] = 68225, - [SMALL_STATE(1565)] = 68235, - [SMALL_STATE(1566)] = 68245, - [SMALL_STATE(1567)] = 68255, - [SMALL_STATE(1568)] = 68265, - [SMALL_STATE(1569)] = 68273, - [SMALL_STATE(1570)] = 68283, - [SMALL_STATE(1571)] = 68291, - [SMALL_STATE(1572)] = 68299, - [SMALL_STATE(1573)] = 68307, - [SMALL_STATE(1574)] = 68315, - [SMALL_STATE(1575)] = 68325, - [SMALL_STATE(1576)] = 68333, - [SMALL_STATE(1577)] = 68343, - [SMALL_STATE(1578)] = 68351, - [SMALL_STATE(1579)] = 68361, - [SMALL_STATE(1580)] = 68369, - [SMALL_STATE(1581)] = 68377, - [SMALL_STATE(1582)] = 68385, - [SMALL_STATE(1583)] = 68395, - [SMALL_STATE(1584)] = 68402, - [SMALL_STATE(1585)] = 68409, - [SMALL_STATE(1586)] = 68416, - [SMALL_STATE(1587)] = 68423, - [SMALL_STATE(1588)] = 68430, - [SMALL_STATE(1589)] = 68437, - [SMALL_STATE(1590)] = 68444, - [SMALL_STATE(1591)] = 68451, - [SMALL_STATE(1592)] = 68458, - [SMALL_STATE(1593)] = 68465, - [SMALL_STATE(1594)] = 68472, - [SMALL_STATE(1595)] = 68479, - [SMALL_STATE(1596)] = 68486, - [SMALL_STATE(1597)] = 68493, - [SMALL_STATE(1598)] = 68500, - [SMALL_STATE(1599)] = 68507, - [SMALL_STATE(1600)] = 68514, - [SMALL_STATE(1601)] = 68521, - [SMALL_STATE(1602)] = 68528, - [SMALL_STATE(1603)] = 68535, - [SMALL_STATE(1604)] = 68542, - [SMALL_STATE(1605)] = 68549, - [SMALL_STATE(1606)] = 68556, - [SMALL_STATE(1607)] = 68563, - [SMALL_STATE(1608)] = 68570, - [SMALL_STATE(1609)] = 68577, - [SMALL_STATE(1610)] = 68584, - [SMALL_STATE(1611)] = 68591, - [SMALL_STATE(1612)] = 68598, - [SMALL_STATE(1613)] = 68605, - [SMALL_STATE(1614)] = 68612, - [SMALL_STATE(1615)] = 68619, - [SMALL_STATE(1616)] = 68626, - [SMALL_STATE(1617)] = 68633, - [SMALL_STATE(1618)] = 68640, - [SMALL_STATE(1619)] = 68647, - [SMALL_STATE(1620)] = 68654, - [SMALL_STATE(1621)] = 68661, - [SMALL_STATE(1622)] = 68668, - [SMALL_STATE(1623)] = 68675, - [SMALL_STATE(1624)] = 68682, - [SMALL_STATE(1625)] = 68689, - [SMALL_STATE(1626)] = 68696, - [SMALL_STATE(1627)] = 68703, - [SMALL_STATE(1628)] = 68710, - [SMALL_STATE(1629)] = 68717, - [SMALL_STATE(1630)] = 68724, - [SMALL_STATE(1631)] = 68731, - [SMALL_STATE(1632)] = 68738, - [SMALL_STATE(1633)] = 68745, - [SMALL_STATE(1634)] = 68752, - [SMALL_STATE(1635)] = 68759, - [SMALL_STATE(1636)] = 68766, - [SMALL_STATE(1637)] = 68773, - [SMALL_STATE(1638)] = 68780, - [SMALL_STATE(1639)] = 68787, - [SMALL_STATE(1640)] = 68794, - [SMALL_STATE(1641)] = 68801, - [SMALL_STATE(1642)] = 68808, - [SMALL_STATE(1643)] = 68815, - [SMALL_STATE(1644)] = 68822, - [SMALL_STATE(1645)] = 68829, - [SMALL_STATE(1646)] = 68836, - [SMALL_STATE(1647)] = 68843, - [SMALL_STATE(1648)] = 68850, - [SMALL_STATE(1649)] = 68857, - [SMALL_STATE(1650)] = 68864, - [SMALL_STATE(1651)] = 68871, - [SMALL_STATE(1652)] = 68878, - [SMALL_STATE(1653)] = 68885, - [SMALL_STATE(1654)] = 68892, - [SMALL_STATE(1655)] = 68899, - [SMALL_STATE(1656)] = 68906, - [SMALL_STATE(1657)] = 68913, - [SMALL_STATE(1658)] = 68920, - [SMALL_STATE(1659)] = 68927, - [SMALL_STATE(1660)] = 68934, - [SMALL_STATE(1661)] = 68941, - [SMALL_STATE(1662)] = 68948, - [SMALL_STATE(1663)] = 68955, - [SMALL_STATE(1664)] = 68962, - [SMALL_STATE(1665)] = 68969, - [SMALL_STATE(1666)] = 68976, - [SMALL_STATE(1667)] = 68983, - [SMALL_STATE(1668)] = 68990, - [SMALL_STATE(1669)] = 68997, - [SMALL_STATE(1670)] = 69004, - [SMALL_STATE(1671)] = 69011, - [SMALL_STATE(1672)] = 69018, - [SMALL_STATE(1673)] = 69025, - [SMALL_STATE(1674)] = 69032, - [SMALL_STATE(1675)] = 69039, - [SMALL_STATE(1676)] = 69046, - [SMALL_STATE(1677)] = 69053, - [SMALL_STATE(1678)] = 69060, - [SMALL_STATE(1679)] = 69067, - [SMALL_STATE(1680)] = 69074, - [SMALL_STATE(1681)] = 69081, - [SMALL_STATE(1682)] = 69088, - [SMALL_STATE(1683)] = 69095, - [SMALL_STATE(1684)] = 69102, - [SMALL_STATE(1685)] = 69109, - [SMALL_STATE(1686)] = 69116, - [SMALL_STATE(1687)] = 69123, - [SMALL_STATE(1688)] = 69130, - [SMALL_STATE(1689)] = 69137, - [SMALL_STATE(1690)] = 69144, - [SMALL_STATE(1691)] = 69151, - [SMALL_STATE(1692)] = 69158, - [SMALL_STATE(1693)] = 69165, - [SMALL_STATE(1694)] = 69172, - [SMALL_STATE(1695)] = 69179, - [SMALL_STATE(1696)] = 69186, - [SMALL_STATE(1697)] = 69193, - [SMALL_STATE(1698)] = 69200, - [SMALL_STATE(1699)] = 69207, - [SMALL_STATE(1700)] = 69214, - [SMALL_STATE(1701)] = 69221, - [SMALL_STATE(1702)] = 69228, - [SMALL_STATE(1703)] = 69235, - [SMALL_STATE(1704)] = 69242, - [SMALL_STATE(1705)] = 69249, - [SMALL_STATE(1706)] = 69256, - [SMALL_STATE(1707)] = 69263, - [SMALL_STATE(1708)] = 69270, - [SMALL_STATE(1709)] = 69277, - [SMALL_STATE(1710)] = 69284, - [SMALL_STATE(1711)] = 69291, - [SMALL_STATE(1712)] = 69298, - [SMALL_STATE(1713)] = 69305, - [SMALL_STATE(1714)] = 69312, - [SMALL_STATE(1715)] = 69319, - [SMALL_STATE(1716)] = 69326, - [SMALL_STATE(1717)] = 69333, - [SMALL_STATE(1718)] = 69340, - [SMALL_STATE(1719)] = 69347, - [SMALL_STATE(1720)] = 69354, - [SMALL_STATE(1721)] = 69361, - [SMALL_STATE(1722)] = 69368, + [SMALL_STATE(157)] = 123, + [SMALL_STATE(158)] = 248, + [SMALL_STATE(159)] = 375, + [SMALL_STATE(160)] = 486, + [SMALL_STATE(161)] = 597, + [SMALL_STATE(162)] = 720, + [SMALL_STATE(163)] = 845, + [SMALL_STATE(164)] = 968, + [SMALL_STATE(165)] = 1090, + [SMALL_STATE(166)] = 1212, + [SMALL_STATE(167)] = 1334, + [SMALL_STATE(168)] = 1456, + [SMALL_STATE(169)] = 1571, + [SMALL_STATE(170)] = 1686, + [SMALL_STATE(171)] = 1796, + [SMALL_STATE(172)] = 1906, + [SMALL_STATE(173)] = 2016, + [SMALL_STATE(174)] = 2127, + [SMALL_STATE(175)] = 2240, + [SMALL_STATE(176)] = 2353, + [SMALL_STATE(177)] = 2462, + [SMALL_STATE(178)] = 2575, + [SMALL_STATE(179)] = 2688, + [SMALL_STATE(180)] = 2801, + [SMALL_STATE(181)] = 2912, + [SMALL_STATE(182)] = 3021, + [SMALL_STATE(183)] = 3130, + [SMALL_STATE(184)] = 3239, + [SMALL_STATE(185)] = 3348, + [SMALL_STATE(186)] = 3457, + [SMALL_STATE(187)] = 3570, + [SMALL_STATE(188)] = 3685, + [SMALL_STATE(189)] = 3798, + [SMALL_STATE(190)] = 3908, + [SMALL_STATE(191)] = 4014, + [SMALL_STATE(192)] = 4124, + [SMALL_STATE(193)] = 4234, + [SMALL_STATE(194)] = 4344, + [SMALL_STATE(195)] = 4450, + [SMALL_STATE(196)] = 4560, + [SMALL_STATE(197)] = 4672, + [SMALL_STATE(198)] = 4782, + [SMALL_STATE(199)] = 4896, + [SMALL_STATE(200)] = 5008, + [SMALL_STATE(201)] = 5118, + [SMALL_STATE(202)] = 5228, + [SMALL_STATE(203)] = 5338, + [SMALL_STATE(204)] = 5448, + [SMALL_STATE(205)] = 5558, + [SMALL_STATE(206)] = 5668, + [SMALL_STATE(207)] = 5778, + [SMALL_STATE(208)] = 5884, + [SMALL_STATE(209)] = 5998, + [SMALL_STATE(210)] = 6108, + [SMALL_STATE(211)] = 6218, + [SMALL_STATE(212)] = 6332, + [SMALL_STATE(213)] = 6438, + [SMALL_STATE(214)] = 6548, + [SMALL_STATE(215)] = 6658, + [SMALL_STATE(216)] = 6768, + [SMALL_STATE(217)] = 6878, + [SMALL_STATE(218)] = 6988, + [SMALL_STATE(219)] = 7100, + [SMALL_STATE(220)] = 7210, + [SMALL_STATE(221)] = 7320, + [SMALL_STATE(222)] = 7430, + [SMALL_STATE(223)] = 7540, + [SMALL_STATE(224)] = 7650, + [SMALL_STATE(225)] = 7760, + [SMALL_STATE(226)] = 7872, + [SMALL_STATE(227)] = 7982, + [SMALL_STATE(228)] = 8094, + [SMALL_STATE(229)] = 8204, + [SMALL_STATE(230)] = 8314, + [SMALL_STATE(231)] = 8424, + [SMALL_STATE(232)] = 8536, + [SMALL_STATE(233)] = 8643, + [SMALL_STATE(234)] = 8750, + [SMALL_STATE(235)] = 8857, + [SMALL_STATE(236)] = 8964, + [SMALL_STATE(237)] = 9059, + [SMALL_STATE(238)] = 9166, + [SMALL_STATE(239)] = 9273, + [SMALL_STATE(240)] = 9380, + [SMALL_STATE(241)] = 9487, + [SMALL_STATE(242)] = 9594, + [SMALL_STATE(243)] = 9698, + [SMALL_STATE(244)] = 9802, + [SMALL_STATE(245)] = 9908, + [SMALL_STATE(246)] = 10014, + [SMALL_STATE(247)] = 10120, + [SMALL_STATE(248)] = 10226, + [SMALL_STATE(249)] = 10332, + [SMALL_STATE(250)] = 10435, + [SMALL_STATE(251)] = 10538, + [SMALL_STATE(252)] = 10641, + [SMALL_STATE(253)] = 10744, + [SMALL_STATE(254)] = 10847, + [SMALL_STATE(255)] = 10950, + [SMALL_STATE(256)] = 11053, + [SMALL_STATE(257)] = 11156, + [SMALL_STATE(258)] = 11259, + [SMALL_STATE(259)] = 11362, + [SMALL_STATE(260)] = 11465, + [SMALL_STATE(261)] = 11568, + [SMALL_STATE(262)] = 11671, + [SMALL_STATE(263)] = 11774, + [SMALL_STATE(264)] = 11877, + [SMALL_STATE(265)] = 11979, + [SMALL_STATE(266)] = 12081, + [SMALL_STATE(267)] = 12155, + [SMALL_STATE(268)] = 12257, + [SMALL_STATE(269)] = 12331, + [SMALL_STATE(270)] = 12405, + [SMALL_STATE(271)] = 12505, + [SMALL_STATE(272)] = 12579, + [SMALL_STATE(273)] = 12653, + [SMALL_STATE(274)] = 12727, + [SMALL_STATE(275)] = 12829, + [SMALL_STATE(276)] = 12931, + [SMALL_STATE(277)] = 13005, + [SMALL_STATE(278)] = 13107, + [SMALL_STATE(279)] = 13209, + [SMALL_STATE(280)] = 13283, + [SMALL_STATE(281)] = 13383, + [SMALL_STATE(282)] = 13485, + [SMALL_STATE(283)] = 13585, + [SMALL_STATE(284)] = 13687, + [SMALL_STATE(285)] = 13789, + [SMALL_STATE(286)] = 13891, + [SMALL_STATE(287)] = 13993, + [SMALL_STATE(288)] = 14095, + [SMALL_STATE(289)] = 14192, + [SMALL_STATE(290)] = 14289, + [SMALL_STATE(291)] = 14386, + [SMALL_STATE(292)] = 14483, + [SMALL_STATE(293)] = 14580, + [SMALL_STATE(294)] = 14677, + [SMALL_STATE(295)] = 14774, + [SMALL_STATE(296)] = 14873, + [SMALL_STATE(297)] = 14972, + [SMALL_STATE(298)] = 15071, + [SMALL_STATE(299)] = 15168, + [SMALL_STATE(300)] = 15265, + [SMALL_STATE(301)] = 15362, + [SMALL_STATE(302)] = 15459, + [SMALL_STATE(303)] = 15558, + [SMALL_STATE(304)] = 15657, + [SMALL_STATE(305)] = 15756, + [SMALL_STATE(306)] = 15853, + [SMALL_STATE(307)] = 15950, + [SMALL_STATE(308)] = 16049, + [SMALL_STATE(309)] = 16148, + [SMALL_STATE(310)] = 16247, + [SMALL_STATE(311)] = 16307, + [SMALL_STATE(312)] = 16377, + [SMALL_STATE(313)] = 16447, + [SMALL_STATE(314)] = 16517, + [SMALL_STATE(315)] = 16613, + [SMALL_STATE(316)] = 16709, + [SMALL_STATE(317)] = 16773, + [SMALL_STATE(318)] = 16837, + [SMALL_STATE(319)] = 16897, + [SMALL_STATE(320)] = 16957, + [SMALL_STATE(321)] = 17017, + [SMALL_STATE(322)] = 17077, + [SMALL_STATE(323)] = 17137, + [SMALL_STATE(324)] = 17207, + [SMALL_STATE(325)] = 17267, + [SMALL_STATE(326)] = 17337, + [SMALL_STATE(327)] = 17397, + [SMALL_STATE(328)] = 17457, + [SMALL_STATE(329)] = 17517, + [SMALL_STATE(330)] = 17587, + [SMALL_STATE(331)] = 17657, + [SMALL_STATE(332)] = 17727, + [SMALL_STATE(333)] = 17787, + [SMALL_STATE(334)] = 17851, + [SMALL_STATE(335)] = 17915, + [SMALL_STATE(336)] = 18011, + [SMALL_STATE(337)] = 18071, + [SMALL_STATE(338)] = 18164, + [SMALL_STATE(339)] = 18257, + [SMALL_STATE(340)] = 18350, + [SMALL_STATE(341)] = 18443, + [SMALL_STATE(342)] = 18536, + [SMALL_STATE(343)] = 18629, + [SMALL_STATE(344)] = 18722, + [SMALL_STATE(345)] = 18815, + [SMALL_STATE(346)] = 18908, + [SMALL_STATE(347)] = 19001, + [SMALL_STATE(348)] = 19094, + [SMALL_STATE(349)] = 19187, + [SMALL_STATE(350)] = 19280, + [SMALL_STATE(351)] = 19373, + [SMALL_STATE(352)] = 19466, + [SMALL_STATE(353)] = 19559, + [SMALL_STATE(354)] = 19652, + [SMALL_STATE(355)] = 19745, + [SMALL_STATE(356)] = 19838, + [SMALL_STATE(357)] = 19931, + [SMALL_STATE(358)] = 20024, + [SMALL_STATE(359)] = 20117, + [SMALL_STATE(360)] = 20210, + [SMALL_STATE(361)] = 20303, + [SMALL_STATE(362)] = 20396, + [SMALL_STATE(363)] = 20489, + [SMALL_STATE(364)] = 20582, + [SMALL_STATE(365)] = 20647, + [SMALL_STATE(366)] = 20742, + [SMALL_STATE(367)] = 20835, + [SMALL_STATE(368)] = 20928, + [SMALL_STATE(369)] = 21021, + [SMALL_STATE(370)] = 21114, + [SMALL_STATE(371)] = 21207, + [SMALL_STATE(372)] = 21300, + [SMALL_STATE(373)] = 21393, + [SMALL_STATE(374)] = 21486, + [SMALL_STATE(375)] = 21551, + [SMALL_STATE(376)] = 21644, + [SMALL_STATE(377)] = 21737, + [SMALL_STATE(378)] = 21830, + [SMALL_STATE(379)] = 21923, + [SMALL_STATE(380)] = 22016, + [SMALL_STATE(381)] = 22109, + [SMALL_STATE(382)] = 22202, + [SMALL_STATE(383)] = 22295, + [SMALL_STATE(384)] = 22388, + [SMALL_STATE(385)] = 22481, + [SMALL_STATE(386)] = 22574, + [SMALL_STATE(387)] = 22667, + [SMALL_STATE(388)] = 22760, + [SMALL_STATE(389)] = 22853, + [SMALL_STATE(390)] = 22946, + [SMALL_STATE(391)] = 23039, + [SMALL_STATE(392)] = 23132, + [SMALL_STATE(393)] = 23225, + [SMALL_STATE(394)] = 23318, + [SMALL_STATE(395)] = 23411, + [SMALL_STATE(396)] = 23504, + [SMALL_STATE(397)] = 23597, + [SMALL_STATE(398)] = 23690, + [SMALL_STATE(399)] = 23783, + [SMALL_STATE(400)] = 23876, + [SMALL_STATE(401)] = 23969, + [SMALL_STATE(402)] = 24062, + [SMALL_STATE(403)] = 24155, + [SMALL_STATE(404)] = 24248, + [SMALL_STATE(405)] = 24341, + [SMALL_STATE(406)] = 24434, + [SMALL_STATE(407)] = 24527, + [SMALL_STATE(408)] = 24620, + [SMALL_STATE(409)] = 24713, + [SMALL_STATE(410)] = 24806, + [SMALL_STATE(411)] = 24899, + [SMALL_STATE(412)] = 24992, + [SMALL_STATE(413)] = 25085, + [SMALL_STATE(414)] = 25178, + [SMALL_STATE(415)] = 25271, + [SMALL_STATE(416)] = 25364, + [SMALL_STATE(417)] = 25457, + [SMALL_STATE(418)] = 25550, + [SMALL_STATE(419)] = 25643, + [SMALL_STATE(420)] = 25736, + [SMALL_STATE(421)] = 25829, + [SMALL_STATE(422)] = 25922, + [SMALL_STATE(423)] = 26015, + [SMALL_STATE(424)] = 26108, + [SMALL_STATE(425)] = 26201, + [SMALL_STATE(426)] = 26294, + [SMALL_STATE(427)] = 26387, + [SMALL_STATE(428)] = 26480, + [SMALL_STATE(429)] = 26573, + [SMALL_STATE(430)] = 26666, + [SMALL_STATE(431)] = 26739, + [SMALL_STATE(432)] = 26832, + [SMALL_STATE(433)] = 26925, + [SMALL_STATE(434)] = 26998, + [SMALL_STATE(435)] = 27091, + [SMALL_STATE(436)] = 27149, + [SMALL_STATE(437)] = 27211, + [SMALL_STATE(438)] = 27273, + [SMALL_STATE(439)] = 27331, + [SMALL_STATE(440)] = 27389, + [SMALL_STATE(441)] = 27447, + [SMALL_STATE(442)] = 27505, + [SMALL_STATE(443)] = 27563, + [SMALL_STATE(444)] = 27621, + [SMALL_STATE(445)] = 27679, + [SMALL_STATE(446)] = 27737, + [SMALL_STATE(447)] = 27795, + [SMALL_STATE(448)] = 27853, + [SMALL_STATE(449)] = 27911, + [SMALL_STATE(450)] = 27969, + [SMALL_STATE(451)] = 28039, + [SMALL_STATE(452)] = 28101, + [SMALL_STATE(453)] = 28171, + [SMALL_STATE(454)] = 28229, + [SMALL_STATE(455)] = 28287, + [SMALL_STATE(456)] = 28345, + [SMALL_STATE(457)] = 28403, + [SMALL_STATE(458)] = 28461, + [SMALL_STATE(459)] = 28523, + [SMALL_STATE(460)] = 28581, + [SMALL_STATE(461)] = 28639, + [SMALL_STATE(462)] = 28696, + [SMALL_STATE(463)] = 28757, + [SMALL_STATE(464)] = 28818, + [SMALL_STATE(465)] = 28879, + [SMALL_STATE(466)] = 28940, + [SMALL_STATE(467)] = 29001, + [SMALL_STATE(468)] = 29058, + [SMALL_STATE(469)] = 29115, + [SMALL_STATE(470)] = 29172, + [SMALL_STATE(471)] = 29233, + [SMALL_STATE(472)] = 29290, + [SMALL_STATE(473)] = 29351, + [SMALL_STATE(474)] = 29412, + [SMALL_STATE(475)] = 29473, + [SMALL_STATE(476)] = 29534, + [SMALL_STATE(477)] = 29629, + [SMALL_STATE(478)] = 29690, + [SMALL_STATE(479)] = 29751, + [SMALL_STATE(480)] = 29812, + [SMALL_STATE(481)] = 29879, + [SMALL_STATE(482)] = 29936, + [SMALL_STATE(483)] = 30029, + [SMALL_STATE(484)] = 30090, + [SMALL_STATE(485)] = 30151, + [SMALL_STATE(486)] = 30244, + [SMALL_STATE(487)] = 30305, + [SMALL_STATE(488)] = 30369, + [SMALL_STATE(489)] = 30425, + [SMALL_STATE(490)] = 30481, + [SMALL_STATE(491)] = 30545, + [SMALL_STATE(492)] = 30601, + [SMALL_STATE(493)] = 30693, + [SMALL_STATE(494)] = 30785, + [SMALL_STATE(495)] = 30849, + [SMALL_STATE(496)] = 30905, + [SMALL_STATE(497)] = 30961, + [SMALL_STATE(498)] = 31017, + [SMALL_STATE(499)] = 31073, + [SMALL_STATE(500)] = 31129, + [SMALL_STATE(501)] = 31185, + [SMALL_STATE(502)] = 31277, + [SMALL_STATE(503)] = 31333, + [SMALL_STATE(504)] = 31397, + [SMALL_STATE(505)] = 31489, + [SMALL_STATE(506)] = 31545, + [SMALL_STATE(507)] = 31601, + [SMALL_STATE(508)] = 31657, + [SMALL_STATE(509)] = 31713, + [SMALL_STATE(510)] = 31805, + [SMALL_STATE(511)] = 31897, + [SMALL_STATE(512)] = 31952, + [SMALL_STATE(513)] = 32007, + [SMALL_STATE(514)] = 32062, + [SMALL_STATE(515)] = 32117, + [SMALL_STATE(516)] = 32172, + [SMALL_STATE(517)] = 32227, + [SMALL_STATE(518)] = 32282, + [SMALL_STATE(519)] = 32337, + [SMALL_STATE(520)] = 32392, + [SMALL_STATE(521)] = 32447, + [SMALL_STATE(522)] = 32502, + [SMALL_STATE(523)] = 32557, + [SMALL_STATE(524)] = 32612, + [SMALL_STATE(525)] = 32667, + [SMALL_STATE(526)] = 32722, + [SMALL_STATE(527)] = 32777, + [SMALL_STATE(528)] = 32832, + [SMALL_STATE(529)] = 32887, + [SMALL_STATE(530)] = 32942, + [SMALL_STATE(531)] = 32997, + [SMALL_STATE(532)] = 33052, + [SMALL_STATE(533)] = 33107, + [SMALL_STATE(534)] = 33162, + [SMALL_STATE(535)] = 33217, + [SMALL_STATE(536)] = 33272, + [SMALL_STATE(537)] = 33327, + [SMALL_STATE(538)] = 33382, + [SMALL_STATE(539)] = 33437, + [SMALL_STATE(540)] = 33492, + [SMALL_STATE(541)] = 33547, + [SMALL_STATE(542)] = 33602, + [SMALL_STATE(543)] = 33657, + [SMALL_STATE(544)] = 33712, + [SMALL_STATE(545)] = 33767, + [SMALL_STATE(546)] = 33822, + [SMALL_STATE(547)] = 33877, + [SMALL_STATE(548)] = 33932, + [SMALL_STATE(549)] = 33987, + [SMALL_STATE(550)] = 34042, + [SMALL_STATE(551)] = 34097, + [SMALL_STATE(552)] = 34152, + [SMALL_STATE(553)] = 34207, + [SMALL_STATE(554)] = 34262, + [SMALL_STATE(555)] = 34317, + [SMALL_STATE(556)] = 34372, + [SMALL_STATE(557)] = 34427, + [SMALL_STATE(558)] = 34488, + [SMALL_STATE(559)] = 34543, + [SMALL_STATE(560)] = 34598, + [SMALL_STATE(561)] = 34653, + [SMALL_STATE(562)] = 34708, + [SMALL_STATE(563)] = 34763, + [SMALL_STATE(564)] = 34818, + [SMALL_STATE(565)] = 34873, + [SMALL_STATE(566)] = 34928, + [SMALL_STATE(567)] = 34983, + [SMALL_STATE(568)] = 35038, + [SMALL_STATE(569)] = 35093, + [SMALL_STATE(570)] = 35148, + [SMALL_STATE(571)] = 35203, + [SMALL_STATE(572)] = 35264, + [SMALL_STATE(573)] = 35319, + [SMALL_STATE(574)] = 35374, + [SMALL_STATE(575)] = 35429, + [SMALL_STATE(576)] = 35484, + [SMALL_STATE(577)] = 35539, + [SMALL_STATE(578)] = 35594, + [SMALL_STATE(579)] = 35649, + [SMALL_STATE(580)] = 35704, + [SMALL_STATE(581)] = 35759, + [SMALL_STATE(582)] = 35814, + [SMALL_STATE(583)] = 35875, + [SMALL_STATE(584)] = 35930, + [SMALL_STATE(585)] = 35985, + [SMALL_STATE(586)] = 36046, + [SMALL_STATE(587)] = 36101, + [SMALL_STATE(588)] = 36156, + [SMALL_STATE(589)] = 36245, + [SMALL_STATE(590)] = 36300, + [SMALL_STATE(591)] = 36389, + [SMALL_STATE(592)] = 36444, + [SMALL_STATE(593)] = 36499, + [SMALL_STATE(594)] = 36554, + [SMALL_STATE(595)] = 36609, + [SMALL_STATE(596)] = 36664, + [SMALL_STATE(597)] = 36719, + [SMALL_STATE(598)] = 36774, + [SMALL_STATE(599)] = 36829, + [SMALL_STATE(600)] = 36884, + [SMALL_STATE(601)] = 36939, + [SMALL_STATE(602)] = 36994, + [SMALL_STATE(603)] = 37049, + [SMALL_STATE(604)] = 37104, + [SMALL_STATE(605)] = 37159, + [SMALL_STATE(606)] = 37214, + [SMALL_STATE(607)] = 37269, + [SMALL_STATE(608)] = 37324, + [SMALL_STATE(609)] = 37379, + [SMALL_STATE(610)] = 37434, + [SMALL_STATE(611)] = 37489, + [SMALL_STATE(612)] = 37544, + [SMALL_STATE(613)] = 37599, + [SMALL_STATE(614)] = 37654, + [SMALL_STATE(615)] = 37709, + [SMALL_STATE(616)] = 37792, + [SMALL_STATE(617)] = 37869, + [SMALL_STATE(618)] = 37946, + [SMALL_STATE(619)] = 38023, + [SMALL_STATE(620)] = 38100, + [SMALL_STATE(621)] = 38177, + [SMALL_STATE(622)] = 38254, + [SMALL_STATE(623)] = 38328, + [SMALL_STATE(624)] = 38402, + [SMALL_STATE(625)] = 38476, + [SMALL_STATE(626)] = 38550, + [SMALL_STATE(627)] = 38624, + [SMALL_STATE(628)] = 38698, + [SMALL_STATE(629)] = 38772, + [SMALL_STATE(630)] = 38846, + [SMALL_STATE(631)] = 38920, + [SMALL_STATE(632)] = 38994, + [SMALL_STATE(633)] = 39072, + [SMALL_STATE(634)] = 39146, + [SMALL_STATE(635)] = 39220, + [SMALL_STATE(636)] = 39294, + [SMALL_STATE(637)] = 39372, + [SMALL_STATE(638)] = 39446, + [SMALL_STATE(639)] = 39520, + [SMALL_STATE(640)] = 39594, + [SMALL_STATE(641)] = 39668, + [SMALL_STATE(642)] = 39742, + [SMALL_STATE(643)] = 39816, + [SMALL_STATE(644)] = 39890, + [SMALL_STATE(645)] = 39964, + [SMALL_STATE(646)] = 40018, + [SMALL_STATE(647)] = 40092, + [SMALL_STATE(648)] = 40166, + [SMALL_STATE(649)] = 40240, + [SMALL_STATE(650)] = 40314, + [SMALL_STATE(651)] = 40388, + [SMALL_STATE(652)] = 40462, + [SMALL_STATE(653)] = 40536, + [SMALL_STATE(654)] = 40610, + [SMALL_STATE(655)] = 40684, + [SMALL_STATE(656)] = 40758, + [SMALL_STATE(657)] = 40832, + [SMALL_STATE(658)] = 40906, + [SMALL_STATE(659)] = 40960, + [SMALL_STATE(660)] = 41034, + [SMALL_STATE(661)] = 41108, + [SMALL_STATE(662)] = 41182, + [SMALL_STATE(663)] = 41256, + [SMALL_STATE(664)] = 41330, + [SMALL_STATE(665)] = 41404, + [SMALL_STATE(666)] = 41478, + [SMALL_STATE(667)] = 41552, + [SMALL_STATE(668)] = 41626, + [SMALL_STATE(669)] = 41700, + [SMALL_STATE(670)] = 41774, + [SMALL_STATE(671)] = 41848, + [SMALL_STATE(672)] = 41922, + [SMALL_STATE(673)] = 41996, + [SMALL_STATE(674)] = 42070, + [SMALL_STATE(675)] = 42144, + [SMALL_STATE(676)] = 42198, + [SMALL_STATE(677)] = 42252, + [SMALL_STATE(678)] = 42326, + [SMALL_STATE(679)] = 42400, + [SMALL_STATE(680)] = 42474, + [SMALL_STATE(681)] = 42548, + [SMALL_STATE(682)] = 42622, + [SMALL_STATE(683)] = 42696, + [SMALL_STATE(684)] = 42770, + [SMALL_STATE(685)] = 42844, + [SMALL_STATE(686)] = 42918, + [SMALL_STATE(687)] = 42992, + [SMALL_STATE(688)] = 43066, + [SMALL_STATE(689)] = 43140, + [SMALL_STATE(690)] = 43214, + [SMALL_STATE(691)] = 43288, + [SMALL_STATE(692)] = 43362, + [SMALL_STATE(693)] = 43416, + [SMALL_STATE(694)] = 43470, + [SMALL_STATE(695)] = 43544, + [SMALL_STATE(696)] = 43618, + [SMALL_STATE(697)] = 43666, + [SMALL_STATE(698)] = 43714, + [SMALL_STATE(699)] = 43762, + [SMALL_STATE(700)] = 43810, + [SMALL_STATE(701)] = 43857, + [SMALL_STATE(702)] = 43904, + [SMALL_STATE(703)] = 43951, + [SMALL_STATE(704)] = 43998, + [SMALL_STATE(705)] = 44045, + [SMALL_STATE(706)] = 44092, + [SMALL_STATE(707)] = 44139, + [SMALL_STATE(708)] = 44186, + [SMALL_STATE(709)] = 44233, + [SMALL_STATE(710)] = 44280, + [SMALL_STATE(711)] = 44327, + [SMALL_STATE(712)] = 44374, + [SMALL_STATE(713)] = 44421, + [SMALL_STATE(714)] = 44468, + [SMALL_STATE(715)] = 44515, + [SMALL_STATE(716)] = 44562, + [SMALL_STATE(717)] = 44609, + [SMALL_STATE(718)] = 44656, + [SMALL_STATE(719)] = 44703, + [SMALL_STATE(720)] = 44784, + [SMALL_STATE(721)] = 44831, + [SMALL_STATE(722)] = 44878, + [SMALL_STATE(723)] = 44925, + [SMALL_STATE(724)] = 44972, + [SMALL_STATE(725)] = 45019, + [SMALL_STATE(726)] = 45066, + [SMALL_STATE(727)] = 45147, + [SMALL_STATE(728)] = 45194, + [SMALL_STATE(729)] = 45241, + [SMALL_STATE(730)] = 45288, + [SMALL_STATE(731)] = 45335, + [SMALL_STATE(732)] = 45382, + [SMALL_STATE(733)] = 45429, + [SMALL_STATE(734)] = 45476, + [SMALL_STATE(735)] = 45523, + [SMALL_STATE(736)] = 45579, + [SMALL_STATE(737)] = 45649, + [SMALL_STATE(738)] = 45705, + [SMALL_STATE(739)] = 45755, + [SMALL_STATE(740)] = 45821, + [SMALL_STATE(741)] = 45877, + [SMALL_STATE(742)] = 45933, + [SMALL_STATE(743)] = 45997, + [SMALL_STATE(744)] = 46053, + [SMALL_STATE(745)] = 46123, + [SMALL_STATE(746)] = 46193, + [SMALL_STATE(747)] = 46249, + [SMALL_STATE(748)] = 46311, + [SMALL_STATE(749)] = 46381, + [SMALL_STATE(750)] = 46449, + [SMALL_STATE(751)] = 46509, + [SMALL_STATE(752)] = 46565, + [SMALL_STATE(753)] = 46615, + [SMALL_STATE(754)] = 46681, + [SMALL_STATE(755)] = 46745, + [SMALL_STATE(756)] = 46801, + [SMALL_STATE(757)] = 46863, + [SMALL_STATE(758)] = 46933, + [SMALL_STATE(759)] = 47003, + [SMALL_STATE(760)] = 47053, + [SMALL_STATE(761)] = 47103, + [SMALL_STATE(762)] = 47171, + [SMALL_STATE(763)] = 47231, + [SMALL_STATE(764)] = 47310, + [SMALL_STATE(765)] = 47357, + [SMALL_STATE(766)] = 47436, + [SMALL_STATE(767)] = 47485, + [SMALL_STATE(768)] = 47534, + [SMALL_STATE(769)] = 47583, + [SMALL_STATE(770)] = 47632, + [SMALL_STATE(771)] = 47681, + [SMALL_STATE(772)] = 47730, + [SMALL_STATE(773)] = 47775, + [SMALL_STATE(774)] = 47822, + [SMALL_STATE(775)] = 47871, + [SMALL_STATE(776)] = 47920, + [SMALL_STATE(777)] = 47969, + [SMALL_STATE(778)] = 48014, + [SMALL_STATE(779)] = 48063, + [SMALL_STATE(780)] = 48112, + [SMALL_STATE(781)] = 48189, + [SMALL_STATE(782)] = 48236, + [SMALL_STATE(783)] = 48285, + [SMALL_STATE(784)] = 48332, + [SMALL_STATE(785)] = 48386, + [SMALL_STATE(786)] = 48450, + [SMALL_STATE(787)] = 48504, + [SMALL_STATE(788)] = 48548, + [SMALL_STATE(789)] = 48592, + [SMALL_STATE(790)] = 48660, + [SMALL_STATE(791)] = 48728, + [SMALL_STATE(792)] = 48782, + [SMALL_STATE(793)] = 48858, + [SMALL_STATE(794)] = 48906, + [SMALL_STATE(795)] = 48954, + [SMALL_STATE(796)] = 48998, + [SMALL_STATE(797)] = 49042, + [SMALL_STATE(798)] = 49096, + [SMALL_STATE(799)] = 49150, + [SMALL_STATE(800)] = 49204, + [SMALL_STATE(801)] = 49258, + [SMALL_STATE(802)] = 49312, + [SMALL_STATE(803)] = 49372, + [SMALL_STATE(804)] = 49426, + [SMALL_STATE(805)] = 49494, + [SMALL_STATE(806)] = 49562, + [SMALL_STATE(807)] = 49628, + [SMALL_STATE(808)] = 49686, + [SMALL_STATE(809)] = 49740, + [SMALL_STATE(810)] = 49808, + [SMALL_STATE(811)] = 49872, + [SMALL_STATE(812)] = 49934, + [SMALL_STATE(813)] = 50000, + [SMALL_STATE(814)] = 50068, + [SMALL_STATE(815)] = 50136, + [SMALL_STATE(816)] = 50194, + [SMALL_STATE(817)] = 50248, + [SMALL_STATE(818)] = 50308, + [SMALL_STATE(819)] = 50376, + [SMALL_STATE(820)] = 50440, + [SMALL_STATE(821)] = 50502, + [SMALL_STATE(822)] = 50564, + [SMALL_STATE(823)] = 50632, + [SMALL_STATE(824)] = 50698, + [SMALL_STATE(825)] = 50756, + [SMALL_STATE(826)] = 50810, + [SMALL_STATE(827)] = 50870, + [SMALL_STATE(828)] = 50951, + [SMALL_STATE(829)] = 50998, + [SMALL_STATE(830)] = 51043, + [SMALL_STATE(831)] = 51124, + [SMALL_STATE(832)] = 51177, + [SMALL_STATE(833)] = 51236, + [SMALL_STATE(834)] = 51289, + [SMALL_STATE(835)] = 51334, + [SMALL_STATE(836)] = 51387, + [SMALL_STATE(837)] = 51430, + [SMALL_STATE(838)] = 51473, + [SMALL_STATE(839)] = 51540, + [SMALL_STATE(840)] = 51585, + [SMALL_STATE(841)] = 51650, + [SMALL_STATE(842)] = 51707, + [SMALL_STATE(843)] = 51754, + [SMALL_STATE(844)] = 51797, + [SMALL_STATE(845)] = 51842, + [SMALL_STATE(846)] = 51905, + [SMALL_STATE(847)] = 51966, + [SMALL_STATE(848)] = 52047, + [SMALL_STATE(849)] = 52092, + [SMALL_STATE(850)] = 52139, + [SMALL_STATE(851)] = 52184, + [SMALL_STATE(852)] = 52229, + [SMALL_STATE(853)] = 52272, + [SMALL_STATE(854)] = 52315, + [SMALL_STATE(855)] = 52360, + [SMALL_STATE(856)] = 52427, + [SMALL_STATE(857)] = 52494, + [SMALL_STATE(858)] = 52537, + [SMALL_STATE(859)] = 52618, + [SMALL_STATE(860)] = 52663, + [SMALL_STATE(861)] = 52706, + [SMALL_STATE(862)] = 52751, + [SMALL_STATE(863)] = 52798, + [SMALL_STATE(864)] = 52843, + [SMALL_STATE(865)] = 52886, + [SMALL_STATE(866)] = 52931, + [SMALL_STATE(867)] = 52984, + [SMALL_STATE(868)] = 53026, + [SMALL_STATE(869)] = 53068, + [SMALL_STATE(870)] = 53110, + [SMALL_STATE(871)] = 53152, + [SMALL_STATE(872)] = 53196, + [SMALL_STATE(873)] = 53240, + [SMALL_STATE(874)] = 53282, + [SMALL_STATE(875)] = 53360, + [SMALL_STATE(876)] = 53438, + [SMALL_STATE(877)] = 53480, + [SMALL_STATE(878)] = 53524, + [SMALL_STATE(879)] = 53566, + [SMALL_STATE(880)] = 53610, + [SMALL_STATE(881)] = 53652, + [SMALL_STATE(882)] = 53694, + [SMALL_STATE(883)] = 53736, + [SMALL_STATE(884)] = 53780, + [SMALL_STATE(885)] = 53822, + [SMALL_STATE(886)] = 53864, + [SMALL_STATE(887)] = 53906, + [SMALL_STATE(888)] = 53948, + [SMALL_STATE(889)] = 53990, + [SMALL_STATE(890)] = 54070, + [SMALL_STATE(891)] = 54112, + [SMALL_STATE(892)] = 54154, + [SMALL_STATE(893)] = 54196, + [SMALL_STATE(894)] = 54238, + [SMALL_STATE(895)] = 54280, + [SMALL_STATE(896)] = 54322, + [SMALL_STATE(897)] = 54364, + [SMALL_STATE(898)] = 54406, + [SMALL_STATE(899)] = 54448, + [SMALL_STATE(900)] = 54526, + [SMALL_STATE(901)] = 54568, + [SMALL_STATE(902)] = 54610, + [SMALL_STATE(903)] = 54652, + [SMALL_STATE(904)] = 54694, + [SMALL_STATE(905)] = 54736, + [SMALL_STATE(906)] = 54778, + [SMALL_STATE(907)] = 54820, + [SMALL_STATE(908)] = 54862, + [SMALL_STATE(909)] = 54904, + [SMALL_STATE(910)] = 54946, + [SMALL_STATE(911)] = 54988, + [SMALL_STATE(912)] = 55030, + [SMALL_STATE(913)] = 55072, + [SMALL_STATE(914)] = 55114, + [SMALL_STATE(915)] = 55156, + [SMALL_STATE(916)] = 55198, + [SMALL_STATE(917)] = 55240, + [SMALL_STATE(918)] = 55282, + [SMALL_STATE(919)] = 55324, + [SMALL_STATE(920)] = 55366, + [SMALL_STATE(921)] = 55408, + [SMALL_STATE(922)] = 55450, + [SMALL_STATE(923)] = 55492, + [SMALL_STATE(924)] = 55570, + [SMALL_STATE(925)] = 55648, + [SMALL_STATE(926)] = 55690, + [SMALL_STATE(927)] = 55732, + [SMALL_STATE(928)] = 55774, + [SMALL_STATE(929)] = 55816, + [SMALL_STATE(930)] = 55858, + [SMALL_STATE(931)] = 55900, + [SMALL_STATE(932)] = 55942, + [SMALL_STATE(933)] = 55984, + [SMALL_STATE(934)] = 56026, + [SMALL_STATE(935)] = 56068, + [SMALL_STATE(936)] = 56110, + [SMALL_STATE(937)] = 56152, + [SMALL_STATE(938)] = 56194, + [SMALL_STATE(939)] = 56236, + [SMALL_STATE(940)] = 56278, + [SMALL_STATE(941)] = 56320, + [SMALL_STATE(942)] = 56362, + [SMALL_STATE(943)] = 56404, + [SMALL_STATE(944)] = 56446, + [SMALL_STATE(945)] = 56488, + [SMALL_STATE(946)] = 56530, + [SMALL_STATE(947)] = 56571, + [SMALL_STATE(948)] = 56612, + [SMALL_STATE(949)] = 56653, + [SMALL_STATE(950)] = 56694, + [SMALL_STATE(951)] = 56735, + [SMALL_STATE(952)] = 56776, + [SMALL_STATE(953)] = 56817, + [SMALL_STATE(954)] = 56858, + [SMALL_STATE(955)] = 56903, + [SMALL_STATE(956)] = 56944, + [SMALL_STATE(957)] = 56985, + [SMALL_STATE(958)] = 57026, + [SMALL_STATE(959)] = 57067, + [SMALL_STATE(960)] = 57108, + [SMALL_STATE(961)] = 57149, + [SMALL_STATE(962)] = 57190, + [SMALL_STATE(963)] = 57231, + [SMALL_STATE(964)] = 57272, + [SMALL_STATE(965)] = 57313, + [SMALL_STATE(966)] = 57354, + [SMALL_STATE(967)] = 57395, + [SMALL_STATE(968)] = 57436, + [SMALL_STATE(969)] = 57477, + [SMALL_STATE(970)] = 57556, + [SMALL_STATE(971)] = 57597, + [SMALL_STATE(972)] = 57642, + [SMALL_STATE(973)] = 57717, + [SMALL_STATE(974)] = 57796, + [SMALL_STATE(975)] = 57837, + [SMALL_STATE(976)] = 57878, + [SMALL_STATE(977)] = 57919, + [SMALL_STATE(978)] = 57960, + [SMALL_STATE(979)] = 58001, + [SMALL_STATE(980)] = 58042, + [SMALL_STATE(981)] = 58121, + [SMALL_STATE(982)] = 58162, + [SMALL_STATE(983)] = 58203, + [SMALL_STATE(984)] = 58244, + [SMALL_STATE(985)] = 58285, + [SMALL_STATE(986)] = 58358, + [SMALL_STATE(987)] = 58428, + [SMALL_STATE(988)] = 58498, + [SMALL_STATE(989)] = 58560, + [SMALL_STATE(990)] = 58622, + [SMALL_STATE(991)] = 58661, + [SMALL_STATE(992)] = 58700, + [SMALL_STATE(993)] = 58739, + [SMALL_STATE(994)] = 58778, + [SMALL_STATE(995)] = 58808, + [SMALL_STATE(996)] = 58861, + [SMALL_STATE(997)] = 58896, + [SMALL_STATE(998)] = 58925, + [SMALL_STATE(999)] = 58950, + [SMALL_STATE(1000)] = 58975, + [SMALL_STATE(1001)] = 59012, + [SMALL_STATE(1002)] = 59037, + [SMALL_STATE(1003)] = 59062, + [SMALL_STATE(1004)] = 59099, + [SMALL_STATE(1005)] = 59128, + [SMALL_STATE(1006)] = 59165, + [SMALL_STATE(1007)] = 59200, + [SMALL_STATE(1008)] = 59253, + [SMALL_STATE(1009)] = 59290, + [SMALL_STATE(1010)] = 59343, + [SMALL_STATE(1011)] = 59377, + [SMALL_STATE(1012)] = 59411, + [SMALL_STATE(1013)] = 59439, + [SMALL_STATE(1014)] = 59485, + [SMALL_STATE(1015)] = 59528, + [SMALL_STATE(1016)] = 59571, + [SMALL_STATE(1017)] = 59614, + [SMALL_STATE(1018)] = 59645, + [SMALL_STATE(1019)] = 59688, + [SMALL_STATE(1020)] = 59731, + [SMALL_STATE(1021)] = 59774, + [SMALL_STATE(1022)] = 59817, + [SMALL_STATE(1023)] = 59857, + [SMALL_STATE(1024)] = 59901, + [SMALL_STATE(1025)] = 59938, + [SMALL_STATE(1026)] = 59975, + [SMALL_STATE(1027)] = 60000, + [SMALL_STATE(1028)] = 60037, + [SMALL_STATE(1029)] = 60074, + [SMALL_STATE(1030)] = 60108, + [SMALL_STATE(1031)] = 60142, + [SMALL_STATE(1032)] = 60163, + [SMALL_STATE(1033)] = 60184, + [SMALL_STATE(1034)] = 60206, + [SMALL_STATE(1035)] = 60237, + [SMALL_STATE(1036)] = 60258, + [SMALL_STATE(1037)] = 60281, + [SMALL_STATE(1038)] = 60312, + [SMALL_STATE(1039)] = 60343, + [SMALL_STATE(1040)] = 60374, + [SMALL_STATE(1041)] = 60405, + [SMALL_STATE(1042)] = 60442, + [SMALL_STATE(1043)] = 60473, + [SMALL_STATE(1044)] = 60504, + [SMALL_STATE(1045)] = 60535, + [SMALL_STATE(1046)] = 60566, + [SMALL_STATE(1047)] = 60597, + [SMALL_STATE(1048)] = 60628, + [SMALL_STATE(1049)] = 60659, + [SMALL_STATE(1050)] = 60690, + [SMALL_STATE(1051)] = 60721, + [SMALL_STATE(1052)] = 60752, + [SMALL_STATE(1053)] = 60783, + [SMALL_STATE(1054)] = 60814, + [SMALL_STATE(1055)] = 60845, + [SMALL_STATE(1056)] = 60882, + [SMALL_STATE(1057)] = 60899, + [SMALL_STATE(1058)] = 60936, + [SMALL_STATE(1059)] = 60973, + [SMALL_STATE(1060)] = 61010, + [SMALL_STATE(1061)] = 61033, + [SMALL_STATE(1062)] = 61054, + [SMALL_STATE(1063)] = 61085, + [SMALL_STATE(1064)] = 61107, + [SMALL_STATE(1065)] = 61141, + [SMALL_STATE(1066)] = 61165, + [SMALL_STATE(1067)] = 61187, + [SMALL_STATE(1068)] = 61209, + [SMALL_STATE(1069)] = 61243, + [SMALL_STATE(1070)] = 61265, + [SMALL_STATE(1071)] = 61299, + [SMALL_STATE(1072)] = 61333, + [SMALL_STATE(1073)] = 61357, + [SMALL_STATE(1074)] = 61379, + [SMALL_STATE(1075)] = 61399, + [SMALL_STATE(1076)] = 61433, + [SMALL_STATE(1077)] = 61453, + [SMALL_STATE(1078)] = 61471, + [SMALL_STATE(1079)] = 61491, + [SMALL_STATE(1080)] = 61525, + [SMALL_STATE(1081)] = 61547, + [SMALL_STATE(1082)] = 61567, + [SMALL_STATE(1083)] = 61591, + [SMALL_STATE(1084)] = 61625, + [SMALL_STATE(1085)] = 61659, + [SMALL_STATE(1086)] = 61693, + [SMALL_STATE(1087)] = 61727, + [SMALL_STATE(1088)] = 61761, + [SMALL_STATE(1089)] = 61779, + [SMALL_STATE(1090)] = 61797, + [SMALL_STATE(1091)] = 61831, + [SMALL_STATE(1092)] = 61854, + [SMALL_STATE(1093)] = 61873, + [SMALL_STATE(1094)] = 61892, + [SMALL_STATE(1095)] = 61913, + [SMALL_STATE(1096)] = 61936, + [SMALL_STATE(1097)] = 61961, + [SMALL_STATE(1098)] = 61980, + [SMALL_STATE(1099)] = 61999, + [SMALL_STATE(1100)] = 62018, + [SMALL_STATE(1101)] = 62037, + [SMALL_STATE(1102)] = 62060, + [SMALL_STATE(1103)] = 62085, + [SMALL_STATE(1104)] = 62099, + [SMALL_STATE(1105)] = 62113, + [SMALL_STATE(1106)] = 62127, + [SMALL_STATE(1107)] = 62141, + [SMALL_STATE(1108)] = 62155, + [SMALL_STATE(1109)] = 62169, + [SMALL_STATE(1110)] = 62183, + [SMALL_STATE(1111)] = 62197, + [SMALL_STATE(1112)] = 62219, + [SMALL_STATE(1113)] = 62237, + [SMALL_STATE(1114)] = 62255, + [SMALL_STATE(1115)] = 62269, + [SMALL_STATE(1116)] = 62283, + [SMALL_STATE(1117)] = 62297, + [SMALL_STATE(1118)] = 62315, + [SMALL_STATE(1119)] = 62329, + [SMALL_STATE(1120)] = 62347, + [SMALL_STATE(1121)] = 62367, + [SMALL_STATE(1122)] = 62385, + [SMALL_STATE(1123)] = 62401, + [SMALL_STATE(1124)] = 62419, + [SMALL_STATE(1125)] = 62439, + [SMALL_STATE(1126)] = 62459, + [SMALL_STATE(1127)] = 62477, + [SMALL_STATE(1128)] = 62501, + [SMALL_STATE(1129)] = 62525, + [SMALL_STATE(1130)] = 62539, + [SMALL_STATE(1131)] = 62553, + [SMALL_STATE(1132)] = 62573, + [SMALL_STATE(1133)] = 62587, + [SMALL_STATE(1134)] = 62601, + [SMALL_STATE(1135)] = 62627, + [SMALL_STATE(1136)] = 62649, + [SMALL_STATE(1137)] = 62663, + [SMALL_STATE(1138)] = 62677, + [SMALL_STATE(1139)] = 62691, + [SMALL_STATE(1140)] = 62707, + [SMALL_STATE(1141)] = 62721, + [SMALL_STATE(1142)] = 62739, + [SMALL_STATE(1143)] = 62759, + [SMALL_STATE(1144)] = 62779, + [SMALL_STATE(1145)] = 62803, + [SMALL_STATE(1146)] = 62823, + [SMALL_STATE(1147)] = 62839, + [SMALL_STATE(1148)] = 62857, + [SMALL_STATE(1149)] = 62871, + [SMALL_STATE(1150)] = 62893, + [SMALL_STATE(1151)] = 62907, + [SMALL_STATE(1152)] = 62927, + [SMALL_STATE(1153)] = 62947, + [SMALL_STATE(1154)] = 62967, + [SMALL_STATE(1155)] = 62987, + [SMALL_STATE(1156)] = 63007, + [SMALL_STATE(1157)] = 63021, + [SMALL_STATE(1158)] = 63039, + [SMALL_STATE(1159)] = 63057, + [SMALL_STATE(1160)] = 63077, + [SMALL_STATE(1161)] = 63095, + [SMALL_STATE(1162)] = 63111, + [SMALL_STATE(1163)] = 63129, + [SMALL_STATE(1164)] = 63149, + [SMALL_STATE(1165)] = 63169, + [SMALL_STATE(1166)] = 63187, + [SMALL_STATE(1167)] = 63205, + [SMALL_STATE(1168)] = 63219, + [SMALL_STATE(1169)] = 63233, + [SMALL_STATE(1170)] = 63247, + [SMALL_STATE(1171)] = 63272, + [SMALL_STATE(1172)] = 63293, + [SMALL_STATE(1173)] = 63306, + [SMALL_STATE(1174)] = 63319, + [SMALL_STATE(1175)] = 63344, + [SMALL_STATE(1176)] = 63365, + [SMALL_STATE(1177)] = 63388, + [SMALL_STATE(1178)] = 63411, + [SMALL_STATE(1179)] = 63430, + [SMALL_STATE(1180)] = 63453, + [SMALL_STATE(1181)] = 63472, + [SMALL_STATE(1182)] = 63495, + [SMALL_STATE(1183)] = 63518, + [SMALL_STATE(1184)] = 63543, + [SMALL_STATE(1185)] = 63562, + [SMALL_STATE(1186)] = 63581, + [SMALL_STATE(1187)] = 63594, + [SMALL_STATE(1188)] = 63611, + [SMALL_STATE(1189)] = 63630, + [SMALL_STATE(1190)] = 63643, + [SMALL_STATE(1191)] = 63668, + [SMALL_STATE(1192)] = 63687, + [SMALL_STATE(1193)] = 63712, + [SMALL_STATE(1194)] = 63731, + [SMALL_STATE(1195)] = 63750, + [SMALL_STATE(1196)] = 63773, + [SMALL_STATE(1197)] = 63792, + [SMALL_STATE(1198)] = 63809, + [SMALL_STATE(1199)] = 63824, + [SMALL_STATE(1200)] = 63849, + [SMALL_STATE(1201)] = 63866, + [SMALL_STATE(1202)] = 63885, + [SMALL_STATE(1203)] = 63904, + [SMALL_STATE(1204)] = 63929, + [SMALL_STATE(1205)] = 63954, + [SMALL_STATE(1206)] = 63975, + [SMALL_STATE(1207)] = 63998, + [SMALL_STATE(1208)] = 64021, + [SMALL_STATE(1209)] = 64034, + [SMALL_STATE(1210)] = 64055, + [SMALL_STATE(1211)] = 64080, + [SMALL_STATE(1212)] = 64093, + [SMALL_STATE(1213)] = 64112, + [SMALL_STATE(1214)] = 64133, + [SMALL_STATE(1215)] = 64158, + [SMALL_STATE(1216)] = 64173, + [SMALL_STATE(1217)] = 64196, + [SMALL_STATE(1218)] = 64212, + [SMALL_STATE(1219)] = 64228, + [SMALL_STATE(1220)] = 64244, + [SMALL_STATE(1221)] = 64260, + [SMALL_STATE(1222)] = 64272, + [SMALL_STATE(1223)] = 64288, + [SMALL_STATE(1224)] = 64308, + [SMALL_STATE(1225)] = 64324, + [SMALL_STATE(1226)] = 64342, + [SMALL_STATE(1227)] = 64356, + [SMALL_STATE(1228)] = 64376, + [SMALL_STATE(1229)] = 64392, + [SMALL_STATE(1230)] = 64410, + [SMALL_STATE(1231)] = 64424, + [SMALL_STATE(1232)] = 64440, + [SMALL_STATE(1233)] = 64462, + [SMALL_STATE(1234)] = 64478, + [SMALL_STATE(1235)] = 64500, + [SMALL_STATE(1236)] = 64518, + [SMALL_STATE(1237)] = 64538, + [SMALL_STATE(1238)] = 64560, + [SMALL_STATE(1239)] = 64582, + [SMALL_STATE(1240)] = 64594, + [SMALL_STATE(1241)] = 64612, + [SMALL_STATE(1242)] = 64634, + [SMALL_STATE(1243)] = 64652, + [SMALL_STATE(1244)] = 64670, + [SMALL_STATE(1245)] = 64688, + [SMALL_STATE(1246)] = 64710, + [SMALL_STATE(1247)] = 64732, + [SMALL_STATE(1248)] = 64748, + [SMALL_STATE(1249)] = 64768, + [SMALL_STATE(1250)] = 64784, + [SMALL_STATE(1251)] = 64800, + [SMALL_STATE(1252)] = 64814, + [SMALL_STATE(1253)] = 64828, + [SMALL_STATE(1254)] = 64846, + [SMALL_STATE(1255)] = 64860, + [SMALL_STATE(1256)] = 64874, + [SMALL_STATE(1257)] = 64894, + [SMALL_STATE(1258)] = 64910, + [SMALL_STATE(1259)] = 64927, + [SMALL_STATE(1260)] = 64938, + [SMALL_STATE(1261)] = 64955, + [SMALL_STATE(1262)] = 64972, + [SMALL_STATE(1263)] = 64983, + [SMALL_STATE(1264)] = 65000, + [SMALL_STATE(1265)] = 65017, + [SMALL_STATE(1266)] = 65034, + [SMALL_STATE(1267)] = 65045, + [SMALL_STATE(1268)] = 65060, + [SMALL_STATE(1269)] = 65077, + [SMALL_STATE(1270)] = 65096, + [SMALL_STATE(1271)] = 65113, + [SMALL_STATE(1272)] = 65132, + [SMALL_STATE(1273)] = 65147, + [SMALL_STATE(1274)] = 65166, + [SMALL_STATE(1275)] = 65183, + [SMALL_STATE(1276)] = 65200, + [SMALL_STATE(1277)] = 65217, + [SMALL_STATE(1278)] = 65234, + [SMALL_STATE(1279)] = 65249, + [SMALL_STATE(1280)] = 65268, + [SMALL_STATE(1281)] = 65285, + [SMALL_STATE(1282)] = 65302, + [SMALL_STATE(1283)] = 65319, + [SMALL_STATE(1284)] = 65338, + [SMALL_STATE(1285)] = 65353, + [SMALL_STATE(1286)] = 65370, + [SMALL_STATE(1287)] = 65385, + [SMALL_STATE(1288)] = 65400, + [SMALL_STATE(1289)] = 65419, + [SMALL_STATE(1290)] = 65436, + [SMALL_STATE(1291)] = 65451, + [SMALL_STATE(1292)] = 65470, + [SMALL_STATE(1293)] = 65489, + [SMALL_STATE(1294)] = 65500, + [SMALL_STATE(1295)] = 65511, + [SMALL_STATE(1296)] = 65528, + [SMALL_STATE(1297)] = 65544, + [SMALL_STATE(1298)] = 65558, + [SMALL_STATE(1299)] = 65572, + [SMALL_STATE(1300)] = 65588, + [SMALL_STATE(1301)] = 65604, + [SMALL_STATE(1302)] = 65620, + [SMALL_STATE(1303)] = 65634, + [SMALL_STATE(1304)] = 65648, + [SMALL_STATE(1305)] = 65662, + [SMALL_STATE(1306)] = 65678, + [SMALL_STATE(1307)] = 65694, + [SMALL_STATE(1308)] = 65710, + [SMALL_STATE(1309)] = 65726, + [SMALL_STATE(1310)] = 65742, + [SMALL_STATE(1311)] = 65756, + [SMALL_STATE(1312)] = 65770, + [SMALL_STATE(1313)] = 65786, + [SMALL_STATE(1314)] = 65802, + [SMALL_STATE(1315)] = 65816, + [SMALL_STATE(1316)] = 65830, + [SMALL_STATE(1317)] = 65846, + [SMALL_STATE(1318)] = 65856, + [SMALL_STATE(1319)] = 65872, + [SMALL_STATE(1320)] = 65888, + [SMALL_STATE(1321)] = 65902, + [SMALL_STATE(1322)] = 65916, + [SMALL_STATE(1323)] = 65930, + [SMALL_STATE(1324)] = 65944, + [SMALL_STATE(1325)] = 65958, + [SMALL_STATE(1326)] = 65970, + [SMALL_STATE(1327)] = 65982, + [SMALL_STATE(1328)] = 65998, + [SMALL_STATE(1329)] = 66012, + [SMALL_STATE(1330)] = 66026, + [SMALL_STATE(1331)] = 66040, + [SMALL_STATE(1332)] = 66056, + [SMALL_STATE(1333)] = 66072, + [SMALL_STATE(1334)] = 66088, + [SMALL_STATE(1335)] = 66104, + [SMALL_STATE(1336)] = 66120, + [SMALL_STATE(1337)] = 66136, + [SMALL_STATE(1338)] = 66152, + [SMALL_STATE(1339)] = 66166, + [SMALL_STATE(1340)] = 66182, + [SMALL_STATE(1341)] = 66196, + [SMALL_STATE(1342)] = 66206, + [SMALL_STATE(1343)] = 66220, + [SMALL_STATE(1344)] = 66236, + [SMALL_STATE(1345)] = 66246, + [SMALL_STATE(1346)] = 66262, + [SMALL_STATE(1347)] = 66272, + [SMALL_STATE(1348)] = 66288, + [SMALL_STATE(1349)] = 66298, + [SMALL_STATE(1350)] = 66314, + [SMALL_STATE(1351)] = 66328, + [SMALL_STATE(1352)] = 66344, + [SMALL_STATE(1353)] = 66360, + [SMALL_STATE(1354)] = 66374, + [SMALL_STATE(1355)] = 66388, + [SMALL_STATE(1356)] = 66404, + [SMALL_STATE(1357)] = 66420, + [SMALL_STATE(1358)] = 66436, + [SMALL_STATE(1359)] = 66452, + [SMALL_STATE(1360)] = 66468, + [SMALL_STATE(1361)] = 66482, + [SMALL_STATE(1362)] = 66498, + [SMALL_STATE(1363)] = 66514, + [SMALL_STATE(1364)] = 66528, + [SMALL_STATE(1365)] = 66544, + [SMALL_STATE(1366)] = 66558, + [SMALL_STATE(1367)] = 66574, + [SMALL_STATE(1368)] = 66588, + [SMALL_STATE(1369)] = 66602, + [SMALL_STATE(1370)] = 66618, + [SMALL_STATE(1371)] = 66632, + [SMALL_STATE(1372)] = 66646, + [SMALL_STATE(1373)] = 66660, + [SMALL_STATE(1374)] = 66674, + [SMALL_STATE(1375)] = 66688, + [SMALL_STATE(1376)] = 66704, + [SMALL_STATE(1377)] = 66720, + [SMALL_STATE(1378)] = 66734, + [SMALL_STATE(1379)] = 66744, + [SMALL_STATE(1380)] = 66757, + [SMALL_STATE(1381)] = 66766, + [SMALL_STATE(1382)] = 66775, + [SMALL_STATE(1383)] = 66788, + [SMALL_STATE(1384)] = 66797, + [SMALL_STATE(1385)] = 66810, + [SMALL_STATE(1386)] = 66823, + [SMALL_STATE(1387)] = 66836, + [SMALL_STATE(1388)] = 66849, + [SMALL_STATE(1389)] = 66858, + [SMALL_STATE(1390)] = 66867, + [SMALL_STATE(1391)] = 66880, + [SMALL_STATE(1392)] = 66889, + [SMALL_STATE(1393)] = 66900, + [SMALL_STATE(1394)] = 66913, + [SMALL_STATE(1395)] = 66926, + [SMALL_STATE(1396)] = 66939, + [SMALL_STATE(1397)] = 66952, + [SMALL_STATE(1398)] = 66965, + [SMALL_STATE(1399)] = 66978, + [SMALL_STATE(1400)] = 66991, + [SMALL_STATE(1401)] = 67004, + [SMALL_STATE(1402)] = 67017, + [SMALL_STATE(1403)] = 67030, + [SMALL_STATE(1404)] = 67043, + [SMALL_STATE(1405)] = 67056, + [SMALL_STATE(1406)] = 67069, + [SMALL_STATE(1407)] = 67082, + [SMALL_STATE(1408)] = 67095, + [SMALL_STATE(1409)] = 67108, + [SMALL_STATE(1410)] = 67121, + [SMALL_STATE(1411)] = 67134, + [SMALL_STATE(1412)] = 67147, + [SMALL_STATE(1413)] = 67160, + [SMALL_STATE(1414)] = 67173, + [SMALL_STATE(1415)] = 67184, + [SMALL_STATE(1416)] = 67197, + [SMALL_STATE(1417)] = 67210, + [SMALL_STATE(1418)] = 67223, + [SMALL_STATE(1419)] = 67236, + [SMALL_STATE(1420)] = 67249, + [SMALL_STATE(1421)] = 67262, + [SMALL_STATE(1422)] = 67275, + [SMALL_STATE(1423)] = 67288, + [SMALL_STATE(1424)] = 67301, + [SMALL_STATE(1425)] = 67314, + [SMALL_STATE(1426)] = 67327, + [SMALL_STATE(1427)] = 67340, + [SMALL_STATE(1428)] = 67353, + [SMALL_STATE(1429)] = 67366, + [SMALL_STATE(1430)] = 67375, + [SMALL_STATE(1431)] = 67388, + [SMALL_STATE(1432)] = 67401, + [SMALL_STATE(1433)] = 67414, + [SMALL_STATE(1434)] = 67427, + [SMALL_STATE(1435)] = 67440, + [SMALL_STATE(1436)] = 67453, + [SMALL_STATE(1437)] = 67466, + [SMALL_STATE(1438)] = 67479, + [SMALL_STATE(1439)] = 67492, + [SMALL_STATE(1440)] = 67505, + [SMALL_STATE(1441)] = 67518, + [SMALL_STATE(1442)] = 67531, + [SMALL_STATE(1443)] = 67544, + [SMALL_STATE(1444)] = 67553, + [SMALL_STATE(1445)] = 67566, + [SMALL_STATE(1446)] = 67579, + [SMALL_STATE(1447)] = 67590, + [SMALL_STATE(1448)] = 67603, + [SMALL_STATE(1449)] = 67616, + [SMALL_STATE(1450)] = 67629, + [SMALL_STATE(1451)] = 67642, + [SMALL_STATE(1452)] = 67651, + [SMALL_STATE(1453)] = 67664, + [SMALL_STATE(1454)] = 67677, + [SMALL_STATE(1455)] = 67686, + [SMALL_STATE(1456)] = 67699, + [SMALL_STATE(1457)] = 67712, + [SMALL_STATE(1458)] = 67725, + [SMALL_STATE(1459)] = 67736, + [SMALL_STATE(1460)] = 67749, + [SMALL_STATE(1461)] = 67762, + [SMALL_STATE(1462)] = 67775, + [SMALL_STATE(1463)] = 67788, + [SMALL_STATE(1464)] = 67801, + [SMALL_STATE(1465)] = 67812, + [SMALL_STATE(1466)] = 67823, + [SMALL_STATE(1467)] = 67836, + [SMALL_STATE(1468)] = 67849, + [SMALL_STATE(1469)] = 67862, + [SMALL_STATE(1470)] = 67875, + [SMALL_STATE(1471)] = 67888, + [SMALL_STATE(1472)] = 67901, + [SMALL_STATE(1473)] = 67914, + [SMALL_STATE(1474)] = 67925, + [SMALL_STATE(1475)] = 67938, + [SMALL_STATE(1476)] = 67951, + [SMALL_STATE(1477)] = 67962, + [SMALL_STATE(1478)] = 67975, + [SMALL_STATE(1479)] = 67988, + [SMALL_STATE(1480)] = 68001, + [SMALL_STATE(1481)] = 68014, + [SMALL_STATE(1482)] = 68023, + [SMALL_STATE(1483)] = 68036, + [SMALL_STATE(1484)] = 68049, + [SMALL_STATE(1485)] = 68062, + [SMALL_STATE(1486)] = 68075, + [SMALL_STATE(1487)] = 68084, + [SMALL_STATE(1488)] = 68097, + [SMALL_STATE(1489)] = 68110, + [SMALL_STATE(1490)] = 68123, + [SMALL_STATE(1491)] = 68136, + [SMALL_STATE(1492)] = 68145, + [SMALL_STATE(1493)] = 68156, + [SMALL_STATE(1494)] = 68169, + [SMALL_STATE(1495)] = 68178, + [SMALL_STATE(1496)] = 68187, + [SMALL_STATE(1497)] = 68200, + [SMALL_STATE(1498)] = 68213, + [SMALL_STATE(1499)] = 68226, + [SMALL_STATE(1500)] = 68239, + [SMALL_STATE(1501)] = 68250, + [SMALL_STATE(1502)] = 68263, + [SMALL_STATE(1503)] = 68276, + [SMALL_STATE(1504)] = 68289, + [SMALL_STATE(1505)] = 68300, + [SMALL_STATE(1506)] = 68313, + [SMALL_STATE(1507)] = 68326, + [SMALL_STATE(1508)] = 68339, + [SMALL_STATE(1509)] = 68352, + [SMALL_STATE(1510)] = 68365, + [SMALL_STATE(1511)] = 68376, + [SMALL_STATE(1512)] = 68389, + [SMALL_STATE(1513)] = 68399, + [SMALL_STATE(1514)] = 68407, + [SMALL_STATE(1515)] = 68417, + [SMALL_STATE(1516)] = 68425, + [SMALL_STATE(1517)] = 68433, + [SMALL_STATE(1518)] = 68441, + [SMALL_STATE(1519)] = 68451, + [SMALL_STATE(1520)] = 68459, + [SMALL_STATE(1521)] = 68469, + [SMALL_STATE(1522)] = 68477, + [SMALL_STATE(1523)] = 68485, + [SMALL_STATE(1524)] = 68493, + [SMALL_STATE(1525)] = 68501, + [SMALL_STATE(1526)] = 68509, + [SMALL_STATE(1527)] = 68517, + [SMALL_STATE(1528)] = 68525, + [SMALL_STATE(1529)] = 68533, + [SMALL_STATE(1530)] = 68543, + [SMALL_STATE(1531)] = 68551, + [SMALL_STATE(1532)] = 68561, + [SMALL_STATE(1533)] = 68569, + [SMALL_STATE(1534)] = 68577, + [SMALL_STATE(1535)] = 68585, + [SMALL_STATE(1536)] = 68593, + [SMALL_STATE(1537)] = 68601, + [SMALL_STATE(1538)] = 68609, + [SMALL_STATE(1539)] = 68619, + [SMALL_STATE(1540)] = 68629, + [SMALL_STATE(1541)] = 68639, + [SMALL_STATE(1542)] = 68649, + [SMALL_STATE(1543)] = 68657, + [SMALL_STATE(1544)] = 68667, + [SMALL_STATE(1545)] = 68675, + [SMALL_STATE(1546)] = 68685, + [SMALL_STATE(1547)] = 68695, + [SMALL_STATE(1548)] = 68705, + [SMALL_STATE(1549)] = 68715, + [SMALL_STATE(1550)] = 68723, + [SMALL_STATE(1551)] = 68733, + [SMALL_STATE(1552)] = 68741, + [SMALL_STATE(1553)] = 68749, + [SMALL_STATE(1554)] = 68757, + [SMALL_STATE(1555)] = 68765, + [SMALL_STATE(1556)] = 68775, + [SMALL_STATE(1557)] = 68785, + [SMALL_STATE(1558)] = 68795, + [SMALL_STATE(1559)] = 68805, + [SMALL_STATE(1560)] = 68813, + [SMALL_STATE(1561)] = 68823, + [SMALL_STATE(1562)] = 68833, + [SMALL_STATE(1563)] = 68843, + [SMALL_STATE(1564)] = 68851, + [SMALL_STATE(1565)] = 68859, + [SMALL_STATE(1566)] = 68869, + [SMALL_STATE(1567)] = 68877, + [SMALL_STATE(1568)] = 68885, + [SMALL_STATE(1569)] = 68895, + [SMALL_STATE(1570)] = 68903, + [SMALL_STATE(1571)] = 68911, + [SMALL_STATE(1572)] = 68919, + [SMALL_STATE(1573)] = 68927, + [SMALL_STATE(1574)] = 68935, + [SMALL_STATE(1575)] = 68943, + [SMALL_STATE(1576)] = 68951, + [SMALL_STATE(1577)] = 68959, + [SMALL_STATE(1578)] = 68967, + [SMALL_STATE(1579)] = 68975, + [SMALL_STATE(1580)] = 68985, + [SMALL_STATE(1581)] = 68993, + [SMALL_STATE(1582)] = 69001, + [SMALL_STATE(1583)] = 69011, + [SMALL_STATE(1584)] = 69021, + [SMALL_STATE(1585)] = 69031, + [SMALL_STATE(1586)] = 69041, + [SMALL_STATE(1587)] = 69049, + [SMALL_STATE(1588)] = 69059, + [SMALL_STATE(1589)] = 69067, + [SMALL_STATE(1590)] = 69075, + [SMALL_STATE(1591)] = 69083, + [SMALL_STATE(1592)] = 69091, + [SMALL_STATE(1593)] = 69098, + [SMALL_STATE(1594)] = 69105, + [SMALL_STATE(1595)] = 69112, + [SMALL_STATE(1596)] = 69119, + [SMALL_STATE(1597)] = 69126, + [SMALL_STATE(1598)] = 69133, + [SMALL_STATE(1599)] = 69140, + [SMALL_STATE(1600)] = 69147, + [SMALL_STATE(1601)] = 69154, + [SMALL_STATE(1602)] = 69161, + [SMALL_STATE(1603)] = 69168, + [SMALL_STATE(1604)] = 69175, + [SMALL_STATE(1605)] = 69182, + [SMALL_STATE(1606)] = 69189, + [SMALL_STATE(1607)] = 69196, + [SMALL_STATE(1608)] = 69203, + [SMALL_STATE(1609)] = 69210, + [SMALL_STATE(1610)] = 69217, + [SMALL_STATE(1611)] = 69224, + [SMALL_STATE(1612)] = 69231, + [SMALL_STATE(1613)] = 69238, + [SMALL_STATE(1614)] = 69245, + [SMALL_STATE(1615)] = 69252, + [SMALL_STATE(1616)] = 69259, + [SMALL_STATE(1617)] = 69266, + [SMALL_STATE(1618)] = 69273, + [SMALL_STATE(1619)] = 69280, + [SMALL_STATE(1620)] = 69287, + [SMALL_STATE(1621)] = 69294, + [SMALL_STATE(1622)] = 69301, + [SMALL_STATE(1623)] = 69308, + [SMALL_STATE(1624)] = 69315, + [SMALL_STATE(1625)] = 69322, + [SMALL_STATE(1626)] = 69329, + [SMALL_STATE(1627)] = 69336, + [SMALL_STATE(1628)] = 69343, + [SMALL_STATE(1629)] = 69350, + [SMALL_STATE(1630)] = 69357, + [SMALL_STATE(1631)] = 69364, + [SMALL_STATE(1632)] = 69371, + [SMALL_STATE(1633)] = 69378, + [SMALL_STATE(1634)] = 69385, + [SMALL_STATE(1635)] = 69392, + [SMALL_STATE(1636)] = 69399, + [SMALL_STATE(1637)] = 69406, + [SMALL_STATE(1638)] = 69413, + [SMALL_STATE(1639)] = 69420, + [SMALL_STATE(1640)] = 69427, + [SMALL_STATE(1641)] = 69434, + [SMALL_STATE(1642)] = 69441, + [SMALL_STATE(1643)] = 69448, + [SMALL_STATE(1644)] = 69455, + [SMALL_STATE(1645)] = 69462, + [SMALL_STATE(1646)] = 69469, + [SMALL_STATE(1647)] = 69476, + [SMALL_STATE(1648)] = 69483, + [SMALL_STATE(1649)] = 69490, + [SMALL_STATE(1650)] = 69497, + [SMALL_STATE(1651)] = 69504, + [SMALL_STATE(1652)] = 69511, + [SMALL_STATE(1653)] = 69518, + [SMALL_STATE(1654)] = 69525, + [SMALL_STATE(1655)] = 69532, + [SMALL_STATE(1656)] = 69539, + [SMALL_STATE(1657)] = 69546, + [SMALL_STATE(1658)] = 69553, + [SMALL_STATE(1659)] = 69560, + [SMALL_STATE(1660)] = 69567, + [SMALL_STATE(1661)] = 69574, + [SMALL_STATE(1662)] = 69581, + [SMALL_STATE(1663)] = 69588, + [SMALL_STATE(1664)] = 69595, + [SMALL_STATE(1665)] = 69602, + [SMALL_STATE(1666)] = 69609, + [SMALL_STATE(1667)] = 69616, + [SMALL_STATE(1668)] = 69623, + [SMALL_STATE(1669)] = 69630, + [SMALL_STATE(1670)] = 69637, + [SMALL_STATE(1671)] = 69644, + [SMALL_STATE(1672)] = 69651, + [SMALL_STATE(1673)] = 69658, + [SMALL_STATE(1674)] = 69665, + [SMALL_STATE(1675)] = 69672, + [SMALL_STATE(1676)] = 69679, + [SMALL_STATE(1677)] = 69686, + [SMALL_STATE(1678)] = 69693, + [SMALL_STATE(1679)] = 69700, + [SMALL_STATE(1680)] = 69707, + [SMALL_STATE(1681)] = 69714, + [SMALL_STATE(1682)] = 69721, + [SMALL_STATE(1683)] = 69728, + [SMALL_STATE(1684)] = 69735, + [SMALL_STATE(1685)] = 69742, + [SMALL_STATE(1686)] = 69749, + [SMALL_STATE(1687)] = 69756, + [SMALL_STATE(1688)] = 69763, + [SMALL_STATE(1689)] = 69770, + [SMALL_STATE(1690)] = 69777, + [SMALL_STATE(1691)] = 69784, + [SMALL_STATE(1692)] = 69791, + [SMALL_STATE(1693)] = 69798, + [SMALL_STATE(1694)] = 69805, + [SMALL_STATE(1695)] = 69812, + [SMALL_STATE(1696)] = 69819, + [SMALL_STATE(1697)] = 69826, + [SMALL_STATE(1698)] = 69833, + [SMALL_STATE(1699)] = 69840, + [SMALL_STATE(1700)] = 69847, + [SMALL_STATE(1701)] = 69854, + [SMALL_STATE(1702)] = 69861, + [SMALL_STATE(1703)] = 69868, + [SMALL_STATE(1704)] = 69875, + [SMALL_STATE(1705)] = 69882, + [SMALL_STATE(1706)] = 69889, + [SMALL_STATE(1707)] = 69896, + [SMALL_STATE(1708)] = 69903, + [SMALL_STATE(1709)] = 69910, + [SMALL_STATE(1710)] = 69917, + [SMALL_STATE(1711)] = 69924, + [SMALL_STATE(1712)] = 69931, + [SMALL_STATE(1713)] = 69938, + [SMALL_STATE(1714)] = 69945, + [SMALL_STATE(1715)] = 69952, + [SMALL_STATE(1716)] = 69959, + [SMALL_STATE(1717)] = 69966, + [SMALL_STATE(1718)] = 69973, + [SMALL_STATE(1719)] = 69980, + [SMALL_STATE(1720)] = 69987, + [SMALL_STATE(1721)] = 69994, + [SMALL_STATE(1722)] = 70001, + [SMALL_STATE(1723)] = 70008, + [SMALL_STATE(1724)] = 70015, + [SMALL_STATE(1725)] = 70022, + [SMALL_STATE(1726)] = 70029, + [SMALL_STATE(1727)] = 70036, + [SMALL_STATE(1728)] = 70043, + [SMALL_STATE(1729)] = 70050, + [SMALL_STATE(1730)] = 70057, + [SMALL_STATE(1731)] = 70064, + [SMALL_STATE(1732)] = 70071, + [SMALL_STATE(1733)] = 70078, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -82371,1687 +83259,1698 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(462), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1321), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1201), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(406), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1523), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1525), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1531), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(385), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(324), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(508), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1712), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1619), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1585), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1648), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367), - [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(458), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1629), - [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), - [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343), - [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1016), - [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), - [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(908), - [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1035), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1037), - [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), - [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), - [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(493), - [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1688), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1713), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1691), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1521), - [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), - [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(462), - [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1321), - [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1201), - [120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(162), - [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(384), - [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(68), - [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(406), - [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(217), - [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(244), - [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(184), - [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1523), - [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1525), - [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1531), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(385), - [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(324), - [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(508), - [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(407), - [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1712), - [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(288), - [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(67), - [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(676), - [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(157), - [177] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(164), - [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(378), - [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1619), - [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1585), - [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1648), - [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(367), - [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(458), - [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1629), - [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(342), - [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(343), - [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1016), - [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(174), - [213] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(908), - [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(908), - [219] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(134), - [222] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1035), - [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1037), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1536), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, 0, 0), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), - [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(423), - [237] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(338), - [240] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(493), - [243] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(424), - [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1688), - [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(304), - [252] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(66), - [255] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1713), - [258] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1691), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), - [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(774), - [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), - [267] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(194), - [270] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), REDUCE(sym_primary_expression, 1, 0, 1), - [273] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(370), - [276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(773), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), - [280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 1), - [282] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(675), - [285] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(197), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [290] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(378), - [293] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(391), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(675), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), - [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1015), - [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724), - [306] = {.entry = {.count = 1, .reusable = false}}, SHIFT(724), - [308] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1045), - [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(853), - [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(826), - [318] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365), - [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), - [322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(465), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1171), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(554), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(564), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527), - [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), - [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), - [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), - [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(488), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), - [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(593), - [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506), - [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537), - [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), - [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), - [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), - [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), - [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), - [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1187), - [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), - [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481), - [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), - [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), - [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1515), - [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1580), - [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), - [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [570] = {.entry = {.count = 1, .reusable = false}}, SHIFT(926), - [572] = {.entry = {.count = 1, .reusable = false}}, SHIFT(676), - [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), - [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [580] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), REDUCE(sym_list_splat_pattern, 2, 0, 8), - [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(723), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), - [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), - [589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(675), - [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), - [595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [605] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(924), - [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(938), - [613] = {.entry = {.count = 1, .reusable = false}}, SHIFT(392), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924), - [623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1059), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1056), - [629] = {.entry = {.count = 1, .reusable = false}}, SHIFT(953), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(963), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(953), - [645] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1050), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1051), - [651] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), - [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), - [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(692), - [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), - [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849), - [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(662), - [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(855), - [671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 7), - [673] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, 0, 7), - [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [677] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), - [679] = {.entry = {.count = 1, .reusable = false}}, SHIFT(858), - [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), - [685] = {.entry = {.count = 1, .reusable = false}}, SHIFT(864), - [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), - [691] = {.entry = {.count = 1, .reusable = false}}, SHIFT(340), - [693] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1014), - [695] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), - [697] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, 0, 16), - [701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, 0, 16), - [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838), - [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(925), - [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), - [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), - [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(857), - [713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(842), - [715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1678), - [719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370), - [721] = {.entry = {.count = 1, .reusable = false}}, SHIFT(863), - [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942), - [725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), - [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1018), - [729] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1683), - [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), - [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1665), - [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), - [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1596), - [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939), - [743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), - [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 1, 0, 0), - [747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(391), - [749] = {.entry = {.count = 1, .reusable = false}}, SHIFT(865), - [751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418), - [753] = {.entry = {.count = 1, .reusable = false}}, SHIFT(840), - [755] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403), - [757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1020), - [759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 7), - [763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, 0, 16), - [765] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), - [767] = {.entry = {.count = 1, .reusable = false}}, SHIFT(375), - [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 24), - [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), - [775] = {.entry = {.count = 1, .reusable = false}}, SHIFT(852), - [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931), - [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1584), - [783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(839), - [785] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), - [787] = {.entry = {.count = 1, .reusable = false}}, SHIFT(973), - [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699), - [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1694), - [793] = {.entry = {.count = 1, .reusable = false}}, SHIFT(972), - [795] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), - [797] = {.entry = {.count = 1, .reusable = false}}, SHIFT(341), - [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), - [801] = {.entry = {.count = 1, .reusable = false}}, SHIFT(781), - [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(777), - [805] = {.entry = {.count = 1, .reusable = false}}, SHIFT(780), - [807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [809] = {.entry = {.count = 1, .reusable = false}}, SHIFT(383), - [811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1, 0, 0), - [813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 3, 0, 50), - [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949), - [817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1586), - [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877), - [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1635), - [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), - [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, 0, 141), - [827] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, 0, 141), - [829] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1019), - [831] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, 0, 7), - [833] = {.entry = {.count = 1, .reusable = false}}, SHIFT(359), - [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), - [837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 98), - [839] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, 0, 98), - [841] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, 0, 16), - [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), - [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(720), - [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(764), - [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701), - [851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870), - [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704), - [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), - [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867), - [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941), - [861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 122), - [863] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 122), - [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 123), - [867] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 123), - [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), - [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(918), - [873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), - [875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), - [877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), - [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), - [881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), - [883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), - [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), - [887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1, 0, 0), - [889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713), - [891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894), - [893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(866), - [895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), - [897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), - [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900), - [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917), - [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(871), - [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), - [907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 3, 0, 16), - [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 7), - [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 33), - [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714), - [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971), - [917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954), - [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), - [921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913), - [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), - [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), - [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893), - [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727), - [931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(940), - [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), - [935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717), - [937] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 81), - [939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 81), - [941] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1609), - [943] = {.entry = {.count = 1, .reusable = false}}, SHIFT(311), - [945] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1606), - [947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1704), - [949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1646), - [951] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295), - [953] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1588), - [955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 69), - [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [961] = {.entry = {.count = 1, .reusable = false}}, SHIFT(912), - [963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), - [965] = {.entry = {.count = 1, .reusable = false}}, SHIFT(911), - [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [969] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), - [971] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1017), - [973] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [975] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1, 0, 0), - [977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), - [979] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, 0, 56), - [981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, 0, 56), - [983] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1611), - [985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), - [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 10), - [993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 28), - [995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 29), - [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 0), - [999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 40), - [1001] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, 0, 40), - [1003] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 68), - [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1620), - [1007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 0), - [1009] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 69), - [1011] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 95), - [1013] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, 0, 70), - [1015] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, 0, 70), - [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1630), - [1019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 54), - [1021] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 54), - [1023] = {.entry = {.count = 1, .reusable = false}}, SHIFT(380), - [1025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4, 0, 0), - [1027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4, 0, 0), - [1029] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), - [1031] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), - [1033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 102), - [1035] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 102), - [1037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2, 0, 0), - [1039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2, 0, 0), - [1041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(429), - [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1, 0, 0), - [1045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1, 0, 0), - [1047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 76), - [1049] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 76), - [1051] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 77), - [1053] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 77), - [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), - [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1599), - [1061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), - [1063] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), - [1065] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(295), - [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), - [1070] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), - [1072] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1611), - [1075] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(311), - [1078] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1704), - [1081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3, 0, 0), - [1083] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3, 0, 0), - [1085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512), - [1087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), - [1089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1714), - [1091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), - [1093] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), - [1095] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), SHIFT_REPEAT(380), - [1098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1055), - [1100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(474), - [1102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(487), - [1104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [1106] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), SHIFT_REPEAT(429), - [1109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, 0, 158), - [1111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, 0, 158), - [1113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, 0, 56), - [1115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, 0, 56), - [1117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 81), - [1119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 81), - [1121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 130), - [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 130), - [1125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, 0, 147), - [1127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, 0, 147), - [1129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, 0, 148), - [1131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, 0, 148), - [1133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, 0, 163), - [1135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, 0, 163), - [1137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, 0, 157), - [1139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, 0, 157), - [1141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, 0, 164), - [1143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, 0, 164), - [1145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, 0, 165), - [1147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, 0, 165), - [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), - [1151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), - [1153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(856), - [1156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1, 0, 0), - [1158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1, 0, 0), - [1160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(862), - [1162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(856), - [1164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1498), - [1166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(862), - [1169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, 0, 50), - [1171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662), - [1173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), - [1175] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), REDUCE(sym_primary_expression, 1, 0, 0), - [1178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 0), - [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), - [1182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 0), - [1184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), - [1186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 74), - [1188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 74), - [1190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, 0, 54), - [1192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, 0, 54), - [1194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 143), - [1196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 143), - [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 24), - [1200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 56), - [1202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 56), - [1204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 129), - [1206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 129), - [1208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 81), - [1210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 81), - [1212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, 0, 77), - [1214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, 0, 77), - [1216] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), - [1221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 80), - [1227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 80), - [1229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1464), - [1231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 125), - [1233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 125), - [1235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 105), - [1237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 105), - [1239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, 0, 55), - [1241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 55), - [1243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, 0, 81), - [1245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, 0, 81), - [1247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, 0, 56), - [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, 0, 56), - [1251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 4, 0, 134), - [1253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 4, 0, 134), - [1255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 150), - [1257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 150), - [1259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 151), - [1261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 151), - [1263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, 0, 159), - [1265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, 0, 159), - [1267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2, 0, 0), - [1269] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), REDUCE(sym_tuple, 2, 0, 0), - [1272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2, 0, 0), - [1274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), - [1276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2, 0, 0), - [1278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [1280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), REDUCE(sym_list, 2, 0, 0), - [1283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), - [1285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), - [1287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2, 0, 0), - [1289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 75), - [1291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 75), - [1293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 6, 0, 106), - [1295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 6, 0, 106), - [1297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, 0, 56), - [1299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, 0, 56), - [1301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 56), - [1303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 56), - [1305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 114), - [1307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 114), - [1309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 115), - [1311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 115), - [1313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, 0, 19), - [1315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, 0, 19), - [1317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 116), - [1319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 116), - [1321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 117), - [1323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 117), - [1325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 118), - [1327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 118), - [1329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, 0, 124), - [1331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, 0, 124), - [1333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 126), - [1335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 126), - [1337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 127), - [1339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 127), - [1341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 128), - [1343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 128), - [1345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, 0, 81), - [1347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, 0, 81), - [1349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, 0, 81), - [1351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, 0, 81), - [1353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 137), - [1355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 137), - [1357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 138), - [1359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 138), - [1361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, 0, 139), - [1363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, 0, 139), - [1365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 142), - [1367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 142), - [1369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 144), - [1371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 144), - [1373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 145), - [1375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 145), - [1377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 146), - [1379] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 146), - [1381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 82), - [1383] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 82), - [1385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 87), - [1387] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 87), - [1389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 152), - [1391] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 152), - [1393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 153), - [1395] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 153), - [1397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, 0, 154), - [1399] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, 0, 154), - [1401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 155), - [1403] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 155), - [1405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 156), - [1407] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 156), - [1409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 89), - [1411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 89), - [1413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 161), - [1415] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 161), - [1417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, 0, 162), - [1419] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, 0, 162), - [1421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 90), - [1423] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 90), - [1425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, 0, 57), - [1427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, 0, 57), - [1429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 59), - [1431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 59), - [1433] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 60), - [1435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 60), - [1437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, 0, 64), - [1439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, 0, 64), - [1441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 78), - [1443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 78), - [1445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 79), - [1447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 79), - [1449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 91), - [1451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 91), - [1453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 99), - [1455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 99), - [1457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 101), - [1459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 101), - [1461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 6, 0, 103), - [1463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 6, 0, 103), - [1465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 104), - [1467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 104), - [1469] = {.entry = {.count = 1, .reusable = false}}, SHIFT(834), - [1471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_separator, 1, 0, 0), - [1473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(860), - [1475] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), - [1477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(632), - [1479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2, 0, 0), - [1481] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2, 0, 0), - [1483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), - [1485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), - [1487] = {.entry = {.count = 1, .reusable = false}}, SHIFT(659), - [1489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), - [1491] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), - [1493] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), - [1496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), - [1498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), - [1500] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1045), - [1503] = {.entry = {.count = 1, .reusable = false}}, SHIFT(645), - [1505] = {.entry = {.count = 1, .reusable = false}}, SHIFT(656), - [1507] = {.entry = {.count = 1, .reusable = false}}, SHIFT(674), - [1509] = {.entry = {.count = 1, .reusable = false}}, SHIFT(691), - [1511] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1000), - [1513] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1001), - [1515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239), - [1517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 2), - [1519] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 2), - [1521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, 0, 2), - [1523] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, 0, 2), - [1525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 20), - [1527] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 20), - [1529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, 0, 20), - [1531] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, 0, 20), - [1533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), - [1535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2, 0, 0), - [1537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 31), - [1539] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 31), - [1541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 61), - [1543] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 61), - [1545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 67), - [1547] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 67), - [1549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 93), - [1551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 93), - [1553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, 0, 25), - [1555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, 0, 25), - [1557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 25), - [1559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 25), - [1561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 0), - [1563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 0), - [1565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 31), - [1567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 31), - [1569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 25), - [1571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 25), - [1573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 26), - [1575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 26), - [1577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 61), - [1579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 61), - [1581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, 0, 61), - [1583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, 0, 61), - [1585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2, 0, 0), - [1587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2, 0, 0), - [1589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 31), - [1591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 31), - [1593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1651), - [1595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [1597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), - [1599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(663), - [1601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), - [1603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), - [1605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), - [1607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), - [1609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [1611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668), - [1613] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), - [1615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), - [1617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1700), - [1619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669), - [1621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670), - [1623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(665), - [1625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625), - [1627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 67), - [1629] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 67), - [1631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, 0, 51), - [1633] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, 0, 51), - [1635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 0), - [1637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 0), - [1639] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628), - [1641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), - [1643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), - [1645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), - [1647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), - [1649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671), - [1651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), - [1653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1634), - [1655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689), - [1657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650), - [1659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(630), - [1661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615), - [1663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, 0, 51), - [1665] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, 0, 51), - [1667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 31), - [1669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 31), - [1671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 61), - [1673] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 61), - [1675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, 0, 51), - [1677] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, 0, 51), - [1679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), - [1681] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), - [1683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 93), - [1685] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 93), - [1687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, 0, 17), - [1689] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, 0, 17), - [1691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_operator, 3, 0, 39), - [1693] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_operator, 3, 0, 39), - [1695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2, 0, 0), - [1697] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2, 0, 0), - [1699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 41), - [1701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 41), - [1703] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1050), - [1706] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1051), - [1709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 71), - [1711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 71), - [1713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), - [1715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), - [1717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, 0, 13), - [1719] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, 0, 13), - [1721] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1056), - [1724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1605), - [1726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [1728] = {.entry = {.count = 1, .reusable = false}}, SHIFT(646), - [1730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), - [1732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648), - [1734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), - [1736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(694), - [1738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [1740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), - [1742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), - [1744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1720), - [1746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652), - [1748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), - [1750] = {.entry = {.count = 1, .reusable = false}}, SHIFT(648), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(487), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(450), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1361), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1177), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(178), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1563), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1573), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1528), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(430), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(493), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(348), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1660), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(309), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1671), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1604), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1598), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(480), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1663), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1020), + [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(177), + [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920), + [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(920), + [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1053), + [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1042), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(422), + [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(433), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(509), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1699), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(307), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1724), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1702), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), + [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1581), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), + [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1575), + [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), + [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, 0, 0), + [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(487), + [120] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(450), + [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1361), + [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1177), + [129] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(157), + [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(365), + [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(75), + [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(403), + [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(195), + [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(246), + [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(178), + [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1563), + [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1573), + [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1528), + [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(422), + [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(433), + [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(509), + [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(423), + [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1699), + [174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(307), + [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(67), + [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(635), + [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(156), + [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(167), + [189] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(383), + [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1724), + [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1604), + [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1598), + [201] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(452), + [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(480), + [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1702), + [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(377), + [213] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(400), + [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1020), + [219] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(177), + [222] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(920), + [225] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(920), + [228] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(135), + [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), + [233] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1053), + [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1042), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), + [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(396), + [244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(430), + [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(493), + [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(348), + [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1660), + [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(309), + [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(66), + [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1671), + [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1663), + [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(781), + [270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(773), + [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), + [274] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(199), + [277] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), REDUCE(sym_primary_expression, 1, 0, 1), + [280] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(343), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), + [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 1), + [287] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(657), + [290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(200), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [295] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(383), + [298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(376), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), + [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1016), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725), + [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(725), + [313] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1037), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1038), + [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(503), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [349] = {.entry = {.count = 1, .reusable = false}}, SHIFT(851), + [351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(844), + [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), + [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), + [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), + [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), + [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553), + [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), + [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), + [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559), + [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), + [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598), + [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(556), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1171), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), + [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1209), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1523), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1564), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(707), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [577] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), REDUCE(sym_list_splat_pattern, 2, 0, 8), + [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [582] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), + [584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657), + [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), + [590] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [592] = {.entry = {.count = 1, .reusable = false}}, SHIFT(941), + [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [596] = {.entry = {.count = 1, .reusable = false}}, SHIFT(635), + [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [600] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), + [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), + [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [610] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(878), + [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(886), + [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [618] = {.entry = {.count = 1, .reusable = false}}, SHIFT(346), + [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(878), + [628] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1051), + [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1048), + [634] = {.entry = {.count = 1, .reusable = false}}, SHIFT(350), + [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(970), + [638] = {.entry = {.count = 1, .reusable = false}}, SHIFT(949), + [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), + [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662), + [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), + [652] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1062), + [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), + [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), + [662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689), + [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [666] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), + [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849), + [670] = {.entry = {.count = 1, .reusable = false}}, SHIFT(842), + [672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571), + [680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(397), + [682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1018), + [684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), + [686] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557), + [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877), + [692] = {.entry = {.count = 1, .reusable = false}}, SHIFT(848), + [694] = {.entry = {.count = 1, .reusable = false}}, SHIFT(839), + [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [698] = {.entry = {.count = 1, .reusable = false}}, SHIFT(636), + [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, 0, 16), + [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, 0, 16), + [704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [706] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 7), + [710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, 0, 7), + [712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), + [714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861), + [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883), + [718] = {.entry = {.count = 1, .reusable = false}}, SHIFT(829), + [720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(850), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1630), + [726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891), + [730] = {.entry = {.count = 1, .reusable = false}}, SHIFT(415), + [732] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1015), + [734] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1593), + [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(708), + [740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1701), + [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), + [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1695), + [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), + [748] = {.entry = {.count = 1, .reusable = false}}, SHIFT(387), + [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 1, 0, 0), + [752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(376), + [754] = {.entry = {.count = 1, .reusable = false}}, SHIFT(863), + [756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(865), + [758] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), + [760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), + [762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1014), + [764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, 0, 16), + [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 7), + [770] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), + [772] = {.entry = {.count = 1, .reusable = false}}, SHIFT(828), + [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(862), + [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917), + [780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1673), + [782] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), + [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1655), + [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 26), + [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [794] = {.entry = {.count = 1, .reusable = false}}, SHIFT(378), + [796] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344), + [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1, 0, 0), + [800] = {.entry = {.count = 1, .reusable = false}}, SHIFT(971), + [802] = {.entry = {.count = 1, .reusable = false}}, SHIFT(954), + [804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(733), + [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1669), + [808] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [810] = {.entry = {.count = 1, .reusable = false}}, SHIFT(398), + [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 3, 0, 51), + [816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(783), + [818] = {.entry = {.count = 1, .reusable = false}}, SHIFT(764), + [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(772), + [822] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978), + [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1679), + [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711), + [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, 0, 145), + [832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, 0, 145), + [834] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1019), + [836] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, 0, 7), + [838] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384), + [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), + [842] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, 0, 16), + [844] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 101), + [846] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, 0, 101), + [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1, 0, 0), + [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(904), + [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), + [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), + [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(777), + [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714), + [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732), + [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), + [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710), + [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868), + [870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 126), + [872] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 126), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), + [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910), + [880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 127), + [882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 127), + [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960), + [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), + [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), + [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), + [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), + [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(720), + [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907), + [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), + [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), + [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880), + [906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), + [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(888), + [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 3, 0, 16), + [914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 7), + [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 34), + [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(937), + [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(895), + [922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), + [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), + [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), + [928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(702), + [930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931), + [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894), + [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906), + [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704), + [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(705), + [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), + [942] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, 0, 57), + [944] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, 0, 57), + [946] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1620), + [948] = {.entry = {.count = 1, .reusable = false}}, SHIFT(296), + [950] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1617), + [952] = {.entry = {.count = 1, .reusable = false}}, SHIFT(871), + [954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(879), + [956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [960] = {.entry = {.count = 1, .reusable = false}}, SHIFT(390), + [962] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1021), + [964] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), + [966] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1644), + [968] = {.entry = {.count = 1, .reusable = false}}, SHIFT(302), + [970] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1628), + [972] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1676), + [974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 70), + [976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1715), + [980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 84), + [982] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 84), + [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [988] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1, 0, 0), + [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 30), + [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 70), + [998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 0), + [1000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 10), + [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 29), + [1004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 69), + [1006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1690), + [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 0), + [1012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1602), + [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 98), + [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4, 0, 0), + [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4, 0, 0), + [1020] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 79), + [1022] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 79), + [1024] = {.entry = {.count = 1, .reusable = false}}, SHIFT(360), + [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 80), + [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 80), + [1030] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 105), + [1032] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 105), + [1034] = {.entry = {.count = 1, .reusable = false}}, SHIFT(428), + [1036] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), + [1038] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), + [1040] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(302), + [1043] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), + [1045] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), + [1047] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1676), + [1050] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), + [1052] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), + [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3, 0, 0), + [1056] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3, 0, 0), + [1058] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2, 0, 0), + [1060] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2, 0, 0), + [1062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 41), + [1064] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, 0, 41), + [1066] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 55), + [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 55), + [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1, 0, 0), + [1072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1, 0, 0), + [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, 0, 71), + [1076] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, 0, 71), + [1078] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(296), + [1081] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1715), + [1084] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), + [1086] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), + [1088] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(360), + [1091] = {.entry = {.count = 1, .reusable = false}}, SHIFT(494), + [1093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(490), + [1095] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [1097] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(428), + [1100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), + [1102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1639), + [1106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), + [1108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [1110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1725), + [1112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, 0, 161), + [1114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, 0, 161), + [1116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), + [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), + [1120] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(827), + [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1, 0, 0), + [1125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1, 0, 0), + [1127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(830), + [1129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, 0, 168), + [1131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, 0, 168), + [1133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, 0, 169), + [1135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, 0, 169), + [1137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, 0, 167), + [1139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, 0, 167), + [1141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, 0, 151), + [1143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, 0, 151), + [1145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, 0, 57), + [1147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, 0, 57), + [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, 0, 152), + [1151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, 0, 152), + [1153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 84), + [1155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 84), + [1157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 134), + [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 134), + [1161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1362), + [1163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1248), + [1165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(827), + [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1047), + [1169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, 0, 162), + [1171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, 0, 162), + [1173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(830), + [1176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, 0, 55), + [1178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, 0, 55), + [1180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 147), + [1182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 147), + [1184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 56), + [1186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, 0, 56), + [1188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 108), + [1190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 108), + [1192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 129), + [1194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 129), + [1196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 84), + [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 84), + [1200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, 0, 80), + [1202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, 0, 80), + [1204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), + [1206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), + [1208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 133), + [1210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 133), + [1212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 83), + [1214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 83), + [1216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1443), + [1218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), + [1220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 57), + [1222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 57), + [1224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1466), + [1226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 26), + [1228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, 0, 51), + [1230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), + [1232] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), REDUCE(sym_primary_expression, 1, 0, 0), + [1235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 0), + [1237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), + [1239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 0), + [1241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), + [1243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 154), + [1245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 154), + [1247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 155), + [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 155), + [1251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, 0, 84), + [1253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, 0, 84), + [1255] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), + [1260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, 0, 57), + [1266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, 0, 57), + [1268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, 0, 163), + [1270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, 0, 163), + [1272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 4, 0, 138), + [1274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 4, 0, 138), + [1276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 142), + [1278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 142), + [1280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 61), + [1282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 61), + [1284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, 0, 65), + [1286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, 0, 65), + [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 92), + [1290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 92), + [1292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 93), + [1294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 93), + [1296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 78), + [1298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 78), + [1300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 94), + [1302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 94), + [1304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 81), + [1306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 81), + [1308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 82), + [1310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 82), + [1312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 85), + [1314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 85), + [1316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 90), + [1318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 90), + [1320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 102), + [1322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 102), + [1324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 104), + [1326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 104), + [1328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 6, 0, 106), + [1330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 6, 0, 106), + [1332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 107), + [1334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 107), + [1336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 6, 0, 109), + [1338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 6, 0, 109), + [1340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, 0, 57), + [1342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, 0, 57), + [1344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 57), + [1346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 57), + [1348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 117), + [1350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 117), + [1352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 118), + [1354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 118), + [1356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 119), + [1358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 119), + [1360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 120), + [1362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 120), + [1364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 121), + [1366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 121), + [1368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, 0, 128), + [1370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, 0, 128), + [1372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 130), + [1374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 130), + [1376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 131), + [1378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 131), + [1380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 132), + [1382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 132), + [1384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, 0, 84), + [1386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, 0, 84), + [1388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, 0, 84), + [1390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, 0, 84), + [1392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 141), + [1394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 141), + [1396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, 0, 143), + [1398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, 0, 143), + [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, 0, 19), + [1402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, 0, 19), + [1404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 146), + [1406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 146), + [1408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 148), + [1410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 148), + [1412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 149), + [1414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 149), + [1416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 150), + [1418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 150), + [1420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2, 0, 0), + [1422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), REDUCE(sym_tuple, 2, 0, 0), + [1425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2, 0, 0), + [1427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), + [1429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2, 0, 0), + [1431] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 156), + [1433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 156), + [1435] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 157), + [1437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 157), + [1439] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, 0, 158), + [1441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, 0, 158), + [1443] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 159), + [1445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 159), + [1447] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 160), + [1449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 160), + [1451] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 165), + [1453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 165), + [1455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, 0, 166), + [1457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, 0, 166), + [1459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, 0, 58), + [1461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, 0, 58), + [1463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [1465] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), REDUCE(sym_list, 2, 0, 0), + [1468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), + [1470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), + [1472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2, 0, 0), + [1474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 60), + [1476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 60), + [1478] = {.entry = {.count = 1, .reusable = false}}, SHIFT(859), + [1480] = {.entry = {.count = 1, .reusable = false}}, SHIFT(854), + [1482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_separator, 1, 0, 0), + [1484] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), + [1486] = {.entry = {.count = 1, .reusable = false}}, SHIFT(625), + [1488] = {.entry = {.count = 1, .reusable = false}}, SHIFT(627), + [1490] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633), + [1492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(656), + [1494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(691), + [1496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(688), + [1498] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1004), + [1500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(997), + [1502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236), + [1504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2, 0, 0), + [1506] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2, 0, 0), + [1508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), + [1510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), + [1512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), + [1514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), + [1516] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1037), + [1519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), + [1521] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), + [1523] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1038), + [1526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 2), + [1528] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 2), + [1530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 20), + [1532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 20), + [1534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, 0, 20), + [1536] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, 0, 20), + [1538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, 0, 2), + [1540] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, 0, 2), + [1542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 96), + [1544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 96), + [1546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 32), + [1548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 32), + [1550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 0), + [1552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 0), + [1554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, 0, 62), + [1556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, 0, 62), + [1558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 32), + [1560] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 32), + [1562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2, 0, 0), + [1564] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2, 0, 0), + [1566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 62), + [1568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 62), + [1570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 96), + [1572] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 96), + [1574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 68), + [1576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 68), + [1578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 62), + [1580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 62), + [1582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 32), + [1584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 32), + [1586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 62), + [1588] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 62), + [1590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, 0, 52), + [1592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, 0, 52), + [1594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), + [1596] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), + [1598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, 0, 27), + [1600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, 0, 27), + [1602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1637), + [1604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [1606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), + [1608] = {.entry = {.count = 1, .reusable = false}}, SHIFT(646), + [1610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), + [1612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648), + [1614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), + [1616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650), + [1618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [1620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), + [1622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), + [1624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), + [1626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1729), + [1628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652), + [1630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), + [1632] = {.entry = {.count = 1, .reusable = false}}, SHIFT(648), + [1634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619), + [1636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 27), + [1638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 27), + [1640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 0), + [1642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 0), + [1644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 32), + [1646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 32), + [1648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 27), + [1650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 27), + [1652] = {.entry = {.count = 1, .reusable = false}}, SHIFT(665), + [1654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), + [1656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), + [1658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668), + [1660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669), + [1662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670), + [1664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), + [1666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1641), + [1668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671), + [1670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), + [1672] = {.entry = {.count = 1, .reusable = false}}, SHIFT(667), + [1674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), + [1676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, 0, 52), + [1678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, 0, 52), + [1680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, 0, 52), + [1682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, 0, 52), + [1684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, 0, 52), + [1686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, 0, 52), + [1688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 68), + [1690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 68), + [1692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), + [1694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2, 0, 0), + [1696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, 0, 17), + [1698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, 0, 17), + [1700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, 0, 13), + [1702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, 0, 13), + [1704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), + [1706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), + [1708] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), + [1711] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_operator, 3, 0, 40), + [1713] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_operator, 3, 0, 40), + [1715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2, 0, 0), + [1717] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2, 0, 0), + [1719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), + [1721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), + [1723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), + [1725] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), + [1727] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1062), + [1730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1643), + [1732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [1734] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628), + [1736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), + [1738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), + [1740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674), + [1742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686), + [1744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [1746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(694), + [1748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), + [1750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1723), [1752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), - [1754] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1059), - [1757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(681), - [1759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682), - [1761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), - [1763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684), - [1765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685), - [1767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686), - [1769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681), - [1771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1674), - [1773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687), - [1775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(688), - [1777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(683), - [1779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), - [1781] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1035), - [1784] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1037), - [1787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1632), - [1789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [1791] = {.entry = {.count = 1, .reusable = false}}, SHIFT(635), - [1793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), - [1795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), - [1797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), - [1799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), - [1801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [1803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(693), - [1805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), - [1807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1671), - [1809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(633), - [1811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634), - [1813] = {.entry = {.count = 1, .reusable = false}}, SHIFT(661), - [1815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), - [1817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), - [1819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1695), - [1821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [1823] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), - [1825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), - [1827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), - [1829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), - [1831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), - [1833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [1835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), - [1837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), - [1839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1612), - [1841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), - [1843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), - [1845] = {.entry = {.count = 1, .reusable = false}}, SHIFT(639), - [1847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), - [1849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), - [1851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1038), - [1853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), - [1855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), - [1857] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), - [1859] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), - [1861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1559), - [1863] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1142), - [1865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933), - [1867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(994), - [1869] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1072), - [1871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1072), - [1873] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1140), - [1875] = {.entry = {.count = 1, .reusable = false}}, SHIFT(373), - [1877] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), - [1879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), - [1881] = {.entry = {.count = 1, .reusable = false}}, SHIFT(394), - [1883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [1885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), - [1887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1154), - [1889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1120), - [1891] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1139), - [1893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1127), - [1895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1119), - [1897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), - [1899] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1116), - [1901] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1091), - [1903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), - [1905] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(665), - [1908] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), - [1910] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1700), - [1913] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(665), - [1916] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(625), - [1919] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(630), - [1922] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1634), - [1925] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(630), - [1928] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(615), - [1931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison_operator, 2, 0, 18), - [1933] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison_operator, 2, 0, 18), - [1935] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 36), - [1937] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 36), SHIFT_REPEAT(612), - [1940] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1562), - [1942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1161), - [1944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1561), - [1946] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(648), - [1949] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1720), - [1952] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(648), - [1955] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(623), - [1958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1137), - [1960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 25), - [1962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 34), - [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(661), - [1967] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1671), - [1970] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(661), - [1973] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(618), - [1976] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, 0, 25), - [1978] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 31), - [1980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(683), - [1983] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1674), - [1986] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(683), - [1989] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(626), - [1992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1115), - [1994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [1996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 16), - [1998] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(639), - [2001] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1612), - [2004] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(639), - [2007] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(622), - [2010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [2012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [2014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [2016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [2018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1479), - [2020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), - [2022] = {.entry = {.count = 1, .reusable = false}}, SHIFT(614), - [2024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), - [2026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678), - [2028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1465), - [2030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), - [2032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [2034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), - [2036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), - [2038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), - [2040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), - [2042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1342), - [2044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1547), - [2046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3, 0, 0), - [2048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2, 0, 0), - [2050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_operator, 2, 0, 10), - [2052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_not_operator, 2, 0, 10), - [2054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), - [2056] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1667), - [2059] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181), - [2061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1147), - [2063] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1147), - [2065] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [2067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841), - [2069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [2071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), - [2073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), - [2075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1595), - [2077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), - [2079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, 0, 7), - [2081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), - [2083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), - [2085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847), - [2087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830), - [2089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827), - [2091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1667), - [2093] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1, 0, 0), - [2095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1, 0, 0), - [2097] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 0), - [2099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), - [2101] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), SHIFT(175), - [2104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(551), - [2106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [2108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), - [2110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), - [2112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2, 0, 0), - [2114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2, 0, 0), - [2116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861), - [2118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), - [2120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696), - [2122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), - [2124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(698), - [2126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(806), - [2128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(807), - [2130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(181), - [2133] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1147), - [2136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1147), - [2139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), - [2141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(808), - [2143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(809), - [2145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1470), - [2147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(859), - [2149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1404), - [2151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851), - [2153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(850), - [2155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 35), - [2157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 35), - [2159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, 0, 39), - [2161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), - [2163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, 0, 32), - [2165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, 0, 32), - [2167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), - [2169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710), - [2171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), - [2173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [2175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, 0, 39), - [2177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, 0, 66), - [2179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), - [2181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, 0, 0), - [2183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 83), - [2185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1566), - [2187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868), - [2189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, 0, 66), - [2191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), - [2193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [2195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(930), - [2197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [2199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 27), - [2201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 2, 0, 107), - [2203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1574), - [2205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(888), - [2207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), - [2209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), - [2211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, 0, 0), - [2213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 27), - [2215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1, 0, 0), - [2217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3, 0, 0), - [2219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(987), - [2221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), - [2223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(346), - [2226] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(1595), - [2229] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(497), - [2232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [2234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), - [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2, 0, 0), - [2238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [2240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), + [1754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), + [1756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(654), + [1758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(617), + [1760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1615), + [1762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [1764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(638), + [1766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), + [1768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), + [1770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), + [1772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), + [1774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [1776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), + [1778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), + [1780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1691), + [1782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659), + [1784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), + [1786] = {.entry = {.count = 1, .reusable = false}}, SHIFT(643), + [1788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), + [1790] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1051), + [1793] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1048), + [1796] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1042), + [1799] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1053), + [1802] = {.entry = {.count = 1, .reusable = false}}, SHIFT(678), + [1804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), + [1806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), + [1808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681), + [1810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682), + [1812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), + [1814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678), + [1816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1683), + [1818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684), + [1820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685), + [1822] = {.entry = {.count = 1, .reusable = false}}, SHIFT(680), + [1824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621), + [1826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [1828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1722), + [1830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [1832] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), + [1834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), + [1836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), + [1838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), + [1840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), + [1842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [1844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), + [1846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), + [1848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1656), + [1850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), + [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677), + [1854] = {.entry = {.count = 1, .reusable = false}}, SHIFT(640), + [1856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616), + [1858] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1060), + [1860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889), + [1862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1497), + [1864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1579), + [1866] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1139), + [1868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), + [1870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1007), + [1872] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1088), + [1874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1088), + [1876] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1168), + [1878] = {.entry = {.count = 1, .reusable = false}}, SHIFT(351), + [1880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [1882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), + [1884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), + [1886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), + [1888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), + [1890] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367), + [1892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [1894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), + [1896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), + [1898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1129), + [1900] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1111), + [1902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), + [1904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), + [1906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1137), + [1908] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1098), + [1910] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1132), + [1912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison_operator, 2, 0, 18), + [1914] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison_operator, 2, 0, 18), + [1916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), + [1918] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), + [1920] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(667), + [1923] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1641), + [1926] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(667), + [1929] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(620), + [1932] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(648), + [1935] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1729), + [1938] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(648), + [1941] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(619), + [1944] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), + [1946] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), SHIFT_REPEAT(590), + [1949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1558), + [1951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), + [1953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1557), + [1955] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(680), + [1958] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1683), + [1961] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(680), + [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(621), + [1967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 32), + [1969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 27), + [1971] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(643), + [1974] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1691), + [1977] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(643), + [1980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(618), + [1983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, 0, 27), + [1985] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(654), + [1988] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1723), + [1991] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(654), + [1994] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(617), + [1997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 35), + [1999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1150), + [2001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1116), + [2003] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(640), + [2006] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1656), + [2009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(640), + [2012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(616), + [2015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [2017] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 16), + [2019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1500), + [2021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476), + [2023] = {.entry = {.count = 1, .reusable = false}}, SHIFT(615), + [2025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), + [2027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632), + [2029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1491), + [2031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [2033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), + [2035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [2037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [2039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [2041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [2043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [2045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [2047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [2049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [2051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1324), + [2053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1525), + [2055] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3, 0, 0), + [2057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2, 0, 0), + [2059] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_operator, 2, 0, 10), + [2061] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_not_operator, 2, 0, 10), + [2063] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), + [2065] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1662), + [2068] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(180), + [2071] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), + [2074] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), + [2077] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [2079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), + [2081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 0), + [2083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1662), + [2085] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2, 0, 0), + [2087] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2, 0, 0), + [2089] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), + [2091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1149), + [2093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1149), + [2095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696), + [2097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699), + [2099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), + [2101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(698), + [2103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [2105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [2107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [2109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1646), + [2111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), + [2113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, 0, 7), + [2115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [2117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [2119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(857), + [2121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836), + [2123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(796), + [2125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(787), + [2127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(788), + [2129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1388), + [2131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(864), + [2133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1429), + [2135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(837), + [2137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843), + [2139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853), + [2141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(852), + [2143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(860), + [2145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), + [2147] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), SHIFT(176), + [2150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(588), + [2152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), + [2154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [2156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), + [2158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1, 0, 0), + [2160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1, 0, 0), + [2162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795), + [2164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, 0, 40), + [2166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, 0, 40), + [2168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), + [2170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [2172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, 0, 0), + [2174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, 0, 0), + [2176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, 0, 67), + [2178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), + [2180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [2182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [2184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 23), + [2186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 23), + [2188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), + [2190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945), + [2192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), + [2194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [2196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, 0, 33), + [2198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, 0, 33), + [2200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 36), + [2202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 36), + [2204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(940), + [2206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [2208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 2, 0, 110), + [2210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1561), + [2212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, 0, 67), + [2214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717), + [2216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706), + [2218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [2220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 86), + [2222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1565), + [2224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1, 0, 0), + [2226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [2228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1, 0, 0), + [2230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4, 0, 0), + [2232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(989), + [2234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2, 0, 0), + [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2, 0, 0), + [2238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [2240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), [2242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__f_expression, 1, 0, 0), - [2244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2, 0, 0), - [2246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), - [2248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(987), - [2251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2, 0, 0), - [2253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), - [2255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1, 0, 0), - [2257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4, 0, 0), - [2259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), - [2261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), - [2263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), - [2265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, 0, 136), - [2267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, 0, 98), - [2269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [2271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1717), - [2273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1713), - [2275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1691), - [2277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5, 0, 0), - [2279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5, 0, 0), - [2281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 31), - [2283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1685), - [2285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1619), - [2287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1629), - [2289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, 0, 136), + [2244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [2246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [2248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3, 0, 0), + [2250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), + [2252] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(989), + [2255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), + [2257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(385), + [2260] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(1646), + [2263] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(504), + [2266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2, 0, 0), + [2268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, 0, 140), + [2270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, 0, 135), + [2272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3, 0, 0), + [2274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3, 0, 0), + [2276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, 0, 136), + [2278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, 0, 140), + [2280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(986), + [2282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 145), + [2284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [2286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), + [2288] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(299), [2291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 4, 0, 0), - [2293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [2295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [2297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2, 0, 0), - [2299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, 0, 149), - [2301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, 0, 14), - [2303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6, 0, 0), - [2305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, 0, 136), - [2307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 122), - [2309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [2311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7, 0, 0), - [2313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, 0, 136), - [2315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, 0, 136), - [2317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), - [2319] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1133), - [2322] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1133), - [2325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), - [2327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, 0, 136), - [2329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 123), - [2331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [2333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4, 0, 0), - [2335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, 0, 132), - [2337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(986), - [2339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1, 0, 0), - [2341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(988), - [2343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, 0, 136), - [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 141), - [2347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [2349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1, 0, 0), - [2351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), - [2353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1133), - [2355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1, 0, 0), - [2357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [2293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, 0, 153), + [2295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4, 0, 0), + [2297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, 0, 101), + [2299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [2301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, 0, 140), + [2303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), + [2305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [2307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1728), + [2309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1724), + [2311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1702), + [2313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1668), + [2315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1671), + [2317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1663), + [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5, 0, 0), + [2321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5, 0, 0), + [2323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, 0, 140), + [2325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), + [2327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [2329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), + [2331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2, 0, 0), + [2333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), + [2335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1135), + [2338] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1135), + [2341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), + [2343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6, 0, 0), + [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, 0, 140), + [2347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7, 0, 0), + [2349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1, 0, 0), + [2351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(988), + [2353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, 0, 140), + [2355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, 0, 14), + [2357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), [2359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 2, 0, 0), - [2361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2, 0, 0), - [2363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3, 0, 0), - [2365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, 0, 131), - [2367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 2, 0, 0), - [2369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), - [2371] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(297), - [2374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3, 0, 0), - [2376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1219), - [2378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1312), - [2380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1528), - [2382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), - [2384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(708), - [2386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [2388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1606), - [2390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 0), - [2392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 31), - [2394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [2396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 10), - [2398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), - [2400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, 0, 0), - [2402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, 0, 66), - [2404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), - [2406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, 0, 11), - [2408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), - [2410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1588), - [2412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1220), - [2414] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1696), - [2416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1659), - [2418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3, 0, 0), - [2420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1, 0, 0), - [2422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1703), - [2424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), - [2426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), - [2428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), - [2430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), - [2432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [2434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), - [2436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), - [2438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [2440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), - [2442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, 0, 15), - [2444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), - [2446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), - [2448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), - [2450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), - [2452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1216), - [2454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1336), - [2456] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1664), - [2458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, 0, 32), - [2460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), - [2462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [2464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), - [2466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [2468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), - [2470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [2472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [2474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), - [2476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1, 0, 0), - [2478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, 0, 62), - [2480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [2482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 16), - [2484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1, 0, 0), - [2486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, 0, 43), - [2488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, 0, 43), - [2490] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, 0, 43), - [2492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, 0, 43), - [2494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1698), - [2496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, 0, 6), - [2498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [2500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [2502] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(251), - [2505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), - [2507] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(263), - [2510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, 0, 43), - [2512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, 0, 43), - [2514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 10), - [2516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2, 0, 0), - [2518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), - [2520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, 0, 35), - [2522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [2524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1298), - [2526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, 0, 119), - [2528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [2530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2, 0, 0), - [2532] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1698), - [2535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [2537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [2539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [2541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, 0, 109), - [2543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [2545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), - [2547] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(979), - [2550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 31), - [2552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, 0, 135), - [2554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), - [2556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), - [2558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1, 0, 0), - [2560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [2562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 95), - [2564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), - [2566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), - [2568] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(342), - [2571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 68), - [2573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [2575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [2577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), - [2579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), - [2581] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, 0, 43), - [2583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, 0, 43), - [2585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1305), - [2587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 6), - [2589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [2591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [2593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1206), - [2595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 16), - [2597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [2599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [2601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 31), - [2603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 27), - [2605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, 0, 11), - [2607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, 0, 110), - [2609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1380), - [2611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1310), - [2613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1283), - [2615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1419), - [2617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 120), - [2619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 121), - [2621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, 0, 30), - [2623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [2625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, 0, 22), - [2627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1311), - [2629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 35), - [2631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 94), - [2633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), - [2635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, 0, 53), - [2637] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(250), - [2640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [2642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1, 0, 0), - [2644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [2646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1288), - [2648] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), - [2650] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(173), - [2653] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(1284), - [2656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, 0, 88), - [2658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 36), - [2660] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 36), SHIFT_REPEAT(242), - [2663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1223), - [2665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1302), - [2667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1458), - [2669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2, 0, 0), - [2671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1284), - [2673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1255), - [2675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1636), - [2677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, 0, 6), - [2679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, 0, 140), - [2681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 4, 0, 63), - [2683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 16), - [2685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), - [2687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(854), - [2689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [2691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, 0, 133), - [2693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), - [2695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(856), - [2697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1638), - [2699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2, 0, 0), - [2701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3, 0, 0), - [2703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1022), - [2705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1253), - [2707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1494), - [2709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [2711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(862), - [2713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 23), - [2715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), - [2717] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 44), SHIFT_REPEAT(1499), - [2720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 44), - [2722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1455), - [2724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1457), - [2726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1216), - [2728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 0), - [2730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 49), - [2732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), - [2734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 0), - [2736] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 52), SHIFT_REPEAT(339), - [2739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 52), - [2741] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(432), - [2744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1300), - [2748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), - [2750] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(315), - [2753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2, 0, 0), - [2755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 84), - [2757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1367), - [2759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1681), - [2761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [2763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [2765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), - [2767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [2769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [2771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), - [2773] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1, 0, 0), - [2775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1362), - [2777] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1638), - [2780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), - [2782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exception_list, 2, 0, 16), - [2784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), - [2786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [2788] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 28), - [2790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, 0, 65), - [2792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), - [2794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0), - [2796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [2798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [2800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [2802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, 0, 15), - [2804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), - [2806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [2810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [2812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), - [2814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [2816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [2818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [2820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [2822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1271), - [2824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 22), - [2826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3, 0, 0), - [2828] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3, 0, 0), - [2830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, 0, 7), - [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467), - [2834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), SHIFT_REPEAT(133), - [2837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), - [2839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1275), - [2841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [2843] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 29), - [2845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [2847] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), - [2849] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), SHIFT_REPEAT(1362), - [2852] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 36), SHIFT_REPEAT(430), - [2855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 36), - [2857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), - [2859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), - [2861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, 0, 23), - [2863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, 0, 23), - [2865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [2867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1538), - [2869] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1239), - [2871] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1263), - [2873] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 113), SHIFT_REPEAT(1182), - [2876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 113), - [2878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1027), - [2880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), - [2882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), - [2884] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(245), - [2887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 36), - [2889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 86), - [2891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), - [2893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1405), - [2895] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 44), SHIFT_REPEAT(1460), - [2898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1025), - [2900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 1, 0, 0), - [2902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1182), - [2904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1446), - [2906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), - [2908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [2910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920), - [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), - [2916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [2918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1, 0, 0), - [2920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1, 0, 0), - [2922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 36), - [2924] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 36), SHIFT_REPEAT(233), - [2927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), - [2929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, 0, 15), - [2931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1658), - [2933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(702), - [2935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [2937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), - [2939] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 36), SHIFT_REPEAT(282), - [2942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 36), - [2944] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1, 0, 0), - [2946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [2948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 37), - [2950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), - [2952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), - [2954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), - [2956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [2958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(981), - [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), - [2962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [2964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396), - [2966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), - [2968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), - [2970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [2972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1379), - [2974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), - [2976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [2978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960), - [2980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [2982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aliased_import, 3, 0, 45), - [2984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), - [2986] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), SHIFT_REPEAT(1560), - [2989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1008), - [2991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [2993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882), - [2995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [2997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885), - [2999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1026), - [3001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889), - [3003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [3005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1131), - [3007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890), - [3009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [3011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), - [3013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), - [3015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1, 0, 0), - [3017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(895), - [3019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [3021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), - [3023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), - [3025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), - [3027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [3029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1431), - [3031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1640), - [3033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [3035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1314), - [3037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [3039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [3041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), - [3043] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1028), - [3046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, -1, 58), - [3048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 112), - [3050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), - [3052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [3054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1467), - [3056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732), - [3058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [3060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711), - [3062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [3064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2, 0, 0), - [3066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [3068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), - [3070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [3072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1482), - [3074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), - [3076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903), - [3078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [3080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1, 0, 0), - [3082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(980), - [3084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1132), - [3086] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), - [3088] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(984), - [3091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935), - [3093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1167), - [3095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1023), - [3097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1476), - [3099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [3101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1313), - [3103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1134), - [3105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(996), - [3107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1159), - [3109] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1021), - [3112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), - [3114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(878), - [3116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [3118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943), - [3120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [3122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927), - [3124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), - [3126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728), - [3128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1328), - [3130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1329), - [3132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [3134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731), - [3136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), - [3138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 16), - [3140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [3142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1218), - [3144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), - [3146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [3148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 73), - [3150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 73), - [3152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), - [3154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), - [3156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928), - [3158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [3160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [3162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1029), - [3165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 5), - [3167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 31), - [3169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846), - [3171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [3173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [3175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [3177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [3179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, 0, 97), - [3181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, 0, 108), - [3183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 92), - [3185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, 0, 111), - [3187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1, 0, 0), - [3189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 86), - [3191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1, 0, 0), - [3193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1, 0, 0), - [3195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, 0, 46), - [3197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1, 0, 0), - [3199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 85), - [3201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 38), - [3203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1, 0, 0), - [3205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 47), - [3207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 48), - [3209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, 0, 39), - [3211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [3213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), - [3215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [3217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [3219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, 0, 62), - [3221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [3223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [3225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1663), - [3227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1126), - [3229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [3231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), - [3233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0), - [3235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1160), - [3237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [3239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [3241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, 0, 108), - [3243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), - [3245] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1078), - [3247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1078), - [3249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1239), - [3251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 31), - [3253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1662), - [3255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1138), - [3257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), - [3259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, 0, 96), - [3261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1623), - [3263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 0), - [3265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1124), - [3267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124), - [3269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, 0, 160), - [3271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 67), - [3273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, 0, 11), - [3275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [3277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [3279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [3281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), - [3283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1326), - [3285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), - [3287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [3289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [3291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304), - [3293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869), - [3295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907), - [3297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), - [3299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(872), - [3301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), - [3303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), - [3305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [3307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1, 0, 0), - [3309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1323), - [3311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), - [3313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [3315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), - [3317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), - [3319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), - [3321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [3323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [3325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [3327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [3329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627), - [3331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(879), - [3333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880), - [3335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(705), - [3337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [3339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [3341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [3343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1301), - [3345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5, 0, 0), - [3347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [3349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [3351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726), - [3353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891), - [3355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883), - [3357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(998), - [3359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1281), - [3361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4, 0, 0), - [3363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), - [3365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), - [3367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(886), - [3369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), - [3371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887), - [3373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1421), - [3375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1420), - [3377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [3379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3, 0, 0), - [3381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [3383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1004), - [3385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1217), - [3387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921), - [3389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [3391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [3393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1299), - [3395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(729), - [3397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730), - [3399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), - [3401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, 0, 23), - [3403] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [3405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706), - [3407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1372), - [3409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), - [3411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1272), - [3413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707), - [3415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [3417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1049), - [3419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), - [3421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [3423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658), - [3425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), - [3427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(690), - [3429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), - [3431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1363), - [3433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910), - [3435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(937), - [3437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945), - [3439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), - [3441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1545), - [3443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [3445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), - [3447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1571), - [3449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721), - [3451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), - [3453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [3455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [3457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), - [3459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1256), - [3461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722), - [3463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947), - [3465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1371), - [3467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [3469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1289), - [3471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1502), - [3473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673), - [3475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1568), - [3477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1514), - [3479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1244), - [3481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944), - [3483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967), - [3485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), - [3487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1169), - [3489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [3491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), - [3493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [3495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1369), - [3497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1370), - [3499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), - [3501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978), - [3503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), - [3505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), - [3507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(985), + [2361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1, 0, 0), + [2363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1135), + [2365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1135), + [2367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1, 0, 0), + [2369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 2, 0, 0), + [2371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 32), + [2373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2, 0, 0), + [2375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 126), + [2377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [2379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 127), + [2381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [2383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, 0, 140), + [2385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [2387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), + [2389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [2391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1617), + [2393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, 0, 33), + [2395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [2397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [2399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), + [2401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [2403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [2405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [2407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), + [2409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1228), + [2411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), + [2413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1700), + [2415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1, 0, 0), + [2417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, 0, 63), + [2419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), + [2421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 10), + [2423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [2425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, 0, 15), + [2427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1217), + [2429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1333), + [2431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1552), + [2433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3, 0, 0), + [2435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1347), + [2437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1227), + [2439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1623), + [2441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1635), + [2443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [2445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), + [2447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 32), + [2449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [2451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913), + [2453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 0), + [2455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [2457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [2459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), + [2461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [2463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), + [2465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588), + [2467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), + [2469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, 0, 11), + [2471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, 0, 67), + [2473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), + [2475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1628), + [2477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), + [2479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [2481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [2483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(723), + [2485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1, 0, 0), + [2487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1711), + [2489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, 0, 0), + [2491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1597), + [2493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1, 0, 0), + [2495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), + [2497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(972), + [2500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [2502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 16), + [2504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [2506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2, 0, 0), + [2508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 69), + [2510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [2512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2, 0, 0), + [2514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, 0, 44), + [2516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, 0, 44), + [2518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, 0, 6), + [2520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), + [2522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [2524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, 0, 112), + [2526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, 0, 44), + [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, 0, 44), + [2530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), + [2532] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(262), + [2535] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(256), + [2538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304), + [2540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, 0, 122), + [2542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1, 0, 0), + [2544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [2546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [2548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [2550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, 0, 139), + [2552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 10), + [2554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [2556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), + [2558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, 0, 36), + [2560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1368), + [2562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [2564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [2566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1228), + [2568] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1597), + [2571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [2573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, 0, 44), + [2575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, 0, 44), + [2577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, 0, 44), + [2579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, 0, 44), + [2581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 32), + [2583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), + [2585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), + [2587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), + [2589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), + [2591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 98), + [2593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [2595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), + [2597] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(377), + [2600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, 0, 144), + [2602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, 0, 11), + [2604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 123), + [2606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 23), + [2608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, 0, 24), + [2610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, 0, 31), + [2612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 16), + [2614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [2616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 4, 0, 64), + [2618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1252), + [2620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1318), + [2622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1292), + [2624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1496), + [2626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, 0, 91), + [2628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1331), + [2630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [2632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [2634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [2636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1191), + [2638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 36), + [2640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 124), + [2642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, 0, 54), + [2644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [2646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2, 0, 0), + [2648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [2650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1288), + [2652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 32), + [2654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1289), + [2656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1674), + [2658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, 0, 6), + [2660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, 0, 113), + [2662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [2664] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(254), + [2667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 97), + [2669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [2671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), + [2673] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), SHIFT_REPEAT(242), + [2676] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), + [2678] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(173), + [2681] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(1288), + [2684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 6), + [2686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1464), + [2688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1308), + [2690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1401), + [2692] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1, 0, 0), + [2694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1279), + [2696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1625), + [2698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3, 0, 0), + [2700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3, 0, 0), + [2702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [2704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1542), + [2706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [2708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [2710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [2712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), + [2714] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(315), + [2717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827), + [2719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [2721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), + [2723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1022), + [2725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1492), + [2727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1450), + [2729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [2731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2, 0, 0), + [2733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, 0, 7), + [2735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), + [2737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [2739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [2741] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), SHIFT_REPEAT(133), + [2744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), + [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1226), + [2748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425), + [2750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1334), + [2752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1664), + [2754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1264), + [2756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 24), + [2758] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1625), + [2761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), + [2763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1295), + [2765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), + [2767] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), SHIFT_REPEAT(1323), + [2770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0), + [2772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), + [2774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [2776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, 0, 66), + [2778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), + [2780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 25), + [2782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [2784] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1452), + [2787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), + [2789] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), SHIFT_REPEAT(429), + [2792] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), + [2794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 16), + [2796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), + [2798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [2800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [2802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [2804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), + [2806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [2810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 29), + [2812] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, 0, 137), + [2814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847), + [2816] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 50), + [2818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exception_list, 2, 0, 16), + [2820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), + [2822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), + [2824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3, 0, 0), + [2826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [2828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [2830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 30), + [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [2834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [2836] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2, 0, 0), + [2838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), + [2840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [2842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [2844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [2846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, 0, 15), + [2848] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), SHIFT_REPEAT(359), + [2851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), + [2853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [2855] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(434), + [2858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1346), + [2860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830), + [2862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), + [2864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [2866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 0), + [2868] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 87), + [2870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, 0, 25), + [2872] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1, 0, 0), + [2874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1323), + [2876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, 0, 25), + [2878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 0), + [2880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [2882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915), + [2884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 115), + [2886] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), SHIFT_REPEAT(1202), + [2889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), + [2891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), + [2893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1378), + [2895] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1030), + [2898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1341), + [2900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aliased_import, 3, 0, 46), + [2902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [2904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 38), + [2906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), + [2908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [2910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), + [2916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), + [2918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [2920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [2922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882), + [2924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [2926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939), + [2928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [2930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), + [2932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [2934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924), + [2936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), + [2938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1358), + [2940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1296), + [2942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1025), + [2944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [2946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [2948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), + [2950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [2952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), + [2954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(953), + [2956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [2958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), + [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [2962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 16), + [2964] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1, 0, 0), + [2966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), + [2968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [2970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1461), + [2972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(963), + [2974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [2976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), + [2978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [2980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(995), + [2982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1230), + [2984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), + [2986] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(985), + [2989] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1029), + [2992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [2994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1631), + [2996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730), + [2998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [3000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), + [3002] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), SHIFT_REPEAT(1514), + [3005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [3007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), + [3009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [3011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935), + [3013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701), + [3015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [3017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942), + [3019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [3021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), + [3023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [3025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943), + [3027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1118), + [3029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(973), + [3031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944), + [3033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [3035] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), + [3037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), + [3039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869), + [3041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [3043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870), + [3045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [3047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1459), + [3049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1476), + [3051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1028), + [3053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 1, 0, 0), + [3055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [3057] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(243), + [3060] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), + [3062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [3064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), + [3066] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), SHIFT_REPEAT(234), + [3069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1169), + [3071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1471), + [3073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [3075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), + [3077] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, 0, 15), + [3079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [3081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [3083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [3085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [3087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [3089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1103), + [3091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), + [3093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1107), + [3095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1480), + [3097] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1493), + [3100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [3102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1, 0, 0), + [3104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [3106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1140), + [3108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), SHIFT_REPEAT(280), + [3111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), + [3113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1202), + [3115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1486), + [3117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1707), + [3119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [3121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1009), + [3123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1108), + [3125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 89), + [3127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2, 0, 0), + [3129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1433), + [3131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(980), + [3133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1, 0, 0), + [3135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, -1, 59), + [3137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1221), + [3139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1259), + [3141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [3143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713), + [3145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1380), + [3147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [3149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(729), + [3151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1024), + [3153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [3155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1, 0, 0), + [3157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1, 0, 0), + [3159] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1023), + [3162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), + [3164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [3166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(925), + [3168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [3170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [3172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [3174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1027), + [3176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, 0, 22), + [3178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 32), + [3180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, 0, 40), + [3182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 48), + [3184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 89), + [3186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 49), + [3188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 68), + [3190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0), + [3192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 95), + [3194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, 0, 111), + [3196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1, 0, 0), + [3198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1704), + [3200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1136), + [3202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [3204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [3206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1, 0, 0), + [3208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 75), + [3210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 76), + [3212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, 0, 164), + [3214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 88), + [3216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [3218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [3220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1105), + [3222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), + [3224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [3226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [3228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [3230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [3232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [3234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [3236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [3238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [3240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1, 0, 0), + [3242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [3244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [3246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1221), + [3248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, 0, 47), + [3250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1636), + [3252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1115), + [3254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1115), + [3256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1, 0, 0), + [3258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1109), + [3260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1109), + [3262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 32), + [3264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 39), + [3266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 7, 0, 125), + [3268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1, 0, 0), + [3270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, 0, 11), + [3272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 5), + [3274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, 0, 99), + [3276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1077), + [3278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1077), + [3280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, 0, 63), + [3282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1685), + [3284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(858), + [3286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [3288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [3290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, 0, 100), + [3292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, 0, 114), + [3294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 0), + [3296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, 0, 111), + [3298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [3300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722), + [3302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1251), + [3304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1294), + [3306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1353), + [3308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [3310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1303), + [3312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947), + [3314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5, 0, 0), + [3316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(984), + [3318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1310), + [3320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [3322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1, 0, 0), + [3324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [3326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [3328] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [3330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [3332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1590), + [3334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), + [3336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724), + [3338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [3340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), + [3342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [3344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [3346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [3348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1377), + [3350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1494), + [3352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(911), + [3354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [3356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [3358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [3360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(912), + [3362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [3364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [3366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1373), + [3368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [3370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), + [3372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1359), + [3374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1572), + [3376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(690), + [3378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [3380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), + [3382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [3384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [3386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), + [3388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [3390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [3392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928), + [3394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [3396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1367), + [3398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890), + [3400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), + [3402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), + [3404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(987), + [3406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(930), + [3408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [3410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1190), + [3412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1056), + [3414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1283), + [3416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1554), + [3418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [3420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933), + [3422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), + [3424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), + [3426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), + [3428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1307), + [3430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727), + [3432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(938), + [3434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1391), + [3436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(999), + [3438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1183), + [3440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728), + [3442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), + [3444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), + [3446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [3448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687), + [3450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(918), + [3452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893), + [3454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), + [3456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [3458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1002), + [3460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4, 0, 0), + [3462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634), + [3464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867), + [3466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885), + [3468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887), + [3470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, 0, 25), + [3472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), + [3474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [3476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1271), + [3478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), + [3480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1273), + [3482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [3484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), + [3486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), + [3488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [3490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3, 0, 0), + [3492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967), + [3494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1414), + [3496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [3498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1239), + [3500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [3502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1578), + [3504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), + [3506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721), + [3508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1588), + [3510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), + [3512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [3514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921), + [3516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), + [3518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), + [3520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1375), + [3522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1376), + [3524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731), + [3526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), + [3528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(977), + [3530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(981), }; enum ts_external_scanner_symbol_identifiers { diff --git a/python/extractor/tsg-python/tsp/src/tree_sitter/array.h b/python/extractor/tsg-python/tsp/src/tree_sitter/array.h index e99918e5d85..56fc8cd4709 100644 --- a/python/extractor/tsg-python/tsp/src/tree_sitter/array.h +++ b/python/extractor/tsg-python/tsp/src/tree_sitter/array.h @@ -60,7 +60,13 @@ extern "C" { /// Free any memory allocated for this array. Note that this does not free any /// memory allocated for the array's contents. -#define array_delete(self) _array__delete((self), (void *)(self)->contents, sizeof(*self)) +#define array_delete(self) \ + do { \ + if ((self)->contents) ts_free((self)->contents); \ + (self)->contents = NULL; \ + (self)->size = 0; \ + (self)->capacity = 0; \ + } while (0) /// Push a new `element` onto the end of the array. #define array_push(self, element) \ @@ -130,12 +136,11 @@ extern "C" { /// Swap one array with another #define array_swap(self, other) \ do { \ - struct Swap swapped_contents = _array__swap( \ - (void *)(self)->contents, &(self)->size, &(self)->capacity, \ - (void *)(other)->contents, &(other)->size, &(other)->capacity \ - ); \ - (self)->contents = swapped_contents.self_contents; \ - (other)->contents = swapped_contents.other_contents; \ + void *_array_swap_tmp = (void *)(self)->contents; \ + (self)->contents = (other)->contents; \ + (other)->contents = _array_swap_tmp; \ + _array__swap(&(self)->size, &(self)->capacity, \ + &(other)->size, &(other)->capacity); \ } while (0) /// Get the size of the array contents @@ -188,12 +193,6 @@ extern "C" { // The `Array` type itself was not altered as a solution in order to avoid breakage // with existing consumers (in particular, parsers with external scanners). -/// This is not what you're looking for, see `array_delete`. -static inline void _array__delete(void *self, void *contents, size_t self_size) { - if (contents) ts_free(contents); - if (self) memset(self, 0, self_size); -} - /// This is not what you're looking for, see `array_erase`. static inline void _array__erase(void* self_contents, uint32_t *size, size_t element_size, uint32_t index) { @@ -228,31 +227,15 @@ static inline void *_array__assign(void* self_contents, uint32_t *self_size, uin return new_contents; } -struct Swap { - void *self_contents; - void *other_contents; -}; - /// This is not what you're looking for, see `array_swap`. -// static inline void _array__swap(Array *self, Array *other) { -static inline struct Swap _array__swap(void *self_contents, uint32_t *self_size, uint32_t *self_capacity, - void *other_contents, uint32_t *other_size, uint32_t *other_capacity) { - void *new_self_contents = other_contents; - uint32_t new_self_size = *other_size; - uint32_t new_self_capacity = *other_capacity; - - void *new_other_contents = self_contents; - *other_size = *self_size; - *other_capacity = *self_capacity; - - *self_size = new_self_size; - *self_capacity = new_self_capacity; - - struct Swap out = { - .self_contents = new_self_contents, - .other_contents = new_other_contents, - }; - return out; +static inline void _array__swap(uint32_t *self_size, uint32_t *self_capacity, + uint32_t *other_size, uint32_t *other_capacity) { + uint32_t tmp_size = *self_size; + uint32_t tmp_capacity = *self_capacity; + *self_size = *other_size; + *self_capacity = *other_capacity; + *other_size = tmp_size; + *other_capacity = tmp_capacity; } /// This is not what you're looking for, see `array_push` or `array_grow_by`. From fe94828fe4e0152f03a3c834db1309ecda200e63 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 14:23:29 +0000 Subject: [PATCH 086/208] Python: Add overlay annotations to AST template Otherwise these will disappear every time we regenerate the AST. --- python/extractor/semmle/query_gen.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/extractor/semmle/query_gen.py b/python/extractor/semmle/query_gen.py index b3fc2442e8a..e7f9d280ad1 100644 --- a/python/extractor/semmle/query_gen.py +++ b/python/extractor/semmle/query_gen.py @@ -211,6 +211,8 @@ HEADER = '''/** * WARNING: Any modifications to this file will be lost. * Relations can be changed by modifying master.py. */ +overlay[local] +module; ''' def main(): From 1ddfed6b6b7fae6b80ebbfc923bd535bfa73c76c Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 14:25:08 +0000 Subject: [PATCH 087/208] Python: Add QL support for lazy imports Adds a new `isLazy` predicate to the relevant classes, and adds the relevant dbscheme (and up/downgrade) changes. On upgrades we do nothing, and on downgrades we remove the `is_lazy` bits. --- .../old.dbscheme | 1291 +++++++++++++++++ .../py_bools.ql | 12 + .../semmlecode.python.dbscheme | 1289 ++++++++++++++++ .../upgrade.properties | 3 + python/extractor/semmle/python/master.py | 2 + python/ql/lib/semmle/python/AstGenerated.qll | 6 + python/ql/lib/semmlecode.python.dbscheme | 4 +- .../old.dbscheme | 1289 ++++++++++++++++ .../semmlecode.python.dbscheme | 1291 +++++++++++++++++ .../upgrade.properties | 2 + 10 files changed, 5188 insertions(+), 1 deletion(-) create mode 100644 python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/old.dbscheme create mode 100644 python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/py_bools.ql create mode 100644 python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/semmlecode.python.dbscheme create mode 100644 python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/upgrade.properties create mode 100644 python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme create mode 100644 python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.python.dbscheme create mode 100644 python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/old.dbscheme b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/old.dbscheme new file mode 100644 index 00000000000..eb5fc917c79 --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/old.dbscheme @@ -0,0 +1,1291 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ +/* Import.is_lazy = 2, bool */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ +/* ImportStar.is_lazy = 2, bool */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Import | @py_ImportStar | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/py_bools.ql b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/py_bools.ql new file mode 100644 index 00000000000..725f01b9767 --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/py_bools.ql @@ -0,0 +1,12 @@ +class BoolParent extends @py_bool_parent { + string toString() { result = "BoolParent" } +} + +// Drop py_bools rows for Import and ImportStar parents, +// since the old schema does not include them in @py_bool_parent. +from BoolParent parent, int idx +where + py_bools(parent, idx) and + not parent instanceof @py_Import and + not parent instanceof @py_ImportStar +select parent, idx diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/semmlecode.python.dbscheme b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/semmlecode.python.dbscheme new file mode 100644 index 00000000000..279cbb08d38 --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/semmlecode.python.dbscheme @@ -0,0 +1,1289 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/upgrade.properties b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/upgrade.properties new file mode 100644 index 00000000000..4b9f991c51a --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/upgrade.properties @@ -0,0 +1,3 @@ +description: Remove is_lazy field from Import and ImportStar (downgrade PEP 810 lazy imports) +compatibility: backwards +py_bools.rel: run py_bools.qlo diff --git a/python/extractor/semmle/python/master.py b/python/extractor/semmle/python/master.py index 2c17de4e14c..adb8d5c8a0d 100755 --- a/python/extractor/semmle/python/master.py +++ b/python/extractor/semmle/python/master.py @@ -334,9 +334,11 @@ IfExp.field('body', expr, 'if-true expression') IfExp.field('orelse', expr, 'if-false expression') Import.field('names', alias_list, 'alias list') +Import.field('is_lazy', bool_, 'lazy') ImportFrom.set_name('ImportStar') ImportFrom.field('module', expr) +ImportFrom.field('is_lazy', bool_, 'lazy') ImportMember.field('module', expr) ImportMember.field('name', string) diff --git a/python/ql/lib/semmle/python/AstGenerated.qll b/python/ql/lib/semmle/python/AstGenerated.qll index 8805a43bec3..056e727845c 100644 --- a/python/ql/lib/semmle/python/AstGenerated.qll +++ b/python/ql/lib/semmle/python/AstGenerated.qll @@ -698,6 +698,9 @@ class Import_ extends @py_Import, Stmt { /** Gets an alias of this import statement. */ Alias getAName() { result = this.getNames().getAnItem() } + /** Whether the lazy property of this import statement is true. */ + predicate isLazy() { py_bools(this, 2) } + override string toString() { result = "Import" } } @@ -720,6 +723,9 @@ class ImportStar_ extends @py_ImportStar, Stmt { /** Gets the module of this import * statement. */ Expr getModule() { py_exprs(result, _, this, 1) } + /** Whether the lazy property of this import * statement is true. */ + predicate isLazy() { py_bools(this, 2) } + override string toString() { result = "ImportStar" } } diff --git a/python/ql/lib/semmlecode.python.dbscheme b/python/ql/lib/semmlecode.python.dbscheme index 279cbb08d38..eb5fc917c79 100644 --- a/python/ql/lib/semmlecode.python.dbscheme +++ b/python/ql/lib/semmlecode.python.dbscheme @@ -517,6 +517,7 @@ py_extracted_version(int module : @py_Module ref, /* Import.location = 0, location */ /* Import.names = 1, alias_list */ +/* Import.is_lazy = 2, bool */ /* ImportExpr.location = 0, location */ /* ImportExpr.parenthesised = 1, bool */ @@ -526,6 +527,7 @@ py_extracted_version(int module : @py_Module ref, /* ImportStar.location = 0, location */ /* ImportStar.module = 1, expr */ +/* ImportStar.is_lazy = 2, bool */ /* ImportMember.location = 0, location */ /* ImportMember.parenthesised = 1, bool */ @@ -1127,7 +1129,7 @@ case @py_unaryop.kind of @py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; -@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; +@py_bool_parent = @py_For | @py_Function | @py_Import | @py_ImportStar | @py_Print | @py_With | @py_expr | @py_pattern; @py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; diff --git a/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme new file mode 100644 index 00000000000..279cbb08d38 --- /dev/null +++ b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme @@ -0,0 +1,1289 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.python.dbscheme b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.python.dbscheme new file mode 100644 index 00000000000..eb5fc917c79 --- /dev/null +++ b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.python.dbscheme @@ -0,0 +1,1291 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ +/* Import.is_lazy = 2, bool */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ +/* ImportStar.is_lazy = 2, bool */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Import | @py_ImportStar | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties new file mode 100644 index 00000000000..ba9ec633f47 --- /dev/null +++ b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties @@ -0,0 +1,2 @@ +description: Add is_lazy field to Import and ImportStar for PEP 810 lazy imports +compatibility: backwards From 6b7d47ee7d2cc386649864a78535f56c02bc096e Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 14:39:13 +0000 Subject: [PATCH 088/208] Python: Add QL test for the new syntax --- .../test/3/extractor-tests/lazy-imports/test.expected | 7 +++++++ python/ql/test/3/extractor-tests/lazy-imports/test.py | 10 ++++++++++ python/ql/test/3/extractor-tests/lazy-imports/test.ql | 7 +++++++ 3 files changed, 24 insertions(+) create mode 100644 python/ql/test/3/extractor-tests/lazy-imports/test.expected create mode 100644 python/ql/test/3/extractor-tests/lazy-imports/test.py create mode 100644 python/ql/test/3/extractor-tests/lazy-imports/test.ql diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.expected b/python/ql/test/3/extractor-tests/lazy-imports/test.expected new file mode 100644 index 00000000000..9eb4f975dc4 --- /dev/null +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.expected @@ -0,0 +1,7 @@ +| 2 | Import | lazy | +| 3 | Import | lazy | +| 4 | Import | lazy | +| 5 | Import | lazy | +| 6 | Import | lazy | +| 9 | Import | normal | +| 10 | Import | normal | diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.py b/python/ql/test/3/extractor-tests/lazy-imports/test.py new file mode 100644 index 00000000000..775cac00bbf --- /dev/null +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.py @@ -0,0 +1,10 @@ +# Lazy imports (PEP 810) +lazy import a +lazy from b import c +lazy from d import e as f +lazy import g.h as i +lazy from ..j import k + +# Non-lazy imports +import x +from y import z diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.ql b/python/ql/test/3/extractor-tests/lazy-imports/test.ql new file mode 100644 index 00000000000..312019c7cd1 --- /dev/null +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.ql @@ -0,0 +1,7 @@ +import python + +string lazy(Import imp) { if imp.isLazy() then result = "lazy" else result = "normal" } + +from Import imp +where imp.getLocation().getFile().getShortName() = "test.py" +select imp.getLocation().getStartLine(), imp.toString(), lazy(imp) From 86020d9eed9024f1232809a8abcc02f5fcff9b20 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 14:43:30 +0000 Subject: [PATCH 089/208] Python: Add change note --- .../ql/lib/change-notes/2026-04-10-support-lazy-keyword.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 python/ql/lib/change-notes/2026-04-10-support-lazy-keyword.md diff --git a/python/ql/lib/change-notes/2026-04-10-support-lazy-keyword.md b/python/ql/lib/change-notes/2026-04-10-support-lazy-keyword.md new file mode 100644 index 00000000000..67de168ff47 --- /dev/null +++ b/python/ql/lib/change-notes/2026-04-10-support-lazy-keyword.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +- The Python extractor now supports the new `lazy import ...` and `lazy from ... import ...` (as defined in [PEP-810](https://peps.python.org/pep-0810/)) that will be part of Python 3.15. From 88160ef2e28e203085b1b7e1a07e5639bbbbcf86 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 13 Apr 2026 10:05:30 +0200 Subject: [PATCH 090/208] C#: Add change note. --- csharp/ql/lib/change-notes/2026-04-13-cfg.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2026-04-13-cfg.md diff --git a/csharp/ql/lib/change-notes/2026-04-13-cfg.md b/csharp/ql/lib/change-notes/2026-04-13-cfg.md new file mode 100644 index 00000000000..9c588fbcfa8 --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-04-13-cfg.md @@ -0,0 +1,20 @@ +--- +category: breaking +--- +* The C# control flow graph (CFG) implementation has been completely + rewritten. The CFG now includes additional nodes to more accurately represent + certain constructs. This also means that any existing code that implicitly + relies on very specific details about the CFG may need to be updated. + The CFG no longer uses splitting, which means that AST nodes now have a unique + CFG node representation. + Additionally, the following breaking changes have been made: + - `ControlFlow::Node` has been renamed to `ControlFlowNode`. + - `ControlFlow::Nodes` has been renamed to `ControlFlowNodes`. + - `BasicBlock.getCallable` has been renamed to `BasicBlock.getEnclosingCallable`. + - `BasicBlocks.qll` has been deleted. + - `ControlFlowNode.getAstNode` has changed its meaning. The AST-to-CFG + mapping remains one-to-many, but now for a different reason. It used to be + because of splitting, but now it's because of additional "helper" CFG + nodes. To get the (now canonical) CFG node for a given AST node, use + `ControlFlowNode.asExpr()` or `ControlFlowNode.asStmt()` or + `ControlFlowElement.getControlFlowNode()` instead. From 40eff6525de8cd74af954a06bd16ed7a8287daa7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 10 Apr 2026 16:57:58 +0200 Subject: [PATCH 091/208] Rust: Replace special handling of index expressions --- .../rust/frameworks/stdlib/Builtins.qll | 12 +++ .../typeinference/FunctionOverloading.qll | 10 +++ .../internal/typeinference/TypeInference.qll | 42 +-------- rust/tools/builtins/impls.rs | 86 +++++++++++++++++++ 4 files changed, 110 insertions(+), 40 deletions(-) create mode 100644 rust/tools/builtins/impls.rs diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll index 6b09ababd74..1a545da0db5 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll @@ -19,6 +19,13 @@ private class BuiltinsTypesFile extends File { } } +private class BuiltinsImplsFile extends File { + BuiltinsImplsFile() { + this.getBaseName() = "impls.rs" and + this.getParentContainer() instanceof BuiltinsFolder + } +} + /** * A builtin type, such as `bool` and `i32`. * @@ -221,3 +228,8 @@ class TupleType extends BuiltinType { ) } } + +/** A builtin implementation. */ +class BuiltinImpl extends Impl { + BuiltinImpl() { this.getFile() instanceof BuiltinsImplsFile } +} diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index d217fc3760a..ec0152c7eca 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -6,6 +6,8 @@ */ private import rust +private import codeql.rust.frameworks.stdlib.Builtins as Builtins +private import codeql.rust.frameworks.stdlib.Stdlib private import codeql.rust.internal.PathResolution private import Type private import TypeAbstraction @@ -94,6 +96,14 @@ private module MkSiblingImpls { not t1 instanceof TypeParameter or not t2 instanceof TypeParameter ) + or + // todo: handle blanket/non-blanket siblings in `implSiblings` + trait = + any(IndexTrait it | + implSiblingCandidate(impl, it, _, _) and + impl instanceof Builtins::BuiltinImpl and + path = TypePath::singleton(TAssociatedTypeTypeParameter(trait, it.getOutputType())) + ) } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index c6a268be126..a2f3d6efd78 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -3663,43 +3663,6 @@ private Type inferArrayExprType(ArrayExpr ae) { exists(ae) and result instanceof pragma[nomagic] private Type inferRangeExprType(RangeExpr re) { result = TDataType(getRangeType(re)) } -/** - * According to [the Rust reference][1]: _"array and slice-typed expressions - * can be indexed with a `usize` index ... For other types an index expression - * `a[b]` is equivalent to *std::ops::Index::index(&a, b)"_. - * - * The logic below handles array and slice indexing, but for other types it is - * currently limited to `Vec`. - * - * [1]: https://doc.rust-lang.org/reference/expressions/array-expr.html#r-expr.array.index - */ -pragma[nomagic] -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 | - TDataType(t) = inferType(ie.getIndex()) and - ( - // also allow `i32`, since that is currently the type that we infer for - // integer literals like `0` - t instanceof Builtins::I32 - or - t instanceof Builtins::Usize - ) and - result = inferType(ie.getBase(), exprPath) - | - // todo: remove? - exprPath.isCons(TTypeParamTypeParameter(any(Vec v).getElementTypeParam()), path) - or - exprPath.isCons(getArrayTypeParameter(), path) - or - exists(TypePath path0 | - exprPath.isCons(getRefTypeParameter(_), path0) and - path0.isCons(getSliceTypeParameter(), path) - ) - ) -} - pragma[nomagic] private Type getInferredDerefType(DerefExpr de, TypePath path) { result = inferType(de, path) } @@ -3902,7 +3865,8 @@ private module Cached { i instanceof ImplItemNode and dispatch = false | result = call.(AssocFunctionResolution::AssocFunctionCall).resolveCallTarget(i, _, _, _) and - not call instanceof CallExprImpl::DynamicCallExpr + not call instanceof CallExprImpl::DynamicCallExpr and + not i instanceof Builtins::BuiltinImpl ) } @@ -4004,8 +3968,6 @@ private module Cached { or result = inferAwaitExprType(n, path) or - result = inferIndexExprType(n, path) - or result = inferDereferencedExprPtrType(n, path) or result = inferForLoopExprType(n, path) diff --git a/rust/tools/builtins/impls.rs b/rust/tools/builtins/impls.rs new file mode 100644 index 00000000000..3bc028a51a6 --- /dev/null +++ b/rust/tools/builtins/impls.rs @@ -0,0 +1,86 @@ +/// Contains type-specialized versions of +/// +/// ``` +/// impl Index for [T; N] +/// where +/// [T]: Index, +/// { +/// type Output = <[T] as Index>::Output; +/// ... +/// } +/// ``` +/// +/// and +/// +/// ``` +/// impl ops::Index for [T] +/// where +/// I: SliceIndex<[T]>, +/// { +/// type Output = I::Output; +/// ... +/// } +/// ``` +/// +/// and +/// ``` +/// impl, A: Allocator> Index for Vec { +/// type Output = I::Output; +/// ... +/// } +/// ``` +/// +/// which the type inference library cannot currently handle (we fail +/// to resolve the `Output` types). +mod index_impls { + use std::alloc::Allocator; + use std::ops::Index; + + impl Index for [T; N] { + type Output = T; + + fn index(&self, index: i32) -> &Self::Output { + panic!() + } + } + + impl Index for [T; N] { + type Output = T; + + fn index(&self, index: usize) -> &Self::Output { + panic!() + } + } + + impl Index for [T] { + type Output = T; + + fn index(&self, index: i32) -> &Self::Output { + panic!() + } + } + + impl Index for [T] { + type Output = T; + + fn index(&self, index: usize) -> &Self::Output { + panic!() + } + } + + impl Index for Vec { + type Output = T; + + fn index(&self, index: i32) -> &Self::Output { + panic!() + } + } + + impl Index for Vec { + type Output = T; + + fn index(&self, index: usize) -> &Self::Output { + panic!() + } + } +} From bee39c9d51baf22e0ad600077ce06aaaa98abece Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 13 Apr 2026 11:08:58 +0200 Subject: [PATCH 092/208] C++: Fix `isCompiledAsC` join order Before on Abseil Windows for `cpp/too-few-arguments:`: ``` Pipeline standard for TooFewArguments::isCompiledAsC/1#52fe29e8@994f9bgp was evaluated in 12 iterations totaling 2ms (delta sizes total: 50). 1198778 ~3% {1} r1 = JOIN `TooFewArguments::isCompiledAsC/1#52fe29e8#prev_delta` WITH `Element::Element.getFile/0#2b8c8740_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1 83 ~26% {1} | JOIN WITH includes ON FIRST 1 OUTPUT Rhs.1 50 ~4% {1} | AND NOT `TooFewArguments::isCompiledAsC/1#52fe29e8#prev`(FIRST 1) return r1 ``` After: ``` Pipeline standard for #File::File.getAnIncludedFile/0#dispred#e8d44cd1Plus#bf@b8d290i6 was evaluated in 11 iterations totaling 0ms (delta sizes total: 43). 47 ~0% {2} r1 = SCAN `#File::File.getAnIncludedFile/0#dispred#e8d44cd1Plus#bf#prev_delta` OUTPUT In.1, In.0 78 ~28% {2} | JOIN WITH `File::File.getAnIncludedFile/0#dispred#e8d44cd1` ON FIRST 1 OUTPUT Lhs.1, Rhs.1 43 ~0% {2} | AND NOT `#File::File.getAnIncludedFile/0#dispred#e8d44cd1Plus#bf#prev`(FIRST 2) return r1 [2026-04-13 11:05:25] Evaluated non-recursive predicate TooFewArguments::isCompiledAsC/1#52fe29e8@4a3eb9jk in 0ms (size: 49). Evaluated relational algebra for predicate TooFewArguments::isCompiledAsC/1#52fe29e8@4a3eb9jk with tuple counts: 1 ~0% {3} r1 = CONSTANT(unique int, unique string, unique string)[1,"compiled as c","1"] 1 ~0% {1} | JOIN WITH #fileannotationsMerge_1230#join_rhs ON FIRST 3 OUTPUT Rhs.3 48 ~0% {1} r2 = JOIN r1 WITH `#File::File.getAnIncludedFile/0#dispred#e8d44cd1Plus#bf` ON FIRST 1 OUTPUT Rhs.1 49 ~0% {1} r3 = r1 UNION r2 return r3 ``` --- .../Underspecified Functions/MistypedFunctionArguments.qll | 4 +--- .../Likely Bugs/Underspecified Functions/TooFewArguments.qll | 4 +--- .../Likely Bugs/Underspecified Functions/TooManyArguments.qll | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll b/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll index 2dced5d8d84..dbb457db505 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll @@ -79,9 +79,7 @@ private predicate hasZeroParamDecl(Function f) { // True if this file (or header) was compiled as a C file private predicate isCompiledAsC(File f) { - f.compiledAsC() - or - exists(File src | isCompiledAsC(src) | src.getAnIncludedFile() = f) + exists(File src | src.compiledAsC() | src.getAnIncludedFile*() = f) } predicate mistypedFunctionArguments(FunctionCall fc, Function f, Parameter p) { diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll index 218a54b36c5..fd323513a49 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll @@ -28,9 +28,7 @@ private predicate hasZeroParamDecl(Function f) { /* Holds if this file (or header) was compiled as a C file. */ private predicate isCompiledAsC(File f) { - f.compiledAsC() - or - exists(File src | isCompiledAsC(src) | src.getAnIncludedFile() = f) + exists(File src | src.compiledAsC() | src.getAnIncludedFile*() = f) } /** Holds if `fc` is a call to `f` with too few arguments. */ diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll index 7fba78b5550..ab2a98ae3a5 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll @@ -19,9 +19,7 @@ private predicate hasZeroParamDecl(Function f) { // True if this file (or header) was compiled as a C file private predicate isCompiledAsC(File f) { - f.compiledAsC() - or - exists(File src | isCompiledAsC(src) | src.getAnIncludedFile() = f) + exists(File src | src.compiledAsC() | src.getAnIncludedFile*() = f) } predicate tooManyArguments(FunctionCall fc, Function f) { From fef582c858b30ee7542a0d5d07a0ec0161278d09 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 13 Apr 2026 11:22:49 +0200 Subject: [PATCH 093/208] JS: Add test case for Fastify per-route rate limiting --- .../MissingRateLimiting.expected | 7 ++++++ .../Security/CWE-770/MissingRateLimit/tst.js | 22 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected index 3d7bc2954eb..95f55486600 100644 --- a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected +++ b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected @@ -1,3 +1,4 @@ +#select | MissingRateLimiting.js:4:19:8:1 | functio ... ath);\\n} | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:7:5:7:22 | res.sendFile(path) | a file system access | | MissingRateLimiting.js:25:19:25:20 | f1 | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:13:5:13:22 | res.sendFile(path) | a file system access | | MissingRateLimiting.js:25:27:25:28 | f3 | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:22:5:22:22 | res.sendFile(path) | a file system access | @@ -9,3 +10,9 @@ | tst.js:64:25:64:63 | functio ... req); } | This route handler performs $@, but is not rate-limited. | tst.js:64:46:64:60 | verifyUser(req) | authorization | | tst.js:76:25:76:53 | catchAs ... ndler1) | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | | tst.js:88:24:88:40 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | +| tst.js:103:4:103:20 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | +| tst.js:110:4:110:20 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | +| tst.js:112:28:112:44 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | +testFailures +| tst.js:103:4:103:20 | This route handler performs $@, but is not rate-limited. | Unexpected result: Alert | +| tst.js:110:4:110:20 | This route handler performs $@, but is not rate-limited. | Unexpected result: Alert | diff --git a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js index 4f778afef68..5b4312bbbe0 100644 --- a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js +++ b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js @@ -88,3 +88,25 @@ const fastifyApp = require('fastify')(); fastifyApp.get('/foo', expensiveHandler1); // $ Alert fastifyApp.register(require('fastify-rate-limit')); fastifyApp.get('/bar', expensiveHandler1); + +// Fastify per-route rate limiting via config.rateLimit +const fastifyApp2 = require('fastify')(); +fastifyApp2.register(require('@fastify/rate-limit')); + +fastifyApp2.post('/login', { + config: { + rateLimit: { + max: 3, + timeWindow: '1 minute' + } + } +}, expensiveHandler1); // OK - has per-route rateLimit config + +fastifyApp2.post('/signup', { + rateLimit: { + max: 5, + timeWindow: '1 minute' + } +}, expensiveHandler1); // OK - has per-route rateLimit directly in options + +fastifyApp2.post('/other', expensiveHandler1); // $ Alert - no rate limiting From 7a48409e386191f5fb0d95652bf0c431333c8d45 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 13 Apr 2026 11:23:08 +0200 Subject: [PATCH 094/208] JS: Recognize Fastify per-route rate limiting --- .../security/dataflow/MissingRateLimiting.qll | 18 ++++++++++++++++++ .../MissingRateLimiting.expected | 6 ------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll index 5f4ad1b3d73..8dd9c483144 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll @@ -191,3 +191,21 @@ class RouteHandlerLimitedByRateLimiterFlexible extends RateLimitingMiddleware in private class FastifyRateLimiter extends RateLimitingMiddleware { FastifyRateLimiter() { this = DataFlow::moduleImport("fastify-rate-limit") } } + +/** + * An options object with a `rateLimit` config passed to a Fastify shorthand route method, + * such as `fastify.post('/path', { config: { rateLimit: { ... } } }, handler)`. + */ +private class FastifyPerRouteRateLimit extends RateLimitingMiddleware { + FastifyPerRouteRateLimit() { + exists(Fastify::RouteSetup setup | + not setup.getMethodName() = ["route", "addHook"] and + setup.getNumArgument() >= 3 and + this.flowsTo(setup.getArgument(1)) + | + exists(this.getAPropertySource("config").getAPropertySource("rateLimit")) + or + exists(this.getAPropertySource("rateLimit")) + ) + } +} diff --git a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected index 95f55486600..8d197d6e37f 100644 --- a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected +++ b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected @@ -1,4 +1,3 @@ -#select | MissingRateLimiting.js:4:19:8:1 | functio ... ath);\\n} | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:7:5:7:22 | res.sendFile(path) | a file system access | | MissingRateLimiting.js:25:19:25:20 | f1 | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:13:5:13:22 | res.sendFile(path) | a file system access | | MissingRateLimiting.js:25:27:25:28 | f3 | This route handler performs $@, but is not rate-limited. | MissingRateLimiting.js:22:5:22:22 | res.sendFile(path) | a file system access | @@ -10,9 +9,4 @@ | tst.js:64:25:64:63 | functio ... req); } | This route handler performs $@, but is not rate-limited. | tst.js:64:46:64:60 | verifyUser(req) | authorization | | tst.js:76:25:76:53 | catchAs ... ndler1) | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | | tst.js:88:24:88:40 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | -| tst.js:103:4:103:20 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | -| tst.js:110:4:110:20 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | | tst.js:112:28:112:44 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | -testFailures -| tst.js:103:4:103:20 | This route handler performs $@, but is not rate-limited. | Unexpected result: Alert | -| tst.js:110:4:110:20 | This route handler performs $@, but is not rate-limited. | Unexpected result: Alert | From fcfb8c9c6bc5e76f877b9d5748a68a1d2084889c Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 13 Apr 2026 12:22:30 +0200 Subject: [PATCH 095/208] Add change note --- .../change-notes/2026-04-13-fastify-per-route-rate-limit.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 javascript/ql/src/change-notes/2026-04-13-fastify-per-route-rate-limit.md diff --git a/javascript/ql/src/change-notes/2026-04-13-fastify-per-route-rate-limit.md b/javascript/ql/src/change-notes/2026-04-13-fastify-per-route-rate-limit.md new file mode 100644 index 00000000000..56d52388524 --- /dev/null +++ b/javascript/ql/src/change-notes/2026-04-13-fastify-per-route-rate-limit.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* The query `js/missing-rate-limiting` now takes Fastify per-route + rate limiting into account. From 2eeb31b47273cd4c156c02b86dbbbf756d0a20ba Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 13 Apr 2026 11:49:06 +0000 Subject: [PATCH 096/208] Python: Add tests for `lazy from ... import *` as well --- .../3/extractor-tests/lazy-imports/test.expected | 4 +++- .../ql/test/3/extractor-tests/lazy-imports/test.py | 2 ++ .../ql/test/3/extractor-tests/lazy-imports/test.ql | 12 ++++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.expected b/python/ql/test/3/extractor-tests/lazy-imports/test.expected index 9eb4f975dc4..6c9aea1255e 100644 --- a/python/ql/test/3/extractor-tests/lazy-imports/test.expected +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.expected @@ -3,5 +3,7 @@ | 4 | Import | lazy | | 5 | Import | lazy | | 6 | Import | lazy | -| 9 | Import | normal | +| 7 | from l import * | lazy | | 10 | Import | normal | +| 11 | Import | normal | +| 12 | from w import * | normal | diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.py b/python/ql/test/3/extractor-tests/lazy-imports/test.py index 775cac00bbf..ecb69008911 100644 --- a/python/ql/test/3/extractor-tests/lazy-imports/test.py +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.py @@ -4,7 +4,9 @@ lazy from b import c lazy from d import e as f lazy import g.h as i lazy from ..j import k +lazy from l import * # Non-lazy imports import x from y import z +from w import * diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.ql b/python/ql/test/3/extractor-tests/lazy-imports/test.ql index 312019c7cd1..9728226ed7e 100644 --- a/python/ql/test/3/extractor-tests/lazy-imports/test.ql +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.ql @@ -1,7 +1,11 @@ import python -string lazy(Import imp) { if imp.isLazy() then result = "lazy" else result = "normal" } +string lazy(Stmt s) { + if s.(Import).isLazy() or s.(ImportStar).isLazy() then result = "lazy" else result = "normal" +} -from Import imp -where imp.getLocation().getFile().getShortName() = "test.py" -select imp.getLocation().getStartLine(), imp.toString(), lazy(imp) +from Stmt s +where + s.getLocation().getFile().getShortName() = "test.py" and + (s instanceof Import or s instanceof ImportStar) +select s.getLocation().getStartLine(), s.toString(), lazy(s) From d3e580fd0ed0b52c531f0bdaa4e17033dd604c1d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 13 Apr 2026 14:52:38 +0200 Subject: [PATCH 097/208] C#: Introduce Expr.getIntValue. --- .../ql/examples/snippets/integer_literal.ql | 2 +- .../ql/lib/semmle/code/csharp/Conversion.qll | 4 +-- .../code/csharp/commons/ComparisonTest.qll | 2 +- .../semmle/code/csharp/commons/Constants.qll | 4 +-- .../semmle/code/csharp/controlflow/Guards.qll | 27 +++++++------------ .../internal/rangeanalysis/ConstantUtils.qll | 2 +- .../ql/lib/semmle/code/csharp/exprs/Expr.qll | 7 +++++ .../system/runtime/CompilerServices.qll | 4 +-- csharp/ql/src/Likely Bugs/BadCheckOdd.ql | 10 +++---- .../src/Likely Bugs/MishandlingJapaneseEra.ql | 6 ++--- .../Likely Bugs/PossibleLossOfPrecision.ql | 4 +-- .../Security Features/InsufficientKeySize.ql | 6 ++--- 12 files changed, 38 insertions(+), 40 deletions(-) diff --git a/csharp/ql/examples/snippets/integer_literal.ql b/csharp/ql/examples/snippets/integer_literal.ql index 4546c1d174b..36791fc8c37 100644 --- a/csharp/ql/examples/snippets/integer_literal.ql +++ b/csharp/ql/examples/snippets/integer_literal.ql @@ -9,5 +9,5 @@ import csharp from IntegerLiteral literal -where literal.getValue().toInt() = 0 +where literal.getIntValue() = 0 select literal diff --git a/csharp/ql/lib/semmle/code/csharp/Conversion.qll b/csharp/ql/lib/semmle/code/csharp/Conversion.qll index fd2c680e9c7..e151944dc38 100644 --- a/csharp/ql/lib/semmle/code/csharp/Conversion.qll +++ b/csharp/ql/lib/semmle/code/csharp/Conversion.qll @@ -713,7 +713,7 @@ private class SignedIntegralConstantExpr extends Expr { } private predicate convConstantIntExpr(SignedIntegralConstantExpr e, SimpleType toType) { - exists(int n | n = e.getValue().toInt() | + exists(int n | n = e.getIntValue() | toType = any(SByteType t | n in [t.minValue() .. t.maxValue()]) or toType = any(ByteType t | n in [t.minValue() .. t.maxValue()]) @@ -730,7 +730,7 @@ private predicate convConstantIntExpr(SignedIntegralConstantExpr e, SimpleType t private predicate convConstantLongExpr(SignedIntegralConstantExpr e) { e.getType() instanceof LongType and - e.getValue().toInt() >= 0 + e.getIntValue() >= 0 } /** 6.1.10: Implicit reference conversions involving type parameters. */ diff --git a/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll b/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll index b4641560892..776e2e97c37 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll @@ -161,7 +161,7 @@ private newtype TComparisonTest = compare.getComparisonKind().isCompare() and outerKind = outer.getComparisonKind() and outer.getAnArgument() = compare.getExpr() and - i = outer.getAnArgument().getValue().toInt() + i = outer.getAnArgument().getIntValue() | outerKind.isEquality() and ( diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll index 5025202eb21..a5f1bc43abe 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll @@ -32,13 +32,13 @@ private module ConstantComparisonOperation { private int maxValue(Expr expr) { if convertedType(expr) instanceof IntegralType and exists(expr.getValue()) - then result = expr.getValue().toInt() + then result = expr.getIntValue() else result = convertedType(expr).maxValue() } private int minValue(Expr expr) { if convertedType(expr) instanceof IntegralType and exists(expr.getValue()) - then result = expr.getValue().toInt() + then result = expr.getIntValue() else result = convertedType(expr).minValue() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 6c1eb8c06eb..66b591cfcd2 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -60,25 +60,16 @@ private module GuardsInput implements override boolean asBooleanValue() { boolConst(this, result) } } - private predicate intConst(Expr e, int i) { - e.getValue().toInt() = i and - ( - e.getType() instanceof Enum - or - e.getType() instanceof IntegralType - ) - } - private class IntegerConstant extends ConstantExpr { - IntegerConstant() { intConst(this, _) } + IntegerConstant() { exists(this.getIntValue()) } - override int asIntegerValue() { intConst(this, result) } + override int asIntegerValue() { result = this.getIntValue() } } private class EnumConst extends ConstantExpr { EnumConst() { this.getType() instanceof Enum and this.hasValue() } - override int asIntegerValue() { result = this.getValue().toInt() } + override int asIntegerValue() { result = this.getIntValue() } } private class StringConstant extends ConstantExpr instanceof StringLiteral { @@ -517,35 +508,35 @@ class EnumerableCollectionExpr extends Expr { | // x.Length == 0 ct.getComparisonKind().isEquality() and - ct.getAnArgument().getValue().toInt() = 0 and + ct.getAnArgument().getIntValue() = 0 and branch = isEmpty or // x.Length == k, k > 0 ct.getComparisonKind().isEquality() and - ct.getAnArgument().getValue().toInt() > 0 and + ct.getAnArgument().getIntValue() > 0 and branch = true and isEmpty = false or // x.Length != 0 ct.getComparisonKind().isInequality() and - ct.getAnArgument().getValue().toInt() = 0 and + ct.getAnArgument().getIntValue() = 0 and branch = isEmpty.booleanNot() or // x.Length != k, k != 0 ct.getComparisonKind().isInequality() and - ct.getAnArgument().getValue().toInt() != 0 and + ct.getAnArgument().getIntValue() != 0 and branch = false and isEmpty = false or // x.Length > k, k >= 0 ct.getComparisonKind().isLessThan() and - ct.getFirstArgument().getValue().toInt() >= 0 and + ct.getFirstArgument().getIntValue() >= 0 and branch = true and isEmpty = false or // x.Length >= k, k > 0 ct.getComparisonKind().isLessThanEquals() and - ct.getFirstArgument().getValue().toInt() > 0 and + ct.getFirstArgument().getIntValue() > 0 and branch = true and isEmpty = false ) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll index e3f5deb9898..bea31ed7f55 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll @@ -23,7 +23,7 @@ predicate systemArrayLengthAccess(PropertyAccess pa) { * - a read of the `Length` of an array with `val` lengths. */ private predicate constantIntegerExpr(ExprNode e, int val) { - e.getValue().toInt() = val + e.getExpr().getIntValue() = val or exists(ExprNode src | e = getAnExplicitDefinitionRead(src) and diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll index 36eda82531c..a26afb00490 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll @@ -57,6 +57,13 @@ class Expr extends ControlFlowElement, @expr { /** Gets the value of this expression, if any */ string getValue() { expr_value(this, result) } + /** Gets the integer value of this expression, if any. */ + cached + int getIntValue() { + result = this.getValue().toInt() and + (this.getType() instanceof IntegralType or this.getType() instanceof Enum) + } + /** Holds if this expression has a value. */ final predicate hasValue() { exists(this.getValue()) } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll index 2c0ba292b9c..aca2cb2cb1c 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll @@ -81,7 +81,7 @@ class SystemRuntimeCompilerServicesInlineArrayAttribute extends Attribute { /** * Gets the length of the inline array. */ - int getLength() { result = this.getConstructorArgument(0).getValue().toInt() } + int getLength() { result = this.getConstructorArgument(0).getIntValue() } } /** An attribute of type `System.Runtime.CompilerServices.OverloadResolutionPriority`. */ @@ -94,5 +94,5 @@ class SystemRuntimeCompilerServicesOverloadResolutionPriorityAttribute extends A /** * Gets the priority number. */ - int getPriority() { result = this.getConstructorArgument(0).getValue().toInt() } + int getPriority() { result = this.getConstructorArgument(0).getIntValue() } } diff --git a/csharp/ql/src/Likely Bugs/BadCheckOdd.ql b/csharp/ql/src/Likely Bugs/BadCheckOdd.ql index 34ae4b632ae..72924f9103d 100644 --- a/csharp/ql/src/Likely Bugs/BadCheckOdd.ql +++ b/csharp/ql/src/Likely Bugs/BadCheckOdd.ql @@ -13,7 +13,7 @@ import csharp predicate isDefinitelyPositive(Expr e) { - e.getValue().toInt() >= 0 or + e.getIntValue() >= 0 or e.(PropertyAccess).getTarget().hasName("Length") or e.(MethodCall).getTarget().hasUndecoratedName("Count") } @@ -23,12 +23,12 @@ where t.getLeftOperand() = lhs and t.getRightOperand() = rhs and not isDefinitelyPositive(lhs.getLeftOperand().stripCasts()) and - lhs.getRightOperand().(IntegerLiteral).getValue() = "2" and + lhs.getRightOperand().(IntegerLiteral).getIntValue() = 2 and ( - t instanceof EQExpr and rhs.getValue() = "1" and parity = "oddness" + t instanceof EQExpr and rhs.getIntValue() = 1 and parity = "oddness" or - t instanceof NEExpr and rhs.getValue() = "1" and parity = "evenness" + t instanceof NEExpr and rhs.getIntValue() = 1 and parity = "evenness" or - t instanceof GTExpr and rhs.getValue() = "0" and parity = "oddness" + t instanceof GTExpr and rhs.getIntValue() = 0 and parity = "oddness" ) select t, "Possibly invalid test for " + parity + ". This will fail for negative numbers." diff --git a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql index c8df36bf7bf..3e54a3a00db 100644 --- a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql +++ b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql @@ -27,8 +27,8 @@ predicate isExactEraStartDateCreation(ObjectCreation cr) { cr.getType().hasFullyQualifiedName("System", "DateTime") or cr.getType().hasFullyQualifiedName("System", "DateTimeOffset") ) and - isEraStart(cr.getArgument(0).getValue().toInt(), cr.getArgument(1).getValue().toInt(), - cr.getArgument(2).getValue().toInt()) + isEraStart(cr.getArgument(0).getIntValue(), cr.getArgument(1).getIntValue(), + cr.getArgument(2).getIntValue()) } predicate isDateFromJapaneseCalendarToDateTime(MethodCall mc) { @@ -44,7 +44,7 @@ predicate isDateFromJapaneseCalendarToDateTime(MethodCall mc) { mc.getNumberOfArguments() = 7 // implicitly current era or mc.getNumberOfArguments() = 8 and - mc.getArgument(7).getValue() = "0" + mc.getArgument(7).getIntValue() = 0 ) // explicitly current era } diff --git a/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql b/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql index 8b719bb92a5..1c41d24fb3c 100644 --- a/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql +++ b/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql @@ -40,8 +40,8 @@ predicate convertedToFloatOrDecimal(Expr e, Type t) { /** Holds if `div` is an exact integer division. */ predicate exactDivision(DivExpr div) { exists(int numerator, int denominator | - numerator = div.getNumerator().stripCasts().getValue().toInt() and - denominator = div.getDenominator().stripCasts().getValue().toInt() and + numerator = div.getNumerator().stripCasts().getIntValue() and + denominator = div.getDenominator().stripCasts().getIntValue() and numerator % denominator = 0 ) } diff --git a/csharp/ql/src/Security Features/InsufficientKeySize.ql b/csharp/ql/src/Security Features/InsufficientKeySize.ql index 02be9125835..98a7852fbaf 100644 --- a/csharp/ql/src/Security Features/InsufficientKeySize.ql +++ b/csharp/ql/src/Security Features/InsufficientKeySize.ql @@ -20,7 +20,7 @@ predicate incorrectUseOfRC2(Assignment e, string msg) { .getDeclaringType() .hasFullyQualifiedName("System.Security.Cryptography", "RC2CryptoServiceProvider") ) and - e.getRightOperand().getValue().toInt() < 128 and + e.getRightOperand().getIntValue() < 128 and msg = "Key size should be at least 128 bits for RC2 encryption." } @@ -28,7 +28,7 @@ predicate incorrectUseOfDsa(ObjectCreation e, string msg) { e.getTarget() .getDeclaringType() .hasFullyQualifiedName("System.Security.Cryptography", "DSACryptoServiceProvider") and - exists(Expr i | e.getArgument(0) = i and i.getValue().toInt() < 2048) and + exists(Expr i | e.getArgument(0) = i and i.getIntValue() < 2048) and msg = "Key size should be at least 2048 bits for DSA encryption." } @@ -36,7 +36,7 @@ predicate incorrectUseOfRsa(ObjectCreation e, string msg) { e.getTarget() .getDeclaringType() .hasFullyQualifiedName("System.Security.Cryptography", "RSACryptoServiceProvider") and - exists(Expr i | e.getArgument(0) = i and i.getValue().toInt() < 2048) and + exists(Expr i | e.getArgument(0) = i and i.getIntValue() < 2048) and msg = "Key size should be at least 2048 bits for RSA encryption." } From 19c4b2ff8f2c47fcfda886ed5fcf427f43408123 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 13 Apr 2026 15:44:41 +0200 Subject: [PATCH 098/208] C++: Use `getConvSpecString` instead of `getConvSpecOffset` and `substring` --- cpp/ql/lib/semmle/code/cpp/commons/Printf.qll | 19 +++++++++++-------- cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll | 13 +++++++++---- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll index d189dd36f87..253838d2ec3 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll @@ -459,6 +459,13 @@ class FormatLiteral extends Literal instanceof StringLiteral { */ int getConvSpecOffset(int n) { result = this.getFormat().indexOf("%", n, 0) } + /** + * Gets the nth conversion specifier string. + */ + private string getConvSpecString(int n) { + n >= 0 and result = "%" + this.getFormat().splitAt("%", n + 1) + } + /* * Each of these predicates gets a regular expressions to match each individual * parts of a conversion specifier. @@ -524,10 +531,8 @@ class FormatLiteral extends Literal instanceof StringLiteral { int n, string spec, string params, string flags, string width, string prec, string len, string conv ) { - exists(int offset, string fmt, string rst, string regexp | - offset = this.getConvSpecOffset(n) and - fmt = this.getFormat() and - rst = fmt.substring(offset, fmt.length()) and + exists(string rst, string regexp | + rst = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and ( spec = rst.regexpCapture(regexp, 1) and @@ -554,10 +559,8 @@ class FormatLiteral extends Literal instanceof StringLiteral { * Gets the nth conversion specifier (including the initial `%`). */ string getConvSpec(int n) { - exists(int offset, string fmt, string rst, string regexp | - offset = this.getConvSpecOffset(n) and - fmt = this.getFormat() and - rst = fmt.substring(offset, fmt.length()) and + exists(string rst, string regexp | + rst = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and result = rst.regexpCapture(regexp, 1) ) diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll b/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll index f032ba4749e..b683530e822 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll @@ -194,6 +194,13 @@ class ScanfFormatLiteral extends Expr { ) } + /** + * Gets the nth conversion specifier string. + */ + private string getConvSpecString(int n) { + n >= 0 and result = "%" + this.getFormat().splitAt("%", n + 1) + } + /** * Gets the regular expression to match each individual part of a conversion specifier. */ @@ -227,10 +234,8 @@ class ScanfFormatLiteral extends Expr { * specifier. */ predicate parseConvSpec(int n, string spec, string width, string len, string conv) { - exists(int offset, string fmt, string rst, string regexp | - offset = this.getConvSpecOffset(n) and - fmt = this.getFormat() and - rst = fmt.substring(offset, fmt.length()) and + exists(string rst, string regexp | + rst = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and ( spec = rst.regexpCapture(regexp, 1) and From b19f2c687426be76cb508df862b8e2da2490d2f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 03:04:45 +0000 Subject: [PATCH 099/208] Bump the extractor-dependencies group in /go/extractor with 2 updates Bumps the extractor-dependencies group in /go/extractor with 2 updates: [golang.org/x/mod](https://github.com/golang/mod) and [golang.org/x/tools](https://github.com/golang/tools). Updates `golang.org/x/mod` from 0.34.0 to 0.35.0 - [Commits](https://github.com/golang/mod/compare/v0.34.0...v0.35.0) Updates `golang.org/x/tools` from 0.43.0 to 0.44.0 - [Release notes](https://github.com/golang/tools/releases) - [Commits](https://github.com/golang/tools/compare/v0.43.0...v0.44.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-version: 0.35.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: extractor-dependencies - dependency-name: golang.org/x/tools dependency-version: 0.44.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: extractor-dependencies ... Signed-off-by: dependabot[bot] --- go/extractor/go.mod | 4 ++-- go/extractor/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go/extractor/go.mod b/go/extractor/go.mod index ae43e8a51bd..18415e54402 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -9,8 +9,8 @@ toolchain go1.26.0 // when adding or removing dependencies, run // bazel mod tidy require ( - golang.org/x/mod v0.34.0 - golang.org/x/tools v0.43.0 + golang.org/x/mod v0.35.0 + golang.org/x/tools v0.44.0 ) require github.com/stretchr/testify v1.11.1 diff --git a/go/extractor/go.sum b/go/extractor/go.sum index 8bb3f3dc9fc..89e151102bd 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -6,12 +6,12 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= -golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= +golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= +golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From 26715fc95c40363ffdef45fafb4f9a2745ddac69 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 14 Apr 2026 08:03:51 +0200 Subject: [PATCH 100/208] C++: Rename `rst` to `convSpec` --- cpp/ql/lib/semmle/code/cpp/commons/Printf.qll | 28 +++++++++---------- cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll | 12 ++++---- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll index 253838d2ec3..624465761c2 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll @@ -531,20 +531,20 @@ class FormatLiteral extends Literal instanceof StringLiteral { int n, string spec, string params, string flags, string width, string prec, string len, string conv ) { - exists(string rst, string regexp | - rst = this.getConvSpecString(n) and + exists(string convSpec, string regexp | + convSpec = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and ( - spec = rst.regexpCapture(regexp, 1) and - params = rst.regexpCapture(regexp, 2) and - flags = rst.regexpCapture(regexp, 3) and - width = rst.regexpCapture(regexp, 4) and - prec = rst.regexpCapture(regexp, 5) and - len = rst.regexpCapture(regexp, 6) and - conv = rst.regexpCapture(regexp, 7) + spec = convSpec.regexpCapture(regexp, 1) and + params = convSpec.regexpCapture(regexp, 2) and + flags = convSpec.regexpCapture(regexp, 3) and + width = convSpec.regexpCapture(regexp, 4) and + prec = convSpec.regexpCapture(regexp, 5) and + len = convSpec.regexpCapture(regexp, 6) and + conv = convSpec.regexpCapture(regexp, 7) or - spec = rst.regexpCapture(regexp, 1) and - not exists(rst.regexpCapture(regexp, 2)) and + spec = convSpec.regexpCapture(regexp, 1) and + not exists(convSpec.regexpCapture(regexp, 2)) and params = "" and flags = "" and width = "" and @@ -559,10 +559,10 @@ class FormatLiteral extends Literal instanceof StringLiteral { * Gets the nth conversion specifier (including the initial `%`). */ string getConvSpec(int n) { - exists(string rst, string regexp | - rst = this.getConvSpecString(n) and + exists(string convSpec, string regexp | + convSpec = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and - result = rst.regexpCapture(regexp, 1) + result = convSpec.regexpCapture(regexp, 1) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll b/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll index b683530e822..98280a522cf 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll @@ -234,14 +234,14 @@ class ScanfFormatLiteral extends Expr { * specifier. */ predicate parseConvSpec(int n, string spec, string width, string len, string conv) { - exists(string rst, string regexp | - rst = this.getConvSpecString(n) and + exists(string convSpec, string regexp | + convSpec = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and ( - spec = rst.regexpCapture(regexp, 1) and - width = rst.regexpCapture(regexp, 2) and - len = rst.regexpCapture(regexp, 3) and - conv = rst.regexpCapture(regexp, 4) + spec = convSpec.regexpCapture(regexp, 1) and + width = convSpec.regexpCapture(regexp, 2) and + len = convSpec.regexpCapture(regexp, 3) and + conv = convSpec.regexpCapture(regexp, 4) ) ) } From 0db62b2e687aa43b51eafcc4608bc607172901c3 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 14 Apr 2026 09:19:22 +0200 Subject: [PATCH 101/208] Type inference: Fix bad join Before ``` Pipeline standard for TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112@d5eb7x9q was evaluated in 471 iterations totaling 24306ms (delta sizes total: 42097188). 5676156578 ~1% {7} r1 = JOIN `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112#prev_delta` WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersEqual/4#a276e5d4#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.3, _, Lhs.3, _ {5} | REWRITE WITH Tmp.4 := 1, Out.4 := (Tmp.4 + In.5), Tmp.6 := 0, TEST Out.4 != Tmp.6 KEEPING 5 5676156578 ~1% {5} | SCAN OUTPUT In.1, In.4, In.3, In.0, In.2 41691564 ~1% {4} | JOIN WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::getNthTypeParameter/2#40c66343` ON FIRST 3 OUTPUT Lhs.3, Lhs.0, Lhs.4, Lhs.1 42097188 ~2% {4} r2 = SCAN `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersEqual/4#a276e5d4#prev_delta` OUTPUT In.1, In.3, In.0, In.2 42097188 ~1% {5} r3 = JOIN r2 WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::getNthTypeParameter/2#40c66343_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Rhs.2, _ {4} | REWRITE WITH Tmp.4 := 0, TEST InOut.3 != Tmp.4 KEEPING 4 41691564 ~1% {5} | SCAN OUTPUT In.0, In.1, In.2, _, In.3 41691564 ~1% {5} | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.4 - Tmp.3) 0 ~0% {4} | JOIN WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112#prev` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4 42097188 ~0% {6} r4 = JOIN r2 WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::getNthTypeParameter/2#40c66343_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Lhs.1, Rhs.2, _ {5} | REWRITE WITH Tmp.5 := 0, TEST InOut.4 = Tmp.5 KEEPING 5 405624 ~1% {5} | SCAN OUTPUT In.1, _, In.3, In.0, In.2 405624 ~1% {5} | REWRITE WITH Out.1 := 0 405624 ~0% {4} | JOIN WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::getNthTypeParameter/2#40c66343` ON FIRST 3 OUTPUT Lhs.3, Lhs.0, Lhs.4, _ 405624 ~1% {4} | REWRITE WITH Out.3 := 0 42097188 ~1% {4} r5 = r1 UNION r3 UNION r4 42097188 ~1% {4} | AND NOT `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112#prev`(FIRST 4) return r5 ``` After ``` Pipeline standard for TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112@96df1x2u was evaluated in 471 iterations totaling 4058ms (delta sizes total: 42097188). 42097188 ~0% {4} r1 = SCAN `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersEqual/5#ddfcf430#prev_delta` OUTPUT In.3, In.0, In.1, In.2 405624 ~0% {4} | JOIN WITH const_0 ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, _ 405624 ~1% {4} | REWRITE WITH Out.3 := 0 42097188 ~1% {6} r2 = SCAN `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112#prev_delta` OUTPUT In.0, In.1, In.2, _, In.3, _ 42097188 ~1% {4} | REWRITE WITH Tmp.3 := 1, Out.3 := (Tmp.3 + In.4), Tmp.5 := 0, TEST Out.3 != Tmp.5 KEEPING 4 41691564 ~1% {4} | JOIN WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersEqual/5#ddfcf430#prev` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3 42097188 ~1% {6} r3 = SCAN `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersEqual/5#ddfcf430#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, _ {5} | REWRITE WITH Tmp.5 := 0, TEST InOut.3 != Tmp.5 KEEPING 5 41691564 ~1% {5} | SCAN OUTPUT In.0, In.1, In.2, _, In.3 41691564 ~1% {5} | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.4 - Tmp.3) 0 ~0% {4} | JOIN WITH `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112#prev` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4 42097188 ~1% {4} r4 = r1 UNION r2 UNION r3 42097188 ~1% {4} | AND NOT `TypeInference::M2::SatisfiesConstraintWithTypeMatching::TermIsInstantiationOfCondition::typeParametersHaveEqualInstantiationToIndex/4#dde26112#prev`(FIRST 4) return r4 ``` --- .../typeinference/internal/TypeInference.qll | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 888ca65fa98..9f4be49d878 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -566,15 +566,17 @@ module Make1 Input1> { ) } + pragma[nomagic] private predicate typeParametersEqual( - App app, TypeAbstraction abs, Constraint constraint, TypeParameter tp + App app, TypeAbstraction abs, Constraint constraint, int i ) { - satisfiesConcreteTypes(app, abs, constraint) and - tp = getNthTypeParameter(abs, _) and - ( + exists(TypeParameter tp | + satisfiesConcreteTypes(app, abs, constraint) and + tp = getNthTypeParameter(abs, i) + | not exists(getNthTypeParameterPath(constraint, tp, _)) or - exists(int n | n = max(int i | exists(getNthTypeParameterPath(constraint, tp, i))) | + exists(int n | n = max(int j | exists(getNthTypeParameterPath(constraint, tp, j))) | // If the largest index is 0, then there are no equalities to check as // the type parameter only occurs once. if n = 0 then any() else typeParametersEqualToIndex(app, abs, constraint, tp, _, n) @@ -585,12 +587,10 @@ module Make1 Input1> { private predicate typeParametersHaveEqualInstantiationToIndex( App app, TypeAbstraction abs, Constraint constraint, int i ) { - exists(TypeParameter tp | tp = getNthTypeParameter(abs, i) | - typeParametersEqual(app, abs, constraint, tp) and - if i = 0 - then any() - else typeParametersHaveEqualInstantiationToIndex(app, abs, constraint, i - 1) - ) + typeParametersEqual(app, abs, constraint, i) and + if i = 0 + then any() + else typeParametersHaveEqualInstantiationToIndex(app, abs, constraint, i - 1) } /** From d69be77035878eda69d1edb4c7720a70f349441a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 14 Apr 2026 09:20:05 +0200 Subject: [PATCH 102/208] Rust: Avoid expensive regex calls Before ``` Pipeline standard for TypeInference::AssocFunctionResolution::AssocFunctionCall.hasIncompatibleTarget/5#85c07422@d5eb7r0w was evaluated in 782 iterations totaling 13208ms (delta sizes total: 20187834). 1464 ~2% {7} r1 = JOIN `TypeInference::AssocFunctionResolution::SelfArgIsInstantiationOf::argIsInstantiationOf/6#aaa87ac9#prev_delta` WITH `TypeInference::AssocFunctionResolution::OverloadedCallArgsAreInstantiationsOf::argsAreNotInstantiationsOf/2#6a6070f7#prev` ON FIRST 2 OUTPUT Lhs.5, _, Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4 1464 ~0% {7} | REWRITE WITH Out.1 := "" 1464 ~0% {6} | JOIN WITH `FunctionType::AssocFunctionType.getTypeAt/1#dispred#d4d46f61` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Rhs.2 173691 ~1% {7} r2 = JOIN `TypeInference::AssocFunctionResolution::OverloadedCallArgsAreInstantiationsOf::argsAreNotInstantiationsOf/2#6a6070f7#prev_delta` WITH `TypeInference::AssocFunctionResolution::SelfArgIsInstantiationOf::argIsInstantiationOf/6#aaa87ac9#prev` ON FIRST 2 OUTPUT Rhs.5, _, Lhs.0, Lhs.1, Rhs.2, Rhs.3, Rhs.4 173691 ~1% {7} | REWRITE WITH Out.1 := "" 173691 ~1% {6} | JOIN WITH `FunctionType::AssocFunctionType.getTypeAt/1#dispred#d4d46f61` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Rhs.2 20022454 ~0% {7} r3 = SCAN `TypeInference::AssocFunctionResolution::SelfArgIsInstantiationOf::argIsNotInstantiationOf/6#1b8e512e#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _ 20022454 ~0% {7} | REWRITE WITH Out.6 := "^([0-9]+)\\..*$" 20022175 ~2% {9} | JOIN WITH PRIMITIVE regexpCapture#bbff ON Lhs.5,Lhs.6 20022175 ~2% {10} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, In.6, In.7, In.8, _ {9} | REWRITE WITH Tmp.9 := 1, TEST InOut.7 = Tmp.9 KEEPING 9 20022175 ~1% {7} | SCAN OUTPUT In.8, In.0, In.1, In.2, In.3, In.4, In.5 20022175 ~1% {8} | JOIN WITH `UnboundList::Make::encode/1#47b2ec3f_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.0 20022175 ~0% {10} | JOIN WITH `Type::Type.getATypeParameter/0#dispred#ddf0e8ff_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.1, _, Lhs.6, Lhs.7, _ {7} | REWRITE WITH Tmp.6 := length(In.8), Tmp.9 := 1, Tmp.6 := (Tmp.6 + Tmp.9), Out.6 := suffix(In.7,Tmp.6) KEEPING 7 20022175 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5 20197330 ~0% {6} r4 = r1 UNION r2 UNION r3 20187834 ~0% {6} | AND NOT `TypeInference::AssocFunctionResolution::AssocFunctionCall.hasIncompatibleTarget/5#85c07422#prev`(FIRST 6) return r4 ``` After ``` Pipeline standard for TypeInference::AssocFunctionResolution::AssocFunctionCall.hasIncompatibleTarget/5#85c07422@a58ce91w was evaluated in 537 iterations totaling 382ms (delta sizes total: 20033950). 19862347 ~0% {7} r1 = SCAN `TypeInference::AssocFunctionResolution::SelfArgIsInstantiationOf::argIsNotInstantiationOf/6#1b8e512e#prev_delta` OUTPUT In.5, _, In.0, In.1, In.2, In.3, In.4 19862347 ~0% {7} | REWRITE WITH Out.1 := "" 174684 ~1% {7} r2 = SCAN `TypeInference::AssocFunctionResolution::AssocFunctionCall.hasIncompatibleArgsTarget/5#dispred#7d49b9f9#prev_delta` OUTPUT In.5, _, In.0, In.1, In.2, In.3, In.4 174684 ~1% {7} | REWRITE WITH Out.1 := "" 20037031 ~0% {7} r3 = r1 UNION r2 20037031 ~0% {6} | JOIN WITH `FunctionType::AssocFunctionType.getTypeAt/1#dispred#d4d46f61` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Rhs.2 20033950 ~0% {6} | AND NOT `TypeInference::AssocFunctionResolution::AssocFunctionCall.hasIncompatibleTarget/5#85c07422#prev`(FIRST 6) return r3 ``` --- .../internal/typeinference/TypeInference.qll | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index c6a268be126..08c5966940e 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -1708,6 +1708,15 @@ private module AssocFunctionResolution { predicate hasReceiverAtPos(FunctionPosition pos) { this.hasReceiver() and pos.asPosition() = 0 } + pragma[nomagic] + private predicate hasIncompatibleArgsTarget( + ImplOrTraitItemNode i, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + AssocFunctionType selfType + ) { + SelfArgIsInstantiationOf::argIsInstantiationOf(this, i, selfPos, derefChain, borrow, selfType) and + OverloadedCallArgsAreInstantiationsOf::argsAreNotInstantiationsOf(this, i) + } + /** * Holds if the function inside `i` with matching name and arity can be ruled * out as a target of this call, because the candidate receiver type represented @@ -1722,16 +1731,11 @@ private module AssocFunctionResolution { ImplOrTraitItemNode i, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, Type root ) { - exists(TypePath path | - SelfArgIsInstantiationOf::argIsNotInstantiationOf(this, i, selfPos, derefChain, borrow, path) and - path.isCons(root.getATypeParameter(), _) - ) - or - exists(AssocFunctionType selfType | - SelfArgIsInstantiationOf::argIsInstantiationOf(this, i, selfPos, derefChain, borrow, - selfType) and - OverloadedCallArgsAreInstantiationsOf::argsAreNotInstantiationsOf(this, i) and - root = selfType.getTypeAt(TypePath::nil()) + exists(AssocFunctionType selfType | root = selfType.getTypeAt(TypePath::nil()) | + this.hasIncompatibleArgsTarget(i, selfPos, derefChain, borrow, selfType) + or + SelfArgIsInstantiationOf::argIsNotInstantiationOf(this, i, selfPos, derefChain, borrow, + selfType) ) } @@ -2608,9 +2612,13 @@ private module AssocFunctionResolution { pragma[nomagic] predicate argIsNotInstantiationOf( AssocFunctionCall afc, ImplOrTraitItemNode i, FunctionPosition selfPos, DerefChain derefChain, - BorrowKind borrow, TypePath path + BorrowKind borrow, AssocFunctionType selfType ) { - argIsNotInstantiationOf(MkAssocFunctionCallCand(afc, selfPos, derefChain, borrow), i, _, path) + exists(TypePath path | + argIsNotInstantiationOf(MkAssocFunctionCallCand(afc, selfPos, derefChain, borrow), i, + selfType, path) and + not path.isEmpty() + ) } pragma[nomagic] From 0e66555e377ad6207d705e2b67bbf6b3821701ed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 08:10:53 +0000 Subject: [PATCH 103/208] Initial plan From 3483050526e70c4c92f30746f4696e41eb1bd076 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 08:18:02 +0000 Subject: [PATCH 104/208] Fix false positive in MissedSelectOpportunity for async/await loops Agent-Logs-Url: https://github.com/github/codeql/sessions/3e8f4320-2bf4-45f5-b9ea-dad41d522d84 Co-authored-by: hvitved <3667920+hvitved@users.noreply.github.com> --- csharp/ql/lib/Linq/Helpers.qll | 8 +++-- .../MissedSelectOpportunity.cs | 32 +++++++++++++++++++ .../MissedSelectOpportunity.expected | 1 + .../MissedSelectOpportunity.qlref | 1 + .../Linq/MissedSelectOpportunity/options | 2 ++ 5 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs create mode 100644 csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.expected create mode 100644 csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref create mode 100644 csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/options diff --git a/csharp/ql/lib/Linq/Helpers.qll b/csharp/ql/lib/Linq/Helpers.qll index 912b12b9457..2a4d5c8c27a 100644 --- a/csharp/ql/lib/Linq/Helpers.qll +++ b/csharp/ql/lib/Linq/Helpers.qll @@ -121,15 +121,17 @@ predicate missedOfTypeOpportunity(ForeachStmtEnumerable fes, LocalVariableDeclSt /** * Holds if `foreach` statement `fes` can be converted to a `.Select()` call. * That is, the loop variable is accessed only in the first statement of the - * block, the access is not a cast, and the first statement is a - * local variable declaration statement `s`. + * block, the access is not a cast, the first statement is a + * local variable declaration statement `s`, and the initializer does not + * contain an `await` expression (since `Select` does not support async lambdas). */ predicate missedSelectOpportunity(ForeachStmtGenericEnumerable fes, LocalVariableDeclStmt s) { s = firstStmt(fes) and forex(VariableAccess va | va = fes.getVariable().getAnAccess() | va = s.getAVariableDeclExpr().getAChildExpr*() ) and - not s.getAVariableDeclExpr().getInitializer() instanceof Cast + not s.getAVariableDeclExpr().getInitializer() instanceof Cast and + not s.getAVariableDeclExpr().getInitializer().getAChildExpr*() instanceof AwaitExpr } /** diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs new file mode 100644 index 00000000000..a61eba16f14 --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs @@ -0,0 +1,32 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.Threading.Tasks; + +class MissedSelectOpportunity +{ + public void M1(List lst) + { + // BAD: Can be replaced with lst.Select(i => i * i) + foreach (int i in lst) + { + int j = i * i; + Console.WriteLine(j); + } + } + + public async Task M2(IEnumerable counters) + { + // GOOD: Cannot use Select because the initializer contains an await expression + foreach (var counter in counters) + { + var count = await counter.CountAsync(); + Console.WriteLine(count); + } + } + + public interface ICounter + { + Task CountAsync(); + } +} diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.expected b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.expected new file mode 100644 index 00000000000..bc6d464fa3b --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.expected @@ -0,0 +1 @@ +| MissedSelectOpportunity.cs:11:9:15:9 | foreach (... ... in ...) ... | This foreach loop immediately $@ - consider mapping the sequence explicitly using '.Select(...)'. | MissedSelectOpportunity.cs:13:13:13:26 | ... ...; | maps its iteration variable to another variable | diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref new file mode 100644 index 00000000000..8056fd74c47 --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref @@ -0,0 +1 @@ +Linq/MissedSelectOpportunity.ql diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/options b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/options new file mode 100644 index 00000000000..75c39b4541b --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj From 12868e51402782f644653e9516b9c861c24f02a3 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 14 Apr 2026 13:03:10 +0200 Subject: [PATCH 105/208] C++: Remove deprecated code added more than a year ago --- .../code/cpp/models/interfaces/NonThrowing.qll | 7 ------- .../semmle/code/cpp/models/interfaces/Throwing.qll | 13 ------------- 2 files changed, 20 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll b/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll index 85b9b66cd66..04826a487ca 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll @@ -11,10 +11,3 @@ import semmle.code.cpp.models.Models * The function may still raise a structured exception handling (SEH) exception. */ abstract class NonCppThrowingFunction extends Function { } - -/** - * A function that is guaranteed to never throw. - * - * DEPRECATED: use `NonCppThrowingFunction` instead. - */ -deprecated class NonThrowingFunction = NonCppThrowingFunction; diff --git a/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll b/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll index 111b9953395..a781bab07c3 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll @@ -10,19 +10,6 @@ import semmle.code.cpp.Function import semmle.code.cpp.models.Models import semmle.code.cpp.models.interfaces.FunctionInputsAndOutputs -/** - * A function that is known to raise an exception. - * - * DEPRECATED: use `AlwaysSehThrowingFunction` instead. - */ -abstract deprecated class ThrowingFunction extends Function { - /** - * Holds if this function may throw an exception during evaluation. - * If `unconditional` is `true` the function always throws an exception. - */ - abstract predicate mayThrowException(boolean unconditional); -} - /** * A function that unconditionally raises a structured exception handling (SEH) exception. */ From 4b5ff0b89ee4e220f3bf4bd2e77b2b6426da3752 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 15:52:33 +0000 Subject: [PATCH 106/208] Python: Support unpacking in comprehensions in `tree-sitter-python` This is the easy part -- we just allow `dictionary_splat` or `list_splat` to appear in the same place as the expression. --- python/extractor/tsg-python/tsp/grammar.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/extractor/tsg-python/tsp/grammar.js b/python/extractor/tsg-python/tsp/grammar.js index 05b792340dd..8f4dd8d7cf6 100644 --- a/python/extractor/tsg-python/tsp/grammar.js +++ b/python/extractor/tsg-python/tsp/grammar.js @@ -1031,28 +1031,28 @@ module.exports = grammar({ list_comprehension: $ => seq( '[', - field('body', $.expression), + field('body', choice($.expression, $.list_splat)), $._comprehension_clauses, ']' ), dictionary_comprehension: $ => seq( '{', - field('body', $.pair), + field('body', choice($.pair, $.dictionary_splat)), $._comprehension_clauses, '}' ), set_comprehension: $ => seq( '{', - field('body', $.expression), + field('body', choice($.expression, $.list_splat)), $._comprehension_clauses, '}' ), generator_expression: $ => seq( '(', - field('body', $.expression), + field('body', choice($.expression, $.list_splat)), $._comprehension_clauses, ')' ), From 97086c3cc90da92156c765c97697c654813e13f5 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 15:52:44 +0000 Subject: [PATCH 107/208] Python: Regenerate parser files --- .../extractor/tsg-python/tsp/src/grammar.json | 52 +- .../tsg-python/tsp/src/node-types.json | 16 + python/extractor/tsg-python/tsp/src/parser.c | 114488 ++++++++------- 3 files changed, 57690 insertions(+), 56866 deletions(-) diff --git a/python/extractor/tsg-python/tsp/src/grammar.json b/python/extractor/tsg-python/tsp/src/grammar.json index 552597b18a9..8fb9763034e 100644 --- a/python/extractor/tsg-python/tsp/src/grammar.json +++ b/python/extractor/tsg-python/tsp/src/grammar.json @@ -5646,8 +5646,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "list_splat" + } + ] } }, { @@ -5671,8 +5680,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "pair" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pair" + }, + { + "type": "SYMBOL", + "name": "dictionary_splat" + } + ] } }, { @@ -5696,8 +5714,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "list_splat" + } + ] } }, { @@ -5721,8 +5748,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "list_splat" + } + ] } }, { diff --git a/python/extractor/tsg-python/tsp/src/node-types.json b/python/extractor/tsg-python/tsp/src/node-types.json index f8659f44e2e..6579591c652 100644 --- a/python/extractor/tsg-python/tsp/src/node-types.json +++ b/python/extractor/tsg-python/tsp/src/node-types.json @@ -1162,6 +1162,10 @@ "multiple": false, "required": true, "types": [ + { + "type": "dictionary_splat", + "named": true + }, { "type": "pair", "named": true @@ -1702,6 +1706,10 @@ { "type": "expression", "named": true + }, + { + "type": "list_splat", + "named": true } ] } @@ -2079,6 +2087,10 @@ { "type": "expression", "named": true + }, + { + "type": "list_splat", + "named": true } ] } @@ -3179,6 +3191,10 @@ { "type": "expression", "named": true + }, + { + "type": "list_splat", + "named": true } ] } diff --git a/python/extractor/tsg-python/tsp/src/parser.c b/python/extractor/tsg-python/tsp/src/parser.c index c0d6afc81ee..16db1b93d97 100644 --- a/python/extractor/tsg-python/tsp/src/parser.c +++ b/python/extractor/tsg-python/tsp/src/parser.c @@ -7,8 +7,8 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 1734 -#define LARGE_STATE_COUNT 156 +#define STATE_COUNT 1755 +#define LARGE_STATE_COUNT 157 #define SYMBOL_COUNT 292 #define ALIAS_COUNT 3 #define TOKEN_COUNT 110 @@ -2265,8 +2265,8 @@ static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [47] = {.index = 67, .length = 1}, [48] = {.index = 68, .length = 2}, [49] = {.index = 70, .length = 1}, - [51] = {.index = 71, .length = 3}, - [52] = {.index = 74, .length = 1}, + [51] = {.index = 71, .length = 1}, + [52] = {.index = 72, .length = 3}, [53] = {.index = 75, .length = 2}, [54] = {.index = 77, .length = 1}, [55] = {.index = 78, .length = 2}, @@ -2503,11 +2503,11 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [70] = {field_module_name, 1}, [71] = + {field_body, 1}, + [72] = {field_element, 0}, {field_element, 1, .inherited = true}, {field_trailing_comma, 2}, - [74] = - {field_body, 1}, [75] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, @@ -3088,8 +3088,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1] = 1, [2] = 2, [3] = 3, - [4] = 2, - [5] = 5, + [4] = 4, + [5] = 2, [6] = 6, [7] = 7, [8] = 8, @@ -3116,8 +3116,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [29] = 29, [30] = 30, [31] = 31, - [32] = 5, - [33] = 7, + [32] = 4, + [33] = 6, [34] = 8, [35] = 9, [36] = 10, @@ -3143,13 +3143,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [56] = 30, [57] = 31, [58] = 3, - [59] = 6, + [59] = 7, [60] = 60, [61] = 60, [62] = 62, - [63] = 63, - [64] = 60, - [65] = 63, + [63] = 60, + [64] = 64, + [65] = 62, [66] = 66, [67] = 66, [68] = 68, @@ -3158,65 +3158,65 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [71] = 71, [72] = 72, [73] = 73, - [74] = 71, + [74] = 74, [75] = 75, [76] = 76, - [77] = 77, + [77] = 75, [78] = 78, [79] = 79, - [80] = 68, + [80] = 80, [81] = 81, [82] = 82, [83] = 83, [84] = 84, - [85] = 76, + [85] = 85, [86] = 86, [87] = 87, [88] = 88, - [89] = 69, - [90] = 70, - [91] = 91, - [92] = 72, - [93] = 78, - [94] = 79, + [89] = 89, + [90] = 69, + [91] = 74, + [92] = 70, + [93] = 76, + [94] = 68, [95] = 95, - [96] = 82, - [97] = 97, - [98] = 77, - [99] = 91, + [96] = 81, + [97] = 71, + [98] = 87, + [99] = 79, [100] = 100, [101] = 95, - [102] = 97, + [102] = 80, [103] = 103, - [104] = 103, - [105] = 105, - [106] = 105, - [107] = 81, - [108] = 108, - [109] = 108, + [104] = 100, + [105] = 103, + [106] = 106, + [107] = 107, + [108] = 107, + [109] = 82, [110] = 110, - [111] = 83, - [112] = 112, - [113] = 110, + [111] = 110, + [112] = 83, + [113] = 113, [114] = 84, [115] = 115, - [116] = 112, - [117] = 117, - [118] = 73, - [119] = 115, - [120] = 100, + [116] = 113, + [117] = 85, + [118] = 115, + [119] = 119, + [120] = 72, [121] = 86, - [122] = 117, - [123] = 87, - [124] = 124, + [122] = 73, + [123] = 106, + [124] = 119, [125] = 88, - [126] = 124, + [126] = 89, [127] = 127, - [128] = 127, + [128] = 128, [129] = 127, - [130] = 130, - [131] = 130, - [132] = 130, + [130] = 127, + [131] = 128, + [132] = 128, [133] = 133, [134] = 134, [135] = 135, @@ -3226,153 +3226,153 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [139] = 136, [140] = 136, [141] = 141, - [142] = 142, - [143] = 137, - [144] = 135, - [145] = 145, + [142] = 137, + [143] = 143, + [144] = 144, + [145] = 136, [146] = 136, [147] = 137, - [148] = 136, - [149] = 137, - [150] = 145, + [148] = 135, + [149] = 134, + [150] = 137, [151] = 137, [152] = 137, - [153] = 153, + [153] = 144, [154] = 154, [155] = 155, [156] = 156, [157] = 157, - [158] = 158, + [158] = 157, [159] = 159, - [160] = 160, - [161] = 156, - [162] = 157, - [163] = 156, + [160] = 159, + [161] = 161, + [162] = 162, + [163] = 159, [164] = 164, - [165] = 164, - [166] = 164, - [167] = 164, - [168] = 168, - [169] = 168, - [170] = 170, + [165] = 165, + [166] = 165, + [167] = 165, + [168] = 165, + [169] = 169, + [170] = 169, [171] = 171, [172] = 172, [173] = 173, - [174] = 174, - [175] = 174, + [174] = 173, + [175] = 175, [176] = 176, - [177] = 168, + [177] = 177, [178] = 178, - [179] = 179, - [180] = 173, - [181] = 171, - [182] = 170, - [183] = 172, + [179] = 169, + [180] = 180, + [181] = 178, + [182] = 182, + [183] = 183, [184] = 184, - [185] = 185, - [186] = 174, - [187] = 187, - [188] = 174, - [189] = 189, + [185] = 171, + [186] = 178, + [187] = 172, + [188] = 178, + [189] = 184, [190] = 190, - [191] = 171, - [192] = 170, - [193] = 172, + [191] = 191, + [192] = 192, + [193] = 193, [194] = 194, - [195] = 195, - [196] = 196, - [197] = 197, + [195] = 193, + [196] = 194, + [197] = 173, [198] = 198, - [199] = 196, - [200] = 197, + [199] = 191, + [200] = 200, [201] = 201, [202] = 202, - [203] = 203, - [204] = 204, - [205] = 201, - [206] = 202, - [207] = 207, - [208] = 198, - [209] = 189, - [210] = 197, - [211] = 198, - [212] = 212, - [213] = 201, - [214] = 202, - [215] = 203, - [216] = 204, - [217] = 189, - [218] = 196, - [219] = 197, - [220] = 201, - [221] = 202, - [222] = 203, - [223] = 204, - [224] = 189, - [225] = 196, - [226] = 197, - [227] = 196, - [228] = 197, - [229] = 203, - [230] = 204, - [231] = 196, - [232] = 232, + [203] = 172, + [204] = 198, + [205] = 191, + [206] = 200, + [207] = 201, + [208] = 208, + [209] = 209, + [210] = 208, + [211] = 171, + [212] = 208, + [213] = 192, + [214] = 214, + [215] = 192, + [216] = 193, + [217] = 194, + [218] = 198, + [219] = 191, + [220] = 200, + [221] = 201, + [222] = 209, + [223] = 208, + [224] = 224, + [225] = 193, + [226] = 194, + [227] = 198, + [228] = 228, + [229] = 200, + [230] = 201, + [231] = 209, + [232] = 208, [233] = 233, - [234] = 234, - [235] = 235, - [236] = 236, - [237] = 237, - [238] = 233, - [239] = 239, - [240] = 233, - [241] = 233, - [242] = 242, + [234] = 209, + [235] = 208, + [236] = 209, + [237] = 209, + [238] = 238, + [239] = 238, + [240] = 240, + [241] = 238, + [242] = 238, [243] = 243, [244] = 244, [245] = 245, [246] = 246, - [247] = 245, - [248] = 244, + [247] = 247, + [248] = 248, [249] = 249, [250] = 250, - [251] = 250, + [251] = 248, [252] = 252, [253] = 249, [254] = 254, - [255] = 250, + [255] = 254, [256] = 254, - [257] = 250, - [258] = 252, - [259] = 249, - [260] = 252, - [261] = 249, - [262] = 254, - [263] = 252, - [264] = 264, + [257] = 257, + [258] = 258, + [259] = 257, + [260] = 258, + [261] = 257, + [262] = 258, + [263] = 257, + [264] = 258, [265] = 265, [266] = 266, [267] = 267, - [268] = 266, + [268] = 268, [269] = 269, [270] = 270, - [271] = 269, - [272] = 272, - [273] = 272, + [271] = 271, + [272] = 266, + [273] = 273, [274] = 274, [275] = 275, [276] = 276, - [277] = 267, - [278] = 275, - [279] = 276, + [277] = 270, + [278] = 278, + [279] = 279, [280] = 280, - [281] = 281, - [282] = 282, - [283] = 283, + [281] = 275, + [282] = 267, + [283] = 278, [284] = 284, - [285] = 264, - [286] = 274, - [287] = 265, - [288] = 288, + [285] = 284, + [286] = 280, + [287] = 274, + [288] = 271, [289] = 289, [290] = 290, [291] = 291, @@ -3386,42 +3386,42 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [299] = 299, [300] = 300, [301] = 301, - [302] = 296, + [302] = 302, [303] = 303, - [304] = 304, - [305] = 305, - [306] = 306, + [304] = 292, + [305] = 295, + [306] = 290, [307] = 307, - [308] = 297, - [309] = 307, + [308] = 308, + [309] = 309, [310] = 310, [311] = 311, [312] = 312, [313] = 313, [314] = 314, [315] = 315, - [316] = 316, + [316] = 312, [317] = 317, [318] = 318, - [319] = 310, + [319] = 319, [320] = 320, [321] = 321, - [322] = 321, - [323] = 313, - [324] = 324, - [325] = 325, - [326] = 320, - [327] = 327, - [328] = 328, - [329] = 311, - [330] = 312, - [331] = 325, - [332] = 327, - [333] = 316, - [334] = 317, - [335] = 314, - [336] = 318, - [337] = 337, + [322] = 322, + [323] = 323, + [324] = 314, + [325] = 311, + [326] = 326, + [327] = 321, + [328] = 318, + [329] = 322, + [330] = 326, + [331] = 315, + [332] = 320, + [333] = 333, + [334] = 333, + [335] = 323, + [336] = 336, + [337] = 319, [338] = 338, [339] = 339, [340] = 340, @@ -3429,175 +3429,175 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [342] = 342, [343] = 343, [344] = 344, - [345] = 339, + [345] = 345, [346] = 346, [347] = 347, [348] = 348, - [349] = 342, + [349] = 349, [350] = 350, - [351] = 351, + [351] = 346, [352] = 352, [353] = 353, [354] = 354, [355] = 355, - [356] = 337, - [357] = 357, - [358] = 340, - [359] = 359, + [356] = 356, + [357] = 342, + [358] = 338, + [359] = 339, [360] = 360, - [361] = 339, + [361] = 361, [362] = 362, - [363] = 342, + [363] = 363, [364] = 364, - [365] = 365, - [366] = 337, - [367] = 357, - [368] = 340, - [369] = 339, - [370] = 362, - [371] = 346, + [365] = 353, + [366] = 354, + [367] = 346, + [368] = 342, + [369] = 355, + [370] = 346, + [371] = 349, [372] = 372, - [373] = 342, - [374] = 364, - [375] = 375, - [376] = 376, - [377] = 377, - [378] = 378, - [379] = 379, - [380] = 362, - [381] = 346, - [382] = 357, - [383] = 375, - [384] = 343, - [385] = 385, - [386] = 337, - [387] = 378, - [388] = 357, - [389] = 346, - [390] = 376, - [391] = 346, - [392] = 340, - [393] = 339, - [394] = 375, - [395] = 362, - [396] = 396, - [397] = 376, - [398] = 343, - [399] = 399, - [400] = 376, - [401] = 376, - [402] = 362, + [373] = 353, + [374] = 374, + [375] = 355, + [376] = 338, + [377] = 339, + [378] = 360, + [379] = 342, + [380] = 353, + [381] = 360, + [382] = 338, + [383] = 339, + [384] = 360, + [385] = 342, + [386] = 386, + [387] = 387, + [388] = 349, + [389] = 372, + [390] = 349, + [391] = 372, + [392] = 350, + [393] = 393, + [394] = 394, + [395] = 374, + [396] = 372, + [397] = 374, + [398] = 398, + [399] = 372, + [400] = 400, + [401] = 343, + [402] = 398, [403] = 403, [404] = 404, - [405] = 342, - [406] = 406, - [407] = 337, + [405] = 405, + [406] = 346, + [407] = 407, [408] = 346, - [409] = 337, - [410] = 357, - [411] = 340, - [412] = 339, - [413] = 362, - [414] = 342, - [415] = 376, - [416] = 378, - [417] = 404, - [418] = 347, - [419] = 404, - [420] = 404, - [421] = 404, - [422] = 396, - [423] = 348, - [424] = 404, + [409] = 374, + [410] = 353, + [411] = 355, + [412] = 338, + [413] = 339, + [414] = 360, + [415] = 342, + [416] = 372, + [417] = 417, + [418] = 403, + [419] = 353, + [420] = 403, + [421] = 354, + [422] = 403, + [423] = 403, + [424] = 345, [425] = 425, - [426] = 357, - [427] = 340, - [428] = 360, + [426] = 355, + [427] = 425, + [428] = 339, [429] = 429, - [430] = 430, - [431] = 425, - [432] = 354, - [433] = 430, + [430] = 360, + [431] = 394, + [432] = 403, + [433] = 338, [434] = 434, - [435] = 435, - [436] = 436, - [437] = 437, - [438] = 438, + [435] = 405, + [436] = 348, + [437] = 347, + [438] = 355, [439] = 439, [440] = 440, - [441] = 438, + [441] = 441, [442] = 442, - [443] = 439, + [443] = 443, [444] = 444, - [445] = 445, + [445] = 444, [446] = 446, [447] = 447, - [448] = 446, - [449] = 447, + [448] = 448, + [449] = 448, [450] = 450, - [451] = 437, + [451] = 439, [452] = 452, - [453] = 442, - [454] = 444, - [455] = 445, - [456] = 435, + [453] = 453, + [454] = 447, + [455] = 455, + [456] = 441, [457] = 457, - [458] = 436, - [459] = 457, - [460] = 440, - [461] = 461, - [462] = 462, - [463] = 463, - [464] = 464, + [458] = 457, + [459] = 455, + [460] = 442, + [461] = 440, + [462] = 443, + [463] = 446, + [464] = 450, [465] = 465, [466] = 466, [467] = 467, - [468] = 461, + [468] = 468, [469] = 469, - [470] = 462, - [471] = 469, - [472] = 465, + [470] = 470, + [471] = 471, + [472] = 472, [473] = 473, [474] = 474, - [475] = 474, + [475] = 475, [476] = 476, - [477] = 463, + [477] = 475, [478] = 478, - [479] = 478, + [479] = 473, [480] = 480, - [481] = 467, - [482] = 482, - [483] = 473, - [484] = 466, - [485] = 485, - [486] = 464, - [487] = 487, - [488] = 488, - [489] = 489, - [490] = 490, - [491] = 491, - [492] = 492, + [481] = 480, + [482] = 474, + [483] = 483, + [484] = 476, + [485] = 483, + [486] = 486, + [487] = 467, + [488] = 468, + [489] = 472, + [490] = 486, + [491] = 478, + [492] = 317, [493] = 493, [494] = 494, - [495] = 489, - [496] = 324, - [497] = 497, + [495] = 495, + [496] = 496, + [497] = 493, [498] = 498, - [499] = 328, - [500] = 497, + [499] = 499, + [500] = 500, [501] = 501, [502] = 502, - [503] = 503, - [504] = 504, - [505] = 488, - [506] = 498, - [507] = 491, - [508] = 502, - [509] = 493, - [510] = 492, - [511] = 511, - [512] = 512, - [513] = 513, + [503] = 313, + [504] = 496, + [505] = 498, + [506] = 506, + [507] = 507, + [508] = 507, + [509] = 506, + [510] = 510, + [511] = 500, + [512] = 502, + [513] = 501, [514] = 514, [515] = 515, [516] = 516, @@ -3608,9 +3608,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [521] = 521, [522] = 522, [523] = 523, - [524] = 514, - [525] = 515, - [526] = 517, + [524] = 524, + [525] = 525, + [526] = 526, [527] = 527, [528] = 528, [529] = 529, @@ -3624,172 +3624,172 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [537] = 537, [538] = 538, [539] = 539, - [540] = 540, + [540] = 533, [541] = 541, [542] = 542, [543] = 543, - [544] = 527, + [544] = 544, [545] = 545, [546] = 546, [547] = 547, - [548] = 528, - [549] = 549, + [548] = 548, + [549] = 529, [550] = 550, - [551] = 551, - [552] = 529, + [551] = 531, + [552] = 538, [553] = 553, [554] = 554, - [555] = 555, - [556] = 530, - [557] = 557, - [558] = 558, + [555] = 544, + [556] = 556, + [557] = 554, + [558] = 545, [559] = 559, [560] = 560, - [561] = 561, - [562] = 562, - [563] = 531, - [564] = 564, - [565] = 565, + [561] = 519, + [562] = 539, + [563] = 520, + [564] = 556, + [565] = 521, [566] = 566, - [567] = 532, - [568] = 533, - [569] = 534, - [570] = 570, - [571] = 571, - [572] = 535, - [573] = 536, - [574] = 574, - [575] = 537, - [576] = 538, - [577] = 539, - [578] = 512, - [579] = 540, - [580] = 541, - [581] = 542, - [582] = 582, - [583] = 543, - [584] = 513, + [567] = 525, + [568] = 526, + [569] = 530, + [570] = 532, + [571] = 535, + [572] = 537, + [573] = 541, + [574] = 543, + [575] = 547, + [576] = 548, + [577] = 550, + [578] = 566, + [579] = 579, + [580] = 580, + [581] = 581, + [582] = 579, + [583] = 583, + [584] = 584, [585] = 585, - [586] = 545, - [587] = 546, - [588] = 588, - [589] = 547, - [590] = 590, - [591] = 511, - [592] = 549, - [593] = 551, - [594] = 553, - [595] = 554, - [596] = 555, - [597] = 558, - [598] = 559, - [599] = 516, - [600] = 560, - [601] = 561, - [602] = 562, - [603] = 518, - [604] = 564, - [605] = 565, - [606] = 519, - [607] = 520, - [608] = 521, - [609] = 522, - [610] = 550, - [611] = 566, - [612] = 574, - [613] = 523, - [614] = 570, - [615] = 615, - [616] = 616, - [617] = 616, - [618] = 616, - [619] = 616, - [620] = 616, - [621] = 616, - [622] = 622, - [623] = 623, - [624] = 624, - [625] = 625, + [586] = 586, + [587] = 587, + [588] = 528, + [589] = 589, + [590] = 536, + [591] = 542, + [592] = 553, + [593] = 546, + [594] = 580, + [595] = 595, + [596] = 596, + [597] = 516, + [598] = 517, + [599] = 518, + [600] = 581, + [601] = 586, + [602] = 522, + [603] = 523, + [604] = 559, + [605] = 534, + [606] = 595, + [607] = 596, + [608] = 514, + [609] = 583, + [610] = 584, + [611] = 611, + [612] = 587, + [613] = 585, + [614] = 614, + [615] = 560, + [616] = 611, + [617] = 617, + [618] = 618, + [619] = 619, + [620] = 620, + [621] = 620, + [622] = 620, + [623] = 620, + [624] = 620, + [625] = 620, [626] = 626, - [627] = 625, + [627] = 627, [628] = 628, [629] = 629, - [630] = 624, + [630] = 629, [631] = 631, [632] = 632, - [633] = 625, - [634] = 626, - [635] = 629, - [636] = 636, - [637] = 628, - [638] = 628, - [639] = 631, + [633] = 633, + [634] = 634, + [635] = 626, + [636] = 626, + [637] = 637, + [638] = 638, + [639] = 639, [640] = 640, - [641] = 631, - [642] = 642, - [643] = 640, - [644] = 642, - [645] = 645, - [646] = 628, - [647] = 631, - [648] = 640, - [649] = 642, - [650] = 622, - [651] = 651, - [652] = 623, - [653] = 624, + [641] = 634, + [642] = 628, + [643] = 628, + [644] = 644, + [645] = 644, + [646] = 629, + [647] = 633, + [648] = 648, + [649] = 634, + [650] = 637, + [651] = 648, + [652] = 633, + [653] = 626, [654] = 640, - [655] = 626, - [656] = 625, - [657] = 629, - [658] = 658, - [659] = 623, - [660] = 626, - [661] = 651, - [662] = 629, - [663] = 651, - [664] = 623, - [665] = 628, - [666] = 631, - [667] = 640, - [668] = 642, - [669] = 622, - [670] = 651, - [671] = 623, - [672] = 624, - [673] = 629, - [674] = 642, - [675] = 675, - [676] = 676, - [677] = 624, - [678] = 628, - [679] = 631, - [680] = 640, - [681] = 642, - [682] = 622, - [683] = 651, - [684] = 623, - [685] = 624, - [686] = 622, - [687] = 626, - [688] = 625, - [689] = 629, - [690] = 626, - [691] = 625, - [692] = 692, + [655] = 631, + [656] = 629, + [657] = 644, + [658] = 648, + [659] = 638, + [660] = 638, + [661] = 644, + [662] = 634, + [663] = 637, + [664] = 631, + [665] = 629, + [666] = 626, + [667] = 638, + [668] = 631, + [669] = 648, + [670] = 648, + [671] = 633, + [672] = 634, + [673] = 628, + [674] = 644, + [675] = 633, + [676] = 634, + [677] = 637, + [678] = 640, + [679] = 640, + [680] = 631, + [681] = 629, + [682] = 626, + [683] = 638, + [684] = 640, + [685] = 685, + [686] = 648, + [687] = 633, + [688] = 628, + [689] = 631, + [690] = 690, + [691] = 638, + [692] = 628, [693] = 693, - [694] = 651, - [695] = 622, - [696] = 696, - [697] = 697, + [694] = 694, + [695] = 637, + [696] = 637, + [697] = 644, [698] = 698, - [699] = 699, + [699] = 640, [700] = 700, [701] = 701, [702] = 702, [703] = 703, [704] = 704, - [705] = 705, + [705] = 704, [706] = 706, [707] = 707, [708] = 708, @@ -3810,7 +3810,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [723] = 723, [724] = 724, [725] = 725, - [726] = 719, + [726] = 726, [727] = 727, [728] = 728, [729] = 729, @@ -3821,366 +3821,366 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [734] = 734, [735] = 735, [736] = 736, - [737] = 735, - [738] = 693, + [737] = 737, + [738] = 738, [739] = 739, [740] = 740, - [741] = 740, - [742] = 742, + [741] = 741, + [742] = 739, [743] = 743, [744] = 744, - [745] = 744, + [745] = 745, [746] = 746, [747] = 747, [748] = 748, - [749] = 749, - [750] = 750, - [751] = 743, - [752] = 692, - [753] = 739, - [754] = 742, - [755] = 746, - [756] = 747, - [757] = 736, - [758] = 748, - [759] = 675, - [760] = 676, - [761] = 749, - [762] = 750, - [763] = 719, - [764] = 764, - [765] = 719, - [766] = 645, - [767] = 675, - [768] = 676, - [769] = 658, - [770] = 692, + [749] = 690, + [750] = 693, + [751] = 751, + [752] = 752, + [753] = 685, + [754] = 627, + [755] = 751, + [756] = 752, + [757] = 757, + [758] = 743, + [759] = 744, + [760] = 745, + [761] = 746, + [762] = 740, + [763] = 741, + [764] = 757, + [765] = 748, + [766] = 747, + [767] = 736, + [768] = 685, + [769] = 627, + [770] = 690, [771] = 693, - [772] = 700, - [773] = 764, - [774] = 676, - [775] = 645, - [776] = 658, - [777] = 720, - [778] = 693, - [779] = 692, - [780] = 719, - [781] = 781, - [782] = 675, - [783] = 781, - [784] = 740, - [785] = 739, - [786] = 740, - [787] = 697, - [788] = 698, - [789] = 744, - [790] = 736, - [791] = 735, - [792] = 719, - [793] = 645, - [794] = 658, - [795] = 696, - [796] = 699, - [797] = 743, - [798] = 746, - [799] = 735, + [772] = 698, + [773] = 704, + [774] = 774, + [775] = 704, + [776] = 685, + [777] = 627, + [778] = 778, + [779] = 694, + [780] = 704, + [781] = 694, + [782] = 698, + [783] = 737, + [784] = 690, + [785] = 693, + [786] = 778, + [787] = 774, + [788] = 741, + [789] = 704, + [790] = 694, + [791] = 698, + [792] = 702, + [793] = 701, + [794] = 703, + [795] = 700, + [796] = 751, + [797] = 752, + [798] = 757, + [799] = 747, [800] = 740, - [801] = 746, - [802] = 747, - [803] = 746, - [804] = 744, - [805] = 748, - [806] = 749, - [807] = 750, - [808] = 743, - [809] = 748, - [810] = 739, - [811] = 742, - [812] = 749, + [801] = 739, + [802] = 743, + [803] = 744, + [804] = 748, + [805] = 747, + [806] = 745, + [807] = 746, + [808] = 747, + [809] = 752, + [810] = 757, + [811] = 739, + [812] = 743, [813] = 744, - [814] = 736, - [815] = 750, - [816] = 743, - [817] = 747, + [814] = 745, + [815] = 746, + [816] = 740, + [817] = 741, [818] = 748, - [819] = 739, - [820] = 742, - [821] = 742, - [822] = 736, - [823] = 749, - [824] = 750, - [825] = 735, - [826] = 747, - [827] = 827, - [828] = 828, - [829] = 781, - [830] = 827, - [831] = 746, - [832] = 747, - [833] = 735, - [834] = 571, - [835] = 740, - [836] = 697, - [837] = 698, - [838] = 748, - [839] = 839, - [840] = 749, - [841] = 750, - [842] = 503, - [843] = 696, - [844] = 764, - [845] = 739, - [846] = 742, - [847] = 847, - [848] = 582, - [849] = 487, - [850] = 764, - [851] = 781, - [852] = 696, - [853] = 697, - [854] = 854, - [855] = 744, - [856] = 736, - [857] = 699, + [819] = 751, + [820] = 752, + [821] = 757, + [822] = 739, + [823] = 743, + [824] = 744, + [825] = 745, + [826] = 746, + [827] = 740, + [828] = 741, + [829] = 748, + [830] = 751, + [831] = 778, + [832] = 778, + [833] = 748, + [834] = 701, + [835] = 774, + [836] = 774, + [837] = 778, + [838] = 515, + [839] = 747, + [840] = 700, + [841] = 841, + [842] = 614, + [843] = 702, + [844] = 751, + [845] = 752, + [846] = 702, + [847] = 701, + [848] = 703, + [849] = 617, + [850] = 494, + [851] = 524, + [852] = 703, + [853] = 700, + [854] = 774, + [855] = 855, + [856] = 757, + [857] = 857, [858] = 858, - [859] = 585, - [860] = 698, - [861] = 557, - [862] = 862, - [863] = 781, - [864] = 699, - [865] = 764, - [866] = 743, - [867] = 718, - [868] = 732, - [869] = 701, - [870] = 715, - [871] = 781, - [872] = 582, - [873] = 709, - [874] = 874, - [875] = 875, - [876] = 710, - [877] = 557, - [878] = 725, - [879] = 764, - [880] = 711, - [881] = 733, - [882] = 701, - [883] = 571, - [884] = 709, - [885] = 721, - [886] = 707, - [887] = 722, - [888] = 710, - [889] = 889, - [890] = 703, - [891] = 708, - [892] = 711, - [893] = 731, - [894] = 704, - [895] = 702, - [896] = 708, - [897] = 706, - [898] = 723, - [899] = 899, - [900] = 734, - [901] = 714, - [902] = 712, - [903] = 734, - [904] = 700, - [905] = 720, - [906] = 705, - [907] = 732, - [908] = 718, - [909] = 700, - [910] = 720, - [911] = 721, - [912] = 722, - [913] = 723, - [914] = 724, - [915] = 713, - [916] = 324, - [917] = 733, - [918] = 724, - [919] = 717, - [920] = 725, - [921] = 728, - [922] = 730, - [923] = 923, - [924] = 924, - [925] = 729, - [926] = 704, - [927] = 714, - [928] = 716, - [929] = 716, - [930] = 731, - [931] = 702, - [932] = 713, - [933] = 727, - [934] = 728, - [935] = 729, - [936] = 727, - [937] = 705, - [938] = 703, - [939] = 715, - [940] = 706, - [941] = 707, - [942] = 712, - [943] = 328, - [944] = 730, - [945] = 717, - [946] = 722, - [947] = 728, - [948] = 729, - [949] = 707, - [950] = 708, - [951] = 703, - [952] = 706, - [953] = 712, - [954] = 862, - [955] = 328, - [956] = 723, - [957] = 717, - [958] = 704, - [959] = 705, - [960] = 714, - [961] = 730, - [962] = 732, - [963] = 701, - [964] = 715, - [965] = 709, - [966] = 710, - [967] = 724, - [968] = 711, - [969] = 969, + [859] = 618, + [860] = 470, + [861] = 861, + [862] = 739, + [863] = 743, + [864] = 744, + [865] = 745, + [866] = 746, + [867] = 740, + [868] = 741, + [869] = 869, + [870] = 869, + [871] = 871, + [872] = 499, + [873] = 734, + [874] = 723, + [875] = 724, + [876] = 313, + [877] = 723, + [878] = 707, + [879] = 725, + [880] = 726, + [881] = 727, + [882] = 728, + [883] = 729, + [884] = 730, + [885] = 731, + [886] = 732, + [887] = 733, + [888] = 734, + [889] = 735, + [890] = 709, + [891] = 710, + [892] = 736, + [893] = 737, + [894] = 711, + [895] = 708, + [896] = 896, + [897] = 897, + [898] = 725, + [899] = 712, + [900] = 716, + [901] = 713, + [902] = 714, + [903] = 726, + [904] = 727, + [905] = 728, + [906] = 317, + [907] = 778, + [908] = 729, + [909] = 730, + [910] = 731, + [911] = 706, + [912] = 715, + [913] = 774, + [914] = 515, + [915] = 736, + [916] = 737, + [917] = 614, + [918] = 706, + [919] = 715, + [920] = 719, + [921] = 709, + [922] = 710, + [923] = 707, + [924] = 524, + [925] = 708, + [926] = 738, + [927] = 713, + [928] = 721, + [929] = 724, + [930] = 722, + [931] = 931, + [932] = 711, + [933] = 716, + [934] = 934, + [935] = 935, + [936] = 714, + [937] = 717, + [938] = 718, + [939] = 939, + [940] = 719, + [941] = 732, + [942] = 733, + [943] = 718, + [944] = 738, + [945] = 735, + [946] = 721, + [947] = 717, + [948] = 722, + [949] = 720, + [950] = 720, + [951] = 712, + [952] = 722, + [953] = 708, + [954] = 709, + [955] = 710, + [956] = 711, + [957] = 712, + [958] = 713, + [959] = 317, + [960] = 715, + [961] = 716, + [962] = 717, + [963] = 718, + [964] = 719, + [965] = 738, + [966] = 721, + [967] = 723, + [968] = 724, + [969] = 313, [970] = 725, - [971] = 828, - [972] = 972, - [973] = 973, - [974] = 718, - [975] = 324, - [976] = 721, - [977] = 716, + [971] = 726, + [972] = 727, + [973] = 728, + [974] = 729, + [975] = 730, + [976] = 731, + [977] = 732, [978] = 733, [979] = 734, - [980] = 980, - [981] = 731, - [982] = 702, - [983] = 713, - [984] = 727, - [985] = 985, - [986] = 986, + [980] = 735, + [981] = 981, + [982] = 982, + [983] = 983, + [984] = 858, + [985] = 720, + [986] = 857, [987] = 987, - [988] = 988, - [989] = 989, - [990] = 990, + [988] = 706, + [989] = 707, + [990] = 714, [991] = 991, - [992] = 991, - [993] = 990, + [992] = 992, + [993] = 993, [994] = 994, [995] = 995, - [996] = 991, + [996] = 996, [997] = 997, - [998] = 998, - [999] = 999, - [1000] = 991, - [1001] = 1001, + [998] = 997, + [999] = 996, + [1000] = 1000, + [1001] = 996, [1002] = 1002, - [1003] = 991, - [1004] = 1004, - [1005] = 990, - [1006] = 990, + [1003] = 996, + [1004] = 997, + [1005] = 1005, + [1006] = 1006, [1007] = 1007, - [1008] = 990, + [1008] = 997, [1009] = 1009, - [1010] = 990, - [1011] = 991, + [1010] = 1010, + [1011] = 1011, [1012] = 1012, [1013] = 1013, - [1014] = 1014, - [1015] = 1014, - [1016] = 1014, + [1014] = 997, + [1015] = 996, + [1016] = 997, [1017] = 1017, - [1018] = 1014, - [1019] = 1019, - [1020] = 1014, - [1021] = 1014, + [1018] = 1018, + [1019] = 996, + [1020] = 1020, + [1021] = 1021, [1022] = 1022, - [1023] = 1023, - [1024] = 1024, - [1025] = 1024, - [1026] = 1026, - [1027] = 1027, - [1028] = 1027, + [1023] = 1021, + [1024] = 1021, + [1025] = 1021, + [1026] = 1021, + [1027] = 1021, + [1028] = 1028, [1029] = 1029, - [1030] = 1029, + [1030] = 1030, [1031] = 1031, - [1032] = 1032, + [1032] = 1031, [1033] = 1033, - [1034] = 1034, + [1034] = 1033, [1035] = 1035, - [1036] = 1036, + [1036] = 1035, [1037] = 1037, [1038] = 1038, [1039] = 1039, [1040] = 1040, [1041] = 1041, - [1042] = 1038, - [1043] = 1039, - [1044] = 1038, - [1045] = 1039, - [1046] = 1040, - [1047] = 1037, - [1048] = 1038, - [1049] = 1039, + [1042] = 1042, + [1043] = 1043, + [1044] = 1044, + [1045] = 1045, + [1046] = 1046, + [1047] = 1041, + [1048] = 1048, + [1049] = 1044, [1050] = 1040, - [1051] = 1037, - [1052] = 1039, - [1053] = 1037, - [1054] = 1040, - [1055] = 1041, - [1056] = 1056, - [1057] = 1057, - [1058] = 1041, - [1059] = 1041, - [1060] = 1060, - [1061] = 1061, - [1062] = 1037, - [1063] = 1063, + [1051] = 1046, + [1052] = 1052, + [1053] = 1053, + [1054] = 1044, + [1055] = 1040, + [1056] = 1052, + [1057] = 1046, + [1058] = 1052, + [1059] = 1044, + [1060] = 1044, + [1061] = 1040, + [1062] = 1046, + [1063] = 1041, [1064] = 1064, - [1065] = 1065, - [1066] = 1066, - [1067] = 1067, + [1065] = 1046, + [1066] = 1052, + [1067] = 1041, [1068] = 1068, - [1069] = 1065, - [1070] = 1068, - [1071] = 1064, + [1069] = 1069, + [1070] = 1070, + [1071] = 1071, [1072] = 1072, [1073] = 1073, - [1074] = 1063, - [1075] = 1064, - [1076] = 1076, + [1074] = 1070, + [1075] = 1075, + [1076] = 1072, [1077] = 1077, - [1078] = 1067, + [1078] = 1078, [1079] = 1079, - [1080] = 1072, - [1081] = 1073, - [1082] = 1066, - [1083] = 1068, - [1084] = 1079, - [1085] = 1079, - [1086] = 1079, - [1087] = 1064, - [1088] = 1088, - [1089] = 1076, - [1090] = 1068, - [1091] = 1091, - [1092] = 1092, - [1093] = 1093, - [1094] = 1094, - [1095] = 1095, - [1096] = 1096, + [1080] = 1080, + [1081] = 1081, + [1082] = 1082, + [1083] = 1071, + [1084] = 1070, + [1085] = 1077, + [1086] = 1070, + [1087] = 1075, + [1088] = 1073, + [1089] = 1082, + [1090] = 1080, + [1091] = 1081, + [1092] = 1080, + [1093] = 1075, + [1094] = 1075, + [1095] = 1080, + [1096] = 1069, [1097] = 1097, [1098] = 1098, [1099] = 1099, @@ -4188,34 +4188,34 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1101] = 1101, [1102] = 1102, [1103] = 1103, - [1104] = 1032, + [1104] = 1104, [1105] = 1105, - [1106] = 1031, + [1106] = 1106, [1107] = 1107, [1108] = 1108, - [1109] = 1109, + [1109] = 1098, [1110] = 1110, [1111] = 1111, - [1112] = 1112, + [1112] = 1071, [1113] = 1113, [1114] = 1114, - [1115] = 1115, + [1115] = 1073, [1116] = 1116, [1117] = 1117, - [1118] = 1118, - [1119] = 1067, - [1120] = 1072, - [1121] = 1073, - [1122] = 1076, - [1123] = 1063, - [1124] = 1066, - [1125] = 1065, - [1126] = 1073, + [1118] = 1077, + [1119] = 1119, + [1120] = 1120, + [1121] = 1072, + [1122] = 1122, + [1123] = 1081, + [1124] = 1124, + [1125] = 1125, + [1126] = 1037, [1127] = 1127, - [1128] = 1127, - [1129] = 1129, + [1128] = 1128, + [1129] = 1038, [1130] = 1130, - [1131] = 1094, + [1131] = 1037, [1132] = 1132, [1133] = 1133, [1134] = 1134, @@ -4223,119 +4223,119 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1136] = 1136, [1137] = 1137, [1138] = 1138, - [1139] = 1139, + [1139] = 1098, [1140] = 1140, - [1141] = 1067, - [1142] = 1094, + [1141] = 1141, + [1142] = 1142, [1143] = 1143, - [1144] = 1102, - [1145] = 1066, - [1146] = 1076, - [1147] = 1063, + [1144] = 1120, + [1145] = 1038, + [1146] = 1146, + [1147] = 1069, [1148] = 1148, [1149] = 1149, [1150] = 1150, - [1151] = 1143, - [1152] = 1065, - [1153] = 1153, - [1154] = 1153, - [1155] = 1072, - [1156] = 1032, - [1157] = 1157, - [1158] = 1067, - [1159] = 1072, - [1160] = 1073, - [1161] = 1076, - [1162] = 1063, - [1163] = 1066, - [1164] = 1065, - [1165] = 1165, - [1166] = 1166, - [1167] = 1031, - [1168] = 1168, - [1169] = 1169, - [1170] = 1170, + [1151] = 1151, + [1152] = 1081, + [1153] = 1081, + [1154] = 1077, + [1155] = 1073, + [1156] = 1069, + [1157] = 1071, + [1158] = 1158, + [1159] = 1098, + [1160] = 1160, + [1161] = 1082, + [1162] = 1077, + [1163] = 1082, + [1164] = 1073, + [1165] = 1069, + [1166] = 1072, + [1167] = 1071, + [1168] = 1082, + [1169] = 1125, + [1170] = 1072, [1171] = 1171, - [1172] = 1172, + [1172] = 1146, [1173] = 1173, [1174] = 1174, - [1175] = 1175, + [1175] = 1107, [1176] = 1176, [1177] = 1177, - [1178] = 1066, + [1178] = 1178, [1179] = 1179, [1180] = 1180, [1181] = 1181, - [1182] = 1182, + [1182] = 1077, [1183] = 1183, - [1184] = 1143, - [1185] = 1065, + [1184] = 1184, + [1185] = 1185, [1186] = 1186, - [1187] = 1067, - [1188] = 1188, - [1189] = 1031, - [1190] = 1190, + [1187] = 1187, + [1188] = 1082, + [1189] = 1073, + [1190] = 1069, [1191] = 1191, - [1192] = 1170, + [1192] = 1192, [1193] = 1193, - [1194] = 1072, - [1195] = 1102, - [1196] = 1188, - [1197] = 1073, - [1198] = 1076, - [1199] = 1170, - [1200] = 1063, - [1201] = 1201, + [1194] = 1184, + [1195] = 1195, + [1196] = 1186, + [1197] = 1072, + [1198] = 1037, + [1199] = 1199, + [1200] = 1200, + [1201] = 1071, [1202] = 1202, [1203] = 1203, - [1204] = 1174, + [1204] = 1204, [1205] = 1205, - [1206] = 1206, - [1207] = 1207, - [1208] = 1208, - [1209] = 1171, - [1210] = 1203, - [1211] = 1032, - [1212] = 1153, - [1213] = 1175, - [1214] = 1170, - [1215] = 1215, - [1216] = 1216, - [1217] = 1217, - [1218] = 1218, - [1219] = 1219, - [1220] = 1220, - [1221] = 1221, + [1206] = 1203, + [1207] = 1184, + [1208] = 1177, + [1209] = 1193, + [1210] = 1107, + [1211] = 1186, + [1212] = 1186, + [1213] = 1213, + [1214] = 1081, + [1215] = 1195, + [1216] = 1183, + [1217] = 1202, + [1218] = 1204, + [1219] = 1120, + [1220] = 1125, + [1221] = 1199, [1222] = 1222, [1223] = 1223, - [1224] = 1222, + [1224] = 1224, [1225] = 1225, - [1226] = 1226, - [1227] = 1227, - [1228] = 1217, - [1229] = 1229, - [1230] = 1230, + [1226] = 1202, + [1227] = 1204, + [1228] = 1203, + [1229] = 1202, + [1230] = 1204, [1231] = 1231, - [1232] = 1232, - [1233] = 1231, + [1232] = 1203, + [1233] = 1038, [1234] = 1234, [1235] = 1235, - [1236] = 1236, + [1236] = 1184, [1237] = 1237, - [1238] = 1238, + [1238] = 1125, [1239] = 1239, [1240] = 1240, - [1241] = 1238, - [1242] = 1242, - [1243] = 1201, + [1241] = 1241, + [1242] = 1039, + [1243] = 1243, [1244] = 1244, - [1245] = 1234, - [1246] = 1237, - [1247] = 1219, + [1245] = 1245, + [1246] = 1246, + [1247] = 1247, [1248] = 1248, - [1249] = 1033, - [1250] = 1220, - [1251] = 1251, + [1249] = 1249, + [1250] = 1250, + [1251] = 1245, [1252] = 1252, [1253] = 1253, [1254] = 1254, @@ -4344,52 +4344,52 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1257] = 1257, [1258] = 1258, [1259] = 1259, - [1260] = 1180, + [1260] = 1260, [1261] = 1261, - [1262] = 1262, + [1262] = 1256, [1263] = 1263, [1264] = 1264, - [1265] = 1265, - [1266] = 1262, + [1265] = 1253, + [1266] = 1266, [1267] = 1267, [1268] = 1268, [1269] = 1269, - [1270] = 1270, - [1271] = 1271, - [1272] = 1220, - [1273] = 1273, - [1274] = 1188, + [1270] = 1249, + [1271] = 1231, + [1272] = 1272, + [1273] = 1272, + [1274] = 1243, [1275] = 1275, [1276] = 1276, - [1277] = 1277, - [1278] = 1219, - [1279] = 1279, + [1277] = 1276, + [1278] = 1278, + [1279] = 1250, [1280] = 1280, [1281] = 1281, [1282] = 1282, - [1283] = 1273, - [1284] = 1231, + [1283] = 1283, + [1284] = 1284, [1285] = 1285, - [1286] = 1286, + [1286] = 1272, [1287] = 1287, - [1288] = 1288, + [1288] = 1243, [1289] = 1289, [1290] = 1290, - [1291] = 1269, - [1292] = 1292, - [1293] = 1293, - [1294] = 1056, + [1291] = 1291, + [1292] = 1224, + [1293] = 1053, + [1294] = 1294, [1295] = 1295, - [1296] = 1295, + [1296] = 1289, [1297] = 1297, [1298] = 1298, - [1299] = 1299, + [1299] = 1249, [1300] = 1300, - [1301] = 1299, + [1301] = 1291, [1302] = 1302, [1303] = 1303, [1304] = 1304, - [1305] = 1300, + [1305] = 1305, [1306] = 1306, [1307] = 1307, [1308] = 1308, @@ -4398,12 +4398,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1311] = 1311, [1312] = 1312, [1313] = 1313, - [1314] = 1061, - [1315] = 1035, - [1316] = 1316, - [1317] = 1262, - [1318] = 1308, - [1319] = 1281, + [1314] = 1285, + [1315] = 1315, + [1316] = 1199, + [1317] = 1317, + [1318] = 1318, + [1319] = 1319, [1320] = 1320, [1321] = 1321, [1322] = 1322, @@ -4416,208 +4416,208 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1329] = 1329, [1330] = 1330, [1331] = 1331, - [1332] = 1299, + [1332] = 1332, [1333] = 1333, - [1334] = 1289, - [1335] = 1300, - [1336] = 1306, - [1337] = 1337, - [1338] = 1338, + [1334] = 1334, + [1335] = 1335, + [1336] = 1336, + [1337] = 1300, + [1338] = 1304, [1339] = 1339, - [1340] = 1340, + [1340] = 1324, [1341] = 1341, [1342] = 1342, - [1343] = 1306, + [1343] = 1343, [1344] = 1344, - [1345] = 1306, - [1346] = 1346, + [1345] = 1345, + [1346] = 1345, [1347] = 1347, [1348] = 1348, - [1349] = 1306, + [1349] = 1349, [1350] = 1350, - [1351] = 1312, - [1352] = 1337, - [1353] = 1353, + [1351] = 1328, + [1352] = 1352, + [1353] = 1347, [1354] = 1354, - [1355] = 1309, - [1356] = 1327, + [1355] = 1355, + [1356] = 1330, [1357] = 1357, - [1358] = 1264, + [1358] = 1358, [1359] = 1359, [1360] = 1360, - [1361] = 1361, - [1362] = 1362, + [1361] = 1347, + [1362] = 1290, [1363] = 1363, - [1364] = 1357, - [1365] = 1365, + [1364] = 1364, + [1365] = 1347, [1366] = 1366, - [1367] = 1303, - [1368] = 1304, - [1369] = 1306, + [1367] = 1347, + [1368] = 1368, + [1369] = 1068, [1370] = 1370, - [1371] = 1371, + [1371] = 1359, [1372] = 1372, - [1373] = 1373, + [1373] = 1043, [1374] = 1374, - [1375] = 1307, - [1376] = 1359, - [1377] = 1377, - [1378] = 1378, + [1375] = 1334, + [1376] = 1350, + [1377] = 1363, + [1378] = 1331, [1379] = 1379, [1380] = 1380, [1381] = 1381, [1382] = 1382, [1383] = 1383, - [1384] = 1384, + [1384] = 1302, [1385] = 1385, - [1386] = 1386, - [1387] = 1384, - [1388] = 696, + [1386] = 1370, + [1387] = 1347, + [1388] = 1388, [1389] = 1389, [1390] = 1390, [1391] = 1391, [1392] = 1392, - [1393] = 1393, + [1393] = 1291, [1394] = 1394, [1395] = 1395, [1396] = 1396, [1397] = 1397, - [1398] = 1398, - [1399] = 1399, + [1398] = 1396, + [1399] = 1328, [1400] = 1400, [1401] = 1401, - [1402] = 1393, - [1403] = 1403, - [1404] = 1395, - [1405] = 1394, - [1406] = 1320, + [1402] = 1345, + [1403] = 1397, + [1404] = 1404, + [1405] = 1405, + [1406] = 1406, [1407] = 1407, [1408] = 1408, - [1409] = 1322, + [1409] = 1409, [1410] = 1410, [1411] = 1411, - [1412] = 1379, + [1412] = 1412, [1413] = 1413, - [1414] = 1251, - [1415] = 1384, - [1416] = 1393, - [1417] = 1394, + [1414] = 1335, + [1415] = 1336, + [1416] = 1416, + [1417] = 1417, [1418] = 1418, [1419] = 1419, - [1420] = 1397, + [1420] = 1420, [1421] = 1421, - [1422] = 1399, - [1423] = 1400, + [1422] = 1422, + [1423] = 1423, [1424] = 1424, [1425] = 1425, - [1426] = 1407, + [1426] = 1426, [1427] = 1427, - [1428] = 1386, - [1429] = 697, - [1430] = 1395, - [1431] = 1431, - [1432] = 1407, + [1428] = 1428, + [1429] = 1429, + [1430] = 1430, + [1431] = 1281, + [1432] = 1432, [1433] = 1433, - [1434] = 1397, + [1434] = 1434, [1435] = 1435, - [1436] = 1379, - [1437] = 1413, - [1438] = 1399, - [1439] = 1384, - [1440] = 1393, - [1441] = 1400, - [1442] = 1394, + [1436] = 1436, + [1437] = 1437, + [1438] = 1329, + [1439] = 1439, + [1440] = 1339, + [1441] = 1441, + [1442] = 1442, [1443] = 1443, [1444] = 1444, - [1445] = 1397, + [1445] = 1406, [1446] = 1446, - [1447] = 1399, - [1448] = 1400, + [1447] = 1432, + [1448] = 1448, [1449] = 1449, - [1450] = 1425, - [1451] = 1344, + [1450] = 1449, + [1451] = 1451, [1452] = 1452, [1453] = 1453, [1454] = 1454, [1455] = 1455, - [1456] = 1456, - [1457] = 1457, - [1458] = 1458, - [1459] = 1459, + [1456] = 1412, + [1457] = 1413, + [1458] = 1434, + [1459] = 1441, [1460] = 1460, - [1461] = 1461, + [1461] = 1432, [1462] = 1462, - [1463] = 1463, - [1464] = 1252, + [1463] = 1259, + [1464] = 1432, [1465] = 1465, - [1466] = 1466, - [1467] = 1467, - [1468] = 1468, - [1469] = 1469, - [1470] = 1463, + [1466] = 1449, + [1467] = 1327, + [1468] = 1452, + [1469] = 1453, + [1470] = 1454, [1471] = 1471, - [1472] = 1472, - [1473] = 1326, + [1472] = 1412, + [1473] = 1413, [1474] = 1474, - [1475] = 1328, - [1476] = 1230, + [1475] = 1434, + [1476] = 1441, [1477] = 1477, [1478] = 1478, - [1479] = 1395, + [1479] = 1449, [1480] = 1480, [1481] = 1481, - [1482] = 1482, - [1483] = 1483, + [1482] = 1452, + [1483] = 1481, [1484] = 1484, - [1485] = 1485, - [1486] = 1486, - [1487] = 1372, + [1485] = 702, + [1486] = 1452, + [1487] = 1487, [1488] = 1488, [1489] = 1489, - [1490] = 1490, + [1490] = 1453, [1491] = 1491, - [1492] = 1226, - [1493] = 1452, + [1492] = 1492, + [1493] = 1493, [1494] = 1494, - [1495] = 1495, - [1496] = 1401, - [1497] = 1497, - [1498] = 1379, + [1495] = 1407, + [1496] = 1452, + [1497] = 1453, + [1498] = 1498, [1499] = 1499, - [1500] = 1324, - [1501] = 1413, - [1502] = 1410, - [1503] = 1467, + [1500] = 1500, + [1501] = 1454, + [1502] = 1435, + [1503] = 1465, [1504] = 1504, - [1505] = 1407, + [1505] = 1505, [1506] = 1506, - [1507] = 1413, - [1508] = 1411, - [1509] = 1478, + [1507] = 1507, + [1508] = 1260, + [1509] = 703, [1510] = 1510, - [1511] = 1453, + [1511] = 1511, [1512] = 1512, [1513] = 1513, [1514] = 1514, [1515] = 1515, - [1516] = 1516, - [1517] = 1517, - [1518] = 1518, - [1519] = 1519, - [1520] = 1518, - [1521] = 1521, + [1516] = 1383, + [1517] = 1275, + [1518] = 1454, + [1519] = 1487, + [1520] = 1491, + [1521] = 1412, [1522] = 1522, - [1523] = 320, + [1523] = 1413, [1524] = 1524, - [1525] = 1525, - [1526] = 1526, - [1527] = 1527, + [1525] = 1434, + [1526] = 1441, + [1527] = 1492, [1528] = 1528, - [1529] = 1529, - [1530] = 1530, - [1531] = 1531, + [1529] = 1358, + [1530] = 1515, + [1531] = 1405, [1532] = 1532, - [1533] = 1186, + [1533] = 333, [1534] = 1534, [1535] = 1535, [1536] = 1536, @@ -4626,82 +4626,82 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1539] = 1539, [1540] = 1540, [1541] = 1541, - [1542] = 321, - [1543] = 1539, + [1542] = 1442, + [1543] = 1543, [1544] = 1544, [1545] = 1545, - [1546] = 1531, + [1546] = 1546, [1547] = 1547, - [1548] = 1548, + [1548] = 1538, [1549] = 1549, [1550] = 1550, [1551] = 1551, [1552] = 1552, - [1553] = 1381, - [1554] = 1391, - [1555] = 1550, - [1556] = 1547, + [1553] = 1553, + [1554] = 1554, + [1555] = 1555, + [1556] = 1556, [1557] = 1557, [1558] = 1558, [1559] = 1559, - [1560] = 1560, + [1560] = 1546, [1561] = 1561, - [1562] = 1548, + [1562] = 1562, [1563] = 1563, - [1564] = 310, + [1564] = 1551, [1565] = 1565, [1566] = 1566, [1567] = 1567, - [1568] = 1518, - [1569] = 1569, + [1568] = 1568, + [1569] = 1237, [1570] = 1570, [1571] = 1571, [1572] = 1572, [1573] = 1573, - [1574] = 1510, - [1575] = 318, - [1576] = 1576, + [1574] = 1574, + [1575] = 1575, + [1576] = 1544, [1577] = 1577, [1578] = 1578, [1579] = 1579, [1580] = 1580, - [1581] = 327, - [1582] = 1538, - [1583] = 1512, + [1581] = 1581, + [1582] = 318, + [1583] = 311, [1584] = 1584, [1585] = 1585, [1586] = 1586, - [1587] = 1545, - [1588] = 1588, + [1587] = 1587, + [1588] = 1573, [1589] = 1589, - [1590] = 1590, + [1590] = 1573, [1591] = 1591, [1592] = 1592, [1593] = 1593, - [1594] = 1594, + [1594] = 1547, [1595] = 1595, [1596] = 1596, - [1597] = 1597, - [1598] = 1598, - [1599] = 1599, - [1600] = 1600, + [1597] = 1572, + [1598] = 312, + [1599] = 1574, + [1600] = 1428, [1601] = 1601, [1602] = 1602, [1603] = 1603, [1604] = 1604, [1605] = 1605, - [1606] = 1606, - [1607] = 1607, - [1608] = 1594, + [1606] = 1507, + [1607] = 326, + [1608] = 1608, [1609] = 1609, [1610] = 1610, [1611] = 1611, - [1612] = 1612, + [1612] = 1541, [1613] = 1613, [1614] = 1614, [1615] = 1615, [1616] = 1616, - [1617] = 1617, + [1617] = 1616, [1618] = 1618, [1619] = 1619, [1620] = 1620, @@ -4711,113 +4711,134 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1624] = 1624, [1625] = 1625, [1626] = 1626, - [1627] = 1609, - [1628] = 1617, + [1627] = 1627, + [1628] = 1618, [1629] = 1629, - [1630] = 1593, + [1630] = 1630, [1631] = 1631, - [1632] = 1614, + [1632] = 1632, [1633] = 1633, [1634] = 1634, [1635] = 1635, [1636] = 1636, - [1637] = 1615, - [1638] = 1616, + [1637] = 1635, + [1638] = 1638, [1639] = 1639, - [1640] = 1640, + [1640] = 1615, [1641] = 1641, - [1642] = 1622, - [1643] = 1615, - [1644] = 1620, - [1645] = 1599, + [1642] = 1642, + [1643] = 1643, + [1644] = 1630, + [1645] = 1636, [1646] = 1646, - [1647] = 1633, + [1647] = 1647, [1648] = 1648, - [1649] = 1621, + [1649] = 1643, [1650] = 1650, - [1651] = 1607, + [1651] = 1651, [1652] = 1652, - [1653] = 1611, - [1654] = 1600, - [1655] = 1655, - [1656] = 1641, - [1657] = 1652, - [1658] = 1658, + [1653] = 1653, + [1654] = 1654, + [1655] = 1654, + [1656] = 1621, + [1657] = 1657, + [1658] = 1657, [1659] = 1659, - [1660] = 1660, - [1661] = 1661, - [1662] = 1597, - [1663] = 1663, + [1660] = 1614, + [1661] = 1647, + [1662] = 1662, + [1663] = 1634, [1664] = 1664, [1665] = 1665, - [1666] = 1603, - [1667] = 1601, - [1668] = 1668, - [1669] = 1655, - [1670] = 1652, + [1666] = 1624, + [1667] = 1639, + [1668] = 1631, + [1669] = 1657, + [1670] = 1670, [1671] = 1671, - [1672] = 1603, - [1673] = 1655, - [1674] = 1664, + [1672] = 1619, + [1673] = 1618, + [1674] = 1674, [1675] = 1675, [1676] = 1676, - [1677] = 1677, - [1678] = 1601, - [1679] = 1655, - [1680] = 1618, - [1681] = 1594, - [1682] = 1622, - [1683] = 1641, - [1684] = 1616, - [1685] = 1685, - [1686] = 1659, - [1687] = 1618, - [1688] = 1629, + [1677] = 1651, + [1678] = 1678, + [1679] = 1679, + [1680] = 1665, + [1681] = 1631, + [1682] = 1682, + [1683] = 1683, + [1684] = 1615, + [1685] = 1664, + [1686] = 1654, + [1687] = 1629, + [1688] = 1624, [1689] = 1689, [1690] = 1690, - [1691] = 1641, - [1692] = 1618, - [1693] = 1626, - [1694] = 1694, - [1695] = 1593, - [1696] = 1594, - [1697] = 1697, - [1698] = 1626, - [1699] = 1660, - [1700] = 1700, - [1701] = 1593, - [1702] = 1663, - [1703] = 1634, + [1691] = 1639, + [1692] = 1657, + [1693] = 1632, + [1694] = 1614, + [1695] = 1676, + [1696] = 1696, + [1697] = 1639, + [1698] = 1619, + [1699] = 1699, + [1700] = 1664, + [1701] = 1626, + [1702] = 1619, + [1703] = 1631, [1704] = 1704, - [1705] = 1622, - [1706] = 1592, + [1705] = 1705, + [1706] = 1706, [1707] = 1707, - [1708] = 1616, - [1709] = 1596, - [1710] = 1622, - [1711] = 1711, - [1712] = 1619, - [1713] = 1713, - [1714] = 1714, - [1715] = 1676, - [1716] = 1626, - [1717] = 1717, - [1718] = 1694, - [1719] = 1603, - [1720] = 1622, - [1721] = 1601, - [1722] = 1615, - [1723] = 1641, - [1724] = 1671, - [1725] = 1639, - [1726] = 1659, - [1727] = 1612, - [1728] = 1668, - [1729] = 1641, - [1730] = 1648, - [1731] = 1652, - [1732] = 1659, - [1733] = 1624, + [1708] = 1708, + [1709] = 1709, + [1710] = 1619, + [1711] = 1618, + [1712] = 1712, + [1713] = 1675, + [1714] = 1665, + [1715] = 1648, + [1716] = 1613, + [1717] = 1676, + [1718] = 1718, + [1719] = 1622, + [1720] = 1683, + [1721] = 1654, + [1722] = 1675, + [1723] = 1659, + [1724] = 1665, + [1725] = 1725, + [1726] = 1726, + [1727] = 1624, + [1728] = 1676, + [1729] = 1639, + [1730] = 1619, + [1731] = 1731, + [1732] = 1639, + [1733] = 1664, + [1734] = 1641, + [1735] = 1614, + [1736] = 1736, + [1737] = 1615, + [1738] = 1738, + [1739] = 1736, + [1740] = 1740, + [1741] = 1646, + [1742] = 1742, + [1743] = 1743, + [1744] = 1744, + [1745] = 1699, + [1746] = 1705, + [1747] = 1642, + [1748] = 1748, + [1749] = 1740, + [1750] = 1748, + [1751] = 1718, + [1752] = 1752, + [1753] = 1725, + [1754] = 1675, }; static const TSCharacterRange sym_identifier_character_set_1[] = { @@ -6509,9 +6530,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [59] = {.lex_state = 51, .external_lex_state = 3}, [60] = {.lex_state = 51, .external_lex_state = 3}, [61] = {.lex_state = 51, .external_lex_state = 3}, - [62] = {.lex_state = 51, .external_lex_state = 2}, + [62] = {.lex_state = 51, .external_lex_state = 3}, [63] = {.lex_state = 51, .external_lex_state = 3}, - [64] = {.lex_state = 51, .external_lex_state = 3}, + [64] = {.lex_state = 51, .external_lex_state = 2}, [65] = {.lex_state = 51, .external_lex_state = 2}, [66] = {.lex_state = 51, .external_lex_state = 4}, [67] = {.lex_state = 51, .external_lex_state = 4}, @@ -6522,10 +6543,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [72] = {.lex_state = 51, .external_lex_state = 5}, [73] = {.lex_state = 51, .external_lex_state = 5}, [74] = {.lex_state = 51, .external_lex_state = 5}, - [75] = {.lex_state = 51, .external_lex_state = 4}, + [75] = {.lex_state = 51, .external_lex_state = 5}, [76] = {.lex_state = 51, .external_lex_state = 5}, [77] = {.lex_state = 51, .external_lex_state = 5}, - [78] = {.lex_state = 51, .external_lex_state = 5}, + [78] = {.lex_state = 51, .external_lex_state = 4}, [79] = {.lex_state = 51, .external_lex_state = 5}, [80] = {.lex_state = 51, .external_lex_state = 5}, [81] = {.lex_state = 51, .external_lex_state = 5}, @@ -6581,23 +6602,23 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [131] = {.lex_state = 51, .external_lex_state = 4}, [132] = {.lex_state = 51, .external_lex_state = 4}, [133] = {.lex_state = 51, .external_lex_state = 2}, - [134] = {.lex_state = 51, .external_lex_state = 2}, - [135] = {.lex_state = 51, .external_lex_state = 4}, + [134] = {.lex_state = 51, .external_lex_state = 4}, + [135] = {.lex_state = 51, .external_lex_state = 2}, [136] = {.lex_state = 51, .external_lex_state = 2}, [137] = {.lex_state = 51, .external_lex_state = 2}, [138] = {.lex_state = 51, .external_lex_state = 2}, - [139] = {.lex_state = 51, .external_lex_state = 4}, - [140] = {.lex_state = 14, .external_lex_state = 2}, + [139] = {.lex_state = 14, .external_lex_state = 2}, + [140] = {.lex_state = 51, .external_lex_state = 4}, [141] = {.lex_state = 51, .external_lex_state = 2}, [142] = {.lex_state = 51, .external_lex_state = 2}, [143] = {.lex_state = 51, .external_lex_state = 2}, [144] = {.lex_state = 51, .external_lex_state = 2}, [145] = {.lex_state = 51, .external_lex_state = 2}, [146] = {.lex_state = 51, .external_lex_state = 2}, - [147] = {.lex_state = 51, .external_lex_state = 4}, + [147] = {.lex_state = 14, .external_lex_state = 2}, [148] = {.lex_state = 51, .external_lex_state = 2}, - [149] = {.lex_state = 14, .external_lex_state = 2}, - [150] = {.lex_state = 51, .external_lex_state = 2}, + [149] = {.lex_state = 51, .external_lex_state = 2}, + [150] = {.lex_state = 51, .external_lex_state = 4}, [151] = {.lex_state = 51, .external_lex_state = 2}, [152] = {.lex_state = 51, .external_lex_state = 2}, [153] = {.lex_state = 51, .external_lex_state = 2}, @@ -6621,36 +6642,36 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [171] = {.lex_state = 51, .external_lex_state = 2}, [172] = {.lex_state = 51, .external_lex_state = 2}, [173] = {.lex_state = 51, .external_lex_state = 2}, - [174] = {.lex_state = 51, .external_lex_state = 2}, + [174] = {.lex_state = 14, .external_lex_state = 2}, [175] = {.lex_state = 51, .external_lex_state = 2}, [176] = {.lex_state = 51, .external_lex_state = 2}, - [177] = {.lex_state = 51, .external_lex_state = 4}, - [178] = {.lex_state = 51, .external_lex_state = 4}, - [179] = {.lex_state = 51, .external_lex_state = 2}, + [177] = {.lex_state = 51, .external_lex_state = 2}, + [178] = {.lex_state = 51, .external_lex_state = 2}, + [179] = {.lex_state = 51, .external_lex_state = 4}, [180] = {.lex_state = 51, .external_lex_state = 2}, - [181] = {.lex_state = 14, .external_lex_state = 2}, - [182] = {.lex_state = 14, .external_lex_state = 2}, - [183] = {.lex_state = 14, .external_lex_state = 2}, + [181] = {.lex_state = 51, .external_lex_state = 2}, + [182] = {.lex_state = 51, .external_lex_state = 4}, + [183] = {.lex_state = 51, .external_lex_state = 2}, [184] = {.lex_state = 51, .external_lex_state = 2}, - [185] = {.lex_state = 51, .external_lex_state = 2}, + [185] = {.lex_state = 14, .external_lex_state = 2}, [186] = {.lex_state = 51, .external_lex_state = 2}, - [187] = {.lex_state = 51, .external_lex_state = 2}, + [187] = {.lex_state = 14, .external_lex_state = 2}, [188] = {.lex_state = 51, .external_lex_state = 2}, [189] = {.lex_state = 51, .external_lex_state = 2}, [190] = {.lex_state = 51, .external_lex_state = 2}, - [191] = {.lex_state = 51, .external_lex_state = 4}, - [192] = {.lex_state = 51, .external_lex_state = 4}, - [193] = {.lex_state = 51, .external_lex_state = 4}, + [191] = {.lex_state = 51, .external_lex_state = 2}, + [192] = {.lex_state = 51, .external_lex_state = 2}, + [193] = {.lex_state = 51, .external_lex_state = 2}, [194] = {.lex_state = 51, .external_lex_state = 2}, - [195] = {.lex_state = 51, .external_lex_state = 4}, + [195] = {.lex_state = 51, .external_lex_state = 2}, [196] = {.lex_state = 51, .external_lex_state = 2}, - [197] = {.lex_state = 51, .external_lex_state = 2}, + [197] = {.lex_state = 51, .external_lex_state = 4}, [198] = {.lex_state = 51, .external_lex_state = 2}, [199] = {.lex_state = 51, .external_lex_state = 2}, [200] = {.lex_state = 51, .external_lex_state = 2}, [201] = {.lex_state = 51, .external_lex_state = 2}, [202] = {.lex_state = 51, .external_lex_state = 2}, - [203] = {.lex_state = 51, .external_lex_state = 2}, + [203] = {.lex_state = 51, .external_lex_state = 4}, [204] = {.lex_state = 51, .external_lex_state = 2}, [205] = {.lex_state = 51, .external_lex_state = 2}, [206] = {.lex_state = 51, .external_lex_state = 2}, @@ -6658,7 +6679,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [208] = {.lex_state = 51, .external_lex_state = 2}, [209] = {.lex_state = 51, .external_lex_state = 2}, [210] = {.lex_state = 51, .external_lex_state = 2}, - [211] = {.lex_state = 51, .external_lex_state = 2}, + [211] = {.lex_state = 51, .external_lex_state = 4}, [212] = {.lex_state = 51, .external_lex_state = 2}, [213] = {.lex_state = 51, .external_lex_state = 2}, [214] = {.lex_state = 51, .external_lex_state = 2}, @@ -6680,7 +6701,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [230] = {.lex_state = 51, .external_lex_state = 2}, [231] = {.lex_state = 51, .external_lex_state = 2}, [232] = {.lex_state = 51, .external_lex_state = 2}, - [233] = {.lex_state = 51, .external_lex_state = 2}, + [233] = {.lex_state = 51, .external_lex_state = 4}, [234] = {.lex_state = 51, .external_lex_state = 2}, [235] = {.lex_state = 51, .external_lex_state = 2}, [236] = {.lex_state = 51, .external_lex_state = 2}, @@ -6714,41 +6735,41 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [264] = {.lex_state = 51, .external_lex_state = 2}, [265] = {.lex_state = 51, .external_lex_state = 2}, [266] = {.lex_state = 51, .external_lex_state = 3}, - [267] = {.lex_state = 51, .external_lex_state = 2}, + [267] = {.lex_state = 51, .external_lex_state = 3}, [268] = {.lex_state = 51, .external_lex_state = 2}, [269] = {.lex_state = 51, .external_lex_state = 2}, [270] = {.lex_state = 51, .external_lex_state = 2}, - [271] = {.lex_state = 51, .external_lex_state = 3}, + [271] = {.lex_state = 51, .external_lex_state = 2}, [272] = {.lex_state = 51, .external_lex_state = 2}, - [273] = {.lex_state = 51, .external_lex_state = 3}, + [273] = {.lex_state = 51, .external_lex_state = 2}, [274] = {.lex_state = 51, .external_lex_state = 2}, - [275] = {.lex_state = 51, .external_lex_state = 2}, + [275] = {.lex_state = 51, .external_lex_state = 3}, [276] = {.lex_state = 51, .external_lex_state = 2}, [277] = {.lex_state = 51, .external_lex_state = 2}, [278] = {.lex_state = 51, .external_lex_state = 2}, - [279] = {.lex_state = 51, .external_lex_state = 3}, + [279] = {.lex_state = 51, .external_lex_state = 2}, [280] = {.lex_state = 51, .external_lex_state = 2}, [281] = {.lex_state = 51, .external_lex_state = 2}, [282] = {.lex_state = 51, .external_lex_state = 2}, - [283] = {.lex_state = 51, .external_lex_state = 2}, + [283] = {.lex_state = 51, .external_lex_state = 3}, [284] = {.lex_state = 51, .external_lex_state = 2}, [285] = {.lex_state = 51, .external_lex_state = 2}, [286] = {.lex_state = 51, .external_lex_state = 2}, [287] = {.lex_state = 51, .external_lex_state = 2}, - [288] = {.lex_state = 51, .external_lex_state = 4}, + [288] = {.lex_state = 51, .external_lex_state = 2}, [289] = {.lex_state = 51, .external_lex_state = 2}, - [290] = {.lex_state = 51, .external_lex_state = 4}, + [290] = {.lex_state = 51, .external_lex_state = 2}, [291] = {.lex_state = 51, .external_lex_state = 4}, - [292] = {.lex_state = 51, .external_lex_state = 4}, + [292] = {.lex_state = 51, .external_lex_state = 2}, [293] = {.lex_state = 51, .external_lex_state = 2}, [294] = {.lex_state = 51, .external_lex_state = 2}, [295] = {.lex_state = 51, .external_lex_state = 2}, - [296] = {.lex_state = 51, .external_lex_state = 2}, + [296] = {.lex_state = 51, .external_lex_state = 4}, [297] = {.lex_state = 51, .external_lex_state = 2}, [298] = {.lex_state = 51, .external_lex_state = 2}, [299] = {.lex_state = 51, .external_lex_state = 2}, - [300] = {.lex_state = 51, .external_lex_state = 2}, - [301] = {.lex_state = 51, .external_lex_state = 2}, + [300] = {.lex_state = 51, .external_lex_state = 4}, + [301] = {.lex_state = 51, .external_lex_state = 4}, [302] = {.lex_state = 51, .external_lex_state = 2}, [303] = {.lex_state = 51, .external_lex_state = 2}, [304] = {.lex_state = 51, .external_lex_state = 2}, @@ -6757,34 +6778,34 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [307] = {.lex_state = 51, .external_lex_state = 2}, [308] = {.lex_state = 51, .external_lex_state = 2}, [309] = {.lex_state = 51, .external_lex_state = 2}, - [310] = {.lex_state = 51, .external_lex_state = 3}, + [310] = {.lex_state = 51, .external_lex_state = 2}, [311] = {.lex_state = 51, .external_lex_state = 2}, [312] = {.lex_state = 51, .external_lex_state = 2}, - [313] = {.lex_state = 51, .external_lex_state = 3}, + [313] = {.lex_state = 16}, [314] = {.lex_state = 51, .external_lex_state = 2}, [315] = {.lex_state = 51, .external_lex_state = 2}, - [316] = {.lex_state = 51, .external_lex_state = 2}, - [317] = {.lex_state = 51, .external_lex_state = 2}, + [316] = {.lex_state = 51, .external_lex_state = 3}, + [317] = {.lex_state = 16}, [318] = {.lex_state = 51, .external_lex_state = 3}, [319] = {.lex_state = 51, .external_lex_state = 2}, - [320] = {.lex_state = 51, .external_lex_state = 2}, - [321] = {.lex_state = 51, .external_lex_state = 2}, + [320] = {.lex_state = 51, .external_lex_state = 3}, + [321] = {.lex_state = 51, .external_lex_state = 3}, [322] = {.lex_state = 51, .external_lex_state = 3}, [323] = {.lex_state = 51, .external_lex_state = 2}, - [324] = {.lex_state = 16}, + [324] = {.lex_state = 51, .external_lex_state = 3}, [325] = {.lex_state = 51, .external_lex_state = 3}, - [326] = {.lex_state = 51, .external_lex_state = 3}, + [326] = {.lex_state = 51, .external_lex_state = 2}, [327] = {.lex_state = 51, .external_lex_state = 2}, - [328] = {.lex_state = 16}, - [329] = {.lex_state = 51, .external_lex_state = 3}, + [328] = {.lex_state = 51, .external_lex_state = 2}, + [329] = {.lex_state = 51, .external_lex_state = 2}, [330] = {.lex_state = 51, .external_lex_state = 3}, - [331] = {.lex_state = 51, .external_lex_state = 2}, - [332] = {.lex_state = 51, .external_lex_state = 3}, + [331] = {.lex_state = 51, .external_lex_state = 3}, + [332] = {.lex_state = 51, .external_lex_state = 2}, [333] = {.lex_state = 51, .external_lex_state = 3}, - [334] = {.lex_state = 51, .external_lex_state = 3}, + [334] = {.lex_state = 51, .external_lex_state = 2}, [335] = {.lex_state = 51, .external_lex_state = 2}, [336] = {.lex_state = 51, .external_lex_state = 2}, - [337] = {.lex_state = 51, .external_lex_state = 2}, + [337] = {.lex_state = 51, .external_lex_state = 3}, [338] = {.lex_state = 51, .external_lex_state = 2}, [339] = {.lex_state = 51, .external_lex_state = 2}, [340] = {.lex_state = 51, .external_lex_state = 2}, @@ -6794,10 +6815,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [344] = {.lex_state = 51, .external_lex_state = 2}, [345] = {.lex_state = 51, .external_lex_state = 2}, [346] = {.lex_state = 51, .external_lex_state = 2}, - [347] = {.lex_state = 51, .external_lex_state = 2}, + [347] = {.lex_state = 16, .external_lex_state = 6}, [348] = {.lex_state = 51, .external_lex_state = 2}, [349] = {.lex_state = 51, .external_lex_state = 2}, - [350] = {.lex_state = 51, .external_lex_state = 2}, + [350] = {.lex_state = 51, .external_lex_state = 3}, [351] = {.lex_state = 51, .external_lex_state = 2}, [352] = {.lex_state = 51, .external_lex_state = 2}, [353] = {.lex_state = 51, .external_lex_state = 2}, @@ -6821,7 +6842,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [371] = {.lex_state = 51, .external_lex_state = 2}, [372] = {.lex_state = 51, .external_lex_state = 2}, [373] = {.lex_state = 51, .external_lex_state = 2}, - [374] = {.lex_state = 51, .external_lex_state = 3}, + [374] = {.lex_state = 51, .external_lex_state = 2}, [375] = {.lex_state = 51, .external_lex_state = 2}, [376] = {.lex_state = 51, .external_lex_state = 2}, [377] = {.lex_state = 51, .external_lex_state = 2}, @@ -6877,195 +6898,195 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [427] = {.lex_state = 51, .external_lex_state = 2}, [428] = {.lex_state = 51, .external_lex_state = 2}, [429] = {.lex_state = 51, .external_lex_state = 2}, - [430] = {.lex_state = 16, .external_lex_state = 6}, + [430] = {.lex_state = 51, .external_lex_state = 2}, [431] = {.lex_state = 51, .external_lex_state = 2}, [432] = {.lex_state = 51, .external_lex_state = 2}, - [433] = {.lex_state = 16, .external_lex_state = 6}, + [433] = {.lex_state = 51, .external_lex_state = 2}, [434] = {.lex_state = 51, .external_lex_state = 2}, - [435] = {.lex_state = 51, .external_lex_state = 3}, - [436] = {.lex_state = 51, .external_lex_state = 3}, - [437] = {.lex_state = 51, .external_lex_state = 2}, + [435] = {.lex_state = 51, .external_lex_state = 2}, + [436] = {.lex_state = 51, .external_lex_state = 2}, + [437] = {.lex_state = 16, .external_lex_state = 6}, [438] = {.lex_state = 51, .external_lex_state = 2}, - [439] = {.lex_state = 51, .external_lex_state = 2}, + [439] = {.lex_state = 51, .external_lex_state = 3}, [440] = {.lex_state = 51, .external_lex_state = 3}, - [441] = {.lex_state = 51, .external_lex_state = 3}, + [441] = {.lex_state = 51, .external_lex_state = 2}, [442] = {.lex_state = 51, .external_lex_state = 2}, - [443] = {.lex_state = 51, .external_lex_state = 3}, + [443] = {.lex_state = 51, .external_lex_state = 2}, [444] = {.lex_state = 51, .external_lex_state = 3}, [445] = {.lex_state = 51, .external_lex_state = 2}, - [446] = {.lex_state = 51, .external_lex_state = 3}, - [447] = {.lex_state = 51, .external_lex_state = 3}, - [448] = {.lex_state = 51, .external_lex_state = 2}, + [446] = {.lex_state = 51, .external_lex_state = 2}, + [447] = {.lex_state = 51, .external_lex_state = 2}, + [448] = {.lex_state = 51, .external_lex_state = 3}, [449] = {.lex_state = 51, .external_lex_state = 2}, - [450] = {.lex_state = 16, .external_lex_state = 6}, - [451] = {.lex_state = 51, .external_lex_state = 3}, + [450] = {.lex_state = 51, .external_lex_state = 2}, + [451] = {.lex_state = 51, .external_lex_state = 2}, [452] = {.lex_state = 16, .external_lex_state = 7}, - [453] = {.lex_state = 51, .external_lex_state = 3}, - [454] = {.lex_state = 51, .external_lex_state = 2}, - [455] = {.lex_state = 51, .external_lex_state = 3}, - [456] = {.lex_state = 51, .external_lex_state = 2}, + [453] = {.lex_state = 16, .external_lex_state = 6}, + [454] = {.lex_state = 51, .external_lex_state = 3}, + [455] = {.lex_state = 51, .external_lex_state = 2}, + [456] = {.lex_state = 51, .external_lex_state = 3}, [457] = {.lex_state = 51, .external_lex_state = 2}, - [458] = {.lex_state = 51, .external_lex_state = 2}, + [458] = {.lex_state = 51, .external_lex_state = 3}, [459] = {.lex_state = 51, .external_lex_state = 3}, - [460] = {.lex_state = 51, .external_lex_state = 2}, + [460] = {.lex_state = 51, .external_lex_state = 3}, [461] = {.lex_state = 51, .external_lex_state = 2}, - [462] = {.lex_state = 51, .external_lex_state = 2}, + [462] = {.lex_state = 51, .external_lex_state = 3}, [463] = {.lex_state = 51, .external_lex_state = 3}, - [464] = {.lex_state = 51, .external_lex_state = 2}, + [464] = {.lex_state = 51, .external_lex_state = 3}, [465] = {.lex_state = 51, .external_lex_state = 2}, - [466] = {.lex_state = 51, .external_lex_state = 3}, + [466] = {.lex_state = 51, .external_lex_state = 2}, [467] = {.lex_state = 51, .external_lex_state = 2}, - [468] = {.lex_state = 51, .external_lex_state = 3}, - [469] = {.lex_state = 51, .external_lex_state = 3}, - [470] = {.lex_state = 51, .external_lex_state = 3}, + [468] = {.lex_state = 51, .external_lex_state = 2}, + [469] = {.lex_state = 16, .external_lex_state = 6}, + [470] = {.lex_state = 16}, [471] = {.lex_state = 51, .external_lex_state = 2}, - [472] = {.lex_state = 51, .external_lex_state = 3}, + [472] = {.lex_state = 51, .external_lex_state = 2}, [473] = {.lex_state = 51, .external_lex_state = 2}, [474] = {.lex_state = 51, .external_lex_state = 2}, - [475] = {.lex_state = 51, .external_lex_state = 3}, + [475] = {.lex_state = 51, .external_lex_state = 2}, [476] = {.lex_state = 51, .external_lex_state = 2}, - [477] = {.lex_state = 51, .external_lex_state = 2}, + [477] = {.lex_state = 51, .external_lex_state = 3}, [478] = {.lex_state = 51, .external_lex_state = 2}, [479] = {.lex_state = 51, .external_lex_state = 3}, - [480] = {.lex_state = 16, .external_lex_state = 6}, - [481] = {.lex_state = 51, .external_lex_state = 3}, - [482] = {.lex_state = 51, .external_lex_state = 2}, - [483] = {.lex_state = 51, .external_lex_state = 3}, - [484] = {.lex_state = 51, .external_lex_state = 2}, - [485] = {.lex_state = 51, .external_lex_state = 2}, + [480] = {.lex_state = 51, .external_lex_state = 3}, + [481] = {.lex_state = 51, .external_lex_state = 2}, + [482] = {.lex_state = 51, .external_lex_state = 3}, + [483] = {.lex_state = 51, .external_lex_state = 2}, + [484] = {.lex_state = 51, .external_lex_state = 3}, + [485] = {.lex_state = 51, .external_lex_state = 3}, [486] = {.lex_state = 51, .external_lex_state = 3}, - [487] = {.lex_state = 16, .external_lex_state = 6}, + [487] = {.lex_state = 51, .external_lex_state = 3}, [488] = {.lex_state = 51, .external_lex_state = 3}, - [489] = {.lex_state = 51, .external_lex_state = 2}, - [490] = {.lex_state = 16}, + [489] = {.lex_state = 51, .external_lex_state = 3}, + [490] = {.lex_state = 51, .external_lex_state = 2}, [491] = {.lex_state = 51, .external_lex_state = 3}, - [492] = {.lex_state = 51, .external_lex_state = 2}, + [492] = {.lex_state = 16, .external_lex_state = 6}, [493] = {.lex_state = 51, .external_lex_state = 2}, - [494] = {.lex_state = 16}, - [495] = {.lex_state = 51, .external_lex_state = 3}, - [496] = {.lex_state = 16, .external_lex_state = 6}, + [494] = {.lex_state = 16, .external_lex_state = 6}, + [495] = {.lex_state = 51, .external_lex_state = 2}, + [496] = {.lex_state = 51, .external_lex_state = 2}, [497] = {.lex_state = 51, .external_lex_state = 3}, [498] = {.lex_state = 51, .external_lex_state = 2}, [499] = {.lex_state = 16, .external_lex_state = 6}, - [500] = {.lex_state = 51, .external_lex_state = 2}, + [500] = {.lex_state = 51, .external_lex_state = 3}, [501] = {.lex_state = 51, .external_lex_state = 2}, [502] = {.lex_state = 51, .external_lex_state = 3}, [503] = {.lex_state = 16, .external_lex_state = 6}, - [504] = {.lex_state = 51, .external_lex_state = 2}, - [505] = {.lex_state = 51, .external_lex_state = 2}, - [506] = {.lex_state = 51, .external_lex_state = 3}, - [507] = {.lex_state = 51, .external_lex_state = 2}, + [504] = {.lex_state = 51, .external_lex_state = 3}, + [505] = {.lex_state = 51, .external_lex_state = 3}, + [506] = {.lex_state = 51, .external_lex_state = 2}, + [507] = {.lex_state = 51, .external_lex_state = 3}, [508] = {.lex_state = 51, .external_lex_state = 2}, [509] = {.lex_state = 51, .external_lex_state = 2}, [510] = {.lex_state = 51, .external_lex_state = 2}, - [511] = {.lex_state = 51, .external_lex_state = 3}, - [512] = {.lex_state = 51, .external_lex_state = 3}, - [513] = {.lex_state = 51, .external_lex_state = 3}, - [514] = {.lex_state = 51, .external_lex_state = 2}, - [515] = {.lex_state = 51, .external_lex_state = 2}, - [516] = {.lex_state = 51, .external_lex_state = 3}, + [511] = {.lex_state = 51, .external_lex_state = 2}, + [512] = {.lex_state = 51, .external_lex_state = 2}, + [513] = {.lex_state = 51, .external_lex_state = 2}, + [514] = {.lex_state = 51, .external_lex_state = 3}, + [515] = {.lex_state = 16, .external_lex_state = 6}, + [516] = {.lex_state = 51, .external_lex_state = 2}, [517] = {.lex_state = 51, .external_lex_state = 2}, - [518] = {.lex_state = 51, .external_lex_state = 3}, - [519] = {.lex_state = 51, .external_lex_state = 3}, - [520] = {.lex_state = 51, .external_lex_state = 3}, - [521] = {.lex_state = 51, .external_lex_state = 3}, - [522] = {.lex_state = 51, .external_lex_state = 3}, - [523] = {.lex_state = 51, .external_lex_state = 3}, - [524] = {.lex_state = 51, .external_lex_state = 3}, - [525] = {.lex_state = 51, .external_lex_state = 3}, - [526] = {.lex_state = 51, .external_lex_state = 3}, - [527] = {.lex_state = 51, .external_lex_state = 3}, - [528] = {.lex_state = 51, .external_lex_state = 3}, - [529] = {.lex_state = 51, .external_lex_state = 3}, - [530] = {.lex_state = 51, .external_lex_state = 3}, - [531] = {.lex_state = 51, .external_lex_state = 3}, - [532] = {.lex_state = 51, .external_lex_state = 3}, - [533] = {.lex_state = 51, .external_lex_state = 3}, + [518] = {.lex_state = 51, .external_lex_state = 2}, + [519] = {.lex_state = 51, .external_lex_state = 2}, + [520] = {.lex_state = 51, .external_lex_state = 2}, + [521] = {.lex_state = 51, .external_lex_state = 2}, + [522] = {.lex_state = 51, .external_lex_state = 2}, + [523] = {.lex_state = 51, .external_lex_state = 2}, + [524] = {.lex_state = 16, .external_lex_state = 6}, + [525] = {.lex_state = 51, .external_lex_state = 2}, + [526] = {.lex_state = 51, .external_lex_state = 2}, + [527] = {.lex_state = 51, .external_lex_state = 2}, + [528] = {.lex_state = 51, .external_lex_state = 2}, + [529] = {.lex_state = 51, .external_lex_state = 2}, + [530] = {.lex_state = 51, .external_lex_state = 2}, + [531] = {.lex_state = 51, .external_lex_state = 2}, + [532] = {.lex_state = 51, .external_lex_state = 2}, + [533] = {.lex_state = 51, .external_lex_state = 2}, [534] = {.lex_state = 51, .external_lex_state = 3}, - [535] = {.lex_state = 51, .external_lex_state = 3}, - [536] = {.lex_state = 51, .external_lex_state = 3}, - [537] = {.lex_state = 51, .external_lex_state = 3}, - [538] = {.lex_state = 51, .external_lex_state = 3}, - [539] = {.lex_state = 51, .external_lex_state = 3}, + [535] = {.lex_state = 51, .external_lex_state = 2}, + [536] = {.lex_state = 51, .external_lex_state = 2}, + [537] = {.lex_state = 51, .external_lex_state = 2}, + [538] = {.lex_state = 51, .external_lex_state = 2}, + [539] = {.lex_state = 51, .external_lex_state = 2}, [540] = {.lex_state = 51, .external_lex_state = 3}, - [541] = {.lex_state = 51, .external_lex_state = 3}, - [542] = {.lex_state = 51, .external_lex_state = 3}, - [543] = {.lex_state = 51, .external_lex_state = 3}, - [544] = {.lex_state = 51, .external_lex_state = 2}, + [541] = {.lex_state = 51, .external_lex_state = 2}, + [542] = {.lex_state = 51, .external_lex_state = 2}, + [543] = {.lex_state = 51, .external_lex_state = 2}, + [544] = {.lex_state = 51, .external_lex_state = 3}, [545] = {.lex_state = 51, .external_lex_state = 3}, [546] = {.lex_state = 51, .external_lex_state = 3}, - [547] = {.lex_state = 51, .external_lex_state = 3}, + [547] = {.lex_state = 51, .external_lex_state = 2}, [548] = {.lex_state = 51, .external_lex_state = 2}, [549] = {.lex_state = 51, .external_lex_state = 3}, [550] = {.lex_state = 51, .external_lex_state = 2}, [551] = {.lex_state = 51, .external_lex_state = 3}, - [552] = {.lex_state = 51, .external_lex_state = 2}, - [553] = {.lex_state = 51, .external_lex_state = 3}, + [552] = {.lex_state = 51, .external_lex_state = 3}, + [553] = {.lex_state = 51, .external_lex_state = 2}, [554] = {.lex_state = 51, .external_lex_state = 3}, - [555] = {.lex_state = 51, .external_lex_state = 3}, - [556] = {.lex_state = 51, .external_lex_state = 2}, - [557] = {.lex_state = 16, .external_lex_state = 6}, - [558] = {.lex_state = 51, .external_lex_state = 3}, + [555] = {.lex_state = 51, .external_lex_state = 2}, + [556] = {.lex_state = 51, .external_lex_state = 3}, + [557] = {.lex_state = 51, .external_lex_state = 2}, + [558] = {.lex_state = 51, .external_lex_state = 2}, [559] = {.lex_state = 51, .external_lex_state = 3}, [560] = {.lex_state = 51, .external_lex_state = 3}, [561] = {.lex_state = 51, .external_lex_state = 3}, [562] = {.lex_state = 51, .external_lex_state = 3}, - [563] = {.lex_state = 51, .external_lex_state = 2}, - [564] = {.lex_state = 51, .external_lex_state = 3}, + [563] = {.lex_state = 51, .external_lex_state = 3}, + [564] = {.lex_state = 51, .external_lex_state = 2}, [565] = {.lex_state = 51, .external_lex_state = 3}, [566] = {.lex_state = 51, .external_lex_state = 2}, - [567] = {.lex_state = 51, .external_lex_state = 2}, - [568] = {.lex_state = 51, .external_lex_state = 2}, - [569] = {.lex_state = 51, .external_lex_state = 2}, - [570] = {.lex_state = 51, .external_lex_state = 2}, - [571] = {.lex_state = 16, .external_lex_state = 6}, - [572] = {.lex_state = 51, .external_lex_state = 2}, - [573] = {.lex_state = 51, .external_lex_state = 2}, - [574] = {.lex_state = 51, .external_lex_state = 2}, - [575] = {.lex_state = 51, .external_lex_state = 2}, - [576] = {.lex_state = 51, .external_lex_state = 2}, - [577] = {.lex_state = 51, .external_lex_state = 2}, - [578] = {.lex_state = 51, .external_lex_state = 2}, - [579] = {.lex_state = 51, .external_lex_state = 2}, - [580] = {.lex_state = 51, .external_lex_state = 2}, - [581] = {.lex_state = 51, .external_lex_state = 2}, - [582] = {.lex_state = 16, .external_lex_state = 6}, - [583] = {.lex_state = 51, .external_lex_state = 2}, - [584] = {.lex_state = 51, .external_lex_state = 2}, - [585] = {.lex_state = 16}, - [586] = {.lex_state = 51, .external_lex_state = 2}, - [587] = {.lex_state = 51, .external_lex_state = 2}, - [588] = {.lex_state = 51, .external_lex_state = 2}, + [567] = {.lex_state = 51, .external_lex_state = 3}, + [568] = {.lex_state = 51, .external_lex_state = 3}, + [569] = {.lex_state = 51, .external_lex_state = 3}, + [570] = {.lex_state = 51, .external_lex_state = 3}, + [571] = {.lex_state = 51, .external_lex_state = 3}, + [572] = {.lex_state = 51, .external_lex_state = 3}, + [573] = {.lex_state = 51, .external_lex_state = 3}, + [574] = {.lex_state = 51, .external_lex_state = 3}, + [575] = {.lex_state = 51, .external_lex_state = 3}, + [576] = {.lex_state = 51, .external_lex_state = 3}, + [577] = {.lex_state = 51, .external_lex_state = 3}, + [578] = {.lex_state = 51, .external_lex_state = 3}, + [579] = {.lex_state = 51, .external_lex_state = 3}, + [580] = {.lex_state = 51, .external_lex_state = 3}, + [581] = {.lex_state = 51, .external_lex_state = 3}, + [582] = {.lex_state = 51, .external_lex_state = 2}, + [583] = {.lex_state = 51, .external_lex_state = 3}, + [584] = {.lex_state = 51, .external_lex_state = 3}, + [585] = {.lex_state = 51, .external_lex_state = 3}, + [586] = {.lex_state = 51, .external_lex_state = 3}, + [587] = {.lex_state = 51, .external_lex_state = 3}, + [588] = {.lex_state = 51, .external_lex_state = 3}, [589] = {.lex_state = 51, .external_lex_state = 2}, - [590] = {.lex_state = 51, .external_lex_state = 2}, - [591] = {.lex_state = 51, .external_lex_state = 2}, - [592] = {.lex_state = 51, .external_lex_state = 2}, + [590] = {.lex_state = 51, .external_lex_state = 3}, + [591] = {.lex_state = 51, .external_lex_state = 3}, + [592] = {.lex_state = 51, .external_lex_state = 3}, [593] = {.lex_state = 51, .external_lex_state = 2}, [594] = {.lex_state = 51, .external_lex_state = 2}, - [595] = {.lex_state = 51, .external_lex_state = 2}, - [596] = {.lex_state = 51, .external_lex_state = 2}, - [597] = {.lex_state = 51, .external_lex_state = 2}, - [598] = {.lex_state = 51, .external_lex_state = 2}, - [599] = {.lex_state = 51, .external_lex_state = 2}, + [595] = {.lex_state = 51, .external_lex_state = 3}, + [596] = {.lex_state = 51, .external_lex_state = 3}, + [597] = {.lex_state = 51, .external_lex_state = 3}, + [598] = {.lex_state = 51, .external_lex_state = 3}, + [599] = {.lex_state = 51, .external_lex_state = 3}, [600] = {.lex_state = 51, .external_lex_state = 2}, [601] = {.lex_state = 51, .external_lex_state = 2}, - [602] = {.lex_state = 51, .external_lex_state = 2}, - [603] = {.lex_state = 51, .external_lex_state = 2}, + [602] = {.lex_state = 51, .external_lex_state = 3}, + [603] = {.lex_state = 51, .external_lex_state = 3}, [604] = {.lex_state = 51, .external_lex_state = 2}, [605] = {.lex_state = 51, .external_lex_state = 2}, [606] = {.lex_state = 51, .external_lex_state = 2}, [607] = {.lex_state = 51, .external_lex_state = 2}, [608] = {.lex_state = 51, .external_lex_state = 2}, [609] = {.lex_state = 51, .external_lex_state = 2}, - [610] = {.lex_state = 51, .external_lex_state = 3}, - [611] = {.lex_state = 51, .external_lex_state = 3}, - [612] = {.lex_state = 51, .external_lex_state = 3}, + [610] = {.lex_state = 51, .external_lex_state = 2}, + [611] = {.lex_state = 51, .external_lex_state = 2}, + [612] = {.lex_state = 51, .external_lex_state = 2}, [613] = {.lex_state = 51, .external_lex_state = 2}, - [614] = {.lex_state = 51, .external_lex_state = 3}, + [614] = {.lex_state = 16, .external_lex_state = 6}, [615] = {.lex_state = 51, .external_lex_state = 2}, - [616] = {.lex_state = 51, .external_lex_state = 2}, - [617] = {.lex_state = 51, .external_lex_state = 2}, - [618] = {.lex_state = 51, .external_lex_state = 2}, + [616] = {.lex_state = 51, .external_lex_state = 3}, + [617] = {.lex_state = 16}, + [618] = {.lex_state = 16}, [619] = {.lex_state = 51, .external_lex_state = 2}, [620] = {.lex_state = 51, .external_lex_state = 2}, [621] = {.lex_state = 51, .external_lex_state = 2}, @@ -7074,7 +7095,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [624] = {.lex_state = 51, .external_lex_state = 2}, [625] = {.lex_state = 51, .external_lex_state = 2}, [626] = {.lex_state = 51, .external_lex_state = 2}, - [627] = {.lex_state = 51, .external_lex_state = 2}, + [627] = {.lex_state = 16, .external_lex_state = 8}, [628] = {.lex_state = 51, .external_lex_state = 2}, [629] = {.lex_state = 51, .external_lex_state = 2}, [630] = {.lex_state = 51, .external_lex_state = 2}, @@ -7092,7 +7113,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [642] = {.lex_state = 51, .external_lex_state = 2}, [643] = {.lex_state = 51, .external_lex_state = 2}, [644] = {.lex_state = 51, .external_lex_state = 2}, - [645] = {.lex_state = 16, .external_lex_state = 8}, + [645] = {.lex_state = 51, .external_lex_state = 2}, [646] = {.lex_state = 51, .external_lex_state = 2}, [647] = {.lex_state = 51, .external_lex_state = 2}, [648] = {.lex_state = 51, .external_lex_state = 2}, @@ -7105,7 +7126,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [655] = {.lex_state = 51, .external_lex_state = 2}, [656] = {.lex_state = 51, .external_lex_state = 2}, [657] = {.lex_state = 51, .external_lex_state = 2}, - [658] = {.lex_state = 16, .external_lex_state = 9}, + [658] = {.lex_state = 51, .external_lex_state = 2}, [659] = {.lex_state = 51, .external_lex_state = 2}, [660] = {.lex_state = 51, .external_lex_state = 2}, [661] = {.lex_state = 51, .external_lex_state = 2}, @@ -7122,8 +7143,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [672] = {.lex_state = 51, .external_lex_state = 2}, [673] = {.lex_state = 51, .external_lex_state = 2}, [674] = {.lex_state = 51, .external_lex_state = 2}, - [675] = {.lex_state = 16, .external_lex_state = 8}, - [676] = {.lex_state = 16, .external_lex_state = 9}, + [675] = {.lex_state = 51, .external_lex_state = 2}, + [676] = {.lex_state = 51, .external_lex_state = 2}, [677] = {.lex_state = 51, .external_lex_state = 2}, [678] = {.lex_state = 51, .external_lex_state = 2}, [679] = {.lex_state = 51, .external_lex_state = 2}, @@ -7132,25 +7153,25 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [682] = {.lex_state = 51, .external_lex_state = 2}, [683] = {.lex_state = 51, .external_lex_state = 2}, [684] = {.lex_state = 51, .external_lex_state = 2}, - [685] = {.lex_state = 51, .external_lex_state = 2}, + [685] = {.lex_state = 16, .external_lex_state = 9}, [686] = {.lex_state = 51, .external_lex_state = 2}, [687] = {.lex_state = 51, .external_lex_state = 2}, [688] = {.lex_state = 51, .external_lex_state = 2}, [689] = {.lex_state = 51, .external_lex_state = 2}, - [690] = {.lex_state = 51, .external_lex_state = 2}, + [690] = {.lex_state = 16, .external_lex_state = 9}, [691] = {.lex_state = 51, .external_lex_state = 2}, - [692] = {.lex_state = 16, .external_lex_state = 8}, - [693] = {.lex_state = 16, .external_lex_state = 9}, - [694] = {.lex_state = 51, .external_lex_state = 2}, + [692] = {.lex_state = 51, .external_lex_state = 2}, + [693] = {.lex_state = 16, .external_lex_state = 8}, + [694] = {.lex_state = 16, .external_lex_state = 9}, [695] = {.lex_state = 51, .external_lex_state = 2}, - [696] = {.lex_state = 16, .external_lex_state = 8}, - [697] = {.lex_state = 16, .external_lex_state = 8}, - [698] = {.lex_state = 16, .external_lex_state = 9}, - [699] = {.lex_state = 16, .external_lex_state = 9}, - [700] = {.lex_state = 15}, - [701] = {.lex_state = 16}, - [702] = {.lex_state = 16}, - [703] = {.lex_state = 16}, + [696] = {.lex_state = 51, .external_lex_state = 2}, + [697] = {.lex_state = 51, .external_lex_state = 2}, + [698] = {.lex_state = 16, .external_lex_state = 8}, + [699] = {.lex_state = 51, .external_lex_state = 2}, + [700] = {.lex_state = 16, .external_lex_state = 8}, + [701] = {.lex_state = 16, .external_lex_state = 8}, + [702] = {.lex_state = 16, .external_lex_state = 9}, + [703] = {.lex_state = 16, .external_lex_state = 9}, [704] = {.lex_state = 16}, [705] = {.lex_state = 16}, [706] = {.lex_state = 16}, @@ -7167,7 +7188,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [717] = {.lex_state = 16}, [718] = {.lex_state = 16}, [719] = {.lex_state = 16}, - [720] = {.lex_state = 15}, + [720] = {.lex_state = 16}, [721] = {.lex_state = 16}, [722] = {.lex_state = 16}, [723] = {.lex_state = 16}, @@ -7183,9 +7204,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [733] = {.lex_state = 16}, [734] = {.lex_state = 16}, [735] = {.lex_state = 16}, - [736] = {.lex_state = 16}, - [737] = {.lex_state = 16}, - [738] = {.lex_state = 16, .external_lex_state = 9}, + [736] = {.lex_state = 15}, + [737] = {.lex_state = 15}, + [738] = {.lex_state = 16}, [739] = {.lex_state = 16}, [740] = {.lex_state = 16}, [741] = {.lex_state = 16}, @@ -7196,209 +7217,209 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [746] = {.lex_state = 16}, [747] = {.lex_state = 16}, [748] = {.lex_state = 16}, - [749] = {.lex_state = 16}, - [750] = {.lex_state = 16}, + [749] = {.lex_state = 16, .external_lex_state = 9}, + [750] = {.lex_state = 16, .external_lex_state = 8}, [751] = {.lex_state = 16}, - [752] = {.lex_state = 16, .external_lex_state = 8}, - [753] = {.lex_state = 16}, - [754] = {.lex_state = 16}, + [752] = {.lex_state = 16}, + [753] = {.lex_state = 16, .external_lex_state = 9}, + [754] = {.lex_state = 16, .external_lex_state = 8}, [755] = {.lex_state = 16}, [756] = {.lex_state = 16}, [757] = {.lex_state = 16}, [758] = {.lex_state = 16}, - [759] = {.lex_state = 16, .external_lex_state = 8}, - [760] = {.lex_state = 16, .external_lex_state = 9}, + [759] = {.lex_state = 16}, + [760] = {.lex_state = 16}, [761] = {.lex_state = 16}, [762] = {.lex_state = 16}, - [763] = {.lex_state = 15}, + [763] = {.lex_state = 16}, [764] = {.lex_state = 16}, - [765] = {.lex_state = 16, .external_lex_state = 6}, - [766] = {.lex_state = 15, .external_lex_state = 8}, - [767] = {.lex_state = 15, .external_lex_state = 8}, + [765] = {.lex_state = 16}, + [766] = {.lex_state = 16}, + [767] = {.lex_state = 16}, [768] = {.lex_state = 15, .external_lex_state = 9}, - [769] = {.lex_state = 16, .external_lex_state = 10}, - [770] = {.lex_state = 15, .external_lex_state = 8}, - [771] = {.lex_state = 15, .external_lex_state = 9}, - [772] = {.lex_state = 16}, - [773] = {.lex_state = 16}, - [774] = {.lex_state = 16, .external_lex_state = 10}, - [775] = {.lex_state = 16, .external_lex_state = 7}, - [776] = {.lex_state = 15, .external_lex_state = 9}, - [777] = {.lex_state = 16}, - [778] = {.lex_state = 16, .external_lex_state = 10}, + [769] = {.lex_state = 15, .external_lex_state = 8}, + [770] = {.lex_state = 16, .external_lex_state = 7}, + [771] = {.lex_state = 16, .external_lex_state = 10}, + [772] = {.lex_state = 16, .external_lex_state = 10}, + [773] = {.lex_state = 16, .external_lex_state = 6}, + [774] = {.lex_state = 16}, + [775] = {.lex_state = 16}, + [776] = {.lex_state = 16, .external_lex_state = 7}, + [777] = {.lex_state = 16, .external_lex_state = 10}, + [778] = {.lex_state = 16}, [779] = {.lex_state = 16, .external_lex_state = 7}, - [780] = {.lex_state = 16}, - [781] = {.lex_state = 16}, - [782] = {.lex_state = 16, .external_lex_state = 7}, + [780] = {.lex_state = 15}, + [781] = {.lex_state = 15, .external_lex_state = 9}, + [782] = {.lex_state = 15, .external_lex_state = 8}, [783] = {.lex_state = 16}, - [784] = {.lex_state = 16}, - [785] = {.lex_state = 16, .external_lex_state = 6}, - [786] = {.lex_state = 16, .external_lex_state = 6}, - [787] = {.lex_state = 16, .external_lex_state = 8}, - [788] = {.lex_state = 16, .external_lex_state = 9}, - [789] = {.lex_state = 16, .external_lex_state = 6}, - [790] = {.lex_state = 16, .external_lex_state = 6}, - [791] = {.lex_state = 16, .external_lex_state = 6}, - [792] = {.lex_state = 16}, + [784] = {.lex_state = 15, .external_lex_state = 9}, + [785] = {.lex_state = 15, .external_lex_state = 8}, + [786] = {.lex_state = 16}, + [787] = {.lex_state = 16}, + [788] = {.lex_state = 16, .external_lex_state = 6}, + [789] = {.lex_state = 16}, + [790] = {.lex_state = 16, .external_lex_state = 9}, + [791] = {.lex_state = 16, .external_lex_state = 8}, + [792] = {.lex_state = 16, .external_lex_state = 9}, [793] = {.lex_state = 16, .external_lex_state = 8}, [794] = {.lex_state = 16, .external_lex_state = 9}, [795] = {.lex_state = 16, .external_lex_state = 8}, - [796] = {.lex_state = 16, .external_lex_state = 9}, + [796] = {.lex_state = 16, .external_lex_state = 6}, [797] = {.lex_state = 16, .external_lex_state = 6}, [798] = {.lex_state = 16, .external_lex_state = 6}, - [799] = {.lex_state = 15}, - [800] = {.lex_state = 15}, - [801] = {.lex_state = 15}, - [802] = {.lex_state = 15}, - [803] = {.lex_state = 16}, + [799] = {.lex_state = 16, .external_lex_state = 6}, + [800] = {.lex_state = 16, .external_lex_state = 6}, + [801] = {.lex_state = 16, .external_lex_state = 6}, + [802] = {.lex_state = 16, .external_lex_state = 6}, + [803] = {.lex_state = 16, .external_lex_state = 6}, [804] = {.lex_state = 15}, - [805] = {.lex_state = 16}, - [806] = {.lex_state = 16}, - [807] = {.lex_state = 16}, + [805] = {.lex_state = 15}, + [806] = {.lex_state = 16, .external_lex_state = 6}, + [807] = {.lex_state = 16, .external_lex_state = 6}, [808] = {.lex_state = 16}, [809] = {.lex_state = 15}, - [810] = {.lex_state = 16}, - [811] = {.lex_state = 16}, + [810] = {.lex_state = 15}, + [811] = {.lex_state = 15}, [812] = {.lex_state = 15}, - [813] = {.lex_state = 16}, - [814] = {.lex_state = 16}, + [813] = {.lex_state = 15}, + [814] = {.lex_state = 15}, [815] = {.lex_state = 15}, [816] = {.lex_state = 15}, - [817] = {.lex_state = 16, .external_lex_state = 6}, + [817] = {.lex_state = 15}, [818] = {.lex_state = 16, .external_lex_state = 6}, - [819] = {.lex_state = 15}, - [820] = {.lex_state = 15}, - [821] = {.lex_state = 16, .external_lex_state = 6}, - [822] = {.lex_state = 15}, - [823] = {.lex_state = 16, .external_lex_state = 6}, - [824] = {.lex_state = 16, .external_lex_state = 6}, + [819] = {.lex_state = 16}, + [820] = {.lex_state = 16}, + [821] = {.lex_state = 16}, + [822] = {.lex_state = 16}, + [823] = {.lex_state = 16}, + [824] = {.lex_state = 16}, [825] = {.lex_state = 16}, [826] = {.lex_state = 16}, - [827] = {.lex_state = 51, .external_lex_state = 2}, + [827] = {.lex_state = 16}, [828] = {.lex_state = 16}, [829] = {.lex_state = 16}, - [830] = {.lex_state = 51, .external_lex_state = 2}, - [831] = {.lex_state = 16}, - [832] = {.lex_state = 16}, + [830] = {.lex_state = 15}, + [831] = {.lex_state = 16, .external_lex_state = 6}, + [832] = {.lex_state = 15}, [833] = {.lex_state = 16}, - [834] = {.lex_state = 16}, - [835] = {.lex_state = 16}, - [836] = {.lex_state = 16, .external_lex_state = 7}, - [837] = {.lex_state = 15, .external_lex_state = 9}, + [834] = {.lex_state = 15, .external_lex_state = 8}, + [835] = {.lex_state = 16, .external_lex_state = 6}, + [836] = {.lex_state = 15}, + [837] = {.lex_state = 16}, [838] = {.lex_state = 16}, [839] = {.lex_state = 16}, - [840] = {.lex_state = 16}, - [841] = {.lex_state = 16}, + [840] = {.lex_state = 15, .external_lex_state = 8}, + [841] = {.lex_state = 51, .external_lex_state = 2}, [842] = {.lex_state = 16}, - [843] = {.lex_state = 15, .external_lex_state = 8}, - [844] = {.lex_state = 16, .external_lex_state = 6}, + [843] = {.lex_state = 16, .external_lex_state = 7}, + [844] = {.lex_state = 16}, [845] = {.lex_state = 16}, - [846] = {.lex_state = 16}, - [847] = {.lex_state = 51, .external_lex_state = 2}, - [848] = {.lex_state = 16}, + [846] = {.lex_state = 15, .external_lex_state = 9}, + [847] = {.lex_state = 16, .external_lex_state = 10}, + [848] = {.lex_state = 15, .external_lex_state = 9}, [849] = {.lex_state = 16}, [850] = {.lex_state = 16}, - [851] = {.lex_state = 16, .external_lex_state = 6}, + [851] = {.lex_state = 16}, [852] = {.lex_state = 16, .external_lex_state = 7}, - [853] = {.lex_state = 15, .external_lex_state = 8}, + [853] = {.lex_state = 16, .external_lex_state = 10}, [854] = {.lex_state = 16}, [855] = {.lex_state = 16}, [856] = {.lex_state = 16}, - [857] = {.lex_state = 16, .external_lex_state = 10}, - [858] = {.lex_state = 51, .external_lex_state = 2}, + [857] = {.lex_state = 16}, + [858] = {.lex_state = 16}, [859] = {.lex_state = 16}, - [860] = {.lex_state = 16, .external_lex_state = 10}, - [861] = {.lex_state = 16}, + [860] = {.lex_state = 16}, + [861] = {.lex_state = 51, .external_lex_state = 2}, [862] = {.lex_state = 16}, - [863] = {.lex_state = 15}, - [864] = {.lex_state = 15, .external_lex_state = 9}, - [865] = {.lex_state = 15}, + [863] = {.lex_state = 16}, + [864] = {.lex_state = 16}, + [865] = {.lex_state = 16}, [866] = {.lex_state = 16}, - [867] = {.lex_state = 16, .external_lex_state = 6}, - [868] = {.lex_state = 16, .external_lex_state = 6}, - [869] = {.lex_state = 15}, - [870] = {.lex_state = 15}, + [867] = {.lex_state = 16}, + [868] = {.lex_state = 16}, + [869] = {.lex_state = 51, .external_lex_state = 2}, + [870] = {.lex_state = 51, .external_lex_state = 2}, [871] = {.lex_state = 16}, [872] = {.lex_state = 16}, - [873] = {.lex_state = 15}, - [874] = {.lex_state = 51, .external_lex_state = 2}, - [875] = {.lex_state = 51, .external_lex_state = 2}, + [873] = {.lex_state = 16, .external_lex_state = 6}, + [874] = {.lex_state = 15}, + [875] = {.lex_state = 15}, [876] = {.lex_state = 15}, - [877] = {.lex_state = 16}, + [877] = {.lex_state = 16, .external_lex_state = 6}, [878] = {.lex_state = 15}, - [879] = {.lex_state = 16}, + [879] = {.lex_state = 15}, [880] = {.lex_state = 15}, - [881] = {.lex_state = 16, .external_lex_state = 6}, - [882] = {.lex_state = 16, .external_lex_state = 6}, - [883] = {.lex_state = 16}, - [884] = {.lex_state = 16, .external_lex_state = 6}, - [885] = {.lex_state = 16, .external_lex_state = 6}, + [881] = {.lex_state = 15}, + [882] = {.lex_state = 15}, + [883] = {.lex_state = 15}, + [884] = {.lex_state = 15}, + [885] = {.lex_state = 15}, [886] = {.lex_state = 15}, - [887] = {.lex_state = 16, .external_lex_state = 6}, - [888] = {.lex_state = 16, .external_lex_state = 6}, - [889] = {.lex_state = 51, .external_lex_state = 2}, - [890] = {.lex_state = 16, .external_lex_state = 6}, + [887] = {.lex_state = 15}, + [888] = {.lex_state = 15}, + [889] = {.lex_state = 15}, + [890] = {.lex_state = 15}, [891] = {.lex_state = 15}, - [892] = {.lex_state = 16, .external_lex_state = 6}, - [893] = {.lex_state = 16, .external_lex_state = 6}, + [892] = {.lex_state = 16}, + [893] = {.lex_state = 16}, [894] = {.lex_state = 15}, [895] = {.lex_state = 16, .external_lex_state = 6}, - [896] = {.lex_state = 16, .external_lex_state = 6}, - [897] = {.lex_state = 16, .external_lex_state = 6}, + [896] = {.lex_state = 51, .external_lex_state = 2}, + [897] = {.lex_state = 51, .external_lex_state = 2}, [898] = {.lex_state = 16, .external_lex_state = 6}, - [899] = {.lex_state = 51, .external_lex_state = 2}, + [899] = {.lex_state = 15}, [900] = {.lex_state = 16, .external_lex_state = 6}, - [901] = {.lex_state = 16, .external_lex_state = 6}, - [902] = {.lex_state = 16, .external_lex_state = 6}, - [903] = {.lex_state = 15}, + [901] = {.lex_state = 15}, + [902] = {.lex_state = 15}, + [903] = {.lex_state = 16, .external_lex_state = 6}, [904] = {.lex_state = 16, .external_lex_state = 6}, [905] = {.lex_state = 16, .external_lex_state = 6}, [906] = {.lex_state = 15}, - [907] = {.lex_state = 15}, - [908] = {.lex_state = 15}, - [909] = {.lex_state = 16}, - [910] = {.lex_state = 16}, - [911] = {.lex_state = 15}, + [907] = {.lex_state = 16}, + [908] = {.lex_state = 16, .external_lex_state = 6}, + [909] = {.lex_state = 16, .external_lex_state = 6}, + [910] = {.lex_state = 16, .external_lex_state = 6}, + [911] = {.lex_state = 16, .external_lex_state = 6}, [912] = {.lex_state = 15}, - [913] = {.lex_state = 15}, - [914] = {.lex_state = 15}, + [913] = {.lex_state = 16}, + [914] = {.lex_state = 16}, [915] = {.lex_state = 16, .external_lex_state = 6}, - [916] = {.lex_state = 15}, - [917] = {.lex_state = 15}, - [918] = {.lex_state = 16, .external_lex_state = 6}, + [916] = {.lex_state = 16, .external_lex_state = 6}, + [917] = {.lex_state = 16}, + [918] = {.lex_state = 15}, [919] = {.lex_state = 16, .external_lex_state = 6}, [920] = {.lex_state = 16, .external_lex_state = 6}, [921] = {.lex_state = 16, .external_lex_state = 6}, [922] = {.lex_state = 16, .external_lex_state = 6}, - [923] = {.lex_state = 51, .external_lex_state = 2}, - [924] = {.lex_state = 51, .external_lex_state = 2}, - [925] = {.lex_state = 16, .external_lex_state = 6}, + [923] = {.lex_state = 16, .external_lex_state = 6}, + [924] = {.lex_state = 16}, + [925] = {.lex_state = 15}, [926] = {.lex_state = 16, .external_lex_state = 6}, - [927] = {.lex_state = 15}, + [927] = {.lex_state = 16, .external_lex_state = 6}, [928] = {.lex_state = 16, .external_lex_state = 6}, - [929] = {.lex_state = 15}, - [930] = {.lex_state = 15}, - [931] = {.lex_state = 15}, - [932] = {.lex_state = 15}, + [929] = {.lex_state = 16, .external_lex_state = 6}, + [930] = {.lex_state = 16, .external_lex_state = 6}, + [931] = {.lex_state = 51, .external_lex_state = 2}, + [932] = {.lex_state = 16, .external_lex_state = 6}, [933] = {.lex_state = 15}, - [934] = {.lex_state = 15}, - [935] = {.lex_state = 15}, + [934] = {.lex_state = 51, .external_lex_state = 2}, + [935] = {.lex_state = 51, .external_lex_state = 2}, [936] = {.lex_state = 16, .external_lex_state = 6}, - [937] = {.lex_state = 16, .external_lex_state = 6}, + [937] = {.lex_state = 15}, [938] = {.lex_state = 15}, - [939] = {.lex_state = 16, .external_lex_state = 6}, + [939] = {.lex_state = 51, .external_lex_state = 2}, [940] = {.lex_state = 15}, [941] = {.lex_state = 16, .external_lex_state = 6}, - [942] = {.lex_state = 15}, - [943] = {.lex_state = 15}, + [942] = {.lex_state = 16, .external_lex_state = 6}, + [943] = {.lex_state = 16, .external_lex_state = 6}, [944] = {.lex_state = 15}, - [945] = {.lex_state = 15}, - [946] = {.lex_state = 16}, - [947] = {.lex_state = 16}, - [948] = {.lex_state = 16}, - [949] = {.lex_state = 16}, - [950] = {.lex_state = 16}, - [951] = {.lex_state = 16}, + [945] = {.lex_state = 16, .external_lex_state = 6}, + [946] = {.lex_state = 15}, + [947] = {.lex_state = 16, .external_lex_state = 6}, + [948] = {.lex_state = 15}, + [949] = {.lex_state = 15}, + [950] = {.lex_state = 16, .external_lex_state = 6}, + [951] = {.lex_state = 16, .external_lex_state = 6}, [952] = {.lex_state = 16}, [953] = {.lex_state = 16}, [954] = {.lex_state = 16}, @@ -7416,123 +7437,123 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [966] = {.lex_state = 16}, [967] = {.lex_state = 16}, [968] = {.lex_state = 16}, - [969] = {.lex_state = 51, .external_lex_state = 2}, + [969] = {.lex_state = 16}, [970] = {.lex_state = 16}, [971] = {.lex_state = 16}, - [972] = {.lex_state = 51, .external_lex_state = 2}, - [973] = {.lex_state = 51, .external_lex_state = 2}, + [972] = {.lex_state = 16}, + [973] = {.lex_state = 16}, [974] = {.lex_state = 16}, [975] = {.lex_state = 16}, [976] = {.lex_state = 16}, [977] = {.lex_state = 16}, [978] = {.lex_state = 16}, [979] = {.lex_state = 16}, - [980] = {.lex_state = 51, .external_lex_state = 2}, - [981] = {.lex_state = 16}, - [982] = {.lex_state = 16}, - [983] = {.lex_state = 16}, + [980] = {.lex_state = 16}, + [981] = {.lex_state = 51, .external_lex_state = 2}, + [982] = {.lex_state = 51, .external_lex_state = 2}, + [983] = {.lex_state = 51, .external_lex_state = 2}, [984] = {.lex_state = 16}, - [985] = {.lex_state = 51, .external_lex_state = 2}, - [986] = {.lex_state = 51, .external_lex_state = 2}, + [985] = {.lex_state = 16}, + [986] = {.lex_state = 16}, [987] = {.lex_state = 51, .external_lex_state = 2}, - [988] = {.lex_state = 51, .external_lex_state = 2}, - [989] = {.lex_state = 51, .external_lex_state = 2}, - [990] = {.lex_state = 0}, - [991] = {.lex_state = 0}, - [992] = {.lex_state = 51}, - [993] = {.lex_state = 51}, - [994] = {.lex_state = 51}, + [988] = {.lex_state = 16}, + [989] = {.lex_state = 16}, + [990] = {.lex_state = 16}, + [991] = {.lex_state = 51, .external_lex_state = 2}, + [992] = {.lex_state = 51, .external_lex_state = 2}, + [993] = {.lex_state = 51, .external_lex_state = 2}, + [994] = {.lex_state = 51, .external_lex_state = 2}, [995] = {.lex_state = 51, .external_lex_state = 2}, - [996] = {.lex_state = 51}, - [997] = {.lex_state = 16}, - [998] = {.lex_state = 51}, + [996] = {.lex_state = 0}, + [997] = {.lex_state = 51}, + [998] = {.lex_state = 0}, [999] = {.lex_state = 51}, - [1000] = {.lex_state = 0, .external_lex_state = 6}, - [1001] = {.lex_state = 51}, + [1000] = {.lex_state = 51}, + [1001] = {.lex_state = 0, .external_lex_state = 6}, [1002] = {.lex_state = 51}, [1003] = {.lex_state = 14}, - [1004] = {.lex_state = 16}, - [1005] = {.lex_state = 14}, - [1006] = {.lex_state = 51}, + [1004] = {.lex_state = 14}, + [1005] = {.lex_state = 51}, + [1006] = {.lex_state = 51, .external_lex_state = 2}, [1007] = {.lex_state = 51, .external_lex_state = 2}, [1008] = {.lex_state = 0, .external_lex_state = 6}, - [1009] = {.lex_state = 51, .external_lex_state = 2}, - [1010] = {.lex_state = 51}, - [1011] = {.lex_state = 51}, + [1009] = {.lex_state = 51}, + [1010] = {.lex_state = 51, .external_lex_state = 2}, + [1011] = {.lex_state = 16}, [1012] = {.lex_state = 51}, [1013] = {.lex_state = 16}, [1014] = {.lex_state = 51}, [1015] = {.lex_state = 51}, [1016] = {.lex_state = 51}, - [1017] = {.lex_state = 51}, + [1017] = {.lex_state = 16}, [1018] = {.lex_state = 51}, [1019] = {.lex_state = 51}, [1020] = {.lex_state = 51}, [1021] = {.lex_state = 51}, - [1022] = {.lex_state = 0}, - [1023] = {.lex_state = 51, .external_lex_state = 2}, - [1024] = {.lex_state = 0}, + [1022] = {.lex_state = 51}, + [1023] = {.lex_state = 51}, + [1024] = {.lex_state = 51}, [1025] = {.lex_state = 51}, [1026] = {.lex_state = 51}, - [1027] = {.lex_state = 0}, - [1028] = {.lex_state = 51}, - [1029] = {.lex_state = 0}, - [1030] = {.lex_state = 0}, - [1031] = {.lex_state = 51}, + [1027] = {.lex_state = 51}, + [1028] = {.lex_state = 0}, + [1029] = {.lex_state = 51, .external_lex_state = 2}, + [1030] = {.lex_state = 51}, + [1031] = {.lex_state = 0}, [1032] = {.lex_state = 51}, - [1033] = {.lex_state = 16}, - [1034] = {.lex_state = 18, .external_lex_state = 11}, - [1035] = {.lex_state = 51, .external_lex_state = 9}, - [1036] = {.lex_state = 16}, - [1037] = {.lex_state = 18, .external_lex_state = 11}, - [1038] = {.lex_state = 18, .external_lex_state = 11}, - [1039] = {.lex_state = 18, .external_lex_state = 11}, + [1033] = {.lex_state = 0}, + [1034] = {.lex_state = 51}, + [1035] = {.lex_state = 0}, + [1036] = {.lex_state = 0}, + [1037] = {.lex_state = 51}, + [1038] = {.lex_state = 51}, + [1039] = {.lex_state = 16}, [1040] = {.lex_state = 18, .external_lex_state = 11}, [1041] = {.lex_state = 51}, - [1042] = {.lex_state = 18, .external_lex_state = 11}, - [1043] = {.lex_state = 18, .external_lex_state = 11}, + [1042] = {.lex_state = 16}, + [1043] = {.lex_state = 51, .external_lex_state = 8}, [1044] = {.lex_state = 18, .external_lex_state = 11}, [1045] = {.lex_state = 18, .external_lex_state = 11}, [1046] = {.lex_state = 18, .external_lex_state = 11}, - [1047] = {.lex_state = 18, .external_lex_state = 11}, - [1048] = {.lex_state = 18, .external_lex_state = 11}, + [1047] = {.lex_state = 51}, + [1048] = {.lex_state = 0}, [1049] = {.lex_state = 18, .external_lex_state = 11}, [1050] = {.lex_state = 18, .external_lex_state = 11}, [1051] = {.lex_state = 18, .external_lex_state = 11}, [1052] = {.lex_state = 18, .external_lex_state = 11}, - [1053] = {.lex_state = 18, .external_lex_state = 11}, + [1053] = {.lex_state = 16}, [1054] = {.lex_state = 18, .external_lex_state = 11}, - [1055] = {.lex_state = 51}, - [1056] = {.lex_state = 16}, - [1057] = {.lex_state = 0}, - [1058] = {.lex_state = 51}, - [1059] = {.lex_state = 51}, - [1060] = {.lex_state = 16}, - [1061] = {.lex_state = 51, .external_lex_state = 8}, + [1055] = {.lex_state = 18, .external_lex_state = 11}, + [1056] = {.lex_state = 18, .external_lex_state = 11}, + [1057] = {.lex_state = 18, .external_lex_state = 11}, + [1058] = {.lex_state = 18, .external_lex_state = 11}, + [1059] = {.lex_state = 18, .external_lex_state = 11}, + [1060] = {.lex_state = 18, .external_lex_state = 11}, + [1061] = {.lex_state = 18, .external_lex_state = 11}, [1062] = {.lex_state = 18, .external_lex_state = 11}, - [1063] = {.lex_state = 0}, - [1064] = {.lex_state = 0}, - [1065] = {.lex_state = 0}, - [1066] = {.lex_state = 51}, - [1067] = {.lex_state = 0}, - [1068] = {.lex_state = 0}, - [1069] = {.lex_state = 51}, + [1063] = {.lex_state = 51}, + [1064] = {.lex_state = 16}, + [1065] = {.lex_state = 18, .external_lex_state = 11}, + [1066] = {.lex_state = 18, .external_lex_state = 11}, + [1067] = {.lex_state = 51}, + [1068] = {.lex_state = 51, .external_lex_state = 9}, + [1069] = {.lex_state = 0}, [1070] = {.lex_state = 0}, - [1071] = {.lex_state = 0}, + [1071] = {.lex_state = 51}, [1072] = {.lex_state = 0}, [1073] = {.lex_state = 0}, - [1074] = {.lex_state = 51}, + [1074] = {.lex_state = 0}, [1075] = {.lex_state = 0}, - [1076] = {.lex_state = 0}, - [1077] = {.lex_state = 51}, + [1076] = {.lex_state = 51}, + [1077] = {.lex_state = 0}, [1078] = {.lex_state = 51}, - [1079] = {.lex_state = 0}, - [1080] = {.lex_state = 51}, + [1079] = {.lex_state = 51}, + [1080] = {.lex_state = 0}, [1081] = {.lex_state = 51}, [1082] = {.lex_state = 0}, [1083] = {.lex_state = 0}, [1084] = {.lex_state = 0}, - [1085] = {.lex_state = 0}, + [1085] = {.lex_state = 51}, [1086] = {.lex_state = 0}, [1087] = {.lex_state = 0}, [1088] = {.lex_state = 51}, @@ -7540,581 +7561,581 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1090] = {.lex_state = 0}, [1091] = {.lex_state = 0}, [1092] = {.lex_state = 0}, - [1093] = {.lex_state = 51}, - [1094] = {.lex_state = 51}, + [1093] = {.lex_state = 0}, + [1094] = {.lex_state = 0}, [1095] = {.lex_state = 0}, - [1096] = {.lex_state = 14}, + [1096] = {.lex_state = 51}, [1097] = {.lex_state = 0}, - [1098] = {.lex_state = 51}, + [1098] = {.lex_state = 0}, [1099] = {.lex_state = 0}, - [1100] = {.lex_state = 51}, - [1101] = {.lex_state = 0}, - [1102] = {.lex_state = 14}, - [1103] = {.lex_state = 51}, - [1104] = {.lex_state = 14}, + [1100] = {.lex_state = 0}, + [1101] = {.lex_state = 51}, + [1102] = {.lex_state = 51}, + [1103] = {.lex_state = 14}, + [1104] = {.lex_state = 0}, [1105] = {.lex_state = 51}, - [1106] = {.lex_state = 14}, - [1107] = {.lex_state = 51}, - [1108] = {.lex_state = 51}, + [1106] = {.lex_state = 0}, + [1107] = {.lex_state = 14}, + [1108] = {.lex_state = 0}, [1109] = {.lex_state = 51}, [1110] = {.lex_state = 51}, - [1111] = {.lex_state = 16}, - [1112] = {.lex_state = 0}, + [1111] = {.lex_state = 51}, + [1112] = {.lex_state = 0, .external_lex_state = 6}, [1113] = {.lex_state = 0}, [1114] = {.lex_state = 51}, - [1115] = {.lex_state = 51}, + [1115] = {.lex_state = 0, .external_lex_state = 6}, [1116] = {.lex_state = 51}, - [1117] = {.lex_state = 0}, - [1118] = {.lex_state = 51}, - [1119] = {.lex_state = 14}, + [1117] = {.lex_state = 51}, + [1118] = {.lex_state = 0, .external_lex_state = 6}, + [1119] = {.lex_state = 18, .external_lex_state = 11}, [1120] = {.lex_state = 14}, - [1121] = {.lex_state = 14}, - [1122] = {.lex_state = 14}, - [1123] = {.lex_state = 14}, - [1124] = {.lex_state = 14}, - [1125] = {.lex_state = 14}, + [1121] = {.lex_state = 0, .external_lex_state = 6}, + [1122] = {.lex_state = 0}, + [1123] = {.lex_state = 0, .external_lex_state = 6}, + [1124] = {.lex_state = 51}, + [1125] = {.lex_state = 51}, [1126] = {.lex_state = 0, .external_lex_state = 6}, - [1127] = {.lex_state = 0}, - [1128] = {.lex_state = 0}, - [1129] = {.lex_state = 51}, + [1127] = {.lex_state = 51}, + [1128] = {.lex_state = 51}, + [1129] = {.lex_state = 0, .external_lex_state = 6}, [1130] = {.lex_state = 51}, [1131] = {.lex_state = 14}, [1132] = {.lex_state = 51}, [1133] = {.lex_state = 51}, - [1134] = {.lex_state = 0, .external_lex_state = 6}, - [1135] = {.lex_state = 18, .external_lex_state = 11}, + [1134] = {.lex_state = 51}, + [1135] = {.lex_state = 0}, [1136] = {.lex_state = 51}, - [1137] = {.lex_state = 51}, + [1137] = {.lex_state = 0, .external_lex_state = 6}, [1138] = {.lex_state = 51}, - [1139] = {.lex_state = 51}, + [1139] = {.lex_state = 0, .external_lex_state = 6}, [1140] = {.lex_state = 51}, - [1141] = {.lex_state = 0, .external_lex_state = 6}, - [1142] = {.lex_state = 0, .external_lex_state = 6}, - [1143] = {.lex_state = 14}, - [1144] = {.lex_state = 0}, - [1145] = {.lex_state = 0, .external_lex_state = 6}, - [1146] = {.lex_state = 0, .external_lex_state = 6}, + [1141] = {.lex_state = 51}, + [1142] = {.lex_state = 51}, + [1143] = {.lex_state = 51}, + [1144] = {.lex_state = 51}, + [1145] = {.lex_state = 14}, + [1146] = {.lex_state = 0}, [1147] = {.lex_state = 0, .external_lex_state = 6}, [1148] = {.lex_state = 51}, [1149] = {.lex_state = 18, .external_lex_state = 11}, [1150] = {.lex_state = 51}, [1151] = {.lex_state = 51}, - [1152] = {.lex_state = 0, .external_lex_state = 6}, + [1152] = {.lex_state = 14}, [1153] = {.lex_state = 51}, - [1154] = {.lex_state = 14}, - [1155] = {.lex_state = 0, .external_lex_state = 6}, - [1156] = {.lex_state = 0, .external_lex_state = 6}, - [1157] = {.lex_state = 0}, + [1154] = {.lex_state = 51}, + [1155] = {.lex_state = 51}, + [1156] = {.lex_state = 51}, + [1157] = {.lex_state = 51}, [1158] = {.lex_state = 51}, - [1159] = {.lex_state = 51}, - [1160] = {.lex_state = 51}, - [1161] = {.lex_state = 51}, - [1162] = {.lex_state = 51}, + [1159] = {.lex_state = 14}, + [1160] = {.lex_state = 16}, + [1161] = {.lex_state = 0, .external_lex_state = 6}, + [1162] = {.lex_state = 14}, [1163] = {.lex_state = 51}, - [1164] = {.lex_state = 51}, - [1165] = {.lex_state = 0}, - [1166] = {.lex_state = 0}, - [1167] = {.lex_state = 0, .external_lex_state = 6}, - [1168] = {.lex_state = 51}, - [1169] = {.lex_state = 51}, - [1170] = {.lex_state = 0}, + [1164] = {.lex_state = 14}, + [1165] = {.lex_state = 14}, + [1166] = {.lex_state = 51}, + [1167] = {.lex_state = 14}, + [1168] = {.lex_state = 14}, + [1169] = {.lex_state = 14}, + [1170] = {.lex_state = 14}, [1171] = {.lex_state = 0}, [1172] = {.lex_state = 0}, [1173] = {.lex_state = 0}, - [1174] = {.lex_state = 51}, + [1174] = {.lex_state = 0}, [1175] = {.lex_state = 0}, - [1176] = {.lex_state = 0, .external_lex_state = 6}, - [1177] = {.lex_state = 16}, - [1178] = {.lex_state = 51}, - [1179] = {.lex_state = 0, .external_lex_state = 6}, + [1176] = {.lex_state = 51}, + [1177] = {.lex_state = 51}, + [1178] = {.lex_state = 0}, + [1179] = {.lex_state = 0}, [1180] = {.lex_state = 0}, [1181] = {.lex_state = 0, .external_lex_state = 6}, - [1182] = {.lex_state = 0, .external_lex_state = 6}, + [1182] = {.lex_state = 51}, [1183] = {.lex_state = 0}, - [1184] = {.lex_state = 0, .external_lex_state = 6}, - [1185] = {.lex_state = 51}, - [1186] = {.lex_state = 14}, - [1187] = {.lex_state = 51}, - [1188] = {.lex_state = 14}, + [1184] = {.lex_state = 0}, + [1185] = {.lex_state = 0}, + [1186] = {.lex_state = 0}, + [1187] = {.lex_state = 0}, + [1188] = {.lex_state = 51}, [1189] = {.lex_state = 51}, - [1190] = {.lex_state = 0}, - [1191] = {.lex_state = 0}, - [1192] = {.lex_state = 0}, - [1193] = {.lex_state = 0}, - [1194] = {.lex_state = 51}, - [1195] = {.lex_state = 0, .external_lex_state = 6}, + [1190] = {.lex_state = 51}, + [1191] = {.lex_state = 0, .external_lex_state = 6}, + [1192] = {.lex_state = 51}, + [1193] = {.lex_state = 51}, + [1194] = {.lex_state = 0}, + [1195] = {.lex_state = 0}, [1196] = {.lex_state = 0}, [1197] = {.lex_state = 51}, [1198] = {.lex_state = 51}, [1199] = {.lex_state = 0}, - [1200] = {.lex_state = 51}, + [1200] = {.lex_state = 0}, [1201] = {.lex_state = 51}, [1202] = {.lex_state = 0}, - [1203] = {.lex_state = 51}, - [1204] = {.lex_state = 51}, - [1205] = {.lex_state = 51}, - [1206] = {.lex_state = 0, .external_lex_state = 6}, - [1207] = {.lex_state = 0, .external_lex_state = 6}, - [1208] = {.lex_state = 0}, - [1209] = {.lex_state = 0}, - [1210] = {.lex_state = 51}, - [1211] = {.lex_state = 51}, - [1212] = {.lex_state = 0, .external_lex_state = 6}, - [1213] = {.lex_state = 0}, - [1214] = {.lex_state = 0}, - [1215] = {.lex_state = 51}, - [1216] = {.lex_state = 0, .external_lex_state = 6}, - [1217] = {.lex_state = 16, .external_lex_state = 6}, - [1218] = {.lex_state = 51}, - [1219] = {.lex_state = 14}, - [1220] = {.lex_state = 14}, - [1221] = {.lex_state = 51}, - [1222] = {.lex_state = 16}, - [1223] = {.lex_state = 51}, - [1224] = {.lex_state = 16, .external_lex_state = 6}, + [1203] = {.lex_state = 0}, + [1204] = {.lex_state = 0}, + [1205] = {.lex_state = 0}, + [1206] = {.lex_state = 0}, + [1207] = {.lex_state = 0}, + [1208] = {.lex_state = 51}, + [1209] = {.lex_state = 51}, + [1210] = {.lex_state = 0, .external_lex_state = 6}, + [1211] = {.lex_state = 0}, + [1212] = {.lex_state = 0}, + [1213] = {.lex_state = 16}, + [1214] = {.lex_state = 51}, + [1215] = {.lex_state = 0}, + [1216] = {.lex_state = 0}, + [1217] = {.lex_state = 0}, + [1218] = {.lex_state = 0}, + [1219] = {.lex_state = 0, .external_lex_state = 6}, + [1220] = {.lex_state = 0, .external_lex_state = 6}, + [1221] = {.lex_state = 14}, + [1222] = {.lex_state = 0}, + [1223] = {.lex_state = 0, .external_lex_state = 6}, + [1224] = {.lex_state = 0}, [1225] = {.lex_state = 0, .external_lex_state = 6}, - [1226] = {.lex_state = 18, .external_lex_state = 11}, - [1227] = {.lex_state = 51}, - [1228] = {.lex_state = 16}, + [1226] = {.lex_state = 0}, + [1227] = {.lex_state = 0}, + [1228] = {.lex_state = 0}, [1229] = {.lex_state = 0}, - [1230] = {.lex_state = 18, .external_lex_state = 11}, + [1230] = {.lex_state = 0}, [1231] = {.lex_state = 51}, [1232] = {.lex_state = 0}, - [1233] = {.lex_state = 14}, - [1234] = {.lex_state = 51}, - [1235] = {.lex_state = 51}, - [1236] = {.lex_state = 51}, - [1237] = {.lex_state = 51}, - [1238] = {.lex_state = 51}, - [1239] = {.lex_state = 51}, - [1240] = {.lex_state = 0, .external_lex_state = 6}, - [1241] = {.lex_state = 51}, - [1242] = {.lex_state = 0, .external_lex_state = 6}, - [1243] = {.lex_state = 0, .external_lex_state = 6}, + [1233] = {.lex_state = 51}, + [1234] = {.lex_state = 0}, + [1235] = {.lex_state = 0, .external_lex_state = 6}, + [1236] = {.lex_state = 0}, + [1237] = {.lex_state = 14}, + [1238] = {.lex_state = 0}, + [1239] = {.lex_state = 0, .external_lex_state = 6}, + [1240] = {.lex_state = 51}, + [1241] = {.lex_state = 0, .external_lex_state = 6}, + [1242] = {.lex_state = 16, .external_lex_state = 6}, + [1243] = {.lex_state = 51}, [1244] = {.lex_state = 51}, - [1245] = {.lex_state = 51}, + [1245] = {.lex_state = 16, .external_lex_state = 6}, [1246] = {.lex_state = 51}, - [1247] = {.lex_state = 51}, - [1248] = {.lex_state = 16}, - [1249] = {.lex_state = 16, .external_lex_state = 6}, + [1247] = {.lex_state = 0, .external_lex_state = 6}, + [1248] = {.lex_state = 18, .external_lex_state = 11}, + [1249] = {.lex_state = 51}, [1250] = {.lex_state = 51}, - [1251] = {.lex_state = 18, .external_lex_state = 11}, + [1251] = {.lex_state = 16}, [1252] = {.lex_state = 18, .external_lex_state = 11}, [1253] = {.lex_state = 51}, - [1254] = {.lex_state = 18, .external_lex_state = 11}, - [1255] = {.lex_state = 18, .external_lex_state = 11}, - [1256] = {.lex_state = 51}, + [1254] = {.lex_state = 51}, + [1255] = {.lex_state = 0, .external_lex_state = 6}, + [1256] = {.lex_state = 16}, [1257] = {.lex_state = 0}, [1258] = {.lex_state = 0}, - [1259] = {.lex_state = 51}, - [1260] = {.lex_state = 0}, - [1261] = {.lex_state = 0}, - [1262] = {.lex_state = 51}, - [1263] = {.lex_state = 0}, - [1264] = {.lex_state = 0, .external_lex_state = 6}, - [1265] = {.lex_state = 0, .external_lex_state = 6}, - [1266] = {.lex_state = 14}, - [1267] = {.lex_state = 0}, - [1268] = {.lex_state = 0, .external_lex_state = 6}, - [1269] = {.lex_state = 14}, - [1270] = {.lex_state = 0, .external_lex_state = 6}, - [1271] = {.lex_state = 0}, - [1272] = {.lex_state = 0, .external_lex_state = 6}, + [1259] = {.lex_state = 18, .external_lex_state = 11}, + [1260] = {.lex_state = 18, .external_lex_state = 11}, + [1261] = {.lex_state = 51}, + [1262] = {.lex_state = 16, .external_lex_state = 6}, + [1263] = {.lex_state = 51}, + [1264] = {.lex_state = 51}, + [1265] = {.lex_state = 51}, + [1266] = {.lex_state = 51}, + [1267] = {.lex_state = 51}, + [1268] = {.lex_state = 0}, + [1269] = {.lex_state = 16}, + [1270] = {.lex_state = 14}, + [1271] = {.lex_state = 0, .external_lex_state = 6}, + [1272] = {.lex_state = 14}, [1273] = {.lex_state = 51}, - [1274] = {.lex_state = 0, .external_lex_state = 6}, - [1275] = {.lex_state = 0}, - [1276] = {.lex_state = 0}, - [1277] = {.lex_state = 0, .external_lex_state = 6}, + [1274] = {.lex_state = 14}, + [1275] = {.lex_state = 18, .external_lex_state = 11}, + [1276] = {.lex_state = 51}, + [1277] = {.lex_state = 51}, [1278] = {.lex_state = 0, .external_lex_state = 6}, - [1279] = {.lex_state = 10}, - [1280] = {.lex_state = 0}, - [1281] = {.lex_state = 0, .external_lex_state = 6}, - [1282] = {.lex_state = 0}, - [1283] = {.lex_state = 51}, + [1279] = {.lex_state = 51}, + [1280] = {.lex_state = 51}, + [1281] = {.lex_state = 18, .external_lex_state = 11}, + [1282] = {.lex_state = 51}, + [1283] = {.lex_state = 0}, [1284] = {.lex_state = 0, .external_lex_state = 6}, - [1285] = {.lex_state = 0}, - [1286] = {.lex_state = 0}, - [1287] = {.lex_state = 0}, - [1288] = {.lex_state = 10}, - [1289] = {.lex_state = 0, .external_lex_state = 6}, - [1290] = {.lex_state = 0}, - [1291] = {.lex_state = 14}, - [1292] = {.lex_state = 10}, - [1293] = {.lex_state = 51}, - [1294] = {.lex_state = 16, .external_lex_state = 6}, + [1285] = {.lex_state = 51}, + [1286] = {.lex_state = 0, .external_lex_state = 6}, + [1287] = {.lex_state = 10}, + [1288] = {.lex_state = 0, .external_lex_state = 6}, + [1289] = {.lex_state = 14}, + [1290] = {.lex_state = 0, .external_lex_state = 6}, + [1291] = {.lex_state = 51}, + [1292] = {.lex_state = 0}, + [1293] = {.lex_state = 16, .external_lex_state = 6}, + [1294] = {.lex_state = 0}, [1295] = {.lex_state = 0, .external_lex_state = 6}, - [1296] = {.lex_state = 0}, - [1297] = {.lex_state = 0, .external_lex_state = 6}, - [1298] = {.lex_state = 0, .external_lex_state = 6}, + [1296] = {.lex_state = 14}, + [1297] = {.lex_state = 0}, + [1298] = {.lex_state = 0}, [1299] = {.lex_state = 0, .external_lex_state = 6}, [1300] = {.lex_state = 0, .external_lex_state = 6}, - [1301] = {.lex_state = 0, .external_lex_state = 6}, - [1302] = {.lex_state = 51}, + [1301] = {.lex_state = 14}, + [1302] = {.lex_state = 0, .external_lex_state = 6}, [1303] = {.lex_state = 0}, - [1304] = {.lex_state = 0}, - [1305] = {.lex_state = 0, .external_lex_state = 6}, + [1304] = {.lex_state = 0, .external_lex_state = 6}, + [1305] = {.lex_state = 10}, [1306] = {.lex_state = 0}, - [1307] = {.lex_state = 0}, - [1308] = {.lex_state = 14}, - [1309] = {.lex_state = 51}, - [1310] = {.lex_state = 0, .external_lex_state = 6}, + [1307] = {.lex_state = 51}, + [1308] = {.lex_state = 0}, + [1309] = {.lex_state = 0}, + [1310] = {.lex_state = 0}, [1311] = {.lex_state = 0}, [1312] = {.lex_state = 51}, - [1313] = {.lex_state = 51}, - [1314] = {.lex_state = 51, .external_lex_state = 8}, - [1315] = {.lex_state = 51, .external_lex_state = 9}, + [1313] = {.lex_state = 0, .external_lex_state = 6}, + [1314] = {.lex_state = 51}, + [1315] = {.lex_state = 10}, [1316] = {.lex_state = 0, .external_lex_state = 6}, - [1317] = {.lex_state = 0, .external_lex_state = 6}, - [1318] = {.lex_state = 14}, - [1319] = {.lex_state = 0}, - [1320] = {.lex_state = 0, .external_lex_state = 6}, - [1321] = {.lex_state = 0, .external_lex_state = 6}, + [1317] = {.lex_state = 0}, + [1318] = {.lex_state = 0}, + [1319] = {.lex_state = 0, .external_lex_state = 6}, + [1320] = {.lex_state = 0}, + [1321] = {.lex_state = 0}, [1322] = {.lex_state = 0, .external_lex_state = 6}, - [1323] = {.lex_state = 16}, - [1324] = {.lex_state = 51}, + [1323] = {.lex_state = 0, .external_lex_state = 6}, + [1324] = {.lex_state = 0}, [1325] = {.lex_state = 51}, [1326] = {.lex_state = 0, .external_lex_state = 6}, - [1327] = {.lex_state = 51}, + [1327] = {.lex_state = 0, .external_lex_state = 6}, [1328] = {.lex_state = 0, .external_lex_state = 6}, - [1329] = {.lex_state = 51}, - [1330] = {.lex_state = 0}, - [1331] = {.lex_state = 0}, + [1329] = {.lex_state = 0, .external_lex_state = 6}, + [1330] = {.lex_state = 14}, + [1331] = {.lex_state = 51}, [1332] = {.lex_state = 0, .external_lex_state = 6}, - [1333] = {.lex_state = 0}, + [1333] = {.lex_state = 51}, [1334] = {.lex_state = 0}, [1335] = {.lex_state = 0, .external_lex_state = 6}, - [1336] = {.lex_state = 0}, - [1337] = {.lex_state = 51}, - [1338] = {.lex_state = 0, .external_lex_state = 6}, - [1339] = {.lex_state = 51}, - [1340] = {.lex_state = 51}, + [1336] = {.lex_state = 0, .external_lex_state = 6}, + [1337] = {.lex_state = 0}, + [1338] = {.lex_state = 0}, + [1339] = {.lex_state = 0, .external_lex_state = 6}, + [1340] = {.lex_state = 0}, [1341] = {.lex_state = 0}, - [1342] = {.lex_state = 51}, - [1343] = {.lex_state = 0}, - [1344] = {.lex_state = 51}, - [1345] = {.lex_state = 0}, - [1346] = {.lex_state = 0}, + [1342] = {.lex_state = 0}, + [1343] = {.lex_state = 16}, + [1344] = {.lex_state = 0}, + [1345] = {.lex_state = 0, .external_lex_state = 6}, + [1346] = {.lex_state = 0, .external_lex_state = 6}, [1347] = {.lex_state = 0}, - [1348] = {.lex_state = 0}, + [1348] = {.lex_state = 51}, [1349] = {.lex_state = 0}, - [1350] = {.lex_state = 0, .external_lex_state = 6}, - [1351] = {.lex_state = 51}, - [1352] = {.lex_state = 51}, - [1353] = {.lex_state = 0, .external_lex_state = 6}, - [1354] = {.lex_state = 0, .external_lex_state = 6}, - [1355] = {.lex_state = 51}, - [1356] = {.lex_state = 51}, - [1357] = {.lex_state = 51}, - [1358] = {.lex_state = 0}, - [1359] = {.lex_state = 0}, - [1360] = {.lex_state = 0, .external_lex_state = 6}, + [1350] = {.lex_state = 51}, + [1351] = {.lex_state = 0, .external_lex_state = 6}, + [1352] = {.lex_state = 16}, + [1353] = {.lex_state = 0}, + [1354] = {.lex_state = 0}, + [1355] = {.lex_state = 0}, + [1356] = {.lex_state = 14}, + [1357] = {.lex_state = 0}, + [1358] = {.lex_state = 51}, + [1359] = {.lex_state = 51}, + [1360] = {.lex_state = 0}, [1361] = {.lex_state = 0}, [1362] = {.lex_state = 0}, - [1363] = {.lex_state = 0, .external_lex_state = 6}, + [1363] = {.lex_state = 51}, [1364] = {.lex_state = 51}, - [1365] = {.lex_state = 0, .external_lex_state = 6}, + [1365] = {.lex_state = 0}, [1366] = {.lex_state = 0, .external_lex_state = 6}, [1367] = {.lex_state = 0}, - [1368] = {.lex_state = 0}, - [1369] = {.lex_state = 0}, - [1370] = {.lex_state = 0, .external_lex_state = 6}, - [1371] = {.lex_state = 0}, + [1368] = {.lex_state = 0, .external_lex_state = 6}, + [1369] = {.lex_state = 51, .external_lex_state = 9}, + [1370] = {.lex_state = 51}, + [1371] = {.lex_state = 51}, [1372] = {.lex_state = 0, .external_lex_state = 6}, - [1373] = {.lex_state = 0}, - [1374] = {.lex_state = 16}, + [1373] = {.lex_state = 51, .external_lex_state = 8}, + [1374] = {.lex_state = 0}, [1375] = {.lex_state = 0}, - [1376] = {.lex_state = 0}, - [1377] = {.lex_state = 0}, - [1378] = {.lex_state = 0}, + [1376] = {.lex_state = 51}, + [1377] = {.lex_state = 51}, + [1378] = {.lex_state = 51}, [1379] = {.lex_state = 0}, - [1380] = {.lex_state = 51}, - [1381] = {.lex_state = 0, .external_lex_state = 6}, - [1382] = {.lex_state = 0}, + [1380] = {.lex_state = 0, .external_lex_state = 6}, + [1381] = {.lex_state = 0}, + [1382] = {.lex_state = 51}, [1383] = {.lex_state = 51}, [1384] = {.lex_state = 0}, [1385] = {.lex_state = 0}, [1386] = {.lex_state = 51}, [1387] = {.lex_state = 0}, [1388] = {.lex_state = 0, .external_lex_state = 6}, - [1389] = {.lex_state = 51}, - [1390] = {.lex_state = 0}, - [1391] = {.lex_state = 0, .external_lex_state = 6}, + [1389] = {.lex_state = 0}, + [1390] = {.lex_state = 0, .external_lex_state = 6}, + [1391] = {.lex_state = 0}, [1392] = {.lex_state = 0, .external_lex_state = 6}, - [1393] = {.lex_state = 0}, - [1394] = {.lex_state = 0}, - [1395] = {.lex_state = 0}, + [1393] = {.lex_state = 0, .external_lex_state = 6}, + [1394] = {.lex_state = 0, .external_lex_state = 6}, + [1395] = {.lex_state = 51}, [1396] = {.lex_state = 0}, [1397] = {.lex_state = 0}, [1398] = {.lex_state = 0}, - [1399] = {.lex_state = 0}, - [1400] = {.lex_state = 0}, - [1401] = {.lex_state = 14}, - [1402] = {.lex_state = 0}, + [1399] = {.lex_state = 0, .external_lex_state = 6}, + [1400] = {.lex_state = 51}, + [1401] = {.lex_state = 0, .external_lex_state = 6}, + [1402] = {.lex_state = 0, .external_lex_state = 6}, [1403] = {.lex_state = 0}, - [1404] = {.lex_state = 0}, + [1404] = {.lex_state = 0, .external_lex_state = 6}, [1405] = {.lex_state = 0}, - [1406] = {.lex_state = 0}, - [1407] = {.lex_state = 0}, - [1408] = {.lex_state = 16}, + [1406] = {.lex_state = 51}, + [1407] = {.lex_state = 51}, + [1408] = {.lex_state = 51}, [1409] = {.lex_state = 0}, [1410] = {.lex_state = 51}, - [1411] = {.lex_state = 0}, + [1411] = {.lex_state = 0, .external_lex_state = 6}, [1412] = {.lex_state = 0}, [1413] = {.lex_state = 0}, - [1414] = {.lex_state = 10}, + [1414] = {.lex_state = 0}, [1415] = {.lex_state = 0}, [1416] = {.lex_state = 0}, - [1417] = {.lex_state = 0}, + [1417] = {.lex_state = 51}, [1418] = {.lex_state = 0}, [1419] = {.lex_state = 0}, [1420] = {.lex_state = 0}, [1421] = {.lex_state = 0}, - [1422] = {.lex_state = 0}, + [1422] = {.lex_state = 51}, [1423] = {.lex_state = 0}, [1424] = {.lex_state = 0}, - [1425] = {.lex_state = 14}, + [1425] = {.lex_state = 0, .external_lex_state = 6}, [1426] = {.lex_state = 0}, [1427] = {.lex_state = 0}, - [1428] = {.lex_state = 0}, - [1429] = {.lex_state = 0, .external_lex_state = 6}, + [1428] = {.lex_state = 0, .external_lex_state = 6}, + [1429] = {.lex_state = 0}, [1430] = {.lex_state = 0}, - [1431] = {.lex_state = 0}, + [1431] = {.lex_state = 10}, [1432] = {.lex_state = 0}, [1433] = {.lex_state = 0}, [1434] = {.lex_state = 0}, - [1435] = {.lex_state = 0}, - [1436] = {.lex_state = 0}, - [1437] = {.lex_state = 0}, + [1435] = {.lex_state = 14}, + [1436] = {.lex_state = 0, .external_lex_state = 6}, + [1437] = {.lex_state = 51}, [1438] = {.lex_state = 0}, [1439] = {.lex_state = 0}, [1440] = {.lex_state = 0}, [1441] = {.lex_state = 0}, - [1442] = {.lex_state = 0}, - [1443] = {.lex_state = 51}, + [1442] = {.lex_state = 0, .external_lex_state = 6}, + [1443] = {.lex_state = 0}, [1444] = {.lex_state = 0}, [1445] = {.lex_state = 0}, - [1446] = {.lex_state = 10}, + [1446] = {.lex_state = 0, .external_lex_state = 6}, [1447] = {.lex_state = 0}, [1448] = {.lex_state = 0}, [1449] = {.lex_state = 0}, - [1450] = {.lex_state = 14}, - [1451] = {.lex_state = 0, .external_lex_state = 6}, + [1450] = {.lex_state = 0}, + [1451] = {.lex_state = 16}, [1452] = {.lex_state = 0}, - [1453] = {.lex_state = 51}, - [1454] = {.lex_state = 51}, + [1453] = {.lex_state = 0}, + [1454] = {.lex_state = 0}, [1455] = {.lex_state = 0}, [1456] = {.lex_state = 0}, [1457] = {.lex_state = 0}, - [1458] = {.lex_state = 0, .external_lex_state = 6}, + [1458] = {.lex_state = 0}, [1459] = {.lex_state = 0}, [1460] = {.lex_state = 0}, [1461] = {.lex_state = 0}, [1462] = {.lex_state = 0}, - [1463] = {.lex_state = 51}, - [1464] = {.lex_state = 10}, - [1465] = {.lex_state = 0, .external_lex_state = 6}, + [1463] = {.lex_state = 10}, + [1464] = {.lex_state = 0}, + [1465] = {.lex_state = 0}, [1466] = {.lex_state = 0}, - [1467] = {.lex_state = 51}, + [1467] = {.lex_state = 0}, [1468] = {.lex_state = 0}, [1469] = {.lex_state = 0}, - [1470] = {.lex_state = 51}, + [1470] = {.lex_state = 0}, [1471] = {.lex_state = 0}, [1472] = {.lex_state = 0}, [1473] = {.lex_state = 0}, - [1474] = {.lex_state = 0}, + [1474] = {.lex_state = 51}, [1475] = {.lex_state = 0}, - [1476] = {.lex_state = 10}, - [1477] = {.lex_state = 51}, - [1478] = {.lex_state = 0}, + [1476] = {.lex_state = 0}, + [1477] = {.lex_state = 0}, + [1478] = {.lex_state = 51}, [1479] = {.lex_state = 0}, [1480] = {.lex_state = 0}, [1481] = {.lex_state = 51}, [1482] = {.lex_state = 0}, [1483] = {.lex_state = 0}, [1484] = {.lex_state = 0}, - [1485] = {.lex_state = 0}, - [1486] = {.lex_state = 51}, - [1487] = {.lex_state = 0}, - [1488] = {.lex_state = 51}, + [1485] = {.lex_state = 0, .external_lex_state = 6}, + [1486] = {.lex_state = 0}, + [1487] = {.lex_state = 51}, + [1488] = {.lex_state = 0}, [1489] = {.lex_state = 0}, [1490] = {.lex_state = 0}, [1491] = {.lex_state = 51}, - [1492] = {.lex_state = 10}, + [1492] = {.lex_state = 14}, [1493] = {.lex_state = 0}, - [1494] = {.lex_state = 0, .external_lex_state = 6}, + [1494] = {.lex_state = 51}, [1495] = {.lex_state = 51}, - [1496] = {.lex_state = 14}, + [1496] = {.lex_state = 0}, [1497] = {.lex_state = 0}, [1498] = {.lex_state = 0}, - [1499] = {.lex_state = 0}, - [1500] = {.lex_state = 51}, + [1499] = {.lex_state = 10}, + [1500] = {.lex_state = 0}, [1501] = {.lex_state = 0}, - [1502] = {.lex_state = 0}, - [1503] = {.lex_state = 51}, - [1504] = {.lex_state = 51}, + [1502] = {.lex_state = 14}, + [1503] = {.lex_state = 0}, + [1504] = {.lex_state = 0}, [1505] = {.lex_state = 0}, [1506] = {.lex_state = 0}, - [1507] = {.lex_state = 0}, - [1508] = {.lex_state = 0}, - [1509] = {.lex_state = 0}, + [1507] = {.lex_state = 51}, + [1508] = {.lex_state = 10}, + [1509] = {.lex_state = 0, .external_lex_state = 6}, [1510] = {.lex_state = 51}, [1511] = {.lex_state = 0}, - [1512] = {.lex_state = 0}, - [1513] = {.lex_state = 0, .external_lex_state = 6}, + [1512] = {.lex_state = 51}, + [1513] = {.lex_state = 0}, [1514] = {.lex_state = 0}, [1515] = {.lex_state = 0}, - [1516] = {.lex_state = 0, .external_lex_state = 6}, - [1517] = {.lex_state = 0, .external_lex_state = 6}, + [1516] = {.lex_state = 51}, + [1517] = {.lex_state = 10}, [1518] = {.lex_state = 0}, [1519] = {.lex_state = 0}, - [1520] = {.lex_state = 0}, - [1521] = {.lex_state = 0, .external_lex_state = 6}, - [1522] = {.lex_state = 0, .external_lex_state = 6}, + [1520] = {.lex_state = 51}, + [1521] = {.lex_state = 0}, + [1522] = {.lex_state = 51}, [1523] = {.lex_state = 0}, - [1524] = {.lex_state = 0}, - [1525] = {.lex_state = 17}, - [1526] = {.lex_state = 0, .external_lex_state = 6}, - [1527] = {.lex_state = 0}, - [1528] = {.lex_state = 0, .external_lex_state = 6}, - [1529] = {.lex_state = 0}, - [1530] = {.lex_state = 0, .external_lex_state = 6}, - [1531] = {.lex_state = 17}, + [1524] = {.lex_state = 51}, + [1525] = {.lex_state = 0}, + [1526] = {.lex_state = 0}, + [1527] = {.lex_state = 14}, + [1528] = {.lex_state = 0}, + [1529] = {.lex_state = 0, .external_lex_state = 6}, + [1530] = {.lex_state = 0}, + [1531] = {.lex_state = 0}, [1532] = {.lex_state = 0}, - [1533] = {.lex_state = 0, .external_lex_state = 6}, - [1534] = {.lex_state = 0, .external_lex_state = 6}, - [1535] = {.lex_state = 0, .external_lex_state = 6}, - [1536] = {.lex_state = 0}, + [1533] = {.lex_state = 0}, + [1534] = {.lex_state = 0}, + [1535] = {.lex_state = 0}, + [1536] = {.lex_state = 17}, [1537] = {.lex_state = 0}, - [1538] = {.lex_state = 0}, - [1539] = {.lex_state = 17}, + [1538] = {.lex_state = 17}, + [1539] = {.lex_state = 0}, [1540] = {.lex_state = 0}, - [1541] = {.lex_state = 0}, + [1541] = {.lex_state = 17}, [1542] = {.lex_state = 0}, - [1543] = {.lex_state = 17}, - [1544] = {.lex_state = 0}, - [1545] = {.lex_state = 17}, + [1543] = {.lex_state = 16}, + [1544] = {.lex_state = 17}, + [1545] = {.lex_state = 0, .external_lex_state = 6}, [1546] = {.lex_state = 17}, - [1547] = {.lex_state = 17}, - [1548] = {.lex_state = 51}, + [1547] = {.lex_state = 51}, + [1548] = {.lex_state = 17}, [1549] = {.lex_state = 0}, - [1550] = {.lex_state = 51}, - [1551] = {.lex_state = 0}, + [1550] = {.lex_state = 17}, + [1551] = {.lex_state = 51}, [1552] = {.lex_state = 0, .external_lex_state = 6}, [1553] = {.lex_state = 0}, - [1554] = {.lex_state = 0}, - [1555] = {.lex_state = 51}, - [1556] = {.lex_state = 17}, + [1554] = {.lex_state = 0, .external_lex_state = 6}, + [1555] = {.lex_state = 0}, + [1556] = {.lex_state = 0}, [1557] = {.lex_state = 0}, - [1558] = {.lex_state = 16}, + [1558] = {.lex_state = 0}, [1559] = {.lex_state = 0, .external_lex_state = 6}, - [1560] = {.lex_state = 0}, - [1561] = {.lex_state = 0}, - [1562] = {.lex_state = 51}, - [1563] = {.lex_state = 0, .external_lex_state = 6}, - [1564] = {.lex_state = 0}, - [1565] = {.lex_state = 0}, - [1566] = {.lex_state = 0, .external_lex_state = 6}, + [1560] = {.lex_state = 17}, + [1561] = {.lex_state = 0, .external_lex_state = 6}, + [1562] = {.lex_state = 0}, + [1563] = {.lex_state = 0}, + [1564] = {.lex_state = 51}, + [1565] = {.lex_state = 0, .external_lex_state = 6}, + [1566] = {.lex_state = 0}, [1567] = {.lex_state = 0}, [1568] = {.lex_state = 0}, - [1569] = {.lex_state = 0}, - [1570] = {.lex_state = 0, .external_lex_state = 6}, + [1569] = {.lex_state = 0, .external_lex_state = 6}, + [1570] = {.lex_state = 0}, [1571] = {.lex_state = 0, .external_lex_state = 6}, - [1572] = {.lex_state = 0, .external_lex_state = 6}, - [1573] = {.lex_state = 0, .external_lex_state = 6}, - [1574] = {.lex_state = 51}, + [1572] = {.lex_state = 0}, + [1573] = {.lex_state = 0}, + [1574] = {.lex_state = 0}, [1575] = {.lex_state = 0}, - [1576] = {.lex_state = 0}, - [1577] = {.lex_state = 0, .external_lex_state = 6}, + [1576] = {.lex_state = 17}, + [1577] = {.lex_state = 0}, [1578] = {.lex_state = 0, .external_lex_state = 6}, - [1579] = {.lex_state = 0}, - [1580] = {.lex_state = 0}, - [1581] = {.lex_state = 0}, + [1579] = {.lex_state = 0, .external_lex_state = 6}, + [1580] = {.lex_state = 0, .external_lex_state = 6}, + [1581] = {.lex_state = 0, .external_lex_state = 6}, [1582] = {.lex_state = 0}, [1583] = {.lex_state = 0}, - [1584] = {.lex_state = 0}, - [1585] = {.lex_state = 0}, - [1586] = {.lex_state = 0}, - [1587] = {.lex_state = 17}, - [1588] = {.lex_state = 0, .external_lex_state = 6}, - [1589] = {.lex_state = 0}, - [1590] = {.lex_state = 17}, - [1591] = {.lex_state = 0}, - [1592] = {.lex_state = 51}, + [1584] = {.lex_state = 0, .external_lex_state = 6}, + [1585] = {.lex_state = 0, .external_lex_state = 6}, + [1586] = {.lex_state = 0, .external_lex_state = 6}, + [1587] = {.lex_state = 0}, + [1588] = {.lex_state = 0}, + [1589] = {.lex_state = 0, .external_lex_state = 6}, + [1590] = {.lex_state = 0}, + [1591] = {.lex_state = 0, .external_lex_state = 6}, + [1592] = {.lex_state = 0}, [1593] = {.lex_state = 0}, - [1594] = {.lex_state = 0}, + [1594] = {.lex_state = 51}, [1595] = {.lex_state = 0}, - [1596] = {.lex_state = 0}, + [1596] = {.lex_state = 0, .external_lex_state = 6}, [1597] = {.lex_state = 0}, [1598] = {.lex_state = 0}, - [1599] = {.lex_state = 51}, - [1600] = {.lex_state = 51}, + [1599] = {.lex_state = 0}, + [1600] = {.lex_state = 0}, [1601] = {.lex_state = 0}, - [1602] = {.lex_state = 51}, - [1603] = {.lex_state = 0}, + [1602] = {.lex_state = 0}, + [1603] = {.lex_state = 0, .external_lex_state = 6}, [1604] = {.lex_state = 0}, - [1605] = {.lex_state = 51}, + [1605] = {.lex_state = 0, .external_lex_state = 6}, [1606] = {.lex_state = 51}, - [1607] = {.lex_state = 51}, - [1608] = {.lex_state = 0}, - [1609] = {.lex_state = 51}, - [1610] = {.lex_state = 0}, - [1611] = {.lex_state = 51}, - [1612] = {.lex_state = 0}, - [1613] = {.lex_state = 0}, - [1614] = {.lex_state = 51}, + [1607] = {.lex_state = 0}, + [1608] = {.lex_state = 0, .external_lex_state = 6}, + [1609] = {.lex_state = 0}, + [1610] = {.lex_state = 0, .external_lex_state = 6}, + [1611] = {.lex_state = 0}, + [1612] = {.lex_state = 17}, + [1613] = {.lex_state = 51}, + [1614] = {.lex_state = 0}, [1615] = {.lex_state = 0}, [1616] = {.lex_state = 0}, - [1617] = {.lex_state = 51}, + [1617] = {.lex_state = 0}, [1618] = {.lex_state = 0}, - [1619] = {.lex_state = 51}, - [1620] = {.lex_state = 51}, - [1621] = {.lex_state = 51}, + [1619] = {.lex_state = 0}, + [1620] = {.lex_state = 0}, + [1621] = {.lex_state = 0}, [1622] = {.lex_state = 51}, [1623] = {.lex_state = 0}, [1624] = {.lex_state = 0}, [1625] = {.lex_state = 0}, - [1626] = {.lex_state = 0}, - [1627] = {.lex_state = 51}, - [1628] = {.lex_state = 51}, + [1626] = {.lex_state = 51}, + [1627] = {.lex_state = 0}, + [1628] = {.lex_state = 0}, [1629] = {.lex_state = 51}, - [1630] = {.lex_state = 0}, + [1630] = {.lex_state = 51}, [1631] = {.lex_state = 0}, [1632] = {.lex_state = 51}, - [1633] = {.lex_state = 51}, + [1633] = {.lex_state = 0}, [1634] = {.lex_state = 51}, - [1635] = {.lex_state = 0}, - [1636] = {.lex_state = 0}, - [1637] = {.lex_state = 0}, + [1635] = {.lex_state = 51}, + [1636] = {.lex_state = 51}, + [1637] = {.lex_state = 51}, [1638] = {.lex_state = 0}, - [1639] = {.lex_state = 0}, + [1639] = {.lex_state = 51}, [1640] = {.lex_state = 0}, [1641] = {.lex_state = 0}, [1642] = {.lex_state = 51}, - [1643] = {.lex_state = 0}, + [1643] = {.lex_state = 51}, [1644] = {.lex_state = 51}, [1645] = {.lex_state = 51}, [1646] = {.lex_state = 0}, [1647] = {.lex_state = 51}, - [1648] = {.lex_state = 0}, + [1648] = {.lex_state = 51}, [1649] = {.lex_state = 51}, [1650] = {.lex_state = 0}, - [1651] = {.lex_state = 51}, - [1652] = {.lex_state = 0}, - [1653] = {.lex_state = 51}, - [1654] = {.lex_state = 51}, + [1651] = {.lex_state = 0}, + [1652] = {.lex_state = 51}, + [1653] = {.lex_state = 0}, + [1654] = {.lex_state = 0}, [1655] = {.lex_state = 0}, [1656] = {.lex_state = 0}, [1657] = {.lex_state = 0}, - [1658] = {.lex_state = 51}, + [1658] = {.lex_state = 0}, [1659] = {.lex_state = 0}, - [1660] = {.lex_state = 51}, - [1661] = {.lex_state = 0}, + [1660] = {.lex_state = 0}, + [1661] = {.lex_state = 51}, [1662] = {.lex_state = 0}, - [1663] = {.lex_state = 0}, + [1663] = {.lex_state = 51}, [1664] = {.lex_state = 0}, [1665] = {.lex_state = 0}, [1666] = {.lex_state = 0}, - [1667] = {.lex_state = 0}, + [1667] = {.lex_state = 51}, [1668] = {.lex_state = 0}, [1669] = {.lex_state = 0}, [1670] = {.lex_state = 0}, @@ -8129,58 +8150,79 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1679] = {.lex_state = 0}, [1680] = {.lex_state = 0}, [1681] = {.lex_state = 0}, - [1682] = {.lex_state = 51}, - [1683] = {.lex_state = 0}, + [1682] = {.lex_state = 0}, + [1683] = {.lex_state = 51}, [1684] = {.lex_state = 0}, [1685] = {.lex_state = 0}, [1686] = {.lex_state = 0}, - [1687] = {.lex_state = 0}, - [1688] = {.lex_state = 51}, - [1689] = {.lex_state = 0}, - [1690] = {.lex_state = 51}, - [1691] = {.lex_state = 0}, + [1687] = {.lex_state = 51}, + [1688] = {.lex_state = 0}, + [1689] = {.lex_state = 51}, + [1690] = {.lex_state = 0}, + [1691] = {.lex_state = 51}, [1692] = {.lex_state = 0}, - [1693] = {.lex_state = 0}, + [1693] = {.lex_state = 51}, [1694] = {.lex_state = 0}, [1695] = {.lex_state = 0}, [1696] = {.lex_state = 0}, - [1697] = {.lex_state = 0}, + [1697] = {.lex_state = 51}, [1698] = {.lex_state = 0}, - [1699] = {.lex_state = 51}, + [1699] = {.lex_state = 0}, [1700] = {.lex_state = 0}, - [1701] = {.lex_state = 0}, + [1701] = {.lex_state = 51}, [1702] = {.lex_state = 0}, - [1703] = {.lex_state = 51}, - [1704] = {.lex_state = 0}, - [1705] = {.lex_state = 51}, + [1703] = {.lex_state = 0}, + [1704] = {.lex_state = 51}, + [1705] = {.lex_state = 0}, [1706] = {.lex_state = 51}, - [1707] = {.lex_state = 51}, + [1707] = {.lex_state = 0}, [1708] = {.lex_state = 0}, [1709] = {.lex_state = 0}, - [1710] = {.lex_state = 51}, + [1710] = {.lex_state = 0}, [1711] = {.lex_state = 0}, - [1712] = {.lex_state = 51}, + [1712] = {.lex_state = 0}, [1713] = {.lex_state = 0}, [1714] = {.lex_state = 0}, - [1715] = {.lex_state = 0}, - [1716] = {.lex_state = 0}, + [1715] = {.lex_state = 51}, + [1716] = {.lex_state = 51}, [1717] = {.lex_state = 0}, [1718] = {.lex_state = 0}, - [1719] = {.lex_state = 0}, + [1719] = {.lex_state = 51}, [1720] = {.lex_state = 51}, [1721] = {.lex_state = 0}, [1722] = {.lex_state = 0}, [1723] = {.lex_state = 0}, [1724] = {.lex_state = 0}, - [1725] = {.lex_state = 0}, - [1726] = {.lex_state = 0}, + [1725] = {.lex_state = 51}, + [1726] = {.lex_state = 51}, [1727] = {.lex_state = 0}, [1728] = {.lex_state = 0}, - [1729] = {.lex_state = 0}, + [1729] = {.lex_state = 51}, [1730] = {.lex_state = 0}, [1731] = {.lex_state = 0}, - [1732] = {.lex_state = 0}, + [1732] = {.lex_state = 51}, [1733] = {.lex_state = 0}, + [1734] = {.lex_state = 0}, + [1735] = {.lex_state = 0}, + [1736] = {.lex_state = 0}, + [1737] = {.lex_state = 0}, + [1738] = {.lex_state = 0}, + [1739] = {.lex_state = 0}, + [1740] = {.lex_state = 0}, + [1741] = {.lex_state = 0}, + [1742] = {.lex_state = 0}, + [1743] = {.lex_state = 0}, + [1744] = {.lex_state = 0}, + [1745] = {.lex_state = 0}, + [1746] = {.lex_state = 0}, + [1747] = {.lex_state = 51}, + [1748] = {.lex_state = 0}, + [1749] = {.lex_state = 0}, + [1750] = {.lex_state = 0}, + [1751] = {.lex_state = 0}, + [1752] = {.lex_state = 51}, + [1753] = {.lex_state = 51}, + [1754] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -8293,75 +8335,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(1), }, [STATE(1)] = { - [sym_module] = STATE(1610), - [sym__statement] = STATE(62), - [sym__simple_statements] = STATE(62), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_if_statement] = STATE(62), - [sym_for_statement] = STATE(62), - [sym_while_statement] = STATE(62), - [sym_try_statement] = STATE(62), - [sym_with_statement] = STATE(62), - [sym_match_statement] = STATE(62), - [sym_function_definition] = STATE(62), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_class_definition] = STATE(62), - [sym_decorated_definition] = STATE(62), - [sym_decorator] = STATE(1128), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(62), - [aux_sym_decorated_definition_repeat1] = STATE(1128), + [sym_module] = STATE(1708), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1172), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1172), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), @@ -8412,75 +8454,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(2)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(330), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(491), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -8533,19 +8575,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(3)] = { [sym__statement] = STATE(60), [sym__simple_statements] = STATE(60), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(60), [sym_for_statement] = STATE(60), [sym_while_statement] = STATE(60), @@ -8553,53 +8595,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(60), [sym_match_statement] = STATE(60), [sym_function_definition] = STATE(60), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(60), [sym_decorated_definition] = STATE(60), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(1213), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(1195), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(60), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -8652,19 +8694,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(4)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -8672,53 +8714,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(312), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(329), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -8771,19 +8813,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(5)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -8791,53 +8833,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(474), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(478), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -8890,19 +8932,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(6)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -8910,53 +8952,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(609), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(604), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9009,19 +9051,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(7)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9029,53 +9071,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(514), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(615), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9128,19 +9170,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(8)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9148,53 +9190,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(552), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(525), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9247,19 +9289,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(9)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9267,53 +9309,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(572), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(541), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9366,19 +9408,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(10)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9386,53 +9428,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(575), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(547), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9485,19 +9527,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(11)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9505,53 +9547,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(577), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(550), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9604,19 +9646,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(12)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9624,53 +9666,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(580), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(582), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9723,19 +9765,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(13)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9743,53 +9785,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(473), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(490), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9842,19 +9884,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(14)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9862,53 +9904,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(448), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(447), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -9961,19 +10003,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(15)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -9981,53 +10023,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(586), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(609), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10080,19 +10122,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(16)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10100,53 +10142,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(591), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(601), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10199,19 +10241,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(17)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10219,53 +10261,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(592), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(612), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10318,19 +10360,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(18)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10338,53 +10380,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(507), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(512), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10437,19 +10479,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(19)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10457,53 +10499,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(462), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(468), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10556,19 +10598,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(20)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10576,53 +10618,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(595), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(542), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10675,19 +10717,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(21)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10695,53 +10737,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(445), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(455), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10794,19 +10836,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(22)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10814,53 +10856,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(505), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(496), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -10913,19 +10955,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(23)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -10933,53 +10975,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(597), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(606), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11032,19 +11074,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(24)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11052,53 +11094,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(467), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(472), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11151,19 +11193,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(25)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11171,53 +11213,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(601), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(517), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11270,19 +11312,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(26)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11290,53 +11332,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(456), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(442), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11389,19 +11431,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(27)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11409,53 +11451,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(498), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(508), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11508,19 +11550,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(28)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11528,53 +11570,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(604), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(522), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11627,19 +11669,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(29)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11647,53 +11689,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(605), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(523), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11746,19 +11788,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(30)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11766,53 +11808,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(438), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(450), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11865,19 +11907,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(31)] = { [sym__statement] = STATE(61), [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(61), [sym_for_statement] = STATE(61), [sym_while_statement] = STATE(61), @@ -11885,53 +11927,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(61), [sym_match_statement] = STATE(61), [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(61), [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(439), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(451), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -11982,75 +12024,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(32)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(475), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(322), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12101,75 +12143,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(33)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(524), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(559), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12220,75 +12262,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(34)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(529), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(567), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12339,75 +12381,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(35)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(535), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(573), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12458,75 +12500,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(36)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(537), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(575), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12577,75 +12619,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(37)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(539), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(577), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12696,75 +12738,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(38)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(541), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(579), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12815,75 +12857,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(39)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(483), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(486), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -12934,75 +12976,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(40)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(446), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(454), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13053,75 +13095,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(41)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(545), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(583), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13172,75 +13214,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(42)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(511), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(586), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13291,75 +13333,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(43)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(549), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(587), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13410,75 +13452,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(44)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(491), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(502), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13529,75 +13571,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(45)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(470), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(488), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13648,75 +13690,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(46)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(554), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(591), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13767,75 +13809,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(47)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(455), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(459), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -13886,75 +13928,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(48)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(488), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(504), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14005,75 +14047,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(49)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(558), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(595), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14124,75 +14166,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(50)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(481), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(489), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14243,75 +14285,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(51)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(561), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(598), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14362,75 +14404,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(52)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(435), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(460), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14481,75 +14523,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(53)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(506), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(507), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14600,75 +14642,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(54)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(564), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(602), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14719,75 +14761,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(55)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(565), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(603), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14838,75 +14880,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(56)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(441), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(464), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -14957,75 +14999,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(57)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(443), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(439), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -15078,19 +15120,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(58)] = { [sym__statement] = STATE(60), [sym__simple_statements] = STATE(60), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(60), [sym_for_statement] = STATE(60), [sym_while_statement] = STATE(60), @@ -15098,53 +15140,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(60), [sym_match_statement] = STATE(60), [sym_function_definition] = STATE(60), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(60), [sym_decorated_definition] = STATE(60), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(1175), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(1215), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(60), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -15195,75 +15237,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(59)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1127), - [sym_block] = STATE(522), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(560), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -15314,74 +15356,74 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(60)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1127), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -15432,74 +15474,74 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(61)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1127), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1127), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -15550,21 +15592,257 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(62)] = { + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(115), + [anon_sym_lazy] = ACTIONS(118), + [anon_sym_import] = ACTIONS(121), + [anon_sym_from] = ACTIONS(124), + [anon_sym_LPAREN] = ACTIONS(127), + [anon_sym_STAR] = ACTIONS(130), + [anon_sym_print] = ACTIONS(133), + [anon_sym_assert] = ACTIONS(136), + [anon_sym_return] = ACTIONS(139), + [anon_sym_del] = ACTIONS(142), + [anon_sym_raise] = ACTIONS(145), + [anon_sym_pass] = ACTIONS(148), + [anon_sym_break] = ACTIONS(151), + [anon_sym_continue] = ACTIONS(154), + [anon_sym_if] = ACTIONS(157), + [anon_sym_async] = ACTIONS(160), + [anon_sym_for] = ACTIONS(163), + [anon_sym_while] = ACTIONS(166), + [anon_sym_try] = ACTIONS(169), + [anon_sym_with] = ACTIONS(172), + [anon_sym_match] = ACTIONS(175), + [anon_sym_DASH] = ACTIONS(178), + [anon_sym_PLUS] = ACTIONS(178), + [anon_sym_LBRACK] = ACTIONS(181), + [anon_sym_LBRACE] = ACTIONS(184), + [anon_sym_STAR_STAR] = ACTIONS(187), + [anon_sym_def] = ACTIONS(190), + [anon_sym_global] = ACTIONS(193), + [anon_sym_nonlocal] = ACTIONS(196), + [anon_sym_exec] = ACTIONS(199), + [anon_sym_type] = ACTIONS(202), + [anon_sym_class] = ACTIONS(205), + [anon_sym_AT] = ACTIONS(208), + [anon_sym_not] = ACTIONS(211), + [anon_sym_TILDE] = ACTIONS(178), + [anon_sym_lambda] = ACTIONS(214), + [anon_sym_yield] = ACTIONS(217), + [sym_ellipsis] = ACTIONS(220), + [sym_integer] = ACTIONS(223), + [sym_float] = ACTIONS(220), + [anon_sym_await] = ACTIONS(226), + [sym_true] = ACTIONS(223), + [sym_false] = ACTIONS(223), + [sym_none] = ACTIONS(223), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(229), + [sym__string_start] = ACTIONS(231), + [sym__template_string_start] = ACTIONS(234), + }, + [STATE(63)] = { + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(237), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(64)] = { [sym__statement] = STATE(65), [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), [sym_if_statement] = STATE(65), [sym_for_statement] = STATE(65), [sym_while_statement] = STATE(65), @@ -15572,53 +15850,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(65), [sym_match_statement] = STATE(65), [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), [sym_class_definition] = STATE(65), [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1128), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1172), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1128), - [ts_builtin_sym_end] = ACTIONS(115), + [aux_sym_decorated_definition_repeat1] = STATE(1172), + [ts_builtin_sym_end] = ACTIONS(239), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -15667,258 +15945,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(83), [sym__template_string_start] = ACTIONS(85), }, - [STATE(63)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1127), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1127), - [sym_identifier] = ACTIONS(117), - [anon_sym_lazy] = ACTIONS(120), - [anon_sym_import] = ACTIONS(123), - [anon_sym_from] = ACTIONS(126), - [anon_sym_LPAREN] = ACTIONS(129), - [anon_sym_STAR] = ACTIONS(132), - [anon_sym_print] = ACTIONS(135), - [anon_sym_assert] = ACTIONS(138), - [anon_sym_return] = ACTIONS(141), - [anon_sym_del] = ACTIONS(144), - [anon_sym_raise] = ACTIONS(147), - [anon_sym_pass] = ACTIONS(150), - [anon_sym_break] = ACTIONS(153), - [anon_sym_continue] = ACTIONS(156), - [anon_sym_if] = ACTIONS(159), - [anon_sym_async] = ACTIONS(162), - [anon_sym_for] = ACTIONS(165), - [anon_sym_while] = ACTIONS(168), - [anon_sym_try] = ACTIONS(171), - [anon_sym_with] = ACTIONS(174), - [anon_sym_match] = ACTIONS(177), - [anon_sym_DASH] = ACTIONS(180), - [anon_sym_PLUS] = ACTIONS(180), - [anon_sym_LBRACK] = ACTIONS(183), - [anon_sym_LBRACE] = ACTIONS(186), - [anon_sym_STAR_STAR] = ACTIONS(189), - [anon_sym_def] = ACTIONS(192), - [anon_sym_global] = ACTIONS(195), - [anon_sym_nonlocal] = ACTIONS(198), - [anon_sym_exec] = ACTIONS(201), - [anon_sym_type] = ACTIONS(204), - [anon_sym_class] = ACTIONS(207), - [anon_sym_AT] = ACTIONS(210), - [anon_sym_not] = ACTIONS(213), - [anon_sym_TILDE] = ACTIONS(180), - [anon_sym_lambda] = ACTIONS(216), - [anon_sym_yield] = ACTIONS(219), - [sym_ellipsis] = ACTIONS(222), - [sym_integer] = ACTIONS(225), - [sym_float] = ACTIONS(222), - [anon_sym_await] = ACTIONS(228), - [sym_true] = ACTIONS(225), - [sym_false] = ACTIONS(225), - [sym_none] = ACTIONS(225), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(231), - [sym__string_start] = ACTIONS(233), - [sym__template_string_start] = ACTIONS(236), - }, - [STATE(64)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1127), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1127), - [sym_identifier] = ACTIONS(7), - [anon_sym_lazy] = ACTIONS(9), - [anon_sym_import] = ACTIONS(11), - [anon_sym_from] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_print] = ACTIONS(19), - [anon_sym_assert] = ACTIONS(21), - [anon_sym_return] = ACTIONS(23), - [anon_sym_del] = ACTIONS(25), - [anon_sym_raise] = ACTIONS(27), - [anon_sym_pass] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_if] = ACTIONS(87), - [anon_sym_async] = ACTIONS(89), - [anon_sym_for] = ACTIONS(91), - [anon_sym_while] = ACTIONS(93), - [anon_sym_try] = ACTIONS(95), - [anon_sym_with] = ACTIONS(97), - [anon_sym_match] = ACTIONS(99), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_LBRACK] = ACTIONS(51), - [anon_sym_LBRACE] = ACTIONS(53), - [anon_sym_STAR_STAR] = ACTIONS(55), - [anon_sym_def] = ACTIONS(101), - [anon_sym_global] = ACTIONS(59), - [anon_sym_nonlocal] = ACTIONS(61), - [anon_sym_exec] = ACTIONS(63), - [anon_sym_type] = ACTIONS(65), - [anon_sym_class] = ACTIONS(103), - [anon_sym_AT] = ACTIONS(69), - [anon_sym_not] = ACTIONS(71), - [anon_sym_TILDE] = ACTIONS(49), - [anon_sym_lambda] = ACTIONS(73), - [anon_sym_yield] = ACTIONS(75), - [sym_ellipsis] = ACTIONS(77), - [sym_integer] = ACTIONS(79), - [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(81), - [sym_true] = ACTIONS(79), - [sym_false] = ACTIONS(79), - [sym_none] = ACTIONS(79), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(239), - [sym__string_start] = ACTIONS(83), - [sym__template_string_start] = ACTIONS(85), - }, [STATE(65)] = { [sym__statement] = STATE(65), [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), [sym_if_statement] = STATE(65), [sym_for_statement] = STATE(65), [sym_while_statement] = STATE(65), @@ -15926,67 +15968,67 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(65), [sym_match_statement] = STATE(65), [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), [sym_class_definition] = STATE(65), [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1128), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_decorator] = STATE(1172), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1128), - [ts_builtin_sym_end] = ACTIONS(231), - [sym_identifier] = ACTIONS(117), - [anon_sym_lazy] = ACTIONS(120), - [anon_sym_import] = ACTIONS(123), - [anon_sym_from] = ACTIONS(126), - [anon_sym_LPAREN] = ACTIONS(129), - [anon_sym_STAR] = ACTIONS(132), - [anon_sym_print] = ACTIONS(135), - [anon_sym_assert] = ACTIONS(138), - [anon_sym_return] = ACTIONS(141), - [anon_sym_del] = ACTIONS(144), - [anon_sym_raise] = ACTIONS(147), - [anon_sym_pass] = ACTIONS(150), - [anon_sym_break] = ACTIONS(153), - [anon_sym_continue] = ACTIONS(156), + [aux_sym_decorated_definition_repeat1] = STATE(1172), + [ts_builtin_sym_end] = ACTIONS(229), + [sym_identifier] = ACTIONS(115), + [anon_sym_lazy] = ACTIONS(118), + [anon_sym_import] = ACTIONS(121), + [anon_sym_from] = ACTIONS(124), + [anon_sym_LPAREN] = ACTIONS(127), + [anon_sym_STAR] = ACTIONS(130), + [anon_sym_print] = ACTIONS(133), + [anon_sym_assert] = ACTIONS(136), + [anon_sym_return] = ACTIONS(139), + [anon_sym_del] = ACTIONS(142), + [anon_sym_raise] = ACTIONS(145), + [anon_sym_pass] = ACTIONS(148), + [anon_sym_break] = ACTIONS(151), + [anon_sym_continue] = ACTIONS(154), [anon_sym_if] = ACTIONS(241), [anon_sym_async] = ACTIONS(244), [anon_sym_for] = ACTIONS(247), @@ -15994,64 +16036,64 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_try] = ACTIONS(253), [anon_sym_with] = ACTIONS(256), [anon_sym_match] = ACTIONS(259), - [anon_sym_DASH] = ACTIONS(180), - [anon_sym_PLUS] = ACTIONS(180), - [anon_sym_LBRACK] = ACTIONS(183), - [anon_sym_LBRACE] = ACTIONS(186), - [anon_sym_STAR_STAR] = ACTIONS(189), + [anon_sym_DASH] = ACTIONS(178), + [anon_sym_PLUS] = ACTIONS(178), + [anon_sym_LBRACK] = ACTIONS(181), + [anon_sym_LBRACE] = ACTIONS(184), + [anon_sym_STAR_STAR] = ACTIONS(187), [anon_sym_def] = ACTIONS(262), - [anon_sym_global] = ACTIONS(195), - [anon_sym_nonlocal] = ACTIONS(198), - [anon_sym_exec] = ACTIONS(201), - [anon_sym_type] = ACTIONS(204), + [anon_sym_global] = ACTIONS(193), + [anon_sym_nonlocal] = ACTIONS(196), + [anon_sym_exec] = ACTIONS(199), + [anon_sym_type] = ACTIONS(202), [anon_sym_class] = ACTIONS(265), - [anon_sym_AT] = ACTIONS(210), - [anon_sym_not] = ACTIONS(213), - [anon_sym_TILDE] = ACTIONS(180), - [anon_sym_lambda] = ACTIONS(216), - [anon_sym_yield] = ACTIONS(219), - [sym_ellipsis] = ACTIONS(222), - [sym_integer] = ACTIONS(225), - [sym_float] = ACTIONS(222), - [anon_sym_await] = ACTIONS(228), - [sym_true] = ACTIONS(225), - [sym_false] = ACTIONS(225), - [sym_none] = ACTIONS(225), + [anon_sym_AT] = ACTIONS(208), + [anon_sym_not] = ACTIONS(211), + [anon_sym_TILDE] = ACTIONS(178), + [anon_sym_lambda] = ACTIONS(214), + [anon_sym_yield] = ACTIONS(217), + [sym_ellipsis] = ACTIONS(220), + [sym_integer] = ACTIONS(223), + [sym_float] = ACTIONS(220), + [anon_sym_await] = ACTIONS(226), + [sym_true] = ACTIONS(223), + [sym_false] = ACTIONS(223), + [sym_none] = ACTIONS(223), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(233), - [sym__template_string_start] = ACTIONS(236), + [sym__string_start] = ACTIONS(231), + [sym__template_string_start] = ACTIONS(234), }, [STATE(66)] = { - [sym_named_expression] = STATE(1032), - [sym_list_splat] = STATE(1518), - [sym_dictionary_splat] = STATE(1518), - [sym_expression_list] = STATE(1654), - [sym_expression] = STATE(1245), - [sym_primary_expression] = STATE(719), - [sym_not_operator] = STATE(1032), - [sym_boolean_operator] = STATE(1032), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_comparison_operator] = STATE(1032), - [sym_lambda] = STATE(1032), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_conditional_expression] = STATE(1032), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [sym_named_expression] = STATE(1037), + [sym_list_splat] = STATE(1573), + [sym_dictionary_splat] = STATE(1573), + [sym_expression_list] = STATE(1725), + [sym_expression] = STATE(1277), + [sym_primary_expression] = STATE(704), + [sym_not_operator] = STATE(1037), + [sym_boolean_operator] = STATE(1037), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_comparison_operator] = STATE(1037), + [sym_lambda] = STATE(1037), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_conditional_expression] = STATE(1037), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(268), [anon_sym_lazy] = ACTIONS(270), [anon_sym_DOT] = ACTIONS(272), @@ -16122,36 +16164,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(67)] = { - [sym_named_expression] = STATE(1032), - [sym_list_splat] = STATE(1518), - [sym_dictionary_splat] = STATE(1518), - [sym_expression_list] = STATE(1600), - [sym_expression] = STATE(1234), - [sym_primary_expression] = STATE(719), - [sym_not_operator] = STATE(1032), - [sym_boolean_operator] = STATE(1032), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_comparison_operator] = STATE(1032), - [sym_lambda] = STATE(1032), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_conditional_expression] = STATE(1032), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [sym_named_expression] = STATE(1037), + [sym_list_splat] = STATE(1573), + [sym_dictionary_splat] = STATE(1573), + [sym_expression_list] = STATE(1753), + [sym_expression] = STATE(1276), + [sym_primary_expression] = STATE(704), + [sym_not_operator] = STATE(1037), + [sym_boolean_operator] = STATE(1037), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_comparison_operator] = STATE(1037), + [sym_lambda] = STATE(1037), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_conditional_expression] = STATE(1037), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(268), [anon_sym_lazy] = ACTIONS(270), [anon_sym_DOT] = ACTIONS(272), @@ -16222,61 +16264,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(68)] = { - [sym__simple_statements] = STATE(614), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(616), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -16320,61 +16362,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(69)] = { - [sym__simple_statements] = STATE(567), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(493), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -16418,61 +16460,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(70)] = { - [sym__simple_statements] = STATE(573), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(320), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -16517,60 +16559,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }, [STATE(71)] = { [sym__simple_statements] = STATE(477), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -16614,61 +16656,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(72)] = { - [sym__simple_statements] = STATE(576), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(544), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -16712,61 +16754,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(73)] = { - [sym__simple_statements] = STATE(325), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(514), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -16810,61 +16852,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(74)] = { - [sym__simple_statements] = STATE(463), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(483), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -16908,159 +16950,257 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(75)] = { - [sym_chevron] = STATE(1370), - [sym_named_expression] = STATE(1156), - [sym_expression] = STATE(1181), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_attribute] = STATE(920), - [sym_subscript] = STATE(920), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [sym_identifier] = ACTIONS(349), - [anon_sym_lazy] = ACTIONS(351), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(303), - [anon_sym_COMMA] = ACTIONS(277), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(351), - [anon_sym_GT_GT] = ACTIONS(353), - [anon_sym_COLON_EQ] = ACTIONS(283), - [anon_sym_if] = ACTIONS(272), - [anon_sym_COLON] = ACTIONS(285), - [anon_sym_async] = ACTIONS(351), - [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(351), - [anon_sym_PIPE] = ACTIONS(272), - [anon_sym_DASH] = ACTIONS(272), - [anon_sym_PLUS] = ACTIONS(272), - [anon_sym_LBRACK] = ACTIONS(303), + [sym__simple_statements] = STATE(551), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), [anon_sym_LBRACE] = ACTIONS(53), - [anon_sym_STAR_STAR] = ACTIONS(272), - [anon_sym_EQ] = ACTIONS(285), - [anon_sym_exec] = ACTIONS(351), - [anon_sym_type] = ACTIONS(351), - [anon_sym_AT] = ACTIONS(272), - [anon_sym_not] = ACTIONS(272), - [anon_sym_and] = ACTIONS(272), - [anon_sym_or] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(272), - [anon_sym_SLASH_SLASH] = ACTIONS(272), - [anon_sym_AMP] = ACTIONS(272), - [anon_sym_CARET] = ACTIONS(272), - [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), [anon_sym_TILDE] = ACTIONS(49), - [anon_sym_LT] = ACTIONS(272), - [anon_sym_LT_EQ] = ACTIONS(303), - [anon_sym_EQ_EQ] = ACTIONS(303), - [anon_sym_BANG_EQ] = ACTIONS(303), - [anon_sym_GT_EQ] = ACTIONS(303), - [anon_sym_GT] = ACTIONS(272), - [anon_sym_LT_GT] = ACTIONS(303), - [anon_sym_is] = ACTIONS(272), [anon_sym_lambda] = ACTIONS(73), - [anon_sym_PLUS_EQ] = ACTIONS(307), - [anon_sym_DASH_EQ] = ACTIONS(307), - [anon_sym_STAR_EQ] = ACTIONS(307), - [anon_sym_SLASH_EQ] = ACTIONS(307), - [anon_sym_AT_EQ] = ACTIONS(307), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), - [anon_sym_PERCENT_EQ] = ACTIONS(307), - [anon_sym_STAR_STAR_EQ] = ACTIONS(307), - [anon_sym_GT_GT_EQ] = ACTIONS(307), - [anon_sym_LT_LT_EQ] = ACTIONS(307), - [anon_sym_AMP_EQ] = ACTIONS(307), - [anon_sym_CARET_EQ] = ACTIONS(307), - [anon_sym_PIPE_EQ] = ACTIONS(307), + [anon_sym_yield] = ACTIONS(75), [sym_ellipsis] = ACTIONS(77), [sym_integer] = ACTIONS(79), [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(355), + [anon_sym_await] = ACTIONS(81), [sym_true] = ACTIONS(79), [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(303), - [sym__newline] = ACTIONS(303), + [sym__newline] = ACTIONS(349), + [sym__indent] = ACTIONS(351), [sym__string_start] = ACTIONS(83), [sym__template_string_start] = ACTIONS(85), }, [STATE(76)] = { - [sym__simple_statements] = STATE(513), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(594), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(353), + [sym__indent] = ACTIONS(355), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(77)] = { + [sym__simple_statements] = STATE(531), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17103,258 +17243,160 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(83), [sym__template_string_start] = ACTIONS(85), }, - [STATE(77)] = { - [sym__simple_statements] = STATE(518), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [sym_identifier] = ACTIONS(7), - [anon_sym_lazy] = ACTIONS(9), - [anon_sym_import] = ACTIONS(11), - [anon_sym_from] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_print] = ACTIONS(19), - [anon_sym_assert] = ACTIONS(21), - [anon_sym_return] = ACTIONS(23), - [anon_sym_del] = ACTIONS(25), - [anon_sym_raise] = ACTIONS(27), - [anon_sym_pass] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_async] = ACTIONS(319), - [anon_sym_match] = ACTIONS(319), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_LBRACK] = ACTIONS(51), - [anon_sym_LBRACE] = ACTIONS(53), - [anon_sym_STAR_STAR] = ACTIONS(55), - [anon_sym_global] = ACTIONS(59), - [anon_sym_nonlocal] = ACTIONS(61), - [anon_sym_exec] = ACTIONS(63), - [anon_sym_type] = ACTIONS(65), - [anon_sym_not] = ACTIONS(71), - [anon_sym_TILDE] = ACTIONS(49), - [anon_sym_lambda] = ACTIONS(73), - [anon_sym_yield] = ACTIONS(75), - [sym_ellipsis] = ACTIONS(77), - [sym_integer] = ACTIONS(79), - [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(81), - [sym_true] = ACTIONS(79), - [sym_false] = ACTIONS(79), - [sym_none] = ACTIONS(79), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(361), - [sym__indent] = ACTIONS(363), - [sym__string_start] = ACTIONS(83), - [sym__template_string_start] = ACTIONS(85), - }, [STATE(78)] = { - [sym__simple_statements] = STATE(500), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [sym_identifier] = ACTIONS(7), - [anon_sym_lazy] = ACTIONS(9), - [anon_sym_import] = ACTIONS(11), - [anon_sym_from] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_print] = ACTIONS(19), - [anon_sym_assert] = ACTIONS(21), - [anon_sym_return] = ACTIONS(23), - [anon_sym_del] = ACTIONS(25), - [anon_sym_raise] = ACTIONS(27), - [anon_sym_pass] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_async] = ACTIONS(319), - [anon_sym_match] = ACTIONS(319), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_LBRACK] = ACTIONS(51), + [sym_chevron] = STATE(1323), + [sym_named_expression] = STATE(1126), + [sym_expression] = STATE(1223), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(361), + [anon_sym_lazy] = ACTIONS(363), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(363), + [anon_sym_GT_GT] = ACTIONS(365), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(363), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(363), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(272), + [anon_sym_PLUS] = ACTIONS(272), + [anon_sym_LBRACK] = ACTIONS(303), [anon_sym_LBRACE] = ACTIONS(53), - [anon_sym_STAR_STAR] = ACTIONS(55), - [anon_sym_global] = ACTIONS(59), - [anon_sym_nonlocal] = ACTIONS(61), - [anon_sym_exec] = ACTIONS(63), - [anon_sym_type] = ACTIONS(65), - [anon_sym_not] = ACTIONS(71), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(363), + [anon_sym_type] = ACTIONS(363), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), [anon_sym_lambda] = ACTIONS(73), - [anon_sym_yield] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), [sym_ellipsis] = ACTIONS(77), [sym_integer] = ACTIONS(79), [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(81), + [anon_sym_await] = ACTIONS(367), [sym_true] = ACTIONS(79), [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(365), - [sym__indent] = ACTIONS(367), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), [sym__string_start] = ACTIONS(83), [sym__template_string_start] = ACTIONS(85), }, [STATE(79)] = { - [sym__simple_statements] = STATE(465), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(561), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17398,61 +17440,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(80)] = { - [sym__simple_statements] = STATE(570), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(562), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17496,61 +17538,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(81)] = { - [sym__simple_statements] = STATE(523), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(441), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17594,61 +17636,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(82)] = { - [sym__simple_statements] = STATE(581), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(568), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17692,61 +17734,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(83)] = { - [sym__simple_statements] = STATE(525), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(482), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17790,61 +17832,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(84)] = { - [sym__simple_statements] = STATE(526), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(448), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17888,61 +17930,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(85)] = { - [sym__simple_statements] = STATE(584), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(570), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -17986,61 +18028,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(86)] = { - [sym__simple_statements] = STATE(530), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(574), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18084,61 +18126,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(87)] = { - [sym__simple_statements] = STATE(486), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(511), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18182,61 +18224,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(88)] = { - [sym__simple_statements] = STATE(444), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(576), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18280,61 +18322,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(89)] = { - [sym__simple_statements] = STATE(532), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(613), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18378,61 +18420,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(90)] = { - [sym__simple_statements] = STATE(536), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(497), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18476,61 +18518,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(91)] = { - [sym__simple_statements] = STATE(449), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(485), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18574,61 +18616,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(92)] = { - [sym__simple_statements] = STATE(538), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(332), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18672,61 +18714,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(93)] = { - [sym__simple_statements] = STATE(497), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(580), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18770,61 +18812,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(94)] = { - [sym__simple_statements] = STATE(472), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(611), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18868,61 +18910,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(95)] = { - [sym__simple_statements] = STATE(508), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(467), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -18966,61 +19008,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(96)] = { - [sym__simple_statements] = STATE(542), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(456), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19064,61 +19106,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(97)] = { - [sym__simple_statements] = STATE(589), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(475), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19162,61 +19204,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(98)] = { - [sym__simple_statements] = STATE(603), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(500), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19260,61 +19302,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(99)] = { - [sym__simple_statements] = STATE(447), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(519), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19358,61 +19400,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(100)] = { - [sym__simple_statements] = STATE(460), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(536), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19456,61 +19498,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(101)] = { - [sym__simple_statements] = STATE(502), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(487), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19554,61 +19596,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(102)] = { - [sym__simple_statements] = STATE(547), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(539), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19652,61 +19694,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(103)] = { - [sym__simple_statements] = STATE(461), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(457), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19750,61 +19792,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(104)] = { - [sym__simple_statements] = STATE(468), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(590), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19848,61 +19890,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(105)] = { - [sym__simple_statements] = STATE(594), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(458), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -19946,61 +19988,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(106)] = { - [sym__simple_statements] = STATE(553), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(1216), + [sym_import_statement] = STATE(1402), + [sym_future_import_statement] = STATE(1402), + [sym_import_from_statement] = STATE(1402), + [sym_print_statement] = STATE(1402), + [sym_assert_statement] = STATE(1402), + [sym_expression_statement] = STATE(1402), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1402), + [sym_delete_statement] = STATE(1402), + [sym_raise_statement] = STATE(1402), + [sym_pass_statement] = STATE(1402), + [sym_break_statement] = STATE(1402), + [sym_continue_statement] = STATE(1402), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1402), + [sym_nonlocal_statement] = STATE(1402), + [sym_exec_statement] = STATE(1402), + [sym_type_alias_statement] = STATE(1402), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20044,61 +20086,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(107)] = { - [sym__simple_statements] = STATE(613), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(498), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20142,61 +20184,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(108)] = { - [sym__simple_statements] = STATE(453), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(505), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20240,61 +20282,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(109)] = { - [sym__simple_statements] = STATE(442), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(526), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20338,61 +20380,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(110)] = { - [sym__simple_statements] = STATE(495), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(596), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20436,61 +20478,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(111)] = { - [sym__simple_statements] = STATE(515), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(607), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20534,61 +20576,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(112)] = { - [sym__simple_statements] = STATE(559), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(474), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20632,61 +20674,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(113)] = { - [sym__simple_statements] = STATE(489), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(599), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20730,61 +20772,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(114)] = { - [sym__simple_statements] = STATE(517), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(449), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20828,61 +20870,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(115)] = { - [sym__simple_statements] = STATE(562), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(462), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -20926,61 +20968,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(116)] = { - [sym__simple_statements] = STATE(598), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(518), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21024,61 +21066,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(117)] = { - [sym__simple_statements] = STATE(459), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(532), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21122,61 +21164,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(118)] = { - [sym__simple_statements] = STATE(331), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(443), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21220,61 +21262,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(119)] = { - [sym__simple_statements] = STATE(602), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(463), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21318,61 +21360,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(120)] = { - [sym__simple_statements] = STATE(440), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(555), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21416,61 +21458,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(121)] = { - [sym__simple_statements] = STATE(556), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(543), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21514,61 +21556,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(122)] = { - [sym__simple_statements] = STATE(457), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(608), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21612,61 +21654,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(123)] = { - [sym__simple_statements] = STATE(464), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(1183), + [sym_import_statement] = STATE(1402), + [sym_future_import_statement] = STATE(1402), + [sym_import_from_statement] = STATE(1402), + [sym_print_statement] = STATE(1402), + [sym_assert_statement] = STATE(1402), + [sym_expression_statement] = STATE(1402), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1402), + [sym_delete_statement] = STATE(1402), + [sym_raise_statement] = STATE(1402), + [sym_pass_statement] = STATE(1402), + [sym_break_statement] = STATE(1402), + [sym_continue_statement] = STATE(1402), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1402), + [sym_nonlocal_statement] = STATE(1402), + [sym_exec_statement] = STATE(1402), + [sym_type_alias_statement] = STATE(1402), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21710,61 +21752,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(124)] = { - [sym__simple_statements] = STATE(1171), - [sym_import_statement] = STATE(1299), - [sym_future_import_statement] = STATE(1299), - [sym_import_from_statement] = STATE(1299), - [sym_print_statement] = STATE(1299), - [sym_assert_statement] = STATE(1299), - [sym_expression_statement] = STATE(1299), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1299), - [sym_delete_statement] = STATE(1299), - [sym_raise_statement] = STATE(1299), - [sym_pass_statement] = STATE(1299), - [sym_break_statement] = STATE(1299), - [sym_continue_statement] = STATE(1299), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1299), - [sym_nonlocal_statement] = STATE(1299), - [sym_exec_statement] = STATE(1299), - [sym_type_alias_statement] = STATE(1299), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(446), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21808,61 +21850,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(125)] = { - [sym__simple_statements] = STATE(454), - [sym_import_statement] = STATE(1301), - [sym_future_import_statement] = STATE(1301), - [sym_import_from_statement] = STATE(1301), - [sym_print_statement] = STATE(1301), - [sym_assert_statement] = STATE(1301), - [sym_expression_statement] = STATE(1301), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1301), - [sym_delete_statement] = STATE(1301), - [sym_raise_statement] = STATE(1301), - [sym_pass_statement] = STATE(1301), - [sym_break_statement] = STATE(1301), - [sym_continue_statement] = STATE(1301), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1301), - [sym_nonlocal_statement] = STATE(1301), - [sym_exec_statement] = STATE(1301), - [sym_type_alias_statement] = STATE(1301), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(548), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -21906,61 +21948,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(126)] = { - [sym__simple_statements] = STATE(1209), - [sym_import_statement] = STATE(1299), - [sym_future_import_statement] = STATE(1299), - [sym_import_from_statement] = STATE(1299), - [sym_print_statement] = STATE(1299), - [sym_assert_statement] = STATE(1299), - [sym_expression_statement] = STATE(1299), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1299), - [sym_delete_statement] = STATE(1299), - [sym_raise_statement] = STATE(1299), - [sym_pass_statement] = STATE(1299), - [sym_break_statement] = STATE(1299), - [sym_continue_statement] = STATE(1299), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1299), - [sym_nonlocal_statement] = STATE(1299), - [sym_exec_statement] = STATE(1299), - [sym_type_alias_statement] = STATE(1299), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym__simple_statements] = STATE(585), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22004,60 +22046,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(127)] = { - [sym_import_statement] = STATE(1566), - [sym_future_import_statement] = STATE(1566), - [sym_import_from_statement] = STATE(1566), - [sym_print_statement] = STATE(1566), - [sym_assert_statement] = STATE(1566), - [sym_expression_statement] = STATE(1566), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1566), - [sym_delete_statement] = STATE(1566), - [sym_raise_statement] = STATE(1566), - [sym_pass_statement] = STATE(1566), - [sym_break_statement] = STATE(1566), - [sym_continue_statement] = STATE(1566), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1566), - [sym_nonlocal_statement] = STATE(1566), - [sym_exec_statement] = STATE(1566), - [sym_type_alias_statement] = STATE(1566), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22100,60 +22142,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(128)] = { - [sym_import_statement] = STATE(1566), - [sym_future_import_statement] = STATE(1566), - [sym_import_from_statement] = STATE(1566), - [sym_print_statement] = STATE(1566), - [sym_assert_statement] = STATE(1566), - [sym_expression_statement] = STATE(1566), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1566), - [sym_delete_statement] = STATE(1566), - [sym_raise_statement] = STATE(1566), - [sym_pass_statement] = STATE(1566), - [sym_break_statement] = STATE(1566), - [sym_continue_statement] = STATE(1566), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1566), - [sym_nonlocal_statement] = STATE(1566), - [sym_exec_statement] = STATE(1566), - [sym_type_alias_statement] = STATE(1566), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22196,60 +22238,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(129)] = { - [sym_import_statement] = STATE(1566), - [sym_future_import_statement] = STATE(1566), - [sym_import_from_statement] = STATE(1566), - [sym_print_statement] = STATE(1566), - [sym_assert_statement] = STATE(1566), - [sym_expression_statement] = STATE(1566), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1566), - [sym_delete_statement] = STATE(1566), - [sym_raise_statement] = STATE(1566), - [sym_pass_statement] = STATE(1566), - [sym_break_statement] = STATE(1566), - [sym_continue_statement] = STATE(1566), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1566), - [sym_nonlocal_statement] = STATE(1566), - [sym_exec_statement] = STATE(1566), - [sym_type_alias_statement] = STATE(1566), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22292,60 +22334,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(130)] = { - [sym_import_statement] = STATE(1566), - [sym_future_import_statement] = STATE(1566), - [sym_import_from_statement] = STATE(1566), - [sym_print_statement] = STATE(1566), - [sym_assert_statement] = STATE(1566), - [sym_expression_statement] = STATE(1566), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1566), - [sym_delete_statement] = STATE(1566), - [sym_raise_statement] = STATE(1566), - [sym_pass_statement] = STATE(1566), - [sym_break_statement] = STATE(1566), - [sym_continue_statement] = STATE(1566), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1566), - [sym_nonlocal_statement] = STATE(1566), - [sym_exec_statement] = STATE(1566), - [sym_type_alias_statement] = STATE(1566), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22388,60 +22430,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(131)] = { - [sym_import_statement] = STATE(1566), - [sym_future_import_statement] = STATE(1566), - [sym_import_from_statement] = STATE(1566), - [sym_print_statement] = STATE(1566), - [sym_assert_statement] = STATE(1566), - [sym_expression_statement] = STATE(1566), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1566), - [sym_delete_statement] = STATE(1566), - [sym_raise_statement] = STATE(1566), - [sym_pass_statement] = STATE(1566), - [sym_break_statement] = STATE(1566), - [sym_continue_statement] = STATE(1566), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1566), - [sym_nonlocal_statement] = STATE(1566), - [sym_exec_statement] = STATE(1566), - [sym_type_alias_statement] = STATE(1566), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22484,60 +22526,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(132)] = { - [sym_import_statement] = STATE(1566), - [sym_future_import_statement] = STATE(1566), - [sym_import_from_statement] = STATE(1566), - [sym_print_statement] = STATE(1566), - [sym_assert_statement] = STATE(1566), - [sym_expression_statement] = STATE(1566), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1566), - [sym_delete_statement] = STATE(1566), - [sym_raise_statement] = STATE(1566), - [sym_pass_statement] = STATE(1566), - [sym_break_statement] = STATE(1566), - [sym_continue_statement] = STATE(1566), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1566), - [sym_nonlocal_statement] = STATE(1566), - [sym_exec_statement] = STATE(1566), - [sym_type_alias_statement] = STATE(1566), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22580,60 +22622,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(133)] = { - [sym_import_statement] = STATE(1566), - [sym_future_import_statement] = STATE(1566), - [sym_import_from_statement] = STATE(1566), - [sym_print_statement] = STATE(1566), - [sym_assert_statement] = STATE(1566), - [sym_expression_statement] = STATE(1566), - [sym_named_expression] = STATE(1156), - [sym_return_statement] = STATE(1566), - [sym_delete_statement] = STATE(1566), - [sym_raise_statement] = STATE(1566), - [sym_pass_statement] = STATE(1566), - [sym_break_statement] = STATE(1566), - [sym_continue_statement] = STATE(1566), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_global_statement] = STATE(1566), - [sym_nonlocal_statement] = STATE(1566), - [sym_exec_statement] = STATE(1566), - [sym_type_alias_statement] = STATE(1566), - [sym_expression_list] = STATE(1522), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1176), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1522), - [sym_augmented_assignment] = STATE(1522), - [sym_pattern_list] = STATE(1026), - [sym_yield] = STATE(1522), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(9), [anon_sym_import] = ACTIONS(11), @@ -22675,138 +22717,49 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(134)] = { - [sym_primary_expression] = STATE(741), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), - [sym_identifier] = ACTIONS(311), + [sym_primary_expression] = STATE(799), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(79), [anon_sym_lazy] = ACTIONS(573), [anon_sym_DOT] = ACTIONS(272), [anon_sym_LPAREN] = ACTIONS(575), - [anon_sym_RPAREN] = ACTIONS(577), - [anon_sym_COMMA] = ACTIONS(577), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), - [anon_sym_GT_GT] = ACTIONS(272), - [anon_sym_COLON_EQ] = ACTIONS(580), - [anon_sym_if] = ACTIONS(272), - [anon_sym_COLON] = ACTIONS(582), - [anon_sym_async] = ACTIONS(573), - [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), - [anon_sym_PIPE] = ACTIONS(272), - [anon_sym_DASH] = ACTIONS(584), - [anon_sym_PLUS] = ACTIONS(584), - [anon_sym_LBRACK] = ACTIONS(586), - [anon_sym_RBRACK] = ACTIONS(577), - [anon_sym_LBRACE] = ACTIONS(293), - [anon_sym_STAR_STAR] = ACTIONS(272), - [anon_sym_EQ] = ACTIONS(582), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), - [anon_sym_AT] = ACTIONS(272), - [anon_sym_not] = ACTIONS(272), - [anon_sym_and] = ACTIONS(272), - [anon_sym_or] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(272), - [anon_sym_SLASH_SLASH] = ACTIONS(272), - [anon_sym_AMP] = ACTIONS(272), - [anon_sym_CARET] = ACTIONS(272), - [anon_sym_LT_LT] = ACTIONS(272), - [anon_sym_TILDE] = ACTIONS(301), - [anon_sym_LT] = ACTIONS(272), - [anon_sym_LT_EQ] = ACTIONS(303), - [anon_sym_EQ_EQ] = ACTIONS(303), - [anon_sym_BANG_EQ] = ACTIONS(303), - [anon_sym_GT_EQ] = ACTIONS(303), - [anon_sym_GT] = ACTIONS(272), - [anon_sym_LT_GT] = ACTIONS(303), - [anon_sym_is] = ACTIONS(272), - [anon_sym_PLUS_EQ] = ACTIONS(588), - [anon_sym_DASH_EQ] = ACTIONS(588), - [anon_sym_STAR_EQ] = ACTIONS(588), - [anon_sym_SLASH_EQ] = ACTIONS(588), - [anon_sym_AT_EQ] = ACTIONS(588), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(588), - [anon_sym_PERCENT_EQ] = ACTIONS(588), - [anon_sym_STAR_STAR_EQ] = ACTIONS(588), - [anon_sym_GT_GT_EQ] = ACTIONS(588), - [anon_sym_LT_LT_EQ] = ACTIONS(588), - [anon_sym_AMP_EQ] = ACTIONS(588), - [anon_sym_CARET_EQ] = ACTIONS(588), - [anon_sym_PIPE_EQ] = ACTIONS(588), - [sym_ellipsis] = ACTIONS(309), - [sym_integer] = ACTIONS(311), - [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(590), - [sym_true] = ACTIONS(311), - [sym_false] = ACTIONS(311), - [sym_none] = ACTIONS(311), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(315), - [sym__template_string_start] = ACTIONS(317), - }, - [STATE(135)] = { - [sym_primary_expression] = STATE(786), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_attribute] = STATE(920), - [sym_subscript] = STATE(920), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [sym_identifier] = ACTIONS(79), - [anon_sym_lazy] = ACTIONS(592), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(594), [anon_sym_COMMA] = ACTIONS(277), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(592), + [anon_sym_print] = ACTIONS(573), [anon_sym_GT_GT] = ACTIONS(272), [anon_sym_COLON_EQ] = ACTIONS(283), [anon_sym_if] = ACTIONS(272), [anon_sym_COLON] = ACTIONS(285), - [anon_sym_async] = ACTIONS(592), + [anon_sym_async] = ACTIONS(573), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(592), + [anon_sym_match] = ACTIONS(573), [anon_sym_PIPE] = ACTIONS(272), - [anon_sym_DASH] = ACTIONS(596), - [anon_sym_PLUS] = ACTIONS(596), - [anon_sym_LBRACK] = ACTIONS(598), + [anon_sym_DASH] = ACTIONS(577), + [anon_sym_PLUS] = ACTIONS(577), + [anon_sym_LBRACK] = ACTIONS(579), [anon_sym_LBRACE] = ACTIONS(53), [anon_sym_STAR_STAR] = ACTIONS(272), [anon_sym_EQ] = ACTIONS(285), - [anon_sym_exec] = ACTIONS(592), - [anon_sym_type] = ACTIONS(592), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), [anon_sym_AT] = ACTIONS(272), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -22842,7 +22795,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_ellipsis] = ACTIONS(77), [sym_integer] = ACTIONS(79), [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(600), + [anon_sym_await] = ACTIONS(581), [sym_true] = ACTIONS(79), [sym_false] = ACTIONS(79), [sym_none] = ACTIONS(79), @@ -22852,54 +22805,141 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(83), [sym__template_string_start] = ACTIONS(85), }, - [STATE(136)] = { - [sym_primary_expression] = STATE(741), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [STATE(135)] = { + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), + [anon_sym_lazy] = ACTIONS(583), [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_COMMA] = ACTIONS(587), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(590), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(592), + [anon_sym_async] = ACTIONS(583), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(594), + [anon_sym_PLUS] = ACTIONS(594), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(592), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_PLUS_EQ] = ACTIONS(598), + [anon_sym_DASH_EQ] = ACTIONS(598), + [anon_sym_STAR_EQ] = ACTIONS(598), + [anon_sym_SLASH_EQ] = ACTIONS(598), + [anon_sym_AT_EQ] = ACTIONS(598), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(598), + [anon_sym_PERCENT_EQ] = ACTIONS(598), + [anon_sym_STAR_STAR_EQ] = ACTIONS(598), + [anon_sym_GT_GT_EQ] = ACTIONS(598), + [anon_sym_LT_LT_EQ] = ACTIONS(598), + [anon_sym_AMP_EQ] = ACTIONS(598), + [anon_sym_CARET_EQ] = ACTIONS(598), + [anon_sym_PIPE_EQ] = ACTIONS(598), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), + }, + [STATE(136)] = { + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), [anon_sym_RPAREN] = ACTIONS(303), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), + [anon_sym_print] = ACTIONS(583), [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(580), + [anon_sym_COLON_EQ] = ACTIONS(590), [anon_sym_if] = ACTIONS(272), [anon_sym_COLON] = ACTIONS(272), [anon_sym_else] = ACTIONS(272), - [anon_sym_async] = ACTIONS(573), + [anon_sym_async] = ACTIONS(583), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), + [anon_sym_match] = ACTIONS(583), [anon_sym_PIPE] = ACTIONS(303), [anon_sym_DASH] = ACTIONS(301), [anon_sym_PLUS] = ACTIONS(301), - [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_LBRACK] = ACTIONS(596), [anon_sym_RBRACK] = ACTIONS(303), [anon_sym_LBRACE] = ACTIONS(293), [anon_sym_RBRACE] = ACTIONS(303), [anon_sym_STAR_STAR] = ACTIONS(303), [anon_sym_EQ] = ACTIONS(272), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -22922,7 +22962,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_ellipsis] = ACTIONS(309), [sym_integer] = ACTIONS(311), [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(590), + [anon_sym_await] = ACTIONS(600), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -22931,52 +22971,52 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(137)] = { - [sym_primary_expression] = STATE(741), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), + [anon_sym_lazy] = ACTIONS(583), [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_LPAREN] = ACTIONS(585), [anon_sym_RPAREN] = ACTIONS(303), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), + [anon_sym_print] = ACTIONS(583), [anon_sym_GT_GT] = ACTIONS(303), [anon_sym_if] = ACTIONS(272), [anon_sym_COLON] = ACTIONS(303), [anon_sym_else] = ACTIONS(272), - [anon_sym_async] = ACTIONS(573), + [anon_sym_async] = ACTIONS(583), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), + [anon_sym_match] = ACTIONS(583), [anon_sym_PIPE] = ACTIONS(303), [anon_sym_DASH] = ACTIONS(301), [anon_sym_PLUS] = ACTIONS(301), - [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_LBRACK] = ACTIONS(596), [anon_sym_RBRACK] = ACTIONS(303), [anon_sym_LBRACE] = ACTIONS(293), [anon_sym_RBRACE] = ACTIONS(303), [anon_sym_STAR_STAR] = ACTIONS(303), [anon_sym_EQ] = ACTIONS(272), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -22999,7 +23039,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_ellipsis] = ACTIONS(309), [sym_integer] = ACTIONS(311), [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(590), + [anon_sym_await] = ACTIONS(600), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -23008,42 +23048,42 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(138)] = { - [sym_primary_expression] = STATE(740), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), + [anon_sym_lazy] = ACTIONS(583), [anon_sym_DOT] = ACTIONS(272), [anon_sym_LPAREN] = ACTIONS(602), [anon_sym_RPAREN] = ACTIONS(303), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_as] = ACTIONS(272), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), + [anon_sym_print] = ACTIONS(583), [anon_sym_GT_GT] = ACTIONS(303), [anon_sym_COLON_EQ] = ACTIONS(604), [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(573), + [anon_sym_async] = ACTIONS(583), [anon_sym_for] = ACTIONS(272), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), + [anon_sym_match] = ACTIONS(583), [anon_sym_PIPE] = ACTIONS(303), [anon_sym_DASH] = ACTIONS(606), [anon_sym_PLUS] = ACTIONS(606), @@ -23052,8 +23092,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACE] = ACTIONS(293), [anon_sym_RBRACE] = ACTIONS(303), [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -23085,102 +23125,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(139)] = { - [sym_primary_expression] = STATE(786), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_attribute] = STATE(920), - [sym_subscript] = STATE(920), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [sym_identifier] = ACTIONS(79), - [anon_sym_lazy] = ACTIONS(592), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_from] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(594), - [anon_sym_COMMA] = ACTIONS(303), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(592), - [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(283), - [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(592), - [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(592), - [anon_sym_PIPE] = ACTIONS(303), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_LBRACK] = ACTIONS(598), - [anon_sym_LBRACE] = ACTIONS(53), - [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_EQ] = ACTIONS(272), - [anon_sym_exec] = ACTIONS(592), - [anon_sym_type] = ACTIONS(592), - [anon_sym_AT] = ACTIONS(303), - [anon_sym_not] = ACTIONS(272), - [anon_sym_and] = ACTIONS(272), - [anon_sym_or] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(303), - [anon_sym_SLASH_SLASH] = ACTIONS(303), - [anon_sym_AMP] = ACTIONS(303), - [anon_sym_CARET] = ACTIONS(303), - [anon_sym_LT_LT] = ACTIONS(303), - [anon_sym_TILDE] = ACTIONS(49), - [anon_sym_LT] = ACTIONS(272), - [anon_sym_LT_EQ] = ACTIONS(303), - [anon_sym_EQ_EQ] = ACTIONS(303), - [anon_sym_BANG_EQ] = ACTIONS(303), - [anon_sym_GT_EQ] = ACTIONS(303), - [anon_sym_GT] = ACTIONS(272), - [anon_sym_LT_GT] = ACTIONS(303), - [anon_sym_is] = ACTIONS(272), - [sym_ellipsis] = ACTIONS(77), - [sym_integer] = ACTIONS(79), - [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(600), - [sym_true] = ACTIONS(79), - [sym_false] = ACTIONS(79), - [sym_none] = ACTIONS(79), - [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(303), - [sym__newline] = ACTIONS(303), - [sym__string_start] = ACTIONS(83), - [sym__template_string_start] = ACTIONS(85), - }, - [STATE(140)] = { - [sym_primary_expression] = STATE(800), - [sym_binary_operator] = STATE(878), - [sym_unary_operator] = STATE(878), - [sym_attribute] = STATE(878), - [sym_subscript] = STATE(878), - [sym_call] = STATE(878), - [sym_list] = STATE(878), - [sym_set] = STATE(878), - [sym_tuple] = STATE(878), - [sym_dictionary] = STATE(878), - [sym_list_comprehension] = STATE(878), - [sym_dictionary_comprehension] = STATE(878), - [sym_set_comprehension] = STATE(878), - [sym_generator_expression] = STATE(878), - [sym_parenthesized_expression] = STATE(878), - [sym_concatenated_string] = STATE(878), - [sym_string] = STATE(766), - [sym_concatenated_template_string] = STATE(878), - [sym_template_string] = STATE(776), - [sym_await] = STATE(878), + [sym_primary_expression] = STATE(805), + [sym_binary_operator] = STATE(949), + [sym_unary_operator] = STATE(949), + [sym_attribute] = STATE(949), + [sym_subscript] = STATE(949), + [sym_call] = STATE(949), + [sym_list] = STATE(949), + [sym_set] = STATE(949), + [sym_tuple] = STATE(949), + [sym_dictionary] = STATE(949), + [sym_list_comprehension] = STATE(949), + [sym_dictionary_comprehension] = STATE(949), + [sym_set_comprehension] = STATE(949), + [sym_generator_expression] = STATE(949), + [sym_parenthesized_expression] = STATE(949), + [sym_concatenated_string] = STATE(949), + [sym_string] = STATE(781), + [sym_concatenated_template_string] = STATE(949), + [sym_template_string] = STATE(782), + [sym_await] = STATE(949), [sym_identifier] = ACTIONS(612), [anon_sym_lazy] = ACTIONS(614), [anon_sym_DOT] = ACTIONS(272), @@ -23236,50 +23200,126 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(630), [sym__template_string_start] = ACTIONS(632), }, - [STATE(141)] = { - [sym_primary_expression] = STATE(741), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), - [sym_identifier] = ACTIONS(311), + [STATE(140)] = { + [sym_primary_expression] = STATE(799), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(79), [anon_sym_lazy] = ACTIONS(573), [anon_sym_DOT] = ACTIONS(272), + [anon_sym_from] = ACTIONS(272), [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(579), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(581), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(141)] = { + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), [anon_sym_RPAREN] = ACTIONS(307), [anon_sym_COMMA] = ACTIONS(307), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), + [anon_sym_print] = ACTIONS(583), [anon_sym_GT_GT] = ACTIONS(272), [anon_sym_COLON] = ACTIONS(307), - [anon_sym_async] = ACTIONS(573), + [anon_sym_async] = ACTIONS(583), [anon_sym_in] = ACTIONS(285), - [anon_sym_match] = ACTIONS(573), + [anon_sym_match] = ACTIONS(583), [anon_sym_PIPE] = ACTIONS(272), - [anon_sym_DASH] = ACTIONS(584), - [anon_sym_PLUS] = ACTIONS(584), - [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_DASH] = ACTIONS(594), + [anon_sym_PLUS] = ACTIONS(594), + [anon_sym_LBRACK] = ACTIONS(596), [anon_sym_RBRACK] = ACTIONS(307), [anon_sym_LBRACE] = ACTIONS(293), [anon_sym_STAR_STAR] = ACTIONS(272), [anon_sym_EQ] = ACTIONS(307), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(272), [anon_sym_SLASH] = ACTIONS(272), [anon_sym_PERCENT] = ACTIONS(272), @@ -23304,7 +23344,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_ellipsis] = ACTIONS(309), [sym_integer] = ACTIONS(311), [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(590), + [anon_sym_await] = ACTIONS(600), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -23313,117 +23353,41 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(142)] = { - [sym_primary_expression] = STATE(741), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(575), - [anon_sym_RPAREN] = ACTIONS(588), - [anon_sym_COMMA] = ACTIONS(588), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), - [anon_sym_GT_GT] = ACTIONS(272), - [anon_sym_COLON] = ACTIONS(588), - [anon_sym_async] = ACTIONS(573), - [anon_sym_in] = ACTIONS(582), - [anon_sym_match] = ACTIONS(573), - [anon_sym_PIPE] = ACTIONS(272), - [anon_sym_DASH] = ACTIONS(584), - [anon_sym_PLUS] = ACTIONS(584), - [anon_sym_LBRACK] = ACTIONS(586), - [anon_sym_RBRACK] = ACTIONS(588), - [anon_sym_LBRACE] = ACTIONS(293), - [anon_sym_STAR_STAR] = ACTIONS(272), - [anon_sym_EQ] = ACTIONS(588), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), - [anon_sym_AT] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(272), - [anon_sym_SLASH_SLASH] = ACTIONS(272), - [anon_sym_AMP] = ACTIONS(272), - [anon_sym_CARET] = ACTIONS(272), - [anon_sym_LT_LT] = ACTIONS(272), - [anon_sym_TILDE] = ACTIONS(301), - [anon_sym_PLUS_EQ] = ACTIONS(588), - [anon_sym_DASH_EQ] = ACTIONS(588), - [anon_sym_STAR_EQ] = ACTIONS(588), - [anon_sym_SLASH_EQ] = ACTIONS(588), - [anon_sym_AT_EQ] = ACTIONS(588), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(588), - [anon_sym_PERCENT_EQ] = ACTIONS(588), - [anon_sym_STAR_STAR_EQ] = ACTIONS(588), - [anon_sym_GT_GT_EQ] = ACTIONS(588), - [anon_sym_LT_LT_EQ] = ACTIONS(588), - [anon_sym_AMP_EQ] = ACTIONS(588), - [anon_sym_CARET_EQ] = ACTIONS(588), - [anon_sym_PIPE_EQ] = ACTIONS(588), - [sym_ellipsis] = ACTIONS(309), - [sym_integer] = ACTIONS(311), - [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(590), - [sym_true] = ACTIONS(311), - [sym_false] = ACTIONS(311), - [sym_none] = ACTIONS(311), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(315), - [sym__template_string_start] = ACTIONS(317), - }, - [STATE(143)] = { - [sym_primary_expression] = STATE(740), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), - [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), + [anon_sym_lazy] = ACTIONS(583), [anon_sym_DOT] = ACTIONS(272), [anon_sym_LPAREN] = ACTIONS(602), [anon_sym_RPAREN] = ACTIONS(303), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_as] = ACTIONS(272), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), + [anon_sym_print] = ACTIONS(583), [anon_sym_GT_GT] = ACTIONS(303), [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(573), + [anon_sym_async] = ACTIONS(583), [anon_sym_for] = ACTIONS(272), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), + [anon_sym_match] = ACTIONS(583), [anon_sym_PIPE] = ACTIONS(303), [anon_sym_DASH] = ACTIONS(606), [anon_sym_PLUS] = ACTIONS(606), @@ -23432,8 +23396,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACE] = ACTIONS(293), [anon_sym_RBRACE] = ACTIONS(303), [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -23464,51 +23428,127 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(315), [sym__template_string_start] = ACTIONS(317), }, - [STATE(144)] = { - [sym_primary_expression] = STATE(740), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [STATE(143)] = { + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_RPAREN] = ACTIONS(598), + [anon_sym_COMMA] = ACTIONS(598), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(598), + [anon_sym_async] = ACTIONS(583), + [anon_sym_in] = ACTIONS(592), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(594), + [anon_sym_PLUS] = ACTIONS(594), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_RBRACK] = ACTIONS(598), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(598), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_PLUS_EQ] = ACTIONS(598), + [anon_sym_DASH_EQ] = ACTIONS(598), + [anon_sym_STAR_EQ] = ACTIONS(598), + [anon_sym_SLASH_EQ] = ACTIONS(598), + [anon_sym_AT_EQ] = ACTIONS(598), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(598), + [anon_sym_PERCENT_EQ] = ACTIONS(598), + [anon_sym_STAR_STAR_EQ] = ACTIONS(598), + [anon_sym_GT_GT_EQ] = ACTIONS(598), + [anon_sym_LT_LT_EQ] = ACTIONS(598), + [anon_sym_AMP_EQ] = ACTIONS(598), + [anon_sym_CARET_EQ] = ACTIONS(598), + [anon_sym_PIPE_EQ] = ACTIONS(598), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), + }, + [STATE(144)] = { + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), [anon_sym_DOT] = ACTIONS(272), [anon_sym_LPAREN] = ACTIONS(602), - [anon_sym_RPAREN] = ACTIONS(277), - [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), + [anon_sym_print] = ACTIONS(583), [anon_sym_GT_GT] = ACTIONS(303), [anon_sym_COLON_EQ] = ACTIONS(604), [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(573), + [anon_sym_async] = ACTIONS(583), [anon_sym_for] = ACTIONS(272), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), + [anon_sym_match] = ACTIONS(583), [anon_sym_PIPE] = ACTIONS(303), [anon_sym_DASH] = ACTIONS(606), [anon_sym_PLUS] = ACTIONS(606), [anon_sym_LBRACK] = ACTIONS(608), - [anon_sym_RBRACK] = ACTIONS(277), [anon_sym_LBRACE] = ACTIONS(293), [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_EQ] = ACTIONS(634), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -23540,50 +23580,50 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(145)] = { - [sym_primary_expression] = STATE(740), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [sym_primary_expression] = STATE(808), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), + [anon_sym_lazy] = ACTIONS(583), [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(602), - [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_LPAREN] = ACTIONS(636), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), + [anon_sym_print] = ACTIONS(583), [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_COLON_EQ] = ACTIONS(638), [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(573), + [anon_sym_COLON] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), [anon_sym_for] = ACTIONS(272), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), + [anon_sym_match] = ACTIONS(583), [anon_sym_PIPE] = ACTIONS(303), - [anon_sym_DASH] = ACTIONS(606), - [anon_sym_PLUS] = ACTIONS(606), - [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_DASH] = ACTIONS(640), + [anon_sym_PLUS] = ACTIONS(640), + [anon_sym_LBRACK] = ACTIONS(642), [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_EQ] = ACTIONS(634), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -23594,7 +23634,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(303), [anon_sym_CARET] = ACTIONS(303), [anon_sym_LT_LT] = ACTIONS(303), - [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_TILDE] = ACTIONS(640), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -23606,7 +23646,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_ellipsis] = ACTIONS(309), [sym_integer] = ACTIONS(311), [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(610), + [anon_sym_await] = ACTIONS(644), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -23615,50 +23655,50 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(317), }, [STATE(146)] = { - [sym_primary_expression] = STATE(835), - [sym_binary_operator] = STATE(970), - [sym_unary_operator] = STATE(970), - [sym_attribute] = STATE(970), - [sym_subscript] = STATE(970), - [sym_call] = STATE(970), - [sym_list] = STATE(970), - [sym_set] = STATE(970), - [sym_tuple] = STATE(970), - [sym_dictionary] = STATE(970), - [sym_list_comprehension] = STATE(970), - [sym_dictionary_comprehension] = STATE(970), - [sym_set_comprehension] = STATE(970), - [sym_generator_expression] = STATE(970), - [sym_parenthesized_expression] = STATE(970), - [sym_concatenated_string] = STATE(970), - [sym_string] = STATE(793), - [sym_concatenated_template_string] = STATE(970), - [sym_template_string] = STATE(794), - [sym_await] = STATE(970), - [sym_identifier] = ACTIONS(636), - [anon_sym_lazy] = ACTIONS(638), + [sym_primary_expression] = STATE(839), + [sym_binary_operator] = STATE(985), + [sym_unary_operator] = STATE(985), + [sym_attribute] = STATE(985), + [sym_subscript] = STATE(985), + [sym_call] = STATE(985), + [sym_list] = STATE(985), + [sym_set] = STATE(985), + [sym_tuple] = STATE(985), + [sym_dictionary] = STATE(985), + [sym_list_comprehension] = STATE(985), + [sym_dictionary_comprehension] = STATE(985), + [sym_set_comprehension] = STATE(985), + [sym_generator_expression] = STATE(985), + [sym_parenthesized_expression] = STATE(985), + [sym_concatenated_string] = STATE(985), + [sym_string] = STATE(790), + [sym_concatenated_template_string] = STATE(985), + [sym_template_string] = STATE(791), + [sym_await] = STATE(985), + [sym_identifier] = ACTIONS(646), + [anon_sym_lazy] = ACTIONS(648), [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(640), + [anon_sym_LPAREN] = ACTIONS(650), [anon_sym_RPAREN] = ACTIONS(303), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_as] = ACTIONS(272), [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(638), + [anon_sym_print] = ACTIONS(648), [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(642), + [anon_sym_COLON_EQ] = ACTIONS(652), [anon_sym_if] = ACTIONS(272), [anon_sym_COLON] = ACTIONS(272), - [anon_sym_async] = ACTIONS(638), + [anon_sym_async] = ACTIONS(648), [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(638), + [anon_sym_match] = ACTIONS(648), [anon_sym_PIPE] = ACTIONS(303), - [anon_sym_DASH] = ACTIONS(644), - [anon_sym_PLUS] = ACTIONS(644), - [anon_sym_LBRACK] = ACTIONS(646), - [anon_sym_LBRACE] = ACTIONS(648), + [anon_sym_DASH] = ACTIONS(654), + [anon_sym_PLUS] = ACTIONS(654), + [anon_sym_LBRACK] = ACTIONS(656), + [anon_sym_LBRACE] = ACTIONS(658), [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_exec] = ACTIONS(638), - [anon_sym_type] = ACTIONS(638), + [anon_sym_exec] = ACTIONS(648), + [anon_sym_type] = ACTIONS(648), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -23669,7 +23709,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(303), [anon_sym_CARET] = ACTIONS(303), [anon_sym_LT_LT] = ACTIONS(303), - [anon_sym_TILDE] = ACTIONS(644), + [anon_sym_TILDE] = ACTIONS(654), [anon_sym_LT] = ACTIONS(272), [anon_sym_LT_EQ] = ACTIONS(303), [anon_sym_EQ_EQ] = ACTIONS(303), @@ -23678,188 +23718,38 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_GT] = ACTIONS(272), [anon_sym_LT_GT] = ACTIONS(303), [anon_sym_is] = ACTIONS(272), - [sym_ellipsis] = ACTIONS(650), - [sym_integer] = ACTIONS(636), - [sym_float] = ACTIONS(650), - [anon_sym_await] = ACTIONS(652), - [sym_true] = ACTIONS(636), - [sym_false] = ACTIONS(636), - [sym_none] = ACTIONS(636), + [sym_ellipsis] = ACTIONS(660), + [sym_integer] = ACTIONS(646), + [sym_float] = ACTIONS(660), + [anon_sym_await] = ACTIONS(662), + [sym_true] = ACTIONS(646), + [sym_false] = ACTIONS(646), + [sym_none] = ACTIONS(646), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(654), - [sym__template_string_start] = ACTIONS(656), + [sym__string_start] = ACTIONS(664), + [sym__template_string_start] = ACTIONS(666), }, [STATE(147)] = { - [sym_primary_expression] = STATE(786), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_attribute] = STATE(920), - [sym_subscript] = STATE(920), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [sym_identifier] = ACTIONS(79), - [anon_sym_lazy] = ACTIONS(592), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_from] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(594), - [anon_sym_COMMA] = ACTIONS(303), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(592), - [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_if] = ACTIONS(272), - [anon_sym_async] = ACTIONS(592), - [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(592), - [anon_sym_PIPE] = ACTIONS(303), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_LBRACK] = ACTIONS(598), - [anon_sym_LBRACE] = ACTIONS(53), - [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_EQ] = ACTIONS(272), - [anon_sym_exec] = ACTIONS(592), - [anon_sym_type] = ACTIONS(592), - [anon_sym_AT] = ACTIONS(303), - [anon_sym_not] = ACTIONS(272), - [anon_sym_and] = ACTIONS(272), - [anon_sym_or] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(303), - [anon_sym_SLASH_SLASH] = ACTIONS(303), - [anon_sym_AMP] = ACTIONS(303), - [anon_sym_CARET] = ACTIONS(303), - [anon_sym_LT_LT] = ACTIONS(303), - [anon_sym_TILDE] = ACTIONS(49), - [anon_sym_LT] = ACTIONS(272), - [anon_sym_LT_EQ] = ACTIONS(303), - [anon_sym_EQ_EQ] = ACTIONS(303), - [anon_sym_BANG_EQ] = ACTIONS(303), - [anon_sym_GT_EQ] = ACTIONS(303), - [anon_sym_GT] = ACTIONS(272), - [anon_sym_LT_GT] = ACTIONS(303), - [anon_sym_is] = ACTIONS(272), - [sym_ellipsis] = ACTIONS(77), - [sym_integer] = ACTIONS(79), - [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(600), - [sym_true] = ACTIONS(79), - [sym_false] = ACTIONS(79), - [sym_none] = ACTIONS(79), - [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(303), - [sym__newline] = ACTIONS(303), - [sym__string_start] = ACTIONS(83), - [sym__template_string_start] = ACTIONS(85), - }, - [STATE(148)] = { - [sym_primary_expression] = STATE(784), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), - [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(658), - [anon_sym_COMMA] = ACTIONS(303), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), - [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(660), - [anon_sym_if] = ACTIONS(272), - [anon_sym_COLON] = ACTIONS(272), - [anon_sym_async] = ACTIONS(573), - [anon_sym_for] = ACTIONS(272), - [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), - [anon_sym_PIPE] = ACTIONS(303), - [anon_sym_DASH] = ACTIONS(662), - [anon_sym_PLUS] = ACTIONS(662), - [anon_sym_LBRACK] = ACTIONS(664), - [anon_sym_LBRACE] = ACTIONS(293), - [anon_sym_RBRACE] = ACTIONS(303), - [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), - [anon_sym_AT] = ACTIONS(303), - [anon_sym_not] = ACTIONS(272), - [anon_sym_and] = ACTIONS(272), - [anon_sym_or] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(303), - [anon_sym_SLASH_SLASH] = ACTIONS(303), - [anon_sym_AMP] = ACTIONS(303), - [anon_sym_CARET] = ACTIONS(303), - [anon_sym_LT_LT] = ACTIONS(303), - [anon_sym_TILDE] = ACTIONS(662), - [anon_sym_LT] = ACTIONS(272), - [anon_sym_LT_EQ] = ACTIONS(303), - [anon_sym_EQ_EQ] = ACTIONS(303), - [anon_sym_BANG_EQ] = ACTIONS(303), - [anon_sym_GT_EQ] = ACTIONS(303), - [anon_sym_GT] = ACTIONS(272), - [anon_sym_LT_GT] = ACTIONS(303), - [anon_sym_is] = ACTIONS(272), - [sym_ellipsis] = ACTIONS(309), - [sym_integer] = ACTIONS(311), - [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(666), - [sym_true] = ACTIONS(311), - [sym_false] = ACTIONS(311), - [sym_none] = ACTIONS(311), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(315), - [sym__template_string_start] = ACTIONS(317), - }, - [STATE(149)] = { - [sym_primary_expression] = STATE(800), - [sym_binary_operator] = STATE(878), - [sym_unary_operator] = STATE(878), - [sym_attribute] = STATE(878), - [sym_subscript] = STATE(878), - [sym_call] = STATE(878), - [sym_list] = STATE(878), - [sym_set] = STATE(878), - [sym_tuple] = STATE(878), - [sym_dictionary] = STATE(878), - [sym_list_comprehension] = STATE(878), - [sym_dictionary_comprehension] = STATE(878), - [sym_set_comprehension] = STATE(878), - [sym_generator_expression] = STATE(878), - [sym_parenthesized_expression] = STATE(878), - [sym_concatenated_string] = STATE(878), - [sym_string] = STATE(766), - [sym_concatenated_template_string] = STATE(878), - [sym_template_string] = STATE(776), - [sym_await] = STATE(878), + [sym_primary_expression] = STATE(805), + [sym_binary_operator] = STATE(949), + [sym_unary_operator] = STATE(949), + [sym_attribute] = STATE(949), + [sym_subscript] = STATE(949), + [sym_call] = STATE(949), + [sym_list] = STATE(949), + [sym_set] = STATE(949), + [sym_tuple] = STATE(949), + [sym_dictionary] = STATE(949), + [sym_list_comprehension] = STATE(949), + [sym_dictionary_comprehension] = STATE(949), + [sym_set_comprehension] = STATE(949), + [sym_generator_expression] = STATE(949), + [sym_parenthesized_expression] = STATE(949), + [sym_concatenated_string] = STATE(949), + [sym_string] = STATE(781), + [sym_concatenated_template_string] = STATE(949), + [sym_template_string] = STATE(782), + [sym_await] = STATE(949), [sym_identifier] = ACTIONS(612), [anon_sym_lazy] = ACTIONS(614), [anon_sym_DOT] = ACTIONS(272), @@ -23914,50 +23804,423 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(630), [sym__template_string_start] = ACTIONS(632), }, - [STATE(150)] = { - [sym_primary_expression] = STATE(741), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), + [STATE(148)] = { + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(587), + [anon_sym_COMMA] = ACTIONS(587), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(587), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), + }, + [STATE(149)] = { + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(277), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(277), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), + }, + [STATE(150)] = { + [sym_primary_expression] = STATE(799), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(79), [anon_sym_lazy] = ACTIONS(573), [anon_sym_DOT] = ACTIONS(272), + [anon_sym_from] = ACTIONS(272), [anon_sym_LPAREN] = ACTIONS(575), - [anon_sym_RPAREN] = ACTIONS(303), [anon_sym_COMMA] = ACTIONS(303), [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(573), [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_COLON_EQ] = ACTIONS(580), [anon_sym_if] = ACTIONS(272), [anon_sym_async] = ACTIONS(573), [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(573), [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(579), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(581), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(151)] = { + [sym_primary_expression] = STATE(808), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(636), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(640), + [anon_sym_PLUS] = ACTIONS(640), + [anon_sym_LBRACK] = ACTIONS(642), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(640), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(644), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), + }, + [STATE(152)] = { + [sym_primary_expression] = STATE(839), + [sym_binary_operator] = STATE(985), + [sym_unary_operator] = STATE(985), + [sym_attribute] = STATE(985), + [sym_subscript] = STATE(985), + [sym_call] = STATE(985), + [sym_list] = STATE(985), + [sym_set] = STATE(985), + [sym_tuple] = STATE(985), + [sym_dictionary] = STATE(985), + [sym_list_comprehension] = STATE(985), + [sym_dictionary_comprehension] = STATE(985), + [sym_set_comprehension] = STATE(985), + [sym_generator_expression] = STATE(985), + [sym_parenthesized_expression] = STATE(985), + [sym_concatenated_string] = STATE(985), + [sym_string] = STATE(790), + [sym_concatenated_template_string] = STATE(985), + [sym_template_string] = STATE(791), + [sym_await] = STATE(985), + [sym_identifier] = ACTIONS(646), + [anon_sym_lazy] = ACTIONS(648), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(650), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(648), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), + [anon_sym_async] = ACTIONS(648), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(648), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(654), + [anon_sym_PLUS] = ACTIONS(654), + [anon_sym_LBRACK] = ACTIONS(656), + [anon_sym_LBRACE] = ACTIONS(658), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(648), + [anon_sym_type] = ACTIONS(648), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(654), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(660), + [sym_integer] = ACTIONS(646), + [sym_float] = ACTIONS(660), + [anon_sym_await] = ACTIONS(662), + [sym_true] = ACTIONS(646), + [sym_false] = ACTIONS(646), + [sym_none] = ACTIONS(646), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(664), + [sym__template_string_start] = ACTIONS(666), + }, + [STATE(153)] = { + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(590), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), [anon_sym_DASH] = ACTIONS(301), [anon_sym_PLUS] = ACTIONS(301), - [anon_sym_LBRACK] = ACTIONS(586), + [anon_sym_LBRACK] = ACTIONS(596), [anon_sym_LBRACE] = ACTIONS(293), [anon_sym_STAR_STAR] = ACTIONS(303), [anon_sym_EQ] = ACTIONS(634), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(303), [anon_sym_not] = ACTIONS(272), [anon_sym_and] = ACTIONS(272), @@ -23980,7 +24243,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_ellipsis] = ACTIONS(309), [sym_integer] = ACTIONS(311), [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(590), + [anon_sym_await] = ACTIONS(600), [sym_true] = ACTIONS(311), [sym_false] = ACTIONS(311), [sym_none] = ACTIONS(311), @@ -23988,263 +24251,46 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(315), [sym__template_string_start] = ACTIONS(317), }, - [STATE(151)] = { - [sym_primary_expression] = STATE(835), - [sym_binary_operator] = STATE(970), - [sym_unary_operator] = STATE(970), - [sym_attribute] = STATE(970), - [sym_subscript] = STATE(970), - [sym_call] = STATE(970), - [sym_list] = STATE(970), - [sym_set] = STATE(970), - [sym_tuple] = STATE(970), - [sym_dictionary] = STATE(970), - [sym_list_comprehension] = STATE(970), - [sym_dictionary_comprehension] = STATE(970), - [sym_set_comprehension] = STATE(970), - [sym_generator_expression] = STATE(970), - [sym_parenthesized_expression] = STATE(970), - [sym_concatenated_string] = STATE(970), - [sym_string] = STATE(793), - [sym_concatenated_template_string] = STATE(970), - [sym_template_string] = STATE(794), - [sym_await] = STATE(970), - [sym_identifier] = ACTIONS(636), - [anon_sym_lazy] = ACTIONS(638), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(640), - [anon_sym_RPAREN] = ACTIONS(303), - [anon_sym_COMMA] = ACTIONS(303), - [anon_sym_as] = ACTIONS(272), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(638), - [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_if] = ACTIONS(272), - [anon_sym_COLON] = ACTIONS(303), - [anon_sym_async] = ACTIONS(638), - [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(638), - [anon_sym_PIPE] = ACTIONS(303), - [anon_sym_DASH] = ACTIONS(644), - [anon_sym_PLUS] = ACTIONS(644), - [anon_sym_LBRACK] = ACTIONS(646), - [anon_sym_LBRACE] = ACTIONS(648), - [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_exec] = ACTIONS(638), - [anon_sym_type] = ACTIONS(638), - [anon_sym_AT] = ACTIONS(303), - [anon_sym_not] = ACTIONS(272), - [anon_sym_and] = ACTIONS(272), - [anon_sym_or] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(303), - [anon_sym_SLASH_SLASH] = ACTIONS(303), - [anon_sym_AMP] = ACTIONS(303), - [anon_sym_CARET] = ACTIONS(303), - [anon_sym_LT_LT] = ACTIONS(303), - [anon_sym_TILDE] = ACTIONS(644), - [anon_sym_LT] = ACTIONS(272), - [anon_sym_LT_EQ] = ACTIONS(303), - [anon_sym_EQ_EQ] = ACTIONS(303), - [anon_sym_BANG_EQ] = ACTIONS(303), - [anon_sym_GT_EQ] = ACTIONS(303), - [anon_sym_GT] = ACTIONS(272), - [anon_sym_LT_GT] = ACTIONS(303), - [anon_sym_is] = ACTIONS(272), - [sym_ellipsis] = ACTIONS(650), - [sym_integer] = ACTIONS(636), - [sym_float] = ACTIONS(650), - [anon_sym_await] = ACTIONS(652), - [sym_true] = ACTIONS(636), - [sym_false] = ACTIONS(636), - [sym_none] = ACTIONS(636), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(654), - [sym__template_string_start] = ACTIONS(656), - }, - [STATE(152)] = { - [sym_primary_expression] = STATE(784), - [sym_binary_operator] = STATE(725), - [sym_unary_operator] = STATE(725), - [sym_attribute] = STATE(725), - [sym_subscript] = STATE(725), - [sym_call] = STATE(725), - [sym_list] = STATE(725), - [sym_set] = STATE(725), - [sym_tuple] = STATE(725), - [sym_dictionary] = STATE(725), - [sym_list_comprehension] = STATE(725), - [sym_dictionary_comprehension] = STATE(725), - [sym_set_comprehension] = STATE(725), - [sym_generator_expression] = STATE(725), - [sym_parenthesized_expression] = STATE(725), - [sym_concatenated_string] = STATE(725), - [sym_string] = STATE(645), - [sym_concatenated_template_string] = STATE(725), - [sym_template_string] = STATE(658), - [sym_await] = STATE(725), - [sym_identifier] = ACTIONS(311), - [anon_sym_lazy] = ACTIONS(573), - [anon_sym_DOT] = ACTIONS(272), - [anon_sym_LPAREN] = ACTIONS(658), - [anon_sym_COMMA] = ACTIONS(303), - [anon_sym_STAR] = ACTIONS(272), - [anon_sym_print] = ACTIONS(573), - [anon_sym_GT_GT] = ACTIONS(303), - [anon_sym_if] = ACTIONS(272), - [anon_sym_COLON] = ACTIONS(303), - [anon_sym_async] = ACTIONS(573), - [anon_sym_for] = ACTIONS(272), - [anon_sym_in] = ACTIONS(272), - [anon_sym_match] = ACTIONS(573), - [anon_sym_PIPE] = ACTIONS(303), - [anon_sym_DASH] = ACTIONS(662), - [anon_sym_PLUS] = ACTIONS(662), - [anon_sym_LBRACK] = ACTIONS(664), - [anon_sym_LBRACE] = ACTIONS(293), - [anon_sym_RBRACE] = ACTIONS(303), - [anon_sym_STAR_STAR] = ACTIONS(303), - [anon_sym_exec] = ACTIONS(573), - [anon_sym_type] = ACTIONS(573), - [anon_sym_AT] = ACTIONS(303), - [anon_sym_not] = ACTIONS(272), - [anon_sym_and] = ACTIONS(272), - [anon_sym_or] = ACTIONS(272), - [anon_sym_SLASH] = ACTIONS(272), - [anon_sym_PERCENT] = ACTIONS(303), - [anon_sym_SLASH_SLASH] = ACTIONS(303), - [anon_sym_AMP] = ACTIONS(303), - [anon_sym_CARET] = ACTIONS(303), - [anon_sym_LT_LT] = ACTIONS(303), - [anon_sym_TILDE] = ACTIONS(662), - [anon_sym_LT] = ACTIONS(272), - [anon_sym_LT_EQ] = ACTIONS(303), - [anon_sym_EQ_EQ] = ACTIONS(303), - [anon_sym_BANG_EQ] = ACTIONS(303), - [anon_sym_GT_EQ] = ACTIONS(303), - [anon_sym_GT] = ACTIONS(272), - [anon_sym_LT_GT] = ACTIONS(303), - [anon_sym_is] = ACTIONS(272), - [sym_ellipsis] = ACTIONS(309), - [sym_integer] = ACTIONS(311), - [sym_float] = ACTIONS(309), - [anon_sym_await] = ACTIONS(666), - [sym_true] = ACTIONS(311), - [sym_false] = ACTIONS(311), - [sym_none] = ACTIONS(311), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(315), - [sym__template_string_start] = ACTIONS(317), - }, - [STATE(153)] = { - [sym_named_expression] = STATE(1156), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_expression_list] = STATE(1570), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1179), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1570), - [sym_augmented_assignment] = STATE(1570), - [sym_pattern_list] = STATE(1026), - [sym__right_hand_side] = STATE(1570), - [sym_yield] = STATE(1570), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), - [sym_identifier] = ACTIONS(7), - [anon_sym_lazy] = ACTIONS(319), - [anon_sym_LPAREN] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_print] = ACTIONS(319), - [anon_sym_async] = ACTIONS(319), - [anon_sym_match] = ACTIONS(319), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_LBRACK] = ACTIONS(51), - [anon_sym_LBRACE] = ACTIONS(53), - [anon_sym_STAR_STAR] = ACTIONS(55), - [anon_sym_exec] = ACTIONS(319), - [anon_sym_type] = ACTIONS(319), - [anon_sym_not] = ACTIONS(71), - [anon_sym_TILDE] = ACTIONS(49), - [anon_sym_lambda] = ACTIONS(73), - [anon_sym_yield] = ACTIONS(75), - [sym_ellipsis] = ACTIONS(77), - [sym_integer] = ACTIONS(79), - [sym_float] = ACTIONS(77), - [anon_sym_await] = ACTIONS(81), - [sym_true] = ACTIONS(79), - [sym_false] = ACTIONS(79), - [sym_none] = ACTIONS(79), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(83), - [sym__template_string_start] = ACTIONS(85), - }, [STATE(154)] = { - [sym_named_expression] = STATE(1156), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_expression_list] = STATE(1516), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1179), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1516), - [sym_augmented_assignment] = STATE(1516), - [sym_pattern_list] = STATE(1026), - [sym__right_hand_side] = STATE(1516), - [sym_yield] = STATE(1516), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_named_expression] = STATE(1126), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_expression_list] = STATE(1586), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1181), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1586), + [sym_augmented_assignment] = STATE(1586), + [sym_pattern_list] = STATE(1030), + [sym__right_hand_side] = STATE(1586), + [sym_yield] = STATE(1586), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(319), [anon_sym_LPAREN] = ACTIONS(15), @@ -24275,45 +24321,114 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(85), }, [STATE(155)] = { - [sym_named_expression] = STATE(1156), - [sym_list_splat] = STATE(1520), - [sym_dictionary_splat] = STATE(1520), - [sym_expression_list] = STATE(1526), - [sym_pattern] = STATE(1017), - [sym_tuple_pattern] = STATE(1001), - [sym_list_pattern] = STATE(1001), - [sym_list_splat_pattern] = STATE(1001), - [sym_expression] = STATE(1179), - [sym_primary_expression] = STATE(765), - [sym_not_operator] = STATE(1156), - [sym_boolean_operator] = STATE(1156), - [sym_binary_operator] = STATE(920), - [sym_unary_operator] = STATE(920), - [sym_comparison_operator] = STATE(1156), - [sym_lambda] = STATE(1156), - [sym_assignment] = STATE(1526), - [sym_augmented_assignment] = STATE(1526), - [sym_pattern_list] = STATE(1026), - [sym__right_hand_side] = STATE(1526), - [sym_yield] = STATE(1526), - [sym_attribute] = STATE(582), - [sym_subscript] = STATE(582), - [sym_call] = STATE(920), - [sym_list] = STATE(920), - [sym_set] = STATE(920), - [sym_tuple] = STATE(920), - [sym_dictionary] = STATE(920), - [sym_list_comprehension] = STATE(920), - [sym_dictionary_comprehension] = STATE(920), - [sym_set_comprehension] = STATE(920), - [sym_generator_expression] = STATE(920), - [sym_parenthesized_expression] = STATE(920), - [sym_conditional_expression] = STATE(1156), - [sym_concatenated_string] = STATE(920), - [sym_string] = STATE(775), - [sym_concatenated_template_string] = STATE(920), - [sym_template_string] = STATE(769), - [sym_await] = STATE(920), + [sym_named_expression] = STATE(1126), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_expression_list] = STATE(1608), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1181), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1608), + [sym_augmented_assignment] = STATE(1608), + [sym_pattern_list] = STATE(1030), + [sym__right_hand_side] = STATE(1608), + [sym_yield] = STATE(1608), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(319), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(319), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_exec] = ACTIONS(319), + [anon_sym_type] = ACTIONS(319), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(156)] = { + [sym_named_expression] = STATE(1126), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_expression_list] = STATE(1610), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1181), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1610), + [sym_augmented_assignment] = STATE(1610), + [sym_pattern_list] = STATE(1030), + [sym__right_hand_side] = STATE(1610), + [sym_yield] = STATE(1610), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), [anon_sym_lazy] = ACTIONS(319), [anon_sym_LPAREN] = ACTIONS(15), @@ -24346,7 +24461,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }; static const uint16_t ts_small_parse_table[] = { - [0] = 29, + [0] = 31, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24360,11 +24475,11 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(672), 1, anon_sym_LPAREN, ACTIONS(674), 1, - anon_sym_STAR, + anon_sym_RPAREN, ACTIONS(676), 1, - anon_sym_LBRACK, + anon_sym_STAR, ACTIONS(678), 1, - anon_sym_RBRACK, + anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, ACTIONS(682), 1, @@ -24373,38 +24488,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_yield, ACTIONS(686), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1084), 1, + STATE(1070), 1, sym_expression, - STATE(1311), 1, + STATE(1217), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1675), 1, - sym__patterns, - STATE(1693), 1, + STATE(1461), 1, + sym_yield, + STATE(1721), 1, sym__collection_elements, + STATE(1742), 1, + sym__patterns, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(872), 2, + STATE(917), 2, sym_attribute, sym_subscript, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, @@ -24417,14 +24534,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24440,7 +24557,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [123] = 30, + [127] = 31, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24453,9 +24570,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(674), 1, - anon_sym_STAR, ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, @@ -24467,36 +24584,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_await, ACTIONS(688), 1, anon_sym_RPAREN, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1068), 1, + STATE(1086), 1, sym_expression, - STATE(1311), 1, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1479), 1, + STATE(1432), 1, sym_yield, - STATE(1689), 1, - sym__patterns, - STATE(1692), 1, + STATE(1686), 1, sym__collection_elements, + STATE(1742), 1, + sym__patterns, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(872), 2, + STATE(917), 2, sym_attribute, sym_subscript, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -24512,14 +24630,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24535,7 +24653,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [248] = 31, + [254] = 30, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24548,9 +24666,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(674), 1, - anon_sym_STAR, ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, @@ -24561,38 +24679,37 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(686), 1, anon_sym_await, ACTIONS(690), 1, - anon_sym_RPAREN, - STATE(645), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1080), 1, sym_expression, - STATE(1311), 1, - sym_pattern, - STATE(1385), 1, + STATE(1204), 1, sym_list_splat, - STATE(1390), 1, - sym_parenthesized_list_splat, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, + STATE(1355), 1, + sym_pattern, + STATE(1657), 1, sym__collection_elements, - STATE(1689), 1, + STATE(1690), 1, sym__patterns, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(872), 2, + STATE(917), 2, sym_attribute, sym_subscript, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -24608,14 +24725,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24631,183 +24748,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [375] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(301), 1, - anon_sym_TILDE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(698), 1, - anon_sym_STAR, - ACTIONS(702), 1, - anon_sym_in, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(998), 1, - sym_pattern, - STATE(1013), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(584), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(848), 2, - sym_attribute, - sym_subscript, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(700), 15, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [486] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(301), 1, - anon_sym_TILDE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(698), 1, - anon_sym_STAR, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(710), 1, - anon_sym_in, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(998), 1, - sym_pattern, - STATE(1013), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(584), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(848), 2, - sym_attribute, - sym_subscript, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(708), 15, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [597] = 29, + [379] = 30, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24820,9 +24761,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(674), 1, - anon_sym_STAR, ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, @@ -24832,40 +24773,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_yield, ACTIONS(686), 1, anon_sym_await, - ACTIONS(712), 1, + ACTIONS(692), 1, anon_sym_RBRACK, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1079), 1, + STATE(1095), 1, sym_expression, - STATE(1311), 1, + STATE(1218), 1, + sym_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1675), 1, + STATE(1690), 1, sym__patterns, - STATE(1716), 1, + STATE(1692), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(872), 2, + STATE(917), 2, sym_attribute, sym_subscript, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, @@ -24878,14 +24820,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24901,7 +24843,183 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [720] = 30, + [504] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(301), 1, + anon_sym_TILDE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(700), 1, + anon_sym_STAR, + ACTIONS(704), 1, + anon_sym_in, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(594), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(842), 2, + sym_attribute, + sym_subscript, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + ACTIONS(702), 15, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [615] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(301), 1, + anon_sym_TILDE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(700), 1, + anon_sym_STAR, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(712), 1, + anon_sym_in, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(594), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(842), 2, + sym_attribute, + sym_subscript, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + ACTIONS(710), 15, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [726] = 30, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -24914,9 +25032,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(674), 1, - anon_sym_STAR, ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, @@ -24927,37 +25045,37 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(686), 1, anon_sym_await, ACTIONS(714), 1, - anon_sym_RPAREN, - STATE(645), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1080), 1, sym_expression, - STATE(1311), 1, + STATE(1204), 1, + sym_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, + STATE(1657), 1, sym__collection_elements, - STATE(1689), 1, + STATE(1690), 1, sym__patterns, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(872), 2, + STATE(917), 2, sym_attribute, sym_subscript, - STATE(1290), 2, - sym_list_splat, + STATE(1294), 2, sym_parenthesized_list_splat, + sym_yield, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -24973,14 +25091,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24996,7 +25114,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [845] = 29, + [851] = 31, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -25009,9 +25127,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(674), 1, - anon_sym_STAR, ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, @@ -25022,39 +25140,41 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(686), 1, anon_sym_await, ACTIONS(716), 1, - anon_sym_RBRACK, - STATE(645), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1079), 1, + STATE(1086), 1, sym_expression, - STATE(1311), 1, + STATE(1187), 1, + sym_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1675), 1, - sym__patterns, - STATE(1716), 1, + STATE(1432), 1, + sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, sym__collection_elements, + STATE(1742), 1, + sym__patterns, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(872), 2, + STATE(917), 2, sym_attribute, sym_subscript, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, @@ -25067,14 +25187,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -25090,18 +25210,16 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [968] = 29, + [978] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, ACTIONS(293), 1, anon_sym_LBRACE, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(684), 1, anon_sym_yield, @@ -25116,222 +25234,131 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(728), 1, anon_sym_RBRACE, ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1059), 1, - sym_expression, - STATE(1199), 1, - sym_pair, - STATE(1432), 1, - sym_dictionary_splat, - STATE(1638), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1090] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(722), 1, - anon_sym_LPAREN, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(730), 1, - anon_sym_not, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, - anon_sym_await, + anon_sym_lambda, ACTIONS(736), 1, - anon_sym_COMMA, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1047), 1, + sym_expression, + STATE(1203), 1, + sym_list_splat, + STATE(1727), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1207), 2, + sym_dictionary_splat, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1100] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(730), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, ACTIONS(738), 1, - anon_sym_RBRACE, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1055), 1, - sym_expression, - STATE(1214), 1, - sym_pair, - STATE(1426), 1, - sym_dictionary_splat, - STATE(1616), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1212] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(722), 1, - anon_sym_LPAREN, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, + anon_sym_COMMA, ACTIONS(740), 1, - anon_sym_COMMA, - ACTIONS(742), 1, anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(780), 1, + STATE(775), 1, sym_primary_expression, - STATE(1058), 1, + STATE(1063), 1, sym_expression, - STATE(1192), 1, - sym_pair, - STATE(1407), 1, - sym_dictionary_splat, - STATE(1708), 1, + STATE(1206), 1, + sym_list_splat, + STATE(1624), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + STATE(1236), 2, + sym_dictionary_splat, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, @@ -25344,14 +25371,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25369,18 +25396,16 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1334] = 29, + [1222] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, ACTIONS(293), 1, anon_sym_LBRACE, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(664), 1, + ACTIONS(642), 1, anon_sym_LBRACK, ACTIONS(684), 1, anon_sym_yield, @@ -25391,40 +25416,42 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(726), 1, anon_sym_STAR, ACTIONS(730), 1, - anon_sym_not, + anon_sym_STAR_STAR, ACTIONS(732), 1, - anon_sym_lambda, + anon_sym_not, ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, anon_sym_await, - ACTIONS(744), 1, + ACTIONS(742), 1, anon_sym_COMMA, - ACTIONS(746), 1, + ACTIONS(744), 1, anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(780), 1, + STATE(775), 1, sym_primary_expression, STATE(1041), 1, sym_expression, - STATE(1170), 1, - sym_pair, - STATE(1505), 1, - sym_dictionary_splat, - STATE(1684), 1, + STATE(1232), 1, + sym_list_splat, + STATE(1666), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + STATE(1194), 2, + sym_dictionary_splat, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, @@ -25437,14 +25464,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25462,50 +25489,59 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1456] = 26, + [1344] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(642), 1, anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(748), 1, - anon_sym_from, - ACTIONS(752), 1, + ACTIONS(730), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + ACTIONS(746), 1, + anon_sym_COMMA, + ACTIONS(748), 1, + anon_sym_RBRACE, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(775), 1, sym_primary_expression, - STATE(1144), 1, + STATE(1067), 1, sym_expression, - STATE(1186), 1, - sym_expression_list, + STATE(1228), 1, + sym_list_splat, + STATE(1688), 1, + sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1518), 2, - sym_list_splat, + STATE(1184), 2, sym_dictionary_splat, - ACTIONS(301), 3, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -25514,26 +25550,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(750), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(270), 6, + ACTIONS(720), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25551,7 +25582,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1571] = 26, + [1466] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -25566,32 +25597,32 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(754), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(758), 1, + ACTIONS(754), 1, anon_sym_from, + ACTIONS(756), 1, + anon_sym_STAR, ACTIONS(760), 1, anon_sym_not, ACTIONS(762), 1, anon_sym_lambda, ACTIONS(764), 1, anon_sym_await, - STATE(763), 1, + STATE(780), 1, sym_primary_expression, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, - STATE(1102), 1, + STATE(1107), 1, sym_expression, - STATE(1186), 1, + STATE(1237), 1, sym_expression_list, ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1568), 2, + STATE(1588), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(620), 3, @@ -25603,26 +25634,26 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(750), 4, + ACTIONS(758), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - ACTIONS(756), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25640,7 +25671,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1686] = 24, + [1581] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -25657,26 +25688,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(766), 1, + anon_sym_from, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1153), 1, + STATE(1175), 1, sym_expression, + STATE(1237), 1, + sym_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1262), 2, + STATE(1573), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(301), 3, @@ -25688,10 +25723,9 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(766), 5, + ACTIONS(758), 4, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, ACTIONS(270), 6, @@ -25701,14 +25735,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25726,7 +25760,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1796] = 24, + [1696] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -25743,26 +25777,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1153), 1, + STATE(1144), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1262), 2, + STATE(1291), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(301), 3, @@ -25774,7 +25808,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(768), 5, + ACTIONS(770), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -25787,14 +25821,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25812,7 +25846,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1906] = 24, + [1806] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -25829,26 +25863,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1153), 1, + STATE(1144), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1262), 2, + STATE(1291), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(301), 3, @@ -25860,7 +25894,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(766), 5, + ACTIONS(770), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -25873,14 +25907,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25898,11 +25932,95 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2016] = 25, + [1916] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1144), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1291), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(772), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2026] = 24, + ACTIONS(3), 1, + sym_comment, ACTIONS(616), 1, anon_sym_LPAREN, ACTIONS(622), 1, @@ -25913,9 +26031,7 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(754), 1, + ACTIONS(750), 1, sym_identifier, ACTIONS(760), 1, anon_sym_not, @@ -25923,50 +26039,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(764), 1, anon_sym_await, - ACTIONS(770), 1, - anon_sym_yield, - STATE(763), 1, + ACTIONS(774), 1, + anon_sym_STAR, + ACTIONS(776), 1, + anon_sym_STAR_STAR, + STATE(780), 1, sym_primary_expression, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, - STATE(1096), 1, + STATE(1120), 1, sym_expression, ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1568), 2, + STATE(1301), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1291), 3, - sym_expression_list, - sym_yield, - sym__f_expression, ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(772), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25984,76 +26103,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2127] = 26, + [2135] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, ACTIONS(293), 1, anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(772), 1, - sym_identifier, - ACTIONS(776), 1, - anon_sym_LPAREN, ACTIONS(778), 1, - anon_sym_RPAREN, - ACTIONS(780), 1, - anon_sym_COMMA, + anon_sym_LPAREN, ACTIONS(782), 1, - anon_sym_await, - STATE(645), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1075), 1, + STATE(1179), 1, sym_expression, - STATE(1440), 1, - sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1439), 3, + ACTIONS(780), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(774), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26071,76 +26188,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2240] = 26, + [2244] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, ACTIONS(293), 1, anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(608), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(772), 1, - sym_identifier, - ACTIONS(776), 1, + ACTIONS(778), 1, anon_sym_LPAREN, ACTIONS(782), 1, - anon_sym_await, - ACTIONS(784), 1, - anon_sym_RPAREN, - ACTIONS(786), 1, - anon_sym_COMMA, - STATE(645), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(704), 1, sym_primary_expression, - STATE(1064), 1, + STATE(1179), 1, sym_expression, - STATE(1402), 1, - sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1384), 3, + ACTIONS(780), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(774), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26173,23 +26288,23 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, ACTIONS(684), 1, anon_sym_yield, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(782), 1, anon_sym_STAR, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1193), 1, + STATE(1179), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -26198,11 +26313,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(790), 3, + ACTIONS(780), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1348), 3, + STATE(1354), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -26218,14 +26333,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26243,250 +26358,249 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2462] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(794), 1, - anon_sym_from, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1195), 1, - sym_expression, - STATE(1533), 1, - sym_expression_list, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(750), 2, - sym__newline, - anon_sym_SEMI, - STATE(1520), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2575] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(796), 1, - anon_sym_from, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1134), 1, - sym_expression, - STATE(1458), 1, - sym_expression_list, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(798), 2, - sym__newline, - anon_sym_SEMI, - STATE(1520), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2688] = 26, + [2462] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, anon_sym_STAR_STAR, ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, + ACTIONS(784), 1, + sym_identifier, ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(804), 1, + ACTIONS(790), 1, anon_sym_RPAREN, - ACTIONS(806), 1, + ACTIONS(792), 1, anon_sym_COMMA, - ACTIONS(808), 1, + ACTIONS(794), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1232), 1, + STATE(1087), 1, sym_expression, - STATE(1393), 1, + STATE(1212), 1, + sym_list_splat, + STATE(1490), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, + STATE(1486), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(786), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2577] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(796), 1, + anon_sym_from, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1210), 1, + sym_expression, + STATE(1569), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(758), 2, + sym__newline, + anon_sym_SEMI, + STATE(1590), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2690] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1387), 3, + ACTIONS(798), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(802), 6, + ACTIONS(270), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26504,7 +26618,271 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2801] = 25, + [2799] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(784), 1, + sym_identifier, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(794), 1, + anon_sym_await, + ACTIONS(800), 1, + anon_sym_RPAREN, + ACTIONS(802), 1, + anon_sym_COMMA, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1094), 1, + sym_expression, + STATE(1211), 1, + sym_list_splat, + STATE(1497), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1496), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(786), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2914] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(804), 1, + anon_sym_from, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1137), 1, + sym_expression, + STATE(1446), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(806), 2, + sym__newline, + anon_sym_SEMI, + STATE(1590), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3027] = 28, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1048), 1, + sym_expression, + STATE(1226), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1447), 1, + sym_yield, + STATE(1484), 1, + sym_with_item, + STATE(1654), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3144] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -26519,37 +26897,37 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(754), 1, + ACTIONS(750), 1, sym_identifier, + ACTIONS(756), 1, + anon_sym_STAR, ACTIONS(760), 1, anon_sym_not, ACTIONS(762), 1, anon_sym_lambda, ACTIONS(764), 1, anon_sym_await, - ACTIONS(770), 1, + ACTIONS(818), 1, anon_sym_yield, - STATE(763), 1, + STATE(780), 1, sym_primary_expression, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, - STATE(1096), 1, + STATE(1103), 1, sym_expression, ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1568), 2, + STATE(1588), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1269), 3, + STATE(1296), 3, sym_expression_list, sym_yield, sym__f_expression, @@ -26558,21 +26936,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26590,7 +26968,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2912] = 24, + [3255] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -26603,7 +26981,7 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - ACTIONS(754), 1, + ACTIONS(750), 1, sym_identifier, ACTIONS(760), 1, anon_sym_not, @@ -26611,22 +26989,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(764), 1, anon_sym_await, - ACTIONS(810), 1, + ACTIONS(774), 1, anon_sym_STAR, - ACTIONS(812), 1, + ACTIONS(776), 1, anon_sym_STAR_STAR, - STATE(763), 1, + STATE(780), 1, sym_primary_expression, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, - STATE(1154), 1, + STATE(1120), 1, sym_expression, ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1266), 2, + STATE(1301), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(620), 3, @@ -26638,26 +27016,26 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(768), 4, + ACTIONS(770), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - ACTIONS(756), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26675,347 +27053,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3021] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - ACTIONS(810), 1, - anon_sym_STAR, - ACTIONS(812), 1, - anon_sym_STAR_STAR, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1154), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - STATE(1266), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(766), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3130] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - ACTIONS(810), 1, - anon_sym_STAR, - ACTIONS(812), 1, - anon_sym_STAR_STAR, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1154), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - STATE(1266), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(766), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3239] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1193), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(814), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1348), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3348] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1193), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(814), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1348), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3457] = 26, + [3364] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -27034,121 +27072,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(772), 1, + ACTIONS(784), 1, sym_identifier, - ACTIONS(776), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(782), 1, + ACTIONS(794), 1, anon_sym_await, - ACTIONS(804), 1, - anon_sym_RPAREN, - ACTIONS(806), 1, - anon_sym_COMMA, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1087), 1, - sym_expression, - STATE(1393), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1387), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(774), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3570] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, ACTIONS(820), 1, anon_sym_RPAREN, ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, + anon_sym_COMMA, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1057), 1, + STATE(1093), 1, sym_expression, - STATE(1404), 1, - sym_yield, - STATE(1484), 1, - sym_with_item, - STATE(1687), 1, - sym__collection_elements, + STATE(1186), 1, + sym_list_splat, + STATE(1453), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, + STATE(1452), 2, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, @@ -27158,21 +27109,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(786), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27190,7 +27141,92 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3685] = 26, + [3479] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(774), 1, + anon_sym_STAR, + ACTIONS(776), 1, + anon_sym_STAR_STAR, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1120), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1301), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(770), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3588] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -27209,57 +27245,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(726), 1, anon_sym_STAR, - ACTIONS(772), 1, + ACTIONS(784), 1, sym_identifier, - ACTIONS(776), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(782), 1, + ACTIONS(794), 1, anon_sym_await, ACTIONS(824), 1, anon_sym_RPAREN, ACTIONS(826), 1, anon_sym_COMMA, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1071), 1, + STATE(1075), 1, sym_expression, - STATE(1416), 1, + STATE(1196), 1, + sym_list_splat, + STATE(1469), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, + STATE(1482), 2, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1415), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(774), 6, + ACTIONS(786), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27277,7 +27314,93 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3798] = 25, + [3703] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(818), 1, + anon_sym_yield, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1103), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1588), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1289), 3, + sym_expression_list, + sym_yield, + sym__f_expression, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3814] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -27290,29 +27413,31 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, + ACTIONS(778), 1, anon_sym_LPAREN, ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(828), 1, anon_sym_RPAREN, - STATE(645), 1, + ACTIONS(802), 1, + anon_sym_COMMA, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1258), 1, sym_expression, - STATE(1524), 1, + STATE(1497), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, @@ -27321,7 +27446,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1567), 3, + STATE(1468), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -27330,21 +27455,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(802), 6, + ACTIONS(830), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27362,495 +27487,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3908] = 23, + [3927] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1092), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1173), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(830), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(832), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 5, - anon_sym_lazy, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4014] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(836), 1, - anon_sym_from, - ACTIONS(838), 1, - anon_sym_STAR, - ACTIONS(840), 1, - anon_sym_STAR_STAR, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1212), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(768), 2, - sym__newline, - anon_sym_SEMI, - STATE(1317), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4124] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(838), 1, - anon_sym_STAR, - ACTIONS(840), 1, - anon_sym_STAR_STAR, - ACTIONS(842), 1, - anon_sym_from, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1212), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(766), 2, - sym__newline, - anon_sym_SEMI, - STATE(1317), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4234] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(838), 1, - anon_sym_STAR, - ACTIONS(840), 1, - anon_sym_STAR_STAR, - ACTIONS(842), 1, - anon_sym_from, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1212), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(766), 2, - sym__newline, - anon_sym_SEMI, - STATE(1317), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4344] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1092), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1173), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(844), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(846), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 5, - anon_sym_lazy, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4450] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(83), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(85), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(1206), 1, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, sym_expression, - STATE(1530), 1, - sym_expression_list, - ACTIONS(77), 2, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(848), 2, - sym__newline, - anon_sym_SEMI, - STATE(1520), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(49), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(830), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27868,7 +27572,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4560] = 26, + [4037] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -27885,206 +27589,1567 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(684), 1, anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, anon_sym_STAR, ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, anon_sym_await, - ACTIONS(850), 1, + ACTIONS(836), 1, anon_sym_RPAREN, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1068), 1, + STATE(1086), 1, sym_expression, - STATE(1479), 1, + STATE(1187), 1, + sym_list_splat, + STATE(1432), 1, sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4151] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(838), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4261] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(840), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4371] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(842), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4481] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(844), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4591] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(846), 1, + anon_sym_from, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1219), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(772), 2, + sym__newline, + anon_sym_SEMI, + STATE(1393), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4701] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(852), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4811] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(854), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4921] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(856), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5031] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(858), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5141] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(860), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(862), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5247] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + ACTIONS(866), 1, + anon_sym_from, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1219), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(770), 2, + sym__newline, + anon_sym_SEMI, + STATE(1393), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5357] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(868), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5467] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(870), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5577] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(872), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5687] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(874), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5797] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(876), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1080), 1, + sym_expression, + STATE(1204), 1, + sym_list_splat, + STATE(1657), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5909] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(878), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1070), 1, + sym_expression, + STATE(1217), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1461), 1, + sym_yield, + STATE(1721), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6023] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(880), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1095), 1, + sym_expression, + STATE(1218), 1, + sym_list_splat, STATE(1692), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4672] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(852), 1, - anon_sym_RBRACK, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1084), 1, - sym_expression, - STATE(1693), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, + STATE(1294), 2, sym_parenthesized_list_splat, sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4782] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(854), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - STATE(1385), 1, - sym_list_splat, - STATE(1390), 1, - sym_parenthesized_list_splat, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, @@ -28094,21 +29159,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28126,670 +29191,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4896] = 26, + [6135] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(682), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(820), 1, - anon_sym_RPAREN, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5008] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(856), 1, - anon_sym_RBRACK, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1079), 1, - sym_expression, - STATE(1716), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5118] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(858), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5228] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(860), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5338] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(862), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5448] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(864), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5558] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, ACTIONS(866), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, + anon_sym_from, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1280), 1, + STATE(779), 1, + sym_string, + STATE(1219), 1, sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, + ACTIONS(770), 2, + sym__newline, + anon_sym_SEMI, + STATE(1393), 2, sym_list_splat, sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5668] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(868), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(802), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28807,90 +29276,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5778] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1092), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1173), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(870), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(872), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 5, - anon_sym_lazy, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5884] = 27, + [6245] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -28907,229 +29293,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(684), 1, anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, anon_sym_STAR, ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, anon_sym_await, - ACTIONS(874), 1, - anon_sym_RPAREN, - STATE(645), 1, + ACTIONS(882), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1080), 1, sym_expression, - STATE(1385), 1, + STATE(1204), 1, sym_list_splat, - STATE(1390), 1, - sym_parenthesized_list_splat, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, + STATE(1657), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5998] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(876), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6108] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(878), 1, - anon_sym_RBRACK, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1079), 1, - sym_expression, - STATE(1716), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, + STATE(1294), 2, sym_parenthesized_list_splat, sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29147,7 +29362,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6218] = 27, + [6357] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -29164,706 +29379,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(684), 1, anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, anon_sym_STAR, ACTIONS(816), 1, - sym_identifier, - ACTIONS(820), 1, - anon_sym_RPAREN, - ACTIONS(822), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - STATE(1385), 1, - sym_list_splat, - STATE(1390), 1, - sym_parenthesized_list_splat, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6332] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1092), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1173), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(880), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(882), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 5, - anon_sym_lazy, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6438] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(884), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6548] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(886), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6658] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(888), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6768] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(890), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6878] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(892), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6988] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(854), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7100] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(894), 1, - anon_sym_RBRACK, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, STATE(1086), 1, sym_expression, - STATE(1626), 1, + STATE(1187), 1, + sym_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, @@ -29872,30 +29412,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29913,7 +29449,177 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7210] = 25, + [6471] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(884), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(886), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6577] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1187), 1, + sym_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6691] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -29926,29 +29632,284 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(800), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(808), 1, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(890), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6801] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(892), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6911] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(894), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7021] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, anon_sym_await, ACTIONS(896), 1, anon_sym_RPAREN, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1321), 1, sym_expression, - STATE(1524), 1, + STATE(1540), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, @@ -29957,7 +29918,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1567), 3, + STATE(1539), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -29966,21 +29927,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(802), 6, + ACTIONS(830), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29998,7 +29959,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7320] = 25, + [7131] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -30011,29 +29972,29 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(800), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(808), 1, + ACTIONS(832), 1, anon_sym_await, ACTIONS(898), 1, anon_sym_RPAREN, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1321), 1, sym_expression, - STATE(1524), 1, + STATE(1540), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, @@ -30042,7 +30003,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1567), 3, + STATE(1539), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -30051,21 +30012,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(802), 6, + ACTIONS(830), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30083,7 +30044,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7430] = 25, + [7241] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -30096,29 +30057,29 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(800), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(808), 1, + ACTIONS(832), 1, anon_sym_await, ACTIONS(900), 1, anon_sym_RPAREN, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1321), 1, sym_expression, - STATE(1524), 1, + STATE(1540), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, @@ -30127,7 +30088,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1567), 3, + STATE(1539), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -30136,21 +30097,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(802), 6, + ACTIONS(830), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30168,330 +30129,162 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7540] = 25, + [7351] = 27, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7465] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, anon_sym_await, ACTIONS(902), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7650] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(904), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7760] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(874), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - STATE(1395), 1, - sym_yield, - STATE(1680), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7872] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(894), 1, anon_sym_RBRACK, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1079), 1, + STATE(1092), 1, sym_expression, - STATE(1716), 1, + STATE(1230), 1, + sym_list_splat, + STATE(1658), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30509,7 +30302,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7982] = 26, + [7577] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -30518,151 +30311,63 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, ACTIONS(608), 1, anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, + ACTIONS(808), 1, sym_identifier, - ACTIONS(820), 1, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(904), 3, anon_sym_RPAREN, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1090), 1, - sym_expression, - STATE(1404), 1, - sym_yield, - STATE(1687), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8094] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(776), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(856), 1, anon_sym_RBRACK, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1085), 1, - sym_expression, - STATE(1698), 1, - sym__collection_elements, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1290), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + anon_sym_RBRACE, + ACTIONS(906), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 5, anon_sym_lazy, anon_sym_print, - anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30680,7 +30385,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8204] = 25, + [7683] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -30693,114 +30398,29 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(788), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(800), 1, + ACTIONS(828), 1, sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - ACTIONS(906), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8314] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, + ACTIONS(832), 1, anon_sym_await, ACTIONS(908), 1, anon_sym_RPAREN, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1280), 1, + STATE(1321), 1, sym_expression, - STATE(1524), 1, + STATE(1540), 1, sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, @@ -30809,7 +30429,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1567), 3, + STATE(1539), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -30818,21 +30438,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(802), 6, + ACTIONS(830), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30850,7 +30470,430 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8424] = 26, + [7793] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(910), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7903] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(912), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8013] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(914), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(916), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8119] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(918), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8229] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(920), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8339] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -30867,34 +30910,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(684), 1, anon_sym_yield, - ACTIONS(776), 1, + ACTIONS(788), 1, anon_sym_LPAREN, - ACTIONS(792), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, anon_sym_STAR, ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, anon_sym_await, - ACTIONS(854), 1, + ACTIONS(836), 1, anon_sym_RPAREN, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1070), 1, + STATE(1086), 1, sym_expression, - STATE(1430), 1, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1432), 1, sym_yield, - STATE(1618), 1, + STATE(1686), 1, sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1290), 2, - sym_list_splat, - sym_parenthesized_list_splat, ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, @@ -30904,21 +30948,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30936,72 +30980,75 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8536] = 24, + [8453] = 26, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(792), 1, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, anon_sym_STAR, - ACTIONS(910), 1, - anon_sym_COLON, - ACTIONS(912), 1, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(902), 1, anon_sym_RBRACK, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(705), 1, sym_primary_expression, - STATE(1236), 1, + STATE(1080), 1, sym_expression, + STATE(1204), 1, + sym_list_splat, + STATE(1657), 1, + sym__collection_elements, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1515), 3, - sym_list_splat, - sym__index_expression, - sym_slice, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31019,7 +31066,439 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8643] = 24, + [8565] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1235), 1, + sym_expression, + STATE(1591), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(922), 2, + sym__newline, + anon_sym_SEMI, + STATE(1590), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8675] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1074), 1, + sym_expression, + STATE(1226), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1447), 1, + sym_yield, + STATE(1654), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8789] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(876), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1090), 1, + sym_expression, + STATE(1227), 1, + sym_list_splat, + STATE(1669), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8901] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9015] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1084), 1, + sym_expression, + STATE(1229), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1464), 1, + sym_yield, + STATE(1655), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9129] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31034,25 +31513,25 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(792), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(910), 1, + ACTIONS(924), 1, anon_sym_COLON, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1236), 1, + STATE(1246), 1, sym_expression, - STATE(1696), 1, + STATE(1614), 1, sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, @@ -31061,7 +31540,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1394), 3, + STATE(1454), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -31077,14 +31556,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31102,90 +31581,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8750] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(800), 1, - sym_identifier, - ACTIONS(808), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1280), 1, - sym_expression, - STATE(1524), 1, - sym_parenthesized_list_splat, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1567), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(802), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8857] = 24, + [9236] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31200,26 +31596,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(792), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(910), 1, + ACTIONS(924), 1, anon_sym_COLON, - ACTIONS(914), 1, - anon_sym_RBRACK, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1236), 1, + STATE(1246), 1, sym_expression, + STATE(1694), 1, + sym_index_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, @@ -31227,7 +31623,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1515), 3, + STATE(1470), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -31243,14 +31639,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31268,7 +31664,339 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8964] = 18, + [9343] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(780), 1, + anon_sym_RPAREN, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1354), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9450] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 1, + anon_sym_COLON, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1246), 1, + sym_expression, + STATE(1660), 1, + sym_index_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1501), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9557] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 1, + anon_sym_COLON, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1246), 1, + sym_expression, + STATE(1735), 1, + sym_index_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1518), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9664] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 1, + anon_sym_COLON, + ACTIONS(926), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1246), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1535), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9771] = 18, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -31277,17 +32005,17 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(600), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(741), 1, + STATE(766), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, @@ -31300,7 +32028,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(916), 3, + ACTIONS(928), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -31310,7 +32038,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, @@ -31327,7 +32055,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31345,7 +32073,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9059] = 24, + [9866] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -31360,613 +32088,37 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(814), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1193), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1348), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9166] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(792), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(910), 1, + ACTIONS(924), 1, anon_sym_COLON, - STATE(645), 1, + ACTIONS(930), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1236), 1, - sym_expression, - STATE(1594), 1, - sym_index_expression_list, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1405), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9273] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(814), 1, - anon_sym_RPAREN, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1193), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1348), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9380] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(910), 1, - anon_sym_COLON, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1236), 1, - sym_expression, - STATE(1608), 1, - sym_index_expression_list, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1417), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9487] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(910), 1, - anon_sym_COLON, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1236), 1, - sym_expression, - STATE(1681), 1, - sym_index_expression_list, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1442), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9594] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(684), 1, - anon_sym_yield, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(788), 1, - anon_sym_LPAREN, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1193), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1348), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9698] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - ACTIONS(910), 1, - anon_sym_COLON, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1236), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1515), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9802] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, STATE(1246), 1, sym_expression, - STATE(1632), 1, - sym_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1518), 2, - sym_list_splat, - sym_dictionary_splat, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, + STATE(1535), 3, + sym_list_splat, + sym__index_expression, + sym_slice, ACTIONS(311), 4, sym_integer, sym_true, @@ -31979,14 +32131,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32004,71 +32156,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9908] = 24, + [9973] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, ACTIONS(293), 1, anon_sym_LBRACE, ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1241), 1, + STATE(1321), 1, sym_expression, - STATE(1649), 1, - sym_expression_list, + STATE(1540), 1, + sym_parenthesized_list_splat, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1518), 2, - sym_list_splat, - sym_dictionary_splat, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(830), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32086,7 +32239,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10014] = 24, + [10080] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -32101,30 +32254,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(85), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(594), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, + STATE(772), 1, sym_template_string, - STATE(775), 1, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, sym_string, - STATE(1207), 1, + STATE(1239), 1, sym_expression, - STATE(1571), 1, + STATE(1554), 1, sym_expression_list, ACTIONS(77), 2, sym_ellipsis, sym_float, - STATE(1520), 2, + STATE(1590), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(49), 3, @@ -32136,21 +32289,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32168,7 +32321,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10120] = 24, + [10186] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32185,28 +32338,28 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1238), 1, + STATE(1265), 1, sym_expression, - STATE(1621), 1, + STATE(1645), 1, sym_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1518), 2, + STATE(1573), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(301), 3, @@ -32225,14 +32378,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32250,7 +32403,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10226] = 24, + [10292] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32267,28 +32420,28 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1237), 1, + STATE(1279), 1, sym_expression, - STATE(1614), 1, + STATE(1687), 1, sym_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1518), 2, + STATE(1573), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(301), 3, @@ -32307,14 +32460,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32332,7 +32485,88 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10332] = 23, + [10398] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1354), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10502] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32349,28 +32583,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(918), 1, - anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1253), 1, sym_expression, + STATE(1636), 1, + sym_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1573), 2, + sym_list_splat, sym_dictionary_splat, - sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -32387,14 +32623,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32412,11 +32648,9 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10435] = 23, + [10608] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, ACTIONS(268), 1, sym_identifier, ACTIONS(293), 1, @@ -32429,192 +32663,35 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(920), 1, - anon_sym_RBRACE, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1313), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1569), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10538] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(922), 1, - anon_sym_RBRACE, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1313), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1569), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10641] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, ACTIONS(924), 1, - anon_sym_RBRACE, - STATE(645), 1, + anon_sym_COLON, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1246), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, - sym_dictionary_splat, - sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, + STATE(1535), 3, + sym_list_splat, + sym__index_expression, + sym_slice, ACTIONS(311), 4, sym_integer, sym_true, @@ -32627,14 +32704,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32652,7 +32729,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10744] = 23, + [10712] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32669,188 +32746,30 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(926), 1, - anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1250), 1, sym_expression, + STATE(1629), 1, + sym_expression_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10847] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(838), 1, - anon_sym_STAR, - ACTIONS(840), 1, - anon_sym_STAR_STAR, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1212), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - STATE(1317), 2, + STATE(1573), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10950] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(928), 1, - anon_sym_RBRACE, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1313), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1569), 2, - sym_dictionary_splat, - sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -32867,14 +32786,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32892,7 +32811,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11053] = 23, + [10818] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -32905,7 +32824,7 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - ACTIONS(754), 1, + ACTIONS(750), 1, sym_identifier, ACTIONS(760), 1, anon_sym_not, @@ -32913,22 +32832,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(764), 1, anon_sym_await, - ACTIONS(810), 1, + ACTIONS(774), 1, anon_sym_STAR, - ACTIONS(812), 1, + ACTIONS(776), 1, anon_sym_STAR_STAR, - STATE(763), 1, + STATE(780), 1, sym_primary_expression, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, - STATE(1154), 1, + STATE(1120), 1, sym_expression, ACTIONS(626), 2, sym_ellipsis, sym_float, - STATE(1266), 2, + STATE(1301), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(620), 3, @@ -32940,21 +32859,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(756), 6, + ACTIONS(752), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1104), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32972,7 +32891,87 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11156] = 23, + [10921] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1219), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + STATE(1393), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11024] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -32989,28 +32988,28 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(930), 1, - anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1144), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1291), 2, + sym_list_splat, sym_dictionary_splat, - sym_pair, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, @@ -33027,14 +33026,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33052,7 +33051,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11259] = 23, + [11127] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33069,26 +33068,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, ACTIONS(932), 1, anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1395), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1567), 2, sym_dictionary_splat, sym_pair, ACTIONS(301), 3, @@ -33107,14 +33106,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33132,7 +33131,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11362] = 23, + [11230] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33149,26 +33148,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, ACTIONS(934), 1, anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1395), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1567), 2, sym_dictionary_splat, sym_pair, ACTIONS(301), 3, @@ -33187,14 +33186,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33212,7 +33211,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11465] = 23, + [11333] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33229,26 +33228,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, ACTIONS(936), 1, anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1395), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1567), 2, sym_dictionary_splat, sym_pair, ACTIONS(301), 3, @@ -33267,14 +33266,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33292,7 +33291,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11568] = 23, + [11436] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33309,26 +33308,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, ACTIONS(938), 1, anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1395), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1567), 2, sym_dictionary_splat, sym_pair, ACTIONS(301), 3, @@ -33347,14 +33346,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33372,7 +33371,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11671] = 23, + [11539] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -33389,106 +33388,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(726), 1, - anon_sym_STAR, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1153), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1262), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11774] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(55), 1, - anon_sym_STAR_STAR, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, ACTIONS(940), 1, anon_sym_RBRACE, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1395), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1567), 2, sym_dictionary_splat, sym_pair, ACTIONS(301), 3, @@ -33507,14 +33426,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33532,1158 +33451,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11877] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1609), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11979] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1647), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12081] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(948), 1, - anon_sym_except, - ACTIONS(950), 1, - anon_sym_finally, - STATE(479), 1, - sym_else_clause, - STATE(520), 1, - sym_finally_clause, - STATE(333), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(944), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(942), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12155] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(956), 1, - anon_sym_STAR, - ACTIONS(958), 1, - anon_sym_COLON, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1210), 1, - sym_expression, - STATE(1562), 1, - sym_exception_list, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12257] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(968), 1, - anon_sym_except, - ACTIONS(970), 1, - anon_sym_finally, - STATE(478), 1, - sym_else_clause, - STATE(607), 1, - sym_finally_clause, - STATE(316), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(944), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(942), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12331] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(970), 1, - anon_sym_finally, - ACTIONS(972), 1, - anon_sym_except, - STATE(478), 1, - sym_else_clause, - STATE(607), 1, - sym_finally_clause, - STATE(317), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(944), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(942), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12405] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(976), 1, - anon_sym_COLON, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1256), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(974), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12505] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(950), 1, - anon_sym_finally, - ACTIONS(978), 1, - anon_sym_except, - STATE(479), 1, - sym_else_clause, - STATE(520), 1, - sym_finally_clause, - STATE(334), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(944), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(942), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12579] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(968), 1, - anon_sym_except, - ACTIONS(970), 1, - anon_sym_finally, - STATE(484), 1, - sym_else_clause, - STATE(569), 1, - sym_finally_clause, - STATE(316), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(980), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(982), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12653] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(948), 1, - anon_sym_except, - ACTIONS(950), 1, - anon_sym_finally, - STATE(466), 1, - sym_else_clause, - STATE(534), 1, - sym_finally_clause, - STATE(333), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(980), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(982), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12727] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1688), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12829] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1703), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12931] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(970), 1, - anon_sym_finally, - ACTIONS(972), 1, - anon_sym_except, - STATE(484), 1, - sym_else_clause, - STATE(569), 1, - sym_finally_clause, - STATE(317), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(980), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(982), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [13005] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - ACTIONS(984), 1, - anon_sym_STAR, - ACTIONS(986), 1, - anon_sym_COLON, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1203), 1, - sym_expression, - STATE(1548), 1, - sym_exception_list, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13107] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1634), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13209] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(950), 1, - anon_sym_finally, - ACTIONS(978), 1, - anon_sym_except, - STATE(466), 1, - sym_else_clause, - STATE(534), 1, - sym_finally_clause, - STATE(334), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(980), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(982), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [13283] = 22, + [11642] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(55), 1, @@ -34700,24 +33468,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + ACTIONS(942), 1, + anon_sym_RBRACE, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1313), 1, + STATE(1395), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1569), 2, + STATE(1567), 2, sym_dictionary_splat, sym_pair, ACTIONS(301), 3, @@ -34736,14 +33506,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34761,7 +33531,375 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13383] = 23, + [11745] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(944), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11848] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(946), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11951] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12051] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(954), 1, + anon_sym_except, + ACTIONS(956), 1, + anon_sym_finally, + STATE(480), 1, + sym_else_clause, + STATE(554), 1, + sym_finally_clause, + STATE(331), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(950), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12125] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(954), 1, + anon_sym_except, + ACTIONS(956), 1, + anon_sym_finally, + STATE(484), 1, + sym_else_clause, + STATE(572), 1, + sym_finally_clause, + STATE(331), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(960), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12199] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -34776,25 +33914,25 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(792), 1, + ACTIONS(782), 1, anon_sym_STAR, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1201), 1, + STATE(1231), 1, sym_expression, - STATE(1325), 1, + STATE(1333), 1, sym_type, - STATE(1344), 1, + STATE(1358), 1, sym_list_splat, ACTIONS(309), 2, sym_ellipsis, @@ -34815,14 +33953,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34840,7 +33978,165 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13485] = 22, + [12301] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(962), 1, + anon_sym_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1271), 1, + sym_expression, + STATE(1436), 1, + sym_type, + STATE(1529), 1, + sym_list_splat, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12403] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(968), 1, + anon_sym_STAR, + ACTIONS(970), 1, + anon_sym_COLON, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1177), 1, + sym_expression, + STATE(1594), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12505] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -34855,26 +34151,393 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(990), 1, - anon_sym_COLON, - STATE(645), 1, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1223), 1, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1643), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12607] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(980), 1, + anon_sym_except, + ACTIONS(982), 1, + anon_sym_finally, + STATE(481), 1, + sym_else_clause, + STATE(557), 1, + sym_finally_clause, + STATE(315), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(950), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12681] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1494), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12783] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1715), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12885] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(956), 1, + anon_sym_finally, + ACTIONS(984), 1, + anon_sym_except, + STATE(484), 1, + sym_else_clause, + STATE(572), 1, + sym_finally_clause, + STATE(324), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(960), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12959] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(988), 1, + anon_sym_COLON, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1264), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(988), 2, + ACTIONS(986), 2, anon_sym_COMMA, anon_sym_RBRACK, ACTIONS(301), 3, @@ -34893,14 +34556,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34918,68 +34581,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13585] = 23, + [13059] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(656), 1, anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(990), 1, + anon_sym_STAR, ACTIONS(992), 1, - anon_sym_STAR, - STATE(765), 1, + anon_sym_COLON, + STATE(789), 1, sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(790), 1, sym_string, - STATE(1243), 1, + STATE(791), 1, + sym_template_string, + STATE(1208), 1, sym_expression, - STATE(1392), 1, - sym_type, - STATE(1451), 1, - sym_list_splat, - ACTIONS(77), 2, + STATE(1547), 1, + sym_exception_list, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(49), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(79), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34997,7 +34660,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13687] = 23, + [13161] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(982), 1, + anon_sym_finally, + ACTIONS(994), 1, + anon_sym_except, + STATE(481), 1, + sym_else_clause, + STATE(557), 1, + sym_finally_clause, + STATE(314), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(950), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13235] = 22, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -35012,411 +34740,21 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, + ACTIONS(998), 1, + anon_sym_COLON, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1389), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13789] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1627), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13891] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1629), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13993] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1201), 1, - sym_expression, - STATE(1344), 1, - sym_list_splat, - STATE(1633), 1, - sym_type, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14095] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1240), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(994), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14192] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1276), 1, + STATE(1244), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -35440,14 +34778,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -35465,235 +34803,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14289] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1240), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(998), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14386] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1240), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(1000), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14483] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1240), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(1002), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14580] = 21, + [13335] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -35708,24 +34818,1306 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1630), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13437] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(982), 1, + anon_sym_finally, + ACTIONS(994), 1, + anon_sym_except, + STATE(476), 1, + sym_else_clause, + STATE(537), 1, + sym_finally_clause, + STATE(314), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(960), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13511] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(980), 1, + anon_sym_except, + ACTIONS(982), 1, + anon_sym_finally, + STATE(476), 1, + sym_else_clause, + STATE(537), 1, + sym_finally_clause, + STATE(315), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(960), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13585] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(956), 1, + anon_sym_finally, + ACTIONS(984), 1, + anon_sym_except, + STATE(480), 1, + sym_else_clause, + STATE(554), 1, + sym_finally_clause, + STATE(324), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(950), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13659] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1747), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13761] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1642), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13863] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1644), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13965] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1648), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14067] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1649), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14169] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1000), 1, + anon_sym_RPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1522), 1, + sym_with_item, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14268] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1478), 1, + sym_with_item, + STATE(1719), 1, + sym_with_clause, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14367] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1261), 1, + STATE(779), 1, + sym_string, + STATE(1278), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(1004), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14464] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(970), 1, + anon_sym_COLON, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1177), 1, + sym_expression, + STATE(1594), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14563] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1104), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(1004), 2, + STATE(1178), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14660] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1317), 1, + sym_expression, + STATE(1566), 1, + sym_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14759] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1478), 1, + sym_with_item, + STATE(1716), 1, + sym_with_clause, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14858] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1278), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(1006), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14955] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1320), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1008), 2, anon_sym_COMMA, anon_sym_RBRACK, ACTIONS(301), 3, @@ -35744,14 +36136,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -35769,314 +36161,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [14677] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1097), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1208), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14774] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - ACTIONS(1006), 1, - anon_sym_RPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, - sym_expression, - STATE(1481), 1, - sym_with_item, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14873] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - ACTIONS(986), 1, - anon_sym_COLON, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1203), 1, - sym_expression, - STATE(1548), 1, - sym_exception_list, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14972] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - ACTIONS(1008), 1, - anon_sym_LPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, - sym_expression, - STATE(1477), 1, - sym_with_item, - STATE(1651), 1, - sym_with_clause, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15071] = 21, + [15052] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -36091,19 +36176,19 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1285), 1, + STATE(1303), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, @@ -36127,14 +36212,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36152,7 +36237,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15168] = 21, + [15149] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -36167,24 +36252,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, - ACTIONS(816), 1, + ACTIONS(808), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(834), 1, + ACTIONS(864), 1, anon_sym_lambda, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, sym_primary_expression, - STATE(1092), 1, + STATE(1097), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1173), 2, + STATE(1174), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(606), 3, @@ -36196,21 +36281,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36228,372 +36313,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15265] = 21, + [15246] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - ACTIONS(834), 1, + ACTIONS(73), 1, anon_sym_lambda, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1092), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1165), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15362] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(816), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(834), 1, - anon_sym_lambda, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1092), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1117), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15459] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(958), 1, - anon_sym_COLON, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1210), 1, - sym_expression, - STATE(1562), 1, - sym_exception_list, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15558] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - ACTIONS(1012), 1, - anon_sym_RPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, - sym_expression, - STATE(1481), 1, - sym_with_item, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15657] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(792), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1282), 1, + STATE(779), 1, + sym_string, + STATE(1278), 1, sym_expression, - STATE(1549), 1, - sym_list_splat, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(1012), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(270), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36611,39 +36389,191 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15756] = 21, + [15343] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(305), 1, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(317), 1, + ACTIONS(85), 1, sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1258), 1, + STATE(779), 1, + sym_string, + STATE(1278), 1, sym_expression, - ACTIONS(309), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, ACTIONS(1014), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15440] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1135), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15537] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1318), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1016), 2, anon_sym_COMMA, anon_sym_RBRACK, ACTIONS(301), 3, @@ -36662,14 +36592,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36687,7 +36617,238 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15853] = 21, + [15634] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(992), 1, + anon_sym_COLON, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1208), 1, + sym_expression, + STATE(1547), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15733] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1478), 1, + sym_with_item, + STATE(1613), 1, + sym_with_clause, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15832] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1478), 1, + sym_with_item, + STATE(1622), 1, + sym_with_clause, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15931] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -36702,24 +36863,100 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(680), 1, anon_sym_not, - ACTIONS(816), 1, + ACTIONS(808), 1, sym_identifier, - ACTIONS(822), 1, + ACTIONS(816), 1, anon_sym_await, - ACTIONS(834), 1, + ACTIONS(864), 1, anon_sym_lambda, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(726), 1, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16028] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, sym_primary_expression, STATE(1099), 1, sym_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1172), 2, + STATE(1205), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(606), 3, @@ -36731,21 +36968,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(818), 6, + ACTIONS(810), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36763,1804 +37000,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15950] = 22, + [16125] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, + ACTIONS(650), 1, + anon_sym_LPAREN, ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, ACTIONS(964), 1, - anon_sym_await, - ACTIONS(1008), 1, - anon_sym_LPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, - sym_expression, - STATE(1477), 1, - sym_with_item, - STATE(1599), 1, - sym_with_clause, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16049] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, sym_identifier, - ACTIONS(960), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(962), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(964), 1, + ACTIONS(976), 1, anon_sym_await, - ACTIONS(1008), 1, - anon_sym_LPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, - sym_expression, - STATE(1477), 1, - sym_with_item, - STATE(1607), 1, - sym_with_clause, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16148] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - ACTIONS(1008), 1, - anon_sym_LPAREN, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, - sym_expression, - STATE(1477), 1, - sym_with_item, - STATE(1645), 1, - sym_with_clause, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16247] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1018), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1016), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16307] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(1024), 1, - anon_sym_elif, - STATE(364), 1, - aux_sym_if_statement_repeat1, - STATE(471), 1, - sym_elif_clause, - STATE(544), 1, - sym_else_clause, - ACTIONS(1020), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1022), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16377] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(1024), 1, - anon_sym_elif, - STATE(323), 1, - aux_sym_if_statement_repeat1, - STATE(471), 1, - sym_elif_clause, - STATE(548), 1, - sym_else_clause, - ACTIONS(1026), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1028), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16447] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(1034), 1, - anon_sym_elif, - STATE(374), 1, - aux_sym_if_statement_repeat1, - STATE(469), 1, - sym_elif_clause, - STATE(540), 1, - sym_else_clause, - ACTIONS(1032), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1030), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16517] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1174), 1, - sym_expression, - STATE(1555), 1, - sym_exception_list, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16613] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1205), 1, - sym_expression, - STATE(1481), 1, - sym_with_item, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16709] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1040), 1, - anon_sym_except, - STATE(316), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(1036), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1038), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16773] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1047), 1, - anon_sym_except, - STATE(317), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(1043), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1045), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16837] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1052), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1050), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16897] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1018), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1016), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16957] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1054), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1056), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17017] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1058), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1060), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17077] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1058), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1060), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17137] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(1024), 1, - anon_sym_elif, - STATE(364), 1, - aux_sym_if_statement_repeat1, - STATE(471), 1, - sym_elif_clause, - STATE(579), 1, - sym_else_clause, - ACTIONS(1032), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1030), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17207] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1064), 17, - anon_sym_as, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1062), 35, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1018), 1, anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [17267] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(1034), 1, - anon_sym_elif, - STATE(329), 1, - aux_sym_if_statement_repeat1, - STATE(469), 1, - sym_elif_clause, - STATE(516), 1, - sym_else_clause, - ACTIONS(1068), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1066), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17337] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1054), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1056), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17397] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1070), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1072), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17457] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1076), 17, - anon_sym_as, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1074), 35, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [17517] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(1034), 1, - anon_sym_elif, - STATE(374), 1, - aux_sym_if_statement_repeat1, - STATE(469), 1, - sym_elif_clause, - STATE(527), 1, - sym_else_clause, - ACTIONS(1020), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1022), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17587] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - ACTIONS(1034), 1, - anon_sym_elif, - STATE(313), 1, - aux_sym_if_statement_repeat1, - STATE(469), 1, - sym_elif_clause, - STATE(528), 1, - sym_else_clause, - ACTIONS(1026), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1028), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17657] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - ACTIONS(1024), 1, - anon_sym_elif, - STATE(311), 1, - aux_sym_if_statement_repeat1, - STATE(471), 1, - sym_elif_clause, - STATE(599), 1, - sym_else_clause, - ACTIONS(1068), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1066), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17727] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1070), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1072), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17787] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1078), 1, - anon_sym_except, - STATE(333), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(1036), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1038), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17851] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1081), 1, - anon_sym_except, - STATE(334), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(1043), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1045), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17915] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, + STATE(789), 1, sym_primary_expression, - STATE(793), 1, + STATE(790), 1, sym_string, - STATE(794), 1, + STATE(791), 1, sym_template_string, - STATE(1204), 1, + STATE(1192), 1, sym_expression, - STATE(1550), 1, - sym_exception_list, - ACTIONS(650), 2, + STATE(1522), 1, + sym_with_item, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(954), 6, + ACTIONS(966), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1211), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(970), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38578,283 +37077,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18011] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1052), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1050), 39, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [18071] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1155), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18164] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1225), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18257] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1147), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18350] = 20, + [16224] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -38869,17 +37092,3317 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1283), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1020), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16321] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1022), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1024), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16381] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1026), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1028), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16441] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1032), 17, + anon_sym_as, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 35, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [16501] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1038), 1, + anon_sym_except, + STATE(314), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(1034), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1036), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16565] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1045), 1, + anon_sym_except, + STATE(315), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(1041), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1043), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16629] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1026), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1028), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16689] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 17, + anon_sym_as, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1048), 35, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [16749] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1052), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16809] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(1060), 1, + anon_sym_elif, + STATE(392), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + STATE(566), 1, + sym_else_clause, + ACTIONS(1056), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1058), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16879] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(1066), 1, + anon_sym_elif, + STATE(321), 1, + aux_sym_if_statement_repeat1, + STATE(479), 1, + sym_elif_clause, + STATE(549), 1, + sym_else_clause, + ACTIONS(1064), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1062), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16949] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(1066), 1, + anon_sym_elif, + STATE(350), 1, + aux_sym_if_statement_repeat1, + STATE(479), 1, + sym_elif_clause, + STATE(563), 1, + sym_else_clause, + ACTIONS(1070), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1068), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17019] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(1066), 1, + anon_sym_elif, + STATE(337), 1, + aux_sym_if_statement_repeat1, + STATE(479), 1, + sym_elif_clause, + STATE(565), 1, + sym_else_clause, + ACTIONS(1074), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17089] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1193), 1, + sym_expression, + STATE(1564), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17185] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1076), 1, + anon_sym_except, + STATE(324), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(1034), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1036), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17249] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1022), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1024), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17309] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1079), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1081), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17369] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(1060), 1, + anon_sym_elif, + STATE(392), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + STATE(520), 1, + sym_else_clause, + ACTIONS(1070), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1068), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17439] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1052), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17499] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(1060), 1, + anon_sym_elif, + STATE(319), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + STATE(521), 1, + sym_else_clause, + ACTIONS(1074), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17569] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1079), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1081), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17629] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1083), 1, + anon_sym_except, + STATE(331), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(1041), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1043), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17693] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(1060), 1, + anon_sym_elif, + STATE(327), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + STATE(529), 1, + sym_else_clause, + ACTIONS(1064), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1062), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17763] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1086), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17823] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1086), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17883] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1209), 1, + sym_expression, + STATE(1551), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17979] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1522), 1, + sym_with_item, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18075] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(1066), 1, + anon_sym_elif, + STATE(350), 1, + aux_sym_if_statement_repeat1, + STATE(479), 1, + sym_elif_clause, + STATE(578), 1, + sym_else_clause, + ACTIONS(1056), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1058), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [18145] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1069), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18238] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1112), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18331] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1241), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18424] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1295), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18517] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1072), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18610] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(1090), 1, + sym_identifier, + ACTIONS(1094), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1109), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(470), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1092), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18705] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1268), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18798] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1386), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18891] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1123), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18984] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1096), 1, + anon_sym_for, + ACTIONS(1098), 1, + anon_sym_with, + ACTIONS(1100), 1, + anon_sym_def, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [19057] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1331), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19150] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1125), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19243] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1106), 1, + anon_sym_elif, + STATE(350), 1, + aux_sym_if_statement_repeat1, + STATE(479), 1, + sym_elif_clause, + ACTIONS(1104), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1102), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [19308] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1214), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19401] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1255), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19494] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1085), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19587] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1221), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19680] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1088), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19773] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1171), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19866] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1121), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19959] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1096), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20052] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1071), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20145] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, sym_primary_expression, STATE(1089), 1, sym_expression, @@ -38902,14 +40425,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38927,7 +40450,226 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18443] = 20, + [20238] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1267), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20331] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1297), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20424] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1298), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20517] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -38940,21 +40682,21 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(85), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(594), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, + STATE(772), 1, sym_template_string, - STATE(775), 1, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, sym_string, - STATE(1270), 1, + STATE(1313), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -38968,21 +40710,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39000,153 +40742,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18536] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1069), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18629] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18722] = 20, + [20610] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -39159,21 +40755,21 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(85), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(594), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, + STATE(772), 1, sym_template_string, - STATE(775), 1, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, sym_string, - STATE(1265), 1, + STATE(1118), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -39187,21 +40783,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39219,299 +40815,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18815] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1074), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18908] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1119), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19001] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1180), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19094] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1337), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19187] = 20, + [20703] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -39524,21 +40828,21 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(85), 1, sym__template_string_start, - ACTIONS(349), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(355), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(594), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, + STATE(772), 1, sym_template_string, - STATE(775), 1, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, sym_string, - STATE(1152), 1, + STATE(1316), 1, sym_expression, ACTIONS(77), 2, sym_ellipsis, @@ -39552,21 +40856,21 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(351), 6, + ACTIONS(363), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1156), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(920), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39584,7 +40888,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [19280] = 20, + [20796] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -39599,5538 +40903,17 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(752), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1263), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19373] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1275), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19466] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1182), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19559] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1268), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19652] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1364), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19745] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1339), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19838] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1194), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19931] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1197), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20024] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1198), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20117] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1240), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20210] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1309), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20303] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1200), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20396] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1178), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20489] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1185), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20582] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1088), 1, - anon_sym_elif, - STATE(364), 1, - aux_sym_if_statement_repeat1, - STATE(471), 1, - sym_elif_clause, - ACTIONS(1084), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1086), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [20647] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - ACTIONS(1091), 1, - sym_identifier, - ACTIONS(1095), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(585), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1093), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20742] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1120), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20835] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1121), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20928] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1122), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21021] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1123), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21114] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1124), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21207] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1078), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21300] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1229), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21393] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1125), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21486] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1097), 1, - anon_sym_elif, - STATE(374), 1, - aux_sym_if_statement_repeat1, - STATE(469), 1, - sym_elif_clause, - ACTIONS(1084), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1086), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [21551] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1143), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21644] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1031), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21737] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1366), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21830] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1274), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21923] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1244), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22016] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1145), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22109] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1067), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22202] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1126), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22295] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1151), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22388] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1142), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22481] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1157), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22574] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1072), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22667] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1196), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22760] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1073), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22853] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1187), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22946] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1189), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23039] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1141), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23132] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1076), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23225] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1063), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23318] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1184), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23411] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1082), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23504] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1312), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23597] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1031), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23690] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1131), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23783] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1277), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23876] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1167), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23969] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1106), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24062] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24155] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1216), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24248] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1306), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24341] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(680), 1, - anon_sym_not, - ACTIONS(682), 1, - anon_sym_lambda, - ACTIONS(816), 1, - sym_identifier, - ACTIONS(822), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(726), 1, - sym_primary_expression, - STATE(1065), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(818), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24434] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1235), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24527] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1080), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24620] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1158), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24713] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1159), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24806] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1160), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24899] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1161), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24992] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1162), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25085] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1163), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25178] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1164), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25271] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(718), 1, - sym_identifier, - ACTIONS(730), 1, - anon_sym_not, - ACTIONS(732), 1, - anon_sym_lambda, - ACTIONS(734), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(780), 1, - sym_primary_expression, - STATE(1031), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(720), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25364] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(754), 1, - sym_identifier, - ACTIONS(760), 1, - anon_sym_not, - ACTIONS(762), 1, - anon_sym_lambda, - ACTIONS(764), 1, - anon_sym_await, - STATE(763), 1, - sym_primary_expression, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(1188), 1, - sym_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(756), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1104), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25457] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1336), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25550] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1260), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25643] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1345), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25736] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1369), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25829] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1349), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25922] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1351), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26015] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1352), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26108] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1343), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26201] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1327), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26294] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, STATE(1081), 1, sym_expression, @@ -45153,14 +40936,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1032), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -45178,80 +40961,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26387] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1146), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26480] = 20, + [20889] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(268), 1, @@ -45266,2804 +40976,6643 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1076), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20982] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1115), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21075] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1152), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21168] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1220), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21261] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1038), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21354] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1182), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21447] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1159), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21540] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1189), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21633] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1190), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21726] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1201), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21819] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1188), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21912] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1197), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22005] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1162), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22098] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1161), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22191] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1165), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22284] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1167), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22377] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1168), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22470] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1170), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22563] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1326), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22656] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1247), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22749] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1169), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22842] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1233), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22935] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1238), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23028] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1038), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23121] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1109), 1, + anon_sym_elif, + STATE(392), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + ACTIONS(1104), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1102), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23186] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1278), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23279] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1350), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23372] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1098), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23465] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1129), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23558] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1109), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23651] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1224), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23744] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1145), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23837] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1225), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23930] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(1112), 1, + sym_identifier, + ACTIONS(1116), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1098), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(470), 2, + sym_attribute, + sym_subscript, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1114), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24025] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1292), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24118] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1347), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24211] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1284), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24304] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1363), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24397] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1091), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24490] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1319), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24583] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1153), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24676] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1139), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24769] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1154), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24862] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1155), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24955] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1156), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25048] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1157), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25141] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1163), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25234] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1166), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25327] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1038), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25420] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1266), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25513] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1353), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25606] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1077), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25699] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1361), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25792] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1199), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25885] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1387), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25978] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1367), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26071] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1370), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26164] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1371), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26257] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1073), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26350] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1359), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26443] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1083), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26536] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1325), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26629] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1082), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26722] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1376), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26815] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1365), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26908] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1147), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27001] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1261), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27094] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1377), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27187] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1378), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27280] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1118), 1, + anon_sym_for, + ACTIONS(1120), 1, + anon_sym_with, + ACTIONS(1122), 1, + anon_sym_def, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [27353] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1164), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27446] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1126), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1124), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27504] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1132), 1, + anon_sym_case, + STATE(444), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1130), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1128), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27566] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1134), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1136), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27624] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1138), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1140), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27682] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1142), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1144), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27740] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1150), 1, + anon_sym_case, + STATE(444), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1148), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1146), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27802] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1153), 1, + anon_sym_case, + STATE(445), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1148), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1146), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27864] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1156), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1158), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27922] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1160), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1162), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27980] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1166), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1164), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28038] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1166), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1164), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28096] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1168), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1170), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28154] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1126), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1124), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28212] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1172), 1, + sym__string_start, + STATE(1411), 1, + sym_string, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [28282] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1174), 1, + anon_sym_import, + ACTIONS(1176), 1, + anon_sym_from, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [28352] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1160), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1162), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28410] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1178), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1180), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28468] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1134), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1136), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28526] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1182), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1184), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28584] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1182), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1184), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28642] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1178), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1180), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28700] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1138), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1140), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28758] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1186), 1, + anon_sym_case, + STATE(445), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1130), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1128), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28820] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1142), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1144), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28878] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1156), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1158), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28936] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1168), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1170), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28994] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1188), 1, + anon_sym_RPAREN, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, sym_primary_expression, STATE(1355), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26573] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(952), 1, - sym_identifier, - ACTIONS(960), 1, - anon_sym_not, - ACTIONS(962), 1, - anon_sym_lambda, - ACTIONS(964), 1, - anon_sym_await, - STATE(792), 1, - sym_primary_expression, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(1253), 1, - sym_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(954), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1211), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26666] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(277), 1, - anon_sym_COMMA, - ACTIONS(283), 1, - anon_sym_COLON_EQ, - ACTIONS(1100), 1, - anon_sym_for, - ACTIONS(1102), 1, - anon_sym_with, - ACTIONS(1104), 1, - anon_sym_def, - ACTIONS(285), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(307), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(272), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [26739] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1356), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26832] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 1, - sym_identifier, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - anon_sym_lambda, - ACTIONS(313), 1, - anon_sym_await, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(752), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1357), 1, - sym_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(270), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1032), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26925] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(277), 1, - anon_sym_COMMA, - ACTIONS(283), 1, - anon_sym_COLON_EQ, - ACTIONS(1106), 1, - anon_sym_for, - ACTIONS(1108), 1, - anon_sym_with, - ACTIONS(1110), 1, - anon_sym_def, - ACTIONS(285), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(307), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(272), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [26998] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(71), 1, - anon_sym_not, - ACTIONS(73), 1, - anon_sym_lambda, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(349), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_await, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - STATE(765), 1, - sym_primary_expression, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(1242), 1, - sym_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(351), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1156), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [27091] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1114), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1112), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27149] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1120), 1, - anon_sym_case, - STATE(436), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1118), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1116), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27211] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1127), 1, - anon_sym_case, - STATE(458), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1123), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1125), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27273] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1129), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1131), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27331] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1133), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1135), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27389] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1139), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1137), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27447] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1129), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1131), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27505] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1141), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1143), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27563] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1133), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1135), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27621] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1147), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1145), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27679] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1149), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1151), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27737] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1155), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1153), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27795] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1159), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1157), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27853] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1155), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1153), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27911] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1159), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1157), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27969] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(277), 1, - anon_sym_COMMA, - ACTIONS(283), 1, - anon_sym_COLON_EQ, - ACTIONS(1161), 1, - anon_sym_import, - ACTIONS(1163), 1, - anon_sym_from, - ACTIONS(285), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(307), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(272), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [28039] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1165), 1, - anon_sym_case, - STATE(436), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1123), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1125), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28101] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(277), 1, - anon_sym_COMMA, - ACTIONS(283), 1, - anon_sym_COLON_EQ, - ACTIONS(1167), 1, - sym__string_start, - STATE(1465), 1, - sym_string, - ACTIONS(285), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(307), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(272), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [28171] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1141), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1143), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28229] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1147), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1145), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28287] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1149), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1151), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28345] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1114), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1112), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28403] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1169), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1171), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28461] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1173), 1, - anon_sym_case, - STATE(458), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1118), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1116), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28523] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1169), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1171), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28581] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1139), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1137), 37, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28639] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1176), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1178), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28696] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - STATE(600), 1, - sym_else_clause, - ACTIONS(1180), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1182), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28757] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(519), 1, - sym_else_clause, - ACTIONS(1186), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1184), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28818] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - STATE(583), 1, - sym_else_clause, - ACTIONS(1188), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1190), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28879] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - STATE(593), 1, - sym_else_clause, - ACTIONS(1192), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1194), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28940] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(950), 1, - anon_sym_finally, - STATE(546), 1, - sym_finally_clause, - ACTIONS(1198), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1196), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29001] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1200), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1202), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29058] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1176), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1178), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29115] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1206), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1204), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29172] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(560), 1, - sym_else_clause, - ACTIONS(1180), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1182), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29233] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1206), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1204), 36, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29290] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(551), 1, - sym_else_clause, - ACTIONS(1192), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1194), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29351] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - STATE(596), 1, - sym_else_clause, - ACTIONS(1208), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1210), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29412] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(966), 1, - anon_sym_else, - STATE(563), 1, - sym_else_clause, - ACTIONS(1212), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1214), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29473] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(531), 1, - sym_else_clause, - ACTIONS(1212), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1214), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29534] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1216), 1, - anon_sym_RPAREN, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(1013), 1, - sym_primary_expression, - STATE(1311), 1, sym_pattern, - STATE(1689), 1, + STATE(1742), 1, sym__patterns, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(848), 2, + STATE(842), 2, sym_attribute, sym_subscript, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -48072,14 +47621,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(694), 6, + ACTIONS(696), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -48095,14 +47644,140 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [29629] = 5, + [29089] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1192), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [29182] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1194), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1196), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, anon_sym_else, - STATE(606), 1, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29239] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + STATE(516), 1, sym_else_clause, - ACTIONS(1186), 13, + ACTIONS(1198), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -48116,7 +47791,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1184), 34, + ACTIONS(1200), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48151,126 +47826,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29690] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(970), 1, - anon_sym_finally, - STATE(568), 1, - sym_finally_clause, - ACTIONS(1220), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1222), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29751] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(950), 1, - anon_sym_finally, - STATE(533), 1, - sym_finally_clause, - ACTIONS(1220), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1222), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29812] = 8, + [29300] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(277), 1, anon_sym_COMMA, ACTIONS(283), 1, anon_sym_COLON_EQ, - ACTIONS(1224), 1, + ACTIONS(1202), 1, sym_identifier, ACTIONS(285), 2, anon_sym_COLON, @@ -48322,13 +47885,142 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, anon_sym_is, - [29879] = 3, + [29367] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1200), 13, - sym__dedent, + ACTIONS(1213), 1, + anon_sym_EQ, + ACTIONS(1206), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1211), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1209), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 16, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [29430] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1215), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [29523] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1217), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48339,7 +48031,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1202), 36, + ACTIONS(1219), 36, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48376,142 +48068,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29936] = 21, + [29580] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(998), 1, - sym_pattern, - STATE(1013), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(1226), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [30029] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(946), 1, - anon_sym_else, - STATE(555), 1, - sym_else_clause, - ACTIONS(1208), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1210), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30090] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(970), 1, - anon_sym_finally, - STATE(587), 1, - sym_finally_clause, - ACTIONS(1198), 13, + ACTIONS(1221), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -48525,7 +48085,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1196), 34, + ACTIONS(1223), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29637] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + STATE(600), 1, + sym_else_clause, + ACTIONS(1225), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1227), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48560,86 +48178,126 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30151] = 21, + [29698] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, + ACTIONS(978), 1, + anon_sym_else, + STATE(538), 1, + sym_else_clause, + ACTIONS(1229), 13, sym__string_start, - ACTIONS(317), 1, sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, + ts_builtin_sym_end, anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(998), 1, - sym_pattern, - STATE(1013), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(1228), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_TILDE, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, + sym_ellipsis, + sym_float, + ACTIONS(1231), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, sym_integer, + sym_identifier, + anon_sym_await, sym_true, sym_false, sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [30244] = 5, + [29759] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(946), 1, + ACTIONS(982), 1, + anon_sym_finally, + STATE(610), 1, + sym_finally_clause, + ACTIONS(1233), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1235), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29820] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, anon_sym_else, - STATE(543), 1, + STATE(552), 1, sym_else_clause, - ACTIONS(1188), 13, + ACTIONS(1229), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -48653,7 +48311,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1190), 34, + ACTIONS(1231), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48688,66 +48346,403 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30305] = 7, + [29881] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1232), 1, - anon_sym_COMMA, - ACTIONS(1237), 1, - anon_sym_COLON_EQ, - ACTIONS(1239), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(1241), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1235), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + ACTIONS(978), 1, + anon_sym_else, + STATE(530), 1, + sym_else_clause, + ACTIONS(1237), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1239), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [30369] = 3, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29942] = 3, ACTIONS(3), 1, sym_comment, + ACTIONS(1221), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1223), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29999] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(956), 1, + anon_sym_finally, + STATE(571), 1, + sym_finally_clause, + ACTIONS(1243), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1241), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30060] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(982), 1, + anon_sym_finally, + STATE(535), 1, + sym_finally_clause, + ACTIONS(1243), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1241), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30121] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + STATE(581), 1, + sym_else_clause, + ACTIONS(1225), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1227), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30182] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + STATE(528), 1, + sym_else_clause, + ACTIONS(1245), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1247), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30243] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(956), 1, + anon_sym_finally, + STATE(584), 1, + sym_finally_clause, + ACTIONS(1233), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1235), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30304] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + STATE(588), 1, + sym_else_clause, ACTIONS(1245), 13, sym__dedent, sym__string_start, @@ -48762,7 +48757,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1243), 35, + ACTIONS(1247), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48782,7 +48777,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_try, anon_sym_with, anon_sym_match, - anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -48798,10 +48792,234 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30425] = 3, + [30365] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1247), 13, + ACTIONS(952), 1, + anon_sym_else, + STATE(592), 1, + sym_else_clause, + ACTIONS(1251), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1249), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30426] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1194), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1196), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30483] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + STATE(597), 1, + sym_else_clause, + ACTIONS(1198), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1200), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30544] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1217), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1219), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30601] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + STATE(553), 1, + sym_else_clause, + ACTIONS(1251), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -48815,7 +49033,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1249), 35, + ACTIONS(1249), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -48835,7 +49053,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_try, anon_sym_with, anon_sym_match, - anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -48851,19 +49068,101 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30481] = 7, + [30662] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(580), 1, - anon_sym_COLON_EQ, - ACTIONS(582), 2, - anon_sym_COLON, + ACTIONS(952), 1, + anon_sym_else, + STATE(569), 1, + sym_else_clause, + ACTIONS(1237), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1239), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30723] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, anon_sym_EQ, - ACTIONS(577), 3, - anon_sym_RPAREN, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1048), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(588), 13, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -48877,452 +49176,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(303), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(272), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - [30545] = 3, + anon_sym_SEMI, + [30779] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1253), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1251), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30601] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(1013), 1, - sym_primary_expression, - STATE(1478), 1, - sym_pattern, - STATE(1648), 1, - sym_pattern_list, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [30693] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(1013), 1, - sym_primary_expression, - STATE(1411), 1, - sym_pattern, - STATE(1612), 1, - sym_pattern_list, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [30785] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1258), 1, - anon_sym_COLON_EQ, - ACTIONS(1260), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(1255), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1262), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1230), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(1235), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - [30849] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1247), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1249), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30905] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1064), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1062), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - anon_sym_SEMI, - [30961] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1266), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1264), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31017] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1268), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -49336,113 +49194,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1270), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31073] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1076), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1074), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - anon_sym_SEMI, - [31129] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1266), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1264), 35, + ACTIONS(1255), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49478,131 +49230,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31185] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(1013), 1, - sym_primary_expression, - STATE(1457), 1, - sym_pattern, - STATE(1595), 1, - sym_pattern_list, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [31277] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1274), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1272), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31333] = 7, + [30835] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(277), 1, @@ -49659,7 +49287,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [31397] = 21, + [30899] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -49668,37 +49296,37 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(692), 1, + ACTIONS(694), 1, sym_identifier, - ACTIONS(696), 1, + ACTIONS(698), 1, anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, anon_sym_await, - ACTIONS(1218), 1, + ACTIONS(1190), 1, anon_sym_STAR, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(1013), 1, + STATE(1017), 1, sym_primary_expression, - STATE(1469), 1, + STATE(1504), 1, sym_pattern, - STATE(1650), 1, + STATE(1674), 1, sym_pattern_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(848), 2, + STATE(842), 2, sym_attribute, sym_subscript, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -49707,14 +49335,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(694), 6, + ACTIONS(696), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -49730,10 +49358,10 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31489] = 3, + [30991] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1245), 13, + ACTIONS(1257), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -49747,7 +49375,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1243), 35, + ACTIONS(1259), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49783,10 +49411,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31545] = 3, + [31047] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1268), 13, + ACTIONS(1253), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -49800,60 +49428,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1270), 35, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31601] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1253), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1251), 35, + ACTIONS(1255), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49889,10 +49464,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31657] = 3, + [31103] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1274), 13, + ACTIONS(1261), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -49906,7 +49481,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1272), 35, + ACTIONS(1263), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -49942,7 +49517,117 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31713] = 21, + [31159] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1265), 1, + anon_sym_COMMA, + ACTIONS(1268), 1, + anon_sym_COLON_EQ, + ACTIONS(1270), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(1272), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1209), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [31223] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1276), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1274), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31279] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -49951,37 +49636,37 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(692), 1, + ACTIONS(694), 1, sym_identifier, - ACTIONS(696), 1, + ACTIONS(698), 1, anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, anon_sym_await, - ACTIONS(1218), 1, + ACTIONS(1190), 1, anon_sym_STAR, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(1013), 1, + STATE(1017), 1, sym_primary_expression, - STATE(1508), 1, + STATE(1515), 1, sym_pattern, - STATE(1727), 1, + STATE(1750), 1, sym_pattern_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(848), 2, + STATE(842), 2, sym_attribute, sym_subscript, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -49990,14 +49675,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(694), 6, + ACTIONS(696), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -50013,7 +49698,219 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31805] = 21, + [31371] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1280), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1278), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31427] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1032), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_SEMI, + [31483] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1257), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1259), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31539] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1261), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1263), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31595] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -50022,37 +49919,37 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(692), 1, + ACTIONS(694), 1, sym_identifier, - ACTIONS(696), 1, + ACTIONS(698), 1, anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, anon_sym_await, - ACTIONS(1218), 1, + ACTIONS(1190), 1, anon_sym_STAR, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(1013), 1, + STATE(1017), 1, sym_primary_expression, - STATE(1509), 1, + STATE(1531), 1, sym_pattern, - STATE(1730), 1, + STATE(1751), 1, sym_pattern_list, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(848), 2, + STATE(842), 2, sym_attribute, sym_subscript, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1001), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -50061,14 +49958,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(694), 6, + ACTIONS(696), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -50084,10 +49981,10 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31897] = 3, + [31687] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1278), 13, + ACTIONS(1284), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -50101,7 +49998,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1276), 34, + ACTIONS(1282), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50121,6 +50018,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_try, anon_sym_with, anon_sym_match, + anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -50136,114 +50034,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31952] = 3, + [31743] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1282), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1280), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32007] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1286), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1284), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32062] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1288), 13, + ACTIONS(1284), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -50257,7 +50051,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1290), 34, + ACTIONS(1282), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50277,6 +50071,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_try, anon_sym_with, anon_sym_match, + anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -50292,10 +50087,152 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32117] = 3, + [31799] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1292), 13, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1405), 1, + sym_pattern, + STATE(1718), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31891] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1532), 1, + sym_pattern, + STATE(1678), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31983] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1276), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -50309,7 +50246,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1294), 34, + ACTIONS(1274), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50329,6 +50266,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_try, anon_sym_with, anon_sym_match, + anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -50344,62 +50282,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32172] = 3, + [32039] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1298), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1296), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32227] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1300), 13, + ACTIONS(1280), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -50413,7 +50299,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1302), 34, + ACTIONS(1278), 35, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50431,6 +50317,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_while, anon_sym_try, + anon_sym_finally, anon_sym_with, anon_sym_match, anon_sym_def, @@ -50448,319 +50335,78 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32282] = 3, + [32095] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1306), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1530), 1, + sym_pattern, + STATE(1748), 1, + sym_pattern_list, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(1304), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, sym_integer, - sym_identifier, - anon_sym_await, sym_true, sym_false, sym_none, - [32337] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1310), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1308), 34, + ACTIONS(696), 6, anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, anon_sym_exec, anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32392] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1220), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1222), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32447] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(980), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(982), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32502] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1314), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1312), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32557] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1318), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1316), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32612] = 3, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [32187] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1288), 13, @@ -50777,7 +50423,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1290), 34, + ACTIONS(1286), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50812,13 +50458,68 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32667] = 3, + [32242] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1292), 13, - sym__dedent, + ACTIONS(1292), 1, + anon_sym_COMMA, + ACTIONS(1299), 1, + anon_sym_EQ, + ACTIONS(1297), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1295), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1290), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [32303] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1301), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -50829,7 +50530,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1294), 34, + ACTIONS(1303), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50864,13 +50565,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32722] = 3, + [32358] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1300), 13, - sym__dedent, + ACTIONS(1305), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -50881,7 +50582,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1302), 34, + ACTIONS(1307), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50916,13 +50617,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32777] = 3, + [32413] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1322), 13, - sym__dedent, + ACTIONS(1309), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -50933,7 +50634,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1320), 34, + ACTIONS(1311), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -50968,13 +50669,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32832] = 3, + [32468] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1326), 13, - sym__dedent, + ACTIONS(1313), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -50985,7 +50686,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1324), 34, + ACTIONS(1315), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51020,13 +50721,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32887] = 3, + [32523] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1330), 13, - sym__dedent, + ACTIONS(1317), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51037,7 +50738,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1328), 34, + ACTIONS(1319), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51072,13 +50773,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32942] = 3, + [32578] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1334), 13, - sym__dedent, + ACTIONS(1321), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51089,7 +50790,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1332), 34, + ACTIONS(1323), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51124,13 +50825,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32997] = 3, + [32633] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1338), 13, - sym__dedent, + ACTIONS(1325), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51141,7 +50842,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1336), 34, + ACTIONS(1327), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51176,13 +50877,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33052] = 3, + [32688] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1342), 13, - sym__dedent, + ACTIONS(1329), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51193,7 +50894,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1340), 34, + ACTIONS(1331), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51228,13 +50929,68 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33107] = 3, + [32743] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1346), 13, - sym__dedent, + ACTIONS(1335), 1, + anon_sym_COMMA, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1340), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1338), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [32804] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1344), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51245,7 +51001,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1344), 34, + ACTIONS(1346), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51280,13 +51036,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33162] = 3, + [32859] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1198), 13, - sym__dedent, + ACTIONS(1348), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51297,7 +51053,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1196), 34, + ACTIONS(1350), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51332,13 +51088,82 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33217] = 3, + [32914] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1350), 13, - sym__dedent, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1524), 1, + sym_pattern, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [33003] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1352), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51349,7 +51174,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1348), 34, + ACTIONS(1354), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51384,13 +51209,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33272] = 3, + [33058] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1354), 13, - sym__dedent, + ACTIONS(1356), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51401,7 +51226,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1352), 34, + ACTIONS(1358), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51436,13 +51261,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33327] = 3, + [33113] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1358), 13, - sym__dedent, + ACTIONS(1360), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51453,7 +51278,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1356), 34, + ACTIONS(1362), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51488,13 +51313,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33382] = 3, + [33168] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1362), 13, - sym__dedent, + ACTIONS(1364), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51505,7 +51330,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1360), 34, + ACTIONS(1366), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51540,13 +51365,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33437] = 3, + [33223] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1366), 13, - sym__dedent, + ACTIONS(1368), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51557,7 +51382,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1364), 34, + ACTIONS(1370), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51592,13 +51417,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33492] = 3, + [33278] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1370), 13, - sym__dedent, + ACTIONS(950), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -51609,7 +51434,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1368), 34, + ACTIONS(948), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51644,7 +51469,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33547] = 3, + [33333] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1374), 13, @@ -51696,114 +51521,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33602] = 3, + [33388] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1378), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1376), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33657] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1382), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1380), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33712] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1322), 13, + ACTIONS(1376), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -51817,7 +51538,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1320), 34, + ACTIONS(1378), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -51852,166 +51573,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33767] = 3, + [33443] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1386), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1384), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33822] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1390), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1388), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33877] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1394), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1392), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33932] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1326), 13, + ACTIONS(1380), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -52025,7 +51590,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1324), 34, + ACTIONS(1382), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52060,10 +51625,166 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33987] = 3, + [33498] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1398), 13, + ACTIONS(1233), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1235), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33553] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1384), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1386), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33608] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1388), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1390), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33663] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(950), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52077,7 +51798,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1396), 34, + ACTIONS(948), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52112,7 +51833,111 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34042] = 3, + [33718] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1392), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1394), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33773] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1396), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1398), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33828] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1400), 13, @@ -52164,7 +51989,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34097] = 3, + [33883] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1406), 13, @@ -52216,59 +52041,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34152] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1330), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1328), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34207] = 3, + [33938] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1410), 13, @@ -52320,7 +52093,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34262] = 3, + [33993] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1414), 13, @@ -52372,62 +52145,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34317] = 3, + [34048] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1418), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1416), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34372] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1334), 13, + ACTIONS(1416), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -52441,7 +52162,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1332), 34, + ACTIONS(1418), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52476,65 +52197,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [34427] = 6, + [34103] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1422), 1, - anon_sym_COMMA, - ACTIONS(1429), 1, - anon_sym_EQ, - ACTIONS(1427), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1425), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + ACTIONS(1420), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1420), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1422), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [34488] = 3, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34158] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1433), 13, + ACTIONS(1356), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52548,7 +52266,319 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1431), 34, + ACTIONS(1358), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34213] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1424), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1426), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34268] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1364), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1366), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34323] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1384), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1386), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34378] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1428), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1430), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34433] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1243), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1241), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34488] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1406), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1404), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52586,7 +52616,7 @@ static const uint16_t ts_small_parse_table[] = { [34543] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1437), 13, + ACTIONS(960), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -52600,7 +52630,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1435), 34, + ACTIONS(958), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52638,10 +52668,10 @@ static const uint16_t ts_small_parse_table[] = { [34598] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1441), 13, - sym__dedent, + ACTIONS(1243), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -52652,7 +52682,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1439), 34, + ACTIONS(1241), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -52688,1765 +52718,6 @@ static const uint16_t ts_small_parse_table[] = { sym_false, sym_none, [34653] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1445), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1443), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34708] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1449), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1447), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34763] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1338), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1336), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34818] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1453), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1451), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34873] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1457), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1455), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34928] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(944), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(942), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34983] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1342), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1340), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35038] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1346), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1344), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35093] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1198), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1196), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35148] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1461), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35203] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1465), 1, - anon_sym_COMMA, - ACTIONS(1472), 1, - anon_sym_EQ, - ACTIONS(1470), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1468), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1463), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [35264] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1350), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1348), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35319] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1354), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1352), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35374] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1474), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1476), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35429] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1358), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1356), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35484] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1362), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1360), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35539] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1366), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1364), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35594] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1282), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1280), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35649] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1370), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1368), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35704] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1374), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1372), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35759] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1378), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1376), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35814] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1232), 1, - anon_sym_COMMA, - ACTIONS(1239), 1, - anon_sym_EQ, - ACTIONS(1241), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1235), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [35875] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1382), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1380), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35930] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1286), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1284), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35985] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1260), 1, - anon_sym_EQ, - ACTIONS(1255), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1230), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(1262), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1235), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - [36046] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1386), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1384), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36101] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1390), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1388), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36156] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(1013), 1, - sym_primary_expression, - STATE(1495), 1, - sym_pattern, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36245] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1394), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1392), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36300] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(692), 1, - sym_identifier, - ACTIONS(696), 1, - anon_sym_LPAREN, - ACTIONS(704), 1, - anon_sym_LBRACK, - ACTIONS(706), 1, - anon_sym_await, - ACTIONS(1218), 1, - anon_sym_STAR, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(998), 1, - sym_pattern, - STATE(1013), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(848), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1001), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(694), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36389] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1278), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1276), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36444] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1398), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1396), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36499] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1406), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1404), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36554] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1410), 13, @@ -54498,13 +52769,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36609] = 3, + [34708] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1414), 13, + ACTIONS(1434), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54515,7 +52786,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1412), 34, + ACTIONS(1432), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54550,13 +52821,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36664] = 3, + [34763] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1418), 13, + ACTIONS(1438), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54567,7 +52838,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1416), 34, + ACTIONS(1436), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54602,13 +52873,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36719] = 3, + [34818] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1433), 13, + ACTIONS(1313), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54619,7 +52890,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1431), 34, + ACTIONS(1315), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54654,13 +52925,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36774] = 3, + [34873] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1437), 13, + ACTIONS(1388), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54671,7 +52942,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1435), 34, + ACTIONS(1390), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54706,13 +52977,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36829] = 3, + [34928] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1298), 13, + ACTIONS(1317), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54723,7 +52994,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1296), 34, + ACTIONS(1319), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54758,10 +53029,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36884] = 3, + [34983] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1441), 13, + ACTIONS(960), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54775,7 +53046,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1439), 34, + ACTIONS(958), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54810,13 +53081,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36939] = 3, + [35038] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1445), 13, + ACTIONS(1321), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54827,7 +53098,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1443), 34, + ACTIONS(1323), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54862,10 +53133,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36994] = 3, + [35093] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1449), 13, + ACTIONS(1440), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -54879,7 +53150,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1447), 34, + ACTIONS(1442), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54914,13 +53185,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37049] = 3, + [35148] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1306), 13, + ACTIONS(1344), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54931,7 +53202,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1304), 34, + ACTIONS(1346), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -54966,13 +53237,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37104] = 3, + [35203] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1453), 13, + ACTIONS(1348), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54983,7 +53254,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1451), 34, + ACTIONS(1350), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55018,13 +53289,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37159] = 3, + [35258] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1457), 13, + ACTIONS(1360), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -55035,7 +53306,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1455), 34, + ACTIONS(1362), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55070,13 +53341,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37214] = 3, + [35313] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1310), 13, + ACTIONS(1368), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -55087,7 +53358,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1308), 34, + ACTIONS(1370), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55122,13 +53393,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37269] = 3, + [35368] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1220), 13, + ACTIONS(1376), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -55139,7 +53410,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1222), 34, + ACTIONS(1378), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55174,13 +53445,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37324] = 3, + [35423] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(980), 13, + ACTIONS(1233), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -55191,7 +53462,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(982), 34, + ACTIONS(1235), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55226,13 +53497,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37379] = 3, + [35478] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1314), 13, + ACTIONS(1392), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -55243,7 +53514,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1312), 34, + ACTIONS(1394), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55278,7 +53549,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37434] = 3, + [35533] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1400), 13, @@ -55330,10 +53601,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37489] = 3, + [35588] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(944), 13, + ACTIONS(1416), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -55347,7 +53618,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(942), 34, + ACTIONS(1418), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55382,7 +53653,579 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37544] = 3, + [35643] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1420), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1422), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35698] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1424), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1426), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35753] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1440), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1442), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35808] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1446), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1444), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35863] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1450), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1448), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35918] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1454), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1452), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35973] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1446), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1444), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36028] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1458), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1456), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36083] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1462), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1460), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36138] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1466), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1464), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36193] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1470), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1468), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36248] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1474), 13, @@ -55399,6 +54242,439 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, + ACTIONS(1472), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36303] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1352), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1354), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36358] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36447] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1380), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1382), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36502] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1396), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1398), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36557] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1428), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1430), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36612] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1414), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1412), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36667] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1450), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1448), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36722] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1478), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, ACTIONS(1476), 34, anon_sym_lazy, anon_sym_import, @@ -55434,62 +54710,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37599] = 3, + [36777] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1316), 34, - anon_sym_lazy, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [37654] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 13, + ACTIONS(1482), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -55503,7 +54727,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1461), 34, + ACTIONS(1480), 34, anon_sym_lazy, anon_sym_import, anon_sym_from, @@ -55538,7 +54762,1160 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37709] = 18, + [36832] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1301), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1303), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36887] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1305), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1307), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36942] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1309), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1311), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36997] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1454), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1452), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37052] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1470), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1468), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37107] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1325), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1327), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37162] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1329), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1331), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37217] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1434), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1432), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37272] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1374), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1372), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37327] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1478), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1476), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37382] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1482), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1480), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37437] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1288), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1286), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37492] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1458), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1456), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37547] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1462), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1460), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37602] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1484), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1486), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37657] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1474), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1472), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37712] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1466), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1464), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37767] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1265), 1, + anon_sym_COMMA, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1272), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1209), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [37828] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1438), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1436), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37883] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1484), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1486), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37938] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1206), 1, + anon_sym_COMMA, + ACTIONS(1488), 1, + anon_sym_COLON_EQ, + ACTIONS(1213), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(1211), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1204), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + ACTIONS(1209), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + [38000] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(587), 1, + anon_sym_COMMA, + ACTIONS(590), 1, + anon_sym_COLON_EQ, + ACTIONS(592), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(598), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(303), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + [38062] = 18, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -55547,31 +55924,31 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(1478), 1, + ACTIONS(1490), 1, sym_identifier, - ACTIONS(1484), 1, + ACTIONS(1496), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(1013), 1, + STATE(1017), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(859), 2, + STATE(860), 2, sym_attribute, sym_subscript, ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(1482), 3, + ACTIONS(1494), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -55580,14 +55957,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(1480), 6, + ACTIONS(1492), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -55603,129 +55980,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37792] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1486), 1, - anon_sym_not, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(838), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37869] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - ACTIONS(1488), 1, - anon_sym_not, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(809), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37946] = 16, + [38145] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -55734,1207 +55989,17 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(85), 1, sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - ACTIONS(1490), 1, - anon_sym_not, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(818), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38023] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(581), 1, anon_sym_await, - ACTIONS(1492), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(758), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38100] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - ACTIONS(1494), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(748), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38177] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - ACTIONS(1496), 1, - anon_sym_not, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(805), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38254] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(824), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38328] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(819), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38402] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(820), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38476] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(856), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38550] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(804), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38624] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38698] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(801), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38772] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(737), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38846] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(821), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38920] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, - sym_template_string, - STATE(802), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38994] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, ACTIONS(1498), 1, - sym_identifier, - ACTIONS(1502), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, + anon_sym_not, + STATE(772), 1, sym_template_string, - STATE(1013), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(1004), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1500), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39072] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(790), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39146] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(789), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39220] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(791), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39294] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(1478), 1, - sym_identifier, - ACTIONS(1484), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(1013), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - STATE(859), 2, - sym_attribute, - sym_subscript, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1480), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39372] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(831), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39446] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, + STATE(779), 1, sym_string, STATE(798), 1, sym_primary_expression, @@ -56951,14 +56016,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(573), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -56976,434 +56041,33 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [39520] = 15, + [38222] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(832), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39594] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(838), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39668] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(817), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39742] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(840), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39816] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(818), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39890] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, - anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(823), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39964] = 5, - ACTIONS(3), 1, - sym_comment, ACTIONS(315), 1, sym__string_start, - STATE(675), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1235), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 33, - anon_sym_DOT, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(642), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, + ACTIONS(644), 1, + anon_sym_await, + ACTIONS(1500), 1, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40018] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(755), 1, + STATE(821), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -57413,14 +56077,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57438,420 +56102,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40092] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(756), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40166] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(758), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40240] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(761), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40314] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(762), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40388] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(743), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40462] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(739), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40536] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(575), 1, - anon_sym_LPAREN, - ACTIONS(586), 1, - anon_sym_LBRACK, - ACTIONS(590), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(742), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(301), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40610] = 15, + [38299] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -57866,11 +56117,13 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - STATE(766), 1, + ACTIONS(1502), 1, + anon_sym_not, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, - STATE(809), 1, + STATE(810), 1, sym_primary_expression, ACTIONS(626), 2, sym_ellipsis, @@ -57892,7 +56145,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57910,7 +56163,68 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40684] = 15, + [38376] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1504), 1, + anon_sym_not, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(856), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38453] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -57919,22 +56233,24 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(1506), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(745), 1, + STATE(764), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -57944,14 +56260,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57969,7 +56285,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40758] = 15, + [38530] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -57978,15 +56294,17 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(600), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(1508), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, STATE(757), 1, sym_primary_expression, @@ -58003,14 +56321,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58028,7 +56346,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40832] = 15, + [38607] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -58037,22 +56355,22 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(575), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(586), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(590), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(645), 1, + STATE(694), 1, sym_string, - STATE(658), 1, + STATE(698), 1, sym_template_string, - STATE(735), 1, + STATE(745), 1, sym_primary_expression, ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(301), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -58062,14 +56380,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(583), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58087,22 +56405,22 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40906] = 5, + [38681] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(317), 1, + ACTIONS(1514), 1, sym__template_string_start, - STATE(676), 2, + STATE(627), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1235), 6, + ACTIONS(1512), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 33, + ACTIONS(1510), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -58136,225 +56454,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [40960] = 15, + [38735] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_LBRACE, - ACTIONS(83), 1, - sym__string_start, - ACTIONS(85), 1, - sym__template_string_start, - ACTIONS(594), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(598), 1, - anon_sym_LBRACK, - ACTIONS(600), 1, - anon_sym_await, - STATE(769), 1, - sym_template_string, - STATE(775), 1, - sym_string, - STATE(785), 1, - sym_primary_expression, - ACTIONS(77), 2, - sym_ellipsis, - sym_float, - ACTIONS(49), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(79), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(592), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(920), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41034] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(855), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41108] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(652), 1, + ACTIONS(662), 1, anon_sym_await, - ACTIONS(654), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(793), 1, + STATE(790), 1, sym_string, - STATE(794), 1, - sym_template_string, - STATE(866), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41182] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, + STATE(791), 1, sym_template_string, STATE(833), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(648), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58372,7 +56513,304 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41256] = 15, + [38809] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(864), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38883] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(813), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38957] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(863), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39031] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(1490), 1, + sym_identifier, + ACTIONS(1496), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(860), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1492), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39109] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(868), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39183] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -58381,15 +56819,15 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(85), 1, sym__template_string_start, - ACTIONS(594), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(598), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(600), 1, + ACTIONS(581), 1, anon_sym_await, - STATE(769), 1, + STATE(772), 1, sym_template_string, - STATE(775), 1, + STATE(779), 1, sym_string, STATE(797), 1, sym_primary_expression, @@ -58406,14 +56844,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(592), 6, + ACTIONS(573), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(920), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58431,166 +56869,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41330] = 15, + [39257] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(845), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41404] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(746), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41478] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, + ACTIONS(662), 1, anon_sym_await, - STATE(645), 1, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(747), 1, + STATE(865), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(606), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(648), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58608,361 +56928,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41552] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(748), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41626] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(749), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41700] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(750), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41774] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(751), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41848] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(753), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41922] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(754), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41996] = 15, + [39331] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -58977,11 +56943,11 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, - STATE(799), 1, + STATE(814), 1, sym_primary_expression, ACTIONS(626), 2, sym_ellipsis, @@ -59003,7 +56969,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59021,7 +56987,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42070] = 15, + [39405] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(798), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39479] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -59036,697 +57061,9 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, - sym_template_string, - STATE(812), 1, - sym_primary_expression, - ACTIONS(626), 2, - sym_ellipsis, - sym_float, - ACTIONS(620), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(612), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(614), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(878), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42144] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(315), 1, - sym__string_start, - STATE(692), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1506), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1504), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42198] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(317), 1, - sym__template_string_start, - STATE(693), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1510), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1508), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42252] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(640), 1, - anon_sym_LPAREN, - ACTIONS(646), 1, - anon_sym_LBRACK, - ACTIONS(648), 1, - anon_sym_LBRACE, - ACTIONS(652), 1, - anon_sym_await, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - STATE(793), 1, - sym_string, - STATE(794), 1, - sym_template_string, - STATE(846), 1, - sym_primary_expression, - ACTIONS(650), 2, - sym_ellipsis, - sym_float, - ACTIONS(644), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(636), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(638), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(970), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42326] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(803), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42400] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(826), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42474] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(805), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42548] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(806), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42622] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(807), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42696] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(808), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42770] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(810), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42844] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(811), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42918] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(616), 1, - anon_sym_LPAREN, - ACTIONS(622), 1, - anon_sym_LBRACK, - ACTIONS(624), 1, - anon_sym_LBRACE, - ACTIONS(628), 1, - anon_sym_await, - ACTIONS(630), 1, - sym__string_start, - ACTIONS(632), 1, - sym__template_string_start, - STATE(766), 1, - sym_string, - STATE(776), 1, + STATE(782), 1, sym_template_string, STATE(815), 1, sym_primary_expression, @@ -59750,7 +57087,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59768,7 +57105,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42992] = 15, + [39553] = 17, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, @@ -59777,39 +57114,159 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(317), 1, sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(1517), 1, + sym_identifier, + ACTIONS(1521), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1013), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1519), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39631] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(801), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39705] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, ACTIONS(658), 1, - anon_sym_LPAREN, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, ACTIONS(664), 1, - anon_sym_LBRACK, + sym__string_start, ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, + sym__template_string_start, + STATE(790), 1, sym_string, - STATE(658), 1, + STATE(791), 1, sym_template_string, - STATE(813), 1, + STATE(845), 1, sym_primary_expression, - ACTIONS(309), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(662), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(311), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(573), 6, + ACTIONS(648), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(725), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59827,341 +57284,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43066] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(814), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [43140] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(658), 1, - anon_sym_LPAREN, - ACTIONS(664), 1, - anon_sym_LBRACK, - ACTIONS(666), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(825), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(662), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [43214] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(744), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [43288] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(293), 1, - anon_sym_LBRACE, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(602), 1, - anon_sym_LPAREN, - ACTIONS(608), 1, - anon_sym_LBRACK, - ACTIONS(610), 1, - anon_sym_await, - STATE(645), 1, - sym_string, - STATE(658), 1, - sym_template_string, - STATE(736), 1, - sym_primary_expression, - ACTIONS(309), 2, - sym_ellipsis, - sym_float, - ACTIONS(606), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(311), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(573), 6, - anon_sym_lazy, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(725), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [43362] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1516), 1, - sym__string_start, - STATE(692), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1514), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1512), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43416] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 1, - sym__template_string_start, - STATE(693), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1521), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1519), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43470] = 15, + [39779] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(616), 1, @@ -60176,9 +57299,540 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(632), 1, sym__template_string_start, - STATE(766), 1, + STATE(781), 1, sym_string, - STATE(776), 1, + STATE(782), 1, + sym_template_string, + STATE(804), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39853] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(818), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39927] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(796), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40001] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(751), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40075] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(803), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40149] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(788), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40223] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(800), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40297] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(752), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40371] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(764), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40445] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, sym_template_string, STATE(816), 1, sym_primary_expression, @@ -60202,7 +57856,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(878), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -60220,48 +57874,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43544] = 15, + [40519] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(640), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(646), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(648), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(652), 1, + ACTIONS(628), 1, anon_sym_await, - ACTIONS(654), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(632), 1, sym__template_string_start, - STATE(793), 1, + STATE(781), 1, sym_string, - STATE(794), 1, + STATE(782), 1, sym_template_string, - STATE(841), 1, + STATE(817), 1, sym_primary_expression, - ACTIONS(650), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(644), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(636), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(638), 6, + ACTIONS(614), 6, anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(970), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -60279,18 +57933,1910 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43618] = 3, + [40593] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1528), 6, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(806), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40667] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(742), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40741] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(743), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40815] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(744), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40889] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(830), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40963] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(867), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41037] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(746), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41111] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(866), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41185] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(819), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41259] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(820), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41333] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(821), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41407] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(823), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41481] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(824), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41555] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(825), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41629] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(826), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41703] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(802), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41777] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(740), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41851] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(827), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41925] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(828), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41999] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(809), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42073] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(829), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42147] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(755), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42221] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(741), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42295] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(756), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42369] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(757), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42443] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(739), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42517] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(811), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42591] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(758), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42665] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(759), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42739] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(760), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42813] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(761), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42887] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42961] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1527), 1, + sym__string_start, + STATE(685), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1526), 34, - sym__string_start, + ACTIONS(1523), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60324,9 +59870,250 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43666] = 3, + [43015] = 15, ACTIONS(3), 1, sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(762), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43089] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(763), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43163] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(765), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43237] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(812), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43311] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + STATE(685), 2, + sym_string, + aux_sym_concatenated_string_repeat1, ACTIONS(1532), 6, anon_sym_as, anon_sym_STAR, @@ -60334,8 +60121,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1530), 34, - sym__string_start, + ACTIONS(1530), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60369,9 +60155,132 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43714] = 3, + [43365] = 15, ACTIONS(3), 1, sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(807), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43439] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(748), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43513] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + STATE(627), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, ACTIONS(1536), 6, anon_sym_as, anon_sym_STAR, @@ -60379,8 +60288,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1534), 34, - sym__template_string_start, + ACTIONS(1534), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60414,7 +60322,341 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43762] = 3, + [43567] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + STATE(690), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43621] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(810), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43695] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(856), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43769] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(844), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43843] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + STATE(693), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1209), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43897] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(822), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43971] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1540), 6, @@ -60459,51 +60701,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43810] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1425), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1420), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [43857] = 3, + [44019] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1544), 6, @@ -60513,7 +60711,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1542), 33, + ACTIONS(1542), 34, + sym__template_string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60547,7 +60746,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43904] = 3, + [44067] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1548), 6, @@ -60557,7 +60756,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1546), 33, + ACTIONS(1546), 34, + sym__string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60591,7 +60791,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43951] = 3, + [44115] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1552), 6, @@ -60601,7 +60801,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1550), 33, + ACTIONS(1550), 34, + sym__string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60635,139 +60836,129 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43998] = 3, + [44163] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1554), 33, + ACTIONS(1554), 1, anon_sym_DOT, + ACTIONS(1556), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, + ACTIONS(1566), 1, anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1574), 1, + anon_sym_EQ, + ACTIONS(1578), 1, + anon_sym_not, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1586), 1, + anon_sym_is, + STATE(997), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, + ACTIONS(1584), 2, + anon_sym_LT, + anon_sym_GT, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, + ACTIONS(1564), 6, + anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - anon_sym_is, - [44045] = 3, + ACTIONS(1558), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [44244] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1554), 33, + ACTIONS(1554), 1, anon_sym_DOT, + ACTIONS(1556), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1574), 1, + anon_sym_as, + ACTIONS(1594), 1, anon_sym_PIPE, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1602), 1, + anon_sym_not, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1610), 1, + anon_sym_is, + STATE(998), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, + ACTIONS(1608), 2, + anon_sym_LT, + anon_sym_GT, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, + ACTIONS(1592), 6, + anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - anon_sym_is, - [44092] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1560), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1558), 33, - anon_sym_DOT, - anon_sym_LPAREN, + ACTIONS(1558), 9, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, - anon_sym_else, anon_sym_async, anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44139] = 3, + [44325] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(272), 6, @@ -60811,17 +61002,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44186] = 3, + [44372] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1564), 6, + ACTIONS(1614), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1562), 33, + ACTIONS(1612), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60855,17 +61046,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44233] = 3, + [44419] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 6, + ACTIONS(1618), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 33, + ACTIONS(1616), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60899,17 +61090,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44280] = 3, + [44466] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1572), 6, + ACTIONS(1622), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1570), 33, + ACTIONS(1620), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60943,17 +61134,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44327] = 3, + [44513] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 6, + ACTIONS(1626), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 33, + ACTIONS(1624), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60987,17 +61178,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44374] = 3, + [44560] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1576), 6, + ACTIONS(1630), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1574), 33, + ACTIONS(1628), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61031,17 +61222,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44421] = 3, + [44607] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 6, + ACTIONS(1634), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 33, + ACTIONS(1632), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61075,332 +61266,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44468] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1584), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1582), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44515] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1588), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44562] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1592), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1590), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44609] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1596), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1594), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44656] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1600), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1598), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44703] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1614), 1, - anon_sym_PIPE, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - ACTIONS(1622), 1, - anon_sym_EQ, - ACTIONS(1626), 1, - anon_sym_not, - ACTIONS(1628), 1, - anon_sym_AMP, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1634), 1, - anon_sym_is, - STATE(993), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1608), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1610), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1616), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1632), 2, - anon_sym_LT, - anon_sym_GT, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1624), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1612), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1606), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [44784] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1468), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1463), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [44831] = 3, + [44654] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1638), 6, @@ -61444,7 +61310,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44878] = 3, + [44701] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1642), 6, @@ -61488,7 +61354,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44925] = 3, + [44748] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1646), 6, @@ -61532,7 +61398,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44972] = 3, + [44795] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1650), 6, @@ -61576,17 +61442,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45019] = 3, + [44842] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1235), 6, + ACTIONS(1654), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 33, + ACTIONS(1652), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61620,68 +61486,271 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45066] = 20, + [44889] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1622), 1, + ACTIONS(1658), 6, anon_sym_as, - ACTIONS(1658), 1, - anon_sym_PIPE, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1666), 1, - anon_sym_not, - ACTIONS(1668), 1, - anon_sym_AMP, - ACTIONS(1670), 1, - anon_sym_CARET, - ACTIONS(1674), 1, - anon_sym_is, - STATE(990), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1652), 2, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(1654), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1672), 2, anon_sym_LT, anon_sym_GT, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, + ACTIONS(1656), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1656), 6, - anon_sym_in, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1606), 9, + anon_sym_is, + [44936] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1662), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1660), 33, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, + anon_sym_COLON, + anon_sym_else, anon_sym_async, anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, anon_sym_and, anon_sym_or, - [45147] = 3, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44983] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1209), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45030] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1666), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1664), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45077] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1670), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1668), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45124] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45171] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1678), 6, @@ -61725,7 +61794,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45194] = 3, + [45218] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1682), 6, @@ -61769,95 +61838,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45241] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1580), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1578), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45288] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1588), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45335] = 3, + [45265] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1686), 6, @@ -61901,7 +61882,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45382] = 3, + [45312] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1690), 6, @@ -61945,7 +61926,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45429] = 3, + [45359] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45406] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1694), 6, @@ -61989,7 +62014,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45476] = 3, + [45453] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1698), 6, @@ -62033,142 +62058,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45523] = 8, + [45500] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1702), 5, + ACTIONS(1690), 6, + anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1700), 27, + ACTIONS(1688), 33, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45579] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1658), 1, - anon_sym_PIPE, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1668), 1, - anon_sym_AMP, - ACTIONS(1670), 1, - anon_sym_CARET, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1654), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1706), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1704), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45649] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1702), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1700), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -62184,28 +62102,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45705] = 5, + [45547] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1708), 1, - sym__template_string_start, - STATE(738), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1521), 4, + ACTIONS(1702), 6, + anon_sym_as, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1519), 31, + ACTIONS(1700), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -62229,40 +62146,306 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45755] = 13, + [45594] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, + ACTIONS(1702), 6, + anon_sym_as, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(1610), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1616), 2, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45641] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45688] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45735] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [45782] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1295), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1290), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [45829] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1710), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1708), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45876] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1624), 3, + ACTIONS(1576), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, + ACTIONS(1714), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 19, + ACTIONS(1712), 18, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -62275,34 +62458,247 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_AMP, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45821] = 8, + [45944] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1662), 1, + ACTIONS(1594), 1, + anon_sym_PIPE, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - STATE(734), 2, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1717), 5, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1718), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1716), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46014] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1594), 1, + anon_sym_PIPE, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1722), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1720), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46084] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46152] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 24, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46212] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1715), 27, + ACTIONS(1712), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -62330,285 +62726,132 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45877] = 8, + [46268] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1620), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1717), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1715), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, + ACTIONS(1606), 1, anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45933] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - ACTIONS(1608), 2, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1610), 2, + ACTIONS(1590), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1616), 2, + ACTIONS(1596), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1624), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45997] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46053] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1658), 1, - anon_sym_PIPE, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1668), 1, - anon_sym_AMP, - ACTIONS(1670), 1, - anon_sym_CARET, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1654), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1721), 3, + ACTIONS(1714), 3, anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1719), 17, + ACTIONS(1712), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_in, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_AMP, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46123] = 15, + [46334] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1614), 1, - anon_sym_PIPE, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1620), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1628), 1, - anon_sym_AMP, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1610), 2, + ACTIONS(1590), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1616), 2, + ACTIONS(1596), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1624), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1721), 3, - anon_sym_EQ, + ACTIONS(1714), 3, + anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1719), 17, + ACTIONS(1712), 20, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46193] = 8, + [46398] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1662), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 5, + ACTIONS(1726), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 27, + ACTIONS(1724), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -62636,237 +62879,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46249] = 11, + [46454] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1662), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46311] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1658), 1, - anon_sym_PIPE, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1668), 1, - anon_sym_AMP, - ACTIONS(1670), 1, - anon_sym_CARET, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1654), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1725), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1723), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46381] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1668), 1, - anon_sym_AMP, - ACTIONS(1670), 1, - anon_sym_CARET, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1654), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46449] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 24, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46509] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 5, + ACTIONS(1730), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 27, + ACTIONS(1728), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -62894,20 +62927,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46565] = 5, + [46510] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1727), 1, + ACTIONS(664), 1, sym__string_start, - STATE(752), 2, + STATE(753), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1514), 4, + ACTIONS(1532), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1512), 31, + ACTIONS(1530), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -62939,379 +62972,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [46615] = 13, + [46560] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1670), 1, - anon_sym_CARET, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1654), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46681] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1662), 1, - anon_sym_STAR_STAR, - ACTIONS(1652), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1654), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1660), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1664), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46745] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46801] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - ACTIONS(1608), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1616), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1624), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46863] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1614), 1, - anon_sym_PIPE, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - ACTIONS(1628), 1, - anon_sym_AMP, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1610), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1616), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1624), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1706), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1704), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46933] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1614), 1, - anon_sym_PIPE, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - ACTIONS(1628), 1, - anon_sym_AMP, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1610), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1616), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1624), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1725), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1723), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47003] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - STATE(752), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1506), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1504), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47053] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(738), 2, + STATE(754), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1510), 4, + ACTIONS(1536), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1508), 31, + ACTIONS(1534), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -63343,96 +63017,91 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47103] = 14, + [46610] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1620), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1628), 1, - anon_sym_AMP, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1610), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1616), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1624), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_EQ, + ACTIONS(1714), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 18, + ACTIONS(1712), 27, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47171] = 10, + [46666] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1620), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1608), 2, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - STATE(734), 2, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1624), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1713), 3, - anon_sym_EQ, + ACTIONS(1714), 3, + anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 24, + ACTIONS(1712), 22, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_not, @@ -63447,58 +63116,1363 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47231] = 20, + [46728] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1622), 1, - anon_sym_EQ, - ACTIONS(1730), 1, - anon_sym_DOT, ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1740), 1, - anon_sym_PIPE, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - ACTIONS(1750), 1, - anon_sym_not, - ACTIONS(1752), 1, - anon_sym_AMP, - ACTIONS(1754), 1, - anon_sym_CARET, - ACTIONS(1758), 1, - anon_sym_is, - STATE(1005), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1734), 2, + sym__string_start, + STATE(753), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 4, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1756), 2, anon_sym_LT, anon_sym_GT, - STATE(903), 2, + ACTIONS(1523), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46778] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1735), 1, + sym__template_string_start, + STATE(754), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1512), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1510), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46828] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1748), 3, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46884] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1738), 6, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46946] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1740), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47016] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 24, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47076] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47132] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47198] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47262] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1718), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1716), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47332] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1722), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1720), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47402] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1594), 1, + anon_sym_PIPE, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1740), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47472] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47528] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1726), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47584] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 32, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47629] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1742), 1, + sym__string_start, + STATE(768), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1523), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [47678] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1745), 1, + sym__template_string_start, + STATE(769), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1512), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1510), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [47727] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym__string_start, + STATE(776), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1532), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [47776] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(85), 1, + sym__template_string_start, + STATE(777), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1536), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1534), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [47825] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(85), 1, + sym__template_string_start, + STATE(771), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [47874] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1574), 1, + anon_sym_EQ, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1768), 1, + anon_sym_not, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1776), 1, + anon_sym_is, + STATE(1008), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1774), 2, + anon_sym_LT, + anon_sym_GT, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1756), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1606), 7, + ACTIONS(1558), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [47953] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(590), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 6, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48000] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1792), 1, + anon_sym_not, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1800), 1, + anon_sym_is, + STATE(1014), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1798), 2, + anon_sym_LT, + anon_sym_GT, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1782), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1558), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [48077] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1802), 1, + sym__string_start, + STATE(776), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1523), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48126] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1805), 1, + sym__template_string_start, + STATE(777), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1512), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1510), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48175] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1488), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 6, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48222] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym__string_start, + STATE(770), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48271] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1574), 1, + anon_sym_EQ, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1828), 1, + anon_sym_not, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1836), 1, + anon_sym_is, + STATE(1004), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1834), 2, + anon_sym_LT, + anon_sym_GT, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1816), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1558), 7, anon_sym_COMMA, anon_sym_if, anon_sym_RBRACE, @@ -63506,7 +64480,268 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_or, anon_sym_COLON2, sym_type_conversion, - [47310] = 4, + [48350] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(630), 1, + sym__string_start, + STATE(784), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48399] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(632), 1, + sym__template_string_start, + STATE(785), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48448] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1295), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1290), 32, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48493] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(630), 1, + sym__string_start, + STATE(768), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1532), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48542] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(632), 1, + sym__template_string_start, + STATE(769), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1536), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1534), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48591] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1838), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48638] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(604), 1, @@ -63549,1127 +64784,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47357] = 20, + [48685] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1622), 1, - anon_sym_EQ, - ACTIONS(1760), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, + ACTIONS(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, ACTIONS(1770), 1, - anon_sym_PIPE, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1780), 1, - anon_sym_not, - ACTIONS(1782), 1, anon_sym_AMP, - ACTIONS(1784), 1, + ACTIONS(1772), 1, anon_sym_CARET, - ACTIONS(1788), 1, - anon_sym_is, - STATE(1008), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1764), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1766), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1772), 2, + ACTIONS(1760), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1786), 2, - anon_sym_LT, - anon_sym_GT, - STATE(900), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1778), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1768), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1606), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [47436] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(630), 1, - sym__string_start, - STATE(767), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1235), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47485] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(630), 1, - sym__string_start, - STATE(770), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1506), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1504), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47534] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(632), 1, - sym__template_string_start, - STATE(771), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1510), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1508), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47583] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(85), 1, - sym__template_string_start, - STATE(774), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1235), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47632] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1790), 1, - sym__string_start, - STATE(770), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1514), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1512), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47681] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1793), 1, - sym__template_string_start, - STATE(771), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1521), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1519), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47730] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1425), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1420), 32, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47775] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(580), 1, - anon_sym_COLON_EQ, - ACTIONS(272), 6, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47822] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(85), 1, - sym__template_string_start, - STATE(778), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1510), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1508), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47871] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(83), 1, - sym__string_start, - STATE(782), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1235), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47920] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(632), 1, - sym__template_string_start, - STATE(768), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1235), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47969] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1468), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1463), 32, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48014] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1796), 1, - sym__template_string_start, - STATE(778), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1521), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1519), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48063] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1799), 1, - sym__string_start, - STATE(779), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1514), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1512), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48112] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1808), 1, - anon_sym_PIPE, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1816), 1, - anon_sym_not, - ACTIONS(1818), 1, - anon_sym_AMP, - ACTIONS(1820), 1, - anon_sym_CARET, - ACTIONS(1824), 1, - anon_sym_is, - STATE(1006), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1804), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1810), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1822), 2, - anon_sym_LT, - anon_sym_GT, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1806), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1606), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [48189] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1258), 1, - anon_sym_COLON_EQ, - ACTIONS(1235), 6, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48236] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(83), 1, - sym__string_start, - STATE(779), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1506), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1504), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48285] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1826), 1, - anon_sym_COLON_EQ, - ACTIONS(1235), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48332] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1717), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1715), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48386] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1760), 1, - anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1784), 1, - anon_sym_CARET, - ACTIONS(1764), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1766), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1772), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 3, + ACTIONS(1722), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1778), 3, + ACTIONS(1766), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 17, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48450] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1760), 1, - anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1717), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1715), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48504] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1532), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1530), 32, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48548] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1536), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1534), 32, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48592] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1760), 1, - anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1770), 1, - anon_sym_PIPE, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1782), 1, - anon_sym_AMP, - ACTIONS(1784), 1, - anon_sym_CARET, - ACTIONS(1764), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1766), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1772), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1721), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1778), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1719), 15, + ACTIONS(1720), 15, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -64685,155 +64837,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [48660] = 15, + [48753] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1840), 1, anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1770), 1, - anon_sym_PIPE, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1782), 1, - anon_sym_AMP, - ACTIONS(1784), 1, - anon_sym_CARET, - ACTIONS(1764), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1766), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1772), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1706), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1778), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1704), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48728] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1760), 1, - anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1702), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1700), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48782] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1838), 1, - anon_sym_PIPE, ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1848), 1, - anon_sym_not, + anon_sym_LPAREN, ACTIONS(1850), 1, - anon_sym_AMP, - ACTIONS(1852), 1, - anon_sym_CARET, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1860), 1, + anon_sym_not, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1868), 1, anon_sym_is, - STATE(1010), 1, + STATE(1016), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1832), 2, + ACTIONS(1844), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1834), 2, + ACTIONS(1846), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1840), 2, + ACTIONS(1852), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1854), 2, + ACTIONS(1866), 2, anon_sym_LT, anon_sym_GT, - STATE(979), 2, + STATE(953), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1846), 3, + ACTIONS(1858), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1836), 6, + ACTIONS(1848), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1606), 7, + ACTIONS(1558), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -64841,20 +64894,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [48858] = 5, + [48829] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, + ACTIONS(664), 1, sym__string_start, - STATE(759), 2, + STATE(749), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1235), 4, + ACTIONS(1209), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, + ACTIONS(1204), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -64884,20 +64937,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48906] = 5, + [48877] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(760), 2, + STATE(750), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1235), 4, + ACTIONS(1209), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, + ACTIONS(1204), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -64927,15 +64980,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48954] = 3, + [48925] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1528), 4, + ACTIONS(1548), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1526), 32, + ACTIONS(1546), 32, sym__string_start, anon_sym_DOT, anon_sym_LPAREN, @@ -64968,7 +65021,89 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [48998] = 3, + [48969] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1544), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1542), 32, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49013] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 32, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49057] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1540), 4, @@ -65009,27 +65144,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [49042] = 8, + [49101] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1774), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1776), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - STATE(900), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 5, + ACTIONS(1714), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 25, + ACTIONS(1712), 25, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -65055,972 +65190,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [49096] = 8, + [49155] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1748), 1, anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1774), 1, anon_sym_LBRACK, - ACTIONS(1776), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [49150] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1702), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1700), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [49204] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1717), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1715), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [49258] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [49312] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - ACTIONS(1734), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1742), 2, + ACTIONS(1760), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(903), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, + ACTIONS(1714), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1748), 3, + ACTIONS(1766), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 20, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [49372] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49426] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1740), 1, - anon_sym_PIPE, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - ACTIONS(1752), 1, - anon_sym_AMP, - ACTIONS(1754), 1, - anon_sym_CARET, - ACTIONS(1734), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1721), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1748), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1719), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [49494] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1808), 1, - anon_sym_PIPE, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1818), 1, - anon_sym_AMP, - ACTIONS(1820), 1, - anon_sym_CARET, - ACTIONS(1725), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1804), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1810), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1723), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49562] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1818), 1, - anon_sym_AMP, - ACTIONS(1820), 1, - anon_sym_CARET, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1804), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1810), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 17, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49628] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 23, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49686] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49740] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1740), 1, - anon_sym_PIPE, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - ACTIONS(1752), 1, - anon_sym_AMP, - ACTIONS(1754), 1, - anon_sym_CARET, - ACTIONS(1734), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1725), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1748), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1723), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [49808] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1820), 1, - anon_sym_CARET, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1804), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1810), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 18, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49872] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1804), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1810), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 19, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49934] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - ACTIONS(1752), 1, - anon_sym_AMP, - ACTIONS(1754), 1, - anon_sym_CARET, - ACTIONS(1734), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1748), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [50000] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1808), 1, - anon_sym_PIPE, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1818), 1, - anon_sym_AMP, - ACTIONS(1820), 1, - anon_sym_CARET, - ACTIONS(1721), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1804), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1810), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1719), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50068] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1808), 1, - anon_sym_PIPE, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - ACTIONS(1818), 1, - anon_sym_AMP, - ACTIONS(1820), 1, - anon_sym_CARET, - ACTIONS(1706), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1804), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1810), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1814), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1704), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50136] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - ACTIONS(1734), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1748), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 22, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [50194] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1730), 1, - anon_sym_DOT, - ACTIONS(1732), 1, - anon_sym_LPAREN, - ACTIONS(1744), 1, - anon_sym_LBRACK, - ACTIONS(1746), 1, - anon_sym_STAR_STAR, - STATE(903), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [50248] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1760), 1, - anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1764), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1772), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1778), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 20, + ACTIONS(1712), 20, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -66041,44 +65239,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [50308] = 15, + [49215] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, + ACTIONS(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, ACTIONS(1770), 1, - anon_sym_PIPE, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1782), 1, anon_sym_AMP, - ACTIONS(1784), 1, + ACTIONS(1772), 1, anon_sym_CARET, - ACTIONS(1764), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1766), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1772), 2, + ACTIONS(1760), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(900), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1725), 3, + ACTIONS(1740), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1778), 3, + ACTIONS(1766), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1723), 15, + ACTIONS(1738), 15, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -66094,49 +65292,289 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [50376] = 13, + [49283] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1730), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1732), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1744), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1754), 1, - anon_sym_CARET, - ACTIONS(1734), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(903), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, + ACTIONS(1726), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49337] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1718), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1748), 3, + ACTIONS(1766), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 17, + ACTIONS(1716), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49405] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 16, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, anon_sym_in, anon_sym_PIPE, - anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49471] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 22, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_not, anon_sym_and, anon_sym_or, anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49529] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49583] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -66145,48 +65583,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [50440] = 12, + [49637] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1730), 1, + ACTIONS(1808), 1, anon_sym_DOT, - ACTIONS(1732), 1, + ACTIONS(1810), 1, anon_sym_LPAREN, - ACTIONS(1744), 1, + ACTIONS(1822), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1734), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(903), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, + ACTIONS(1726), 5, + anon_sym_STAR, anon_sym_EQ, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1748), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 18, + ACTIONS(1724), 25, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, anon_sym_in, anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_RBRACE, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -66195,38 +65629,89 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [50502] = 12, + [49691] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1760), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1762), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1774), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1776), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1764), 2, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1766), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1772), 2, + ACTIONS(1760), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(900), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 3, + ACTIONS(1714), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1778), 3, + ACTIONS(1766), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 18, + ACTIONS(1712), 17, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49755] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -66245,179 +65730,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [50564] = 15, + [49817] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1730), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1732), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1740), 1, - anon_sym_PIPE, - ACTIONS(1744), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1746), 1, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - ACTIONS(1752), 1, - anon_sym_AMP, - ACTIONS(1754), 1, - anon_sym_CARET, - ACTIONS(1734), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1742), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(903), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1706), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1748), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1704), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [50632] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1760), 1, - anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1782), 1, - anon_sym_AMP, - ACTIONS(1784), 1, - anon_sym_CARET, - ACTIONS(1764), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1766), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1772), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1778), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 16, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50698] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1760), 1, - anon_sym_DOT, - ACTIONS(1762), 1, - anon_sym_LPAREN, - ACTIONS(1774), 1, - anon_sym_LBRACK, - ACTIONS(1776), 1, - anon_sym_STAR_STAR, - ACTIONS(1764), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(900), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1778), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 22, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50756] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1812), 1, - anon_sym_STAR_STAR, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1702), 4, + ACTIONS(1726), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1700), 26, + ACTIONS(1724), 26, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -66444,34 +65776,581 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [50810] = 11, + [49871] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, + ACTIONS(1808), 1, anon_sym_DOT, - ACTIONS(1604), 1, + ACTIONS(1810), 1, anon_sym_LPAREN, - ACTIONS(1618), 1, + ACTIONS(1822), 1, anon_sym_LBRACK, - ACTIONS(1812), 1, + ACTIONS(1824), 1, anon_sym_STAR_STAR, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1802), 2, + ACTIONS(1812), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1810), 2, + ACTIONS(1820), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(734), 2, + STATE(925), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1814), 3, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 21, + ACTIONS(1712), 20, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49931] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1740), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1738), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49999] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50065] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 22, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50123] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50177] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 17, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50241] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50303] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1718), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1716), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50371] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1722), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1720), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50439] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [50493] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50547] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 21, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -66493,199 +66372,971 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [50870] = 22, + [50607] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1467), 2, - sym__match_patterns, - sym_open_sequence_match_pattern, - STATE(1504), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1585), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [50951] = 5, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1740), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1738), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50675] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(1826), 1, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 17, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50741] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 23, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50799] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50853] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50917] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 19, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50979] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1718), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1716), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51047] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1722), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1720), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51115] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51169] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51223] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1268), 1, anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [51268] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1870), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51313] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51366] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1544), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1542), 30, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51409] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [51454] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(618), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51499] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1872), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51544] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1290), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1295), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1297), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [51589] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1726), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51642] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 30, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51685] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, ACTIONS(1878), 1, - anon_sym_EQ, - ACTIONS(1235), 4, anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50998] = 4, - ACTIONS(3), 1, - sym_comment, ACTIONS(1880), 1, - anon_sym_COLON_EQ, - ACTIONS(1235), 5, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, + ACTIONS(1882), 1, + anon_sym_COLON, + ACTIONS(1884), 1, anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51043] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, + ACTIONS(1886), 1, sym_match_wildcard_pattern, - ACTIONS(1868), 1, + ACTIONS(1888), 1, anon_sym_LBRACK, - ACTIONS(1870), 1, + ACTIONS(1890), 1, anon_sym_LBRACE, - ACTIONS(1872), 1, + ACTIONS(1892), 1, sym_integer, - ACTIONS(1874), 1, + ACTIONS(1894), 1, sym_float, - STATE(1035), 1, + STATE(1043), 1, sym_template_string, - STATE(1061), 1, + STATE(1068), 1, sym_string, - STATE(1714), 1, + STATE(1650), 1, sym_pattern_class_name, - STATE(1168), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1215), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1503), 2, - sym__match_patterns, - sym_open_sequence_match_pattern, - STATE(1504), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1585), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1139), 8, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -66694,152 +67345,14 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [51124] = 8, + [51766] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1713), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1711), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51177] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1840), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51236] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1702), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1700), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51289] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1463), 3, + ACTIONS(1204), 3, anon_sym_DOT, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(1468), 13, + ACTIONS(1209), 13, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -66853,7 +67366,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(1470), 19, + ACTIONS(1272), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -66873,61 +67386,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [51334] = 8, + [51811] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1717), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1715), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51387] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1532), 5, + ACTIONS(1548), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1530), 30, + ACTIONS(1546), 30, sym__newline, sym__string_start, anon_sym_DOT, @@ -66958,17 +67426,110 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [51430] = 3, + [51854] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1536), 5, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51907] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51966] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1548), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1534), 30, - sym__template_string_start, + ACTIONS(1546), 30, + sym__string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -66998,188 +67559,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51473] = 15, + [52009] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1838), 1, - anon_sym_PIPE, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1850), 1, - anon_sym_AMP, - ACTIONS(1852), 1, - anon_sym_CARET, - ACTIONS(1725), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, + ACTIONS(1544), 5, anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1834), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1723), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51540] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(303), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(272), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(307), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [51585] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1850), 1, - anon_sym_AMP, - ACTIONS(1852), 1, - anon_sym_CARET, - ACTIONS(1713), 2, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1832), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1834), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 16, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51650] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, + ACTIONS(1542), 30, + sym__newline, + sym__template_string_start, anon_sym_DOT, - ACTIONS(1830), 1, + anon_sym_from, anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 22, - anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, @@ -67189,7 +67598,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51707] = 5, + anon_sym_SEMI, + [52052] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 30, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [52095] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1838), 1, + anon_sym_COLON_EQ, + ACTIONS(1206), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52142] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(604), 1, @@ -67231,253 +67723,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51754] = 3, + [52189] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1528), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1526), 30, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [51797] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(283), 1, - anon_sym_COLON_EQ, - ACTIONS(272), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [51842] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1852), 1, - anon_sym_CARET, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1834), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51905] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1713), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1834), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51966] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1882), 1, - anon_sym_if, - ACTIONS(1884), 1, - anon_sym_COLON, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [52047] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1230), 3, + ACTIONS(1333), 3, anon_sym_DOT, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(1235), 13, + ACTIONS(1338), 13, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -67491,7 +67744,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(1241), 19, + ACTIONS(1340), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -67511,140 +67764,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [52092] = 5, + [52234] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1826), 1, - anon_sym_COLON_EQ, - ACTIONS(1232), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1235), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52139] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(660), 1, - anon_sym_COLON_EQ, - ACTIONS(272), 5, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52184] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1237), 1, - anon_sym_COLON_EQ, - ACTIONS(1235), 5, + ACTIONS(1552), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [52229] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1528), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1526), 30, + ACTIONS(1550), 30, sym__newline, sym__string_start, anon_sym_DOT, @@ -67675,192 +67804,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [52272] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1532), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1530), 30, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52315] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(303), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(272), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(588), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [52360] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1838), 1, - anon_sym_PIPE, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1850), 1, - anon_sym_AMP, - ACTIONS(1852), 1, - anon_sym_CARET, - ACTIONS(1721), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1834), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1719), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52427] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1838), 1, - anon_sym_PIPE, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - ACTIONS(1850), 1, - anon_sym_AMP, - ACTIONS(1852), 1, - anon_sym_CARET, - ACTIONS(1706), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1832), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1834), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1840), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(979), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1846), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1704), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52494] = 3, + [52277] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1540), 5, @@ -67900,129 +67844,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [52537] = 22, + [52320] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, + ACTIONS(638), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1886), 1, - anon_sym_if, - ACTIONS(1888), 1, anon_sym_COLON, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [52618] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1230), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1235), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1262), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [52663] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1536), 5, - anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1534), 30, - sym__newline, - sym__template_string_start, + ACTIONS(303), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -68039,15 +67885,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [52706] = 4, + [52365] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1420), 3, + ACTIONS(303), 3, anon_sym_DOT, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(1425), 13, + ACTIONS(272), 13, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -68061,7 +67906,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(1427), 19, + ACTIONS(307), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -68081,7 +67926,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [52751] = 5, + [52410] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1850), 1, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1740), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1738), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52477] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(604), 1, @@ -68123,29 +68020,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [52798] = 4, + [52524] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1890), 1, + ACTIONS(1838), 1, anon_sym_COLON_EQ, - ACTIONS(1235), 5, - anon_sym_STAR, + ACTIONS(1898), 1, anon_sym_EQ, + ACTIONS(1209), 4, + anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 29, + ACTIONS(1204), 29, anon_sym_DOT, anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, - anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -68162,109 +68062,266 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52843] = 3, + [52571] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1540), 5, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(587), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(272), 4, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1538), 30, + ACTIONS(303), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52618] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1204), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1209), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1211), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [52663] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, sym__template_string_start, - anon_sym_DOT, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52886] = 4, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1900), 1, + anon_sym_if, + ACTIONS(1902), 1, + anon_sym_COLON, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [52744] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(618), 1, - anon_sym_COLON_EQ, - ACTIONS(272), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1714), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(303), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, + anon_sym_LT_LT, + ACTIONS(1852), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52931] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - anon_sym_DOT, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1842), 1, - anon_sym_LBRACK, - ACTIONS(1844), 1, - anon_sym_STAR_STAR, - STATE(979), 2, + STATE(953), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1713), 4, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 16, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52809] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52866] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1711), 25, + ACTIONS(1712), 25, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -68290,16 +68347,420 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [52984] = 3, + [52919] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1600), 5, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52982] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53043] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1850), 1, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1718), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1716), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53110] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1850), 1, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1722), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1720), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53177] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1407), 2, + sym__match_patterns, + sym_open_sequence_match_pattern, + STATE(1408), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1595), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [53258] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1408), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1495), 2, + sym__match_patterns, + sym_open_sequence_match_pattern, + STATE(1595), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [53339] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(303), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(272), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(598), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [53384] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1838), 1, + anon_sym_COLON_EQ, + ACTIONS(1265), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53431] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1598), 29, + ACTIONS(1704), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -68329,7 +68790,1214 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [53026] = 3, + [53473] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53515] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53557] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1032), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53599] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53641] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1614), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53683] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53725] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53767] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53809] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53851] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53893] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53935] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53977] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54019] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54061] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54103] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54145] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1622), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1620), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54187] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1624), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54229] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [54271] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1295), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1290), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [54313] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1630), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1628), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54355] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1618), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1616), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54397] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1904), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1601), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1602), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [54477] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1904), 1, + anon_sym_RBRACK, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1489), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [54555] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54597] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1634), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1632), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54639] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54681] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1638), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1636), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54723] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54765] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54807] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1690), 5, @@ -68368,16 +70036,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [53068] = 3, + [54849] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1544), 5, + ACTIONS(1690), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1542), 29, + ACTIONS(1688), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54891] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1048), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -68407,57 +70114,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [53110] = 3, + [54933] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53152] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1892), 1, + ACTIONS(1906), 1, anon_sym_COLON_EQ, - ACTIONS(1235), 5, + ACTIONS(1209), 5, anon_sym_STAR, anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 28, + ACTIONS(1204), 28, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -68486,25 +70154,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [53196] = 4, + [54977] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1232), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1235), 4, + ACTIONS(1694), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1230), 27, + ACTIONS(1692), 29, + sym__newline, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -68526,16 +70192,134 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [53240] = 3, + anon_sym_SEMI, + [55019] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 5, + ACTIONS(1698), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 29, + ACTIONS(1696), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55061] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55103] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55145] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1646), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1644), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -68565,242 +70349,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [53282] = 21, + [55187] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1894), 1, - anon_sym_RPAREN, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [53360] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1894), 1, - anon_sym_RBRACK, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [53438] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1572), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1570), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53480] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1422), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1425), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1420), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [53524] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1235), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53566] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(642), 1, + ACTIONS(652), 1, anon_sym_COLON_EQ, ACTIONS(272), 5, anon_sym_STAR, @@ -68837,136 +70389,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [53610] = 3, + [55231] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1566), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53652] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1694), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1692), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53694] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1544), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1542), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53736] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1465), 3, + ACTIONS(1292), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(1468), 4, + ACTIONS(1295), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1463), 27, + ACTIONS(1290), 27, anon_sym_DOT, anon_sym_LPAREN, anon_sym_GT_GT, @@ -68994,16 +70429,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [53780] = 3, + [55275] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 5, + ACTIONS(1338), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1566), 29, + ACTIONS(1333), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69033,16 +70468,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [53822] = 3, + [55317] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1638), 5, + ACTIONS(1295), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1636), 29, + ACTIONS(1290), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69072,7 +70507,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [53864] = 3, + [55359] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1265), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [55403] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(272), 5, @@ -69111,455 +70586,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [53906] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1642), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1640), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53948] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1572), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1570), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53990] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1896), 1, - anon_sym_RPAREN, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1540), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1541), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [54070] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1552), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1550), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54112] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1564), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1562), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54154] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1568), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1566), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54196] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1686), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1684), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54238] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1556), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1554), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54280] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1548), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1546), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54322] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1564), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1562), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54364] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1560), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1558), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54406] = 3, + [55445] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1646), 5, @@ -69598,429 +70625,179 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54448] = 21, + [55487] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, + ACTIONS(1662), 5, anon_sym_STAR, - ACTIONS(1864), 1, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1660), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1896), 1, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55529] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1622), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1620), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55571] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1624), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55613] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1614), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55655] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1335), 3, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_RBRACK, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1472), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [54526] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1698), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1696), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54568] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1584), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1582), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54610] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1576), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1574), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54652] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1698), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1696), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54694] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1425), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1420), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54736] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1468), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1463), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54778] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1556), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1554), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54820] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1690), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1688), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54862] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1600), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1598), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54904] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1425), 4, + ACTIONS(1338), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1420), 30, + ACTIONS(1333), 27, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, anon_sym_async, anon_sym_for, anon_sym_in, @@ -70028,7 +70805,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, - anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -70045,23 +70821,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54946] = 3, + [55699] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1468), 4, + ACTIONS(1618), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1463), 30, + ACTIONS(1616), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -70084,7 +70858,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54988] = 3, + anon_sym_COLON2, + sym_type_conversion, + [55741] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1710), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1708), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55783] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1638), 5, @@ -70094,162 +70909,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, ACTIONS(1636), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55030] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1642), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1640), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55072] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1646), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1644), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55114] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1650), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1648), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55156] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1580), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1578), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70279,94 +70938,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55198] = 3, + [55825] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 5, + ACTIONS(1666), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1062), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55240] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1694), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1692), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55282] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1650), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1648), 29, + ACTIONS(1664), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70396,706 +70977,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55324] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1596), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1594), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55366] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1235), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55408] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1682), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1680), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55450] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1588), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55492] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1898), 1, - anon_sym_RPAREN, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55570] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1898), 1, - anon_sym_RBRACK, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1293), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55648] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1580), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1578), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55690] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1556), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1554), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55732] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1584), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1582), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55774] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1592), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1590), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55816] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1592), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1590), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55858] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1686), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1684), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55900] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1548), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1546), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55942] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1580), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1578), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [55984] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1678), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1676), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56026] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1682), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1680), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56068] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1580), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1578), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56110] = 3, + [55867] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1678), 5, @@ -71134,16 +71016,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [56152] = 3, + [55909] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1556), 5, + ACTIONS(1670), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1554), 29, + ACTIONS(1668), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -71173,1376 +71055,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [56194] = 3, + [55951] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1552), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1550), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56236] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1588), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [56278] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1560), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1558), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56320] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(272), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [56362] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1576), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1574), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56404] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1076), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1074), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56446] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1588), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56488] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1596), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1594), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [56530] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1642), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1640), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56571] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1682), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1680), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56612] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1580), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1578), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56653] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(272), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56694] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1564), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1562), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56735] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1552), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1550), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56776] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1560), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1558), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56817] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1576), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1574), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56858] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(580), 1, - anon_sym_COLON_EQ, - ACTIONS(634), 1, - anon_sym_EQ, - ACTIONS(272), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(303), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56903] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1076), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1074), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56944] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1646), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1644), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56985] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1596), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1594), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57026] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1556), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1554), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57067] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1556), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1554), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57108] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1584), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1582), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57149] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1588), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57190] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1690), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1688), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57231] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1544), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1542), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57272] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1588), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1586), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57313] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1568), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1566), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57354] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1572), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1570), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57395] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1650), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1648), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57436] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1568), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1566), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57477] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, ACTIONS(1874), 1, - sym_float, - ACTIONS(1900), 1, sym_identifier, - ACTIONS(1902), 1, - anon_sym_RPAREN, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1444), 1, - sym_match_positional_pattern, - STATE(1449), 1, - sym_match_keyword_pattern, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1532), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57556] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1235), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 29, - anon_sym_DOT, + ACTIONS(1876), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57597] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1258), 1, - anon_sym_COLON_EQ, ACTIONS(1878), 1, - anon_sym_EQ, - ACTIONS(1235), 4, anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1230), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, + ACTIONS(1884), 1, anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57642] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1862), 1, - anon_sym_STAR, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, + ACTIONS(1886), 1, sym_match_wildcard_pattern, - ACTIONS(1868), 1, + ACTIONS(1888), 1, anon_sym_LBRACK, - ACTIONS(1870), 1, + ACTIONS(1890), 1, anon_sym_LBRACE, - ACTIONS(1872), 1, + ACTIONS(1892), 1, sym_integer, - ACTIONS(1874), 1, + ACTIONS(1894), 1, sym_float, - STATE(1035), 1, + ACTIONS(1908), 1, + anon_sym_RBRACK, + STATE(1043), 1, sym_template_string, - STATE(1061), 1, + STATE(1068), 1, sym_string, - STATE(1714), 1, + STATE(1650), 1, sym_pattern_class_name, - STATE(1168), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1215), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1293), 4, + STATE(1307), 4, sym__match_pattern, sym_match_as_pattern, sym__match_maybe_star_pattern, sym_match_star_pattern, - STATE(1139), 8, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -72551,55 +71112,133 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [57717] = 22, + [56029] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1860), 1, + ACTIONS(1630), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1628), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, - ACTIONS(1864), 1, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56071] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56113] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, ACTIONS(1874), 1, - sym_float, - ACTIONS(1900), 1, sym_identifier, - ACTIONS(1904), 1, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1908), 1, anon_sym_RPAREN, - STATE(1035), 1, + STATE(1043), 1, sym_template_string, - STATE(1061), 1, + STATE(1068), 1, sym_string, - STATE(1421), 1, - sym_match_keyword_pattern, - STATE(1544), 1, - sym_match_positional_pattern, - STATE(1714), 1, + STATE(1650), 1, sym_pattern_class_name, - STATE(1168), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1215), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1532), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1139), 8, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -72608,15 +71247,714 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [57796] = 3, + [56191] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1600), 4, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1910), 1, + anon_sym_RBRACK, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [56269] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56311] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1654), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1652), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56353] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1658), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1656), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56395] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1910), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [56473] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1662), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1660), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56515] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56557] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56599] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1658), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1656), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56641] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1710), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1708), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56683] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56725] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1666), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1664), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56767] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1654), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1652), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56809] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1670), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1668), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56851] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56893] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56935] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1634), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1632), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56977] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1670), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1598), 29, + ACTIONS(1668), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72646,15 +71984,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57837] = 3, + [57018] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1064), 4, + ACTIONS(1618), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1062), 29, + ACTIONS(1616), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72684,7 +72022,159 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57878] = 3, + [57059] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1622), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1620), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57100] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1624), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57141] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1630), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1628), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57182] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1634), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1632), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57223] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1638), 4, @@ -72722,15 +72212,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57919] = 3, + [57264] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1592), 4, + ACTIONS(1050), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1590), 29, + ACTIONS(1048), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72760,15 +72250,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [57960] = 3, + [57305] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1694), 4, + ACTIONS(1646), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1692), 29, + ACTIONS(1644), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72798,15 +72288,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58001] = 3, + [57346] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1698), 4, + ACTIONS(1650), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1696), 29, + ACTIONS(1648), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72836,72 +72326,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58042] = 22, + [57387] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1900), 1, - sym_identifier, - ACTIONS(1906), 1, - anon_sym_RPAREN, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1468), 1, - sym_match_keyword_pattern, - STATE(1544), 1, - sym_match_positional_pattern, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1532), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [58121] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1686), 4, + ACTIONS(1654), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1684), 29, + ACTIONS(1652), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72931,15 +72364,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58162] = 3, + [57428] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1548), 4, + ACTIONS(1658), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1546), 29, + ACTIONS(1656), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -72969,15 +72402,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58203] = 3, + [57469] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1580), 4, + ACTIONS(1662), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1578), 29, + ACTIONS(1660), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -73007,7 +72440,121 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58244] = 3, + [57510] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1710), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1708), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57551] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1666), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1664), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57592] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57633] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1678), 4, @@ -73045,51 +72592,566 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [58285] = 20, + [57674] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1032), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 29, + anon_sym_DOT, anon_sym_LPAREN, - ACTIONS(1864), 1, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57715] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57756] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57797] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57838] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57879] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57920] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57961] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58002] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58043] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58084] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58125] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58166] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, sym_float, - STATE(1035), 1, + STATE(1043), 1, sym_template_string, - STATE(1061), 1, + STATE(1068), 1, sym_string, - STATE(1544), 1, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58241] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1912), 1, + sym_identifier, + ACTIONS(1914), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1424), 1, + sym_match_keyword_pattern, + STATE(1558), 1, sym_match_positional_pattern, - STATE(1714), 1, + STATE(1650), 1, sym_pattern_class_name, - STATE(1168), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1215), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1532), 2, + STATE(1611), 2, sym__match_pattern, sym_match_as_pattern, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1139), 8, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -73098,49 +73160,55 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58358] = 19, + [58320] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(656), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1864), 1, + ACTIONS(1884), 1, anon_sym_DASH, - ACTIONS(1866), 1, + ACTIONS(1886), 1, sym_match_wildcard_pattern, - ACTIONS(1868), 1, + ACTIONS(1888), 1, anon_sym_LBRACK, - ACTIONS(1870), 1, + ACTIONS(1890), 1, anon_sym_LBRACE, - ACTIONS(1872), 1, + ACTIONS(1892), 1, sym_integer, - ACTIONS(1874), 1, + ACTIONS(1894), 1, sym_float, - STATE(1035), 1, + ACTIONS(1912), 1, + sym_identifier, + ACTIONS(1916), 1, + anon_sym_RPAREN, + STATE(1043), 1, sym_template_string, - STATE(1061), 1, + STATE(1068), 1, sym_string, - STATE(1714), 1, + STATE(1421), 1, + sym_match_keyword_pattern, + STATE(1558), 1, + sym_match_positional_pattern, + STATE(1650), 1, sym_pattern_class_name, - STATE(1168), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1215), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1536), 2, + STATE(1611), 2, sym__match_pattern, sym_match_as_pattern, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1139), 8, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -73149,169 +73217,562 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [58428] = 19, + [58399] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1866), 1, - sym_match_wildcard_pattern, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1215), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1580), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1139), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [58498] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1908), 1, - sym_match_wildcard_pattern, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1098), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [58560] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - ACTIONS(656), 1, - sym__template_string_start, - ACTIONS(1858), 1, - sym_identifier, - ACTIONS(1860), 1, - anon_sym_LPAREN, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1868), 1, - anon_sym_LBRACK, - ACTIONS(1870), 1, - anon_sym_LBRACE, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1910), 1, - sym_match_wildcard_pattern, - STATE(1035), 1, - sym_template_string, - STATE(1061), 1, - sym_string, - STATE(1714), 1, - sym_pattern_class_name, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - STATE(1132), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [58622] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1666), 1, - anon_sym_not, - ACTIONS(1674), 1, - anon_sym_is, - ACTIONS(1914), 1, - anon_sym_as, - STATE(991), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1672), 2, + ACTIONS(1488), 1, + anon_sym_COLON_EQ, + ACTIONS(1898), 1, + anon_sym_EQ, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1656), 6, + ACTIONS(1204), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58444] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58485] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(590), 1, + anon_sym_COLON_EQ, + ACTIONS(634), 1, + anon_sym_EQ, + ACTIONS(272), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58530] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1912), 1, + sym_identifier, + ACTIONS(1918), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1488), 1, + sym_match_positional_pattern, + STATE(1493), 1, + sym_match_keyword_pattern, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1611), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58609] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58650] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1614), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58691] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58732] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1558), 1, + sym_match_positional_pattern, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1611), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58805] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1534), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58875] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1549), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58945] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1920), 1, + sym_match_wildcard_pattern, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1136), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [59007] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1922), 1, + sym_match_wildcard_pattern, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1101), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [59069] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1926), 1, + anon_sym_as, + ACTIONS(1931), 1, + anon_sym_not, + ACTIONS(1937), 1, + anon_sym_is, + STATE(996), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1934), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1928), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1912), 9, + ACTIONS(1924), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73321,28 +73782,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58661] = 8, + [59108] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1918), 1, - anon_sym_as, - ACTIONS(1923), 1, + ACTIONS(1578), 1, anon_sym_not, - ACTIONS(1929), 1, + ACTIONS(1586), 1, anon_sym_is, - STATE(991), 1, + ACTIONS(1942), 1, + anon_sym_EQ, + STATE(999), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1926), 2, + ACTIONS(1584), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1920), 6, + ACTIONS(1564), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1916), 9, + ACTIONS(1940), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [59147] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1602), 1, + anon_sym_not, + ACTIONS(1610), 1, + anon_sym_is, + ACTIONS(1942), 1, + anon_sym_as, + STATE(996), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1608), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1592), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1940), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73352,28 +73844,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58700] = 8, + [59186] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1918), 1, + ACTIONS(1926), 1, anon_sym_EQ, - ACTIONS(1935), 1, + ACTIONS(1947), 1, anon_sym_not, - ACTIONS(1941), 1, + ACTIONS(1953), 1, anon_sym_is, - STATE(992), 1, + STATE(999), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1938), 2, + ACTIONS(1950), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1932), 6, + ACTIONS(1944), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1916), 9, + ACTIONS(1924), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73383,45 +73875,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58739] = 8, + [59225] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1626), 1, - anon_sym_not, - ACTIONS(1634), 1, - anon_sym_is, - ACTIONS(1914), 1, - anon_sym_EQ, - STATE(992), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1632), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1612), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1912), 9, - anon_sym_RPAREN, + ACTIONS(1958), 1, anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58778] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1946), 1, - anon_sym_COMMA, - STATE(994), 1, + STATE(1000), 1, aux_sym__patterns_repeat1, - ACTIONS(1944), 18, + ACTIONS(1956), 18, anon_sym_RPAREN, anon_sym_COLON, anon_sym_in, @@ -73440,78 +73901,309 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58808] = 16, + [59255] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1949), 1, - sym_identifier, - ACTIONS(1951), 1, - anon_sym_RBRACE, - ACTIONS(1953), 1, - anon_sym_STAR_STAR, - STATE(1314), 1, - sym_string, - STATE(1315), 1, - sym_template_string, - STATE(1529), 1, - sym_match_double_star_pattern, - STATE(1586), 1, - sym_match_key_value_pattern, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1658), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - [58861] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1958), 1, - anon_sym_not, + ACTIONS(1926), 1, + anon_sym_EQ, ACTIONS(1964), 1, + anon_sym_not, + ACTIONS(1970), 1, anon_sym_is, - STATE(996), 1, + STATE(1001), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1961), 2, + ACTIONS(1967), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1955), 6, + ACTIONS(1961), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1916), 8, + ACTIONS(1924), 7, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [59292] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1973), 19, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_COLON, - anon_sym_async, - anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59317] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1926), 1, + anon_sym_EQ, + ACTIONS(1978), 1, + anon_sym_not, + ACTIONS(1984), 1, + anon_sym_is, + STATE(1003), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1981), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1975), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1924), 7, + anon_sym_COMMA, + anon_sym_if, anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58896] = 4, + anon_sym_COLON2, + sym_type_conversion, + [59354] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + anon_sym_not, + ACTIONS(1836), 1, + anon_sym_is, + ACTIONS(1942), 1, + anon_sym_EQ, + STATE(1003), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1834), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1816), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1940), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [59391] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1272), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59416] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1987), 1, + sym_identifier, + ACTIONS(1989), 1, + anon_sym_RBRACE, + ACTIONS(1991), 1, + anon_sym_STAR_STAR, + STATE(1369), 1, + sym_string, + STATE(1373), 1, + sym_template_string, + STATE(1557), 1, + sym_match_key_value_pattern, + STATE(1568), 1, + sym_match_double_star_pattern, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1652), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + [59469] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1987), 1, + sym_identifier, + ACTIONS(1991), 1, + anon_sym_STAR_STAR, + ACTIONS(1993), 1, + anon_sym_RBRACE, + STATE(1369), 1, + sym_string, + STATE(1373), 1, + sym_template_string, + STATE(1498), 1, + sym_match_key_value_pattern, + STATE(1553), 1, + sym_match_double_star_pattern, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1652), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + [59522] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1768), 1, + anon_sym_not, + ACTIONS(1776), 1, + anon_sym_is, + ACTIONS(1942), 1, + anon_sym_EQ, + STATE(1001), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1774), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1756), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1940), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [59559] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1995), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59584] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1987), 1, + sym_identifier, + ACTIONS(1991), 1, + anon_sym_STAR_STAR, + ACTIONS(1997), 1, + anon_sym_RBRACE, + STATE(1369), 1, + sym_string, + STATE(1373), 1, + sym_template_string, + STATE(1555), 1, + sym_match_double_star_pattern, + STATE(1557), 1, + sym_match_key_value_pattern, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1652), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + [59637] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(272), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(916), 3, + ACTIONS(928), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -73530,10 +74222,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - [58925] = 2, + [59666] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1967), 19, + ACTIONS(1999), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -73553,144 +74245,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58950] = 2, + [59691] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1969), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58975] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1918), 1, - anon_sym_EQ, - ACTIONS(1974), 1, - anon_sym_not, - ACTIONS(1980), 1, - anon_sym_is, - STATE(1000), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1977), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1971), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1916), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [59012] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1241), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [59037] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1983), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [59062] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1918), 1, - anon_sym_EQ, - ACTIONS(1988), 1, - anon_sym_not, - ACTIONS(1994), 1, - anon_sym_is, - STATE(1003), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1991), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1985), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1916), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [59099] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1235), 2, + ACTIONS(1209), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1997), 3, + ACTIONS(2001), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - ACTIONS(1230), 14, + ACTIONS(1204), 14, anon_sym_DOT, anon_sym_LPAREN, anon_sym_GT_GT, @@ -73705,55 +74270,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - [59128] = 8, + [59720] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(1750), 1, + ACTIONS(1792), 1, anon_sym_not, - ACTIONS(1758), 1, + ACTIONS(1800), 1, anon_sym_is, - ACTIONS(1914), 1, - anon_sym_EQ, - STATE(1003), 1, + STATE(1015), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1756), 2, + ACTIONS(1798), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1738), 6, + ACTIONS(1782), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1912), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [59165] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1816), 1, - anon_sym_not, - ACTIONS(1824), 1, - anon_sym_is, - STATE(996), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1822), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1806), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1912), 8, + ACTIONS(1940), 8, anon_sym_COMMA, anon_sym_if, anon_sym_COLON, @@ -73762,144 +74298,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [59200] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1949), 1, - sym_identifier, - ACTIONS(1953), 1, - anon_sym_STAR_STAR, - ACTIONS(1999), 1, - anon_sym_RBRACE, - STATE(1314), 1, - sym_string, - STATE(1315), 1, - sym_template_string, - STATE(1485), 1, - sym_match_key_value_pattern, - STATE(1560), 1, - sym_match_double_star_pattern, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1658), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - [59253] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1780), 1, - anon_sym_not, - ACTIONS(1788), 1, - anon_sym_is, - ACTIONS(1914), 1, - anon_sym_EQ, - STATE(1000), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1786), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1768), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1912), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [59290] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(1864), 1, - anon_sym_DASH, - ACTIONS(1872), 1, - sym_integer, - ACTIONS(1874), 1, - sym_float, - ACTIONS(1949), 1, - sym_identifier, - ACTIONS(1953), 1, - anon_sym_STAR_STAR, - ACTIONS(2001), 1, - anon_sym_RBRACE, - STATE(1314), 1, - sym_string, - STATE(1315), 1, - sym_template_string, - STATE(1584), 1, - sym_match_double_star_pattern, - STATE(1586), 1, - sym_match_key_value_pattern, - STATE(1168), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1658), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1876), 3, - sym_true, - sym_false, - sym_none, - [59343] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1848), 1, - anon_sym_not, - ACTIONS(1856), 1, - anon_sym_is, - STATE(1011), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1854), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1836), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1912), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [59377] = 7, + [59755] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(2006), 1, anon_sym_not, ACTIONS(2012), 1, anon_sym_is, - STATE(1011), 1, + STATE(1015), 1, aux_sym_comparison_operator_repeat1, ACTIONS(2009), 2, anon_sym_LT, @@ -73911,7 +74317,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1916), 7, + ACTIONS(1924), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [59790] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1860), 1, + anon_sym_not, + ACTIONS(1868), 1, + anon_sym_is, + STATE(1019), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1866), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1848), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1940), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -73919,12 +74353,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [59411] = 4, + [59824] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + [59870] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2015), 1, anon_sym_COMMA, - STATE(994), 1, + STATE(1000), 1, aux_sym__patterns_repeat1, ACTIONS(2017), 16, anon_sym_COLON, @@ -73943,144 +74410,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [59439] = 13, + [59898] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(1602), 1, - anon_sym_DOT, - ACTIONS(1604), 1, - anon_sym_LPAREN, - ACTIONS(1614), 1, - anon_sym_PIPE, - ACTIONS(1618), 1, - anon_sym_LBRACK, - ACTIONS(1620), 1, - anon_sym_STAR_STAR, - ACTIONS(1628), 1, - anon_sym_AMP, - ACTIONS(1630), 1, - anon_sym_CARET, - ACTIONS(1608), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1610), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1616), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(734), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1624), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - [59485] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2019), 1, - sym_identifier, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2025), 1, + ACTIONS(2022), 1, + anon_sym_not, + ACTIONS(2028), 1, + anon_sym_is, + STATE(1019), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(2025), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(2019), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1924), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, anon_sym_COLON, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, - STATE(1453), 1, - sym_parameter, - STATE(1606), 1, - sym__parameters, - STATE(1720), 1, - sym_lambda_parameters, - STATE(1574), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59528] = 12, + anon_sym_and, + anon_sym_or, + [59932] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2019), 1, - sym_identifier, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, ACTIONS(2031), 1, - anon_sym_COLON, - STATE(1453), 1, - sym_parameter, - STATE(1606), 1, - sym__parameters, - STATE(1682), 1, - sym_lambda_parameters, - STATE(1574), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59571] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2019), 1, - sym_identifier, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, + anon_sym_COMMA, ACTIONS(2033), 1, anon_sym_COLON, - STATE(1453), 1, - sym_parameter, - STATE(1606), 1, - sym__parameters, - STATE(1710), 1, - sym_lambda_parameters, - STATE(1574), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59614] = 6, - ACTIONS(3), 1, - sym_comment, ACTIONS(2035), 1, - anon_sym_COMMA, - ACTIONS(2037), 1, - anon_sym_COLON, - ACTIONS(2039), 1, anon_sym_EQ, - STATE(1012), 1, + STATE(1018), 1, aux_sym__patterns_repeat1, - ACTIONS(2041), 13, + ACTIONS(2037), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -74094,252 +74462,291 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [59645] = 12, + [59963] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2019), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2021), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, ACTIONS(2043), 1, - anon_sym_COLON, - STATE(1453), 1, - sym_parameter, - STATE(1606), 1, - sym__parameters, - STATE(1622), 1, - sym_lambda_parameters, - STATE(1574), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59688] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2019), 1, - sym_identifier, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, anon_sym_STAR, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, ACTIONS(2045), 1, anon_sym_COLON, - STATE(1453), 1, - sym_parameter, - STATE(1605), 1, - sym_lambda_parameters, - STATE(1606), 1, - sym__parameters, - STATE(1574), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59731] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2019), 1, - sym_identifier, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, ACTIONS(2047), 1, - anon_sym_COLON, - STATE(1453), 1, - sym_parameter, - STATE(1606), 1, - sym__parameters, - STATE(1705), 1, - sym_lambda_parameters, - STATE(1574), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59774] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2019), 1, - sym_identifier, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2027), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, ACTIONS(2049), 1, - anon_sym_COLON, - STATE(1453), 1, + anon_sym_SLASH, + STATE(1406), 1, sym_parameter, - STATE(1606), 1, + STATE(1689), 1, sym__parameters, - STATE(1642), 1, + STATE(1691), 1, sym_lambda_parameters, - STATE(1574), 2, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1454), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59817] = 11, + [60006] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2021), 1, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2023), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2027), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, + ACTIONS(2049), 1, anon_sym_SLASH, ACTIONS(2051), 1, - sym_identifier, - ACTIONS(2053), 1, - anon_sym_RPAREN, - STATE(1511), 1, + anon_sym_COLON, + STATE(1406), 1, sym_parameter, - STATE(1613), 1, + STATE(1689), 1, sym__parameters, - STATE(1510), 2, + STATE(1752), 1, + sym_lambda_parameters, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1454), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59857] = 13, + [60049] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2053), 1, + anon_sym_COLON, + STATE(1406), 1, + sym_parameter, + STATE(1639), 1, + sym_lambda_parameters, + STATE(1689), 1, + sym__parameters, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60092] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2055), 1, + anon_sym_COLON, + STATE(1406), 1, + sym_parameter, + STATE(1689), 1, + sym__parameters, + STATE(1729), 1, + sym_lambda_parameters, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60135] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2057), 1, + anon_sym_COLON, + STATE(1406), 1, + sym_parameter, + STATE(1667), 1, + sym_lambda_parameters, + STATE(1689), 1, + sym__parameters, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60178] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2059), 1, + anon_sym_COLON, + STATE(1406), 1, + sym_parameter, + STATE(1689), 1, + sym__parameters, + STATE(1697), 1, + sym_lambda_parameters, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60221] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2061), 1, + anon_sym_COLON, + STATE(1406), 1, + sym_parameter, + STATE(1689), 1, + sym__parameters, + STATE(1732), 1, + sym_lambda_parameters, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60264] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2063), 1, + sym_identifier, + ACTIONS(2065), 1, + anon_sym_RPAREN, + STATE(1445), 1, + sym_parameter, + STATE(1682), 1, + sym__parameters, + STATE(1507), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60304] = 13, ACTIONS(3), 1, sym_comment, ACTIONS(315), 1, sym__string_start, ACTIONS(317), 1, sym__template_string_start, - ACTIONS(1864), 1, + ACTIONS(1884), 1, anon_sym_DASH, - ACTIONS(1872), 1, + ACTIONS(1892), 1, sym_integer, - ACTIONS(1874), 1, + ACTIONS(1894), 1, sym_float, - ACTIONS(1949), 1, + ACTIONS(1987), 1, sym_identifier, - STATE(1314), 1, + STATE(1369), 1, sym_string, - STATE(1315), 1, + STATE(1373), 1, sym_template_string, - STATE(1586), 1, + STATE(1557), 1, sym_match_key_value_pattern, - STATE(1168), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1658), 2, + STATE(1652), 2, sym_match_literal_pattern, sym_match_value_pattern, - ACTIONS(1876), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - [59901] = 10, + [60348] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, - ACTIONS(2051), 1, - sym_identifier, - ACTIONS(2055), 1, - anon_sym_RPAREN, - STATE(1383), 1, - sym_parameter, - STATE(1510), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59938] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2019), 1, - sym_identifier, - ACTIONS(2021), 1, - anon_sym_LPAREN, - ACTIONS(2023), 1, - anon_sym_STAR, - ACTIONS(2027), 1, - anon_sym_STAR_STAR, - ACTIONS(2029), 1, - anon_sym_SLASH, - ACTIONS(2055), 1, + ACTIONS(2033), 1, anon_sym_COLON, - STATE(1383), 1, - sym_parameter, - STATE(1574), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1454), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59975] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2037), 1, - anon_sym_COLON, - ACTIONS(2039), 1, + ACTIONS(2035), 1, anon_sym_EQ, - ACTIONS(2041), 13, + ACTIONS(2037), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -74353,116 +74760,170 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [60000] = 10, + [60373] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2021), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2023), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2027), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2051), 1, + ACTIONS(2063), 1, sym_identifier, - ACTIONS(2057), 1, + ACTIONS(2067), 1, anon_sym_RPAREN, - STATE(1383), 1, + STATE(1437), 1, sym_parameter, - STATE(1510), 2, + STATE(1507), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1454), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [60037] = 10, + [60410] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2019), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2021), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2023), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2027), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2057), 1, + ACTIONS(2067), 1, anon_sym_COLON, - STATE(1383), 1, + STATE(1437), 1, sym_parameter, - STATE(1574), 2, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1454), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [60074] = 9, + [60447] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2021), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2023), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2027), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2051), 1, + ACTIONS(2063), 1, sym_identifier, - STATE(1383), 1, + ACTIONS(2069), 1, + anon_sym_RPAREN, + STATE(1437), 1, sym_parameter, - STATE(1510), 2, + STATE(1507), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1454), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [60108] = 9, + [60484] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2019), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2021), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2023), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2027), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2029), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - STATE(1383), 1, + ACTIONS(2069), 1, + anon_sym_COLON, + STATE(1437), 1, sym_parameter, - STATE(1574), 2, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1454), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [60142] = 3, + [60521] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(2061), 1, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2063), 1, + sym_identifier, + STATE(1437), 1, + sym_parameter, + STATE(1507), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60555] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + STATE(1437), 1, + sym_parameter, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60589] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1574), 1, anon_sym_as, - ACTIONS(2059), 12, + ACTIONS(1558), 12, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74475,12 +74936,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_and, anon_sym_or, - [60163] = 3, + [60610] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1622), 1, + ACTIONS(2073), 1, anon_sym_as, - ACTIONS(1606), 12, + ACTIONS(2071), 12, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74493,14 +74954,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_and, anon_sym_or, - [60184] = 4, + [60631] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2065), 1, + ACTIONS(2077), 1, anon_sym_DOT, - STATE(1033), 1, + STATE(1039), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2063), 10, + ACTIONS(2075), 10, anon_sym_import, anon_sym_LPAREN, anon_sym_RPAREN, @@ -74511,37 +74972,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60206] = 9, - ACTIONS(2068), 1, + [60653] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2074), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2077), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2079), 1, + ACTIONS(2088), 1, sym__string_end, - STATE(1034), 1, + STATE(1056), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2071), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60237] = 4, + [60684] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(656), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2094), 1, + anon_sym_COLON, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1676), 1, + sym__comprehension_clauses, + [60721] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 1, + anon_sym_DOT, + ACTIONS(2108), 1, + anon_sym_LPAREN, + STATE(1064), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2110), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [60744] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(666), 1, sym__template_string_start, - STATE(760), 2, + STATE(750), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(2081), 8, + ACTIONS(2112), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -74550,452 +75054,214 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60258] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - ACTIONS(2085), 1, - anon_sym_LPAREN, - STATE(1033), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2087), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60281] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [60765] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2095), 1, - sym__string_end, - STATE(1039), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60312] = 9, - ACTIONS(2077), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2097), 1, - sym__string_end, - STATE(1040), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60343] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2099), 1, - sym__string_end, - STATE(1034), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60374] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2101), 1, - sym__string_end, - STATE(1034), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60405] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2107), 1, - anon_sym_COLON, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACE, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1719), 1, - sym__comprehension_clauses, - [60442] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2119), 1, - sym__string_end, - STATE(1054), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60473] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2121), 1, - sym__string_end, - STATE(1034), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60504] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2123), 1, + ACTIONS(2114), 1, sym__string_end, STATE(1046), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60535] = 9, - ACTIONS(2077), 1, + [60796] = 9, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2089), 1, + ACTIONS(2116), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2122), 1, anon_sym_BSLASH, ACTIONS(2125), 1, sym__string_end, - STATE(1034), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2119), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60566] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [60827] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, ACTIONS(2127), 1, sym__string_end, - STATE(1034), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60597] = 9, - ACTIONS(2077), 1, + [60858] = 12, + ACTIONS(3), 1, sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2094), 1, + anon_sym_COLON, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1728), 1, + sym__comprehension_clauses, + [60895] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, ACTIONS(2129), 1, - sym__string_end, - STATE(1049), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60628] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, + anon_sym_RPAREN, ACTIONS(2131), 1, + anon_sym_COMMA, + ACTIONS(2134), 1, + anon_sym_as, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [60932] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2142), 1, sym__string_end, - STATE(1050), 1, + STATE(1051), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60659] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [60963] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2133), 1, - sym__string_end, - STATE(1034), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60690] = 9, - ACTIONS(2077), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2135), 1, - sym__string_end, - STATE(1034), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60721] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2137), 1, + ACTIONS(2144), 1, sym__string_end, STATE(1052), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60752] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [60994] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2139), 1, - sym__string_end, - STATE(1034), 1, - aux_sym_string_repeat1, - STATE(1254), 1, - sym_string_content, - STATE(1255), 1, - sym_interpolation, - STATE(1149), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2091), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60783] = 9, - ACTIONS(2077), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2141), 1, + ACTIONS(2146), 1, sym__string_end, - STATE(1043), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60814] = 9, - ACTIONS(2077), 1, + [61025] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2089), 1, - anon_sym_LBRACE2, - ACTIONS(2093), 1, - anon_sym_BSLASH, - ACTIONS(2143), 1, + ACTIONS(2148), 1, sym__string_end, - STATE(1034), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60845] = 12, + [61056] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2107), 1, - anon_sym_COLON, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACE, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1672), 1, - sym__comprehension_clauses, - [60882] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2063), 11, + ACTIONS(2075), 11, anon_sym_import, anon_sym_DOT, anon_sym_LPAREN, @@ -75007,263 +75273,479 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60899] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2145), 1, - anon_sym_RPAREN, - ACTIONS(2147), 1, - anon_sym_COMMA, - ACTIONS(2150), 1, - anon_sym_as, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1731), 1, - sym__comprehension_clauses, - [60936] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2107), 1, - anon_sym_COLON, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACE, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1603), 1, - sym__comprehension_clauses, - [60973] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2107), 1, - anon_sym_COLON, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACE, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1666), 1, - sym__comprehension_clauses, - [61010] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - ACTIONS(2158), 1, - anon_sym_LPAREN, - STATE(1036), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2160), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61033] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(654), 1, - sym__string_start, - STATE(759), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(2081), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61054] = 9, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2089), 1, + [61073] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2093), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2162), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2150), 1, sym__string_end, - STATE(1045), 1, + STATE(1057), 1, aux_sym_string_repeat1, - STATE(1254), 1, + STATE(1248), 1, sym_string_content, - STATE(1255), 1, + STATE(1252), 1, sym_interpolation, STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2091), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [61085] = 5, - ACTIONS(3), 1, + [61104] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2152), 1, + sym__string_end, + STATE(1058), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61135] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, sym_comment, ACTIONS(2154), 1, - anon_sym_and, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61166] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, ACTIONS(2156), 1, - anon_sym_or, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61197] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2158), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61228] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2160), 1, + sym__string_end, + STATE(1065), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61259] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2162), 1, + sym__string_end, + STATE(1062), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61290] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2164), 1, + sym__string_end, + STATE(1066), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61321] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, ACTIONS(2166), 1, - anon_sym_as, - ACTIONS(2164), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61107] = 11, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61352] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2168), 1, - anon_sym_RPAREN, - ACTIONS(2170), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1091), 1, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2094), 1, + anon_sym_COLON, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + STATE(1106), 1, sym_for_in_clause, - STATE(1400), 1, - aux_sym_argument_list_repeat1, - STATE(1652), 1, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1695), 1, sym__comprehension_clauses, - [61141] = 6, + [61389] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2174), 1, - anon_sym_as, - ACTIONS(2172), 6, + ACTIONS(2106), 1, + anon_sym_DOT, + ACTIONS(2168), 1, + anon_sym_LPAREN, + STATE(1039), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2170), 8, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61412] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2172), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61443] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2174), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61474] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2094), 1, + anon_sym_COLON, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1717), 1, + sym__comprehension_clauses, + [61511] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + STATE(749), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(2112), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61532] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2178), 1, + anon_sym_as, + ACTIONS(2176), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61165] = 5, + anon_sym_or, + [61552] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2176), 7, + ACTIONS(2180), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1628), 1, + sym__comprehension_clauses, + [61586] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2176), 8, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_if, anon_sym_COLON, anon_sym_else, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - [61187] = 5, + [61606] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2186), 1, - anon_sym_as, - ACTIONS(2184), 7, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(2136), 1, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61209] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, ACTIONS(2188), 1, + anon_sym_as, + ACTIONS(2186), 6, anon_sym_RPAREN, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1652), 1, - sym__comprehension_clauses, - [61243] = 5, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61630] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2172), 7, + ACTIONS(2192), 1, + anon_sym_as, + ACTIONS(2190), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61652] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2129), 1, + anon_sym_RPAREN, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [61686] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2194), 1, + anon_sym_RPAREN, + ACTIONS(2196), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1476), 1, + aux_sym_argument_list_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [61720] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2186), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -75271,143 +75753,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - [61265] = 11, + [61742] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2152), 1, + ACTIONS(2136), 1, anon_sym_if, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2190), 1, - anon_sym_RPAREN, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1657), 1, - sym__comprehension_clauses, - [61299] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2192), 1, - anon_sym_RPAREN, - ACTIONS(2194), 1, - anon_sym_COMMA, - STATE(1091), 1, - sym_for_in_clause, - STATE(1423), 1, - aux_sym_argument_list_repeat1, - STATE(1731), 1, - sym__comprehension_clauses, - [61333] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2198), 1, - anon_sym_as, - ACTIONS(2196), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61357] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, ACTIONS(2202), 1, anon_sym_as, - ACTIONS(2200), 7, + ACTIONS(2200), 6, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61379] = 4, + [61766] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2164), 8, + ACTIONS(2206), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2204), 8, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_else, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - [61399] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2204), 1, - anon_sym_RPAREN, - ACTIONS(2206), 1, - anon_sym_COMMA, - STATE(1091), 1, - sym_for_in_clause, - STATE(1448), 1, - aux_sym_argument_list_repeat1, - STATE(1657), 1, - sym__comprehension_clauses, - [61433] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2166), 1, - anon_sym_as, - ACTIONS(2164), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_or, - [61453] = 3, + [61784] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(2210), 2, @@ -75422,14 +75801,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61471] = 4, + [61802] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2180), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2184), 8, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1754), 1, + sym__comprehension_clauses, + [61836] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2212), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -75438,216 +75840,298 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - [61491] = 11, + [61856] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACK, - ACTIONS(2152), 1, + ACTIONS(2136), 1, anon_sym_if, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1726), 1, - sym__comprehension_clauses, - [61525] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2196), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61547] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2200), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61567] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2212), 1, - anon_sym_as, - ACTIONS(2176), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61591] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2214), 1, - anon_sym_RPAREN, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1670), 1, - sym__comprehension_clauses, - [61625] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACK, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1686), 1, - sym__comprehension_clauses, - [61659] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACK, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1732), 1, - sym__comprehension_clauses, - [61693] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2113), 1, - anon_sym_RBRACK, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1659), 1, - sym__comprehension_clauses, - [61727] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, ACTIONS(2216), 1, + anon_sym_as, + ACTIONS(2214), 6, anon_sym_RPAREN, - ACTIONS(2218), 1, anon_sym_COMMA, - STATE(1091), 1, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61880] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2178), 1, + anon_sym_as, + ACTIONS(2176), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61902] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2218), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [61936] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2200), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61958] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2220), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [61992] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2222), 1, + anon_sym_RPAREN, + ACTIONS(2224), 1, + anon_sym_COMMA, + STATE(1106), 1, sym_for_in_clause, STATE(1441), 1, aux_sym_argument_list_repeat1, - STATE(1670), 1, + STATE(1628), 1, sym__comprehension_clauses, - [61761] = 3, + [62026] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2222), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(2220), 8, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2190), 8, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_PIPE, + anon_sym_else, anon_sym_RBRACK, anon_sym_RBRACE, - [61779] = 3, + anon_sym_EQ, + [62046] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2180), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2164), 9, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2214), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [62068] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1713), 1, + sym__comprehension_clauses, + [62102] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2226), 1, + anon_sym_as, + ACTIONS(2212), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62124] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1675), 1, + sym__comprehension_clauses, + [62158] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2228), 1, + anon_sym_RPAREN, + ACTIONS(2230), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1459), 1, + aux_sym_argument_list_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [62192] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1526), 1, + aux_sym_argument_list_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [62226] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1722), 1, + sym__comprehension_clauses, + [62260] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2176), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -75657,69 +76141,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_or, - [61797] = 11, + [62278] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2145), 1, - anon_sym_RPAREN, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2140), 1, anon_sym_or, - STATE(1091), 1, - sym_for_in_clause, - STATE(1267), 1, - aux_sym__collection_elements_repeat1, - STATE(1731), 1, - sym__comprehension_clauses, - [61831] = 6, + ACTIONS(2236), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62297] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2226), 1, + ACTIONS(2136), 1, anon_sym_if, - ACTIONS(2224), 3, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2238), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62318] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2236), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62337] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2242), 1, + anon_sym_if, + ACTIONS(2245), 1, + anon_sym_async, + ACTIONS(2248), 1, + anon_sym_for, + ACTIONS(2240), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1095), 3, + STATE(1100), 3, sym_for_in_clause, sym_if_clause, aux_sym__comprehension_clauses_repeat1, - [61854] = 4, + [62360] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2228), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61873] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2232), 1, + ACTIONS(2253), 1, anon_sym_PIPE, - STATE(1100), 1, + STATE(1105), 1, aux_sym_match_or_pattern_repeat1, - ACTIONS(2230), 7, + ACTIONS(2251), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75727,204 +76219,141 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [61892] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2234), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61913] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2226), 1, - anon_sym_if, - ACTIONS(2236), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1101), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [61936] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_COMMA, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - STATE(1220), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2242), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61961] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2228), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61980] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2232), 1, - anon_sym_PIPE, - STATE(1093), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2248), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61999] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2228), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62018] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2252), 1, - anon_sym_PIPE, - STATE(1100), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2250), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62037] = 6, + [62379] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2257), 1, + anon_sym_PIPE, + STATE(1102), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2255), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62398] = 7, + ACTIONS(3), 1, + sym_comment, ACTIONS(2260), 1, + anon_sym_COMMA, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + STATE(1274), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2264), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62423] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2236), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, anon_sym_async, - ACTIONS(2263), 1, anon_sym_for, - ACTIONS(2255), 3, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62442] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2253), 1, + anon_sym_PIPE, + STATE(1102), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2270), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62461] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2274), 1, + anon_sym_if, + ACTIONS(2272), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1101), 3, + STATE(1108), 3, sym_for_in_clause, sym_if_clause, aux_sym__comprehension_clauses_repeat1, - [62060] = 7, + [62484] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2238), 1, + ACTIONS(2260), 1, anon_sym_COMMA, - ACTIONS(2240), 1, + ACTIONS(2262), 1, anon_sym_if, - ACTIONS(2244), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2246), 1, + ACTIONS(2268), 1, anon_sym_or, - STATE(1220), 1, + STATE(1274), 1, aux_sym_expression_list_repeat1, - ACTIONS(2266), 4, + ACTIONS(2276), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [62085] = 2, + [62509] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2268), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2274), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, + ACTIONS(2278), 3, + anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - [62099] = 2, + STATE(1100), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [62532] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1606), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, + ACTIONS(2182), 1, anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [62113] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2270), 8, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2238), 6, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, anon_sym_COLON, - anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62127] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2059), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [62141] = 2, + [62553] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2272), 8, + ACTIONS(2280), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75933,10 +76362,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62155] = 2, + [62567] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2274), 8, + ACTIONS(2282), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75945,87 +76374,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62169] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2276), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62183] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2278), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62197] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - ACTIONS(2158), 1, - anon_sym_LPAREN, - ACTIONS(2280), 1, - anon_sym_EQ, - STATE(1036), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2160), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_PIPE, - [62219] = 4, + [62581] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2176), 6, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_SEMI, + [62599] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2290), 1, anon_sym_COMMA, STATE(1113), 1, aux_sym_for_in_clause_repeat1, - ACTIONS(2282), 6, + ACTIONS(2288), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [62237] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2288), 1, - anon_sym_COMMA, - STATE(1113), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2286), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62255] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2291), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62269] = 2, + [62617] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2293), 8, @@ -76037,196 +76414,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62283] = 2, + [62631] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2295), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62297] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2299), 1, - anon_sym_COMMA, - STATE(1166), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2297), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62315] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2301), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62329] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2244), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2246), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2184), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62347] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2196), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62367] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2200), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62385] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2164), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [62401] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2164), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62419] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2176), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62439] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2172), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62459] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2200), 6, + ACTIONS(2190), 6, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_if, anon_sym_EQ, anon_sym_SEMI, - [62477] = 7, + [62649] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(69), 1, - anon_sym_AT, - ACTIONS(2307), 1, - anon_sym_async, - ACTIONS(2309), 1, - anon_sym_def, - ACTIONS(2311), 1, - anon_sym_class, - STATE(610), 2, - sym_function_definition, - sym_class_definition, - STATE(1257), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [62501] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(69), 1, - anon_sym_AT, - ACTIONS(2313), 1, - anon_sym_async, - ACTIONS(2315), 1, - anon_sym_def, - ACTIONS(2317), 1, - anon_sym_class, - STATE(550), 2, - sym_function_definition, - sym_class_definition, - STATE(1257), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [62525] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2319), 8, + ACTIONS(2112), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76235,7 +76440,148 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62539] = 2, + [62663] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2297), 1, + anon_sym_PIPE, + ACTIONS(2295), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62679] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2200), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [62699] = 6, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2301), 1, + anon_sym_LBRACE2, + ACTIONS(2306), 1, + anon_sym_BSLASH, + ACTIONS(2309), 1, + sym__string_end, + STATE(1119), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2303), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [62721] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2311), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62741] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2186), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [62761] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2315), 1, + anon_sym_COMMA, + STATE(1113), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2313), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62779] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2212), 6, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_SEMI, + [62797] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2317), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62811] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2319), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62831] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1558), 8, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [62845] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2321), 8, @@ -76247,34 +76593,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62553] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2234), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62573] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2250), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62587] = 2, + [62859] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2323), 8, @@ -76286,41 +76605,123 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62601] = 8, + [62873] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2325), 1, + ACTIONS(2071), 8, + sym__newline, anon_sym_from, - ACTIONS(2327), 1, anon_sym_COMMA, - ACTIONS(2329), 1, anon_sym_if, - STATE(1272), 1, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [62887] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2325), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62901] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1558), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [62915] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2327), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62929] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62943] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2331), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62957] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2335), 1, + anon_sym_COMMA, + STATE(1173), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2333), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62975] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2255), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62989] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2337), 1, + anon_sym_from, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, aux_sym_expression_list_repeat1, - ACTIONS(2331), 2, + ACTIONS(2341), 2, sym__newline, anon_sym_SEMI, - [62627] = 6, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2333), 1, - anon_sym_LBRACE2, - ACTIONS(2338), 1, - anon_sym_BSLASH, - ACTIONS(2341), 1, - sym__string_end, - STATE(1135), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2335), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [62649] = 2, + [63015] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2343), 8, @@ -76332,7 +76733,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62663] = 2, + [63029] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2238), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [63049] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2345), 8, @@ -76344,7 +76760,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62677] = 2, + [63063] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2347), 8, @@ -76356,23 +76772,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62691] = 3, + [63077] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2351), 1, - anon_sym_PIPE, - ACTIONS(2349), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62707] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2353), 8, + ACTIONS(2349), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -76381,88 +76784,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62721] = 4, + [63091] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2184), 6, - sym__newline, - anon_sym_from, + ACTIONS(2351), 8, + anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, anon_sym_if, - anon_sym_EQ, - anon_sym_SEMI, - [62739] = 5, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63105] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2329), 1, + ACTIONS(2198), 1, anon_sym_if, - ACTIONS(2234), 5, - sym__newline, - anon_sym_from, + ACTIONS(2311), 5, + anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62759] = 5, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63125] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2355), 5, + ACTIONS(2071), 8, anon_sym_COMMA, + anon_sym_if, anon_sym_RBRACE, anon_sym_EQ, + anon_sym_and, + anon_sym_or, anon_sym_COLON2, sym_type_conversion, - [62779] = 7, + [63139] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, + ACTIONS(69), 1, + anon_sym_AT, + ACTIONS(2353), 1, + anon_sym_async, + ACTIONS(2355), 1, + anon_sym_def, ACTIONS(2357), 1, - anon_sym_COMMA, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2266), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62803] = 5, + anon_sym_class, + STATE(534), 2, + sym_function_definition, + sym_class_definition, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [63163] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2176), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62823] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2164), 7, + ACTIONS(2176), 7, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -76470,21 +76853,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_or, anon_sym_SEMI, - [62839] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2164), 6, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_SEMI, - [62857] = 2, + [63179] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2359), 8, @@ -76496,8 +76865,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62871] = 6, - ACTIONS(2077), 1, + [63193] = 6, + ACTIONS(2086), 1, sym_comment, ACTIONS(2361), 1, anon_sym_LBRACE2, @@ -76505,14 +76874,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BSLASH, ACTIONS(2367), 1, sym__string_end, - STATE(1135), 2, + STATE(1119), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, ACTIONS(2363), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [62893] = 2, + [63215] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2369), 8, @@ -76524,833 +76893,808 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62907] = 5, + [63229] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2355), 5, + ACTIONS(2371), 8, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, + anon_sym_if, anon_sym_COLON, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62927] = 5, + [63243] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2268), 1, anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2172), 5, - sym__newline, - anon_sym_from, + ACTIONS(2212), 6, anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, anon_sym_EQ, - anon_sym_SEMI, - [62947] = 5, + anon_sym_COLON2, + sym_type_conversion, + [63261] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2104), 1, anon_sym_or, - ACTIONS(2371), 5, - anon_sym_RPAREN, + ACTIONS(2212), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63279] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2200), 5, anon_sym_COMMA, anon_sym_COLON, - anon_sym_RBRACK, + anon_sym_async, + anon_sym_for, anon_sym_RBRACE, - [62967] = 5, + [63299] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2246), 1, + ACTIONS(2104), 1, anon_sym_or, - ACTIONS(2371), 5, + ACTIONS(2190), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63317] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2176), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_or, + [63333] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2176), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63351] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2373), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63365] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2238), 5, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [62987] = 5, + [63385] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2106), 1, + anon_sym_DOT, + ACTIONS(2108), 1, + anon_sym_LPAREN, + ACTIONS(2375), 1, + anon_sym_EQ, + STATE(1064), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2110), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_PIPE, + [63407] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2329), 1, + ACTIONS(2299), 1, anon_sym_if, - ACTIONS(2196), 5, + ACTIONS(2214), 5, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [63007] = 2, + [63427] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1606), 8, - sym__newline, - anon_sym_from, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2200), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63447] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2214), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63467] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2190), 6, anon_sym_COMMA, anon_sym_if, + anon_sym_RBRACE, anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [63021] = 4, + anon_sym_COLON2, + sym_type_conversion, + [63485] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2154), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2156), 1, + ACTIONS(2176), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_or, - ACTIONS(2373), 6, + anon_sym_COLON2, + sym_type_conversion, + [63501] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2186), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63521] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2176), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63539] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2214), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63559] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2319), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63579] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2186), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63599] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2377), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [63039] = 4, + [63617] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - ACTIONS(2184), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, + ACTIONS(69), 1, + anon_sym_AT, + ACTIONS(2379), 1, anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [63057] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - ACTIONS(2196), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [63077] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - ACTIONS(2200), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [63095] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2164), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_or, - [63111] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - ACTIONS(2164), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [63129] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - ACTIONS(2176), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [63149] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2105), 1, - anon_sym_if, - ACTIONS(2115), 1, - anon_sym_and, - ACTIONS(2117), 1, - anon_sym_or, - ACTIONS(2172), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [63169] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2377), 1, - anon_sym_COMMA, - STATE(1112), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2375), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63187] = 4, - ACTIONS(3), 1, - sym_comment, ACTIONS(2381), 1, + anon_sym_def, + ACTIONS(2383), 1, + anon_sym_class, + STATE(605), 2, + sym_function_definition, + sym_class_definition, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [63641] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2387), 1, anon_sym_COMMA, STATE(1113), 1, aux_sym_for_in_clause_repeat1, - ACTIONS(2379), 6, + ACTIONS(2385), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [63205] = 2, + [63659] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2059), 8, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [63219] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2081), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63233] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2383), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63247] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, - ACTIONS(2385), 1, - anon_sym_COMMA, - ACTIONS(2387), 1, - anon_sym_RBRACE, - STATE(1091), 1, - sym_for_in_clause, - STATE(1507), 1, - aux_sym_dictionary_repeat1, - STATE(1721), 1, - sym__comprehension_clauses, - [63272] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2389), 1, - anon_sym_except, ACTIONS(2391), 1, + anon_sym_COMMA, + STATE(1122), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2389), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63677] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2276), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63701] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2395), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63715] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2399), 1, + anon_sym_as, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_COLON, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [63740] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2409), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63753] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2411), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63772] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + ACTIONS(2415), 1, + anon_sym_LPAREN, + ACTIONS(2417), 1, + anon_sym_STAR, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1559), 1, + sym__import_list, + STATE(1561), 1, + sym_wildcard_import, + [63797] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2419), 2, + sym__newline, + anon_sym_SEMI, + [63820] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2200), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [63839] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2421), 1, + anon_sym_except, + ACTIONS(2423), 1, anon_sym_finally, - STATE(611), 1, + STATE(540), 1, sym_finally_clause, STATE(266), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(271), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - [63293] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2393), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63306] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2286), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63319] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2395), 1, - anon_sym_COMMA, - ACTIONS(2397), 1, - anon_sym_as, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2401), 1, - anon_sym_COLON, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - STATE(1342), 1, - aux_sym_exception_list_repeat1, - [63344] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2389), 1, - anon_sym_except, - ACTIONS(2391), 1, - anon_sym_finally, - STATE(521), 1, - sym_finally_clause, - STATE(273), 2, + STATE(283), 2, sym_except_clause, aux_sym_try_statement_repeat1, - STATE(279), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [63365] = 7, + [63860] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2327), 1, - anon_sym_COMMA, - ACTIONS(2329), 1, - anon_sym_if, - STATE(1272), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2407), 2, - sym__newline, - anon_sym_SEMI, - [63388] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2409), 1, - sym_identifier, - ACTIONS(2411), 1, - anon_sym_DOT, - ACTIONS(2413), 1, - anon_sym___future__, - STATE(1374), 1, - aux_sym_import_prefix_repeat1, - STATE(1419), 1, - sym_import_prefix, - STATE(1677), 2, - sym_relative_import, - sym_dotted_name, - [63411] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2176), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63430] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2327), 1, - anon_sym_COMMA, - ACTIONS(2329), 1, - anon_sym_if, - STATE(1272), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2415), 2, - sym__newline, - anon_sym_SEMI, - [63453] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2152), 1, - anon_sym_if, - ACTIONS(2154), 1, - anon_sym_and, - ACTIONS(2156), 1, - anon_sym_or, - ACTIONS(2417), 4, - anon_sym_COMMA, + ACTIONS(2096), 1, anon_sym_async, + ACTIONS(2098), 1, anon_sym_for, - anon_sym_RBRACE, - [63472] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2419), 1, + ACTIONS(2425), 1, anon_sym_COMMA, - STATE(1350), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2421), 2, - sym__newline, - anon_sym_SEMI, - [63495] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2423), 1, - anon_sym_COMMA, - STATE(1360), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2425), 2, - sym__newline, - anon_sym_SEMI, - [63518] = 8, - ACTIONS(3), 1, - sym_comment, ACTIONS(2427), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1450), 1, + aux_sym_dictionary_repeat1, + STATE(1724), 1, + sym__comprehension_clauses, + [63885] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, sym_identifier, + ACTIONS(2417), 1, + anon_sym_STAR, ACTIONS(2429), 1, anon_sym_LPAREN, - ACTIONS(2431), 1, - anon_sym_STAR, - STATE(1281), 1, + STATE(1290), 1, sym_dotted_name, - STATE(1372), 1, + STATE(1327), 1, sym_aliased_import, - STATE(1517), 1, + STATE(1579), 1, sym__import_list, - STATE(1521), 1, + STATE(1580), 1, sym_wildcard_import, - [63543] = 5, + [63910] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2355), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_SEMI, - [63562] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2172), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63581] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2266), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63594] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2184), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63611] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2240), 1, - anon_sym_if, - ACTIONS(2244), 1, - anon_sym_and, - ACTIONS(2246), 1, - anon_sym_or, - ACTIONS(2433), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63630] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2059), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [63643] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2427), 1, - sym_identifier, - ACTIONS(2431), 1, - anon_sym_STAR, - ACTIONS(2435), 1, - anon_sym_LPAREN, - STATE(1281), 1, - sym_dotted_name, - STATE(1372), 1, - sym_aliased_import, - STATE(1534), 1, - sym__import_list, - STATE(1535), 1, - sym_wildcard_import, - [63668] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2437), 1, - sym_identifier, - ACTIONS(2439), 1, - anon_sym_STAR, - ACTIONS(2441), 1, - anon_sym_STAR_STAR, - STATE(1483), 4, - sym_typevar_parameter, - sym_typevartuple_parameter, - sym_paramspec_parameter, - sym__type_parameter, - [63687] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2111), 1, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2228), 1, + anon_sym_RPAREN, + ACTIONS(2230), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1456), 1, + aux_sym_argument_list_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [63935] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2431), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [63960] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2214), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [63979] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2190), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [63996] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2176), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_or, + [64011] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2433), 2, + sym__newline, + anon_sym_SEMI, + [64034] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2437), 1, + anon_sym_as, + ACTIONS(2435), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [64055] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2439), 1, + anon_sym_as, + ACTIONS(2441), 1, + anon_sym_COLON, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64080] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, anon_sym_for, ACTIONS(2443), 1, anon_sym_COMMA, ACTIONS(2445), 1, anon_sym_RBRACE, - STATE(1091), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1413), 1, + STATE(1466), 1, aux_sym_dictionary_repeat1, - STATE(1601), 1, + STATE(1680), 1, sym__comprehension_clauses, - [63712] = 5, + [64105] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2447), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63731] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2196), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63750] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2327), 1, - anon_sym_COMMA, - ACTIONS(2329), 1, - anon_sym_if, - STATE(1272), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2266), 2, - sym__newline, - anon_sym_SEMI, - [63773] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2433), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63792] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2200), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63809] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2164), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_or, - [63824] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_async, - ACTIONS(2111), 1, - anon_sym_for, + ACTIONS(2447), 1, + anon_sym_except, ACTIONS(2449), 1, - anon_sym_COMMA, - ACTIONS(2451), 1, - anon_sym_RBRACE, - STATE(1091), 1, - sym_for_in_clause, - STATE(1437), 1, - aux_sym_dictionary_repeat1, - STATE(1667), 1, - sym__comprehension_clauses, - [63849] = 4, + anon_sym_finally, + STATE(564), 1, + sym_finally_clause, + STATE(281), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + STATE(282), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + [64126] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2403), 1, - anon_sym_and, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2194), 1, + anon_sym_RPAREN, + ACTIONS(2196), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1472), 1, + aux_sym_argument_list_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [64151] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2164), 5, + ACTIONS(2186), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [64170] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1558), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - [63866] = 5, + anon_sym_and, + anon_sym_or, + [64183] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2453), 4, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2451), 4, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_EQ, - [63885] = 5, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64202] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2437), 1, + ACTIONS(2453), 1, sym_identifier, - ACTIONS(2439), 1, + ACTIONS(2455), 1, anon_sym_STAR, - ACTIONS(2441), 1, + ACTIONS(2457), 1, anon_sym_STAR_STAR, - STATE(1519), 4, + STATE(1577), 4, sym_typevar_parameter, sym_typevartuple_parameter, sym_paramspec_parameter, sym__type_parameter, - [63904] = 8, + [64221] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2395), 1, - anon_sym_COMMA, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2455), 1, - anon_sym_as, - ACTIONS(2457), 1, - anon_sym_COLON, - STATE(1342), 1, - aux_sym_exception_list_repeat1, - [63929] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2395), 1, - anon_sym_COMMA, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, anon_sym_and, - ACTIONS(2405), 1, + ACTIONS(2407), 1, anon_sym_or, - ACTIONS(2459), 1, - anon_sym_as, - ACTIONS(2461), 1, - anon_sym_COLON, - STATE(1342), 1, - aux_sym_exception_list_repeat1, - [63954] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, - ACTIONS(2465), 1, - anon_sym_as, - ACTIONS(2463), 3, + ACTIONS(2176), 5, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, + anon_sym_if, anon_sym_COLON, - [63975] = 7, + [64238] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2327), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2329), 1, - anon_sym_if, - STATE(1272), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2467), 2, - sym__newline, - anon_sym_SEMI, - [63998] = 7, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [64263] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2327), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2329), 1, - anon_sym_if, - STATE(1272), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2469), 2, - sym__newline, - anon_sym_SEMI, - [64021] = 2, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1728), 1, + sym__comprehension_clauses, + [64288] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2471), 7, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1754), 1, + sym__comprehension_clauses, + [64313] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2459), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -77358,284 +77702,638 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [64034] = 6, + [64326] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1695), 1, + sym__comprehension_clauses, + [64351] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2461), 1, + anon_sym_COMMA, + ACTIONS(2463), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1449), 1, + aux_sym_dictionary_repeat1, + STATE(1665), 1, + sym__comprehension_clauses, + [64376] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2465), 1, + anon_sym_as, + ACTIONS(2467), 1, + anon_sym_COLON, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64401] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2469), 1, + anon_sym_as, + ACTIONS(2471), 1, + anon_sym_COLON, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64426] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2276), 2, + sym__newline, + anon_sym_SEMI, + [64449] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1521), 1, + aux_sym_argument_list_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [64474] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2222), 1, + anon_sym_RPAREN, + ACTIONS(2224), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1412), 1, + aux_sym_argument_list_repeat1, + STATE(1628), 1, + sym__comprehension_clauses, + [64499] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(2473), 1, - anon_sym_except, + sym_identifier, ACTIONS(2475), 1, - anon_sym_finally, - STATE(566), 1, - sym_finally_clause, - STATE(268), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(269), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [64055] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2395), 1, - anon_sym_COMMA, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, - anon_sym_and, - ACTIONS(2405), 1, - anon_sym_or, + anon_sym_DOT, ACTIONS(2477), 1, - anon_sym_as, - ACTIONS(2479), 1, - anon_sym_COLON, - STATE(1342), 1, - aux_sym_exception_list_repeat1, - [64080] = 2, + anon_sym___future__, + STATE(1343), 1, + aux_sym_import_prefix_repeat1, + STATE(1462), 1, + sym_import_prefix, + STATE(1712), 2, + sym_relative_import, + sym_dotted_name, + [64522] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1606), 7, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2212), 5, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [64093] = 5, + [64539] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2421), 1, + anon_sym_except, + ACTIONS(2423), 1, + anon_sym_finally, + STATE(556), 1, + sym_finally_clause, + STATE(267), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(275), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [64560] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2447), 1, + anon_sym_except, + ACTIONS(2449), 1, + anon_sym_finally, + STATE(533), 1, + sym_finally_clause, + STATE(272), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(278), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [64581] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1628), 1, + sym__comprehension_clauses, + [64606] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1722), 1, + sym__comprehension_clauses, + [64631] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2329), 1, + ACTIONS(2299), 1, anon_sym_if, - ACTIONS(2371), 4, + ACTIONS(2311), 4, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_SEMI, - [64112] = 6, + [64650] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2473), 1, - anon_sym_except, - ACTIONS(2475), 1, - anon_sym_finally, - STATE(608), 1, - sym_finally_clause, - STATE(272), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(276), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [64133] = 8, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2319), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_SEMI, + [64669] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2109), 1, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2451), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [64688] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2288), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, anon_sym_async, - ACTIONS(2111), 1, anon_sym_for, - ACTIONS(2481), 1, - anon_sym_COMMA, - ACTIONS(2483), 1, - anon_sym_RBRACE, - STATE(1091), 1, - sym_for_in_clause, - STATE(1501), 1, - aux_sym_dictionary_repeat1, - STATE(1678), 1, - sym__comprehension_clauses, - [64158] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2487), 1, - anon_sym_as, - ACTIONS(2485), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [64173] = 7, + [64701] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2329), 1, + ACTIONS(2299), 1, anon_sym_if, - ACTIONS(2423), 1, + ACTIONS(2479), 1, anon_sym_COMMA, - STATE(1354), 1, + STATE(1380), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2481), 2, + sym__newline, + anon_sym_SEMI, + [64724] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2483), 4, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [64743] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2485), 1, + anon_sym_COMMA, + STATE(1401), 1, aux_sym_assert_statement_repeat1, - ACTIONS(2489), 2, + ACTIONS(2487), 2, sym__newline, anon_sym_SEMI, - [64196] = 4, + [64766] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2491), 1, - anon_sym_DOT, - STATE(1224), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2493), 4, - sym__newline, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [64212] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2497), 1, - anon_sym_COMMA, - STATE(1218), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(2495), 4, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RPAREN, - anon_sym_if, - anon_sym_COLON, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [64791] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RBRACK, - [64228] = 4, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1713), 1, + sym__comprehension_clauses, + [64816] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2500), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1233), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2502), 4, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [64244] = 4, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1717), 1, + sym__comprehension_clauses, + [64841] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2504), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1233), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2502), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [64260] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2160), 6, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [64866] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RBRACK, - anon_sym_RBRACE, - [64272] = 4, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1675), 1, + sym__comprehension_clauses, + [64891] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - STATE(1033), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2506), 4, - anon_sym_import, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - [64288] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2489), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_EQ, + [64910] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1676), 1, + sym__comprehension_clauses, + [64935] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2071), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [64948] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2453), 1, + sym_identifier, + ACTIONS(2455), 1, + anon_sym_STAR, + ACTIONS(2457), 1, + anon_sym_STAR_STAR, + STATE(1409), 4, + sym_typevar_parameter, + sym_typevartuple_parameter, + sym_paramspec_parameter, + sym__type_parameter, + [64967] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2491), 2, + sym__newline, + anon_sym_SEMI, + [64990] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2493), 1, + anon_sym_COMMA, + ACTIONS(2495), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1479), 1, + aux_sym_dictionary_repeat1, + STATE(1714), 1, + sym__comprehension_clauses, + [65015] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2276), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [65028] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2319), 4, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [65047] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2497), 2, + sym__newline, + anon_sym_SEMI, + [65070] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2501), 1, + anon_sym_as, + ACTIONS(2499), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65085] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2485), 1, + anon_sym_COMMA, + STATE(1390), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2503), 2, + sym__newline, + anon_sym_SEMI, + [65108] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2505), 1, + anon_sym_DOT, + STATE(1242), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2075), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [65124] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(2510), 1, - anon_sym_COLON, - ACTIONS(2508), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [64308] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2491), 1, - anon_sym_DOT, STATE(1249), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2506), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [64324] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2512), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [64342] = 3, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2514), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2516), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64356] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2520), 1, - anon_sym_COLON, - ACTIONS(2522), 1, - anon_sym_EQ, - STATE(1371), 1, - sym__type_bound, - STATE(1537), 1, - sym__type_param_default, - ACTIONS(2518), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64376] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - STATE(1222), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2493), 4, - anon_sym_import, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - [64392] = 5, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65140] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2524), 3, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2514), 1, + anon_sym_COLON, + ACTIONS(2512), 2, anon_sym_COMMA, anon_sym_RBRACK, - anon_sym_EQ, - [64410] = 3, - ACTIONS(2077), 1, + [65160] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2516), 1, + anon_sym_DOT, + STATE(1262), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2518), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [65176] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2522), 1, + anon_sym_COLON, + ACTIONS(2520), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65196] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2524), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [65214] = 3, + ACTIONS(2086), 1, sym_comment, ACTIONS(2526), 2, anon_sym_LBRACE2, @@ -77645,1779 +78343,1785 @@ static const uint16_t ts_small_parse_table[] = { sym__string_end, sym__escape_interpolation, sym_escape_sequence, - [64424] = 4, + [65228] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2532), 1, anon_sym_COMMA, - STATE(1231), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2530), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64440] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2216), 1, - anon_sym_RPAREN, - ACTIONS(2218), 1, - anon_sym_COMMA, - STATE(1441), 1, - aux_sym_argument_list_repeat1, - [64462] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2535), 1, - anon_sym_COMMA, - STATE(1233), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2530), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [64478] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2538), 1, - anon_sym_COLON, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - [64500] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2540), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [64518] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2544), 1, - anon_sym_COLON, - ACTIONS(2542), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64538] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2546), 1, - anon_sym_COLON, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - [64560] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2548), 1, - anon_sym_COLON, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - [64582] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2550), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64594] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2552), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [64612] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2554), 1, - anon_sym_COLON, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - [64634] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2556), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [64652] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2453), 3, - sym__newline, - anon_sym_EQ, - anon_sym_SEMI, - [64670] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2558), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [64688] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2560), 1, - anon_sym_COLON, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - [64710] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2562), 1, - anon_sym_COLON, - STATE(1250), 1, - aux_sym_expression_list_repeat1, - [64732] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2564), 1, - anon_sym_COMMA, - STATE(1231), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2502), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64748] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2411), 1, - anon_sym_DOT, - ACTIONS(2566), 1, - sym_identifier, - STATE(1374), 1, - aux_sym_import_prefix_repeat1, - STATE(1419), 1, - sym_import_prefix, - STATE(1661), 2, - sym_relative_import, - sym_dotted_name, - [64768] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2568), 1, - anon_sym_DOT, STATE(1249), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2063), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [64784] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2571), 1, - anon_sym_COMMA, - STATE(1231), 1, aux_sym_expression_list_repeat1, - ACTIONS(2502), 4, + ACTIONS(2530), 4, anon_sym_RPAREN, anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [64800] = 3, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2573), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2575), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64814] = 3, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2577), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2579), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64828] = 5, + [65244] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2399), 1, - anon_sym_if, - ACTIONS(2403), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2405), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2581), 3, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2535), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65266] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 1, + anon_sym_DOT, + STATE(1256), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2518), 4, + anon_sym_import, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, - anon_sym_COLON, - [64846] = 3, - ACTIONS(2077), 1, + [65282] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2583), 2, + ACTIONS(2537), 2, anon_sym_LBRACE2, anon_sym_BSLASH, - ACTIONS(2585), 4, + ACTIONS(2539), 4, sym__string_content, sym__string_end, sym__escape_interpolation, sym_escape_sequence, - [64860] = 3, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2587), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2589), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64874] = 6, + [65296] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2593), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2541), 1, anon_sym_COLON, - ACTIONS(2591), 2, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65318] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2545), 1, + anon_sym_COLON, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1389), 1, + sym__type_bound, + STATE(1570), 1, + sym__type_param_default, + ACTIONS(2543), 2, anon_sym_COMMA, anon_sym_RBRACK, - [64894] = 4, + [65338] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2597), 1, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2549), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [65356] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 1, + anon_sym_DOT, + STATE(1039), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2551), 4, + anon_sym_import, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + [65372] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2555), 1, anon_sym_AT, STATE(1257), 2, sym_decorator, aux_sym_decorated_definition_repeat1, - ACTIONS(2595), 3, + ACTIONS(2553), 3, anon_sym_async, anon_sym_def, anon_sym_class, - [64910] = 5, + [65388] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2600), 2, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [64927] = 2, + STATE(1526), 1, + aux_sym_argument_list_repeat1, + [65410] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2558), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2560), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65424] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2562), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2564), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65438] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2602), 5, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2566), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [65456] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2516), 1, + anon_sym_DOT, + STATE(1242), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2551), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [65472] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2110), 6, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, anon_sym_COLON, anon_sym_RBRACK, - [64938] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2417), 2, - anon_sym_COMMA, anon_sym_RBRACE, - [64955] = 5, + [65484] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2604), 2, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2570), 1, + anon_sym_COLON, + ACTIONS(2568), 2, anon_sym_COMMA, anon_sym_RBRACK, - [64972] = 2, + [65504] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2371), 5, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2572), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65526] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2574), 3, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [65544] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2576), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64983] = 5, + [65562] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2606), 2, - anon_sym_RPAREN, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2578), 3, anon_sym_COMMA, - [65000] = 5, + anon_sym_RBRACK, + anon_sym_EQ, + [65580] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2427), 1, + ACTIONS(2475), 1, + anon_sym_DOT, + ACTIONS(2580), 1, sym_identifier, - STATE(1326), 1, + STATE(1343), 1, + aux_sym_import_prefix_repeat1, + STATE(1462), 1, + sym_import_prefix, + STATE(1620), 2, + sym_relative_import, sym_dotted_name, - STATE(1381), 1, - sym_aliased_import, - ACTIONS(2608), 2, - sym__newline, - anon_sym_SEMI, - [65017] = 5, + [65600] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2610), 2, - sym__newline, - anon_sym_SEMI, - [65034] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2371), 5, + ACTIONS(2582), 1, anon_sym_COMMA, + STATE(1270), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [65045] = 4, + [65616] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2614), 1, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2489), 3, + sym__newline, + anon_sym_EQ, + anon_sym_SEMI, + [65634] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2585), 1, anon_sym_COMMA, - STATE(1287), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2612), 3, + STATE(1270), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [65650] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_COMMA, + STATE(1249), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, anon_sym_RPAREN, + anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [65060] = 5, + [65666] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, + ACTIONS(2589), 1, + anon_sym_COMMA, + STATE(1270), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [65682] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2591), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2593), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65696] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2305), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2329), 1, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2595), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65718] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2597), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65740] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2599), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [65758] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2601), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65780] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2605), 1, + anon_sym_COMMA, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(2603), 4, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [65796] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2608), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2610), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65810] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2612), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65822] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2614), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65839] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, anon_sym_if, ACTIONS(2616), 2, sym__newline, anon_sym_SEMI, - [65077] = 6, + [65856] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(2618), 1, - anon_sym_RBRACE, + anon_sym_LPAREN, ACTIONS(2620), 1, - anon_sym_EQ, + anon_sym_COLON, ACTIONS(2622), 1, - anon_sym_COLON2, + anon_sym_LBRACK, + STATE(1520), 1, + sym_type_parameters, + STATE(1701), 1, + sym_argument_list, + [65875] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(2624), 1, - sym_type_conversion, - STATE(1694), 1, - sym_format_specifier, - [65096] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2626), 2, - sym__newline, - anon_sym_SEMI, - [65113] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2427), 1, - sym_identifier, - ACTIONS(2628), 1, - anon_sym_LPAREN, - STATE(1281), 1, - sym_dotted_name, - STATE(1372), 1, - sym_aliased_import, - STATE(1559), 1, - sym__import_list, - [65132] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2630), 1, anon_sym_COMMA, - STATE(1284), 1, + STATE(1299), 1, aux_sym_expression_list_repeat1, - ACTIONS(2502), 3, + ACTIONS(2508), 3, sym__newline, anon_sym_from, anon_sym_SEMI, - [65147] = 6, - ACTIONS(3), 1, + [65890] = 6, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2632), 1, - anon_sym_LPAREN, - ACTIONS(2634), 1, - anon_sym_COLON, - ACTIONS(2636), 1, - anon_sym_LBRACK, - STATE(1463), 1, - sym_type_parameters, - STATE(1611), 1, - sym_argument_list, - [65166] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2433), 2, - sym__newline, - anon_sym_SEMI, - [65183] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2638), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [65200] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2640), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [65217] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2642), 2, - sym__newline, - anon_sym_SEMI, - [65234] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2644), 1, - anon_sym_COMMA, - STATE(1284), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2502), 3, - sym__newline, - anon_sym_from, - anon_sym_SEMI, - [65249] = 6, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2646), 1, + ACTIONS(2626), 1, anon_sym_RBRACE, - ACTIONS(2648), 1, + ACTIONS(2628), 1, anon_sym_LBRACE2, - ACTIONS(2650), 1, + ACTIONS(2630), 1, aux_sym_format_specifier_token1, - STATE(1288), 1, + STATE(1315), 1, aux_sym_format_specifier_repeat1, - STATE(1446), 1, + STATE(1499), 1, sym_interpolation, - [65268] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2652), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [65285] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2654), 1, - anon_sym_COMMA, - ACTIONS(2656), 1, - anon_sym_as, - STATE(1322), 1, - aux_sym__import_list_repeat1, - ACTIONS(2658), 2, - sym__newline, - anon_sym_SEMI, - [65302] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2660), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [65319] = 6, + [65909] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2632), 1, - anon_sym_LPAREN, - ACTIONS(2636), 1, - anon_sym_LBRACK, - ACTIONS(2662), 1, - anon_sym_COLON, - STATE(1470), 1, - sym_type_parameters, - STATE(1653), 1, - sym_argument_list, - [65338] = 4, + anon_sym_COMMA, + STATE(1299), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 3, + sym__newline, + anon_sym_from, + anon_sym_SEMI, + [65924] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2664), 1, + ACTIONS(2634), 1, + anon_sym_RBRACE, + ACTIONS(2636), 1, + anon_sym_EQ, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2640), 1, + sym_type_conversion, + STATE(1677), 1, + sym_format_specifier, + [65943] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2642), 1, anon_sym_COMMA, - STATE(1284), 1, + ACTIONS(2644), 1, + anon_sym_as, + STATE(1336), 1, + aux_sym__import_list_repeat1, + ACTIONS(2646), 2, + sym__newline, + anon_sym_SEMI, + [65960] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2311), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65971] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2483), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [65988] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2075), 5, + sym__newline, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [65999] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + STATE(1309), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2100), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66014] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2648), 2, + sym__newline, + anon_sym_SEMI, + [66031] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2650), 1, + anon_sym_RBRACE, + ACTIONS(2652), 1, + anon_sym_EQ, + ACTIONS(2654), 1, + sym_type_conversion, + STATE(1651), 1, + sym_format_specifier, + [66050] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2656), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [66067] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2658), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [66084] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2660), 1, + anon_sym_COMMA, + STATE(1299), 1, aux_sym_expression_list_repeat1, ACTIONS(2530), 3, sym__newline, anon_sym_from, anon_sym_SEMI, - [65353] = 5, + [66099] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + ACTIONS(2663), 2, + sym__newline, + anon_sym_SEMI, + [66116] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2311), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [66127] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + ACTIONS(2665), 2, + sym__newline, + anon_sym_SEMI, + [66144] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, ACTIONS(2667), 2, anon_sym_COMMA, anon_sym_RBRACK, - [65370] = 4, + [66161] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + ACTIONS(2663), 2, + sym__newline, + anon_sym_SEMI, + [66178] = 6, + ACTIONS(2086), 1, + sym_comment, ACTIONS(2669), 1, - anon_sym_COMMA, - STATE(1287), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2612), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, anon_sym_RBRACE, - [65385] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2673), 1, - anon_sym_COMMA, - STATE(1287), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2671), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [65400] = 6, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2676), 1, - anon_sym_RBRACE, - ACTIONS(2678), 1, + ACTIONS(2671), 1, anon_sym_LBRACE2, - ACTIONS(2681), 1, + ACTIONS(2674), 1, aux_sym_format_specifier_token1, - STATE(1288), 1, - aux_sym_format_specifier_repeat1, - STATE(1446), 1, - sym_interpolation, - [65419] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2427), 1, - sym_identifier, - STATE(1326), 1, - sym_dotted_name, - STATE(1381), 1, - sym_aliased_import, - ACTIONS(2684), 2, - sym__newline, - anon_sym_SEMI, - [65436] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2113), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [65451] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(2686), 1, - anon_sym_RBRACE, - ACTIONS(2688), 1, - anon_sym_EQ, - ACTIONS(2690), 1, - sym_type_conversion, - STATE(1718), 1, - sym_format_specifier, - [65470] = 6, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2648), 1, - anon_sym_LBRACE2, - ACTIONS(2692), 1, - anon_sym_RBRACE, - ACTIONS(2694), 1, - aux_sym_format_specifier_token1, - STATE(1279), 1, - aux_sym_format_specifier_repeat1, - STATE(1446), 1, - sym_interpolation, - [65489] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2495), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [65500] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2063), 5, - sym__newline, - anon_sym_DOT, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [65511] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2427), 1, - sym_identifier, - STATE(1326), 1, - sym_dotted_name, - STATE(1381), 1, - sym_aliased_import, - ACTIONS(2608), 2, - sym__newline, - anon_sym_SEMI, - [65528] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2566), 1, - sym_identifier, - ACTIONS(2608), 1, - anon_sym_RPAREN, - STATE(1473), 1, - sym_dotted_name, - STATE(1553), 1, - sym_aliased_import, - [65544] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2696), 1, - anon_sym_COMMA, - STATE(1321), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2698), 2, - sym__newline, - anon_sym_SEMI, - [65558] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2696), 1, - anon_sym_COMMA, - STATE(1321), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2700), 2, - sym__newline, - anon_sym_SEMI, - [65572] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2702), 1, - anon_sym_SEMI, - ACTIONS(2704), 1, - sym__newline, - STATE(129), 1, - sym__semicolon, - STATE(1300), 1, - aux_sym__simple_statements_repeat1, - [65588] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(565), 1, - sym__newline, - ACTIONS(2706), 1, - anon_sym_SEMI, - STATE(131), 1, - sym__semicolon, - STATE(1316), 1, - aux_sym__simple_statements_repeat1, - [65604] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2708), 1, - anon_sym_SEMI, - ACTIONS(2710), 1, - sym__newline, - STATE(127), 1, - sym__semicolon, STATE(1305), 1, - aux_sym__simple_statements_repeat1, - [65620] = 4, + aux_sym_format_specifier_repeat1, + STATE(1499), 1, + sym_interpolation, + [66197] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2714), 1, - anon_sym_COMMA, - STATE(1302), 1, - aux_sym_with_clause_repeat1, - ACTIONS(2712), 2, - anon_sym_RPAREN, - anon_sym_COLON, - [65634] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2717), 1, - anon_sym_case, - STATE(612), 1, - sym_cases, - STATE(451), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65648] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2717), 1, - anon_sym_case, - STATE(512), 1, - sym_cases, - STATE(451), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65662] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(561), 1, - sym__newline, - ACTIONS(2719), 1, - anon_sym_SEMI, - STATE(132), 1, - sym__semicolon, - STATE(1316), 1, - aux_sym__simple_statements_repeat1, - [65678] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2721), 1, - anon_sym_else, - [65694] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2636), 1, - anon_sym_LBRACK, - ACTIONS(2723), 1, + ACTIONS(2413), 1, + sym_identifier, + ACTIONS(2677), 1, anon_sym_LPAREN, - STATE(1538), 1, - sym_type_parameters, - STATE(1539), 1, - sym_parameters, - [65710] = 5, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1565), 1, + sym__import_list, + [66216] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(2725), 1, - anon_sym_RBRACE, - ACTIONS(2727), 1, - sym_type_conversion, - STATE(1733), 1, - sym_format_specifier, - [65726] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, + ACTIONS(2603), 5, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2729), 1, anon_sym_COLON, - [65742] = 4, + anon_sym_RBRACK, + [66227] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2696), 1, + ACTIONS(2681), 1, anon_sym_COMMA, - STATE(1297), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2731), 2, - sym__newline, - anon_sym_SEMI, - [65756] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2735), 1, - anon_sym_COMMA, - STATE(1330), 1, - aux_sym__patterns_repeat1, - ACTIONS(2733), 2, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2679), 3, anon_sym_RPAREN, anon_sym_RBRACK, - [65770] = 5, + anon_sym_RBRACE, + [66242] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + ACTIONS(2683), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2679), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66257] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2685), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2679), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66272] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2689), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2687), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66287] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2692), 5, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2737), 1, anon_sym_COLON, - [65786] = 5, + anon_sym_RBRACK, + [66298] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2739), 1, - anon_sym_COLON, - [65802] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(315), 1, - sym__string_start, - ACTIONS(2081), 1, - anon_sym_COLON, - STATE(675), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - [65816] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(317), 1, - sym__template_string_start, - ACTIONS(2081), 1, - anon_sym_COLON, - STATE(676), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - [65830] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2741), 1, + ACTIONS(2694), 2, + sym__newline, anon_sym_SEMI, - ACTIONS(2744), 1, + [66315] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2618), 1, + anon_sym_LPAREN, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2696), 1, + anon_sym_COLON, + STATE(1491), 1, + sym_type_parameters, + STATE(1626), 1, + sym_argument_list, + [66334] = 6, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2628), 1, + anon_sym_LBRACE2, + ACTIONS(2698), 1, + anon_sym_RBRACE, + ACTIONS(2700), 1, + aux_sym_format_specifier_token1, + STATE(1305), 1, + aux_sym_format_specifier_repeat1, + STATE(1499), 1, + sym_interpolation, + [66353] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2451), 2, + sym__newline, + anon_sym_SEMI, + [66370] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2702), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66387] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2704), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66404] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2706), 2, + sym__newline, + anon_sym_SEMI, + [66421] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2708), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66438] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2710), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [66455] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2712), 1, + anon_sym_SEMI, + ACTIONS(2715), 1, sym__newline, STATE(133), 1, sym__semicolon, - STATE(1316), 1, + STATE(1322), 1, aux_sym__simple_statements_repeat1, - [65846] = 2, + [66471] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2371), 4, + ACTIONS(2717), 1, + anon_sym_COMMA, + STATE(1404), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2719), 2, + sym__newline, + anon_sym_SEMI, + [66485] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2721), 1, + anon_sym_case, + STATE(593), 1, + sym_cases, + STATE(461), 2, + sym_case_block, + aux_sym_cases_repeat1, + [66499] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2723), 1, + anon_sym_COLON, + [66515] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2725), 1, + sym__newline, + [66531] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2642), 1, + anon_sym_COMMA, + STATE(1335), 1, + aux_sym__import_list_repeat1, + ACTIONS(2646), 2, + sym__newline, + anon_sym_SEMI, + [66545] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(567), 1, + sym__newline, + ACTIONS(2727), 1, + anon_sym_SEMI, + STATE(128), 1, + sym__semicolon, + STATE(1322), 1, + aux_sym__simple_statements_repeat1, + [66561] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2644), 1, + anon_sym_as, + ACTIONS(2729), 3, sym__newline, - anon_sym_from, anon_sym_COMMA, anon_sym_SEMI, - [65856] = 5, + [66573] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2622), 1, + ACTIONS(2638), 1, anon_sym_COLON2, - ACTIONS(2746), 1, + ACTIONS(2731), 1, anon_sym_RBRACE, - ACTIONS(2748), 1, + ACTIONS(2733), 1, sym_type_conversion, - STATE(1624), 1, + STATE(1646), 1, sym_format_specifier, - [65872] = 5, + [66589] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2658), 1, - anon_sym_RPAREN, - ACTIONS(2750), 1, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2735), 1, + anon_sym_COLON, + [66605] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2737), 1, anon_sym_COMMA, - ACTIONS(2752), 1, - anon_sym_as, - STATE(1409), 1, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2740), 2, + sym__newline, + anon_sym_SEMI, + [66619] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2744), 1, + anon_sym_EQ, + ACTIONS(2742), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [66631] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2746), 1, + anon_sym_case, + STATE(545), 1, + sym_cases, + STATE(440), 2, + sym_case_block, + aux_sym_cases_repeat1, + [66645] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2748), 1, + anon_sym_COMMA, + STATE(1339), 1, aux_sym__import_list_repeat1, - [65888] = 4, + ACTIONS(2750), 2, + sym__newline, + anon_sym_SEMI, + [66659] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2752), 1, + anon_sym_COMMA, + STATE(1339), 1, + aux_sym__import_list_repeat1, + ACTIONS(2750), 2, + sym__newline, + anon_sym_SEMI, + [66673] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + ACTIONS(2663), 1, + anon_sym_RPAREN, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [66689] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + ACTIONS(2663), 1, + anon_sym_RPAREN, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [66705] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2754), 1, anon_sym_COMMA, - STATE(1328), 1, + STATE(1339), 1, aux_sym__import_list_repeat1, - ACTIONS(2756), 2, + ACTIONS(2757), 2, sym__newline, anon_sym_SEMI, - [65902] = 4, + [66719] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2758), 1, - anon_sym_COMMA, - STATE(1321), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2761), 2, - sym__newline, - anon_sym_SEMI, - [65916] = 4, + ACTIONS(2746), 1, + anon_sym_case, + STATE(546), 1, + sym_cases, + STATE(440), 2, + sym_case_block, + aux_sym_cases_repeat1, + [66733] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2763), 1, - anon_sym_COMMA, - STATE(1328), 1, - aux_sym__import_list_repeat1, - ACTIONS(2756), 2, - sym__newline, - anon_sym_SEMI, - [65930] = 4, + ACTIONS(2580), 1, + sym_identifier, + STATE(1362), 1, + sym_dotted_name, + STATE(1467), 1, + sym_aliased_import, + STATE(1670), 1, + sym__import_list, + [66749] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2767), 1, + ACTIONS(2580), 1, + sym_identifier, + STATE(1362), 1, + sym_dotted_name, + STATE(1467), 1, + sym_aliased_import, + STATE(1671), 1, + sym__import_list, + [66765] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2761), 1, anon_sym_DOT, - STATE(1323), 1, + STATE(1352), 1, aux_sym_import_prefix_repeat1, - ACTIONS(2765), 2, + ACTIONS(2759), 2, anon_sym_import, sym_identifier, - [65944] = 4, + [66779] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2772), 1, - anon_sym_COLON, - ACTIONS(2774), 1, - anon_sym_EQ, - ACTIONS(2770), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [65958] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2778), 1, - anon_sym_EQ, - ACTIONS(2776), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [65970] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2656), 1, - anon_sym_as, - ACTIONS(2780), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [65982] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2782), 1, - anon_sym_COLON, - [65998] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2784), 1, - anon_sym_COMMA, - STATE(1328), 1, - aux_sym__import_list_repeat1, - ACTIONS(2787), 2, - sym__newline, - anon_sym_SEMI, - [66012] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2789), 1, - anon_sym_COMMA, - STATE(1329), 1, - aux_sym_exception_list_repeat1, - ACTIONS(2792), 2, - anon_sym_as, - anon_sym_COLON, - [66026] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2796), 1, - anon_sym_COMMA, - STATE(994), 1, - aux_sym__patterns_repeat1, - ACTIONS(2794), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - [66040] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2566), 1, - sym_identifier, - STATE(1319), 1, - sym_dotted_name, - STATE(1487), 1, - sym_aliased_import, - STATE(1713), 1, - sym__import_list, - [66056] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2798), 1, - anon_sym_SEMI, - ACTIONS(2800), 1, - sym__newline, - STATE(128), 1, - sym__semicolon, - STATE(1335), 1, - aux_sym__simple_statements_repeat1, - [66072] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2566), 1, - sym_identifier, - STATE(1319), 1, - sym_dotted_name, - STATE(1487), 1, - sym_aliased_import, - STATE(1717), 1, - sym__import_list, - [66088] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2566), 1, - sym_identifier, - ACTIONS(2684), 1, - anon_sym_RPAREN, - STATE(1473), 1, - sym_dotted_name, - STATE(1553), 1, - sym_aliased_import, - [66104] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(563), 1, - sym__newline, - ACTIONS(2802), 1, - anon_sym_SEMI, - STATE(130), 1, - sym__semicolon, - STATE(1316), 1, - aux_sym__simple_statements_repeat1, - [66120] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2804), 1, - anon_sym_else, - [66136] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2806), 1, - anon_sym_COLON, - [66152] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2808), 1, - anon_sym_COMMA, - STATE(1363), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2810), 2, - sym__newline, - anon_sym_SEMI, - [66166] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2812), 1, - anon_sym_COLON, - [66182] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2814), 1, - anon_sym_COMMA, - STATE(1218), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(1888), 2, - anon_sym_if, - anon_sym_COLON, - [66196] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2816), 4, + ACTIONS(2763), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_RBRACE, - [66206] = 4, + [66789] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2395), 1, + ACTIONS(2765), 1, + anon_sym_SEMI, + ACTIONS(2767), 1, + sym__newline, + STATE(129), 1, + sym__semicolon, + STATE(1351), 1, + aux_sym__simple_statements_repeat1, + [66805] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2769), 1, + anon_sym_SEMI, + ACTIONS(2771), 1, + sym__newline, + STATE(127), 1, + sym__semicolon, + STATE(1399), 1, + aux_sym__simple_statements_repeat1, + [66821] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2773), 1, + anon_sym_else, + [66837] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2775), 1, anon_sym_COMMA, - STATE(1329), 1, + STATE(1348), 1, aux_sym_exception_list_repeat1, - ACTIONS(2818), 2, + ACTIONS(2778), 2, anon_sym_as, anon_sym_COLON, - [66220] = 5, + [66851] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2780), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66861] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2820), 1, - anon_sym_else, - [66236] = 2, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2782), 1, + anon_sym_COLON, + [66877] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2453), 4, + ACTIONS(565), 1, + sym__newline, + ACTIONS(2784), 1, + anon_sym_SEMI, + STATE(131), 1, + sym__semicolon, + STATE(1322), 1, + aux_sym__simple_statements_repeat1, + [66893] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2788), 1, + anon_sym_DOT, + STATE(1352), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2786), 2, + anon_sym_import, + sym_identifier, + [66907] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2791), 1, + anon_sym_else, + [66923] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2411), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66933] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2795), 1, + anon_sym_COMMA, + STATE(1360), 1, + aux_sym__patterns_repeat1, + ACTIONS(2793), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [66947] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2797), 1, + anon_sym_RBRACE, + ACTIONS(2799), 1, + sym_type_conversion, + STATE(1741), 1, + sym_format_specifier, + [66963] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1552), 1, + sym__import_list, + [66979] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2489), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, anon_sym_EQ, - [66246] = 5, + [66989] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2822), 1, - anon_sym_else, - [66262] = 2, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2801), 1, + anon_sym_COLON, + [67005] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2824), 4, + ACTIONS(2805), 1, + anon_sym_COMMA, + STATE(1000), 1, + aux_sym__patterns_repeat1, + ACTIONS(2803), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [67019] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2807), 1, + anon_sym_else, + [67035] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2646), 1, + anon_sym_RPAREN, + ACTIONS(2809), 1, + anon_sym_COMMA, + ACTIONS(2811), 1, + anon_sym_as, + STATE(1415), 1, + aux_sym__import_list_repeat1, + [67051] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2813), 1, + anon_sym_COLON, + [67067] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + STATE(1348), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2815), 2, + anon_sym_as, + anon_sym_COLON, + [67081] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2817), 1, + anon_sym_else, + [67097] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2819), 1, + anon_sym_COMMA, + STATE(1394), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2821), 2, + sym__newline, + anon_sym_SEMI, + [67111] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2823), 1, + anon_sym_else, + [67127] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2825), 1, + anon_sym_COMMA, + STATE(1368), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2828), 2, + sym__newline, + anon_sym_SEMI, + [67141] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(2112), 1, + anon_sym_COLON, + STATE(690), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + [67155] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2830), 1, + anon_sym_COLON, + [67171] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2832), 1, + anon_sym_COLON, + [67187] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2834), 1, + anon_sym_COMMA, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2549), 2, + sym__newline, + anon_sym_SEMI, + [67201] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(2112), 1, + anon_sym_COLON, + STATE(693), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + [67215] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1562), 1, + sym__type_param_default, + ACTIONS(2837), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [67229] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2721), 1, + anon_sym_case, + STATE(558), 1, + sym_cases, + STATE(461), 2, + sym_case_block, + aux_sym_cases_repeat1, + [67243] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2839), 1, + anon_sym_COLON, + [67259] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2841), 1, + anon_sym_COLON, + [67275] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2843), 1, + anon_sym_COLON, + [67291] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1563), 1, + sym__type_param_default, + ACTIONS(2845), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [67305] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2847), 1, + anon_sym_COMMA, + STATE(1368), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2849), 2, + sym__newline, + anon_sym_SEMI, + [67319] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + STATE(1362), 1, + sym_dotted_name, + STATE(1467), 1, + sym_aliased_import, + STATE(1625), 1, + sym__import_list, + [67335] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2851), 1, + anon_sym_COMMA, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(1902), 2, + anon_sym_if, + anon_sym_COLON, + [67349] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2855), 1, + anon_sym_COLON, + ACTIONS(2857), 1, + anon_sym_EQ, + ACTIONS(2853), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [67363] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + ACTIONS(2665), 1, + anon_sym_RPAREN, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [67379] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1596), 1, + sym__import_list, + [67395] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2859), 1, + anon_sym_COLON, + [67411] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2861), 1, + anon_sym_else, + [67427] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2819), 1, + anon_sym_COMMA, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2863), 2, + sym__newline, + anon_sym_SEMI, + [67441] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1575), 1, + sym__type_param_default, + ACTIONS(2865), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [67455] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2485), 1, + anon_sym_COMMA, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2867), 2, + sym__newline, + anon_sym_SEMI, + [67469] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2869), 4, anon_sym_async, anon_sym_def, anon_sym_class, anon_sym_AT, - [66272] = 5, + [67479] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2566), 1, - sym_identifier, - STATE(1319), 1, - sym_dotted_name, - STATE(1487), 1, - sym_aliased_import, - STATE(1640), 1, - sym__import_list, - [66288] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2447), 4, - anon_sym_RPAREN, + ACTIONS(2819), 1, anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [66298] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2826), 1, - anon_sym_else, - [66314] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2828), 1, - anon_sym_COMMA, - STATE(1363), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2830), 2, - sym__newline, - anon_sym_SEMI, - [66328] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2832), 1, - anon_sym_COLON, - [66344] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2834), 1, - anon_sym_COLON, - [66360] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2696), 1, - anon_sym_COMMA, - STATE(1298), 1, + STATE(1388), 1, aux_sym_global_statement_repeat1, - ACTIONS(2836), 2, + ACTIONS(2871), 2, sym__newline, anon_sym_SEMI, - [66374] = 4, + [67493] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2423), 1, + ACTIONS(2311), 4, + sym__newline, + anon_sym_from, anon_sym_COMMA, - STATE(1365), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2838), 2, + anon_sym_SEMI, + [67503] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2819), 1, + anon_sym_COMMA, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2873), 2, sym__newline, anon_sym_SEMI, - [66388] = 5, + [67517] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2840), 1, - anon_sym_COLON, - [66404] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, anon_sym_and, - ACTIONS(2182), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2842), 1, - anon_sym_COLON, - [66420] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, + ACTIONS(2198), 1, anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2844), 1, + ACTIONS(2875), 1, anon_sym_COLON, - [66436] = 5, + [67533] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2566), 1, - sym_identifier, - ACTIONS(2608), 1, - anon_sym_RPAREN, - STATE(1473), 1, - sym_dotted_name, - STATE(1553), 1, - sym_aliased_import, - [66452] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2636), 1, + ACTIONS(2622), 1, anon_sym_LBRACK, - ACTIONS(2723), 1, + ACTIONS(2877), 1, anon_sym_LPAREN, - STATE(1512), 1, + STATE(1574), 1, sym_type_parameters, - STATE(1587), 1, + STATE(1612), 1, sym_parameters, - [66468] = 4, + [67549] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2423), 1, - anon_sym_COMMA, - STATE(1365), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2846), 2, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1538), 1, + sym_parameters, + STATE(1597), 1, + sym_type_parameters, + [67565] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1541), 1, + sym_parameters, + STATE(1599), 1, + sym_type_parameters, + [67581] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(561), 1, sym__newline, + ACTIONS(2879), 1, anon_sym_SEMI, - [66482] = 5, + STATE(132), 1, + sym__semicolon, + STATE(1322), 1, + aux_sym__simple_statements_repeat1, + [67597] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2427), 1, - sym_identifier, - STATE(1281), 1, - sym_dotted_name, + ACTIONS(2883), 1, + anon_sym_COMMA, + STATE(1400), 1, + aux_sym_with_clause_repeat1, + ACTIONS(2881), 2, + anon_sym_RPAREN, + anon_sym_COLON, + [67611] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2485), 1, + anon_sym_COMMA, STATE(1372), 1, - sym_aliased_import, - STATE(1577), 1, - sym__import_list, - [66498] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2427), 1, - sym_identifier, - STATE(1281), 1, - sym_dotted_name, - STATE(1372), 1, - sym_aliased_import, - STATE(1513), 1, - sym__import_list, - [66514] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2848), 1, - anon_sym_COMMA, - STATE(1363), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2851), 2, - sym__newline, - anon_sym_SEMI, - [66528] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2853), 1, - anon_sym_COLON, - [66544] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2855), 1, - anon_sym_COMMA, - STATE(1365), 1, aux_sym_assert_statement_repeat1, - ACTIONS(2556), 2, + ACTIONS(2886), 2, sym__newline, anon_sym_SEMI, - [66558] = 5, + [67625] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2303), 1, - anon_sym_and, - ACTIONS(2305), 1, - anon_sym_or, - ACTIONS(2329), 1, - anon_sym_if, - ACTIONS(2858), 1, + ACTIONS(2888), 1, + anon_sym_SEMI, + ACTIONS(2890), 1, sym__newline, - [66574] = 4, + STATE(130), 1, + sym__semicolon, + STATE(1328), 1, + aux_sym__simple_statements_repeat1, + [67641] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2860), 1, - anon_sym_case, - STATE(574), 1, - sym_cases, - STATE(437), 2, - sym_case_block, - aux_sym_cases_repeat1, - [66588] = 4, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1548), 1, + sym_parameters, + STATE(1572), 1, + sym_type_parameters, + [67657] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2860), 1, - anon_sym_case, - STATE(578), 1, - sym_cases, - STATE(437), 2, - sym_case_block, - aux_sym_cases_repeat1, - [66602] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2178), 1, - anon_sym_if, - ACTIONS(2180), 1, - anon_sym_and, - ACTIONS(2182), 1, - anon_sym_or, - ACTIONS(2862), 1, - anon_sym_else, - [66618] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2864), 1, + ACTIONS(2892), 1, anon_sym_COMMA, - STATE(1338), 1, + STATE(1368), 1, aux_sym_print_statement_repeat1, - ACTIONS(2866), 2, + ACTIONS(2894), 2, sym__newline, anon_sym_SEMI, - [66632] = 4, + [67671] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2522), 1, - anon_sym_EQ, - STATE(1589), 1, - sym__type_param_default, - ACTIONS(2868), 2, + ACTIONS(2031), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [66646] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2654), 1, - anon_sym_COMMA, - STATE(1320), 1, - aux_sym__import_list_repeat1, - ACTIONS(2658), 2, - sym__newline, - anon_sym_SEMI, - [66660] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2522), 1, - anon_sym_EQ, - STATE(1527), 1, - sym__type_param_default, - ACTIONS(2870), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [66674] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2874), 1, - anon_sym_DOT, - STATE(1323), 1, - aux_sym_import_prefix_repeat1, - ACTIONS(2872), 2, - anon_sym_import, - sym_identifier, - [66688] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2636), 1, - anon_sym_LBRACK, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1543), 1, - sym_parameters, - STATE(1582), 1, - sym_type_parameters, - [66704] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2636), 1, - anon_sym_LBRACK, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1545), 1, - sym_parameters, - STATE(1583), 1, - sym_type_parameters, - [66720] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2522), 1, - anon_sym_EQ, - STATE(1591), 1, - sym__type_param_default, - ACTIONS(2876), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [66734] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2878), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [66744] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, - anon_sym_COMMA, - ACTIONS(2882), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [66757] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2884), 3, - anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [66766] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2780), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [66775] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2886), 1, - anon_sym_COMMA, - ACTIONS(2889), 1, - anon_sym_RBRACK, - STATE(1382), 1, - aux_sym_type_parameters_repeat1, - [66788] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2891), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [66797] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2168), 1, - anon_sym_RPAREN, - ACTIONS(2170), 1, - anon_sym_COMMA, - STATE(1397), 1, - aux_sym_argument_list_repeat1, - [66810] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2893), 1, - anon_sym_RPAREN, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - [66823] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2891), 1, - anon_sym_COLON, - ACTIONS(2895), 1, - anon_sym_COMMA, - STATE(1386), 1, - aux_sym__parameters_repeat1, - [66836] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2216), 1, - anon_sym_RPAREN, - ACTIONS(2218), 1, - anon_sym_COMMA, - STATE(1434), 1, - aux_sym_argument_list_repeat1, - [66849] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1526), 3, - sym__newline, + ACTIONS(2896), 1, anon_sym_in, - anon_sym_SEMI, - [66858] = 2, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [67684] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2776), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [66867] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, ACTIONS(2898), 1, - anon_sym_RPAREN, - STATE(1431), 1, - aux_sym__collection_elements_repeat1, - [66880] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2900), 3, - sym__newline, anon_sym_COMMA, - anon_sym_SEMI, - [66889] = 3, + ACTIONS(2900), 1, + anon_sym_COLON, + STATE(1481), 1, + aux_sym__parameters_repeat1, + [67697] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2902), 1, - anon_sym_EQ, - ACTIONS(2904), 2, - sym__newline, - anon_sym_SEMI, - [66900] = 4, + anon_sym_if, + ACTIONS(2904), 1, + anon_sym_COLON, + STATE(1661), 1, + sym_guard, + [67710] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(2906), 1, - anon_sym_RPAREN, - ACTIONS(2908), 1, anon_sym_COMMA, - STATE(1438), 1, - aux_sym_argument_list_repeat1, - [66913] = 4, + ACTIONS(2908), 2, + anon_sym_if, + anon_sym_COLON, + [67721] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2910), 1, @@ -79425,3833 +80129,3895 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(2912), 1, anon_sym_RBRACK, STATE(1418), 1, - aux_sym_index_expression_list_repeat1, - [66926] = 4, + aux_sym_type_parameters_repeat1, + [67734] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, + ACTIONS(2853), 3, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(2214), 1, - anon_sym_RPAREN, - STATE(1398), 1, - aux_sym__collection_elements_repeat1, - [66939] = 4, + anon_sym_COLON, + [67743] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1894), 1, - anon_sym_RPAREN, ACTIONS(2914), 1, - anon_sym_COMMA, - STATE(1218), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [66952] = 4, + anon_sym_in, + ACTIONS(2916), 2, + sym__newline, + anon_sym_SEMI, + [67754] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2916), 1, - anon_sym_RPAREN, ACTIONS(2918), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [66965] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2612), 1, anon_sym_RPAREN, ACTIONS(2920), 1, anon_sym_COMMA, - STATE(1287), 1, - aux_sym__collection_elements_repeat1, - [66978] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [67767] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2922), 1, anon_sym_RPAREN, ACTIONS(2924), 1, anon_sym_COMMA, - STATE(1460), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [66991] = 4, + [67780] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(2750), 1, + anon_sym_RPAREN, ACTIONS(2926), 1, + anon_sym_COMMA, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [67793] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2750), 1, anon_sym_RPAREN, ACTIONS(2928), 1, anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67004] = 4, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [67806] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(2725), 1, - anon_sym_RBRACE, - STATE(1733), 1, - sym_format_specifier, - [67017] = 4, - ACTIONS(3), 1, - sym_comment, + anon_sym_LBRACK, ACTIONS(2930), 1, - anon_sym_RPAREN, - ACTIONS(2932), 1, - anon_sym_COMMA, - STATE(1399), 1, - aux_sym_argument_list_repeat1, - [67030] = 4, + anon_sym_EQ, + STATE(1738), 1, + sym_type_parameters, + [67819] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1894), 1, - anon_sym_RBRACK, - ACTIONS(2934), 1, - anon_sym_COMMA, - STATE(1218), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67043] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2145), 1, - anon_sym_RPAREN, - STATE(1398), 1, - aux_sym__collection_elements_repeat1, - [67056] = 4, + ACTIONS(2932), 3, + anon_sym_LPAREN, + anon_sym_COLON, + anon_sym_EQ, + [67828] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2910), 1, anon_sym_COMMA, - ACTIONS(2936), 1, + ACTIONS(2934), 1, anon_sym_RBRACK, - STATE(1418), 1, - aux_sym_index_expression_list_repeat1, - [67069] = 4, + STATE(1511), 1, + aux_sym_type_parameters_repeat1, + [67841] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2756), 1, - anon_sym_RPAREN, + ACTIONS(2936), 1, + sym_identifier, ACTIONS(2938), 1, - anon_sym_COMMA, - STATE(1475), 1, - aux_sym__import_list_repeat1, - [67082] = 4, + anon_sym_RPAREN, + STATE(1592), 1, + sym_match_keyword_pattern, + [67854] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2443), 1, - anon_sym_COMMA, - ACTIONS(2445), 1, - anon_sym_RBRACE, - STATE(1412), 1, - aux_sym_dictionary_repeat1, - [67095] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - ACTIONS(2087), 1, - anon_sym_COLON, - STATE(1033), 1, - aux_sym_match_value_pattern_repeat1, - [67108] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2756), 1, + ACTIONS(2938), 1, anon_sym_RPAREN, ACTIONS(2940), 1, anon_sym_COMMA, - STATE(1475), 1, - aux_sym__import_list_repeat1, - [67121] = 4, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [67867] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2057), 1, + ACTIONS(2938), 1, + anon_sym_RPAREN, + ACTIONS(2940), 1, + anon_sym_COMMA, + STATE(1429), 1, + aux_sym_match_class_pattern_repeat2, + [67880] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1340), 3, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_COLON, + [67889] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1997), 1, + anon_sym_RBRACE, ACTIONS(2942), 1, anon_sym_COMMA, - STATE(1386), 1, - aux_sym__parameters_repeat1, - [67134] = 4, + STATE(1477), 1, + aux_sym_match_mapping_pattern_repeat1, + [67902] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2035), 1, - anon_sym_COMMA, + ACTIONS(1916), 1, + anon_sym_RPAREN, ACTIONS(2944), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [67147] = 4, + anon_sym_COMMA, + STATE(1420), 1, + aux_sym_match_class_pattern_repeat2, + [67915] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2740), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [67924] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2936), 1, + sym_identifier, + ACTIONS(2946), 1, + anon_sym_RPAREN, + STATE(1592), 1, + sym_match_keyword_pattern, + [67937] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2948), 1, + anon_sym_RPAREN, + ACTIONS(2950), 1, + anon_sym_COMMA, + STATE(1427), 1, + aux_sym_match_class_pattern_repeat1, + [67950] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2729), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [67959] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2946), 1, + anon_sym_RPAREN, + ACTIONS(2953), 1, anon_sym_COMMA, - ACTIONS(2948), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [67160] = 4, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [67972] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2950), 1, + ACTIONS(2955), 1, + anon_sym_RPAREN, + ACTIONS(2957), 1, anon_sym_COMMA, - ACTIONS(2952), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [67173] = 3, - ACTIONS(2077), 1, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [67985] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2573), 1, + ACTIONS(2608), 1, anon_sym_RBRACE, - ACTIONS(2575), 2, + ACTIONS(2610), 2, anon_sym_LBRACE2, aux_sym_format_specifier_token1, - [67184] = 4, + [67996] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2192), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2220), 1, anon_sym_RPAREN, - ACTIONS(2194), 1, - anon_sym_COMMA, - STATE(1420), 1, - aux_sym_argument_list_repeat1, - [67197] = 4, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68009] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2954), 1, - anon_sym_RPAREN, - ACTIONS(2956), 1, - anon_sym_COMMA, - STATE(1422), 1, - aux_sym_argument_list_repeat1, - [67210] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2910), 1, - anon_sym_COMMA, - ACTIONS(2958), 1, - anon_sym_RBRACK, - STATE(1418), 1, - aux_sym_index_expression_list_repeat1, - [67223] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2960), 1, - anon_sym_COMMA, - ACTIONS(2962), 1, - anon_sym_RBRACK, - STATE(1456), 1, - aux_sym_index_expression_list_repeat1, - [67236] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2409), 1, + ACTIONS(2936), 1, sym_identifier, + ACTIONS(2960), 1, + anon_sym_RPAREN, + STATE(1592), 1, + sym_match_keyword_pattern, + [68022] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2962), 1, + anon_sym_RPAREN, ACTIONS(2964), 1, - anon_sym_import, - STATE(1697), 1, - sym_dotted_name, - [67249] = 4, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68035] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2731), 1, + anon_sym_RBRACE, + STATE(1646), 1, + sym_format_specifier, + [68048] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(2966), 1, - anon_sym_RPAREN, - ACTIONS(2968), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67262] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1906), 1, - anon_sym_RPAREN, - ACTIONS(2970), 1, - anon_sym_COMMA, - STATE(1462), 1, - aux_sym_match_class_pattern_repeat2, - [67275] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2972), 1, - anon_sym_RPAREN, - ACTIONS(2974), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67288] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2976), 1, - anon_sym_RPAREN, - ACTIONS(2978), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67301] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2001), 1, - anon_sym_RBRACE, - ACTIONS(2980), 1, - anon_sym_COMMA, - STATE(1506), 1, - aux_sym_match_mapping_pattern_repeat1, - [67314] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(2982), 1, - anon_sym_RBRACE, - STATE(1596), 1, - sym_format_specifier, - [67327] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2481), 1, - anon_sym_COMMA, - ACTIONS(2483), 1, - anon_sym_RBRACE, - STATE(1498), 1, - aux_sym_dictionary_repeat1, - [67340] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2984), 1, - anon_sym_RPAREN, - ACTIONS(2986), 1, - anon_sym_COMMA, - STATE(1427), 1, - aux_sym_match_class_pattern_repeat1, - [67353] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2891), 1, - anon_sym_RPAREN, - ACTIONS(2989), 1, - anon_sym_COMMA, - STATE(1428), 1, - aux_sym__parameters_repeat1, - [67366] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1530), 3, + anon_sym_EQ, + ACTIONS(2968), 2, sym__newline, - anon_sym_in, anon_sym_SEMI, - [67375] = 4, + [68059] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2190), 1, + ACTIONS(2970), 3, anon_sym_RPAREN, - STATE(1398), 1, - aux_sym__collection_elements_repeat1, - [67388] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2612), 1, - anon_sym_RPAREN, - ACTIONS(2992), 1, anon_sym_COMMA, - STATE(1287), 1, - aux_sym__collection_elements_repeat1, - [67401] = 4, + anon_sym_COLON, + [68068] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2449), 1, - anon_sym_COMMA, - ACTIONS(2451), 1, - anon_sym_RBRACE, - STATE(1436), 1, - aux_sym_dictionary_repeat1, - [67414] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1906), 1, + ACTIONS(2811), 1, + anon_sym_as, + ACTIONS(2729), 2, anon_sym_RPAREN, - ACTIONS(2994), 1, + anon_sym_COMMA, + [68079] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1916), 1, + anon_sym_RPAREN, + ACTIONS(2936), 1, sym_identifier, - STATE(1551), 1, + STATE(1592), 1, sym_match_keyword_pattern, - [67427] = 4, + [68092] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2996), 1, + ACTIONS(2757), 1, anon_sym_RPAREN, + ACTIONS(2972), 1, + anon_sym_COMMA, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [68105] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2975), 1, + anon_sym_RPAREN, + ACTIONS(2977), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68118] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2979), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [68127] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2981), 1, + anon_sym_COMMA, + ACTIONS(2984), 1, + anon_sym_RBRACK, + STATE(1443), 1, + aux_sym_index_expression_list_repeat1, + [68140] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2986), 1, + anon_sym_RPAREN, + ACTIONS(2988), 1, + anon_sym_COMMA, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [68153] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2900), 1, + anon_sym_RPAREN, + ACTIONS(2991), 1, + anon_sym_COMMA, + STATE(1483), 1, + aux_sym__parameters_repeat1, + [68166] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2337), 1, + anon_sym_from, + ACTIONS(2341), 2, + sym__newline, + anon_sym_SEMI, + [68177] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2129), 1, + anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68190] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2993), 1, + anon_sym_COMMA, + ACTIONS(2996), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68203] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(2998), 1, anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67440] = 4, + ACTIONS(3000), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68216] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3000), 1, - anon_sym_RPAREN, ACTIONS(3002), 1, anon_sym_COMMA, - STATE(1435), 1, - aux_sym_match_class_pattern_repeat2, - [67453] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3005), 1, - anon_sym_COMMA, - ACTIONS(3007), 1, + ACTIONS(3004), 1, anon_sym_RBRACE, - STATE(1482), 1, + STATE(1448), 1, aux_sym_dictionary_repeat1, - [67466] = 4, + [68229] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3009), 1, - anon_sym_COMMA, - ACTIONS(3011), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [67479] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3013), 1, - anon_sym_RPAREN, - ACTIONS(3015), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67492] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2204), 1, - anon_sym_RPAREN, - ACTIONS(2206), 1, - anon_sym_COMMA, - STATE(1445), 1, - aux_sym_argument_list_repeat1, - [67505] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3017), 1, - anon_sym_RPAREN, - ACTIONS(3019), 1, - anon_sym_COMMA, - STATE(1447), 1, - aux_sym_argument_list_repeat1, - [67518] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3021), 1, - anon_sym_RPAREN, - ACTIONS(3023), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67531] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2910), 1, - anon_sym_COMMA, - ACTIONS(3025), 1, - anon_sym_RBRACK, - STATE(1418), 1, - aux_sym_index_expression_list_repeat1, - [67544] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1427), 3, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(2106), 1, + anon_sym_DOT, + ACTIONS(2170), 1, anon_sym_COLON, - [67553] = 4, + STATE(1039), 1, + aux_sym_match_value_pattern_repeat1, + [68242] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3027), 1, + ACTIONS(2228), 1, anon_sym_RPAREN, - ACTIONS(3029), 1, + ACTIONS(2230), 1, anon_sym_COMMA, - STATE(1490), 1, - aux_sym_match_class_pattern_repeat1, - [67566] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3031), 1, - anon_sym_RPAREN, - ACTIONS(3033), 1, - anon_sym_COMMA, - STATE(1460), 1, + STATE(1457), 1, aux_sym_argument_list_repeat1, - [67579] = 3, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(3035), 1, - anon_sym_RBRACE, - ACTIONS(3037), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67590] = 4, + [68255] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3039), 1, + ACTIONS(3006), 1, anon_sym_RPAREN, - ACTIONS(3041), 1, + ACTIONS(3008), 1, anon_sym_COMMA, - STATE(1460), 1, + STATE(1458), 1, aux_sym_argument_list_repeat1, - [67603] = 4, + [68268] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3043), 1, - anon_sym_RPAREN, - ACTIONS(3045), 1, + ACTIONS(3010), 1, anon_sym_COMMA, + ACTIONS(3012), 1, + anon_sym_RBRACK, STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67616] = 4, + aux_sym_index_expression_list_repeat1, + [68281] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3027), 1, - anon_sym_RPAREN, - ACTIONS(3047), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1489), 1, - aux_sym_match_class_pattern_repeat2, - [67629] = 4, + ACTIONS(3014), 1, + anon_sym_RPAREN, + STATE(1309), 1, + aux_sym__collection_elements_repeat1, + [68294] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(3049), 1, - anon_sym_RBRACE, + ACTIONS(3016), 1, + anon_sym_RPAREN, + ACTIONS(3018), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68307] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3020), 1, + anon_sym_RPAREN, + ACTIONS(3022), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68320] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3024), 1, + anon_sym_RPAREN, + ACTIONS(3026), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68333] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3028), 1, + anon_sym_RPAREN, + ACTIONS(3030), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68346] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3032), 1, + anon_sym_COMMA, + ACTIONS(3034), 1, + anon_sym_RBRACK, + STATE(1443), 1, + aux_sym_index_expression_list_repeat1, + [68359] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2180), 1, + anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68372] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2473), 1, + sym_identifier, + ACTIONS(3036), 1, + anon_sym_import, STATE(1709), 1, - sym_format_specifier, - [67642] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2453), 3, - sym__newline, - anon_sym_EQ, - anon_sym_SEMI, - [67651] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2427), 1, - sym_identifier, - STATE(1326), 1, sym_dotted_name, - STATE(1381), 1, - sym_aliased_import, - [67664] = 4, - ACTIONS(3), 1, + [68385] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(3051), 1, - anon_sym_COMMA, - ACTIONS(3053), 1, - anon_sym_COLON, - STATE(1410), 1, - aux_sym__parameters_repeat1, - [67677] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2770), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [67686] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1006), 1, - anon_sym_RPAREN, - ACTIONS(3055), 1, - anon_sym_COMMA, - STATE(1302), 1, - aux_sym_with_clause_repeat1, - [67699] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3057), 1, - anon_sym_COMMA, - ACTIONS(3060), 1, - anon_sym_RBRACK, - STATE(1456), 1, - aux_sym_index_expression_list_repeat1, - [67712] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2035), 1, - anon_sym_COMMA, - ACTIONS(3062), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [67725] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2325), 1, - anon_sym_from, - ACTIONS(2331), 2, - sym__newline, - anon_sym_SEMI, - [67736] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1904), 1, - anon_sym_RPAREN, - ACTIONS(2994), 1, - sym_identifier, - STATE(1551), 1, - sym_match_keyword_pattern, - [67749] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3064), 1, - anon_sym_RPAREN, - ACTIONS(3066), 1, - anon_sym_COMMA, - STATE(1460), 1, - aux_sym_argument_list_repeat1, - [67762] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2994), 1, - sym_identifier, - ACTIONS(3069), 1, - anon_sym_RPAREN, - STATE(1551), 1, - sym_match_keyword_pattern, - [67775] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3069), 1, - anon_sym_RPAREN, - ACTIONS(3071), 1, - anon_sym_COMMA, - STATE(1435), 1, - aux_sym_match_class_pattern_repeat2, - [67788] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2632), 1, - anon_sym_LPAREN, - ACTIONS(3073), 1, - anon_sym_COLON, - STATE(1619), 1, - sym_argument_list, - [67801] = 3, - ACTIONS(2077), 1, - sym_comment, - ACTIONS(2577), 1, + ACTIONS(2558), 1, anon_sym_RBRACE, - ACTIONS(2579), 2, + ACTIONS(2560), 2, anon_sym_LBRACE2, aux_sym_format_specifier_token1, - [67812] = 3, + [68396] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3075), 1, - anon_sym_in, - ACTIONS(3077), 2, - sym__newline, - anon_sym_SEMI, - [67823] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2636), 1, - anon_sym_LBRACK, - ACTIONS(3079), 1, - anon_sym_EQ, - STATE(1665), 1, - sym_type_parameters, - [67836] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3081), 1, - anon_sym_if, - ACTIONS(3083), 1, - anon_sym_COLON, - STATE(1592), 1, - sym_guard, - [67849] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3069), 1, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2218), 1, anon_sym_RPAREN, - ACTIONS(3071), 1, - anon_sym_COMMA, - STATE(1474), 1, - aux_sym_match_class_pattern_repeat2, - [67862] = 4, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68409] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2035), 1, - anon_sym_COMMA, - ACTIONS(3085), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [67875] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2632), 1, - anon_sym_LPAREN, - ACTIONS(3087), 1, - anon_sym_COLON, - STATE(1712), 1, - sym_argument_list, - [67888] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2994), 1, + ACTIONS(2580), 1, sym_identifier, - ACTIONS(3089), 1, - anon_sym_RPAREN, - STATE(1551), 1, - sym_match_keyword_pattern, - [67901] = 4, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [68422] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3091), 1, + ACTIONS(3038), 1, anon_sym_COMMA, - ACTIONS(3093), 1, - anon_sym_RBRACK, - STATE(1403), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67914] = 3, + ACTIONS(3040), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68435] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2752), 1, - anon_sym_as, - ACTIONS(2780), 2, + ACTIONS(2646), 1, anon_sym_RPAREN, + ACTIONS(2809), 1, anon_sym_COMMA, - [67925] = 4, + STATE(1414), 1, + aux_sym__import_list_repeat1, + [68448] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3089), 1, + ACTIONS(2232), 1, anon_sym_RPAREN, - ACTIONS(3095), 1, + ACTIONS(2234), 1, anon_sym_COMMA, - STATE(1435), 1, - aux_sym_match_class_pattern_repeat2, - [67938] = 4, + STATE(1521), 1, + aux_sym_argument_list_repeat1, + [68461] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2787), 1, + ACTIONS(3042), 1, anon_sym_RPAREN, - ACTIONS(3097), 1, + ACTIONS(3044), 1, anon_sym_COMMA, STATE(1475), 1, - aux_sym__import_list_repeat1, - [67951] = 3, - ACTIONS(2077), 1, + aux_sym_argument_list_repeat1, + [68474] = 4, + ACTIONS(3), 1, sym_comment, - ACTIONS(2526), 1, + ACTIONS(3010), 1, + anon_sym_COMMA, + ACTIONS(3046), 1, + anon_sym_RBRACK, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [68487] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2679), 1, + anon_sym_RPAREN, + ACTIONS(3048), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + [68500] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3050), 1, + anon_sym_RPAREN, + ACTIONS(3052), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68513] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3054), 1, + anon_sym_RPAREN, + ACTIONS(3056), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68526] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3058), 1, + anon_sym_COMMA, + ACTIONS(3060), 1, + anon_sym_COLON, + STATE(1400), 1, + aux_sym_with_clause_repeat1, + [68539] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3062), 1, + anon_sym_RPAREN, + ACTIONS(3064), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68552] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3066), 1, + anon_sym_RPAREN, + ACTIONS(3068), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68565] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3070), 1, + anon_sym_COMMA, + ACTIONS(3073), 1, anon_sym_RBRACE, - ACTIONS(2528), 2, + STATE(1477), 1, + aux_sym_match_mapping_pattern_repeat1, + [68578] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3058), 1, + anon_sym_COMMA, + ACTIONS(3075), 1, + anon_sym_COLON, + STATE(1474), 1, + aux_sym_with_clause_repeat1, + [68591] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3077), 1, + anon_sym_COMMA, + ACTIONS(3079), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68604] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1910), 1, + anon_sym_RPAREN, + ACTIONS(3081), 1, + anon_sym_COMMA, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [68617] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2067), 1, + anon_sym_COLON, + ACTIONS(3083), 1, + anon_sym_COMMA, + STATE(1487), 1, + aux_sym__parameters_repeat1, + [68630] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2194), 1, + anon_sym_RPAREN, + ACTIONS(2196), 1, + anon_sym_COMMA, + STATE(1473), 1, + aux_sym_argument_list_repeat1, + [68643] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2067), 1, + anon_sym_RPAREN, + ACTIONS(3085), 1, + anon_sym_COMMA, + STATE(1519), 1, + aux_sym__parameters_repeat1, + [68656] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3087), 1, + anon_sym_RPAREN, + ACTIONS(3089), 1, + anon_sym_COMMA, + STATE(1513), 1, + aux_sym_with_clause_repeat1, + [68669] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1546), 3, + sym__newline, + anon_sym_in, + anon_sym_SEMI, + [68678] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2222), 1, + anon_sym_RPAREN, + ACTIONS(2224), 1, + anon_sym_COMMA, + STATE(1413), 1, + aux_sym_argument_list_repeat1, + [68691] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2970), 1, + anon_sym_COLON, + ACTIONS(3091), 1, + anon_sym_COMMA, + STATE(1487), 1, + aux_sym__parameters_repeat1, + [68704] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3094), 1, + anon_sym_RPAREN, + ACTIONS(3096), 1, + anon_sym_COMMA, + STATE(1500), 1, + aux_sym_match_class_pattern_repeat1, + [68717] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3098), 1, + anon_sym_COMMA, + ACTIONS(3100), 1, + anon_sym_RBRACK, + STATE(1528), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [68730] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3102), 1, + anon_sym_RPAREN, + ACTIONS(3104), 1, + anon_sym_COMMA, + STATE(1434), 1, + aux_sym_argument_list_repeat1, + [68743] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2618), 1, + anon_sym_LPAREN, + ACTIONS(3106), 1, + anon_sym_COLON, + STATE(1634), 1, + sym_argument_list, + [68756] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(3108), 1, + anon_sym_RBRACE, + STATE(1621), 1, + sym_format_specifier, + [68769] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3094), 1, + anon_sym_RPAREN, + ACTIONS(3110), 1, + anon_sym_COMMA, + STATE(1506), 1, + aux_sym_match_class_pattern_repeat2, + [68782] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2742), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [68791] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2902), 1, + anon_sym_if, + ACTIONS(3112), 1, + anon_sym_COLON, + STATE(1647), 1, + sym_guard, + [68804] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1523), 1, + aux_sym_argument_list_repeat1, + [68817] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3114), 1, + anon_sym_RPAREN, + ACTIONS(3116), 1, + anon_sym_COMMA, + STATE(1525), 1, + aux_sym_argument_list_repeat1, + [68830] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3118), 1, + anon_sym_COMMA, + ACTIONS(3120), 1, + anon_sym_RBRACE, + STATE(1423), 1, + aux_sym_match_mapping_pattern_repeat1, + [68843] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(3122), 1, + anon_sym_RBRACE, + ACTIONS(3124), 2, anon_sym_LBRACE2, aux_sym_format_specifier_token1, - [67962] = 4, + [68854] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3100), 1, - anon_sym_COMMA, - ACTIONS(3102), 1, - anon_sym_COLON, - STATE(1488), 1, - aux_sym_with_clause_repeat1, - [67975] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2035), 1, - anon_sym_COMMA, - ACTIONS(3104), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [67988] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2103), 1, - anon_sym_COMMA, - ACTIONS(2188), 1, + ACTIONS(1914), 1, anon_sym_RPAREN, - STATE(1398), 1, - aux_sym__collection_elements_repeat1, - [68001] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2994), 1, - sym_identifier, - ACTIONS(3106), 1, - anon_sym_RPAREN, - STATE(1551), 1, - sym_match_keyword_pattern, - [68014] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2712), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [68023] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3108), 1, - anon_sym_COMMA, - ACTIONS(3111), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [68036] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3113), 1, - anon_sym_COMMA, - ACTIONS(3115), 1, - anon_sym_RBRACK, - STATE(1499), 1, - aux_sym_type_parameters_repeat1, - [68049] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3117), 1, - anon_sym_RPAREN, - ACTIONS(3119), 1, - anon_sym_COMMA, - STATE(1455), 1, - aux_sym_with_clause_repeat1, - [68062] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3121), 1, - anon_sym_COMMA, - ACTIONS(3123), 1, - anon_sym_RBRACE, - STATE(1424), 1, - aux_sym_match_mapping_pattern_repeat1, - [68075] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3125), 3, - anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [68084] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2658), 1, - anon_sym_RPAREN, - ACTIONS(2750), 1, - anon_sym_COMMA, - STATE(1406), 1, - aux_sym__import_list_repeat1, - [68097] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3100), 1, - anon_sym_COMMA, - ACTIONS(3127), 1, - anon_sym_COLON, - STATE(1302), 1, - aux_sym_with_clause_repeat1, - [68110] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1904), 1, - anon_sym_RPAREN, - ACTIONS(3129), 1, - anon_sym_COMMA, - STATE(1435), 1, - aux_sym_match_class_pattern_repeat2, - [68123] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1904), 1, - anon_sym_RPAREN, - ACTIONS(3131), 1, + ACTIONS(3126), 1, anon_sym_COMMA, STATE(1427), 1, aux_sym_match_class_pattern_repeat1, - [68136] = 2, + [68867] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3133), 3, + ACTIONS(3010), 1, + anon_sym_COMMA, + ACTIONS(3128), 1, + anon_sym_RBRACK, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [68880] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2797), 1, + anon_sym_RBRACE, + STATE(1741), 1, + sym_format_specifier, + [68893] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + [68906] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3130), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [68919] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1914), 1, + anon_sym_RPAREN, + ACTIONS(2936), 1, + sym_identifier, + STATE(1592), 1, + sym_match_keyword_pattern, + [68932] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1914), 1, + anon_sym_RPAREN, + ACTIONS(3132), 1, + anon_sym_COMMA, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [68945] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3134), 1, + anon_sym_COLON, + ACTIONS(2853), 2, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_COLON, - [68145] = 3, - ACTIONS(2077), 1, + [68956] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2514), 1, + ACTIONS(2562), 1, anon_sym_RBRACE, - ACTIONS(2516), 2, + ACTIONS(2564), 2, anon_sym_LBRACE2, aux_sym_format_specifier_token1, - [68156] = 4, + [68967] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2566), 1, - sym_identifier, - STATE(1473), 1, - sym_dotted_name, - STATE(1553), 1, - sym_aliased_import, - [68169] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2761), 3, + ACTIONS(1550), 3, sym__newline, - anon_sym_COMMA, + anon_sym_in, anon_sym_SEMI, - [68178] = 2, + [68976] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3135), 3, + ACTIONS(3136), 3, + anon_sym_LPAREN, + anon_sym_COLON, + anon_sym_EQ, + [68985] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3138), 1, + anon_sym_COMMA, + ACTIONS(3141), 1, + anon_sym_RBRACK, + STATE(1511), 1, + aux_sym_type_parameters_repeat1, + [68998] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3143), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [68187] = 4, + [69007] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2622), 1, - anon_sym_COLON2, - ACTIONS(2746), 1, - anon_sym_RBRACE, - STATE(1624), 1, - sym_format_specifier, - [68200] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3137), 1, - sym_identifier, - ACTIONS(3139), 1, - sym_match_wildcard_pattern, - STATE(1259), 1, - sym_match_capture_pattern, - [68213] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3141), 1, - anon_sym_COMMA, - ACTIONS(3143), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [68226] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3113), 1, - anon_sym_COMMA, + ACTIONS(1018), 1, + anon_sym_RPAREN, ACTIONS(3145), 1, - anon_sym_RBRACK, - STATE(1382), 1, - aux_sym_type_parameters_repeat1, - [68239] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2774), 1, - anon_sym_EQ, - ACTIONS(2770), 2, anon_sym_COMMA, - anon_sym_COLON, - [68250] = 4, + STATE(1400), 1, + aux_sym_with_clause_repeat1, + [69020] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3147), 1, - anon_sym_COMMA, + sym_identifier, ACTIONS(3149), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [68263] = 4, + sym_match_wildcard_pattern, + STATE(1312), 1, + sym_match_capture_pattern, + [69033] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2057), 1, - anon_sym_RPAREN, - ACTIONS(3151), 1, + ACTIONS(2031), 1, anon_sym_COMMA, - STATE(1428), 1, - aux_sym__parameters_repeat1, - [68276] = 4, + ACTIONS(3151), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69046] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3081), 1, - anon_sym_if, - ACTIONS(3153), 1, + ACTIONS(2857), 1, + anon_sym_EQ, + ACTIONS(2853), 2, + anon_sym_COMMA, anon_sym_COLON, - STATE(1706), 1, - sym_guard, - [68289] = 3, + [69057] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2591), 1, + anon_sym_RBRACE, + ACTIONS(2593), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [69068] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(3010), 1, + anon_sym_COMMA, + ACTIONS(3153), 1, + anon_sym_RBRACK, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [69081] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2970), 1, + anon_sym_RPAREN, ACTIONS(3155), 1, anon_sym_COMMA, - ACTIONS(3157), 2, - anon_sym_if, + STATE(1519), 1, + aux_sym__parameters_repeat1, + [69094] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2618), 1, + anon_sym_LPAREN, + ACTIONS(3158), 1, anon_sym_COLON, - [68300] = 4, + STATE(1663), 1, + sym_argument_list, + [69107] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2385), 1, - anon_sym_COMMA, - ACTIONS(2387), 1, - anon_sym_RBRACE, - STATE(1379), 1, - aux_sym_dictionary_repeat1, - [68313] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3159), 1, - anon_sym_COMMA, + ACTIONS(3160), 1, + anon_sym_RPAREN, ACTIONS(3162), 1, - anon_sym_RBRACE, - STATE(1506), 1, - aux_sym_match_mapping_pattern_repeat1, - [68326] = 4, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69120] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2881), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [69129] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3164), 1, - anon_sym_COMMA, + anon_sym_RPAREN, ACTIONS(3166), 1, - anon_sym_RBRACE, - STATE(1482), 1, - aux_sym_dictionary_repeat1, - [68339] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2035), 1, anon_sym_COMMA, - ACTIONS(3168), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [68352] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69142] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2035), 1, + ACTIONS(3168), 3, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(3170), 1, - anon_sym_in, - STATE(1012), 1, - aux_sym__patterns_repeat1, - [68365] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3172), 1, anon_sym_COLON, - ACTIONS(2770), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68376] = 4, + [69151] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3053), 1, + ACTIONS(3170), 1, anon_sym_RPAREN, + ACTIONS(3172), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69164] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(3174), 1, + anon_sym_RPAREN, + ACTIONS(3176), 1, anon_sym_COMMA, - STATE(1502), 1, - aux_sym__parameters_repeat1, - [68389] = 3, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69177] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1556), 1, - sym_parameters, - [68399] = 2, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(3178), 1, + anon_sym_RBRACE, + STATE(1656), 1, + sym_format_specifier, + [69190] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3176), 2, - sym__newline, - anon_sym_SEMI, - [68407] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2994), 1, - sym_identifier, - STATE(1551), 1, - sym_match_keyword_pattern, - [68417] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3178), 2, - anon_sym_COMMA, + ACTIONS(1910), 1, anon_sym_RBRACK, - [68425] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3180), 2, - sym__newline, - anon_sym_SEMI, - [68433] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3182), 2, - sym__newline, - anon_sym_SEMI, - [68441] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2357), 1, + ACTIONS(3180), 1, anon_sym_COMMA, - STATE(1247), 1, - aux_sym_expression_list_repeat1, - [68451] = 2, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69203] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3184), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [68459] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2327), 1, - anon_sym_COMMA, - STATE(1278), 1, - aux_sym_expression_list_repeat1, - [68469] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3186), 2, + ACTIONS(2489), 3, sym__newline, + anon_sym_EQ, anon_sym_SEMI, - [68477] = 2, + [69212] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2407), 2, - sym__newline, - anon_sym_SEMI, - [68485] = 2, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3182), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69225] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1054), 2, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3184), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69238] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3186), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69251] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 2, anon_sym_except, anon_sym_finally, - [68493] = 2, + [69259] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3188), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68501] = 2, + [69267] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3190), 2, - anon_sym_COLON, - anon_sym_DASH_GT, - [68509] = 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69275] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3192), 2, - sym__newline, - anon_sym_SEMI, - [68517] = 2, + anon_sym_COLON, + anon_sym_DASH_GT, + [69283] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3194), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [68525] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3196), 2, - sym__newline, - anon_sym_SEMI, - [68533] = 3, + ACTIONS(3194), 1, + sym_identifier, + STATE(1609), 1, + sym_match_capture_pattern, + [69293] = 3, ACTIONS(3), 1, sym_comment, + ACTIONS(3196), 1, + anon_sym_COLON, ACTIONS(3198), 1, - anon_sym_COMMA, - ACTIONS(3200), 1, - anon_sym_RBRACE, - [68543] = 2, + anon_sym_DASH_GT, + [69303] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2467), 2, - sym__newline, - anon_sym_SEMI, - [68551] = 3, + ACTIONS(2710), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69311] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3200), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69319] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(3202), 1, anon_sym_COLON, ACTIONS(3204), 1, anon_sym_DASH_GT, - [68561] = 2, + [69329] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3206), 2, + ACTIONS(2979), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68569] = 2, + [69337] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2266), 2, + ACTIONS(2106), 1, + anon_sym_DOT, + STATE(1451), 1, + aux_sym_match_value_pattern_repeat1, + [69347] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3206), 1, + anon_sym_COLON, + ACTIONS(3208), 1, + anon_sym_DASH_GT, + [69357] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2433), 2, sym__newline, anon_sym_SEMI, - [68577] = 2, + [69365] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3208), 2, - sym__newline, - anon_sym_SEMI, - [68585] = 2, + ACTIONS(3210), 1, + anon_sym_COLON, + ACTIONS(3212), 1, + anon_sym_DASH_GT, + [69375] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3210), 2, - sym__newline, - anon_sym_SEMI, - [68593] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3212), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68601] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3214), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [68609] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1531), 1, - sym_parameters, - [68619] = 3, + ACTIONS(2465), 1, + anon_sym_as, + ACTIONS(2467), 1, + anon_sym_COLON, + [69385] = 3, ACTIONS(3), 1, sym_comment, + ACTIONS(3214), 1, + anon_sym_COLON, ACTIONS(3216), 1, - anon_sym_COLON, - ACTIONS(3218), 1, anon_sym_DASH_GT, - [68629] = 3, + [69395] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3155), 1, + ACTIONS(3218), 2, anon_sym_COMMA, - ACTIONS(3220), 1, - anon_sym_RPAREN, - [68639] = 3, + anon_sym_RBRACE, + [69403] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3222), 1, - anon_sym_COMMA, - STATE(1396), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [68649] = 2, + ACTIONS(3220), 2, + anon_sym_COLON, + anon_sym_DASH_GT, + [69411] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1058), 2, - anon_sym_except, - anon_sym_finally, - [68657] = 3, + ACTIONS(2469), 1, + anon_sym_as, + ACTIONS(2471), 1, + anon_sym_COLON, + [69421] = 2, ACTIONS(3), 1, sym_comment, + ACTIONS(3222), 2, + sym__newline, + anon_sym_SEMI, + [69429] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3120), 1, + anon_sym_RBRACE, ACTIONS(3224), 1, - anon_sym_COLON, - ACTIONS(3226), 1, - anon_sym_DASH_GT, - [68667] = 2, + anon_sym_COMMA, + [69439] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2984), 2, - anon_sym_RPAREN, + ACTIONS(2497), 2, + sym__newline, + anon_sym_SEMI, + [69447] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1989), 1, + anon_sym_RBRACE, + ACTIONS(3226), 1, anon_sym_COMMA, - [68675] = 3, + [69457] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(3228), 1, - anon_sym_COLON, + sym_integer, ACTIONS(3230), 1, - anon_sym_DASH_GT, - [68685] = 3, + sym_float, + [69467] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3232), 1, - anon_sym_COLON, - ACTIONS(3234), 1, - anon_sym_DASH_GT, - [68695] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3236), 1, - anon_sym_COLON, - ACTIONS(3238), 1, - anon_sym_DASH_GT, - [68705] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2455), 1, - anon_sym_as, - ACTIONS(2457), 1, - anon_sym_COLON, - [68715] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2660), 2, + ACTIONS(3073), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [68723] = 3, + anon_sym_RBRACE, + [69475] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2459), 1, - anon_sym_as, - ACTIONS(2461), 1, - anon_sym_COLON, - [68733] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3000), 2, + ACTIONS(2948), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68741] = 2, + [69483] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3232), 2, + sym__newline, + anon_sym_SEMI, + [69491] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3234), 1, + anon_sym_COLON, + ACTIONS(3236), 1, + anon_sym_DASH_GT, + [69501] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3238), 2, + sym__newline, + anon_sym_SEMI, + [69509] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3240), 2, - sym__newline, - anon_sym_SEMI, - [68749] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2780), 2, - anon_sym_RPAREN, anon_sym_COMMA, - [68757] = 2, + anon_sym_RBRACK, + [69517] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2900), 2, - anon_sym_RPAREN, + ACTIONS(3242), 2, anon_sym_COMMA, - [68765] = 3, + anon_sym_RBRACK, + [69525] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2397), 1, + ACTIONS(2439), 1, anon_sym_as, - ACTIONS(2401), 1, + ACTIONS(2441), 1, anon_sym_COLON, - [68775] = 3, + [69535] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3242), 1, - anon_sym_COLON, - ACTIONS(3244), 1, - anon_sym_DASH_GT, - [68785] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3246), 1, - sym_identifier, - STATE(1576), 1, - sym_match_capture_pattern, - [68795] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2083), 1, - anon_sym_DOT, - STATE(1408), 1, - aux_sym_match_value_pattern_repeat1, - [68805] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3248), 2, + ACTIONS(3244), 2, sym__newline, anon_sym_SEMI, - [68813] = 3, + [69543] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3123), 1, + ACTIONS(2702), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69551] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3246), 2, + anon_sym_COMMA, anon_sym_RBRACE, - ACTIONS(3250), 1, + [69559] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3248), 1, anon_sym_COMMA, - [68823] = 3, + ACTIONS(3250), 1, + anon_sym_RBRACE, + [69569] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3252), 1, - sym_integer, - ACTIONS(3254), 1, - sym_float, - [68833] = 3, + ACTIONS(2276), 2, + sym__newline, + anon_sym_SEMI, + [69577] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2477), 1, - anon_sym_as, - ACTIONS(2479), 1, - anon_sym_COLON, - [68843] = 2, + ACTIONS(3252), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69585] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3254), 2, + sym__newline, + anon_sym_SEMI, + [69593] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1576), 1, + sym_parameters, + [69603] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2393), 1, + anon_sym_COMMA, + STATE(1273), 1, + aux_sym_expression_list_repeat1, + [69613] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1560), 1, + sym_parameters, + [69623] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3256), 2, - sym__newline, - anon_sym_SEMI, - [68851] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1018), 2, - anon_sym_except, - anon_sym_finally, - [68859] = 3, + anon_sym_COMMA, + anon_sym_RBRACK, + [69631] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(3258), 1, - sym_integer, + anon_sym_COLON, ACTIONS(3260), 1, - sym_float, - [68869] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2744), 2, - sym__newline, - anon_sym_SEMI, - [68877] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2652), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68885] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_COMMA, - STATE(1219), 1, - aux_sym_expression_list_repeat1, - [68895] = 2, + anon_sym_DASH_GT, + [69641] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3262), 2, anon_sym_COMMA, - anon_sym_RBRACE, - [68903] = 2, + anon_sym_RBRACK, + [69649] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2715), 2, + sym__newline, + anon_sym_SEMI, + [69657] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3264), 2, sym__newline, anon_sym_SEMI, - [68911] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2469), 2, - sym__newline, - anon_sym_SEMI, - [68919] = 2, + [69665] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3266), 2, sym__newline, anon_sym_SEMI, - [68927] = 2, + [69673] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3268), 2, sym__newline, anon_sym_SEMI, - [68935] = 2, + [69681] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2770), 2, - anon_sym_COMMA, - anon_sym_COLON, - [68943] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1052), 2, + ACTIONS(1054), 2, anon_sym_except, anon_sym_finally, - [68951] = 2, + [69689] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1022), 2, + anon_sym_except, + anon_sym_finally, + [69697] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3270), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [68959] = 2, + sym__newline, + anon_sym_SEMI, + [69705] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3272), 2, sym__newline, anon_sym_SEMI, - [68967] = 2, + [69713] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3274), 2, sym__newline, anon_sym_SEMI, - [68975] = 3, + [69721] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(3276), 1, sym_integer, ACTIONS(3278), 1, sym_float, - [68985] = 2, + [69731] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2260), 1, + anon_sym_COMMA, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + [69741] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3280), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [68993] = 2, + sym__newline, + anon_sym_SEMI, + [69749] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1070), 2, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1286), 1, + aux_sym_expression_list_repeat1, + [69759] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2491), 2, + sym__newline, + anon_sym_SEMI, + [69767] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2986), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69775] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2936), 1, + sym_identifier, + STATE(1592), 1, + sym_match_keyword_pattern, + [69785] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2399), 1, + anon_sym_as, + ACTIONS(2403), 1, + anon_sym_COLON, + [69795] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3282), 1, + anon_sym_COMMA, + STATE(1382), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69805] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3284), 2, + sym__newline, + anon_sym_SEMI, + [69813] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1544), 1, + sym_parameters, + [69823] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1026), 2, anon_sym_except, anon_sym_finally, - [69001] = 3, + [69831] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2723), 1, + ACTIONS(2877), 1, anon_sym_LPAREN, STATE(1546), 1, sym_parameters, - [69011] = 3, + [69841] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2723), 1, - anon_sym_LPAREN, - STATE(1547), 1, - sym_parameters, - [69021] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1951), 1, - anon_sym_RBRACE, - ACTIONS(3282), 1, + ACTIONS(2729), 2, + anon_sym_RPAREN, anon_sym_COMMA, - [69031] = 3, + [69849] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3284), 1, + ACTIONS(2906), 1, anon_sym_COMMA, - STATE(1340), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [69041] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3162), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [69049] = 3, - ACTIONS(3), 1, - sym_comment, ACTIONS(3286), 1, - anon_sym_COLON, + anon_sym_RPAREN, + [69859] = 3, + ACTIONS(3), 1, + sym_comment, ACTIONS(3288), 1, - anon_sym_DASH_GT, - [69059] = 2, + anon_sym_COMMA, + STATE(1480), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69869] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3290), 2, sym__newline, anon_sym_SEMI, - [69067] = 2, + [69877] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3292), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [69075] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3294), 2, - anon_sym_COLON, - anon_sym_DASH_GT, - [69083] = 2, + ACTIONS(3292), 1, + sym_integer, + ACTIONS(3294), 1, + sym_float, + [69887] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3296), 2, + sym__newline, + anon_sym_SEMI, + [69895] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2853), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [69091] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3298), 1, - anon_sym_COLON, - [69098] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3300), 1, - anon_sym_RBRACE, - [69105] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2936), 1, - anon_sym_RBRACK, - [69112] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3062), 1, - anon_sym_in, - [69119] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3302), 1, - anon_sym_RBRACE, - [69126] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3304), 1, - sym_identifier, - [69133] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3306), 1, - sym_identifier, - [69140] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3308), 1, - anon_sym_COLON, - [69147] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3310), 1, - anon_sym_COLON, - [69154] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3312), 1, - anon_sym_RBRACE, - [69161] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3314), 1, - anon_sym_COLON, - [69168] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3316), 1, - anon_sym_RBRACE, - [69175] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3318), 1, - sym_identifier, - [69182] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3320), 1, - anon_sym_COLON, - [69189] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3322), 1, - anon_sym_COLON, - [69196] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3324), 1, - anon_sym_COLON, - [69203] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2958), 1, - anon_sym_RBRACK, - [69210] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3326), 1, - anon_sym_COLON, - [69217] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3328), 1, - ts_builtin_sym_end, - [69224] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3330), 1, - anon_sym_COLON, - [69231] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2944), 1, - anon_sym_in, - [69238] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3332), 1, - anon_sym_RPAREN, - [69245] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2546), 1, - anon_sym_COLON, - [69252] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3334), 1, - sym_identifier, - [69259] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3336), 1, - anon_sym_RBRACE, - [69266] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3338), 1, - anon_sym_COLON, - [69273] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3340), 1, - anon_sym_RPAREN, - [69280] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3342), 1, - anon_sym_COLON, - [69287] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3344), 1, - anon_sym_COLON, - [69294] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2548), 1, - anon_sym_COLON, - [69301] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3346), 1, - anon_sym_COLON, - [69308] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3348), 1, - sym_identifier, - [69315] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2982), 1, - anon_sym_RBRACE, - [69322] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3350), 1, - sym_identifier, - [69329] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3352), 1, - anon_sym_RBRACK, - [69336] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3354), 1, - anon_sym_COLON, - [69343] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3356), 1, - anon_sym_COLON, - [69350] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3358), 1, - anon_sym_COLON, - [69357] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3360), 1, - anon_sym_RBRACE, - [69364] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2280), 1, - anon_sym_EQ, - [69371] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2562), 1, - anon_sym_COLON, - [69378] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3362), 1, - anon_sym_COLON, - [69385] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3364), 1, - anon_sym_COLON, - [69392] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3366), 1, - sym_identifier, - [69399] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2001), 1, - anon_sym_RBRACE, - [69406] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3368), 1, - sym_identifier, - [69413] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3370), 1, - anon_sym_RBRACE, - [69420] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3372), 1, - sym_identifier, - [69427] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3374), 1, - anon_sym_RPAREN, - [69434] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3376), 1, - anon_sym_in, - [69441] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3378), 1, - anon_sym_COLON, - [69448] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3380), 1, - sym_identifier, - [69455] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3382), 1, - anon_sym_COLON, - [69462] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3384), 1, - anon_sym_COLON, - [69469] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3386), 1, - anon_sym_for, - [69476] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3388), 1, - anon_sym_COLON, - [69483] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3104), 1, - anon_sym_in, - [69490] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2554), 1, - anon_sym_COLON, - [69497] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3085), 1, - anon_sym_in, - [69504] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3390), 1, - anon_sym_COLON, - [69511] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3392), 1, - anon_sym_RPAREN, - [69518] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3394), 1, - anon_sym_COLON, - [69525] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3396), 1, - anon_sym_COLON, - [69532] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3398), 1, - anon_sym_RPAREN, - [69539] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3400), 1, - anon_sym_in, - [69546] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3402), 1, - anon_sym_RPAREN, - [69553] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3404), 1, - anon_sym_COLON, - [69560] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3406), 1, - anon_sym_RBRACK, - [69567] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3408), 1, - anon_sym_COLON, - [69574] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3410), 1, - anon_sym_import, - [69581] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3412), 1, - sym_identifier, - [69588] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3414), 1, - sym_identifier, - [69595] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3416), 1, - sym_identifier, - [69602] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3418), 1, - anon_sym_EQ, - [69609] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3420), 1, - anon_sym_RBRACE, - [69616] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3422), 1, - anon_sym_RBRACE, - [69623] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1104), 1, - anon_sym_def, - [69630] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3424), 1, - anon_sym_RPAREN, - [69637] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3426), 1, - anon_sym_RPAREN, - [69644] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3428), 1, - sym_identifier, - [69651] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3430), 1, - anon_sym_RBRACE, - [69658] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3432), 1, - anon_sym_RPAREN, - [69665] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3434), 1, - sym_identifier, - [69672] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3436), 1, - anon_sym_RBRACK, - [69679] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(956), 1, - anon_sym_STAR, - [69686] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3438), 1, - anon_sym_import, - [69693] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3440), 1, - anon_sym_RBRACE, - [69700] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3442), 1, - anon_sym_RPAREN, - [69707] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3444), 1, - anon_sym_RPAREN, - [69714] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3025), 1, - anon_sym_RBRACK, - [69721] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3446), 1, - anon_sym_COLON, - [69728] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3448), 1, - anon_sym_in, - [69735] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3450), 1, - anon_sym_RBRACE, - [69742] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3200), 1, - anon_sym_RBRACE, - [69749] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3452), 1, - anon_sym_RBRACK, - [69756] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3454), 1, - anon_sym_RPAREN, - [69763] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3456), 1, - anon_sym_COLON, - [69770] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3458), 1, - anon_sym_RPAREN, - [69777] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3460), 1, - anon_sym_COLON, - [69784] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3462), 1, - anon_sym_in, - [69791] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3464), 1, - anon_sym_RPAREN, - [69798] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3466), 1, - anon_sym_RBRACK, - [69805] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2746), 1, - anon_sym_RBRACE, - [69812] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3468), 1, - anon_sym_RBRACE, - [69819] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2912), 1, - anon_sym_RBRACK, - [69826] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3470), 1, - anon_sym_import, - [69833] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3472), 1, - anon_sym_RBRACK, - [69840] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3474), 1, - anon_sym_COLON, - [69847] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3476), 1, - anon_sym_import, - [69854] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3478), 1, - anon_sym_RBRACE, - [69861] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3480), 1, - sym_identifier, - [69868] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3482), 1, - anon_sym_COLON, - [69875] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3484), 1, - anon_sym_RBRACE, - [69882] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3486), 1, - anon_sym_COLON, - [69889] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3488), 1, - anon_sym_COLON, - [69896] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3490), 1, anon_sym_COLON, [69903] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3492), 1, + ACTIONS(1079), 2, + anon_sym_except, + anon_sym_finally, + [69911] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3298), 2, + sym__newline, + anon_sym_SEMI, + [69919] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3300), 2, + anon_sym_COMMA, anon_sym_RBRACE, - [69910] = 2, + [69927] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3302), 2, + sym__newline, + anon_sym_SEMI, + [69935] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3304), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69943] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3306), 1, + anon_sym_COLON, + ACTIONS(3308), 1, + anon_sym_DASH_GT, + [69953] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3310), 1, + anon_sym_COLON, + [69960] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3012), 1, + anon_sym_RBRACK, + [69967] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3312), 1, + anon_sym_RPAREN, + [69974] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3314), 1, + sym_identifier, + [69981] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3316), 1, + sym_identifier, + [69988] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3318), 1, + anon_sym_RPAREN, + [69995] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3320), 1, + anon_sym_in, + [70002] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3322), 1, + anon_sym_import, + [70009] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3324), 1, + anon_sym_RBRACE, + [70016] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3326), 1, + anon_sym_COLON, + [70023] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3328), 1, + anon_sym_for, + [70030] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3330), 1, + anon_sym_RBRACE, + [70037] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3332), 1, + anon_sym_RPAREN, + [70044] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3334), 1, + anon_sym_COLON, + [70051] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3336), 1, + anon_sym_RBRACE, + [70058] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3338), 1, + anon_sym_RPAREN, + [70065] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2535), 1, + anon_sym_COLON, + [70072] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3340), 1, + anon_sym_COLON, + [70079] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3342), 1, + sym_identifier, + [70086] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3344), 1, + anon_sym_COLON, + [70093] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2375), 1, + anon_sym_EQ, + [70100] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3346), 1, + anon_sym_COLON, + [70107] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3348), 1, + anon_sym_COLON, + [70114] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2541), 1, + anon_sym_COLON, + [70121] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3350), 1, + anon_sym_COLON, + [70128] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3352), 1, + anon_sym_import, + [70135] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3354), 1, + anon_sym_COLON, + [70142] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3356), 1, + anon_sym_RPAREN, + [70149] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3358), 1, + sym_identifier, + [70156] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3360), 1, + anon_sym_COLON, + [70163] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3362), 1, + anon_sym_COLON, + [70170] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3364), 1, + anon_sym_COLON, + [70177] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2572), 1, + anon_sym_COLON, + [70184] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3108), 1, + anon_sym_RBRACE, + [70191] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3366), 1, + anon_sym_COLON, + [70198] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3368), 1, + anon_sym_COLON, + [70205] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3370), 1, + anon_sym_COLON, + [70212] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3372), 1, + anon_sym_LPAREN, + [70219] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2731), 1, + anon_sym_RBRACE, + [70226] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3374), 1, + anon_sym_COLON, + [70233] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3376), 1, + sym_identifier, + [70240] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3378), 1, + anon_sym_RPAREN, + [70247] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3380), 1, + anon_sym_RPAREN, + [70254] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3382), 1, + anon_sym_RBRACE, + [70261] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3384), 1, + anon_sym_RBRACK, + [70268] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3386), 1, + anon_sym_RBRACK, + [70275] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3388), 1, + sym_identifier, + [70282] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3128), 1, + anon_sym_RBRACK, + [70289] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3390), 1, + anon_sym_COLON, + [70296] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3392), 1, + sym_identifier, + [70303] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3394), 1, + anon_sym_COLON, + [70310] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3396), 1, + anon_sym_RBRACE, + [70317] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3398), 1, + anon_sym_RBRACE, + [70324] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3400), 1, + anon_sym_RBRACE, + [70331] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3402), 1, + anon_sym_COLON, + [70338] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3404), 1, + sym_identifier, + [70345] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3406), 1, + anon_sym_RBRACK, + [70352] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3408), 1, + anon_sym_RPAREN, + [70359] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3410), 1, + anon_sym_RPAREN, + [70366] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3412), 1, + anon_sym_in, + [70373] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3414), 1, + anon_sym_RPAREN, + [70380] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3130), 1, + anon_sym_in, + [70387] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3416), 1, + anon_sym_RBRACK, + [70394] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3418), 1, + anon_sym_RBRACE, + [70401] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2797), 1, + anon_sym_RBRACE, + [70408] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3186), 1, + anon_sym_in, + [70415] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3420), 1, + sym_identifier, + [70422] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3422), 1, + anon_sym_RBRACE, + [70429] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3424), 1, + sym_identifier, + [70436] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3426), 1, + anon_sym_RPAREN, + [70443] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3428), 1, + anon_sym_COLON, + [70450] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3430), 1, + anon_sym_RPAREN, + [70457] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3432), 1, + anon_sym_RBRACE, + [70464] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3434), 1, + anon_sym_RPAREN, + [70471] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2601), 1, + anon_sym_COLON, + [70478] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3436), 1, + anon_sym_RBRACE, + [70485] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3438), 1, + anon_sym_COLON, + [70492] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3440), 1, + anon_sym_RBRACK, + [70499] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3442), 1, + anon_sym_COLON, + [70506] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3444), 1, + anon_sym_RBRACK, + [70513] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3446), 1, + anon_sym_COLON, + [70520] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3046), 1, + anon_sym_RBRACK, + [70527] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3448), 1, + anon_sym_RBRACE, + [70534] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3450), 1, + sym_identifier, + [70541] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3452), 1, + anon_sym_COLON, + [70548] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3454), 1, + anon_sym_in, + [70555] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3456), 1, + sym_identifier, + [70562] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3458), 1, + anon_sym_RBRACE, + [70569] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3460), 1, + anon_sym_COLON, + [70576] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3462), 1, + anon_sym_in, + [70583] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3464), 1, + sym_identifier, + [70590] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3466), 1, + anon_sym_COLON, + [70597] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3468), 1, + sym_identifier, + [70604] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3470), 1, + anon_sym_COLON, + [70611] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3250), 1, + anon_sym_RBRACE, + [70618] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3472), 1, + ts_builtin_sym_end, + [70625] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3474), 1, + anon_sym_import, + [70632] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3476), 1, + anon_sym_in, + [70639] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3478), 1, + anon_sym_RPAREN, + [70646] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3480), 1, + anon_sym_import, + [70653] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3482), 1, + anon_sym_RBRACK, + [70660] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3484), 1, + anon_sym_RBRACE, + [70667] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3486), 1, + anon_sym_COLON, + [70674] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3488), 1, + anon_sym_COLON, + [70681] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3490), 1, + anon_sym_RBRACE, + [70688] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2896), 1, + anon_sym_in, + [70695] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3492), 1, + anon_sym_COLON, + [70702] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3494), 1, - anon_sym_RBRACE, - [69917] = 2, + anon_sym_COLON, + [70709] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3496), 1, - anon_sym_COLON, - [69924] = 2, + anon_sym_RPAREN, + [70716] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3498), 1, - sym_identifier, - [69931] = 2, + anon_sym_RBRACK, + [70723] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3500), 1, - anon_sym_COLON, - [69938] = 2, + sym_identifier, + [70730] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3502), 1, - anon_sym_RPAREN, - [69945] = 2, + anon_sym_RBRACE, + [70737] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3504), 1, - anon_sym_LPAREN, - [69952] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(984), 1, - anon_sym_STAR, - [69959] = 2, + anon_sym_COLON, + [70744] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3506), 1, - anon_sym_RBRACK, - [69966] = 2, + anon_sym_COLON, + [70751] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3508), 1, - anon_sym_RPAREN, - [69973] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2725), 1, anon_sym_RBRACE, - [69980] = 2, + [70758] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3510), 1, anon_sym_RBRACE, - [69987] = 2, + [70765] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3512), 1, anon_sym_COLON, - [69994] = 2, + [70772] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3514), 1, + anon_sym_in, + [70779] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1997), 1, anon_sym_RBRACE, - [70001] = 2, + [70786] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3516), 1, - sym_identifier, - [70008] = 2, + anon_sym_COLON, + [70793] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3518), 1, - anon_sym_in, - [70015] = 2, + anon_sym_RBRACE, + [70800] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3520), 1, sym_identifier, - [70022] = 2, + [70807] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3153), 1, + anon_sym_RBRACK, + [70814] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(990), 1, + anon_sym_STAR, + [70821] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3522), 1, - sym_identifier, - [70029] = 2, + anon_sym_RPAREN, + [70828] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3524), 1, - anon_sym_RBRACK, - [70036] = 2, + anon_sym_EQ, + [70835] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3168), 1, - anon_sym_in, - [70043] = 2, + ACTIONS(968), 1, + anon_sym_STAR, + [70842] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1110), 1, + ACTIONS(1100), 1, anon_sym_def, - [70050] = 2, + [70849] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3178), 1, + anon_sym_RBRACE, + [70856] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3526), 1, - anon_sym_in, - [70057] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3170), 1, - anon_sym_in, - [70064] = 2, + anon_sym_RPAREN, + [70863] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3528), 1, - anon_sym_RPAREN, - [70071] = 2, + sym_identifier, + [70870] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(3530), 1, - anon_sym_RBRACK, - [70078] = 2, + sym_identifier, + [70877] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3049), 1, - anon_sym_RBRACE, + ACTIONS(3532), 1, + sym_identifier, + [70884] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3534), 1, + sym_identifier, + [70891] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3536), 1, + anon_sym_COLON, + [70898] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3182), 1, + anon_sym_in, + [70905] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1122), 1, + anon_sym_def, + [70912] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3151), 1, + anon_sym_in, + [70919] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3184), 1, + anon_sym_in, + [70926] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3538), 1, + anon_sym_COLON, + [70933] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3540), 1, + anon_sym_COLON, + [70940] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3542), 1, + anon_sym_RBRACK, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(156)] = 0, - [SMALL_STATE(157)] = 123, - [SMALL_STATE(158)] = 248, - [SMALL_STATE(159)] = 375, - [SMALL_STATE(160)] = 486, - [SMALL_STATE(161)] = 597, - [SMALL_STATE(162)] = 720, - [SMALL_STATE(163)] = 845, - [SMALL_STATE(164)] = 968, - [SMALL_STATE(165)] = 1090, - [SMALL_STATE(166)] = 1212, - [SMALL_STATE(167)] = 1334, - [SMALL_STATE(168)] = 1456, - [SMALL_STATE(169)] = 1571, - [SMALL_STATE(170)] = 1686, - [SMALL_STATE(171)] = 1796, - [SMALL_STATE(172)] = 1906, - [SMALL_STATE(173)] = 2016, - [SMALL_STATE(174)] = 2127, - [SMALL_STATE(175)] = 2240, - [SMALL_STATE(176)] = 2353, - [SMALL_STATE(177)] = 2462, - [SMALL_STATE(178)] = 2575, - [SMALL_STATE(179)] = 2688, - [SMALL_STATE(180)] = 2801, - [SMALL_STATE(181)] = 2912, - [SMALL_STATE(182)] = 3021, - [SMALL_STATE(183)] = 3130, - [SMALL_STATE(184)] = 3239, - [SMALL_STATE(185)] = 3348, - [SMALL_STATE(186)] = 3457, - [SMALL_STATE(187)] = 3570, - [SMALL_STATE(188)] = 3685, - [SMALL_STATE(189)] = 3798, - [SMALL_STATE(190)] = 3908, - [SMALL_STATE(191)] = 4014, - [SMALL_STATE(192)] = 4124, - [SMALL_STATE(193)] = 4234, - [SMALL_STATE(194)] = 4344, - [SMALL_STATE(195)] = 4450, - [SMALL_STATE(196)] = 4560, - [SMALL_STATE(197)] = 4672, - [SMALL_STATE(198)] = 4782, - [SMALL_STATE(199)] = 4896, - [SMALL_STATE(200)] = 5008, - [SMALL_STATE(201)] = 5118, - [SMALL_STATE(202)] = 5228, - [SMALL_STATE(203)] = 5338, - [SMALL_STATE(204)] = 5448, - [SMALL_STATE(205)] = 5558, - [SMALL_STATE(206)] = 5668, - [SMALL_STATE(207)] = 5778, - [SMALL_STATE(208)] = 5884, - [SMALL_STATE(209)] = 5998, - [SMALL_STATE(210)] = 6108, - [SMALL_STATE(211)] = 6218, - [SMALL_STATE(212)] = 6332, - [SMALL_STATE(213)] = 6438, - [SMALL_STATE(214)] = 6548, - [SMALL_STATE(215)] = 6658, - [SMALL_STATE(216)] = 6768, - [SMALL_STATE(217)] = 6878, - [SMALL_STATE(218)] = 6988, - [SMALL_STATE(219)] = 7100, - [SMALL_STATE(220)] = 7210, - [SMALL_STATE(221)] = 7320, - [SMALL_STATE(222)] = 7430, - [SMALL_STATE(223)] = 7540, - [SMALL_STATE(224)] = 7650, - [SMALL_STATE(225)] = 7760, - [SMALL_STATE(226)] = 7872, - [SMALL_STATE(227)] = 7982, - [SMALL_STATE(228)] = 8094, - [SMALL_STATE(229)] = 8204, - [SMALL_STATE(230)] = 8314, - [SMALL_STATE(231)] = 8424, - [SMALL_STATE(232)] = 8536, - [SMALL_STATE(233)] = 8643, - [SMALL_STATE(234)] = 8750, - [SMALL_STATE(235)] = 8857, - [SMALL_STATE(236)] = 8964, - [SMALL_STATE(237)] = 9059, - [SMALL_STATE(238)] = 9166, - [SMALL_STATE(239)] = 9273, - [SMALL_STATE(240)] = 9380, - [SMALL_STATE(241)] = 9487, - [SMALL_STATE(242)] = 9594, - [SMALL_STATE(243)] = 9698, - [SMALL_STATE(244)] = 9802, - [SMALL_STATE(245)] = 9908, - [SMALL_STATE(246)] = 10014, - [SMALL_STATE(247)] = 10120, - [SMALL_STATE(248)] = 10226, - [SMALL_STATE(249)] = 10332, - [SMALL_STATE(250)] = 10435, - [SMALL_STATE(251)] = 10538, - [SMALL_STATE(252)] = 10641, - [SMALL_STATE(253)] = 10744, - [SMALL_STATE(254)] = 10847, - [SMALL_STATE(255)] = 10950, - [SMALL_STATE(256)] = 11053, - [SMALL_STATE(257)] = 11156, - [SMALL_STATE(258)] = 11259, - [SMALL_STATE(259)] = 11362, - [SMALL_STATE(260)] = 11465, - [SMALL_STATE(261)] = 11568, - [SMALL_STATE(262)] = 11671, - [SMALL_STATE(263)] = 11774, - [SMALL_STATE(264)] = 11877, - [SMALL_STATE(265)] = 11979, - [SMALL_STATE(266)] = 12081, - [SMALL_STATE(267)] = 12155, - [SMALL_STATE(268)] = 12257, - [SMALL_STATE(269)] = 12331, - [SMALL_STATE(270)] = 12405, + [SMALL_STATE(157)] = 0, + [SMALL_STATE(158)] = 127, + [SMALL_STATE(159)] = 254, + [SMALL_STATE(160)] = 379, + [SMALL_STATE(161)] = 504, + [SMALL_STATE(162)] = 615, + [SMALL_STATE(163)] = 726, + [SMALL_STATE(164)] = 851, + [SMALL_STATE(165)] = 978, + [SMALL_STATE(166)] = 1100, + [SMALL_STATE(167)] = 1222, + [SMALL_STATE(168)] = 1344, + [SMALL_STATE(169)] = 1466, + [SMALL_STATE(170)] = 1581, + [SMALL_STATE(171)] = 1696, + [SMALL_STATE(172)] = 1806, + [SMALL_STATE(173)] = 1916, + [SMALL_STATE(174)] = 2026, + [SMALL_STATE(175)] = 2135, + [SMALL_STATE(176)] = 2244, + [SMALL_STATE(177)] = 2353, + [SMALL_STATE(178)] = 2462, + [SMALL_STATE(179)] = 2577, + [SMALL_STATE(180)] = 2690, + [SMALL_STATE(181)] = 2799, + [SMALL_STATE(182)] = 2914, + [SMALL_STATE(183)] = 3027, + [SMALL_STATE(184)] = 3144, + [SMALL_STATE(185)] = 3255, + [SMALL_STATE(186)] = 3364, + [SMALL_STATE(187)] = 3479, + [SMALL_STATE(188)] = 3588, + [SMALL_STATE(189)] = 3703, + [SMALL_STATE(190)] = 3814, + [SMALL_STATE(191)] = 3927, + [SMALL_STATE(192)] = 4037, + [SMALL_STATE(193)] = 4151, + [SMALL_STATE(194)] = 4261, + [SMALL_STATE(195)] = 4371, + [SMALL_STATE(196)] = 4481, + [SMALL_STATE(197)] = 4591, + [SMALL_STATE(198)] = 4701, + [SMALL_STATE(199)] = 4811, + [SMALL_STATE(200)] = 4921, + [SMALL_STATE(201)] = 5031, + [SMALL_STATE(202)] = 5141, + [SMALL_STATE(203)] = 5247, + [SMALL_STATE(204)] = 5357, + [SMALL_STATE(205)] = 5467, + [SMALL_STATE(206)] = 5577, + [SMALL_STATE(207)] = 5687, + [SMALL_STATE(208)] = 5797, + [SMALL_STATE(209)] = 5909, + [SMALL_STATE(210)] = 6023, + [SMALL_STATE(211)] = 6135, + [SMALL_STATE(212)] = 6245, + [SMALL_STATE(213)] = 6357, + [SMALL_STATE(214)] = 6471, + [SMALL_STATE(215)] = 6577, + [SMALL_STATE(216)] = 6691, + [SMALL_STATE(217)] = 6801, + [SMALL_STATE(218)] = 6911, + [SMALL_STATE(219)] = 7021, + [SMALL_STATE(220)] = 7131, + [SMALL_STATE(221)] = 7241, + [SMALL_STATE(222)] = 7351, + [SMALL_STATE(223)] = 7465, + [SMALL_STATE(224)] = 7577, + [SMALL_STATE(225)] = 7683, + [SMALL_STATE(226)] = 7793, + [SMALL_STATE(227)] = 7903, + [SMALL_STATE(228)] = 8013, + [SMALL_STATE(229)] = 8119, + [SMALL_STATE(230)] = 8229, + [SMALL_STATE(231)] = 8339, + [SMALL_STATE(232)] = 8453, + [SMALL_STATE(233)] = 8565, + [SMALL_STATE(234)] = 8675, + [SMALL_STATE(235)] = 8789, + [SMALL_STATE(236)] = 8901, + [SMALL_STATE(237)] = 9015, + [SMALL_STATE(238)] = 9129, + [SMALL_STATE(239)] = 9236, + [SMALL_STATE(240)] = 9343, + [SMALL_STATE(241)] = 9450, + [SMALL_STATE(242)] = 9557, + [SMALL_STATE(243)] = 9664, + [SMALL_STATE(244)] = 9771, + [SMALL_STATE(245)] = 9866, + [SMALL_STATE(246)] = 9973, + [SMALL_STATE(247)] = 10080, + [SMALL_STATE(248)] = 10186, + [SMALL_STATE(249)] = 10292, + [SMALL_STATE(250)] = 10398, + [SMALL_STATE(251)] = 10502, + [SMALL_STATE(252)] = 10608, + [SMALL_STATE(253)] = 10712, + [SMALL_STATE(254)] = 10818, + [SMALL_STATE(255)] = 10921, + [SMALL_STATE(256)] = 11024, + [SMALL_STATE(257)] = 11127, + [SMALL_STATE(258)] = 11230, + [SMALL_STATE(259)] = 11333, + [SMALL_STATE(260)] = 11436, + [SMALL_STATE(261)] = 11539, + [SMALL_STATE(262)] = 11642, + [SMALL_STATE(263)] = 11745, + [SMALL_STATE(264)] = 11848, + [SMALL_STATE(265)] = 11951, + [SMALL_STATE(266)] = 12051, + [SMALL_STATE(267)] = 12125, + [SMALL_STATE(268)] = 12199, + [SMALL_STATE(269)] = 12301, + [SMALL_STATE(270)] = 12403, [SMALL_STATE(271)] = 12505, - [SMALL_STATE(272)] = 12579, - [SMALL_STATE(273)] = 12653, - [SMALL_STATE(274)] = 12727, - [SMALL_STATE(275)] = 12829, - [SMALL_STATE(276)] = 12931, - [SMALL_STATE(277)] = 13005, - [SMALL_STATE(278)] = 13107, - [SMALL_STATE(279)] = 13209, - [SMALL_STATE(280)] = 13283, - [SMALL_STATE(281)] = 13383, - [SMALL_STATE(282)] = 13485, + [SMALL_STATE(272)] = 12607, + [SMALL_STATE(273)] = 12681, + [SMALL_STATE(274)] = 12783, + [SMALL_STATE(275)] = 12885, + [SMALL_STATE(276)] = 12959, + [SMALL_STATE(277)] = 13059, + [SMALL_STATE(278)] = 13161, + [SMALL_STATE(279)] = 13235, + [SMALL_STATE(280)] = 13335, + [SMALL_STATE(281)] = 13437, + [SMALL_STATE(282)] = 13511, [SMALL_STATE(283)] = 13585, - [SMALL_STATE(284)] = 13687, - [SMALL_STATE(285)] = 13789, - [SMALL_STATE(286)] = 13891, - [SMALL_STATE(287)] = 13993, - [SMALL_STATE(288)] = 14095, - [SMALL_STATE(289)] = 14192, - [SMALL_STATE(290)] = 14289, - [SMALL_STATE(291)] = 14386, - [SMALL_STATE(292)] = 14483, - [SMALL_STATE(293)] = 14580, - [SMALL_STATE(294)] = 14677, - [SMALL_STATE(295)] = 14774, - [SMALL_STATE(296)] = 14873, - [SMALL_STATE(297)] = 14972, - [SMALL_STATE(298)] = 15071, - [SMALL_STATE(299)] = 15168, - [SMALL_STATE(300)] = 15265, - [SMALL_STATE(301)] = 15362, - [SMALL_STATE(302)] = 15459, - [SMALL_STATE(303)] = 15558, - [SMALL_STATE(304)] = 15657, - [SMALL_STATE(305)] = 15756, - [SMALL_STATE(306)] = 15853, - [SMALL_STATE(307)] = 15950, - [SMALL_STATE(308)] = 16049, - [SMALL_STATE(309)] = 16148, - [SMALL_STATE(310)] = 16247, - [SMALL_STATE(311)] = 16307, - [SMALL_STATE(312)] = 16377, - [SMALL_STATE(313)] = 16447, - [SMALL_STATE(314)] = 16517, - [SMALL_STATE(315)] = 16613, - [SMALL_STATE(316)] = 16709, - [SMALL_STATE(317)] = 16773, - [SMALL_STATE(318)] = 16837, - [SMALL_STATE(319)] = 16897, - [SMALL_STATE(320)] = 16957, - [SMALL_STATE(321)] = 17017, - [SMALL_STATE(322)] = 17077, - [SMALL_STATE(323)] = 17137, - [SMALL_STATE(324)] = 17207, - [SMALL_STATE(325)] = 17267, - [SMALL_STATE(326)] = 17337, - [SMALL_STATE(327)] = 17397, - [SMALL_STATE(328)] = 17457, - [SMALL_STATE(329)] = 17517, - [SMALL_STATE(330)] = 17587, - [SMALL_STATE(331)] = 17657, - [SMALL_STATE(332)] = 17727, - [SMALL_STATE(333)] = 17787, - [SMALL_STATE(334)] = 17851, - [SMALL_STATE(335)] = 17915, - [SMALL_STATE(336)] = 18011, - [SMALL_STATE(337)] = 18071, - [SMALL_STATE(338)] = 18164, - [SMALL_STATE(339)] = 18257, - [SMALL_STATE(340)] = 18350, - [SMALL_STATE(341)] = 18443, - [SMALL_STATE(342)] = 18536, - [SMALL_STATE(343)] = 18629, - [SMALL_STATE(344)] = 18722, - [SMALL_STATE(345)] = 18815, - [SMALL_STATE(346)] = 18908, - [SMALL_STATE(347)] = 19001, - [SMALL_STATE(348)] = 19094, - [SMALL_STATE(349)] = 19187, - [SMALL_STATE(350)] = 19280, - [SMALL_STATE(351)] = 19373, - [SMALL_STATE(352)] = 19466, - [SMALL_STATE(353)] = 19559, - [SMALL_STATE(354)] = 19652, - [SMALL_STATE(355)] = 19745, - [SMALL_STATE(356)] = 19838, - [SMALL_STATE(357)] = 19931, - [SMALL_STATE(358)] = 20024, - [SMALL_STATE(359)] = 20117, - [SMALL_STATE(360)] = 20210, - [SMALL_STATE(361)] = 20303, - [SMALL_STATE(362)] = 20396, - [SMALL_STATE(363)] = 20489, - [SMALL_STATE(364)] = 20582, - [SMALL_STATE(365)] = 20647, - [SMALL_STATE(366)] = 20742, - [SMALL_STATE(367)] = 20835, - [SMALL_STATE(368)] = 20928, - [SMALL_STATE(369)] = 21021, - [SMALL_STATE(370)] = 21114, - [SMALL_STATE(371)] = 21207, - [SMALL_STATE(372)] = 21300, - [SMALL_STATE(373)] = 21393, - [SMALL_STATE(374)] = 21486, - [SMALL_STATE(375)] = 21551, - [SMALL_STATE(376)] = 21644, - [SMALL_STATE(377)] = 21737, - [SMALL_STATE(378)] = 21830, - [SMALL_STATE(379)] = 21923, - [SMALL_STATE(380)] = 22016, - [SMALL_STATE(381)] = 22109, - [SMALL_STATE(382)] = 22202, - [SMALL_STATE(383)] = 22295, - [SMALL_STATE(384)] = 22388, - [SMALL_STATE(385)] = 22481, - [SMALL_STATE(386)] = 22574, - [SMALL_STATE(387)] = 22667, - [SMALL_STATE(388)] = 22760, - [SMALL_STATE(389)] = 22853, - [SMALL_STATE(390)] = 22946, - [SMALL_STATE(391)] = 23039, - [SMALL_STATE(392)] = 23132, - [SMALL_STATE(393)] = 23225, - [SMALL_STATE(394)] = 23318, - [SMALL_STATE(395)] = 23411, - [SMALL_STATE(396)] = 23504, - [SMALL_STATE(397)] = 23597, - [SMALL_STATE(398)] = 23690, - [SMALL_STATE(399)] = 23783, - [SMALL_STATE(400)] = 23876, - [SMALL_STATE(401)] = 23969, - [SMALL_STATE(402)] = 24062, - [SMALL_STATE(403)] = 24155, - [SMALL_STATE(404)] = 24248, - [SMALL_STATE(405)] = 24341, - [SMALL_STATE(406)] = 24434, - [SMALL_STATE(407)] = 24527, - [SMALL_STATE(408)] = 24620, - [SMALL_STATE(409)] = 24713, - [SMALL_STATE(410)] = 24806, - [SMALL_STATE(411)] = 24899, - [SMALL_STATE(412)] = 24992, - [SMALL_STATE(413)] = 25085, - [SMALL_STATE(414)] = 25178, - [SMALL_STATE(415)] = 25271, - [SMALL_STATE(416)] = 25364, - [SMALL_STATE(417)] = 25457, - [SMALL_STATE(418)] = 25550, - [SMALL_STATE(419)] = 25643, - [SMALL_STATE(420)] = 25736, - [SMALL_STATE(421)] = 25829, - [SMALL_STATE(422)] = 25922, - [SMALL_STATE(423)] = 26015, - [SMALL_STATE(424)] = 26108, - [SMALL_STATE(425)] = 26201, - [SMALL_STATE(426)] = 26294, - [SMALL_STATE(427)] = 26387, - [SMALL_STATE(428)] = 26480, - [SMALL_STATE(429)] = 26573, - [SMALL_STATE(430)] = 26666, - [SMALL_STATE(431)] = 26739, - [SMALL_STATE(432)] = 26832, - [SMALL_STATE(433)] = 26925, - [SMALL_STATE(434)] = 26998, - [SMALL_STATE(435)] = 27091, - [SMALL_STATE(436)] = 27149, - [SMALL_STATE(437)] = 27211, - [SMALL_STATE(438)] = 27273, - [SMALL_STATE(439)] = 27331, - [SMALL_STATE(440)] = 27389, - [SMALL_STATE(441)] = 27447, - [SMALL_STATE(442)] = 27505, - [SMALL_STATE(443)] = 27563, - [SMALL_STATE(444)] = 27621, - [SMALL_STATE(445)] = 27679, - [SMALL_STATE(446)] = 27737, - [SMALL_STATE(447)] = 27795, - [SMALL_STATE(448)] = 27853, - [SMALL_STATE(449)] = 27911, - [SMALL_STATE(450)] = 27969, - [SMALL_STATE(451)] = 28039, - [SMALL_STATE(452)] = 28101, - [SMALL_STATE(453)] = 28171, - [SMALL_STATE(454)] = 28229, - [SMALL_STATE(455)] = 28287, - [SMALL_STATE(456)] = 28345, - [SMALL_STATE(457)] = 28403, - [SMALL_STATE(458)] = 28461, - [SMALL_STATE(459)] = 28523, - [SMALL_STATE(460)] = 28581, - [SMALL_STATE(461)] = 28639, - [SMALL_STATE(462)] = 28696, - [SMALL_STATE(463)] = 28757, - [SMALL_STATE(464)] = 28818, - [SMALL_STATE(465)] = 28879, - [SMALL_STATE(466)] = 28940, - [SMALL_STATE(467)] = 29001, - [SMALL_STATE(468)] = 29058, - [SMALL_STATE(469)] = 29115, - [SMALL_STATE(470)] = 29172, - [SMALL_STATE(471)] = 29233, - [SMALL_STATE(472)] = 29290, - [SMALL_STATE(473)] = 29351, - [SMALL_STATE(474)] = 29412, - [SMALL_STATE(475)] = 29473, - [SMALL_STATE(476)] = 29534, - [SMALL_STATE(477)] = 29629, - [SMALL_STATE(478)] = 29690, - [SMALL_STATE(479)] = 29751, - [SMALL_STATE(480)] = 29812, - [SMALL_STATE(481)] = 29879, - [SMALL_STATE(482)] = 29936, - [SMALL_STATE(483)] = 30029, - [SMALL_STATE(484)] = 30090, - [SMALL_STATE(485)] = 30151, - [SMALL_STATE(486)] = 30244, - [SMALL_STATE(487)] = 30305, - [SMALL_STATE(488)] = 30369, - [SMALL_STATE(489)] = 30425, - [SMALL_STATE(490)] = 30481, - [SMALL_STATE(491)] = 30545, - [SMALL_STATE(492)] = 30601, - [SMALL_STATE(493)] = 30693, - [SMALL_STATE(494)] = 30785, - [SMALL_STATE(495)] = 30849, - [SMALL_STATE(496)] = 30905, - [SMALL_STATE(497)] = 30961, - [SMALL_STATE(498)] = 31017, - [SMALL_STATE(499)] = 31073, - [SMALL_STATE(500)] = 31129, - [SMALL_STATE(501)] = 31185, - [SMALL_STATE(502)] = 31277, - [SMALL_STATE(503)] = 31333, - [SMALL_STATE(504)] = 31397, - [SMALL_STATE(505)] = 31489, - [SMALL_STATE(506)] = 31545, - [SMALL_STATE(507)] = 31601, - [SMALL_STATE(508)] = 31657, - [SMALL_STATE(509)] = 31713, - [SMALL_STATE(510)] = 31805, - [SMALL_STATE(511)] = 31897, - [SMALL_STATE(512)] = 31952, - [SMALL_STATE(513)] = 32007, - [SMALL_STATE(514)] = 32062, - [SMALL_STATE(515)] = 32117, - [SMALL_STATE(516)] = 32172, - [SMALL_STATE(517)] = 32227, - [SMALL_STATE(518)] = 32282, - [SMALL_STATE(519)] = 32337, - [SMALL_STATE(520)] = 32392, - [SMALL_STATE(521)] = 32447, - [SMALL_STATE(522)] = 32502, - [SMALL_STATE(523)] = 32557, - [SMALL_STATE(524)] = 32612, - [SMALL_STATE(525)] = 32667, - [SMALL_STATE(526)] = 32722, - [SMALL_STATE(527)] = 32777, - [SMALL_STATE(528)] = 32832, - [SMALL_STATE(529)] = 32887, - [SMALL_STATE(530)] = 32942, - [SMALL_STATE(531)] = 32997, - [SMALL_STATE(532)] = 33052, - [SMALL_STATE(533)] = 33107, - [SMALL_STATE(534)] = 33162, - [SMALL_STATE(535)] = 33217, - [SMALL_STATE(536)] = 33272, - [SMALL_STATE(537)] = 33327, - [SMALL_STATE(538)] = 33382, - [SMALL_STATE(539)] = 33437, - [SMALL_STATE(540)] = 33492, - [SMALL_STATE(541)] = 33547, - [SMALL_STATE(542)] = 33602, - [SMALL_STATE(543)] = 33657, - [SMALL_STATE(544)] = 33712, - [SMALL_STATE(545)] = 33767, - [SMALL_STATE(546)] = 33822, - [SMALL_STATE(547)] = 33877, - [SMALL_STATE(548)] = 33932, - [SMALL_STATE(549)] = 33987, - [SMALL_STATE(550)] = 34042, - [SMALL_STATE(551)] = 34097, - [SMALL_STATE(552)] = 34152, - [SMALL_STATE(553)] = 34207, - [SMALL_STATE(554)] = 34262, - [SMALL_STATE(555)] = 34317, - [SMALL_STATE(556)] = 34372, - [SMALL_STATE(557)] = 34427, - [SMALL_STATE(558)] = 34488, - [SMALL_STATE(559)] = 34543, - [SMALL_STATE(560)] = 34598, - [SMALL_STATE(561)] = 34653, - [SMALL_STATE(562)] = 34708, - [SMALL_STATE(563)] = 34763, - [SMALL_STATE(564)] = 34818, - [SMALL_STATE(565)] = 34873, - [SMALL_STATE(566)] = 34928, - [SMALL_STATE(567)] = 34983, - [SMALL_STATE(568)] = 35038, - [SMALL_STATE(569)] = 35093, - [SMALL_STATE(570)] = 35148, - [SMALL_STATE(571)] = 35203, - [SMALL_STATE(572)] = 35264, - [SMALL_STATE(573)] = 35319, - [SMALL_STATE(574)] = 35374, - [SMALL_STATE(575)] = 35429, - [SMALL_STATE(576)] = 35484, - [SMALL_STATE(577)] = 35539, - [SMALL_STATE(578)] = 35594, - [SMALL_STATE(579)] = 35649, - [SMALL_STATE(580)] = 35704, - [SMALL_STATE(581)] = 35759, - [SMALL_STATE(582)] = 35814, - [SMALL_STATE(583)] = 35875, - [SMALL_STATE(584)] = 35930, - [SMALL_STATE(585)] = 35985, - [SMALL_STATE(586)] = 36046, - [SMALL_STATE(587)] = 36101, - [SMALL_STATE(588)] = 36156, - [SMALL_STATE(589)] = 36245, - [SMALL_STATE(590)] = 36300, - [SMALL_STATE(591)] = 36389, - [SMALL_STATE(592)] = 36444, - [SMALL_STATE(593)] = 36499, - [SMALL_STATE(594)] = 36554, - [SMALL_STATE(595)] = 36609, - [SMALL_STATE(596)] = 36664, - [SMALL_STATE(597)] = 36719, - [SMALL_STATE(598)] = 36774, - [SMALL_STATE(599)] = 36829, - [SMALL_STATE(600)] = 36884, - [SMALL_STATE(601)] = 36939, - [SMALL_STATE(602)] = 36994, - [SMALL_STATE(603)] = 37049, - [SMALL_STATE(604)] = 37104, - [SMALL_STATE(605)] = 37159, - [SMALL_STATE(606)] = 37214, - [SMALL_STATE(607)] = 37269, - [SMALL_STATE(608)] = 37324, - [SMALL_STATE(609)] = 37379, - [SMALL_STATE(610)] = 37434, - [SMALL_STATE(611)] = 37489, - [SMALL_STATE(612)] = 37544, - [SMALL_STATE(613)] = 37599, - [SMALL_STATE(614)] = 37654, - [SMALL_STATE(615)] = 37709, - [SMALL_STATE(616)] = 37792, - [SMALL_STATE(617)] = 37869, - [SMALL_STATE(618)] = 37946, - [SMALL_STATE(619)] = 38023, - [SMALL_STATE(620)] = 38100, - [SMALL_STATE(621)] = 38177, - [SMALL_STATE(622)] = 38254, - [SMALL_STATE(623)] = 38328, - [SMALL_STATE(624)] = 38402, - [SMALL_STATE(625)] = 38476, - [SMALL_STATE(626)] = 38550, - [SMALL_STATE(627)] = 38624, - [SMALL_STATE(628)] = 38698, - [SMALL_STATE(629)] = 38772, - [SMALL_STATE(630)] = 38846, - [SMALL_STATE(631)] = 38920, - [SMALL_STATE(632)] = 38994, - [SMALL_STATE(633)] = 39072, - [SMALL_STATE(634)] = 39146, - [SMALL_STATE(635)] = 39220, - [SMALL_STATE(636)] = 39294, - [SMALL_STATE(637)] = 39372, - [SMALL_STATE(638)] = 39446, - [SMALL_STATE(639)] = 39520, - [SMALL_STATE(640)] = 39594, - [SMALL_STATE(641)] = 39668, - [SMALL_STATE(642)] = 39742, - [SMALL_STATE(643)] = 39816, - [SMALL_STATE(644)] = 39890, - [SMALL_STATE(645)] = 39964, - [SMALL_STATE(646)] = 40018, - [SMALL_STATE(647)] = 40092, - [SMALL_STATE(648)] = 40166, - [SMALL_STATE(649)] = 40240, - [SMALL_STATE(650)] = 40314, - [SMALL_STATE(651)] = 40388, - [SMALL_STATE(652)] = 40462, - [SMALL_STATE(653)] = 40536, - [SMALL_STATE(654)] = 40610, - [SMALL_STATE(655)] = 40684, - [SMALL_STATE(656)] = 40758, - [SMALL_STATE(657)] = 40832, - [SMALL_STATE(658)] = 40906, - [SMALL_STATE(659)] = 40960, - [SMALL_STATE(660)] = 41034, - [SMALL_STATE(661)] = 41108, - [SMALL_STATE(662)] = 41182, - [SMALL_STATE(663)] = 41256, - [SMALL_STATE(664)] = 41330, - [SMALL_STATE(665)] = 41404, - [SMALL_STATE(666)] = 41478, - [SMALL_STATE(667)] = 41552, - [SMALL_STATE(668)] = 41626, - [SMALL_STATE(669)] = 41700, - [SMALL_STATE(670)] = 41774, - [SMALL_STATE(671)] = 41848, - [SMALL_STATE(672)] = 41922, - [SMALL_STATE(673)] = 41996, - [SMALL_STATE(674)] = 42070, - [SMALL_STATE(675)] = 42144, - [SMALL_STATE(676)] = 42198, - [SMALL_STATE(677)] = 42252, - [SMALL_STATE(678)] = 42326, - [SMALL_STATE(679)] = 42400, - [SMALL_STATE(680)] = 42474, - [SMALL_STATE(681)] = 42548, - [SMALL_STATE(682)] = 42622, - [SMALL_STATE(683)] = 42696, - [SMALL_STATE(684)] = 42770, - [SMALL_STATE(685)] = 42844, - [SMALL_STATE(686)] = 42918, - [SMALL_STATE(687)] = 42992, - [SMALL_STATE(688)] = 43066, - [SMALL_STATE(689)] = 43140, - [SMALL_STATE(690)] = 43214, - [SMALL_STATE(691)] = 43288, - [SMALL_STATE(692)] = 43362, - [SMALL_STATE(693)] = 43416, - [SMALL_STATE(694)] = 43470, - [SMALL_STATE(695)] = 43544, - [SMALL_STATE(696)] = 43618, - [SMALL_STATE(697)] = 43666, - [SMALL_STATE(698)] = 43714, - [SMALL_STATE(699)] = 43762, - [SMALL_STATE(700)] = 43810, - [SMALL_STATE(701)] = 43857, - [SMALL_STATE(702)] = 43904, - [SMALL_STATE(703)] = 43951, - [SMALL_STATE(704)] = 43998, - [SMALL_STATE(705)] = 44045, - [SMALL_STATE(706)] = 44092, - [SMALL_STATE(707)] = 44139, - [SMALL_STATE(708)] = 44186, - [SMALL_STATE(709)] = 44233, - [SMALL_STATE(710)] = 44280, - [SMALL_STATE(711)] = 44327, - [SMALL_STATE(712)] = 44374, - [SMALL_STATE(713)] = 44421, - [SMALL_STATE(714)] = 44468, - [SMALL_STATE(715)] = 44515, - [SMALL_STATE(716)] = 44562, - [SMALL_STATE(717)] = 44609, - [SMALL_STATE(718)] = 44656, - [SMALL_STATE(719)] = 44703, - [SMALL_STATE(720)] = 44784, - [SMALL_STATE(721)] = 44831, - [SMALL_STATE(722)] = 44878, - [SMALL_STATE(723)] = 44925, - [SMALL_STATE(724)] = 44972, - [SMALL_STATE(725)] = 45019, - [SMALL_STATE(726)] = 45066, - [SMALL_STATE(727)] = 45147, - [SMALL_STATE(728)] = 45194, - [SMALL_STATE(729)] = 45241, - [SMALL_STATE(730)] = 45288, - [SMALL_STATE(731)] = 45335, - [SMALL_STATE(732)] = 45382, - [SMALL_STATE(733)] = 45429, - [SMALL_STATE(734)] = 45476, - [SMALL_STATE(735)] = 45523, - [SMALL_STATE(736)] = 45579, - [SMALL_STATE(737)] = 45649, - [SMALL_STATE(738)] = 45705, - [SMALL_STATE(739)] = 45755, - [SMALL_STATE(740)] = 45821, - [SMALL_STATE(741)] = 45877, - [SMALL_STATE(742)] = 45933, - [SMALL_STATE(743)] = 45997, - [SMALL_STATE(744)] = 46053, - [SMALL_STATE(745)] = 46123, - [SMALL_STATE(746)] = 46193, - [SMALL_STATE(747)] = 46249, - [SMALL_STATE(748)] = 46311, - [SMALL_STATE(749)] = 46381, - [SMALL_STATE(750)] = 46449, - [SMALL_STATE(751)] = 46509, - [SMALL_STATE(752)] = 46565, - [SMALL_STATE(753)] = 46615, - [SMALL_STATE(754)] = 46681, - [SMALL_STATE(755)] = 46745, - [SMALL_STATE(756)] = 46801, - [SMALL_STATE(757)] = 46863, - [SMALL_STATE(758)] = 46933, - [SMALL_STATE(759)] = 47003, - [SMALL_STATE(760)] = 47053, - [SMALL_STATE(761)] = 47103, - [SMALL_STATE(762)] = 47171, - [SMALL_STATE(763)] = 47231, - [SMALL_STATE(764)] = 47310, - [SMALL_STATE(765)] = 47357, - [SMALL_STATE(766)] = 47436, - [SMALL_STATE(767)] = 47485, - [SMALL_STATE(768)] = 47534, - [SMALL_STATE(769)] = 47583, - [SMALL_STATE(770)] = 47632, - [SMALL_STATE(771)] = 47681, - [SMALL_STATE(772)] = 47730, - [SMALL_STATE(773)] = 47775, - [SMALL_STATE(774)] = 47822, - [SMALL_STATE(775)] = 47871, - [SMALL_STATE(776)] = 47920, - [SMALL_STATE(777)] = 47969, - [SMALL_STATE(778)] = 48014, - [SMALL_STATE(779)] = 48063, - [SMALL_STATE(780)] = 48112, - [SMALL_STATE(781)] = 48189, - [SMALL_STATE(782)] = 48236, - [SMALL_STATE(783)] = 48285, - [SMALL_STATE(784)] = 48332, - [SMALL_STATE(785)] = 48386, - [SMALL_STATE(786)] = 48450, - [SMALL_STATE(787)] = 48504, - [SMALL_STATE(788)] = 48548, - [SMALL_STATE(789)] = 48592, - [SMALL_STATE(790)] = 48660, - [SMALL_STATE(791)] = 48728, - [SMALL_STATE(792)] = 48782, - [SMALL_STATE(793)] = 48858, - [SMALL_STATE(794)] = 48906, - [SMALL_STATE(795)] = 48954, - [SMALL_STATE(796)] = 48998, - [SMALL_STATE(797)] = 49042, - [SMALL_STATE(798)] = 49096, - [SMALL_STATE(799)] = 49150, - [SMALL_STATE(800)] = 49204, - [SMALL_STATE(801)] = 49258, - [SMALL_STATE(802)] = 49312, - [SMALL_STATE(803)] = 49372, - [SMALL_STATE(804)] = 49426, - [SMALL_STATE(805)] = 49494, - [SMALL_STATE(806)] = 49562, - [SMALL_STATE(807)] = 49628, - [SMALL_STATE(808)] = 49686, - [SMALL_STATE(809)] = 49740, - [SMALL_STATE(810)] = 49808, - [SMALL_STATE(811)] = 49872, - [SMALL_STATE(812)] = 49934, - [SMALL_STATE(813)] = 50000, - [SMALL_STATE(814)] = 50068, - [SMALL_STATE(815)] = 50136, - [SMALL_STATE(816)] = 50194, - [SMALL_STATE(817)] = 50248, - [SMALL_STATE(818)] = 50308, - [SMALL_STATE(819)] = 50376, - [SMALL_STATE(820)] = 50440, - [SMALL_STATE(821)] = 50502, - [SMALL_STATE(822)] = 50564, - [SMALL_STATE(823)] = 50632, - [SMALL_STATE(824)] = 50698, - [SMALL_STATE(825)] = 50756, - [SMALL_STATE(826)] = 50810, - [SMALL_STATE(827)] = 50870, - [SMALL_STATE(828)] = 50951, - [SMALL_STATE(829)] = 50998, - [SMALL_STATE(830)] = 51043, - [SMALL_STATE(831)] = 51124, - [SMALL_STATE(832)] = 51177, - [SMALL_STATE(833)] = 51236, - [SMALL_STATE(834)] = 51289, - [SMALL_STATE(835)] = 51334, - [SMALL_STATE(836)] = 51387, - [SMALL_STATE(837)] = 51430, - [SMALL_STATE(838)] = 51473, - [SMALL_STATE(839)] = 51540, - [SMALL_STATE(840)] = 51585, - [SMALL_STATE(841)] = 51650, - [SMALL_STATE(842)] = 51707, - [SMALL_STATE(843)] = 51754, - [SMALL_STATE(844)] = 51797, - [SMALL_STATE(845)] = 51842, - [SMALL_STATE(846)] = 51905, - [SMALL_STATE(847)] = 51966, - [SMALL_STATE(848)] = 52047, - [SMALL_STATE(849)] = 52092, - [SMALL_STATE(850)] = 52139, - [SMALL_STATE(851)] = 52184, - [SMALL_STATE(852)] = 52229, - [SMALL_STATE(853)] = 52272, - [SMALL_STATE(854)] = 52315, - [SMALL_STATE(855)] = 52360, - [SMALL_STATE(856)] = 52427, - [SMALL_STATE(857)] = 52494, - [SMALL_STATE(858)] = 52537, - [SMALL_STATE(859)] = 52618, - [SMALL_STATE(860)] = 52663, - [SMALL_STATE(861)] = 52706, - [SMALL_STATE(862)] = 52751, - [SMALL_STATE(863)] = 52798, - [SMALL_STATE(864)] = 52843, - [SMALL_STATE(865)] = 52886, - [SMALL_STATE(866)] = 52931, - [SMALL_STATE(867)] = 52984, - [SMALL_STATE(868)] = 53026, - [SMALL_STATE(869)] = 53068, - [SMALL_STATE(870)] = 53110, - [SMALL_STATE(871)] = 53152, - [SMALL_STATE(872)] = 53196, - [SMALL_STATE(873)] = 53240, - [SMALL_STATE(874)] = 53282, - [SMALL_STATE(875)] = 53360, - [SMALL_STATE(876)] = 53438, - [SMALL_STATE(877)] = 53480, - [SMALL_STATE(878)] = 53524, - [SMALL_STATE(879)] = 53566, - [SMALL_STATE(880)] = 53610, - [SMALL_STATE(881)] = 53652, - [SMALL_STATE(882)] = 53694, - [SMALL_STATE(883)] = 53736, - [SMALL_STATE(884)] = 53780, - [SMALL_STATE(885)] = 53822, - [SMALL_STATE(886)] = 53864, - [SMALL_STATE(887)] = 53906, - [SMALL_STATE(888)] = 53948, - [SMALL_STATE(889)] = 53990, - [SMALL_STATE(890)] = 54070, - [SMALL_STATE(891)] = 54112, - [SMALL_STATE(892)] = 54154, - [SMALL_STATE(893)] = 54196, - [SMALL_STATE(894)] = 54238, - [SMALL_STATE(895)] = 54280, - [SMALL_STATE(896)] = 54322, - [SMALL_STATE(897)] = 54364, - [SMALL_STATE(898)] = 54406, - [SMALL_STATE(899)] = 54448, - [SMALL_STATE(900)] = 54526, - [SMALL_STATE(901)] = 54568, - [SMALL_STATE(902)] = 54610, - [SMALL_STATE(903)] = 54652, - [SMALL_STATE(904)] = 54694, - [SMALL_STATE(905)] = 54736, - [SMALL_STATE(906)] = 54778, - [SMALL_STATE(907)] = 54820, - [SMALL_STATE(908)] = 54862, - [SMALL_STATE(909)] = 54904, - [SMALL_STATE(910)] = 54946, - [SMALL_STATE(911)] = 54988, - [SMALL_STATE(912)] = 55030, - [SMALL_STATE(913)] = 55072, - [SMALL_STATE(914)] = 55114, - [SMALL_STATE(915)] = 55156, - [SMALL_STATE(916)] = 55198, - [SMALL_STATE(917)] = 55240, - [SMALL_STATE(918)] = 55282, - [SMALL_STATE(919)] = 55324, - [SMALL_STATE(920)] = 55366, - [SMALL_STATE(921)] = 55408, - [SMALL_STATE(922)] = 55450, - [SMALL_STATE(923)] = 55492, - [SMALL_STATE(924)] = 55570, - [SMALL_STATE(925)] = 55648, - [SMALL_STATE(926)] = 55690, - [SMALL_STATE(927)] = 55732, - [SMALL_STATE(928)] = 55774, - [SMALL_STATE(929)] = 55816, - [SMALL_STATE(930)] = 55858, - [SMALL_STATE(931)] = 55900, - [SMALL_STATE(932)] = 55942, - [SMALL_STATE(933)] = 55984, - [SMALL_STATE(934)] = 56026, - [SMALL_STATE(935)] = 56068, - [SMALL_STATE(936)] = 56110, - [SMALL_STATE(937)] = 56152, - [SMALL_STATE(938)] = 56194, - [SMALL_STATE(939)] = 56236, - [SMALL_STATE(940)] = 56278, - [SMALL_STATE(941)] = 56320, - [SMALL_STATE(942)] = 56362, - [SMALL_STATE(943)] = 56404, - [SMALL_STATE(944)] = 56446, - [SMALL_STATE(945)] = 56488, - [SMALL_STATE(946)] = 56530, - [SMALL_STATE(947)] = 56571, - [SMALL_STATE(948)] = 56612, - [SMALL_STATE(949)] = 56653, - [SMALL_STATE(950)] = 56694, - [SMALL_STATE(951)] = 56735, - [SMALL_STATE(952)] = 56776, - [SMALL_STATE(953)] = 56817, - [SMALL_STATE(954)] = 56858, - [SMALL_STATE(955)] = 56903, - [SMALL_STATE(956)] = 56944, - [SMALL_STATE(957)] = 56985, - [SMALL_STATE(958)] = 57026, - [SMALL_STATE(959)] = 57067, - [SMALL_STATE(960)] = 57108, - [SMALL_STATE(961)] = 57149, - [SMALL_STATE(962)] = 57190, - [SMALL_STATE(963)] = 57231, - [SMALL_STATE(964)] = 57272, - [SMALL_STATE(965)] = 57313, - [SMALL_STATE(966)] = 57354, - [SMALL_STATE(967)] = 57395, - [SMALL_STATE(968)] = 57436, - [SMALL_STATE(969)] = 57477, - [SMALL_STATE(970)] = 57556, - [SMALL_STATE(971)] = 57597, - [SMALL_STATE(972)] = 57642, - [SMALL_STATE(973)] = 57717, - [SMALL_STATE(974)] = 57796, - [SMALL_STATE(975)] = 57837, - [SMALL_STATE(976)] = 57878, - [SMALL_STATE(977)] = 57919, - [SMALL_STATE(978)] = 57960, - [SMALL_STATE(979)] = 58001, - [SMALL_STATE(980)] = 58042, - [SMALL_STATE(981)] = 58121, - [SMALL_STATE(982)] = 58162, - [SMALL_STATE(983)] = 58203, - [SMALL_STATE(984)] = 58244, - [SMALL_STATE(985)] = 58285, - [SMALL_STATE(986)] = 58358, - [SMALL_STATE(987)] = 58428, - [SMALL_STATE(988)] = 58498, - [SMALL_STATE(989)] = 58560, - [SMALL_STATE(990)] = 58622, - [SMALL_STATE(991)] = 58661, - [SMALL_STATE(992)] = 58700, - [SMALL_STATE(993)] = 58739, - [SMALL_STATE(994)] = 58778, - [SMALL_STATE(995)] = 58808, - [SMALL_STATE(996)] = 58861, - [SMALL_STATE(997)] = 58896, - [SMALL_STATE(998)] = 58925, - [SMALL_STATE(999)] = 58950, - [SMALL_STATE(1000)] = 58975, - [SMALL_STATE(1001)] = 59012, - [SMALL_STATE(1002)] = 59037, - [SMALL_STATE(1003)] = 59062, - [SMALL_STATE(1004)] = 59099, - [SMALL_STATE(1005)] = 59128, - [SMALL_STATE(1006)] = 59165, - [SMALL_STATE(1007)] = 59200, - [SMALL_STATE(1008)] = 59253, - [SMALL_STATE(1009)] = 59290, - [SMALL_STATE(1010)] = 59343, - [SMALL_STATE(1011)] = 59377, - [SMALL_STATE(1012)] = 59411, - [SMALL_STATE(1013)] = 59439, - [SMALL_STATE(1014)] = 59485, - [SMALL_STATE(1015)] = 59528, - [SMALL_STATE(1016)] = 59571, - [SMALL_STATE(1017)] = 59614, - [SMALL_STATE(1018)] = 59645, - [SMALL_STATE(1019)] = 59688, - [SMALL_STATE(1020)] = 59731, - [SMALL_STATE(1021)] = 59774, - [SMALL_STATE(1022)] = 59817, - [SMALL_STATE(1023)] = 59857, - [SMALL_STATE(1024)] = 59901, - [SMALL_STATE(1025)] = 59938, - [SMALL_STATE(1026)] = 59975, - [SMALL_STATE(1027)] = 60000, - [SMALL_STATE(1028)] = 60037, - [SMALL_STATE(1029)] = 60074, - [SMALL_STATE(1030)] = 60108, - [SMALL_STATE(1031)] = 60142, - [SMALL_STATE(1032)] = 60163, - [SMALL_STATE(1033)] = 60184, - [SMALL_STATE(1034)] = 60206, - [SMALL_STATE(1035)] = 60237, - [SMALL_STATE(1036)] = 60258, - [SMALL_STATE(1037)] = 60281, - [SMALL_STATE(1038)] = 60312, - [SMALL_STATE(1039)] = 60343, - [SMALL_STATE(1040)] = 60374, - [SMALL_STATE(1041)] = 60405, - [SMALL_STATE(1042)] = 60442, - [SMALL_STATE(1043)] = 60473, - [SMALL_STATE(1044)] = 60504, - [SMALL_STATE(1045)] = 60535, - [SMALL_STATE(1046)] = 60566, - [SMALL_STATE(1047)] = 60597, - [SMALL_STATE(1048)] = 60628, - [SMALL_STATE(1049)] = 60659, - [SMALL_STATE(1050)] = 60690, - [SMALL_STATE(1051)] = 60721, - [SMALL_STATE(1052)] = 60752, - [SMALL_STATE(1053)] = 60783, - [SMALL_STATE(1054)] = 60814, - [SMALL_STATE(1055)] = 60845, - [SMALL_STATE(1056)] = 60882, - [SMALL_STATE(1057)] = 60899, - [SMALL_STATE(1058)] = 60936, - [SMALL_STATE(1059)] = 60973, - [SMALL_STATE(1060)] = 61010, - [SMALL_STATE(1061)] = 61033, - [SMALL_STATE(1062)] = 61054, - [SMALL_STATE(1063)] = 61085, - [SMALL_STATE(1064)] = 61107, - [SMALL_STATE(1065)] = 61141, - [SMALL_STATE(1066)] = 61165, - [SMALL_STATE(1067)] = 61187, - [SMALL_STATE(1068)] = 61209, - [SMALL_STATE(1069)] = 61243, - [SMALL_STATE(1070)] = 61265, - [SMALL_STATE(1071)] = 61299, - [SMALL_STATE(1072)] = 61333, - [SMALL_STATE(1073)] = 61357, - [SMALL_STATE(1074)] = 61379, - [SMALL_STATE(1075)] = 61399, - [SMALL_STATE(1076)] = 61433, - [SMALL_STATE(1077)] = 61453, - [SMALL_STATE(1078)] = 61471, - [SMALL_STATE(1079)] = 61491, - [SMALL_STATE(1080)] = 61525, - [SMALL_STATE(1081)] = 61547, - [SMALL_STATE(1082)] = 61567, - [SMALL_STATE(1083)] = 61591, - [SMALL_STATE(1084)] = 61625, - [SMALL_STATE(1085)] = 61659, - [SMALL_STATE(1086)] = 61693, - [SMALL_STATE(1087)] = 61727, - [SMALL_STATE(1088)] = 61761, - [SMALL_STATE(1089)] = 61779, - [SMALL_STATE(1090)] = 61797, - [SMALL_STATE(1091)] = 61831, - [SMALL_STATE(1092)] = 61854, - [SMALL_STATE(1093)] = 61873, - [SMALL_STATE(1094)] = 61892, - [SMALL_STATE(1095)] = 61913, - [SMALL_STATE(1096)] = 61936, - [SMALL_STATE(1097)] = 61961, - [SMALL_STATE(1098)] = 61980, - [SMALL_STATE(1099)] = 61999, - [SMALL_STATE(1100)] = 62018, - [SMALL_STATE(1101)] = 62037, - [SMALL_STATE(1102)] = 62060, - [SMALL_STATE(1103)] = 62085, - [SMALL_STATE(1104)] = 62099, - [SMALL_STATE(1105)] = 62113, - [SMALL_STATE(1106)] = 62127, - [SMALL_STATE(1107)] = 62141, - [SMALL_STATE(1108)] = 62155, - [SMALL_STATE(1109)] = 62169, - [SMALL_STATE(1110)] = 62183, - [SMALL_STATE(1111)] = 62197, - [SMALL_STATE(1112)] = 62219, - [SMALL_STATE(1113)] = 62237, - [SMALL_STATE(1114)] = 62255, - [SMALL_STATE(1115)] = 62269, - [SMALL_STATE(1116)] = 62283, - [SMALL_STATE(1117)] = 62297, - [SMALL_STATE(1118)] = 62315, - [SMALL_STATE(1119)] = 62329, - [SMALL_STATE(1120)] = 62347, - [SMALL_STATE(1121)] = 62367, - [SMALL_STATE(1122)] = 62385, - [SMALL_STATE(1123)] = 62401, - [SMALL_STATE(1124)] = 62419, - [SMALL_STATE(1125)] = 62439, - [SMALL_STATE(1126)] = 62459, - [SMALL_STATE(1127)] = 62477, - [SMALL_STATE(1128)] = 62501, - [SMALL_STATE(1129)] = 62525, - [SMALL_STATE(1130)] = 62539, - [SMALL_STATE(1131)] = 62553, - [SMALL_STATE(1132)] = 62573, - [SMALL_STATE(1133)] = 62587, - [SMALL_STATE(1134)] = 62601, - [SMALL_STATE(1135)] = 62627, - [SMALL_STATE(1136)] = 62649, - [SMALL_STATE(1137)] = 62663, - [SMALL_STATE(1138)] = 62677, - [SMALL_STATE(1139)] = 62691, - [SMALL_STATE(1140)] = 62707, - [SMALL_STATE(1141)] = 62721, - [SMALL_STATE(1142)] = 62739, - [SMALL_STATE(1143)] = 62759, - [SMALL_STATE(1144)] = 62779, - [SMALL_STATE(1145)] = 62803, - [SMALL_STATE(1146)] = 62823, - [SMALL_STATE(1147)] = 62839, - [SMALL_STATE(1148)] = 62857, - [SMALL_STATE(1149)] = 62871, - [SMALL_STATE(1150)] = 62893, - [SMALL_STATE(1151)] = 62907, - [SMALL_STATE(1152)] = 62927, - [SMALL_STATE(1153)] = 62947, - [SMALL_STATE(1154)] = 62967, - [SMALL_STATE(1155)] = 62987, - [SMALL_STATE(1156)] = 63007, - [SMALL_STATE(1157)] = 63021, - [SMALL_STATE(1158)] = 63039, - [SMALL_STATE(1159)] = 63057, - [SMALL_STATE(1160)] = 63077, - [SMALL_STATE(1161)] = 63095, - [SMALL_STATE(1162)] = 63111, - [SMALL_STATE(1163)] = 63129, - [SMALL_STATE(1164)] = 63149, - [SMALL_STATE(1165)] = 63169, - [SMALL_STATE(1166)] = 63187, - [SMALL_STATE(1167)] = 63205, - [SMALL_STATE(1168)] = 63219, - [SMALL_STATE(1169)] = 63233, - [SMALL_STATE(1170)] = 63247, - [SMALL_STATE(1171)] = 63272, - [SMALL_STATE(1172)] = 63293, - [SMALL_STATE(1173)] = 63306, - [SMALL_STATE(1174)] = 63319, - [SMALL_STATE(1175)] = 63344, - [SMALL_STATE(1176)] = 63365, - [SMALL_STATE(1177)] = 63388, - [SMALL_STATE(1178)] = 63411, - [SMALL_STATE(1179)] = 63430, - [SMALL_STATE(1180)] = 63453, - [SMALL_STATE(1181)] = 63472, - [SMALL_STATE(1182)] = 63495, - [SMALL_STATE(1183)] = 63518, - [SMALL_STATE(1184)] = 63543, - [SMALL_STATE(1185)] = 63562, - [SMALL_STATE(1186)] = 63581, - [SMALL_STATE(1187)] = 63594, - [SMALL_STATE(1188)] = 63611, - [SMALL_STATE(1189)] = 63630, - [SMALL_STATE(1190)] = 63643, - [SMALL_STATE(1191)] = 63668, - [SMALL_STATE(1192)] = 63687, - [SMALL_STATE(1193)] = 63712, - [SMALL_STATE(1194)] = 63731, - [SMALL_STATE(1195)] = 63750, - [SMALL_STATE(1196)] = 63773, - [SMALL_STATE(1197)] = 63792, - [SMALL_STATE(1198)] = 63809, - [SMALL_STATE(1199)] = 63824, - [SMALL_STATE(1200)] = 63849, - [SMALL_STATE(1201)] = 63866, - [SMALL_STATE(1202)] = 63885, - [SMALL_STATE(1203)] = 63904, - [SMALL_STATE(1204)] = 63929, - [SMALL_STATE(1205)] = 63954, - [SMALL_STATE(1206)] = 63975, - [SMALL_STATE(1207)] = 63998, - [SMALL_STATE(1208)] = 64021, - [SMALL_STATE(1209)] = 64034, - [SMALL_STATE(1210)] = 64055, - [SMALL_STATE(1211)] = 64080, - [SMALL_STATE(1212)] = 64093, - [SMALL_STATE(1213)] = 64112, - [SMALL_STATE(1214)] = 64133, - [SMALL_STATE(1215)] = 64158, - [SMALL_STATE(1216)] = 64173, - [SMALL_STATE(1217)] = 64196, - [SMALL_STATE(1218)] = 64212, - [SMALL_STATE(1219)] = 64228, - [SMALL_STATE(1220)] = 64244, - [SMALL_STATE(1221)] = 64260, - [SMALL_STATE(1222)] = 64272, - [SMALL_STATE(1223)] = 64288, - [SMALL_STATE(1224)] = 64308, - [SMALL_STATE(1225)] = 64324, - [SMALL_STATE(1226)] = 64342, - [SMALL_STATE(1227)] = 64356, - [SMALL_STATE(1228)] = 64376, - [SMALL_STATE(1229)] = 64392, - [SMALL_STATE(1230)] = 64410, - [SMALL_STATE(1231)] = 64424, - [SMALL_STATE(1232)] = 64440, - [SMALL_STATE(1233)] = 64462, - [SMALL_STATE(1234)] = 64478, - [SMALL_STATE(1235)] = 64500, - [SMALL_STATE(1236)] = 64518, - [SMALL_STATE(1237)] = 64538, - [SMALL_STATE(1238)] = 64560, - [SMALL_STATE(1239)] = 64582, - [SMALL_STATE(1240)] = 64594, - [SMALL_STATE(1241)] = 64612, - [SMALL_STATE(1242)] = 64634, - [SMALL_STATE(1243)] = 64652, - [SMALL_STATE(1244)] = 64670, - [SMALL_STATE(1245)] = 64688, - [SMALL_STATE(1246)] = 64710, - [SMALL_STATE(1247)] = 64732, - [SMALL_STATE(1248)] = 64748, - [SMALL_STATE(1249)] = 64768, - [SMALL_STATE(1250)] = 64784, - [SMALL_STATE(1251)] = 64800, - [SMALL_STATE(1252)] = 64814, - [SMALL_STATE(1253)] = 64828, - [SMALL_STATE(1254)] = 64846, - [SMALL_STATE(1255)] = 64860, - [SMALL_STATE(1256)] = 64874, - [SMALL_STATE(1257)] = 64894, - [SMALL_STATE(1258)] = 64910, - [SMALL_STATE(1259)] = 64927, - [SMALL_STATE(1260)] = 64938, - [SMALL_STATE(1261)] = 64955, - [SMALL_STATE(1262)] = 64972, - [SMALL_STATE(1263)] = 64983, - [SMALL_STATE(1264)] = 65000, - [SMALL_STATE(1265)] = 65017, - [SMALL_STATE(1266)] = 65034, - [SMALL_STATE(1267)] = 65045, - [SMALL_STATE(1268)] = 65060, - [SMALL_STATE(1269)] = 65077, - [SMALL_STATE(1270)] = 65096, - [SMALL_STATE(1271)] = 65113, - [SMALL_STATE(1272)] = 65132, - [SMALL_STATE(1273)] = 65147, - [SMALL_STATE(1274)] = 65166, - [SMALL_STATE(1275)] = 65183, - [SMALL_STATE(1276)] = 65200, - [SMALL_STATE(1277)] = 65217, - [SMALL_STATE(1278)] = 65234, - [SMALL_STATE(1279)] = 65249, - [SMALL_STATE(1280)] = 65268, - [SMALL_STATE(1281)] = 65285, - [SMALL_STATE(1282)] = 65302, - [SMALL_STATE(1283)] = 65319, - [SMALL_STATE(1284)] = 65338, - [SMALL_STATE(1285)] = 65353, - [SMALL_STATE(1286)] = 65370, - [SMALL_STATE(1287)] = 65385, - [SMALL_STATE(1288)] = 65400, - [SMALL_STATE(1289)] = 65419, - [SMALL_STATE(1290)] = 65436, - [SMALL_STATE(1291)] = 65451, - [SMALL_STATE(1292)] = 65470, - [SMALL_STATE(1293)] = 65489, - [SMALL_STATE(1294)] = 65500, - [SMALL_STATE(1295)] = 65511, - [SMALL_STATE(1296)] = 65528, - [SMALL_STATE(1297)] = 65544, - [SMALL_STATE(1298)] = 65558, - [SMALL_STATE(1299)] = 65572, - [SMALL_STATE(1300)] = 65588, - [SMALL_STATE(1301)] = 65604, - [SMALL_STATE(1302)] = 65620, - [SMALL_STATE(1303)] = 65634, - [SMALL_STATE(1304)] = 65648, - [SMALL_STATE(1305)] = 65662, - [SMALL_STATE(1306)] = 65678, - [SMALL_STATE(1307)] = 65694, - [SMALL_STATE(1308)] = 65710, - [SMALL_STATE(1309)] = 65726, - [SMALL_STATE(1310)] = 65742, - [SMALL_STATE(1311)] = 65756, - [SMALL_STATE(1312)] = 65770, - [SMALL_STATE(1313)] = 65786, - [SMALL_STATE(1314)] = 65802, - [SMALL_STATE(1315)] = 65816, - [SMALL_STATE(1316)] = 65830, - [SMALL_STATE(1317)] = 65846, - [SMALL_STATE(1318)] = 65856, - [SMALL_STATE(1319)] = 65872, - [SMALL_STATE(1320)] = 65888, - [SMALL_STATE(1321)] = 65902, - [SMALL_STATE(1322)] = 65916, - [SMALL_STATE(1323)] = 65930, - [SMALL_STATE(1324)] = 65944, - [SMALL_STATE(1325)] = 65958, - [SMALL_STATE(1326)] = 65970, - [SMALL_STATE(1327)] = 65982, - [SMALL_STATE(1328)] = 65998, - [SMALL_STATE(1329)] = 66012, - [SMALL_STATE(1330)] = 66026, - [SMALL_STATE(1331)] = 66040, - [SMALL_STATE(1332)] = 66056, - [SMALL_STATE(1333)] = 66072, - [SMALL_STATE(1334)] = 66088, - [SMALL_STATE(1335)] = 66104, - [SMALL_STATE(1336)] = 66120, - [SMALL_STATE(1337)] = 66136, - [SMALL_STATE(1338)] = 66152, - [SMALL_STATE(1339)] = 66166, - [SMALL_STATE(1340)] = 66182, - [SMALL_STATE(1341)] = 66196, - [SMALL_STATE(1342)] = 66206, - [SMALL_STATE(1343)] = 66220, - [SMALL_STATE(1344)] = 66236, - [SMALL_STATE(1345)] = 66246, - [SMALL_STATE(1346)] = 66262, - [SMALL_STATE(1347)] = 66272, - [SMALL_STATE(1348)] = 66288, - [SMALL_STATE(1349)] = 66298, - [SMALL_STATE(1350)] = 66314, - [SMALL_STATE(1351)] = 66328, - [SMALL_STATE(1352)] = 66344, - [SMALL_STATE(1353)] = 66360, - [SMALL_STATE(1354)] = 66374, - [SMALL_STATE(1355)] = 66388, - [SMALL_STATE(1356)] = 66404, - [SMALL_STATE(1357)] = 66420, - [SMALL_STATE(1358)] = 66436, - [SMALL_STATE(1359)] = 66452, - [SMALL_STATE(1360)] = 66468, - [SMALL_STATE(1361)] = 66482, - [SMALL_STATE(1362)] = 66498, - [SMALL_STATE(1363)] = 66514, - [SMALL_STATE(1364)] = 66528, - [SMALL_STATE(1365)] = 66544, - [SMALL_STATE(1366)] = 66558, - [SMALL_STATE(1367)] = 66574, - [SMALL_STATE(1368)] = 66588, - [SMALL_STATE(1369)] = 66602, - [SMALL_STATE(1370)] = 66618, - [SMALL_STATE(1371)] = 66632, - [SMALL_STATE(1372)] = 66646, - [SMALL_STATE(1373)] = 66660, - [SMALL_STATE(1374)] = 66674, - [SMALL_STATE(1375)] = 66688, - [SMALL_STATE(1376)] = 66704, - [SMALL_STATE(1377)] = 66720, - [SMALL_STATE(1378)] = 66734, - [SMALL_STATE(1379)] = 66744, - [SMALL_STATE(1380)] = 66757, - [SMALL_STATE(1381)] = 66766, - [SMALL_STATE(1382)] = 66775, - [SMALL_STATE(1383)] = 66788, - [SMALL_STATE(1384)] = 66797, - [SMALL_STATE(1385)] = 66810, - [SMALL_STATE(1386)] = 66823, - [SMALL_STATE(1387)] = 66836, - [SMALL_STATE(1388)] = 66849, - [SMALL_STATE(1389)] = 66858, - [SMALL_STATE(1390)] = 66867, - [SMALL_STATE(1391)] = 66880, - [SMALL_STATE(1392)] = 66889, - [SMALL_STATE(1393)] = 66900, - [SMALL_STATE(1394)] = 66913, - [SMALL_STATE(1395)] = 66926, - [SMALL_STATE(1396)] = 66939, - [SMALL_STATE(1397)] = 66952, - [SMALL_STATE(1398)] = 66965, - [SMALL_STATE(1399)] = 66978, - [SMALL_STATE(1400)] = 66991, - [SMALL_STATE(1401)] = 67004, - [SMALL_STATE(1402)] = 67017, - [SMALL_STATE(1403)] = 67030, - [SMALL_STATE(1404)] = 67043, - [SMALL_STATE(1405)] = 67056, - [SMALL_STATE(1406)] = 67069, - [SMALL_STATE(1407)] = 67082, - [SMALL_STATE(1408)] = 67095, - [SMALL_STATE(1409)] = 67108, - [SMALL_STATE(1410)] = 67121, - [SMALL_STATE(1411)] = 67134, - [SMALL_STATE(1412)] = 67147, - [SMALL_STATE(1413)] = 67160, - [SMALL_STATE(1414)] = 67173, - [SMALL_STATE(1415)] = 67184, - [SMALL_STATE(1416)] = 67197, - [SMALL_STATE(1417)] = 67210, - [SMALL_STATE(1418)] = 67223, - [SMALL_STATE(1419)] = 67236, - [SMALL_STATE(1420)] = 67249, - [SMALL_STATE(1421)] = 67262, - [SMALL_STATE(1422)] = 67275, - [SMALL_STATE(1423)] = 67288, - [SMALL_STATE(1424)] = 67301, - [SMALL_STATE(1425)] = 67314, - [SMALL_STATE(1426)] = 67327, - [SMALL_STATE(1427)] = 67340, - [SMALL_STATE(1428)] = 67353, - [SMALL_STATE(1429)] = 67366, - [SMALL_STATE(1430)] = 67375, - [SMALL_STATE(1431)] = 67388, - [SMALL_STATE(1432)] = 67401, - [SMALL_STATE(1433)] = 67414, - [SMALL_STATE(1434)] = 67427, - [SMALL_STATE(1435)] = 67440, - [SMALL_STATE(1436)] = 67453, - [SMALL_STATE(1437)] = 67466, - [SMALL_STATE(1438)] = 67479, - [SMALL_STATE(1439)] = 67492, - [SMALL_STATE(1440)] = 67505, - [SMALL_STATE(1441)] = 67518, - [SMALL_STATE(1442)] = 67531, - [SMALL_STATE(1443)] = 67544, - [SMALL_STATE(1444)] = 67553, - [SMALL_STATE(1445)] = 67566, - [SMALL_STATE(1446)] = 67579, - [SMALL_STATE(1447)] = 67590, - [SMALL_STATE(1448)] = 67603, - [SMALL_STATE(1449)] = 67616, - [SMALL_STATE(1450)] = 67629, - [SMALL_STATE(1451)] = 67642, - [SMALL_STATE(1452)] = 67651, - [SMALL_STATE(1453)] = 67664, - [SMALL_STATE(1454)] = 67677, - [SMALL_STATE(1455)] = 67686, - [SMALL_STATE(1456)] = 67699, - [SMALL_STATE(1457)] = 67712, - [SMALL_STATE(1458)] = 67725, - [SMALL_STATE(1459)] = 67736, - [SMALL_STATE(1460)] = 67749, - [SMALL_STATE(1461)] = 67762, - [SMALL_STATE(1462)] = 67775, - [SMALL_STATE(1463)] = 67788, - [SMALL_STATE(1464)] = 67801, - [SMALL_STATE(1465)] = 67812, - [SMALL_STATE(1466)] = 67823, - [SMALL_STATE(1467)] = 67836, - [SMALL_STATE(1468)] = 67849, - [SMALL_STATE(1469)] = 67862, - [SMALL_STATE(1470)] = 67875, - [SMALL_STATE(1471)] = 67888, - [SMALL_STATE(1472)] = 67901, - [SMALL_STATE(1473)] = 67914, - [SMALL_STATE(1474)] = 67925, - [SMALL_STATE(1475)] = 67938, - [SMALL_STATE(1476)] = 67951, - [SMALL_STATE(1477)] = 67962, - [SMALL_STATE(1478)] = 67975, - [SMALL_STATE(1479)] = 67988, - [SMALL_STATE(1480)] = 68001, - [SMALL_STATE(1481)] = 68014, - [SMALL_STATE(1482)] = 68023, - [SMALL_STATE(1483)] = 68036, - [SMALL_STATE(1484)] = 68049, - [SMALL_STATE(1485)] = 68062, - [SMALL_STATE(1486)] = 68075, - [SMALL_STATE(1487)] = 68084, - [SMALL_STATE(1488)] = 68097, - [SMALL_STATE(1489)] = 68110, - [SMALL_STATE(1490)] = 68123, - [SMALL_STATE(1491)] = 68136, - [SMALL_STATE(1492)] = 68145, - [SMALL_STATE(1493)] = 68156, - [SMALL_STATE(1494)] = 68169, - [SMALL_STATE(1495)] = 68178, - [SMALL_STATE(1496)] = 68187, - [SMALL_STATE(1497)] = 68200, - [SMALL_STATE(1498)] = 68213, - [SMALL_STATE(1499)] = 68226, - [SMALL_STATE(1500)] = 68239, - [SMALL_STATE(1501)] = 68250, - [SMALL_STATE(1502)] = 68263, - [SMALL_STATE(1503)] = 68276, - [SMALL_STATE(1504)] = 68289, - [SMALL_STATE(1505)] = 68300, - [SMALL_STATE(1506)] = 68313, - [SMALL_STATE(1507)] = 68326, - [SMALL_STATE(1508)] = 68339, - [SMALL_STATE(1509)] = 68352, - [SMALL_STATE(1510)] = 68365, - [SMALL_STATE(1511)] = 68376, - [SMALL_STATE(1512)] = 68389, - [SMALL_STATE(1513)] = 68399, - [SMALL_STATE(1514)] = 68407, - [SMALL_STATE(1515)] = 68417, - [SMALL_STATE(1516)] = 68425, - [SMALL_STATE(1517)] = 68433, - [SMALL_STATE(1518)] = 68441, - [SMALL_STATE(1519)] = 68451, - [SMALL_STATE(1520)] = 68459, - [SMALL_STATE(1521)] = 68469, - [SMALL_STATE(1522)] = 68477, - [SMALL_STATE(1523)] = 68485, - [SMALL_STATE(1524)] = 68493, - [SMALL_STATE(1525)] = 68501, - [SMALL_STATE(1526)] = 68509, - [SMALL_STATE(1527)] = 68517, - [SMALL_STATE(1528)] = 68525, - [SMALL_STATE(1529)] = 68533, - [SMALL_STATE(1530)] = 68543, - [SMALL_STATE(1531)] = 68551, - [SMALL_STATE(1532)] = 68561, - [SMALL_STATE(1533)] = 68569, - [SMALL_STATE(1534)] = 68577, - [SMALL_STATE(1535)] = 68585, - [SMALL_STATE(1536)] = 68593, - [SMALL_STATE(1537)] = 68601, - [SMALL_STATE(1538)] = 68609, - [SMALL_STATE(1539)] = 68619, - [SMALL_STATE(1540)] = 68629, - [SMALL_STATE(1541)] = 68639, - [SMALL_STATE(1542)] = 68649, - [SMALL_STATE(1543)] = 68657, - [SMALL_STATE(1544)] = 68667, - [SMALL_STATE(1545)] = 68675, - [SMALL_STATE(1546)] = 68685, - [SMALL_STATE(1547)] = 68695, - [SMALL_STATE(1548)] = 68705, - [SMALL_STATE(1549)] = 68715, - [SMALL_STATE(1550)] = 68723, - [SMALL_STATE(1551)] = 68733, - [SMALL_STATE(1552)] = 68741, - [SMALL_STATE(1553)] = 68749, - [SMALL_STATE(1554)] = 68757, - [SMALL_STATE(1555)] = 68765, - [SMALL_STATE(1556)] = 68775, - [SMALL_STATE(1557)] = 68785, - [SMALL_STATE(1558)] = 68795, - [SMALL_STATE(1559)] = 68805, - [SMALL_STATE(1560)] = 68813, - [SMALL_STATE(1561)] = 68823, - [SMALL_STATE(1562)] = 68833, - [SMALL_STATE(1563)] = 68843, - [SMALL_STATE(1564)] = 68851, - [SMALL_STATE(1565)] = 68859, - [SMALL_STATE(1566)] = 68869, - [SMALL_STATE(1567)] = 68877, - [SMALL_STATE(1568)] = 68885, - [SMALL_STATE(1569)] = 68895, - [SMALL_STATE(1570)] = 68903, - [SMALL_STATE(1571)] = 68911, - [SMALL_STATE(1572)] = 68919, - [SMALL_STATE(1573)] = 68927, - [SMALL_STATE(1574)] = 68935, - [SMALL_STATE(1575)] = 68943, - [SMALL_STATE(1576)] = 68951, - [SMALL_STATE(1577)] = 68959, - [SMALL_STATE(1578)] = 68967, - [SMALL_STATE(1579)] = 68975, - [SMALL_STATE(1580)] = 68985, - [SMALL_STATE(1581)] = 68993, - [SMALL_STATE(1582)] = 69001, - [SMALL_STATE(1583)] = 69011, - [SMALL_STATE(1584)] = 69021, - [SMALL_STATE(1585)] = 69031, - [SMALL_STATE(1586)] = 69041, - [SMALL_STATE(1587)] = 69049, - [SMALL_STATE(1588)] = 69059, - [SMALL_STATE(1589)] = 69067, - [SMALL_STATE(1590)] = 69075, - [SMALL_STATE(1591)] = 69083, - [SMALL_STATE(1592)] = 69091, - [SMALL_STATE(1593)] = 69098, - [SMALL_STATE(1594)] = 69105, - [SMALL_STATE(1595)] = 69112, - [SMALL_STATE(1596)] = 69119, - [SMALL_STATE(1597)] = 69126, - [SMALL_STATE(1598)] = 69133, - [SMALL_STATE(1599)] = 69140, - [SMALL_STATE(1600)] = 69147, - [SMALL_STATE(1601)] = 69154, - [SMALL_STATE(1602)] = 69161, - [SMALL_STATE(1603)] = 69168, - [SMALL_STATE(1604)] = 69175, - [SMALL_STATE(1605)] = 69182, - [SMALL_STATE(1606)] = 69189, - [SMALL_STATE(1607)] = 69196, - [SMALL_STATE(1608)] = 69203, - [SMALL_STATE(1609)] = 69210, - [SMALL_STATE(1610)] = 69217, - [SMALL_STATE(1611)] = 69224, - [SMALL_STATE(1612)] = 69231, - [SMALL_STATE(1613)] = 69238, - [SMALL_STATE(1614)] = 69245, - [SMALL_STATE(1615)] = 69252, - [SMALL_STATE(1616)] = 69259, - [SMALL_STATE(1617)] = 69266, - [SMALL_STATE(1618)] = 69273, - [SMALL_STATE(1619)] = 69280, - [SMALL_STATE(1620)] = 69287, - [SMALL_STATE(1621)] = 69294, - [SMALL_STATE(1622)] = 69301, - [SMALL_STATE(1623)] = 69308, - [SMALL_STATE(1624)] = 69315, - [SMALL_STATE(1625)] = 69322, - [SMALL_STATE(1626)] = 69329, - [SMALL_STATE(1627)] = 69336, - [SMALL_STATE(1628)] = 69343, - [SMALL_STATE(1629)] = 69350, - [SMALL_STATE(1630)] = 69357, - [SMALL_STATE(1631)] = 69364, - [SMALL_STATE(1632)] = 69371, - [SMALL_STATE(1633)] = 69378, - [SMALL_STATE(1634)] = 69385, - [SMALL_STATE(1635)] = 69392, - [SMALL_STATE(1636)] = 69399, - [SMALL_STATE(1637)] = 69406, - [SMALL_STATE(1638)] = 69413, - [SMALL_STATE(1639)] = 69420, - [SMALL_STATE(1640)] = 69427, - [SMALL_STATE(1641)] = 69434, - [SMALL_STATE(1642)] = 69441, - [SMALL_STATE(1643)] = 69448, - [SMALL_STATE(1644)] = 69455, - [SMALL_STATE(1645)] = 69462, - [SMALL_STATE(1646)] = 69469, - [SMALL_STATE(1647)] = 69476, - [SMALL_STATE(1648)] = 69483, - [SMALL_STATE(1649)] = 69490, - [SMALL_STATE(1650)] = 69497, - [SMALL_STATE(1651)] = 69504, - [SMALL_STATE(1652)] = 69511, - [SMALL_STATE(1653)] = 69518, - [SMALL_STATE(1654)] = 69525, - [SMALL_STATE(1655)] = 69532, - [SMALL_STATE(1656)] = 69539, - [SMALL_STATE(1657)] = 69546, - [SMALL_STATE(1658)] = 69553, - [SMALL_STATE(1659)] = 69560, - [SMALL_STATE(1660)] = 69567, - [SMALL_STATE(1661)] = 69574, - [SMALL_STATE(1662)] = 69581, - [SMALL_STATE(1663)] = 69588, - [SMALL_STATE(1664)] = 69595, - [SMALL_STATE(1665)] = 69602, - [SMALL_STATE(1666)] = 69609, - [SMALL_STATE(1667)] = 69616, - [SMALL_STATE(1668)] = 69623, - [SMALL_STATE(1669)] = 69630, - [SMALL_STATE(1670)] = 69637, - [SMALL_STATE(1671)] = 69644, - [SMALL_STATE(1672)] = 69651, - [SMALL_STATE(1673)] = 69658, - [SMALL_STATE(1674)] = 69665, - [SMALL_STATE(1675)] = 69672, - [SMALL_STATE(1676)] = 69679, - [SMALL_STATE(1677)] = 69686, - [SMALL_STATE(1678)] = 69693, - [SMALL_STATE(1679)] = 69700, - [SMALL_STATE(1680)] = 69707, - [SMALL_STATE(1681)] = 69714, - [SMALL_STATE(1682)] = 69721, - [SMALL_STATE(1683)] = 69728, - [SMALL_STATE(1684)] = 69735, - [SMALL_STATE(1685)] = 69742, - [SMALL_STATE(1686)] = 69749, - [SMALL_STATE(1687)] = 69756, - [SMALL_STATE(1688)] = 69763, - [SMALL_STATE(1689)] = 69770, - [SMALL_STATE(1690)] = 69777, - [SMALL_STATE(1691)] = 69784, - [SMALL_STATE(1692)] = 69791, - [SMALL_STATE(1693)] = 69798, - [SMALL_STATE(1694)] = 69805, - [SMALL_STATE(1695)] = 69812, - [SMALL_STATE(1696)] = 69819, - [SMALL_STATE(1697)] = 69826, - [SMALL_STATE(1698)] = 69833, - [SMALL_STATE(1699)] = 69840, - [SMALL_STATE(1700)] = 69847, - [SMALL_STATE(1701)] = 69854, - [SMALL_STATE(1702)] = 69861, - [SMALL_STATE(1703)] = 69868, - [SMALL_STATE(1704)] = 69875, - [SMALL_STATE(1705)] = 69882, - [SMALL_STATE(1706)] = 69889, - [SMALL_STATE(1707)] = 69896, - [SMALL_STATE(1708)] = 69903, - [SMALL_STATE(1709)] = 69910, - [SMALL_STATE(1710)] = 69917, - [SMALL_STATE(1711)] = 69924, - [SMALL_STATE(1712)] = 69931, - [SMALL_STATE(1713)] = 69938, - [SMALL_STATE(1714)] = 69945, - [SMALL_STATE(1715)] = 69952, - [SMALL_STATE(1716)] = 69959, - [SMALL_STATE(1717)] = 69966, - [SMALL_STATE(1718)] = 69973, - [SMALL_STATE(1719)] = 69980, - [SMALL_STATE(1720)] = 69987, - [SMALL_STATE(1721)] = 69994, - [SMALL_STATE(1722)] = 70001, - [SMALL_STATE(1723)] = 70008, - [SMALL_STATE(1724)] = 70015, - [SMALL_STATE(1725)] = 70022, - [SMALL_STATE(1726)] = 70029, - [SMALL_STATE(1727)] = 70036, - [SMALL_STATE(1728)] = 70043, - [SMALL_STATE(1729)] = 70050, - [SMALL_STATE(1730)] = 70057, - [SMALL_STATE(1731)] = 70064, - [SMALL_STATE(1732)] = 70071, - [SMALL_STATE(1733)] = 70078, + [SMALL_STATE(284)] = 13659, + [SMALL_STATE(285)] = 13761, + [SMALL_STATE(286)] = 13863, + [SMALL_STATE(287)] = 13965, + [SMALL_STATE(288)] = 14067, + [SMALL_STATE(289)] = 14169, + [SMALL_STATE(290)] = 14268, + [SMALL_STATE(291)] = 14367, + [SMALL_STATE(292)] = 14464, + [SMALL_STATE(293)] = 14563, + [SMALL_STATE(294)] = 14660, + [SMALL_STATE(295)] = 14759, + [SMALL_STATE(296)] = 14858, + [SMALL_STATE(297)] = 14955, + [SMALL_STATE(298)] = 15052, + [SMALL_STATE(299)] = 15149, + [SMALL_STATE(300)] = 15246, + [SMALL_STATE(301)] = 15343, + [SMALL_STATE(302)] = 15440, + [SMALL_STATE(303)] = 15537, + [SMALL_STATE(304)] = 15634, + [SMALL_STATE(305)] = 15733, + [SMALL_STATE(306)] = 15832, + [SMALL_STATE(307)] = 15931, + [SMALL_STATE(308)] = 16028, + [SMALL_STATE(309)] = 16125, + [SMALL_STATE(310)] = 16224, + [SMALL_STATE(311)] = 16321, + [SMALL_STATE(312)] = 16381, + [SMALL_STATE(313)] = 16441, + [SMALL_STATE(314)] = 16501, + [SMALL_STATE(315)] = 16565, + [SMALL_STATE(316)] = 16629, + [SMALL_STATE(317)] = 16689, + [SMALL_STATE(318)] = 16749, + [SMALL_STATE(319)] = 16809, + [SMALL_STATE(320)] = 16879, + [SMALL_STATE(321)] = 16949, + [SMALL_STATE(322)] = 17019, + [SMALL_STATE(323)] = 17089, + [SMALL_STATE(324)] = 17185, + [SMALL_STATE(325)] = 17249, + [SMALL_STATE(326)] = 17309, + [SMALL_STATE(327)] = 17369, + [SMALL_STATE(328)] = 17439, + [SMALL_STATE(329)] = 17499, + [SMALL_STATE(330)] = 17569, + [SMALL_STATE(331)] = 17629, + [SMALL_STATE(332)] = 17693, + [SMALL_STATE(333)] = 17763, + [SMALL_STATE(334)] = 17823, + [SMALL_STATE(335)] = 17883, + [SMALL_STATE(336)] = 17979, + [SMALL_STATE(337)] = 18075, + [SMALL_STATE(338)] = 18145, + [SMALL_STATE(339)] = 18238, + [SMALL_STATE(340)] = 18331, + [SMALL_STATE(341)] = 18424, + [SMALL_STATE(342)] = 18517, + [SMALL_STATE(343)] = 18610, + [SMALL_STATE(344)] = 18705, + [SMALL_STATE(345)] = 18798, + [SMALL_STATE(346)] = 18891, + [SMALL_STATE(347)] = 18984, + [SMALL_STATE(348)] = 19057, + [SMALL_STATE(349)] = 19150, + [SMALL_STATE(350)] = 19243, + [SMALL_STATE(351)] = 19308, + [SMALL_STATE(352)] = 19401, + [SMALL_STATE(353)] = 19494, + [SMALL_STATE(354)] = 19587, + [SMALL_STATE(355)] = 19680, + [SMALL_STATE(356)] = 19773, + [SMALL_STATE(357)] = 19866, + [SMALL_STATE(358)] = 19959, + [SMALL_STATE(359)] = 20052, + [SMALL_STATE(360)] = 20145, + [SMALL_STATE(361)] = 20238, + [SMALL_STATE(362)] = 20331, + [SMALL_STATE(363)] = 20424, + [SMALL_STATE(364)] = 20517, + [SMALL_STATE(365)] = 20610, + [SMALL_STATE(366)] = 20703, + [SMALL_STATE(367)] = 20796, + [SMALL_STATE(368)] = 20889, + [SMALL_STATE(369)] = 20982, + [SMALL_STATE(370)] = 21075, + [SMALL_STATE(371)] = 21168, + [SMALL_STATE(372)] = 21261, + [SMALL_STATE(373)] = 21354, + [SMALL_STATE(374)] = 21447, + [SMALL_STATE(375)] = 21540, + [SMALL_STATE(376)] = 21633, + [SMALL_STATE(377)] = 21726, + [SMALL_STATE(378)] = 21819, + [SMALL_STATE(379)] = 21912, + [SMALL_STATE(380)] = 22005, + [SMALL_STATE(381)] = 22098, + [SMALL_STATE(382)] = 22191, + [SMALL_STATE(383)] = 22284, + [SMALL_STATE(384)] = 22377, + [SMALL_STATE(385)] = 22470, + [SMALL_STATE(386)] = 22563, + [SMALL_STATE(387)] = 22656, + [SMALL_STATE(388)] = 22749, + [SMALL_STATE(389)] = 22842, + [SMALL_STATE(390)] = 22935, + [SMALL_STATE(391)] = 23028, + [SMALL_STATE(392)] = 23121, + [SMALL_STATE(393)] = 23186, + [SMALL_STATE(394)] = 23279, + [SMALL_STATE(395)] = 23372, + [SMALL_STATE(396)] = 23465, + [SMALL_STATE(397)] = 23558, + [SMALL_STATE(398)] = 23651, + [SMALL_STATE(399)] = 23744, + [SMALL_STATE(400)] = 23837, + [SMALL_STATE(401)] = 23930, + [SMALL_STATE(402)] = 24025, + [SMALL_STATE(403)] = 24118, + [SMALL_STATE(404)] = 24211, + [SMALL_STATE(405)] = 24304, + [SMALL_STATE(406)] = 24397, + [SMALL_STATE(407)] = 24490, + [SMALL_STATE(408)] = 24583, + [SMALL_STATE(409)] = 24676, + [SMALL_STATE(410)] = 24769, + [SMALL_STATE(411)] = 24862, + [SMALL_STATE(412)] = 24955, + [SMALL_STATE(413)] = 25048, + [SMALL_STATE(414)] = 25141, + [SMALL_STATE(415)] = 25234, + [SMALL_STATE(416)] = 25327, + [SMALL_STATE(417)] = 25420, + [SMALL_STATE(418)] = 25513, + [SMALL_STATE(419)] = 25606, + [SMALL_STATE(420)] = 25699, + [SMALL_STATE(421)] = 25792, + [SMALL_STATE(422)] = 25885, + [SMALL_STATE(423)] = 25978, + [SMALL_STATE(424)] = 26071, + [SMALL_STATE(425)] = 26164, + [SMALL_STATE(426)] = 26257, + [SMALL_STATE(427)] = 26350, + [SMALL_STATE(428)] = 26443, + [SMALL_STATE(429)] = 26536, + [SMALL_STATE(430)] = 26629, + [SMALL_STATE(431)] = 26722, + [SMALL_STATE(432)] = 26815, + [SMALL_STATE(433)] = 26908, + [SMALL_STATE(434)] = 27001, + [SMALL_STATE(435)] = 27094, + [SMALL_STATE(436)] = 27187, + [SMALL_STATE(437)] = 27280, + [SMALL_STATE(438)] = 27353, + [SMALL_STATE(439)] = 27446, + [SMALL_STATE(440)] = 27504, + [SMALL_STATE(441)] = 27566, + [SMALL_STATE(442)] = 27624, + [SMALL_STATE(443)] = 27682, + [SMALL_STATE(444)] = 27740, + [SMALL_STATE(445)] = 27802, + [SMALL_STATE(446)] = 27864, + [SMALL_STATE(447)] = 27922, + [SMALL_STATE(448)] = 27980, + [SMALL_STATE(449)] = 28038, + [SMALL_STATE(450)] = 28096, + [SMALL_STATE(451)] = 28154, + [SMALL_STATE(452)] = 28212, + [SMALL_STATE(453)] = 28282, + [SMALL_STATE(454)] = 28352, + [SMALL_STATE(455)] = 28410, + [SMALL_STATE(456)] = 28468, + [SMALL_STATE(457)] = 28526, + [SMALL_STATE(458)] = 28584, + [SMALL_STATE(459)] = 28642, + [SMALL_STATE(460)] = 28700, + [SMALL_STATE(461)] = 28758, + [SMALL_STATE(462)] = 28820, + [SMALL_STATE(463)] = 28878, + [SMALL_STATE(464)] = 28936, + [SMALL_STATE(465)] = 28994, + [SMALL_STATE(466)] = 29089, + [SMALL_STATE(467)] = 29182, + [SMALL_STATE(468)] = 29239, + [SMALL_STATE(469)] = 29300, + [SMALL_STATE(470)] = 29367, + [SMALL_STATE(471)] = 29430, + [SMALL_STATE(472)] = 29523, + [SMALL_STATE(473)] = 29580, + [SMALL_STATE(474)] = 29637, + [SMALL_STATE(475)] = 29698, + [SMALL_STATE(476)] = 29759, + [SMALL_STATE(477)] = 29820, + [SMALL_STATE(478)] = 29881, + [SMALL_STATE(479)] = 29942, + [SMALL_STATE(480)] = 29999, + [SMALL_STATE(481)] = 30060, + [SMALL_STATE(482)] = 30121, + [SMALL_STATE(483)] = 30182, + [SMALL_STATE(484)] = 30243, + [SMALL_STATE(485)] = 30304, + [SMALL_STATE(486)] = 30365, + [SMALL_STATE(487)] = 30426, + [SMALL_STATE(488)] = 30483, + [SMALL_STATE(489)] = 30544, + [SMALL_STATE(490)] = 30601, + [SMALL_STATE(491)] = 30662, + [SMALL_STATE(492)] = 30723, + [SMALL_STATE(493)] = 30779, + [SMALL_STATE(494)] = 30835, + [SMALL_STATE(495)] = 30899, + [SMALL_STATE(496)] = 30991, + [SMALL_STATE(497)] = 31047, + [SMALL_STATE(498)] = 31103, + [SMALL_STATE(499)] = 31159, + [SMALL_STATE(500)] = 31223, + [SMALL_STATE(501)] = 31279, + [SMALL_STATE(502)] = 31371, + [SMALL_STATE(503)] = 31427, + [SMALL_STATE(504)] = 31483, + [SMALL_STATE(505)] = 31539, + [SMALL_STATE(506)] = 31595, + [SMALL_STATE(507)] = 31687, + [SMALL_STATE(508)] = 31743, + [SMALL_STATE(509)] = 31799, + [SMALL_STATE(510)] = 31891, + [SMALL_STATE(511)] = 31983, + [SMALL_STATE(512)] = 32039, + [SMALL_STATE(513)] = 32095, + [SMALL_STATE(514)] = 32187, + [SMALL_STATE(515)] = 32242, + [SMALL_STATE(516)] = 32303, + [SMALL_STATE(517)] = 32358, + [SMALL_STATE(518)] = 32413, + [SMALL_STATE(519)] = 32468, + [SMALL_STATE(520)] = 32523, + [SMALL_STATE(521)] = 32578, + [SMALL_STATE(522)] = 32633, + [SMALL_STATE(523)] = 32688, + [SMALL_STATE(524)] = 32743, + [SMALL_STATE(525)] = 32804, + [SMALL_STATE(526)] = 32859, + [SMALL_STATE(527)] = 32914, + [SMALL_STATE(528)] = 33003, + [SMALL_STATE(529)] = 33058, + [SMALL_STATE(530)] = 33113, + [SMALL_STATE(531)] = 33168, + [SMALL_STATE(532)] = 33223, + [SMALL_STATE(533)] = 33278, + [SMALL_STATE(534)] = 33333, + [SMALL_STATE(535)] = 33388, + [SMALL_STATE(536)] = 33443, + [SMALL_STATE(537)] = 33498, + [SMALL_STATE(538)] = 33553, + [SMALL_STATE(539)] = 33608, + [SMALL_STATE(540)] = 33663, + [SMALL_STATE(541)] = 33718, + [SMALL_STATE(542)] = 33773, + [SMALL_STATE(543)] = 33828, + [SMALL_STATE(544)] = 33883, + [SMALL_STATE(545)] = 33938, + [SMALL_STATE(546)] = 33993, + [SMALL_STATE(547)] = 34048, + [SMALL_STATE(548)] = 34103, + [SMALL_STATE(549)] = 34158, + [SMALL_STATE(550)] = 34213, + [SMALL_STATE(551)] = 34268, + [SMALL_STATE(552)] = 34323, + [SMALL_STATE(553)] = 34378, + [SMALL_STATE(554)] = 34433, + [SMALL_STATE(555)] = 34488, + [SMALL_STATE(556)] = 34543, + [SMALL_STATE(557)] = 34598, + [SMALL_STATE(558)] = 34653, + [SMALL_STATE(559)] = 34708, + [SMALL_STATE(560)] = 34763, + [SMALL_STATE(561)] = 34818, + [SMALL_STATE(562)] = 34873, + [SMALL_STATE(563)] = 34928, + [SMALL_STATE(564)] = 34983, + [SMALL_STATE(565)] = 35038, + [SMALL_STATE(566)] = 35093, + [SMALL_STATE(567)] = 35148, + [SMALL_STATE(568)] = 35203, + [SMALL_STATE(569)] = 35258, + [SMALL_STATE(570)] = 35313, + [SMALL_STATE(571)] = 35368, + [SMALL_STATE(572)] = 35423, + [SMALL_STATE(573)] = 35478, + [SMALL_STATE(574)] = 35533, + [SMALL_STATE(575)] = 35588, + [SMALL_STATE(576)] = 35643, + [SMALL_STATE(577)] = 35698, + [SMALL_STATE(578)] = 35753, + [SMALL_STATE(579)] = 35808, + [SMALL_STATE(580)] = 35863, + [SMALL_STATE(581)] = 35918, + [SMALL_STATE(582)] = 35973, + [SMALL_STATE(583)] = 36028, + [SMALL_STATE(584)] = 36083, + [SMALL_STATE(585)] = 36138, + [SMALL_STATE(586)] = 36193, + [SMALL_STATE(587)] = 36248, + [SMALL_STATE(588)] = 36303, + [SMALL_STATE(589)] = 36358, + [SMALL_STATE(590)] = 36447, + [SMALL_STATE(591)] = 36502, + [SMALL_STATE(592)] = 36557, + [SMALL_STATE(593)] = 36612, + [SMALL_STATE(594)] = 36667, + [SMALL_STATE(595)] = 36722, + [SMALL_STATE(596)] = 36777, + [SMALL_STATE(597)] = 36832, + [SMALL_STATE(598)] = 36887, + [SMALL_STATE(599)] = 36942, + [SMALL_STATE(600)] = 36997, + [SMALL_STATE(601)] = 37052, + [SMALL_STATE(602)] = 37107, + [SMALL_STATE(603)] = 37162, + [SMALL_STATE(604)] = 37217, + [SMALL_STATE(605)] = 37272, + [SMALL_STATE(606)] = 37327, + [SMALL_STATE(607)] = 37382, + [SMALL_STATE(608)] = 37437, + [SMALL_STATE(609)] = 37492, + [SMALL_STATE(610)] = 37547, + [SMALL_STATE(611)] = 37602, + [SMALL_STATE(612)] = 37657, + [SMALL_STATE(613)] = 37712, + [SMALL_STATE(614)] = 37767, + [SMALL_STATE(615)] = 37828, + [SMALL_STATE(616)] = 37883, + [SMALL_STATE(617)] = 37938, + [SMALL_STATE(618)] = 38000, + [SMALL_STATE(619)] = 38062, + [SMALL_STATE(620)] = 38145, + [SMALL_STATE(621)] = 38222, + [SMALL_STATE(622)] = 38299, + [SMALL_STATE(623)] = 38376, + [SMALL_STATE(624)] = 38453, + [SMALL_STATE(625)] = 38530, + [SMALL_STATE(626)] = 38607, + [SMALL_STATE(627)] = 38681, + [SMALL_STATE(628)] = 38735, + [SMALL_STATE(629)] = 38809, + [SMALL_STATE(630)] = 38883, + [SMALL_STATE(631)] = 38957, + [SMALL_STATE(632)] = 39031, + [SMALL_STATE(633)] = 39109, + [SMALL_STATE(634)] = 39183, + [SMALL_STATE(635)] = 39257, + [SMALL_STATE(636)] = 39331, + [SMALL_STATE(637)] = 39405, + [SMALL_STATE(638)] = 39479, + [SMALL_STATE(639)] = 39553, + [SMALL_STATE(640)] = 39631, + [SMALL_STATE(641)] = 39705, + [SMALL_STATE(642)] = 39779, + [SMALL_STATE(643)] = 39853, + [SMALL_STATE(644)] = 39927, + [SMALL_STATE(645)] = 40001, + [SMALL_STATE(646)] = 40075, + [SMALL_STATE(647)] = 40149, + [SMALL_STATE(648)] = 40223, + [SMALL_STATE(649)] = 40297, + [SMALL_STATE(650)] = 40371, + [SMALL_STATE(651)] = 40445, + [SMALL_STATE(652)] = 40519, + [SMALL_STATE(653)] = 40593, + [SMALL_STATE(654)] = 40667, + [SMALL_STATE(655)] = 40741, + [SMALL_STATE(656)] = 40815, + [SMALL_STATE(657)] = 40889, + [SMALL_STATE(658)] = 40963, + [SMALL_STATE(659)] = 41037, + [SMALL_STATE(660)] = 41111, + [SMALL_STATE(661)] = 41185, + [SMALL_STATE(662)] = 41259, + [SMALL_STATE(663)] = 41333, + [SMALL_STATE(664)] = 41407, + [SMALL_STATE(665)] = 41481, + [SMALL_STATE(666)] = 41555, + [SMALL_STATE(667)] = 41629, + [SMALL_STATE(668)] = 41703, + [SMALL_STATE(669)] = 41777, + [SMALL_STATE(670)] = 41851, + [SMALL_STATE(671)] = 41925, + [SMALL_STATE(672)] = 41999, + [SMALL_STATE(673)] = 42073, + [SMALL_STATE(674)] = 42147, + [SMALL_STATE(675)] = 42221, + [SMALL_STATE(676)] = 42295, + [SMALL_STATE(677)] = 42369, + [SMALL_STATE(678)] = 42443, + [SMALL_STATE(679)] = 42517, + [SMALL_STATE(680)] = 42591, + [SMALL_STATE(681)] = 42665, + [SMALL_STATE(682)] = 42739, + [SMALL_STATE(683)] = 42813, + [SMALL_STATE(684)] = 42887, + [SMALL_STATE(685)] = 42961, + [SMALL_STATE(686)] = 43015, + [SMALL_STATE(687)] = 43089, + [SMALL_STATE(688)] = 43163, + [SMALL_STATE(689)] = 43237, + [SMALL_STATE(690)] = 43311, + [SMALL_STATE(691)] = 43365, + [SMALL_STATE(692)] = 43439, + [SMALL_STATE(693)] = 43513, + [SMALL_STATE(694)] = 43567, + [SMALL_STATE(695)] = 43621, + [SMALL_STATE(696)] = 43695, + [SMALL_STATE(697)] = 43769, + [SMALL_STATE(698)] = 43843, + [SMALL_STATE(699)] = 43897, + [SMALL_STATE(700)] = 43971, + [SMALL_STATE(701)] = 44019, + [SMALL_STATE(702)] = 44067, + [SMALL_STATE(703)] = 44115, + [SMALL_STATE(704)] = 44163, + [SMALL_STATE(705)] = 44244, + [SMALL_STATE(706)] = 44325, + [SMALL_STATE(707)] = 44372, + [SMALL_STATE(708)] = 44419, + [SMALL_STATE(709)] = 44466, + [SMALL_STATE(710)] = 44513, + [SMALL_STATE(711)] = 44560, + [SMALL_STATE(712)] = 44607, + [SMALL_STATE(713)] = 44654, + [SMALL_STATE(714)] = 44701, + [SMALL_STATE(715)] = 44748, + [SMALL_STATE(716)] = 44795, + [SMALL_STATE(717)] = 44842, + [SMALL_STATE(718)] = 44889, + [SMALL_STATE(719)] = 44936, + [SMALL_STATE(720)] = 44983, + [SMALL_STATE(721)] = 45030, + [SMALL_STATE(722)] = 45077, + [SMALL_STATE(723)] = 45124, + [SMALL_STATE(724)] = 45171, + [SMALL_STATE(725)] = 45218, + [SMALL_STATE(726)] = 45265, + [SMALL_STATE(727)] = 45312, + [SMALL_STATE(728)] = 45359, + [SMALL_STATE(729)] = 45406, + [SMALL_STATE(730)] = 45453, + [SMALL_STATE(731)] = 45500, + [SMALL_STATE(732)] = 45547, + [SMALL_STATE(733)] = 45594, + [SMALL_STATE(734)] = 45641, + [SMALL_STATE(735)] = 45688, + [SMALL_STATE(736)] = 45735, + [SMALL_STATE(737)] = 45782, + [SMALL_STATE(738)] = 45829, + [SMALL_STATE(739)] = 45876, + [SMALL_STATE(740)] = 45944, + [SMALL_STATE(741)] = 46014, + [SMALL_STATE(742)] = 46084, + [SMALL_STATE(743)] = 46152, + [SMALL_STATE(744)] = 46212, + [SMALL_STATE(745)] = 46268, + [SMALL_STATE(746)] = 46334, + [SMALL_STATE(747)] = 46398, + [SMALL_STATE(748)] = 46454, + [SMALL_STATE(749)] = 46510, + [SMALL_STATE(750)] = 46560, + [SMALL_STATE(751)] = 46610, + [SMALL_STATE(752)] = 46666, + [SMALL_STATE(753)] = 46728, + [SMALL_STATE(754)] = 46778, + [SMALL_STATE(755)] = 46828, + [SMALL_STATE(756)] = 46884, + [SMALL_STATE(757)] = 46946, + [SMALL_STATE(758)] = 47016, + [SMALL_STATE(759)] = 47076, + [SMALL_STATE(760)] = 47132, + [SMALL_STATE(761)] = 47198, + [SMALL_STATE(762)] = 47262, + [SMALL_STATE(763)] = 47332, + [SMALL_STATE(764)] = 47402, + [SMALL_STATE(765)] = 47472, + [SMALL_STATE(766)] = 47528, + [SMALL_STATE(767)] = 47584, + [SMALL_STATE(768)] = 47629, + [SMALL_STATE(769)] = 47678, + [SMALL_STATE(770)] = 47727, + [SMALL_STATE(771)] = 47776, + [SMALL_STATE(772)] = 47825, + [SMALL_STATE(773)] = 47874, + [SMALL_STATE(774)] = 47953, + [SMALL_STATE(775)] = 48000, + [SMALL_STATE(776)] = 48077, + [SMALL_STATE(777)] = 48126, + [SMALL_STATE(778)] = 48175, + [SMALL_STATE(779)] = 48222, + [SMALL_STATE(780)] = 48271, + [SMALL_STATE(781)] = 48350, + [SMALL_STATE(782)] = 48399, + [SMALL_STATE(783)] = 48448, + [SMALL_STATE(784)] = 48493, + [SMALL_STATE(785)] = 48542, + [SMALL_STATE(786)] = 48591, + [SMALL_STATE(787)] = 48638, + [SMALL_STATE(788)] = 48685, + [SMALL_STATE(789)] = 48753, + [SMALL_STATE(790)] = 48829, + [SMALL_STATE(791)] = 48877, + [SMALL_STATE(792)] = 48925, + [SMALL_STATE(793)] = 48969, + [SMALL_STATE(794)] = 49013, + [SMALL_STATE(795)] = 49057, + [SMALL_STATE(796)] = 49101, + [SMALL_STATE(797)] = 49155, + [SMALL_STATE(798)] = 49215, + [SMALL_STATE(799)] = 49283, + [SMALL_STATE(800)] = 49337, + [SMALL_STATE(801)] = 49405, + [SMALL_STATE(802)] = 49471, + [SMALL_STATE(803)] = 49529, + [SMALL_STATE(804)] = 49583, + [SMALL_STATE(805)] = 49637, + [SMALL_STATE(806)] = 49691, + [SMALL_STATE(807)] = 49755, + [SMALL_STATE(808)] = 49817, + [SMALL_STATE(809)] = 49871, + [SMALL_STATE(810)] = 49931, + [SMALL_STATE(811)] = 49999, + [SMALL_STATE(812)] = 50065, + [SMALL_STATE(813)] = 50123, + [SMALL_STATE(814)] = 50177, + [SMALL_STATE(815)] = 50241, + [SMALL_STATE(816)] = 50303, + [SMALL_STATE(817)] = 50371, + [SMALL_STATE(818)] = 50439, + [SMALL_STATE(819)] = 50493, + [SMALL_STATE(820)] = 50547, + [SMALL_STATE(821)] = 50607, + [SMALL_STATE(822)] = 50675, + [SMALL_STATE(823)] = 50741, + [SMALL_STATE(824)] = 50799, + [SMALL_STATE(825)] = 50853, + [SMALL_STATE(826)] = 50917, + [SMALL_STATE(827)] = 50979, + [SMALL_STATE(828)] = 51047, + [SMALL_STATE(829)] = 51115, + [SMALL_STATE(830)] = 51169, + [SMALL_STATE(831)] = 51223, + [SMALL_STATE(832)] = 51268, + [SMALL_STATE(833)] = 51313, + [SMALL_STATE(834)] = 51366, + [SMALL_STATE(835)] = 51409, + [SMALL_STATE(836)] = 51454, + [SMALL_STATE(837)] = 51499, + [SMALL_STATE(838)] = 51544, + [SMALL_STATE(839)] = 51589, + [SMALL_STATE(840)] = 51642, + [SMALL_STATE(841)] = 51685, + [SMALL_STATE(842)] = 51766, + [SMALL_STATE(843)] = 51811, + [SMALL_STATE(844)] = 51854, + [SMALL_STATE(845)] = 51907, + [SMALL_STATE(846)] = 51966, + [SMALL_STATE(847)] = 52009, + [SMALL_STATE(848)] = 52052, + [SMALL_STATE(849)] = 52095, + [SMALL_STATE(850)] = 52142, + [SMALL_STATE(851)] = 52189, + [SMALL_STATE(852)] = 52234, + [SMALL_STATE(853)] = 52277, + [SMALL_STATE(854)] = 52320, + [SMALL_STATE(855)] = 52365, + [SMALL_STATE(856)] = 52410, + [SMALL_STATE(857)] = 52477, + [SMALL_STATE(858)] = 52524, + [SMALL_STATE(859)] = 52571, + [SMALL_STATE(860)] = 52618, + [SMALL_STATE(861)] = 52663, + [SMALL_STATE(862)] = 52744, + [SMALL_STATE(863)] = 52809, + [SMALL_STATE(864)] = 52866, + [SMALL_STATE(865)] = 52919, + [SMALL_STATE(866)] = 52982, + [SMALL_STATE(867)] = 53043, + [SMALL_STATE(868)] = 53110, + [SMALL_STATE(869)] = 53177, + [SMALL_STATE(870)] = 53258, + [SMALL_STATE(871)] = 53339, + [SMALL_STATE(872)] = 53384, + [SMALL_STATE(873)] = 53431, + [SMALL_STATE(874)] = 53473, + [SMALL_STATE(875)] = 53515, + [SMALL_STATE(876)] = 53557, + [SMALL_STATE(877)] = 53599, + [SMALL_STATE(878)] = 53641, + [SMALL_STATE(879)] = 53683, + [SMALL_STATE(880)] = 53725, + [SMALL_STATE(881)] = 53767, + [SMALL_STATE(882)] = 53809, + [SMALL_STATE(883)] = 53851, + [SMALL_STATE(884)] = 53893, + [SMALL_STATE(885)] = 53935, + [SMALL_STATE(886)] = 53977, + [SMALL_STATE(887)] = 54019, + [SMALL_STATE(888)] = 54061, + [SMALL_STATE(889)] = 54103, + [SMALL_STATE(890)] = 54145, + [SMALL_STATE(891)] = 54187, + [SMALL_STATE(892)] = 54229, + [SMALL_STATE(893)] = 54271, + [SMALL_STATE(894)] = 54313, + [SMALL_STATE(895)] = 54355, + [SMALL_STATE(896)] = 54397, + [SMALL_STATE(897)] = 54477, + [SMALL_STATE(898)] = 54555, + [SMALL_STATE(899)] = 54597, + [SMALL_STATE(900)] = 54639, + [SMALL_STATE(901)] = 54681, + [SMALL_STATE(902)] = 54723, + [SMALL_STATE(903)] = 54765, + [SMALL_STATE(904)] = 54807, + [SMALL_STATE(905)] = 54849, + [SMALL_STATE(906)] = 54891, + [SMALL_STATE(907)] = 54933, + [SMALL_STATE(908)] = 54977, + [SMALL_STATE(909)] = 55019, + [SMALL_STATE(910)] = 55061, + [SMALL_STATE(911)] = 55103, + [SMALL_STATE(912)] = 55145, + [SMALL_STATE(913)] = 55187, + [SMALL_STATE(914)] = 55231, + [SMALL_STATE(915)] = 55275, + [SMALL_STATE(916)] = 55317, + [SMALL_STATE(917)] = 55359, + [SMALL_STATE(918)] = 55403, + [SMALL_STATE(919)] = 55445, + [SMALL_STATE(920)] = 55487, + [SMALL_STATE(921)] = 55529, + [SMALL_STATE(922)] = 55571, + [SMALL_STATE(923)] = 55613, + [SMALL_STATE(924)] = 55655, + [SMALL_STATE(925)] = 55699, + [SMALL_STATE(926)] = 55741, + [SMALL_STATE(927)] = 55783, + [SMALL_STATE(928)] = 55825, + [SMALL_STATE(929)] = 55867, + [SMALL_STATE(930)] = 55909, + [SMALL_STATE(931)] = 55951, + [SMALL_STATE(932)] = 56029, + [SMALL_STATE(933)] = 56071, + [SMALL_STATE(934)] = 56113, + [SMALL_STATE(935)] = 56191, + [SMALL_STATE(936)] = 56269, + [SMALL_STATE(937)] = 56311, + [SMALL_STATE(938)] = 56353, + [SMALL_STATE(939)] = 56395, + [SMALL_STATE(940)] = 56473, + [SMALL_STATE(941)] = 56515, + [SMALL_STATE(942)] = 56557, + [SMALL_STATE(943)] = 56599, + [SMALL_STATE(944)] = 56641, + [SMALL_STATE(945)] = 56683, + [SMALL_STATE(946)] = 56725, + [SMALL_STATE(947)] = 56767, + [SMALL_STATE(948)] = 56809, + [SMALL_STATE(949)] = 56851, + [SMALL_STATE(950)] = 56893, + [SMALL_STATE(951)] = 56935, + [SMALL_STATE(952)] = 56977, + [SMALL_STATE(953)] = 57018, + [SMALL_STATE(954)] = 57059, + [SMALL_STATE(955)] = 57100, + [SMALL_STATE(956)] = 57141, + [SMALL_STATE(957)] = 57182, + [SMALL_STATE(958)] = 57223, + [SMALL_STATE(959)] = 57264, + [SMALL_STATE(960)] = 57305, + [SMALL_STATE(961)] = 57346, + [SMALL_STATE(962)] = 57387, + [SMALL_STATE(963)] = 57428, + [SMALL_STATE(964)] = 57469, + [SMALL_STATE(965)] = 57510, + [SMALL_STATE(966)] = 57551, + [SMALL_STATE(967)] = 57592, + [SMALL_STATE(968)] = 57633, + [SMALL_STATE(969)] = 57674, + [SMALL_STATE(970)] = 57715, + [SMALL_STATE(971)] = 57756, + [SMALL_STATE(972)] = 57797, + [SMALL_STATE(973)] = 57838, + [SMALL_STATE(974)] = 57879, + [SMALL_STATE(975)] = 57920, + [SMALL_STATE(976)] = 57961, + [SMALL_STATE(977)] = 58002, + [SMALL_STATE(978)] = 58043, + [SMALL_STATE(979)] = 58084, + [SMALL_STATE(980)] = 58125, + [SMALL_STATE(981)] = 58166, + [SMALL_STATE(982)] = 58241, + [SMALL_STATE(983)] = 58320, + [SMALL_STATE(984)] = 58399, + [SMALL_STATE(985)] = 58444, + [SMALL_STATE(986)] = 58485, + [SMALL_STATE(987)] = 58530, + [SMALL_STATE(988)] = 58609, + [SMALL_STATE(989)] = 58650, + [SMALL_STATE(990)] = 58691, + [SMALL_STATE(991)] = 58732, + [SMALL_STATE(992)] = 58805, + [SMALL_STATE(993)] = 58875, + [SMALL_STATE(994)] = 58945, + [SMALL_STATE(995)] = 59007, + [SMALL_STATE(996)] = 59069, + [SMALL_STATE(997)] = 59108, + [SMALL_STATE(998)] = 59147, + [SMALL_STATE(999)] = 59186, + [SMALL_STATE(1000)] = 59225, + [SMALL_STATE(1001)] = 59255, + [SMALL_STATE(1002)] = 59292, + [SMALL_STATE(1003)] = 59317, + [SMALL_STATE(1004)] = 59354, + [SMALL_STATE(1005)] = 59391, + [SMALL_STATE(1006)] = 59416, + [SMALL_STATE(1007)] = 59469, + [SMALL_STATE(1008)] = 59522, + [SMALL_STATE(1009)] = 59559, + [SMALL_STATE(1010)] = 59584, + [SMALL_STATE(1011)] = 59637, + [SMALL_STATE(1012)] = 59666, + [SMALL_STATE(1013)] = 59691, + [SMALL_STATE(1014)] = 59720, + [SMALL_STATE(1015)] = 59755, + [SMALL_STATE(1016)] = 59790, + [SMALL_STATE(1017)] = 59824, + [SMALL_STATE(1018)] = 59870, + [SMALL_STATE(1019)] = 59898, + [SMALL_STATE(1020)] = 59932, + [SMALL_STATE(1021)] = 59963, + [SMALL_STATE(1022)] = 60006, + [SMALL_STATE(1023)] = 60049, + [SMALL_STATE(1024)] = 60092, + [SMALL_STATE(1025)] = 60135, + [SMALL_STATE(1026)] = 60178, + [SMALL_STATE(1027)] = 60221, + [SMALL_STATE(1028)] = 60264, + [SMALL_STATE(1029)] = 60304, + [SMALL_STATE(1030)] = 60348, + [SMALL_STATE(1031)] = 60373, + [SMALL_STATE(1032)] = 60410, + [SMALL_STATE(1033)] = 60447, + [SMALL_STATE(1034)] = 60484, + [SMALL_STATE(1035)] = 60521, + [SMALL_STATE(1036)] = 60555, + [SMALL_STATE(1037)] = 60589, + [SMALL_STATE(1038)] = 60610, + [SMALL_STATE(1039)] = 60631, + [SMALL_STATE(1040)] = 60653, + [SMALL_STATE(1041)] = 60684, + [SMALL_STATE(1042)] = 60721, + [SMALL_STATE(1043)] = 60744, + [SMALL_STATE(1044)] = 60765, + [SMALL_STATE(1045)] = 60796, + [SMALL_STATE(1046)] = 60827, + [SMALL_STATE(1047)] = 60858, + [SMALL_STATE(1048)] = 60895, + [SMALL_STATE(1049)] = 60932, + [SMALL_STATE(1050)] = 60963, + [SMALL_STATE(1051)] = 60994, + [SMALL_STATE(1052)] = 61025, + [SMALL_STATE(1053)] = 61056, + [SMALL_STATE(1054)] = 61073, + [SMALL_STATE(1055)] = 61104, + [SMALL_STATE(1056)] = 61135, + [SMALL_STATE(1057)] = 61166, + [SMALL_STATE(1058)] = 61197, + [SMALL_STATE(1059)] = 61228, + [SMALL_STATE(1060)] = 61259, + [SMALL_STATE(1061)] = 61290, + [SMALL_STATE(1062)] = 61321, + [SMALL_STATE(1063)] = 61352, + [SMALL_STATE(1064)] = 61389, + [SMALL_STATE(1065)] = 61412, + [SMALL_STATE(1066)] = 61443, + [SMALL_STATE(1067)] = 61474, + [SMALL_STATE(1068)] = 61511, + [SMALL_STATE(1069)] = 61532, + [SMALL_STATE(1070)] = 61552, + [SMALL_STATE(1071)] = 61586, + [SMALL_STATE(1072)] = 61606, + [SMALL_STATE(1073)] = 61630, + [SMALL_STATE(1074)] = 61652, + [SMALL_STATE(1075)] = 61686, + [SMALL_STATE(1076)] = 61720, + [SMALL_STATE(1077)] = 61742, + [SMALL_STATE(1078)] = 61766, + [SMALL_STATE(1079)] = 61784, + [SMALL_STATE(1080)] = 61802, + [SMALL_STATE(1081)] = 61836, + [SMALL_STATE(1082)] = 61856, + [SMALL_STATE(1083)] = 61880, + [SMALL_STATE(1084)] = 61902, + [SMALL_STATE(1085)] = 61936, + [SMALL_STATE(1086)] = 61958, + [SMALL_STATE(1087)] = 61992, + [SMALL_STATE(1088)] = 62026, + [SMALL_STATE(1089)] = 62046, + [SMALL_STATE(1090)] = 62068, + [SMALL_STATE(1091)] = 62102, + [SMALL_STATE(1092)] = 62124, + [SMALL_STATE(1093)] = 62158, + [SMALL_STATE(1094)] = 62192, + [SMALL_STATE(1095)] = 62226, + [SMALL_STATE(1096)] = 62260, + [SMALL_STATE(1097)] = 62278, + [SMALL_STATE(1098)] = 62297, + [SMALL_STATE(1099)] = 62318, + [SMALL_STATE(1100)] = 62337, + [SMALL_STATE(1101)] = 62360, + [SMALL_STATE(1102)] = 62379, + [SMALL_STATE(1103)] = 62398, + [SMALL_STATE(1104)] = 62423, + [SMALL_STATE(1105)] = 62442, + [SMALL_STATE(1106)] = 62461, + [SMALL_STATE(1107)] = 62484, + [SMALL_STATE(1108)] = 62509, + [SMALL_STATE(1109)] = 62532, + [SMALL_STATE(1110)] = 62553, + [SMALL_STATE(1111)] = 62567, + [SMALL_STATE(1112)] = 62581, + [SMALL_STATE(1113)] = 62599, + [SMALL_STATE(1114)] = 62617, + [SMALL_STATE(1115)] = 62631, + [SMALL_STATE(1116)] = 62649, + [SMALL_STATE(1117)] = 62663, + [SMALL_STATE(1118)] = 62679, + [SMALL_STATE(1119)] = 62699, + [SMALL_STATE(1120)] = 62721, + [SMALL_STATE(1121)] = 62741, + [SMALL_STATE(1122)] = 62761, + [SMALL_STATE(1123)] = 62779, + [SMALL_STATE(1124)] = 62797, + [SMALL_STATE(1125)] = 62811, + [SMALL_STATE(1126)] = 62831, + [SMALL_STATE(1127)] = 62845, + [SMALL_STATE(1128)] = 62859, + [SMALL_STATE(1129)] = 62873, + [SMALL_STATE(1130)] = 62887, + [SMALL_STATE(1131)] = 62901, + [SMALL_STATE(1132)] = 62915, + [SMALL_STATE(1133)] = 62929, + [SMALL_STATE(1134)] = 62943, + [SMALL_STATE(1135)] = 62957, + [SMALL_STATE(1136)] = 62975, + [SMALL_STATE(1137)] = 62989, + [SMALL_STATE(1138)] = 63015, + [SMALL_STATE(1139)] = 63029, + [SMALL_STATE(1140)] = 63049, + [SMALL_STATE(1141)] = 63063, + [SMALL_STATE(1142)] = 63077, + [SMALL_STATE(1143)] = 63091, + [SMALL_STATE(1144)] = 63105, + [SMALL_STATE(1145)] = 63125, + [SMALL_STATE(1146)] = 63139, + [SMALL_STATE(1147)] = 63163, + [SMALL_STATE(1148)] = 63179, + [SMALL_STATE(1149)] = 63193, + [SMALL_STATE(1150)] = 63215, + [SMALL_STATE(1151)] = 63229, + [SMALL_STATE(1152)] = 63243, + [SMALL_STATE(1153)] = 63261, + [SMALL_STATE(1154)] = 63279, + [SMALL_STATE(1155)] = 63299, + [SMALL_STATE(1156)] = 63317, + [SMALL_STATE(1157)] = 63333, + [SMALL_STATE(1158)] = 63351, + [SMALL_STATE(1159)] = 63365, + [SMALL_STATE(1160)] = 63385, + [SMALL_STATE(1161)] = 63407, + [SMALL_STATE(1162)] = 63427, + [SMALL_STATE(1163)] = 63447, + [SMALL_STATE(1164)] = 63467, + [SMALL_STATE(1165)] = 63485, + [SMALL_STATE(1166)] = 63501, + [SMALL_STATE(1167)] = 63521, + [SMALL_STATE(1168)] = 63539, + [SMALL_STATE(1169)] = 63559, + [SMALL_STATE(1170)] = 63579, + [SMALL_STATE(1171)] = 63599, + [SMALL_STATE(1172)] = 63617, + [SMALL_STATE(1173)] = 63641, + [SMALL_STATE(1174)] = 63659, + [SMALL_STATE(1175)] = 63677, + [SMALL_STATE(1176)] = 63701, + [SMALL_STATE(1177)] = 63715, + [SMALL_STATE(1178)] = 63740, + [SMALL_STATE(1179)] = 63753, + [SMALL_STATE(1180)] = 63772, + [SMALL_STATE(1181)] = 63797, + [SMALL_STATE(1182)] = 63820, + [SMALL_STATE(1183)] = 63839, + [SMALL_STATE(1184)] = 63860, + [SMALL_STATE(1185)] = 63885, + [SMALL_STATE(1186)] = 63910, + [SMALL_STATE(1187)] = 63935, + [SMALL_STATE(1188)] = 63960, + [SMALL_STATE(1189)] = 63979, + [SMALL_STATE(1190)] = 63996, + [SMALL_STATE(1191)] = 64011, + [SMALL_STATE(1192)] = 64034, + [SMALL_STATE(1193)] = 64055, + [SMALL_STATE(1194)] = 64080, + [SMALL_STATE(1195)] = 64105, + [SMALL_STATE(1196)] = 64126, + [SMALL_STATE(1197)] = 64151, + [SMALL_STATE(1198)] = 64170, + [SMALL_STATE(1199)] = 64183, + [SMALL_STATE(1200)] = 64202, + [SMALL_STATE(1201)] = 64221, + [SMALL_STATE(1202)] = 64238, + [SMALL_STATE(1203)] = 64263, + [SMALL_STATE(1204)] = 64288, + [SMALL_STATE(1205)] = 64313, + [SMALL_STATE(1206)] = 64326, + [SMALL_STATE(1207)] = 64351, + [SMALL_STATE(1208)] = 64376, + [SMALL_STATE(1209)] = 64401, + [SMALL_STATE(1210)] = 64426, + [SMALL_STATE(1211)] = 64449, + [SMALL_STATE(1212)] = 64474, + [SMALL_STATE(1213)] = 64499, + [SMALL_STATE(1214)] = 64522, + [SMALL_STATE(1215)] = 64539, + [SMALL_STATE(1216)] = 64560, + [SMALL_STATE(1217)] = 64581, + [SMALL_STATE(1218)] = 64606, + [SMALL_STATE(1219)] = 64631, + [SMALL_STATE(1220)] = 64650, + [SMALL_STATE(1221)] = 64669, + [SMALL_STATE(1222)] = 64688, + [SMALL_STATE(1223)] = 64701, + [SMALL_STATE(1224)] = 64724, + [SMALL_STATE(1225)] = 64743, + [SMALL_STATE(1226)] = 64766, + [SMALL_STATE(1227)] = 64791, + [SMALL_STATE(1228)] = 64816, + [SMALL_STATE(1229)] = 64841, + [SMALL_STATE(1230)] = 64866, + [SMALL_STATE(1231)] = 64891, + [SMALL_STATE(1232)] = 64910, + [SMALL_STATE(1233)] = 64935, + [SMALL_STATE(1234)] = 64948, + [SMALL_STATE(1235)] = 64967, + [SMALL_STATE(1236)] = 64990, + [SMALL_STATE(1237)] = 65015, + [SMALL_STATE(1238)] = 65028, + [SMALL_STATE(1239)] = 65047, + [SMALL_STATE(1240)] = 65070, + [SMALL_STATE(1241)] = 65085, + [SMALL_STATE(1242)] = 65108, + [SMALL_STATE(1243)] = 65124, + [SMALL_STATE(1244)] = 65140, + [SMALL_STATE(1245)] = 65160, + [SMALL_STATE(1246)] = 65176, + [SMALL_STATE(1247)] = 65196, + [SMALL_STATE(1248)] = 65214, + [SMALL_STATE(1249)] = 65228, + [SMALL_STATE(1250)] = 65244, + [SMALL_STATE(1251)] = 65266, + [SMALL_STATE(1252)] = 65282, + [SMALL_STATE(1253)] = 65296, + [SMALL_STATE(1254)] = 65318, + [SMALL_STATE(1255)] = 65338, + [SMALL_STATE(1256)] = 65356, + [SMALL_STATE(1257)] = 65372, + [SMALL_STATE(1258)] = 65388, + [SMALL_STATE(1259)] = 65410, + [SMALL_STATE(1260)] = 65424, + [SMALL_STATE(1261)] = 65438, + [SMALL_STATE(1262)] = 65456, + [SMALL_STATE(1263)] = 65472, + [SMALL_STATE(1264)] = 65484, + [SMALL_STATE(1265)] = 65504, + [SMALL_STATE(1266)] = 65526, + [SMALL_STATE(1267)] = 65544, + [SMALL_STATE(1268)] = 65562, + [SMALL_STATE(1269)] = 65580, + [SMALL_STATE(1270)] = 65600, + [SMALL_STATE(1271)] = 65616, + [SMALL_STATE(1272)] = 65634, + [SMALL_STATE(1273)] = 65650, + [SMALL_STATE(1274)] = 65666, + [SMALL_STATE(1275)] = 65682, + [SMALL_STATE(1276)] = 65696, + [SMALL_STATE(1277)] = 65718, + [SMALL_STATE(1278)] = 65740, + [SMALL_STATE(1279)] = 65758, + [SMALL_STATE(1280)] = 65780, + [SMALL_STATE(1281)] = 65796, + [SMALL_STATE(1282)] = 65810, + [SMALL_STATE(1283)] = 65822, + [SMALL_STATE(1284)] = 65839, + [SMALL_STATE(1285)] = 65856, + [SMALL_STATE(1286)] = 65875, + [SMALL_STATE(1287)] = 65890, + [SMALL_STATE(1288)] = 65909, + [SMALL_STATE(1289)] = 65924, + [SMALL_STATE(1290)] = 65943, + [SMALL_STATE(1291)] = 65960, + [SMALL_STATE(1292)] = 65971, + [SMALL_STATE(1293)] = 65988, + [SMALL_STATE(1294)] = 65999, + [SMALL_STATE(1295)] = 66014, + [SMALL_STATE(1296)] = 66031, + [SMALL_STATE(1297)] = 66050, + [SMALL_STATE(1298)] = 66067, + [SMALL_STATE(1299)] = 66084, + [SMALL_STATE(1300)] = 66099, + [SMALL_STATE(1301)] = 66116, + [SMALL_STATE(1302)] = 66127, + [SMALL_STATE(1303)] = 66144, + [SMALL_STATE(1304)] = 66161, + [SMALL_STATE(1305)] = 66178, + [SMALL_STATE(1306)] = 66197, + [SMALL_STATE(1307)] = 66216, + [SMALL_STATE(1308)] = 66227, + [SMALL_STATE(1309)] = 66242, + [SMALL_STATE(1310)] = 66257, + [SMALL_STATE(1311)] = 66272, + [SMALL_STATE(1312)] = 66287, + [SMALL_STATE(1313)] = 66298, + [SMALL_STATE(1314)] = 66315, + [SMALL_STATE(1315)] = 66334, + [SMALL_STATE(1316)] = 66353, + [SMALL_STATE(1317)] = 66370, + [SMALL_STATE(1318)] = 66387, + [SMALL_STATE(1319)] = 66404, + [SMALL_STATE(1320)] = 66421, + [SMALL_STATE(1321)] = 66438, + [SMALL_STATE(1322)] = 66455, + [SMALL_STATE(1323)] = 66471, + [SMALL_STATE(1324)] = 66485, + [SMALL_STATE(1325)] = 66499, + [SMALL_STATE(1326)] = 66515, + [SMALL_STATE(1327)] = 66531, + [SMALL_STATE(1328)] = 66545, + [SMALL_STATE(1329)] = 66561, + [SMALL_STATE(1330)] = 66573, + [SMALL_STATE(1331)] = 66589, + [SMALL_STATE(1332)] = 66605, + [SMALL_STATE(1333)] = 66619, + [SMALL_STATE(1334)] = 66631, + [SMALL_STATE(1335)] = 66645, + [SMALL_STATE(1336)] = 66659, + [SMALL_STATE(1337)] = 66673, + [SMALL_STATE(1338)] = 66689, + [SMALL_STATE(1339)] = 66705, + [SMALL_STATE(1340)] = 66719, + [SMALL_STATE(1341)] = 66733, + [SMALL_STATE(1342)] = 66749, + [SMALL_STATE(1343)] = 66765, + [SMALL_STATE(1344)] = 66779, + [SMALL_STATE(1345)] = 66789, + [SMALL_STATE(1346)] = 66805, + [SMALL_STATE(1347)] = 66821, + [SMALL_STATE(1348)] = 66837, + [SMALL_STATE(1349)] = 66851, + [SMALL_STATE(1350)] = 66861, + [SMALL_STATE(1351)] = 66877, + [SMALL_STATE(1352)] = 66893, + [SMALL_STATE(1353)] = 66907, + [SMALL_STATE(1354)] = 66923, + [SMALL_STATE(1355)] = 66933, + [SMALL_STATE(1356)] = 66947, + [SMALL_STATE(1357)] = 66963, + [SMALL_STATE(1358)] = 66979, + [SMALL_STATE(1359)] = 66989, + [SMALL_STATE(1360)] = 67005, + [SMALL_STATE(1361)] = 67019, + [SMALL_STATE(1362)] = 67035, + [SMALL_STATE(1363)] = 67051, + [SMALL_STATE(1364)] = 67067, + [SMALL_STATE(1365)] = 67081, + [SMALL_STATE(1366)] = 67097, + [SMALL_STATE(1367)] = 67111, + [SMALL_STATE(1368)] = 67127, + [SMALL_STATE(1369)] = 67141, + [SMALL_STATE(1370)] = 67155, + [SMALL_STATE(1371)] = 67171, + [SMALL_STATE(1372)] = 67187, + [SMALL_STATE(1373)] = 67201, + [SMALL_STATE(1374)] = 67215, + [SMALL_STATE(1375)] = 67229, + [SMALL_STATE(1376)] = 67243, + [SMALL_STATE(1377)] = 67259, + [SMALL_STATE(1378)] = 67275, + [SMALL_STATE(1379)] = 67291, + [SMALL_STATE(1380)] = 67305, + [SMALL_STATE(1381)] = 67319, + [SMALL_STATE(1382)] = 67335, + [SMALL_STATE(1383)] = 67349, + [SMALL_STATE(1384)] = 67363, + [SMALL_STATE(1385)] = 67379, + [SMALL_STATE(1386)] = 67395, + [SMALL_STATE(1387)] = 67411, + [SMALL_STATE(1388)] = 67427, + [SMALL_STATE(1389)] = 67441, + [SMALL_STATE(1390)] = 67455, + [SMALL_STATE(1391)] = 67469, + [SMALL_STATE(1392)] = 67479, + [SMALL_STATE(1393)] = 67493, + [SMALL_STATE(1394)] = 67503, + [SMALL_STATE(1395)] = 67517, + [SMALL_STATE(1396)] = 67533, + [SMALL_STATE(1397)] = 67549, + [SMALL_STATE(1398)] = 67565, + [SMALL_STATE(1399)] = 67581, + [SMALL_STATE(1400)] = 67597, + [SMALL_STATE(1401)] = 67611, + [SMALL_STATE(1402)] = 67625, + [SMALL_STATE(1403)] = 67641, + [SMALL_STATE(1404)] = 67657, + [SMALL_STATE(1405)] = 67671, + [SMALL_STATE(1406)] = 67684, + [SMALL_STATE(1407)] = 67697, + [SMALL_STATE(1408)] = 67710, + [SMALL_STATE(1409)] = 67721, + [SMALL_STATE(1410)] = 67734, + [SMALL_STATE(1411)] = 67743, + [SMALL_STATE(1412)] = 67754, + [SMALL_STATE(1413)] = 67767, + [SMALL_STATE(1414)] = 67780, + [SMALL_STATE(1415)] = 67793, + [SMALL_STATE(1416)] = 67806, + [SMALL_STATE(1417)] = 67819, + [SMALL_STATE(1418)] = 67828, + [SMALL_STATE(1419)] = 67841, + [SMALL_STATE(1420)] = 67854, + [SMALL_STATE(1421)] = 67867, + [SMALL_STATE(1422)] = 67880, + [SMALL_STATE(1423)] = 67889, + [SMALL_STATE(1424)] = 67902, + [SMALL_STATE(1425)] = 67915, + [SMALL_STATE(1426)] = 67924, + [SMALL_STATE(1427)] = 67937, + [SMALL_STATE(1428)] = 67950, + [SMALL_STATE(1429)] = 67959, + [SMALL_STATE(1430)] = 67972, + [SMALL_STATE(1431)] = 67985, + [SMALL_STATE(1432)] = 67996, + [SMALL_STATE(1433)] = 68009, + [SMALL_STATE(1434)] = 68022, + [SMALL_STATE(1435)] = 68035, + [SMALL_STATE(1436)] = 68048, + [SMALL_STATE(1437)] = 68059, + [SMALL_STATE(1438)] = 68068, + [SMALL_STATE(1439)] = 68079, + [SMALL_STATE(1440)] = 68092, + [SMALL_STATE(1441)] = 68105, + [SMALL_STATE(1442)] = 68118, + [SMALL_STATE(1443)] = 68127, + [SMALL_STATE(1444)] = 68140, + [SMALL_STATE(1445)] = 68153, + [SMALL_STATE(1446)] = 68166, + [SMALL_STATE(1447)] = 68177, + [SMALL_STATE(1448)] = 68190, + [SMALL_STATE(1449)] = 68203, + [SMALL_STATE(1450)] = 68216, + [SMALL_STATE(1451)] = 68229, + [SMALL_STATE(1452)] = 68242, + [SMALL_STATE(1453)] = 68255, + [SMALL_STATE(1454)] = 68268, + [SMALL_STATE(1455)] = 68281, + [SMALL_STATE(1456)] = 68294, + [SMALL_STATE(1457)] = 68307, + [SMALL_STATE(1458)] = 68320, + [SMALL_STATE(1459)] = 68333, + [SMALL_STATE(1460)] = 68346, + [SMALL_STATE(1461)] = 68359, + [SMALL_STATE(1462)] = 68372, + [SMALL_STATE(1463)] = 68385, + [SMALL_STATE(1464)] = 68396, + [SMALL_STATE(1465)] = 68409, + [SMALL_STATE(1466)] = 68422, + [SMALL_STATE(1467)] = 68435, + [SMALL_STATE(1468)] = 68448, + [SMALL_STATE(1469)] = 68461, + [SMALL_STATE(1470)] = 68474, + [SMALL_STATE(1471)] = 68487, + [SMALL_STATE(1472)] = 68500, + [SMALL_STATE(1473)] = 68513, + [SMALL_STATE(1474)] = 68526, + [SMALL_STATE(1475)] = 68539, + [SMALL_STATE(1476)] = 68552, + [SMALL_STATE(1477)] = 68565, + [SMALL_STATE(1478)] = 68578, + [SMALL_STATE(1479)] = 68591, + [SMALL_STATE(1480)] = 68604, + [SMALL_STATE(1481)] = 68617, + [SMALL_STATE(1482)] = 68630, + [SMALL_STATE(1483)] = 68643, + [SMALL_STATE(1484)] = 68656, + [SMALL_STATE(1485)] = 68669, + [SMALL_STATE(1486)] = 68678, + [SMALL_STATE(1487)] = 68691, + [SMALL_STATE(1488)] = 68704, + [SMALL_STATE(1489)] = 68717, + [SMALL_STATE(1490)] = 68730, + [SMALL_STATE(1491)] = 68743, + [SMALL_STATE(1492)] = 68756, + [SMALL_STATE(1493)] = 68769, + [SMALL_STATE(1494)] = 68782, + [SMALL_STATE(1495)] = 68791, + [SMALL_STATE(1496)] = 68804, + [SMALL_STATE(1497)] = 68817, + [SMALL_STATE(1498)] = 68830, + [SMALL_STATE(1499)] = 68843, + [SMALL_STATE(1500)] = 68854, + [SMALL_STATE(1501)] = 68867, + [SMALL_STATE(1502)] = 68880, + [SMALL_STATE(1503)] = 68893, + [SMALL_STATE(1504)] = 68906, + [SMALL_STATE(1505)] = 68919, + [SMALL_STATE(1506)] = 68932, + [SMALL_STATE(1507)] = 68945, + [SMALL_STATE(1508)] = 68956, + [SMALL_STATE(1509)] = 68967, + [SMALL_STATE(1510)] = 68976, + [SMALL_STATE(1511)] = 68985, + [SMALL_STATE(1512)] = 68998, + [SMALL_STATE(1513)] = 69007, + [SMALL_STATE(1514)] = 69020, + [SMALL_STATE(1515)] = 69033, + [SMALL_STATE(1516)] = 69046, + [SMALL_STATE(1517)] = 69057, + [SMALL_STATE(1518)] = 69068, + [SMALL_STATE(1519)] = 69081, + [SMALL_STATE(1520)] = 69094, + [SMALL_STATE(1521)] = 69107, + [SMALL_STATE(1522)] = 69120, + [SMALL_STATE(1523)] = 69129, + [SMALL_STATE(1524)] = 69142, + [SMALL_STATE(1525)] = 69151, + [SMALL_STATE(1526)] = 69164, + [SMALL_STATE(1527)] = 69177, + [SMALL_STATE(1528)] = 69190, + [SMALL_STATE(1529)] = 69203, + [SMALL_STATE(1530)] = 69212, + [SMALL_STATE(1531)] = 69225, + [SMALL_STATE(1532)] = 69238, + [SMALL_STATE(1533)] = 69251, + [SMALL_STATE(1534)] = 69259, + [SMALL_STATE(1535)] = 69267, + [SMALL_STATE(1536)] = 69275, + [SMALL_STATE(1537)] = 69283, + [SMALL_STATE(1538)] = 69293, + [SMALL_STATE(1539)] = 69303, + [SMALL_STATE(1540)] = 69311, + [SMALL_STATE(1541)] = 69319, + [SMALL_STATE(1542)] = 69329, + [SMALL_STATE(1543)] = 69337, + [SMALL_STATE(1544)] = 69347, + [SMALL_STATE(1545)] = 69357, + [SMALL_STATE(1546)] = 69365, + [SMALL_STATE(1547)] = 69375, + [SMALL_STATE(1548)] = 69385, + [SMALL_STATE(1549)] = 69395, + [SMALL_STATE(1550)] = 69403, + [SMALL_STATE(1551)] = 69411, + [SMALL_STATE(1552)] = 69421, + [SMALL_STATE(1553)] = 69429, + [SMALL_STATE(1554)] = 69439, + [SMALL_STATE(1555)] = 69447, + [SMALL_STATE(1556)] = 69457, + [SMALL_STATE(1557)] = 69467, + [SMALL_STATE(1558)] = 69475, + [SMALL_STATE(1559)] = 69483, + [SMALL_STATE(1560)] = 69491, + [SMALL_STATE(1561)] = 69501, + [SMALL_STATE(1562)] = 69509, + [SMALL_STATE(1563)] = 69517, + [SMALL_STATE(1564)] = 69525, + [SMALL_STATE(1565)] = 69535, + [SMALL_STATE(1566)] = 69543, + [SMALL_STATE(1567)] = 69551, + [SMALL_STATE(1568)] = 69559, + [SMALL_STATE(1569)] = 69569, + [SMALL_STATE(1570)] = 69577, + [SMALL_STATE(1571)] = 69585, + [SMALL_STATE(1572)] = 69593, + [SMALL_STATE(1573)] = 69603, + [SMALL_STATE(1574)] = 69613, + [SMALL_STATE(1575)] = 69623, + [SMALL_STATE(1576)] = 69631, + [SMALL_STATE(1577)] = 69641, + [SMALL_STATE(1578)] = 69649, + [SMALL_STATE(1579)] = 69657, + [SMALL_STATE(1580)] = 69665, + [SMALL_STATE(1581)] = 69673, + [SMALL_STATE(1582)] = 69681, + [SMALL_STATE(1583)] = 69689, + [SMALL_STATE(1584)] = 69697, + [SMALL_STATE(1585)] = 69705, + [SMALL_STATE(1586)] = 69713, + [SMALL_STATE(1587)] = 69721, + [SMALL_STATE(1588)] = 69731, + [SMALL_STATE(1589)] = 69741, + [SMALL_STATE(1590)] = 69749, + [SMALL_STATE(1591)] = 69759, + [SMALL_STATE(1592)] = 69767, + [SMALL_STATE(1593)] = 69775, + [SMALL_STATE(1594)] = 69785, + [SMALL_STATE(1595)] = 69795, + [SMALL_STATE(1596)] = 69805, + [SMALL_STATE(1597)] = 69813, + [SMALL_STATE(1598)] = 69823, + [SMALL_STATE(1599)] = 69831, + [SMALL_STATE(1600)] = 69841, + [SMALL_STATE(1601)] = 69849, + [SMALL_STATE(1602)] = 69859, + [SMALL_STATE(1603)] = 69869, + [SMALL_STATE(1604)] = 69877, + [SMALL_STATE(1605)] = 69887, + [SMALL_STATE(1606)] = 69895, + [SMALL_STATE(1607)] = 69903, + [SMALL_STATE(1608)] = 69911, + [SMALL_STATE(1609)] = 69919, + [SMALL_STATE(1610)] = 69927, + [SMALL_STATE(1611)] = 69935, + [SMALL_STATE(1612)] = 69943, + [SMALL_STATE(1613)] = 69953, + [SMALL_STATE(1614)] = 69960, + [SMALL_STATE(1615)] = 69967, + [SMALL_STATE(1616)] = 69974, + [SMALL_STATE(1617)] = 69981, + [SMALL_STATE(1618)] = 69988, + [SMALL_STATE(1619)] = 69995, + [SMALL_STATE(1620)] = 70002, + [SMALL_STATE(1621)] = 70009, + [SMALL_STATE(1622)] = 70016, + [SMALL_STATE(1623)] = 70023, + [SMALL_STATE(1624)] = 70030, + [SMALL_STATE(1625)] = 70037, + [SMALL_STATE(1626)] = 70044, + [SMALL_STATE(1627)] = 70051, + [SMALL_STATE(1628)] = 70058, + [SMALL_STATE(1629)] = 70065, + [SMALL_STATE(1630)] = 70072, + [SMALL_STATE(1631)] = 70079, + [SMALL_STATE(1632)] = 70086, + [SMALL_STATE(1633)] = 70093, + [SMALL_STATE(1634)] = 70100, + [SMALL_STATE(1635)] = 70107, + [SMALL_STATE(1636)] = 70114, + [SMALL_STATE(1637)] = 70121, + [SMALL_STATE(1638)] = 70128, + [SMALL_STATE(1639)] = 70135, + [SMALL_STATE(1640)] = 70142, + [SMALL_STATE(1641)] = 70149, + [SMALL_STATE(1642)] = 70156, + [SMALL_STATE(1643)] = 70163, + [SMALL_STATE(1644)] = 70170, + [SMALL_STATE(1645)] = 70177, + [SMALL_STATE(1646)] = 70184, + [SMALL_STATE(1647)] = 70191, + [SMALL_STATE(1648)] = 70198, + [SMALL_STATE(1649)] = 70205, + [SMALL_STATE(1650)] = 70212, + [SMALL_STATE(1651)] = 70219, + [SMALL_STATE(1652)] = 70226, + [SMALL_STATE(1653)] = 70233, + [SMALL_STATE(1654)] = 70240, + [SMALL_STATE(1655)] = 70247, + [SMALL_STATE(1656)] = 70254, + [SMALL_STATE(1657)] = 70261, + [SMALL_STATE(1658)] = 70268, + [SMALL_STATE(1659)] = 70275, + [SMALL_STATE(1660)] = 70282, + [SMALL_STATE(1661)] = 70289, + [SMALL_STATE(1662)] = 70296, + [SMALL_STATE(1663)] = 70303, + [SMALL_STATE(1664)] = 70310, + [SMALL_STATE(1665)] = 70317, + [SMALL_STATE(1666)] = 70324, + [SMALL_STATE(1667)] = 70331, + [SMALL_STATE(1668)] = 70338, + [SMALL_STATE(1669)] = 70345, + [SMALL_STATE(1670)] = 70352, + [SMALL_STATE(1671)] = 70359, + [SMALL_STATE(1672)] = 70366, + [SMALL_STATE(1673)] = 70373, + [SMALL_STATE(1674)] = 70380, + [SMALL_STATE(1675)] = 70387, + [SMALL_STATE(1676)] = 70394, + [SMALL_STATE(1677)] = 70401, + [SMALL_STATE(1678)] = 70408, + [SMALL_STATE(1679)] = 70415, + [SMALL_STATE(1680)] = 70422, + [SMALL_STATE(1681)] = 70429, + [SMALL_STATE(1682)] = 70436, + [SMALL_STATE(1683)] = 70443, + [SMALL_STATE(1684)] = 70450, + [SMALL_STATE(1685)] = 70457, + [SMALL_STATE(1686)] = 70464, + [SMALL_STATE(1687)] = 70471, + [SMALL_STATE(1688)] = 70478, + [SMALL_STATE(1689)] = 70485, + [SMALL_STATE(1690)] = 70492, + [SMALL_STATE(1691)] = 70499, + [SMALL_STATE(1692)] = 70506, + [SMALL_STATE(1693)] = 70513, + [SMALL_STATE(1694)] = 70520, + [SMALL_STATE(1695)] = 70527, + [SMALL_STATE(1696)] = 70534, + [SMALL_STATE(1697)] = 70541, + [SMALL_STATE(1698)] = 70548, + [SMALL_STATE(1699)] = 70555, + [SMALL_STATE(1700)] = 70562, + [SMALL_STATE(1701)] = 70569, + [SMALL_STATE(1702)] = 70576, + [SMALL_STATE(1703)] = 70583, + [SMALL_STATE(1704)] = 70590, + [SMALL_STATE(1705)] = 70597, + [SMALL_STATE(1706)] = 70604, + [SMALL_STATE(1707)] = 70611, + [SMALL_STATE(1708)] = 70618, + [SMALL_STATE(1709)] = 70625, + [SMALL_STATE(1710)] = 70632, + [SMALL_STATE(1711)] = 70639, + [SMALL_STATE(1712)] = 70646, + [SMALL_STATE(1713)] = 70653, + [SMALL_STATE(1714)] = 70660, + [SMALL_STATE(1715)] = 70667, + [SMALL_STATE(1716)] = 70674, + [SMALL_STATE(1717)] = 70681, + [SMALL_STATE(1718)] = 70688, + [SMALL_STATE(1719)] = 70695, + [SMALL_STATE(1720)] = 70702, + [SMALL_STATE(1721)] = 70709, + [SMALL_STATE(1722)] = 70716, + [SMALL_STATE(1723)] = 70723, + [SMALL_STATE(1724)] = 70730, + [SMALL_STATE(1725)] = 70737, + [SMALL_STATE(1726)] = 70744, + [SMALL_STATE(1727)] = 70751, + [SMALL_STATE(1728)] = 70758, + [SMALL_STATE(1729)] = 70765, + [SMALL_STATE(1730)] = 70772, + [SMALL_STATE(1731)] = 70779, + [SMALL_STATE(1732)] = 70786, + [SMALL_STATE(1733)] = 70793, + [SMALL_STATE(1734)] = 70800, + [SMALL_STATE(1735)] = 70807, + [SMALL_STATE(1736)] = 70814, + [SMALL_STATE(1737)] = 70821, + [SMALL_STATE(1738)] = 70828, + [SMALL_STATE(1739)] = 70835, + [SMALL_STATE(1740)] = 70842, + [SMALL_STATE(1741)] = 70849, + [SMALL_STATE(1742)] = 70856, + [SMALL_STATE(1743)] = 70863, + [SMALL_STATE(1744)] = 70870, + [SMALL_STATE(1745)] = 70877, + [SMALL_STATE(1746)] = 70884, + [SMALL_STATE(1747)] = 70891, + [SMALL_STATE(1748)] = 70898, + [SMALL_STATE(1749)] = 70905, + [SMALL_STATE(1750)] = 70912, + [SMALL_STATE(1751)] = 70919, + [SMALL_STATE(1752)] = 70926, + [SMALL_STATE(1753)] = 70933, + [SMALL_STATE(1754)] = 70940, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -83259,1698 +84025,1704 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(487), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(450), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1361), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1177), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(499), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(453), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1357), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1213), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(178), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1563), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1573), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1528), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(430), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(493), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(348), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1660), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(309), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(340), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1581), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1589), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1603), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(347), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(501), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1683), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295), [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1671), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1604), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1598), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1699), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1743), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1653), [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(480), - [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1663), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), - [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400), - [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1020), - [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(177), - [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920), - [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(920), - [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1053), - [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1042), - [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(422), - [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(433), - [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(509), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1699), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(307), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(469), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1659), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1027), + [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(179), + [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), + [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(950), + [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), + [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1040), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), + [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(513), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1720), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305), [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1724), - [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1702), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), - [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1581), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), - [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1575), - [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), - [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, 0, 0), - [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(487), - [120] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(450), - [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1361), - [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1177), - [129] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(157), - [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(365), - [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(75), - [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(403), - [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(195), - [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(246), - [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(178), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1563), - [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1573), - [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1528), - [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(422), - [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(433), - [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(509), - [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(423), - [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1699), - [174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(307), - [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(67), - [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(635), - [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(156), - [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(167), - [189] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(383), - [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1724), - [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1604), - [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1598), - [201] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(452), - [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(480), - [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1702), - [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(377), - [213] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(400), - [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1020), - [219] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(177), - [222] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(920), - [225] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(920), - [228] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(135), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), - [233] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1053), - [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1042), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), - [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(396), - [244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(430), - [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(493), - [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(348), - [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1660), - [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(309), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1745), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1723), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1583), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1533), + [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [115] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(499), + [118] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(453), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1357), + [124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1213), + [127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(157), + [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(343), + [133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(78), + [136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(340), + [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(233), + [142] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(247), + [145] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(182), + [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1581), + [151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1589), + [154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1603), + [157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(424), + [160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(437), + [163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(513), + [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(425), + [169] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1720), + [172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(305), + [175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(67), + [178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(643), + [181] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(160), + [184] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(165), + [187] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(349), + [190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1745), + [193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1743), + [196] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1653), + [199] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(452), + [202] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(469), + [205] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1723), + [208] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(386), + [211] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(396), + [214] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1027), + [217] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(179), + [220] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(950), + [223] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(950), + [226] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(134), + [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), + [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), + [234] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1040), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), + [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, 0, 0), + [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(345), + [244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(347), + [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(501), + [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(427), + [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1683), + [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(295), [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(66), - [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1671), - [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1663), - [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(781), - [270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(773), + [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1699), + [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1659), + [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(778), + [270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(774), [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), - [274] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(199), + [274] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(236), [277] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), REDUCE(sym_primary_expression, 1, 0, 1), - [280] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(343), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), + [280] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(397), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 1), - [287] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(657), - [290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(200), - [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [295] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(383), - [298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(376), - [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), + [287] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(688), + [290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(208), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [295] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(349), + [298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(372), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(688), [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), - [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1016), + [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1021), [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), - [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725), - [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(725), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(720), + [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(720), [313] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1037), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1038), - [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(503), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1059), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1061), + [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(494), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), - [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [349] = {.entry = {.count = 1, .reusable = false}}, SHIFT(851), - [351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(844), - [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), - [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), - [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), - [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581), - [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), - [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), - [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), - [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), - [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), - [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), - [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), - [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594), - [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553), - [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), - [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), - [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559), - [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), - [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517), - [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562), - [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598), - [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), - [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), - [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), - [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), - [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(556), - [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), - [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1171), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), - [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1209), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), - [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1523), - [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1564), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(707), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [577] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), REDUCE(sym_list_splat_pattern, 2, 0, 8), - [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), - [582] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), - [584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657), - [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), - [590] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), - [592] = {.entry = {.count = 1, .reusable = false}}, SHIFT(941), - [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [596] = {.entry = {.count = 1, .reusable = false}}, SHIFT(635), - [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [600] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), - [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [610] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(878), - [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(886), - [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [618] = {.entry = {.count = 1, .reusable = false}}, SHIFT(346), - [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673), - [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(878), - [628] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), - [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1051), - [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1048), - [634] = {.entry = {.count = 1, .reusable = false}}, SHIFT(350), - [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(970), - [638] = {.entry = {.count = 1, .reusable = false}}, SHIFT(949), - [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), - [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662), - [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), - [652] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), - [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1062), - [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), - [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), - [662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689), - [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [666] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), - [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849), - [670] = {.entry = {.count = 1, .reusable = false}}, SHIFT(842), - [672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), - [676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571), - [680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(397), - [682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1018), - [684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), - [686] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557), - [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877), - [692] = {.entry = {.count = 1, .reusable = false}}, SHIFT(848), - [694] = {.entry = {.count = 1, .reusable = false}}, SHIFT(839), - [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [698] = {.entry = {.count = 1, .reusable = false}}, SHIFT(636), - [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, 0, 16), - [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, 0, 16), - [704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [706] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 7), - [710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, 0, 7), - [712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), - [714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861), - [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883), - [718] = {.entry = {.count = 1, .reusable = false}}, SHIFT(829), - [720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(850), - [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1630), - [726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343), - [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891), - [730] = {.entry = {.count = 1, .reusable = false}}, SHIFT(415), - [732] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1015), - [734] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1593), - [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(708), - [740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1701), - [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), - [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1695), - [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), - [748] = {.entry = {.count = 1, .reusable = false}}, SHIFT(387), - [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 1, 0, 0), - [752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(376), - [754] = {.entry = {.count = 1, .reusable = false}}, SHIFT(863), - [756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(865), - [758] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), - [760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), - [762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1014), - [764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), - [766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, 0, 16), - [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 7), - [770] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), - [772] = {.entry = {.count = 1, .reusable = false}}, SHIFT(828), - [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(862), - [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917), - [780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1673), - [782] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), - [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1655), - [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 26), - [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), - [794] = {.entry = {.count = 1, .reusable = false}}, SHIFT(378), - [796] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344), - [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1, 0, 0), - [800] = {.entry = {.count = 1, .reusable = false}}, SHIFT(971), - [802] = {.entry = {.count = 1, .reusable = false}}, SHIFT(954), - [804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(733), - [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1669), - [808] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), - [810] = {.entry = {.count = 1, .reusable = false}}, SHIFT(398), - [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), - [814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 3, 0, 51), - [816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(783), - [818] = {.entry = {.count = 1, .reusable = false}}, SHIFT(764), - [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(772), - [822] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978), - [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1679), - [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711), - [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, 0, 145), - [832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, 0, 145), - [834] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1019), - [836] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, 0, 7), - [838] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384), - [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), - [842] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, 0, 16), - [844] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 101), - [846] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, 0, 101), - [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1, 0, 0), - [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(904), - [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), - [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), - [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(777), - [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714), - [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732), - [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), - [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710), - [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), - [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868), - [870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 126), - [872] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 126), - [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), - [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), - [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910), - [880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 127), - [882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 127), - [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960), - [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), - [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), - [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), - [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), - [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(720), - [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927), - [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907), - [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), - [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), - [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880), - [906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), - [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(888), - [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), - [912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 3, 0, 16), - [914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 7), - [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 34), - [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(937), - [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(895), - [922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), - [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), - [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), - [928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(702), - [930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931), - [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894), - [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906), - [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704), - [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(705), - [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), - [942] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, 0, 57), - [944] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, 0, 57), - [946] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1620), - [948] = {.entry = {.count = 1, .reusable = false}}, SHIFT(296), - [950] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1617), - [952] = {.entry = {.count = 1, .reusable = false}}, SHIFT(871), - [954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(879), - [956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), - [958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [960] = {.entry = {.count = 1, .reusable = false}}, SHIFT(390), - [962] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1021), - [964] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), - [966] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1644), - [968] = {.entry = {.count = 1, .reusable = false}}, SHIFT(302), - [970] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1628), - [972] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1676), - [974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 70), - [976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1715), - [980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 84), - [982] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 84), - [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), - [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [988] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1, 0, 0), - [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), - [994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 30), - [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 70), - [998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 0), - [1000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 10), - [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 29), - [1004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 69), - [1006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1690), - [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(544), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [361] = {.entry = {.count = 1, .reusable = false}}, SHIFT(831), + [363] = {.entry = {.count = 1, .reusable = false}}, SHIFT(835), + [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(387), + [367] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), + [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), + [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1216), + [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), + [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(505), + [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), + [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599), + [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), + [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(555), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1183), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), + [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1607), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1598), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(911), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [577] = {.entry = {.count = 1, .reusable = false}}, SHIFT(643), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [581] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(706), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [587] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), REDUCE(sym_list_splat_pattern, 2, 0, 8), + [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), + [592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), + [594] = {.entry = {.count = 1, .reusable = false}}, SHIFT(688), + [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), + [600] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), + [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(692), + [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [610] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), + [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(949), + [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(918), + [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [618] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370), + [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949), + [628] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1060), + [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1055), + [634] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), + [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), + [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673), + [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [644] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [646] = {.entry = {.count = 1, .reusable = false}}, SHIFT(985), + [648] = {.entry = {.count = 1, .reusable = false}}, SHIFT(988), + [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), + [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(985), + [662] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), + [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1049), + [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1050), + [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(872), + [670] = {.entry = {.count = 1, .reusable = false}}, SHIFT(850), + [672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(524), + [676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), + [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(391), + [682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1023), + [684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(170), + [686] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), + [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851), + [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), + [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [694] = {.entry = {.count = 1, .reusable = false}}, SHIFT(842), + [696] = {.entry = {.count = 1, .reusable = false}}, SHIFT(855), + [698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [700] = {.entry = {.count = 1, .reusable = false}}, SHIFT(632), + [702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 7), + [704] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, 0, 7), + [706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [708] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, 0, 16), + [712] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, 0, 16), + [714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838), + [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924), + [718] = {.entry = {.count = 1, .reusable = false}}, SHIFT(837), + [720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(854), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1700), + [726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(395), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), + [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), + [732] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), + [734] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1026), + [736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1733), + [740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707), + [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1664), + [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(878), + [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1685), + [748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(989), + [750] = {.entry = {.count = 1, .reusable = false}}, SHIFT(832), + [752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(836), + [754] = {.entry = {.count = 1, .reusable = false}}, SHIFT(354), + [756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(397), + [758] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 1, 0, 0), + [760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), + [762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1024), + [764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [766] = {.entry = {.count = 1, .reusable = false}}, SHIFT(421), + [768] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), + [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, 0, 16), + [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 7), + [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(374), + [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 3, 0, 52), + [782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [784] = {.entry = {.count = 1, .reusable = false}}, SHIFT(858), + [786] = {.entry = {.count = 1, .reusable = false}}, SHIFT(857), + [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), + [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1640), + [794] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [796] = {.entry = {.count = 1, .reusable = false}}, SHIFT(366), + [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 26), + [800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), + [802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1615), + [804] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407), + [806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1, 0, 0), + [808] = {.entry = {.count = 1, .reusable = false}}, SHIFT(786), + [810] = {.entry = {.count = 1, .reusable = false}}, SHIFT(787), + [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(767), + [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [818] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), + [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960), + [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1737), + [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(912), + [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1684), + [828] = {.entry = {.count = 1, .reusable = false}}, SHIFT(984), + [830] = {.entry = {.count = 1, .reusable = false}}, SHIFT(986), + [832] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), + [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887), + [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), + [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903), + [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), + [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726), + [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(729), + [846] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, 0, 7), + [848] = {.entry = {.count = 1, .reusable = false}}, SHIFT(409), + [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732), + [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(733), + [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(734), + [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(735), + [860] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, 0, 145), + [862] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, 0, 145), + [864] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1022), + [866] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, 0, 16), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941), + [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942), + [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945), + [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915), + [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), + [882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893), + [884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 126), + [886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 126), + [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(736), + [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971), + [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), + [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(977), + [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(979), + [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(980), + [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(737), + [904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 127), + [906] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 127), + [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880), + [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883), + [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(886), + [914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 101), + [916] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, 0, 101), + [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(888), + [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889), + [922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1, 0, 0), + [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 7), + [928] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 34), + [930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 3, 0, 16), + [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(940), + [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(879), + [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), + [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), + [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920), + [942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), + [944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(719), + [946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725), + [948] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, 0, 57), + [950] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, 0, 57), + [952] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1635), + [954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1736), + [956] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1632), + [958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 84), + [960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 84), + [962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [964] = {.entry = {.count = 1, .reusable = false}}, SHIFT(907), + [966] = {.entry = {.count = 1, .reusable = false}}, SHIFT(913), + [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [972] = {.entry = {.count = 1, .reusable = false}}, SHIFT(389), + [974] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1025), + [976] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), + [978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1637), + [980] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1739), + [982] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1693), + [984] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), + [986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1, 0, 0), + [988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [994] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292), + [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 70), + [998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [1000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1726), + [1002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [1004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 30), + [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 29), + [1008] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 70), [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 0), - [1012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1602), - [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 98), - [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4, 0, 0), - [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4, 0, 0), - [1020] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 79), - [1022] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 79), - [1024] = {.entry = {.count = 1, .reusable = false}}, SHIFT(360), - [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 80), - [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 80), - [1030] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 105), - [1032] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 105), - [1034] = {.entry = {.count = 1, .reusable = false}}, SHIFT(428), - [1036] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), - [1038] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), - [1040] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(302), - [1043] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), - [1045] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), - [1047] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1676), - [1050] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), - [1052] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), - [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3, 0, 0), - [1056] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3, 0, 0), - [1058] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2, 0, 0), - [1060] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2, 0, 0), - [1062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 41), - [1064] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, 0, 41), - [1066] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 55), - [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 55), - [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1, 0, 0), - [1072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1, 0, 0), - [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, 0, 71), - [1076] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, 0, 71), - [1078] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(296), - [1081] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1715), - [1084] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), - [1086] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), - [1088] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(360), - [1091] = {.entry = {.count = 1, .reusable = false}}, SHIFT(494), - [1093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(490), - [1095] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [1097] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(428), - [1100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), - [1102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1639), - [1106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), - [1108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [1110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1725), - [1112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, 0, 161), - [1114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, 0, 161), - [1116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), - [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), - [1120] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(827), - [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1, 0, 0), - [1125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1, 0, 0), - [1127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(830), - [1129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, 0, 168), - [1131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, 0, 168), - [1133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, 0, 169), - [1135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, 0, 169), - [1137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, 0, 167), - [1139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, 0, 167), - [1141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, 0, 151), - [1143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, 0, 151), - [1145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, 0, 57), - [1147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, 0, 57), - [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, 0, 152), - [1151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, 0, 152), - [1153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 84), - [1155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 84), - [1157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 134), - [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 134), - [1161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1362), - [1163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1248), - [1165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(827), - [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1047), - [1169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, 0, 162), - [1171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, 0, 162), - [1173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(830), - [1176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, 0, 55), - [1178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, 0, 55), - [1180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 147), - [1182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 147), - [1184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 56), - [1186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, 0, 56), - [1188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 108), - [1190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 108), - [1192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 129), - [1194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 129), - [1196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 84), - [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 84), - [1200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, 0, 80), - [1202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, 0, 80), - [1204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), - [1206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), - [1208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 133), - [1210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 133), - [1212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 83), - [1214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 83), - [1216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1443), - [1218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), - [1220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 57), - [1222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 57), - [1224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1466), - [1226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 26), - [1228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, 0, 51), - [1230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), - [1232] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), REDUCE(sym_primary_expression, 1, 0, 0), - [1235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 0), - [1237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), - [1239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 0), - [1241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), - [1243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 154), - [1245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 154), - [1247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 155), - [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 155), - [1251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, 0, 84), - [1253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, 0, 84), - [1255] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), - [1260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, 0, 57), - [1266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, 0, 57), - [1268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, 0, 163), - [1270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, 0, 163), - [1272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 4, 0, 138), - [1274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 4, 0, 138), - [1276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 142), - [1278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 142), - [1280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 61), - [1282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 61), - [1284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, 0, 65), - [1286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, 0, 65), - [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 92), - [1290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 92), - [1292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 93), - [1294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 93), - [1296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 78), - [1298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 78), - [1300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 94), - [1302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 94), - [1304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 81), - [1306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 81), - [1308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 82), - [1310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 82), - [1312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 85), - [1314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 85), - [1316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 90), - [1318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 90), - [1320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 102), - [1322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 102), - [1324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 104), - [1326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 104), - [1328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 6, 0, 106), - [1330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 6, 0, 106), - [1332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 107), - [1334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 107), - [1336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 6, 0, 109), - [1338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 6, 0, 109), - [1340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, 0, 57), - [1342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, 0, 57), - [1344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 57), - [1346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 57), - [1348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 117), - [1350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 117), - [1352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 118), - [1354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 118), - [1356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 119), - [1358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 119), - [1360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 120), - [1362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 120), - [1364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 121), - [1366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 121), - [1368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, 0, 128), - [1370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, 0, 128), - [1372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 130), - [1374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 130), - [1376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 131), - [1378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 131), - [1380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 132), - [1382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 132), - [1384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, 0, 84), - [1386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, 0, 84), - [1388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, 0, 84), - [1390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, 0, 84), - [1392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 141), - [1394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 141), - [1396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, 0, 143), - [1398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, 0, 143), - [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, 0, 19), - [1402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, 0, 19), - [1404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 146), - [1406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 146), - [1408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 148), - [1410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 148), - [1412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 149), - [1414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 149), - [1416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 150), - [1418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 150), - [1420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2, 0, 0), - [1422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), REDUCE(sym_tuple, 2, 0, 0), - [1425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2, 0, 0), - [1427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), - [1429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2, 0, 0), - [1431] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 156), - [1433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 156), - [1435] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 157), - [1437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 157), - [1439] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, 0, 158), - [1441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, 0, 158), - [1443] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 159), - [1445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 159), - [1447] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 160), - [1449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 160), - [1451] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 165), - [1453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 165), - [1455] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, 0, 166), - [1457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, 0, 166), - [1459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, 0, 58), - [1461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, 0, 58), - [1463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [1465] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), REDUCE(sym_list, 2, 0, 0), - [1468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), - [1470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), - [1472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2, 0, 0), - [1474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 60), - [1476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 60), - [1478] = {.entry = {.count = 1, .reusable = false}}, SHIFT(859), - [1480] = {.entry = {.count = 1, .reusable = false}}, SHIFT(854), - [1482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_separator, 1, 0, 0), - [1484] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), - [1486] = {.entry = {.count = 1, .reusable = false}}, SHIFT(625), - [1488] = {.entry = {.count = 1, .reusable = false}}, SHIFT(627), - [1490] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633), - [1492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(656), - [1494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(691), - [1496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(688), - [1498] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1004), - [1500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(997), - [1502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236), - [1504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2, 0, 0), - [1506] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2, 0, 0), - [1508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), - [1510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), - [1512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), - [1514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), - [1516] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1037), - [1519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), - [1521] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), - [1523] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1038), - [1526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 2), - [1528] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 2), - [1530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 20), - [1532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 20), - [1534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, 0, 20), - [1536] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, 0, 20), - [1538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, 0, 2), - [1540] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, 0, 2), - [1542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 96), - [1544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 96), - [1546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 32), - [1548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 32), - [1550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 0), - [1552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 0), - [1554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, 0, 62), - [1556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, 0, 62), - [1558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 32), - [1560] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 32), - [1562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2, 0, 0), - [1564] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2, 0, 0), - [1566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 62), - [1568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 62), - [1570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 96), - [1572] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 96), - [1574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 68), - [1576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 68), - [1578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 62), - [1580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 62), - [1582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 32), - [1584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 32), - [1586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 62), - [1588] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 62), - [1590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, 0, 52), - [1592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, 0, 52), - [1594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), - [1596] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), - [1598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, 0, 27), - [1600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, 0, 27), - [1602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1637), - [1604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [1606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), - [1608] = {.entry = {.count = 1, .reusable = false}}, SHIFT(646), - [1610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), - [1612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648), - [1614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), - [1616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650), - [1618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), - [1620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), - [1622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), - [1624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), - [1626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1729), - [1628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652), - [1630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), - [1632] = {.entry = {.count = 1, .reusable = false}}, SHIFT(648), - [1634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619), - [1636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 27), - [1638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 27), - [1640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 0), - [1642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 0), - [1644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 32), - [1646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 32), - [1648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 27), - [1650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 27), - [1652] = {.entry = {.count = 1, .reusable = false}}, SHIFT(665), - [1654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), - [1656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), - [1658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668), - [1660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669), - [1662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670), - [1664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), - [1666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1641), - [1668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671), - [1670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), - [1672] = {.entry = {.count = 1, .reusable = false}}, SHIFT(667), - [1674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), - [1676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, 0, 52), - [1678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, 0, 52), - [1680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, 0, 52), - [1682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, 0, 52), - [1684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, 0, 52), - [1686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, 0, 52), - [1688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 68), - [1690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 68), - [1692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), - [1694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2, 0, 0), - [1696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, 0, 17), - [1698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, 0, 17), - [1700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, 0, 13), - [1702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, 0, 13), - [1704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), - [1706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), - [1708] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), - [1711] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_operator, 3, 0, 40), - [1713] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_operator, 3, 0, 40), - [1715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2, 0, 0), - [1717] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2, 0, 0), - [1719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), - [1721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), - [1723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), - [1725] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), - [1727] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1062), - [1730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1643), - [1732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [1734] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628), - [1736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), - [1738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), - [1740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674), - [1742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686), - [1744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [1746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(694), - [1748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), - [1750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1723), - [1752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), - [1754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), - [1756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(654), - [1758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(617), - [1760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1615), - [1762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [1764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(638), - [1766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), - [1768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), - [1770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), - [1772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), - [1774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [1776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), - [1778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), - [1780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1691), - [1782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659), - [1784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), - [1786] = {.entry = {.count = 1, .reusable = false}}, SHIFT(643), - [1788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), - [1790] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1051), - [1793] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1048), - [1796] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1042), - [1799] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1053), - [1802] = {.entry = {.count = 1, .reusable = false}}, SHIFT(678), - [1804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), - [1806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), - [1808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681), - [1810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682), - [1812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), - [1814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678), - [1816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1683), - [1818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684), - [1820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685), - [1822] = {.entry = {.count = 1, .reusable = false}}, SHIFT(680), - [1824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621), - [1826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), - [1828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1722), - [1830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [1832] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), - [1834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), - [1836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), - [1838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), - [1840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), - [1842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [1844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), - [1846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), - [1848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1656), - [1850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), - [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677), - [1854] = {.entry = {.count = 1, .reusable = false}}, SHIFT(640), - [1856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616), - [1858] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1060), - [1860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889), - [1862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1497), - [1864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1579), - [1866] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1139), - [1868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), - [1870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1007), - [1872] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1088), - [1874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1088), - [1876] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1168), - [1878] = {.entry = {.count = 1, .reusable = false}}, SHIFT(351), - [1880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), - [1882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), - [1884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), - [1886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), - [1888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), - [1890] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367), - [1892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [1894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), - [1896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), - [1898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1129), - [1900] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1111), - [1902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), - [1904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), - [1906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1137), - [1908] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1098), - [1910] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1132), - [1912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison_operator, 2, 0, 18), - [1914] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison_operator, 2, 0, 18), - [1916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), - [1918] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), - [1920] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(667), - [1923] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1641), - [1926] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(667), - [1929] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(620), - [1932] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(648), - [1935] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1729), - [1938] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(648), - [1941] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(619), - [1944] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), - [1946] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), SHIFT_REPEAT(590), - [1949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1558), - [1951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), - [1953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1557), - [1955] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(680), - [1958] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1683), - [1961] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(680), - [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(621), - [1967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 32), - [1969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 27), - [1971] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(643), - [1974] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1691), - [1977] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(643), - [1980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(618), - [1983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, 0, 27), - [1985] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(654), - [1988] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1723), - [1991] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(654), - [1994] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(617), - [1997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 35), - [1999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1150), - [2001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1116), - [2003] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(640), - [2006] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1656), - [2009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(640), - [2012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(616), - [2015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [1012] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 0), + [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 10), + [1016] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 98), + [1018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1704), + [1020] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 69), + [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1, 0, 0), + [1024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1, 0, 0), + [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3, 0, 0), + [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3, 0, 0), + [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, 0, 71), + [1032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, 0, 71), + [1034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), + [1036] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), + [1038] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(292), + [1041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), + [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), + [1045] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1739), + [1048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 41), + [1050] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, 0, 41), + [1052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2, 0, 0), + [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2, 0, 0), + [1056] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 105), + [1058] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 105), + [1060] = {.entry = {.count = 1, .reusable = false}}, SHIFT(394), + [1062] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 55), + [1064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 55), + [1066] = {.entry = {.count = 1, .reusable = false}}, SHIFT(431), + [1068] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 79), + [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 79), + [1072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 80), + [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 80), + [1076] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(304), + [1079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4, 0, 0), + [1081] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4, 0, 0), + [1083] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1736), + [1086] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), + [1088] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), + [1090] = {.entry = {.count = 1, .reusable = false}}, SHIFT(617), + [1092] = {.entry = {.count = 1, .reusable = false}}, SHIFT(618), + [1094] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [1096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), + [1098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [1100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1705), + [1102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), + [1104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), + [1106] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(431), + [1109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(394), + [1112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849), + [1114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(859), + [1116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506), + [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1746), + [1124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, 0, 169), + [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, 0, 169), + [1128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1, 0, 0), + [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1, 0, 0), + [1132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(870), + [1134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 134), + [1136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 134), + [1138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, 0, 161), + [1140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, 0, 161), + [1142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, 0, 162), + [1144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, 0, 162), + [1146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), + [1148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), + [1150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(870), + [1153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(869), + [1156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, 0, 167), + [1158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, 0, 167), + [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 84), + [1162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 84), + [1164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, 0, 57), + [1166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, 0, 57), + [1168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, 0, 168), + [1170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, 0, 168), + [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1054), + [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1385), + [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1269), + [1178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, 0, 152), + [1180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, 0, 152), + [1182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, 0, 151), + [1184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, 0, 151), + [1186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(869), + [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1422), + [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632), + [1192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 26), + [1194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, 0, 55), + [1196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, 0, 55), + [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 147), + [1200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 147), + [1202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1416), + [1204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), + [1206] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 0), + [1211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, 0, 52), + [1217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, 0, 80), + [1219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, 0, 80), + [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), + [1223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), + [1225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 108), + [1227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 108), + [1229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, 0, 56), + [1231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 56), + [1233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 84), + [1235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 84), + [1237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 83), + [1239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 83), + [1241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 57), + [1243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 57), + [1245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 129), + [1247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 129), + [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 133), + [1251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 133), + [1253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, 0, 57), + [1255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, 0, 57), + [1257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 154), + [1259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 154), + [1261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 155), + [1263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 155), + [1265] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), REDUCE(sym_primary_expression, 1, 0, 0), + [1268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [1270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 0), + [1272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), + [1274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 4, 0, 138), + [1276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 4, 0, 138), + [1278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, 0, 84), + [1280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, 0, 84), + [1282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, 0, 163), + [1284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, 0, 163), + [1286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, 0, 65), + [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, 0, 65), + [1290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [1292] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), REDUCE(sym_list, 2, 0, 0), + [1295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), + [1297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), + [1299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2, 0, 0), + [1301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, 0, 158), + [1303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, 0, 158), + [1305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 159), + [1307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 159), + [1309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 160), + [1311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 160), + [1313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 93), + [1315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 93), + [1317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 102), + [1319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 102), + [1321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 104), + [1323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 104), + [1325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 165), + [1327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 165), + [1329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, 0, 166), + [1331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, 0, 166), + [1333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2, 0, 0), + [1335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), REDUCE(sym_tuple, 2, 0, 0), + [1338] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2, 0, 0), + [1340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), + [1342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2, 0, 0), + [1344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 6, 0, 106), + [1346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 6, 0, 106), + [1348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 107), + [1350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 107), + [1352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 146), + [1354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 146), + [1356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 78), + [1358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 78), + [1360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 6, 0, 109), + [1362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 6, 0, 109), + [1364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 81), + [1366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 81), + [1368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, 0, 57), + [1370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, 0, 57), + [1372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, 0, 19), + [1374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, 0, 19), + [1376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 57), + [1378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 57), + [1380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 148), + [1382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 148), + [1384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 82), + [1386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 82), + [1388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 94), + [1390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 94), + [1392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 117), + [1394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 117), + [1396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 149), + [1398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 149), + [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 118), + [1402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 118), + [1404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, 0, 58), + [1406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, 0, 58), + [1408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 60), + [1410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 60), + [1412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 61), + [1414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 61), + [1416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 119), + [1418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 119), + [1420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 120), + [1422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 120), + [1424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 121), + [1426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 121), + [1428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 150), + [1430] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 150), + [1432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 85), + [1434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 85), + [1436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 92), + [1438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 92), + [1440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, 0, 128), + [1442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, 0, 128), + [1444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 130), + [1446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 130), + [1448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 131), + [1450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 131), + [1452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 132), + [1454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 132), + [1456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, 0, 84), + [1458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, 0, 84), + [1460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, 0, 84), + [1462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, 0, 84), + [1464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 141), + [1466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 141), + [1468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 142), + [1470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 142), + [1472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, 0, 143), + [1474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, 0, 143), + [1476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 156), + [1478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 156), + [1480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 157), + [1482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 157), + [1484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 90), + [1486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 90), + [1488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [1490] = {.entry = {.count = 1, .reusable = false}}, SHIFT(860), + [1492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(871), + [1494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_separator, 1, 0, 0), + [1496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [1498] = {.entry = {.count = 1, .reusable = false}}, SHIFT(647), + [1500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(671), + [1502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(652), + [1504] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633), + [1506] = {.entry = {.count = 1, .reusable = false}}, SHIFT(675), + [1508] = {.entry = {.count = 1, .reusable = false}}, SHIFT(687), + [1510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), + [1512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), + [1514] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1061), + [1517] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1013), + [1519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1011), + [1521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), + [1523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), + [1525] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), + [1527] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1059), + [1530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2, 0, 0), + [1532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2, 0, 0), + [1534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), + [1536] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), + [1538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, 0, 20), + [1540] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, 0, 20), + [1542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, 0, 2), + [1544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, 0, 2), + [1546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 2), + [1548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 2), + [1550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 20), + [1552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 20), + [1554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1681), + [1556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [1558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), + [1560] = {.entry = {.count = 1, .reusable = false}}, SHIFT(674), + [1562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676), + [1564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677), + [1566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678), + [1568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), + [1570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [1572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681), + [1574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), + [1576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674), + [1578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1710), + [1580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682), + [1582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), + [1584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(677), + [1586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625), + [1588] = {.entry = {.count = 1, .reusable = false}}, SHIFT(645), + [1590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), + [1592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650), + [1594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), + [1596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), + [1598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(656), + [1600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(645), + [1602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1702), + [1604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), + [1606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659), + [1608] = {.entry = {.count = 1, .reusable = false}}, SHIFT(650), + [1610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), + [1612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2, 0, 0), + [1614] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2, 0, 0), + [1616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, 0, 17), + [1618] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, 0, 17), + [1620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), + [1622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), + [1624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, 0, 27), + [1626] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, 0, 27), + [1628] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 27), + [1630] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 27), + [1632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 0), + [1634] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 0), + [1636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 32), + [1638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 32), + [1640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 27), + [1642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 27), + [1644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), + [1646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2, 0, 0), + [1648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, 0, 51), + [1650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, 0, 51), + [1652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, 0, 51), + [1654] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, 0, 51), + [1656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, 0, 51), + [1658] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, 0, 51), + [1660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 32), + [1662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 32), + [1664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 62), + [1666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 62), + [1668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 0), + [1670] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 0), + [1672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 32), + [1674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 32), + [1676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 68), + [1678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 68), + [1680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, 0, 62), + [1682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, 0, 62), + [1684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 32), + [1686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 32), + [1688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 62), + [1690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 62), + [1692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 68), + [1694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 68), + [1696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 96), + [1698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 96), + [1700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 62), + [1702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 62), + [1704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 96), + [1706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 96), + [1708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), + [1710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), + [1712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_operator, 3, 0, 40), + [1714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_operator, 3, 0, 40), + [1716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), + [1718] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), + [1720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), + [1722] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), + [1724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2, 0, 0), + [1726] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2, 0, 0), + [1728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, 0, 13), + [1730] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, 0, 13), + [1732] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1049), + [1735] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1050), + [1738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), + [1740] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), + [1742] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1060), + [1745] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1055), + [1748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1631), + [1750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [1752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(644), + [1754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634), + [1756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), + [1758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), + [1760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668), + [1762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [1764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), + [1766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), + [1768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1619), + [1770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), + [1772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(691), + [1774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), + [1776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), + [1778] = {.entry = {.count = 1, .reusable = false}}, SHIFT(661), + [1780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662), + [1782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), + [1784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699), + [1786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), + [1788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), + [1790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), + [1792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1698), + [1794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), + [1796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), + [1798] = {.entry = {.count = 1, .reusable = false}}, SHIFT(663), + [1800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621), + [1802] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), + [1805] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1040), + [1808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1668), + [1810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [1812] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657), + [1814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), + [1816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), + [1818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), + [1820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689), + [1822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [1824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), + [1826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), + [1828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1730), + [1830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), + [1832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), + [1834] = {.entry = {.count = 1, .reusable = false}}, SHIFT(695), + [1836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), + [1838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), + [1840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1703), + [1842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [1844] = {.entry = {.count = 1, .reusable = false}}, SHIFT(697), + [1846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), + [1848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696), + [1850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684), + [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), + [1854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [1856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), + [1858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), + [1860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1672), + [1862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), + [1864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), + [1866] = {.entry = {.count = 1, .reusable = false}}, SHIFT(696), + [1868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), + [1870] = {.entry = {.count = 1, .reusable = false}}, SHIFT(438), + [1872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [1874] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1042), + [1876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), + [1878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1514), + [1880] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), + [1882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), + [1884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1587), + [1886] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1117), + [1888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), + [1890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1007), + [1892] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1078), + [1894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1078), + [1896] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1116), + [1898] = {.entry = {.count = 1, .reusable = false}}, SHIFT(363), + [1900] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), + [1902] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), + [1904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1142), + [1906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [1908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), + [1910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), + [1912] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1160), + [1914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), + [1916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1141), + [1918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1158), + [1920] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1136), + [1922] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1101), + [1924] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), + [1926] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), + [1928] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(650), + [1931] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1702), + [1934] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(650), + [1937] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(624), + [1940] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison_operator, 2, 0, 18), + [1942] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison_operator, 2, 0, 18), + [1944] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(677), + [1947] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1710), + [1950] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(677), + [1953] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(625), + [1956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), + [1958] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), SHIFT_REPEAT(589), + [1961] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(637), + [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1619), + [1967] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(637), + [1970] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(620), + [1973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 32), + [1975] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(695), + [1978] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1730), + [1981] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(695), + [1984] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(622), + [1987] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1543), + [1989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1132), + [1991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1537), + [1993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1176), + [1995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 27), + [1997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1134), + [1999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, 0, 27), + [2001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 35), + [2003] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(663), + [2006] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1698), + [2009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(663), + [2012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(621), + [2015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), [2017] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 16), - [2019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1500), - [2021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476), - [2023] = {.entry = {.count = 1, .reusable = false}}, SHIFT(615), - [2025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), - [2027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632), - [2029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1491), - [2031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), - [2033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), - [2035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [2037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), - [2039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [2041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [2043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), - [2045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), - [2047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), - [2049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), - [2051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1324), - [2053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1525), - [2055] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3, 0, 0), - [2057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2, 0, 0), - [2059] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_operator, 2, 0, 10), - [2061] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_not_operator, 2, 0, 10), - [2063] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), - [2065] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1662), - [2068] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(180), - [2071] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), - [2074] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), - [2077] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [2079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), - [2081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 0), - [2083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1662), - [2085] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2, 0, 0), - [2087] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2, 0, 0), - [2089] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), - [2091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1149), - [2093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1149), - [2095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696), - [2097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699), - [2099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), - [2101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(698), - [2103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [2105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), - [2107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), - [2109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1646), - [2111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), - [2113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, 0, 7), - [2115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), - [2117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), - [2119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(857), - [2121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836), - [2123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(796), - [2125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(787), - [2127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(788), - [2129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1388), - [2131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(864), - [2133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1429), - [2135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(837), - [2137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843), - [2139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853), - [2141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(852), - [2143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(860), - [2145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), - [2147] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), SHIFT(176), - [2150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(588), - [2152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [2154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), - [2156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), - [2158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1, 0, 0), - [2160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1, 0, 0), - [2162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795), - [2164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, 0, 40), - [2166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, 0, 40), - [2168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), - [2170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [2172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, 0, 0), - [2174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, 0, 0), - [2176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, 0, 67), - [2178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), - [2180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), - [2182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [2184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 23), - [2186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 23), - [2188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), - [2190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945), - [2192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), - [2194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [2196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, 0, 33), - [2198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, 0, 33), - [2200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 36), - [2202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 36), - [2204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(940), - [2206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [2019] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(696), + [2022] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1672), + [2025] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(696), + [2028] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(623), + [2031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [2033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [2035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [2037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [2039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1516), + [2041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [2043] = {.entry = {.count = 1, .reusable = false}}, SHIFT(619), + [2045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [2047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), + [2049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1512), + [2051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [2053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), + [2055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), + [2057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [2059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [2061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [2063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1383), + [2065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1550), + [2067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2, 0, 0), + [2069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3, 0, 0), + [2071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_operator, 2, 0, 10), + [2073] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_not_operator, 2, 0, 10), + [2075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), + [2077] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1734), + [2080] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), + [2082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1149), + [2084] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1149), + [2086] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [2088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847), + [2090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [2092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), + [2094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [2096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1623), + [2098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), + [2100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, 0, 7), + [2102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [2104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [2106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1734), + [2108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1, 0, 0), + [2110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1, 0, 0), + [2112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 0), + [2114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843), + [2116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(184), + [2119] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), + [2122] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), + [2125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), + [2127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(852), + [2129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954), + [2131] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), SHIFT(180), + [2134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(527), + [2136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), + [2138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), + [2140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [2142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(792), + [2144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793), + [2146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(794), + [2148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795), + [2150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1485), + [2152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), + [2154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853), + [2156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1509), + [2158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(840), + [2160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(702), + [2162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846), + [2164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701), + [2166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848), + [2168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2, 0, 0), + [2170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2, 0, 0), + [2172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), + [2174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), + [2176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, 0, 40), + [2178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, 0, 40), + [2180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921), + [2182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [2184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [2186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, 0, 0), + [2188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, 0, 0), + [2190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 36), + [2192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 36), + [2194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), + [2196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [2198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [2200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, 0, 33), + [2202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, 0, 33), + [2204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 86), + [2206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1556), [2208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 2, 0, 110), - [2210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1561), - [2212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, 0, 67), - [2214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717), - [2216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706), - [2218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [2220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 86), - [2222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1565), - [2224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1, 0, 0), - [2226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), - [2228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1, 0, 0), - [2230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4, 0, 0), - [2232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(989), - [2234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2, 0, 0), - [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2, 0, 0), - [2238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [2240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), - [2242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__f_expression, 1, 0, 0), - [2244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [2246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), - [2248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3, 0, 0), - [2250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), - [2252] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(989), - [2255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), - [2257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(385), - [2260] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(1646), - [2263] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(504), - [2266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2, 0, 0), - [2268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, 0, 140), - [2270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, 0, 135), - [2272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3, 0, 0), - [2274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3, 0, 0), - [2276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, 0, 136), - [2278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, 0, 140), - [2280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(986), - [2282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 145), - [2284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [2286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), - [2288] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(299), - [2291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 4, 0, 0), - [2293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, 0, 153), - [2295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4, 0, 0), - [2297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, 0, 101), - [2299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [2301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, 0, 140), - [2303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), - [2305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), - [2307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1728), - [2309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1724), - [2311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1702), - [2313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1668), - [2315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1671), - [2317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1663), - [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5, 0, 0), - [2321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5, 0, 0), - [2323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, 0, 140), - [2325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), - [2327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [2329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), - [2331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2, 0, 0), - [2333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), - [2335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1135), - [2338] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1135), - [2341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), - [2343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6, 0, 0), - [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, 0, 140), - [2347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7, 0, 0), - [2349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1, 0, 0), - [2351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(988), - [2353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, 0, 140), - [2355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, 0, 14), - [2357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [2359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 2, 0, 0), + [2210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1604), + [2212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 23), + [2214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, 0, 67), + [2216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, 0, 67), + [2218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890), + [2220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), + [2222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877), + [2224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [2226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 23), + [2228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967), + [2230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [2232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(723), + [2234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1, 0, 0), + [2238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2, 0, 0), + [2240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), + [2242] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(356), + [2245] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(1623), + [2248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(510), + [2251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3, 0, 0), + [2253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(994), + [2255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), + [2257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(994), + [2260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [2262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), + [2264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__f_expression, 1, 0, 0), + [2266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), + [2268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [2270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4, 0, 0), + [2272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1, 0, 0), + [2274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [2276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2, 0, 0), + [2278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2, 0, 0), + [2280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3, 0, 0), + [2282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, 0, 140), + [2284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), + [2286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [2288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), + [2290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(307), + [2293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, 0, 140), + [2295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1, 0, 0), + [2297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(995), + [2299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), + [2301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), + [2303] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1119), + [2306] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1119), + [2309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), + [2311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 32), + [2313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 145), + [2315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [2317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3, 0, 0), + [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, 0, 14), + [2321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, 0, 153), + [2323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, 0, 136), + [2325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5, 0, 0), + [2327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5, 0, 0), + [2329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, 0, 135), + [2331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4, 0, 0), + [2333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, 0, 101), + [2335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [2337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [2339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [2341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2, 0, 0), + [2343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, 0, 140), + [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6, 0, 0), + [2347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, 0, 140), + [2349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 2, 0, 0), + [2351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 4, 0, 0), + [2353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1749), + [2355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1745), + [2357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1723), + [2359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7, 0, 0), [2361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1, 0, 0), - [2363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1135), - [2365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1135), + [2363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1119), + [2365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1119), [2367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1, 0, 0), - [2369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 2, 0, 0), - [2371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 32), - [2373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2, 0, 0), - [2375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 126), - [2377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [2379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 127), - [2381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [2383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, 0, 140), - [2385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), - [2387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), - [2389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [2391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1617), - [2393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, 0, 33), - [2395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), - [2397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), - [2399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), - [2401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [2403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [2405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), - [2407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), - [2409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1228), - [2411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), - [2413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1700), - [2415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1, 0, 0), - [2417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, 0, 63), - [2419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [2421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 10), - [2423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), - [2425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, 0, 15), - [2427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1217), - [2429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1333), - [2431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1552), - [2433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3, 0, 0), - [2435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1347), - [2437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1227), - [2439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1623), - [2441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1635), - [2443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [2445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), - [2447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 32), - [2449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [2451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913), - [2453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 0), - [2455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), - [2457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [2459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), - [2461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [2463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), - [2465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588), - [2467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), - [2469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, 0, 11), - [2471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, 0, 67), - [2473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [2475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1628), - [2477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [2479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [2481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [2483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(723), - [2485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1, 0, 0), - [2487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1711), - [2489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, 0, 0), - [2491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1597), - [2493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1, 0, 0), - [2495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), - [2497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(972), - [2500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [2502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 16), - [2504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [2506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2, 0, 0), - [2508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 69), - [2510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), - [2512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2, 0, 0), - [2514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, 0, 44), - [2516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, 0, 44), - [2518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, 0, 6), - [2520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), - [2522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), - [2524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, 0, 112), - [2526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, 0, 44), - [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, 0, 44), + [2369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, 0, 140), + [2371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, 0, 140), + [2373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, 0, 140), + [2375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(992), + [2377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2, 0, 0), + [2379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1740), + [2381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1699), + [2383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1659), + [2385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 127), + [2387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [2389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 126), + [2391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [2393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [2395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 2, 0, 0), + [2397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), + [2399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), + [2401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [2403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [2405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [2407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [2409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, 0, 33), + [2411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 32), + [2413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1245), + [2415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1381), + [2417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1571), + [2419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1, 0, 0), + [2421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [2423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1632), + [2425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [2427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), + [2429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1342), + [2431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1344), + [2433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), + [2435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), + [2437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527), + [2439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [2441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [2443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [2445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), + [2447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [2449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1693), + [2451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3, 0, 0), + [2453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1254), + [2455] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1744), + [2457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1679), + [2459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, 0, 67), + [2461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [2463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927), + [2465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), + [2467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [2469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), + [2471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [2473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1251), + [2475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1343), + [2477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1638), + [2479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [2481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 10), + [2483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, 0, 63), + [2485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), + [2487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, 0, 15), + [2489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 0), + [2491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), + [2493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [2495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713), + [2497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, 0, 11), + [2499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1, 0, 0), + [2501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1662), + [2503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, 0, 0), + [2505] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1641), + [2508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 16), + [2510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [2512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 98), + [2514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [2516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1641), + [2518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1, 0, 0), + [2520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1, 0, 0), + [2522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [2524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2, 0, 0), + [2526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), + [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), [2530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), - [2532] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(262), - [2535] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(256), - [2538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304), - [2540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, 0, 122), - [2542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1, 0, 0), - [2544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [2546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [2548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [2550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, 0, 139), - [2552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 10), - [2554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [2556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), - [2558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, 0, 36), - [2560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1368), - [2562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [2564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [2566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1228), - [2568] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1597), - [2571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [2573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, 0, 44), - [2575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, 0, 44), - [2577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, 0, 44), - [2579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, 0, 44), - [2581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 32), - [2583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), - [2585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), - [2587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), - [2589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), - [2591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 98), - [2593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), - [2595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), - [2597] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(377), - [2600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, 0, 144), - [2602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, 0, 11), - [2604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 123), - [2606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 23), - [2608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, 0, 24), - [2610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, 0, 31), - [2612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 16), - [2614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [2532] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(256), + [2535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [2537] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), + [2539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), + [2541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [2543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, 0, 6), + [2545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [2547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [2549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), + [2551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2, 0, 0), + [2553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), + [2555] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(386), + [2558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, 0, 44), + [2560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, 0, 44), + [2562] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, 0, 44), + [2564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, 0, 44), + [2566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, 0, 36), + [2568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 69), + [2570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [2572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [2574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 32), + [2576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, 0, 122), + [2578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, 0, 112), + [2580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1251), + [2582] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(254), + [2585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [2587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [2589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [2591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, 0, 44), + [2593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, 0, 44), + [2595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1340), + [2597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1324), + [2599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 10), + [2601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [2603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), + [2605] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(981), + [2608] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, 0, 44), + [2610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, 0, 44), + [2612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, 0, 139), + [2614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 123), [2616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 4, 0, 64), - [2618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1252), - [2620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1318), - [2622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1292), - [2624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1496), - [2626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, 0, 91), - [2628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1331), - [2630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [2632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [2634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [2636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1191), - [2638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 36), - [2640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 124), - [2642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, 0, 54), - [2644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [2646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2, 0, 0), - [2648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [2650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1288), - [2652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 32), - [2654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1289), - [2656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1674), - [2658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, 0, 6), - [2660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, 0, 113), - [2662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [2664] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(254), + [2618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [2620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [2622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1234), + [2624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [2626] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1, 0, 0), + [2628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [2630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1315), + [2632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [2634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1431), + [2636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1356), + [2638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1287), + [2640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1502), + [2642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1302), + [2644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1617), + [2646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, 0, 6), + [2648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, 0, 91), + [2650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1281), + [2652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1330), + [2654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1435), + [2656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 23), + [2658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 36), + [2660] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(255), + [2663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, 0, 24), + [2665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 6), [2667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 97), - [2669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [2671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), - [2673] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), SHIFT_REPEAT(242), - [2676] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), - [2678] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(173), - [2681] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(1288), - [2684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 6), - [2686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1464), - [2688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1308), - [2690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1401), - [2692] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1, 0, 0), - [2694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1279), - [2696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1625), - [2698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3, 0, 0), - [2700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3, 0, 0), - [2702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [2704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1542), - [2706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [2708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [2710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), - [2712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), - [2714] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(315), - [2717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827), - [2719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [2721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), - [2723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1022), - [2725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1492), - [2727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1450), - [2729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [2731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2, 0, 0), - [2733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, 0, 7), - [2735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), - [2737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [2739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), - [2741] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), SHIFT_REPEAT(133), - [2744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), - [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1226), - [2748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425), - [2750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1334), - [2752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1664), - [2754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1264), - [2756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 24), - [2758] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1625), - [2761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), - [2763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1295), - [2765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), - [2767] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), SHIFT_REPEAT(1323), - [2770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0), - [2772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [2774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), - [2776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, 0, 66), - [2778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), - [2780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 25), - [2782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [2784] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1452), - [2787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), - [2789] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), SHIFT_REPEAT(429), - [2792] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), - [2794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 16), - [2796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), - [2798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [2800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), - [2802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [2804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), - [2806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), - [2810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 29), - [2812] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, 0, 137), - [2814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847), - [2816] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 50), - [2818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exception_list, 2, 0, 16), - [2820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), - [2822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [2824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3, 0, 0), - [2826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), - [2828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), - [2830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 30), - [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [2834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [2836] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2, 0, 0), - [2838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), - [2840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [2842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [2844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [2846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, 0, 15), - [2848] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), SHIFT_REPEAT(359), - [2851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), - [2853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [2855] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(434), - [2858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1346), - [2860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830), - [2862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), - [2864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [2866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 0), - [2868] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 87), - [2870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, 0, 25), - [2872] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1, 0, 0), - [2874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1323), - [2876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, 0, 25), - [2878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 0), - [2880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), - [2882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915), - [2884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 115), - [2886] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), SHIFT_REPEAT(1202), - [2889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), - [2891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), - [2893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1378), - [2895] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1030), - [2898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1341), - [2900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aliased_import, 3, 0, 46), - [2902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [2904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 38), - [2906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), - [2908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [2910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), - [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), - [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), - [2916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), - [2918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [2920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [2922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882), - [2924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), - [2926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939), - [2928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [2930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), - [2932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [2934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924), - [2936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), - [2938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1358), - [2940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1296), - [2942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1025), - [2944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [2946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [2948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), - [2950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), - [2952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), - [2954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(953), - [2956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [2958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), - [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [2962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 16), - [2964] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1, 0, 0), - [2966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), - [2968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [2970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1461), - [2972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(963), - [2974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [2976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), - [2978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), - [2980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(995), - [2982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1230), - [2984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), - [2986] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(985), - [2989] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1029), - [2992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [2994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1631), - [2996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730), - [2998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [3000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), - [3002] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), SHIFT_REPEAT(1514), - [3005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [3007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), - [3009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), - [3011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935), - [3013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701), - [3015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [3017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942), - [3019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), - [3021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), - [3023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [3025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943), - [3027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1118), - [3029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(973), - [3031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944), - [3033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [3035] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), - [3037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), - [3039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869), - [3041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [3043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870), - [3045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), - [3047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1459), - [3049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1476), - [3051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1028), - [3053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 1, 0, 0), - [3055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), - [3057] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(243), - [3060] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), - [3062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), - [3064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), - [3066] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), SHIFT_REPEAT(234), - [3069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1169), - [3071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1471), - [3073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [3075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), - [3077] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, 0, 15), - [3079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), - [3081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [3083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [3085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [3087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [3089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1103), - [3091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), - [3093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1107), - [3095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1480), - [3097] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1493), - [3100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), - [3102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1, 0, 0), - [3104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [3106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1140), - [3108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), SHIFT_REPEAT(280), - [3111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), - [3113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1202), - [3115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1486), - [3117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1707), - [3119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), - [3121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1009), - [3123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1108), - [3125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 89), - [3127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2, 0, 0), - [3129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1433), - [3131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(980), - [3133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1, 0, 0), - [3135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, -1, 59), - [3137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1221), - [3139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1259), - [3141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [3143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713), - [3145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1380), - [3147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [3149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(729), - [3151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1024), - [3153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [3155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1, 0, 0), - [3157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1, 0, 0), - [3159] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1023), - [3162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), - [3164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [3166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(925), - [3168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [3170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [3172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [3174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1027), - [3176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, 0, 22), - [3178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 32), - [3180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, 0, 40), - [3182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 48), - [3184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 89), - [3186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 49), - [3188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 68), - [3190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0), - [3192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 95), - [3194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, 0, 111), - [3196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1, 0, 0), - [3198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1704), - [3200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1136), - [3202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [3204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [3206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1, 0, 0), - [3208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 75), - [3210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 76), - [3212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, 0, 164), - [3214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 88), - [3216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [3218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [3220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1105), - [3222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), - [3224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [3226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [3228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [3230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), - [3232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [3234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), - [3236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [3238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [3240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1, 0, 0), - [3242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [3244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), - [3246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1221), - [3248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, 0, 47), - [3250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1636), - [3252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1115), - [3254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1115), - [3256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1, 0, 0), - [3258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1109), - [3260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1109), - [3262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 32), - [3264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 39), - [3266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 7, 0, 125), - [3268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1, 0, 0), - [3270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, 0, 11), - [3272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 5), - [3274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, 0, 99), - [3276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1077), - [3278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1077), - [3280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, 0, 63), - [3282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1685), - [3284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(858), - [3286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [3288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), - [3290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, 0, 100), - [3292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, 0, 114), - [3294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 0), - [3296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, 0, 111), - [3298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [3300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722), - [3302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1251), - [3304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1294), - [3306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1353), - [3308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [3310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1303), - [3312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947), - [3314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5, 0, 0), - [3316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(984), - [3318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1310), - [3320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), - [3322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1, 0, 0), - [3324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [3326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [3328] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [3330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [3332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1590), - [3334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), - [3336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724), - [3338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [3340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), - [3342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [3344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [3346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [3348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1377), - [3350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1494), - [3352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(911), - [3354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [3356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [3358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [3360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(912), - [3362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [3364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [3366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1373), - [3368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), - [3370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), - [3372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1359), - [3374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1572), - [3376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(690), - [3378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), - [3380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), - [3382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [3384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [3386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), - [3388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [3390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [3392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928), - [3394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [3396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1367), - [3398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890), - [3400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), - [3402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), - [3404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(987), - [3406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(930), - [3408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [3410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1190), - [3412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1056), - [3414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1283), - [3416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1554), - [3418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), - [3420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933), - [3422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), - [3424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), - [3426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), - [3428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1307), - [3430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727), - [3432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(938), - [3434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1391), - [3436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(999), - [3438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1183), - [3440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728), - [3442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), - [3444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), - [3446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), - [3448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687), - [3450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(918), - [3452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893), - [3454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), - [3456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [3458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1002), - [3460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4, 0, 0), - [3462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634), - [3464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867), - [3466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885), - [3468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887), - [3470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, 0, 25), - [3472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), - [3474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [3476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1271), - [3478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), - [3480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1273), - [3482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [3484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), - [3486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), - [3488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [3490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3, 0, 0), - [3492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967), - [3494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1414), - [3496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), - [3498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1239), - [3500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [3502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1578), - [3504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), - [3506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721), - [3508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1588), - [3510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), - [3512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), - [3514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921), - [3516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), - [3518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), - [3520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1375), - [3522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1376), - [3524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731), - [3526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), - [3528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(977), - [3530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(981), + [2669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), + [2671] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(189), + [2674] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(1305), + [2677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1341), + [2679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 16), + [2681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [2683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [2685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [2687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), + [2689] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), SHIFT_REPEAT(250), + [2692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, 0, 11), + [2694] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, 0, 54), + [2696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [2698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2, 0, 0), + [2700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1305), + [2702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, 0, 113), + [2704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, 0, 144), + [2706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, 0, 31), + [2708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 124), + [2710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 32), + [2712] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), SHIFT_REPEAT(133), + [2715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), + [2717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [2719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 0), + [2721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869), + [2723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, 0, 137), + [2725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1391), + [2727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [2729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 25), + [2731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1259), + [2733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1492), + [2735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [2737] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1696), + [2740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), + [2742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, 0, 66), + [2744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870), + [2748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1300), + [2750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 24), + [2752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304), + [2754] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1503), + [2757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), + [2759] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1, 0, 0), + [2761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1352), + [2763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 0), + [2765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [2767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), + [2769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [2771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [2773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), + [2775] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), SHIFT_REPEAT(417), + [2778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), + [2780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 50), + [2782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [2784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [2786] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), + [2788] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), SHIFT_REPEAT(1352), + [2791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [2793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, 0, 7), + [2795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466), + [2797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1463), + [2799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1527), + [2801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [2803] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 16), + [2805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), + [2807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [2809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1384), + [2811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1616), + [2813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [2815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exception_list, 2, 0, 16), + [2817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [2819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1696), + [2821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2, 0, 0), + [2823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [2825] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), SHIFT_REPEAT(393), + [2828] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), + [2830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [2834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(352), + [2837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, 0, 25), + [2839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [2841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [2843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [2845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, 0, 25), + [2847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), + [2849] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 30), + [2851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841), + [2853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0), + [2855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), + [2857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [2859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [2861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [2863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3, 0, 0), + [2865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 87), + [2867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), + [2869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3, 0, 0), + [2871] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2, 0, 0), + [2873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3, 0, 0), + [2875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [2877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1028), + [2879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [2881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), + [2883] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(336), + [2886] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, 0, 15), + [2888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [2890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1582), + [2892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [2894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 29), + [2896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [2898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1032), + [2900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 1, 0, 0), + [2902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [2904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [2906] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1, 0, 0), + [2908] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1, 0, 0), + [2910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1200), + [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1417), + [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), + [2916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, 0, 15), + [2918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(904), + [2920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [2922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), + [2924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [2926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1337), + [2928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1338), + [2930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), + [2932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 89), + [2934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1510), + [2936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1633), + [2938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1150), + [2940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1426), + [2942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1006), + [2944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1419), + [2946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1151), + [2948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), + [2950] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(991), + [2953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1433), + [2955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), + [2957] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), SHIFT_REPEAT(246), + [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1111), + [2962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), + [2964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [2966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [2968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 38), + [2970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), + [2972] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1465), + [2975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910), + [2977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [2979] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aliased_import, 3, 0, 46), + [2981] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(252), + [2984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), + [2986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), + [2988] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), SHIFT_REPEAT(1593), + [2991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1031), + [2993] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), SHIFT_REPEAT(265), + [2996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), + [2998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [3000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928), + [3002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [3004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), + [3006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), + [3008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [3010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [3012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), + [3014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1349), + [3016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(972), + [3018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [3020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(973), + [3022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [3024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), + [3026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [3028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), + [3030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [3032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [3034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 16), + [3036] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1, 0, 0), + [3038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [3040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), + [3042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), + [3044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [3046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), + [3048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [3050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), + [3052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [3054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882), + [3056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [3058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), + [3060] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2, 0, 0), + [3062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), + [3064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [3066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885), + [3068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [3070] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1029), + [3073] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), + [3075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1, 0, 0), + [3077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [3079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721), + [3081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), + [3083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1034), + [3085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1033), + [3087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1706), + [3089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [3091] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1036), + [3094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), + [3096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), + [3098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935), + [3100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), + [3102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), + [3104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [3106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [3108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1260), + [3110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1505), + [3112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [3114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724), + [3116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [3118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1010), + [3120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124), + [3122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), + [3124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), + [3126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), + [3128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [3130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), + [3132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1439), + [3134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [3136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 115), + [3138] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), SHIFT_REPEAT(1200), + [3141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), + [3143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1, 0, 0), + [3145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [3147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1263), + [3149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1312), + [3151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [3153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), + [3155] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1035), + [3158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [3160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727), + [3162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [3164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728), + [3166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [3168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, -1, 59), + [3170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730), + [3172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [3174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731), + [3176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [3178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1508), + [3180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931), + [3182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [3184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [3186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [3188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, 0, 164), + [3190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 32), + [3192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 0), + [3194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1263), + [3196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [3198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [3200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 68), + [3202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [3204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [3206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [3208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [3210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [3212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [3214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [3216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [3218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, 0, 63), + [3220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0), + [3222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 5), + [3224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1731), + [3226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1707), + [3228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1128), + [3230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1128), + [3232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 75), + [3234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [3236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [3238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 76), + [3240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, 0, 111), + [3242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, 0, 111), + [3244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, 0, 47), + [3246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 32), + [3248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1627), + [3250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1140), + [3252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 88), + [3254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1, 0, 0), + [3256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, 0, 114), + [3258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [3260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [3262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 89), + [3264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 48), + [3266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 49), + [3268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1, 0, 0), + [3270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, 0, 99), + [3272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, 0, 100), + [3274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 39), + [3276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1079), + [3278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1079), + [3280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1, 0, 0), + [3282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861), + [3284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, 0, 22), + [3286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), + [3288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939), + [3290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1, 0, 0), + [3292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1127), + [3294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1127), + [3296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 7, 0, 125), + [3298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, 0, 40), + [3300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, 0, 11), + [3302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 95), + [3304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1, 0, 0), + [3306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [3308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [3310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [3312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722), + [3314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1542), + [3316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1442), + [3318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), + [3320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648), + [3322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1180), + [3324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1275), + [3326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [3328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), + [3330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714), + [3332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1605), + [3334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [3336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), + [3338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900), + [3340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [3342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), + [3344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [3346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [3348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [3350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [3352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1306), + [3354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [3356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(930), + [3358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1293), + [3360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [3362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [3364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [3366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [3368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [3370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [3372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(987), + [3374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(993), + [3376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1366), + [3378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), + [3380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891), + [3382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1517), + [3384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711), + [3386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894), + [3388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1285), + [3390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [3392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1282), + [3394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [3396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), + [3398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), + [3400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), + [3402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [3404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906), + [3406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), + [3408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1584), + [3410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1585), + [3412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658), + [3414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933), + [3416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(937), + [3418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(938), + [3420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1379), + [3422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944), + [3424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [3426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1536), + [3428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [3430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), + [3432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), + [3434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710), + [3436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(990), + [3438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1, 0, 0), + [3440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1009), + [3442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [3444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), + [3446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [3448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), + [3450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425), + [3452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), + [3454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670), + [3456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1403), + [3458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), + [3460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [3462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669), + [3464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), + [3466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4, 0, 0), + [3468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396), + [3470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3, 0, 0), + [3472] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [3474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, 0, 25), + [3476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686), + [3478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), + [3480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1185), + [3482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), + [3484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(738), + [3486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [3488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [3490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(963), + [3492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [3494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [3496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), + [3498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947), + [3500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1314), + [3502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), + [3504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1375), + [3506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5, 0, 0), + [3508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), + [3510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943), + [3512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [3514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), + [3516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [3518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), + [3520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1053), + [3522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), + [3524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [3526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1012), + [3528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1392), + [3530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), + [3532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1397), + [3534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1398), + [3536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [3538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [3540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1334), + [3542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717), }; enum ts_external_scanner_symbol_identifiers { @@ -85011,10 +85783,10 @@ static const bool ts_external_scanner_states[12][EXTERNAL_TOKEN_COUNT] = { [ts_external_token__string_start] = true, }, [8] = { - [ts_external_token__string_start] = true, + [ts_external_token__template_string_start] = true, }, [9] = { - [ts_external_token__template_string_start] = true, + [ts_external_token__string_start] = true, }, [10] = { [ts_external_token__newline] = true, From 91d4cf662436a7f22cb4e16382974a9c176ca7f7 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 16:07:25 +0000 Subject: [PATCH 108/208] Python: Update `python.tsg` First, we extend the various location overriding hacks to also accept list and dict splats in various places. Having done this, we then have to tackle how to actually desugar these new comprehension forms (as this is what we currently do for the old forms). As a reminder, a list comprehension like `[x for x in y]` currently gets desugared into a small local function, something like ```python def listcomp(a): for x in a: yield x listcomp(y) ``` For `[*x for x in y]`, the behaviour we want is that we unpack `x` before yielding its elements in turn. This is essentially what we would get if we were to use `yield from x` instead of `yield x` in the above desugaring, so that's what we do. This also works for set comprehensions. For dict comprehensions, it's slightly more complicated. Here, the generator function instead yields a stream of `(key, value)` tuples. (And apparently the old parser got this wrong and emitted `(value, key)` pairs instead, which we faithfully recreated in the new parser as well. We fix that bug in both parsers while we're at it). So, a bare `yield from` is not enough, we also need a `.items()` call to get the double-starred expression to emit its items as a stream of tuples (that we then `yield from`. To make this (hopefully) less verbose in the implementation, we defer the decision of whether to use `yield` or `yield from` by introducing a `yield_kind` scoped variable that determines the type of the actual AST node. And of course for dict comprehensions with unpacking we need to synthesise the extra machinery mentioned above. On the plus side, this means we don't have to mess with control-flow, as the existing machinery should be able to handle the desugared syntax just fine. --- python/extractor/tsg-python/python.tsg | 78 ++++++++++++++++++++++---- 1 file changed, 66 insertions(+), 12 deletions(-) diff --git a/python/extractor/tsg-python/python.tsg b/python/extractor/tsg-python/python.tsg index 93d6e95a344..e0aadd5432c 100644 --- a/python/extractor/tsg-python/python.tsg +++ b/python/extractor/tsg-python/python.tsg @@ -403,7 +403,7 @@ ;;; GeneratorExp -(generator_expression . "(" . (comment)* . (expression) @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @generatorexp +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @generatorexp { attr (@generatorexp.node) _location_start = (location-start @start) attr (@generatorexp.node) _location_end = (location-end @end) @@ -415,13 +415,13 @@ attr (@if.node) _location_end = (location-end @expr) } -(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @child [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @_genexpr +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start (for_in_clause) @child [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @_genexpr { attr (@child.node) _location_start = (location-start @start) attr (@child.node) _location_end = (location-end @end) } -(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @end . (comment)* . ")" .) @_genexpr +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start (for_in_clause) @end . (comment)* . ")" .) @_genexpr { attr (@end.node) _location_start = (location-start @start) attr (@end.node) _location_end = (location-end @end) @@ -824,6 +824,29 @@ attr (@genexpr.arg_use) ctx = "load" } +; DictComp with unpacking (PEP 798): `{**d for d in dicts}` +(dictionary_comprehension + body: (dictionary_splat) +) @genexpr +{ + let @genexpr.fun = (ast-node @genexpr "Function") + attr (@genexpr.node) function = @genexpr.fun + attr (@genexpr.fun) name = "dictcomp" + + let @genexpr.arg = (ast-node @genexpr "Name") + attr (@genexpr.arg) variable = ".0" + attr (@genexpr.arg) ctx = "param" + + edge @genexpr.fun -> @genexpr.arg + attr (@genexpr.fun -> @genexpr.arg) args = 0 + attr (@genexpr.fun) kwonlyargs = #null + attr (@genexpr.fun) kwarg = #null + + let @genexpr.arg_use = (ast-node @genexpr "Name") + attr (@genexpr.arg_use) variable = ".0" + attr (@genexpr.arg_use) ctx = "load" +} + ;;;;;; End of DictComp (`{a: b for c in d if e}`) ;;;;;; GeneratorExp (`(a for b in c if d)`) @@ -862,7 +885,7 @@ ; information for the entire generator expression (yes, it is a wide parameter!) and so we must recreate the logic for ; setting this location information correctly. -(generator_expression . "(" . (comment)* . (expression) @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @genexpr +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @genexpr { ; Synthesize the `genexpr` function let @genexpr.fun = (ast-node @genexpr "Function") @@ -1034,12 +1057,25 @@ ; For everything except dictionary comprehensions, the innermost expression is just the `body` of the ; comprehension. [ - (generator_expression body: (_) @body) @genexpr - (list_comprehension body: (_) @body) @genexpr - (set_comprehension body: (_) @body) @genexpr + (generator_expression body: (expression) @body) @genexpr + (list_comprehension body: (expression) @body) @genexpr + (set_comprehension body: (expression) @body) @genexpr ] { let @genexpr.result = @body.node + let @genexpr.yield_kind = "Yield" +} + +; For starred comprehensions (PEP 798), the result is the inner expression (not the Starred +; wrapper), and we use `yield from` instead of `yield` to represent the unpacking semantics. +[ + (generator_expression body: (list_splat (expression) @inner) @_body) @genexpr + (list_comprehension body: (list_splat (expression) @inner) @_body) @genexpr + (set_comprehension body: (list_splat (expression) @inner) @_body) @genexpr +] +{ + let @genexpr.result = @inner.node + let @genexpr.yield_kind = "YieldFrom" } ; For dict comprehensions, we build an explicit tuple using the key and value pair. @@ -1052,13 +1088,31 @@ { let tuple = (ast-node @body "Tuple") edge tuple -> @key.node - attr (tuple -> @key.node) elts = 1 + attr (tuple -> @key.node) elts = 0 edge tuple -> @value.node - attr (tuple -> @value.node) elts = 0 - ; TODO verify that it is correct to use a `(value, key)` tuple, and not a `(key, value)` tuple above. - ; That is what the current parser does... + attr (tuple -> @value.node) elts = 1 attr (tuple) ctx = "load" let @genexpr.result = tuple + let @genexpr.yield_kind = "Yield" +} + +; For dict comprehensions with unpacking (PEP 798), `{**d for d in dicts}` desugars to +; `yield from d.items()` to produce (key, value) tuples consistent with the regular dict comp model. +(dictionary_comprehension + body: (dictionary_splat (expression) @inner) @_body +) @genexpr +{ + ; Synthesize `d.items()`: Attribute(value=d, attr='items') then Call(func=attr) + let attr = (ast-node @inner "Attribute") + attr (attr) value = @inner.node + attr (attr) attr = "items" + attr (attr) ctx = "load" + + let call = (ast-node @inner "Call") + attr (call) func = attr + + let @genexpr.result = call + let @genexpr.yield_kind = "YieldFrom" } ; For the final clause, we need to hook it up with the rest of the expression. @@ -1094,7 +1148,7 @@ let last = (get-last-element @last_candidates) let expr = (ast-node @body "Expr") - let yield = (ast-node @body "Yield") + let yield = (ast-node @body @genexpr.yield_kind) let @genexpr.expr = expr let @genexpr.yield = yield From 90b64616f79b77f1a3f9de6e4f43090a561fe3f0 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 16:08:30 +0000 Subject: [PATCH 109/208] Python: Also fix `(value, key)` bug in old parser --- python/extractor/semmle/python/parser/ast.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/extractor/semmle/python/parser/ast.py b/python/extractor/semmle/python/parser/ast.py index 85d87108e35..e1843131554 100644 --- a/python/extractor/semmle/python/parser/ast.py +++ b/python/extractor/semmle/python/parser/ast.py @@ -1432,7 +1432,7 @@ def rewrite_comp(node): elt = node.elt del node.elt else: - elt = ast.Tuple([node.value, node.key], LOAD) + elt = ast.Tuple([node.key, node.value], LOAD) elt.lineno = node.key.lineno elt.col_offset = node.key.col_offset elt._end = node.value._end From fc5b3562c395680208879fb82e58589cbe558707 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 16:08:45 +0000 Subject: [PATCH 110/208] Python: Add parser test for comprehensions with unpacking --- .../unpacking_in_comprehensions_new.expected | 285 ++++++++++++++++++ .../parser/unpacking_in_comprehensions_new.py | 19 ++ 2 files changed, 304 insertions(+) create mode 100644 python/extractor/tests/parser/unpacking_in_comprehensions_new.expected create mode 100644 python/extractor/tests/parser/unpacking_in_comprehensions_new.py diff --git a/python/extractor/tests/parser/unpacking_in_comprehensions_new.expected b/python/extractor/tests/parser/unpacking_in_comprehensions_new.expected new file mode 100644 index 00000000000..a95d0bc2505 --- /dev/null +++ b/python/extractor/tests/parser/unpacking_in_comprehensions_new.expected @@ -0,0 +1,285 @@ +Module: [4, 0] - [20, 0] + body: [ + Expr: [4, 0] - [4, 15] + value: + ListComp: [4, 0] - [4, 15] + elt: None + generators: None + function: + Function: [4, 0] - [4, 15] + name: 'listcomp' + type_parameters: [] + args: [ + Name: [4, 0] - [4, 15] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [4, 0] - [4, 15] + target: + Name: [4, 8] - [4, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [4, 0] - [4, 15] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [4, 1] - [4, 3] + value: + YieldFrom: [4, 1] - [4, 3] + value: + Name: [4, 2] - [4, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + iterable: + Name: [4, 13] - [4, 14] + variable: Variable('y', None) + ctx: Load + Expr: [7, 0] - [7, 15] + value: + SetComp: [7, 0] - [7, 15] + elt: None + generators: None + function: + Function: [7, 0] - [7, 15] + name: 'setcomp' + type_parameters: [] + args: [ + Name: [7, 0] - [7, 15] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [7, 0] - [7, 15] + target: + Name: [7, 8] - [7, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [7, 0] - [7, 15] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [7, 1] - [7, 3] + value: + YieldFrom: [7, 1] - [7, 3] + value: + Name: [7, 2] - [7, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + iterable: + Name: [7, 13] - [7, 14] + variable: Variable('y', None) + ctx: Load + Expr: [10, 0] - [10, 20] + value: + DictComp: [10, 0] - [10, 20] + key: None + value: None + generators: None + function: + Function: [10, 0] - [10, 20] + name: 'dictcomp' + type_parameters: [] + args: [ + Name: [10, 0] - [10, 20] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [10, 0] - [10, 20] + target: + Name: [10, 9] - [10, 10] + variable: Variable('d', None) + ctx: Store + iter: + Name: [10, 0] - [10, 20] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [10, 1] - [10, 4] + value: + YieldFrom: [10, 1] - [10, 4] + value: + Call: [10, 3] - [10, 4] + func: + Attribute: [10, 3] - [10, 4] + value: + Name: [10, 3] - [10, 4] + variable: Variable('d', None) + ctx: Load + attr: 'items' + ctx: Load + positional_args: [] + named_args: [] + ] + orelse: None + ] + iterable: + Name: [10, 14] - [10, 19] + variable: Variable('dicts', None) + ctx: Load + Expr: [13, 0] - [13, 15] + value: + GeneratorExp: [13, 1] - [13, 14] + elt: None + generators: None + function: + Function: [13, 1] - [13, 14] + name: 'genexpr' + type_parameters: [] + args: [ + Name: [13, 1] - [13, 14] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [13, 1] - [13, 14] + target: + Name: [13, 8] - [13, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [13, 1] - [13, 14] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [13, 1] - [13, 3] + value: + YieldFrom: [13, 1] - [13, 3] + value: + Name: [13, 2] - [13, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + iterable: + Name: [13, 13] - [13, 14] + variable: Variable('y', None) + ctx: Load + parenthesised: True + Expr: [16, 0] - [16, 20] + value: + ListComp: [16, 0] - [16, 20] + elt: None + generators: None + function: + Function: [16, 0] - [16, 20] + name: 'listcomp' + type_parameters: [] + args: [ + Name: [16, 0] - [16, 20] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [16, 0] - [16, 20] + target: + Name: [16, 8] - [16, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [16, 0] - [16, 20] + variable: Variable('.0', None) + ctx: Load + body: [ + If: [16, 18] - [16, 19] + test: + Name: [16, 18] - [16, 19] + variable: Variable('x', None) + ctx: Load + body: [ + Expr: [16, 1] - [16, 3] + value: + YieldFrom: [16, 1] - [16, 3] + value: + Name: [16, 2] - [16, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + orelse: None + ] + iterable: + Name: [16, 13] - [16, 14] + variable: Variable('y', None) + ctx: Load + Expr: [19, 0] - [19, 26] + value: + ListComp: [19, 0] - [19, 26] + elt: None + generators: None + function: + Function: [19, 0] - [19, 26] + name: 'listcomp' + type_parameters: [] + args: [ + Name: [19, 0] - [19, 26] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [19, 0] - [19, 26] + target: + Name: [19, 8] - [19, 9] + variable: Variable('y', None) + ctx: Store + iter: + Name: [19, 0] - [19, 26] + variable: Variable('.0', None) + ctx: Load + body: [ + For: [19, 0] - [19, 26] + target: + Name: [19, 19] - [19, 20] + variable: Variable('x', None) + ctx: Store + iter: + Name: [19, 24] - [19, 25] + variable: Variable('y', None) + ctx: Load + body: [ + Expr: [19, 1] - [19, 3] + value: + YieldFrom: [19, 1] - [19, 3] + value: + Name: [19, 2] - [19, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + orelse: None + ] + iterable: + Name: [19, 13] - [19, 14] + variable: Variable('z', None) + ctx: Load + ] diff --git a/python/extractor/tests/parser/unpacking_in_comprehensions_new.py b/python/extractor/tests/parser/unpacking_in_comprehensions_new.py new file mode 100644 index 00000000000..024e0fe1cea --- /dev/null +++ b/python/extractor/tests/parser/unpacking_in_comprehensions_new.py @@ -0,0 +1,19 @@ +# PEP 798: Unpacking in comprehensions + +# Star unpacking in list comprehension +[*x for x in y] + +# Star unpacking in set comprehension +{*x for x in y} + +# Double-star unpacking in dict comprehension +{**d for d in dicts} + +# Star unpacking in generator expression +(*x for x in y) + +# With conditions +[*x for x in y if x] + +# Multiple for clauses +[*x for y in z for x in y] From de900fc3b5b72edaa9af96f3353929c69d16b86a Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 16:09:18 +0000 Subject: [PATCH 111/208] Python: Add QL test for comprehensions with unpacking --- .../unpacking-comprehensions/test.expected | 4 ++++ .../extractor-tests/unpacking-comprehensions/test.py | 12 ++++++++++++ .../extractor-tests/unpacking-comprehensions/test.ql | 12 ++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 python/ql/test/3/extractor-tests/unpacking-comprehensions/test.expected create mode 100644 python/ql/test/3/extractor-tests/unpacking-comprehensions/test.py create mode 100644 python/ql/test/3/extractor-tests/unpacking-comprehensions/test.ql diff --git a/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.expected b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.expected new file mode 100644 index 00000000000..ec8cc352df4 --- /dev/null +++ b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.expected @@ -0,0 +1,4 @@ +| 3 | ListComp | +| 5 | SetComp | +| 7 | DictComp | +| 9 | GeneratorExp | diff --git a/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.py b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.py new file mode 100644 index 00000000000..44c8b1ec0ba --- /dev/null +++ b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.py @@ -0,0 +1,12 @@ +# PEP 798: Unpacking in comprehensions + +flat_list = [*x for x in nested] + +flat_set = {*x for x in nested} + +merged = {**d for d in dicts} + +gen = (*x for x in nested) + +# Force the new parser (the old parser cannot handle lazy imports) +lazy import _pep798_parser_hint diff --git a/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.ql b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.ql new file mode 100644 index 00000000000..23c08f720ff --- /dev/null +++ b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.ql @@ -0,0 +1,12 @@ +import python + +from Expr e +where + e.getLocation().getFile().getShortName() = "test.py" and + ( + e instanceof ListComp or + e instanceof SetComp or + e instanceof DictComp or + e instanceof GeneratorExp + ) +select e.getLocation().getStartLine(), e.toString() From 15790aa00cc8241416630e1fbe378343b1241aea Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 16:12:15 +0000 Subject: [PATCH 112/208] Python: Add change note --- .../2026-04-10-support-comprehension-unpacking.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 python/ql/lib/change-notes/2026-04-10-support-comprehension-unpacking.md diff --git a/python/ql/lib/change-notes/2026-04-10-support-comprehension-unpacking.md b/python/ql/lib/change-notes/2026-04-10-support-comprehension-unpacking.md new file mode 100644 index 00000000000..d7406d0a606 --- /dev/null +++ b/python/ql/lib/change-notes/2026-04-10-support-comprehension-unpacking.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +- The Python extractor now supports unpacking in comprehensions, e.g. `[*x for x in nested]` (as defined in [PEP-798](https://peps.python.org/pep-0798/)) that will be part of Python 3.15. From 8b1ecf05c950eb68f1b0eea314bac25fb88ddc79 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 10 Apr 2026 20:43:42 +0000 Subject: [PATCH 113/208] Python: Update test output This change reflects the `(value, key)` to `(key, value)` fix in an earlier commit. --- python/ql/test/library-tests/comprehensions/Flow.expected | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/ql/test/library-tests/comprehensions/Flow.expected b/python/ql/test/library-tests/comprehensions/Flow.expected index efcf64bfb9f..8262e3e0468 100644 --- a/python/ql/test/library-tests/comprehensions/Flow.expected +++ b/python/ql/test/library-tests/comprehensions/Flow.expected @@ -36,13 +36,13 @@ | 11 | ControlFlowNode for For | 11 | Exit node for Function dictcomp | | 11 | ControlFlowNode for For | 13 | ControlFlowNode for Tuple | | 11 | Entry node for Function dictcomp | 11 | ControlFlowNode for .0 | -| 12 | ControlFlowNode for Attribute | 12 | ControlFlowNode for Tuple | +| 12 | ControlFlowNode for Attribute | 12 | ControlFlowNode for z | | 12 | ControlFlowNode for Tuple | 12 | ControlFlowNode for Yield | | 12 | ControlFlowNode for Yield | 11 | ControlFlowNode for For | | 12 | ControlFlowNode for y | 12 | ControlFlowNode for Attribute | | 12 | ControlFlowNode for z | 12 | ControlFlowNode for z() | -| 12 | ControlFlowNode for z() | 12 | ControlFlowNode for y | +| 12 | ControlFlowNode for z() | 12 | ControlFlowNode for Tuple | | 13 | ControlFlowNode for Tuple | 13 | ControlFlowNode for y | | 13 | ControlFlowNode for y | 13 | ControlFlowNode for z | -| 13 | ControlFlowNode for z | 12 | ControlFlowNode for z | +| 13 | ControlFlowNode for z | 12 | ControlFlowNode for y | | 14 | ControlFlowNode for mapping | 11 | ControlFlowNode for DictComp | From 9ef088d4233ce2a12aa614caa5b63ade3fa017b3 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 14 Apr 2026 13:46:43 +0200 Subject: [PATCH 114/208] C++: Add change note --- cpp/ql/lib/change-notes/2026-04-14-throwing.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-04-14-throwing.md diff --git a/cpp/ql/lib/change-notes/2026-04-14-throwing.md b/cpp/ql/lib/change-notes/2026-04-14-throwing.md new file mode 100644 index 00000000000..6a15437e126 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-04-14-throwing.md @@ -0,0 +1,5 @@ +--- +category: breaking +--- +* The deprecated `NonThrowingFunction` class has been removed, use `NonCppThrowingFunction` instead. +* The deprecated `ThrowingFunction` class has been removed, use `AlwaysSehThrowingFunction` instead. From 878cfd720ca909b35c25b5caecf09b32deb811f2 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 14 Apr 2026 14:41:28 +0200 Subject: [PATCH 115/208] C#: Use inline test expectations --- .../Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs | 2 +- .../Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs index a61eba16f14..9655a5a0fa9 100644 --- a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs @@ -12,7 +12,7 @@ class MissedSelectOpportunity { int j = i * i; Console.WriteLine(j); - } + } // $ Alert } public async Task M2(IEnumerable counters) diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref index 8056fd74c47..722d8489680 100644 --- a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref @@ -1 +1,2 @@ -Linq/MissedSelectOpportunity.ql +query: Linq/MissedSelectOpportunity.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql From 467933bbb1118913d2518749fbd5c6fe7e8460ca Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 14 Apr 2026 15:45:14 +0200 Subject: [PATCH 116/208] Rust: Also add specialized `IndexMut` implementations --- rust/tools/builtins/impls.rs | 52 ++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/rust/tools/builtins/impls.rs b/rust/tools/builtins/impls.rs index 3bc028a51a6..facffd70005 100644 --- a/rust/tools/builtins/impls.rs +++ b/rust/tools/builtins/impls.rs @@ -30,8 +30,8 @@ /// } /// ``` /// -/// which the type inference library cannot currently handle (we fail -/// to resolve the `Output` types). +/// (as well as their `IndexMut` counterparts), which the type inference library +/// cannot currently handle (we fail to resolve the `Output` types). mod index_impls { use std::alloc::Allocator; use std::ops::Index; @@ -44,6 +44,14 @@ mod index_impls { } } + impl IndexMut for [T; N] { + type Output = T; + + fn index_mut(&mut self, index: i32) -> &mut Self::Output { + panic!() + } + } + impl Index for [T; N] { type Output = T; @@ -52,6 +60,14 @@ mod index_impls { } } + impl IndexMut for [T; N] { + type Output = T; + + fn index_mut(&mut self, index: usize) -> &mut Self::Output { + panic!() + } + } + impl Index for [T] { type Output = T; @@ -60,6 +76,14 @@ mod index_impls { } } + impl IndexMut for [T] { + type Output = T; + + fn index_mut(&mut self, index: i32) -> &mut Self::Output { + panic!() + } + } + impl Index for [T] { type Output = T; @@ -68,6 +92,14 @@ mod index_impls { } } + impl IndexMut for [T] { + type Output = T; + + fn index_mut(&mut self, index: usize) -> &mut Self::Output { + panic!() + } + } + impl Index for Vec { type Output = T; @@ -76,6 +108,14 @@ mod index_impls { } } + impl IndexMut for Vec { + type Output = T; + + fn index_mut(&mut self, index: i32) -> &mut Self::Output { + panic!() + } + } + impl Index for Vec { type Output = T; @@ -83,4 +123,12 @@ mod index_impls { panic!() } } + + impl IndexMut for Vec { + type Output = T; + + fn index_mut(&mut self, index: usize) -> &mut Self::Output { + panic!() + } + } } From f02ccd36cc3311a7e0366a9770a80a09e2fb3ad4 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 21 Feb 2026 22:34:28 +0000 Subject: [PATCH 117/208] (Trivial) Remove trailing spaces in some docs --- .../customizing-library-models-for-go.rst | 6 +++--- .../customizing-library-models-for-python.rst | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index c5b74ccd73a..946ee1937b4 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -171,7 +171,7 @@ We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, s pack: codeql/go-all extensible: summaryModel data: - - ["slices", "", False, "Max", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] + - ["slices", "", False, "Max", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. The first row defines flow from the first argument (``a`` in the example) to the return value (``max`` in the example). @@ -307,7 +307,7 @@ This example shows how the Go query pack models flow through a method for a simp host := u.Hostname() // There is taint flow from u to host. ... } - + We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: .. code-block:: yaml @@ -387,7 +387,7 @@ Note that packages hosted at ``gopkg.in`` use a slightly different syntax: the m To write models that only apply to ``github.com/couchbase/gocb/v2``, it is sufficient to include the major version suffix (``/v2``) in the package column. To write models that only apply to ``github.com/couchbase/gocb``, you may prefix the package column with ``fixed-version:``. For example, here are two models for a method that has changed name from v1 to v2. .. code-block:: yaml - + extensions: - addsTo: pack: codeql/go-all diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 30888f7b609..69e6355e209 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -9,7 +9,7 @@ Python analysis can be customized by adding library models in data extension fil A data extension for Python is a YAML file of the form: -.. code-block:: yaml +.. code-block:: yaml extensions: - addsTo: @@ -177,7 +177,7 @@ Note that this source is already known by the CodeQL Python analysis, but for th The **!** at the end of the type name indicates that we are looking for the class itself rather than instances of this class. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - + - **Call** selects calls to the class. That is, constructor calls. - **Argument[0,upload_to:]** selects the first positional argument, or the named argument named **upload_to**. Note that the colon at the end of the argument name indicates that we are looking for a named argument. - **Parameter[1]** selects the second parameter of the callback function, which is the parameter receiving the filename. From ef9136c0539d8002730ab79d62760b5f5972797c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 20 Mar 2026 14:59:38 +0000 Subject: [PATCH 118/208] (Formatting) Remove erroneous bullet point in ruby docs --- .../customizing-library-models-for-ruby.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index 23a6bd419f5..246f77db843 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -182,7 +182,7 @@ We can model this using the following data extension: - Since we're adding flow through a method call, we add a tuple to the **summaryModel** extensible predicate. - The first column, **"URI!"**, begins the search for relevant calls at references to the **URI** class. -- The **!** suffix indicates that we are looking for the class itself, rather than instances of the class. + The **!** suffix indicates that we are looking for the class itself, rather than instances of the class. - The second column, **Method[decode_uri_component]**, is a path leading to the method calls we wish to model. In this case, we select references to the **decode_uri_component** method from the **URI** class. - The third column, **Argument[0]**, indicates the input of the flow. In this case, the first argument to the method call. From 05e3073165021fa2bf235f146d415ecd9ba0694f Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 21 Feb 2026 23:12:21 +0000 Subject: [PATCH 119/208] List extensible predicates for barriers and barrier guards --- .../customizing-library-models-for-cpp.rst | 2 ++ .../customizing-library-models-for-csharp.rst | 2 ++ .../customizing-library-models-for-go.rst | 2 ++ .../customizing-library-models-for-java-and-kotlin.rst | 2 ++ .../customizing-library-models-for-javascript.rst | 2 ++ .../customizing-library-models-for-python.rst | 2 ++ .../customizing-library-models-for-ruby.rst | 2 ++ 7 files changed, 14 insertions(+) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index 29e8be5a4ae..1fd14d9d6f8 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -58,6 +58,8 @@ The CodeQL library for CPP analysis exposes the following extensible predicates: - ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. The extensible predicates are populated using the models defined in data extension files. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index 39b5ee30ee4..355a521e910 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -58,6 +58,8 @@ The CodeQL library for C# analysis exposes the following extensible predicates: - ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(namespace, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index 946ee1937b4..8bee130ddc2 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -58,6 +58,8 @@ The CodeQL library for Go analysis exposes the following extensible predicates: - ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 7f0a41b3040..dafd0213b87 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -63,6 +63,8 @@ The CodeQL library for Java and Kotlin analysis exposes the following extensible - ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data maybe used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) override generated summary models (those with a provenance such as ``df-generated``) so that the summary will be ignored. Other than that, neutral models have a slight impact on the dataflow dispatch logic, which is out of scope for this documentation. The extensible predicates are populated using the models defined in data extension files. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index b8f064c7574..7fea38b05c2 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -26,6 +26,8 @@ The CodeQL library for JavaScript exposes the following extensible predicates: - **sinkModel**\(type, path, kind) - **typeModel**\(type1, type2, path) - **summaryModel**\(type, path, input, output, kind) +- **barrierModel**\(type, path, kind) +- **barrierGuardModel**\(type, path, branch, kind) We'll explain how to use these using a few examples, and provide some reference material at the end of this article. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 69e6355e209..9fdefa696b8 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -26,6 +26,8 @@ The CodeQL library for Python exposes the following extensible predicates: - **sinkModel**\(type, path, kind) - **typeModel**\(type1, type2, path) - **summaryModel**\(type, path, input, output, kind) +- **barrierModel**\(type, path, kind) +- **barrierGuardModel**\(type, path, branch, kind) We'll explain how to use these using a few examples, and provide some reference material at the end of this article. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index 246f77db843..227a178bf8e 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -27,6 +27,8 @@ The CodeQL library for Ruby exposes the following extensible predicates: - **sinkModel**\(type, path, kind) - **typeModel**\(type1, type2, path) - **summaryModel**\(type, path, input, output, kind) +- **barrierModel**\(type, path, kind) +- **barrierGuardModel**\(type, path, branch, kind) We'll explain how to use these using a few examples, and provide some reference material at the end of this article. From 415330d5eb383d19da05a9892218f1bcc5e0de9b Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 20 Jan 2026 14:40:44 +0000 Subject: [PATCH 120/208] Update docs for barriers and barrier guards --- .../customizing-library-models-for-cpp.rst | 82 ++++++++++++++++++ .../customizing-library-models-for-csharp.rst | 84 ++++++++++++++++++ .../customizing-library-models-for-go.rst | 82 ++++++++++++++++++ ...ing-library-models-for-java-and-kotlin.rst | 85 +++++++++++++++++++ ...tomizing-library-models-for-javascript.rst | 55 ++++++++++++ .../customizing-library-models-for-python.rst | 60 +++++++++++++ .../customizing-library-models-for-ruby.rst | 59 +++++++++++++ 7 files changed, 507 insertions(+) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index 1fd14d9d6f8..a96fd6ea352 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -178,6 +178,88 @@ The remaining values are used to define the input and output specifications, the - The ninth value ``"taint"`` is the kind of the flow. ``taint`` means that taint is propagated through the call. - The tenth value ``"manual"`` is the provenance of the summary, which is used to identify the origin of the summary model. +Example: Taint barrier using the ``mysql_real_escape_string`` function +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This example shows how the CPP query pack models the ``mysql_real_escape_string`` function as a barrier for SQL injection. +This function escapes special characters in a string for use in an SQL statement, which prevents SQL injection attacks. + +.. code-block:: cpp + + char *query = "SELECT * FROM users WHERE name = '%s'"; + char *name = get_untrusted_input(); + char *escaped_name = new char[2 * strlen(name) + 1]; + mysql_real_escape_string(mysql, escaped_name, name, strlen(name)); // The escaped_name is safe for SQL injection. + sprintf(query_buffer, query, escaped_name); + +We need to add a tuple to the ``barrierModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/cpp-all + extensible: barrierModel + data: + - ["", "", False, "mysql_real_escape_string", "", "", "Argument[*1]", "sql-injection", "manual"] + +Since we are adding a barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. +The first five values identify the callable (in this case a free function) to be modeled as a barrier. + +- The first value ``""`` is the namespace name. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. +- The third value ``False`` is a flag that indicates whether or not the barrier also applies to all overrides of the method. For a free function, this should be ``False``. +- The fourth value ``"mysql_real_escape_string"`` is the function name. +- The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the output specification, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``"Argument[*1]"`` is the output specification, which means in this case that the barrier is the first indirection (or pointed-to value, ``*``) of the second argument (``Argument[1]``) passed to the function. +- The eighth value ``"sql-injection"`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. +- The ninth value ``"manual"`` is the provenance of the barrier, which is used to identify the origin of the barrier model. + +Example: Add a barrier guard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +A barrier guard model is used when a function returns a boolean that indicates whether the data is safe to use. +Consider a function called ``is_safe`` which returns ``true`` when the data is considered safe. + +.. code-block:: cpp + + if (is_safe(user_input)) { // The check guards the use, so the input is safe. + mysql_query(user_input); // This is safe. + } + +We need to add a tuple to the ``barrierGuardModel``\(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/cpp-all + extensible: barrierGuardModel + data: + - ["", "", False, "is_safe", "", "", "Argument[*0]", "true", "sql-injection", "manual"] + +Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. +The first five values identify the callable (in this case a free function) to be modeled as a barrier guard. + +- The first value ``""`` is the namespace name. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. +- The third value ``False`` is a flag that indicates whether or not the barrier guard also applies to all overrides of the method. For a free function, this should be ``False``. +- The fourth value ``"is_safe"`` is the function name. +- The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the input specification, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[*0]`` is the input specification (the value being validated). In this case, the first indirection (or pointed-to value, ``*``) of the first argument (``Argument[0]``) passed to the function. +- The eighth value ``true`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The ninth value ``sql-injection`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + .. _threat-models-cpp: Threat models diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index 355a521e910..bec5d55e95c 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -309,6 +309,90 @@ For the remaining values for both rows: That is, the first row specifies that values can flow from the elements of the qualifier enumerable into the first argument of the function provided to ``Select``. The second row specifies that values can flow from the return value of the function to the elements of the enumerable returned from ``Select``. +Example: Add a barrier for the ``RawUrl`` property +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how we can model a property as a barrier for a specific kind of query. +A barrier model is used to define that the flow of taint stops at the modeled element for the specified kind of query. +Here we model the getter of the ``RawUrl`` property of the ``HttpRequest`` class as a barrier for URL redirection queries. +The ``RawUrl`` property returns the raw URL of the current request, which is considered safe for URL redirects because it is the URL of the current request and cannot be manipulated by an attacker. + +.. code-block:: csharp + + public static void TaintBarrier(HttpRequest request) { + string url = request.RawUrl; // The return value of this property is considered safe for URL redirects. + Response.Redirect(url); // This is not a URL redirection vulnerability. + } + +We need to add a tuple to the ``barrierModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/csharp-all + extensible: barrierModel + data: + - ["System.Web", "HttpRequest", False, "get_RawUrl", "()", "", "ReturnValue", "url-redirection", "manual"] + +Since we are adding a barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. +The first five values identify the callable (in this case the getter of a property) to be modeled as a barrier. + +- The first value ``System.Web`` is the namespace name. +- The second value ``HttpRequest`` is the class (type) name. +- The third value ``False`` is a flag that indicates whether or not the barrier also applies to all overrides of the method. +- The fourth value ``get_RawUrl`` is the method name. Getter and setter methods are named ``get_`` and ``set_`` respectively. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``ReturnValue`` is the access path to the return value of the property getter, which means that the return value is considered safe. +- The eighth value ``url-redirection`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. In this case - the URL redirection queries. +- The ninth value ``manual`` is the provenance of the barrier, which is used to identify the origin of the barrier. + +Example: Add a barrier guard for the ``IsAbsoluteUri`` property +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how we can model a property as a barrier guard for a specific kind of query. +A barrier guard model is used to stop the flow of taint when a conditional check is performed on data. +Here we model the getter of the ``IsAbsoluteUri`` property of the ``Uri`` class as a barrier guard for URL redirection queries. +When the ``IsAbsoluteUri`` property returns ``false``, the URL is relative and therefore safe for URL redirects because it cannot redirect to an external site controlled by an attacker. + +.. code-block:: csharp + + public static void TaintBarrierGuard(Uri uri) { + if (!uri.IsAbsoluteUri) { // The check guards the redirect, so the URL is safe. + Response.Redirect(uri.ToString()); // This is not a URL redirection vulnerability. + } + } + +We need to add a tuple to the ``barrierGuardModel``\(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/csharp-all + extensible: barrierGuardModel + data: + - ["System", "Uri", False, "get_IsAbsoluteUri", "()", "", "Argument[this]", "false", "url-redirection", "manual"] + +Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. +The first five values identify the callable (in this case the getter of a property) to be modeled as a barrier guard. + +- The first value ``System`` is the namespace name. +- The second value ``Uri`` is the class (type) name. +- The third value ``False`` is a flag that indicates whether or not the barrier guard also applies to all overrides of the method. +- The fourth value ``get_IsAbsoluteUri`` is the method name. Getter and setter methods are named ``get_`` and ``set_`` respectively. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access path``, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[this]`` is the access path to the input whose flow is blocked. In this case, the qualifier of the property access (``uri`` in the example). +- The eighth value ``false`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``IsAbsoluteUri`` is ``false``, the URL is relative and considered safe. +- The ninth value ``url-redirection`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. In this case - the URL redirection queries. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + Example: Add a ``neutral`` method ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how we can model a method as being neutral with respect to flow. We will also cover how to model a property by modeling the getter of the ``Now`` property of the ``DateTime`` class as neutral. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index 8bee130ddc2..cfa87f2f736 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -341,6 +341,88 @@ The remaining values are used to define the ``access path``, the ``kind``, and t - The ninth value ``taint`` is the kind of the flow. ``taint`` means that taint is propagated through the call. - The tenth value ``manual`` is the provenance of the summary, which is used to identify the origin of the summary. +Example: Add a barrier using the ``Htmlquote`` function +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how the Go query pack models a barrier that stops the flow of taint. +The ``Htmlquote`` function from the beego framework HTML-escapes a string, which prevents HTML injection attacks. + +.. code-block:: go + + func Render(w http.ResponseWriter, r *http.Request) { + name := r.FormValue("name") + safe := beego.Htmlquote(name) // The return value of this function is safe to use in HTML. + ... + } + +We need to add a tuple to the ``barrierModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/go-all + extensible: barrierModel + data: + - ["group:beego", "", True, "Htmlquote", "", "", "ReturnValue", "html-injection", "manual"] + +Since we are adding a barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. +The first five values identify the function to be modeled as a barrier. + +- The first value ``group:beego`` is the package group name. The ``group:`` prefix indicates that this is a package group, which is used to match multiple package paths that refer to the same package. +- The second value ``""`` is left blank since the function is not a method of a type. +- The third value ``True`` is a flag that indicates whether or not the barrier also applies to subtypes. This has no effect for non-method functions. +- The fourth value ``Htmlquote`` is the function name. +- The fifth value ``""`` is the input type signature. For Go it should always be an empty string. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``ReturnValue`` is the access path to the output of the barrier, which means that the return value is considered sanitized. +- The eighth value ``html-injection`` is the kind of the barrier. The barrier kind must match the kind used in the query where the barrier should take effect. In this case, it matches the ``html-injection`` sink kind used by XSS queries. +- The ninth value ``manual`` is the provenance of the barrier, which is used to identify the origin of the barrier. + +Example: Add a barrier guard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +A barrier guard model is used when a function returns a boolean that indicates whether the data is safe to use. +Consider a function called ``IsSafe`` which returns ``true`` when the data is considered safe for SQL injection. + +.. code-block:: go + + func Query(db *sql.DB, input string) { + if example.IsSafe(input) { // The check guards the query, so the input is safe. + db.Query(input) // This is not a SQL injection vulnerability. + } + } + +We need to add a tuple to the ``barrierGuardModel``\(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/go-all + extensible: barrierGuardModel + data: + - ["example.com/example", "", False, "IsSafe", "", "", "Argument[0]", "true", "sql-injection", "manual"] + +Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. +The first five values identify the function to be modeled as a barrier guard. + +- The first value ``example.com/example`` is the package name. +- The second value ``""`` is left blank since the function is not a method of a type. +- The third value ``False`` is a flag that indicates whether or not the barrier guard also applies to subtypes. This has no effect for non-method functions. +- The fourth value ``IsSafe`` is the function name. +- The fifth value ``""`` is the input type signature. For Go it should always be an empty string. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access path``, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[0]`` is the access path to the input whose flow is blocked. In this case, the first argument to the function (``input`` in the example). +- The eighth value ``true`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``IsSafe`` returns ``true``, the input is considered safe. +- The ninth value ``sql-injection`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. In this case - the SQL injection queries. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + Example: Accessing the ``Body`` field of an HTTP request ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how we can model a field read as a source of tainted data. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index dafd0213b87..3cd67022a82 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -259,6 +259,91 @@ For the remaining values for both rows: That is, the first row specifies that values can flow from the elements of the qualifier stream into the first argument of the function provided to ``map``. The second row specifies that values can flow from the return value of the function to the elements of the stream returned from ``map``. +Example: Taint barrier in the ``java.io`` package +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how the Java query pack models the return value from the ``getName`` method as a barrier for path injection. +This is the ``getName`` method in the ``File`` class, which is located in the ``java.io`` package. The method returns only the final component of a path, which means that it protects against path injection vulnerabilities. + +.. code-block:: java + + public static void barrier(File file) { + String name = file.getName(); // The return value of this method is a barrier for path injection. + ... + } + +We need to add a tuple to the ``barrierModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["java.io", "File", True, "getName", "()", "", "ReturnValue", "path-injection", "manual"] + + +Since we are adding a new barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. +The first five values identify the callable (in this case a method) to be modeled as a barrier. + +- The first value ``java.io`` is the package name. +- The second value ``File`` is the name of the class (type) that contains the method. +- The third value ``True`` is a flag that indicates whether or not the barrier also applies to all overrides of the method. +- The fourth value ``getName`` is the method name. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a barrier. +- The eighth value ``path-injection`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. In this case - the path injection queries. +- The ninth value ``manual`` is the provenance of the barrier, which is used to identify the origin of the barrier. + +Example: Taint barrier guard in the ``java.net`` package +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how the Java query pack models the ``isAbsolute`` method as a barrier guard for request forgery. +This is the ``isAbsolute`` method in the ``URI`` class, which is located in the ``java.net`` package. +A barrier guard model is used to stop the flow of taint when a conditional check is performed on data. +When the ``isAbsolute`` method returns ``false``, the URI is relative and therefore safe for request forgery because it cannot redirect to an external server controlled by an attacker. + +.. code-block:: java + + public static void barrierguard(URI uri) throws IOException { + if (!uri.isAbsolute()) { // The check guards the request, so the URI is safe. + URL url = uri.toURL(); + url.openConnection(); // This is not a request forgery vulnerability. + } + } + +We need to add a tuple to the ``barrierGuardModel``\(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: + - ["java.net", "URI", True, "isAbsolute", "()", "", "Argument[this]", "false", "request-forgery", "manual"] + + +Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. +The first five values identify the callable (in this case a method) to be modeled as a barrier guard. + +- The first value ``java.net`` is the package name. +- The second value ``URI`` is the name of the class (type) that contains the method. +- The third value ``True`` is a flag that indicates whether or not the barrier guard also applies to all overrides of the method. +- The fourth value ``isAbsolute`` is the method name. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access path``, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[this]`` is the access path to the input whose flow is blocked. In this case, the qualifier of the method call (``uri`` in the example). +- The eighth value ``false`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``isAbsolute`` is ``false``, the URI is relative and considered safe. +- The ninth value ``request-forgery`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. In this case - the request forgery queries. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + Example: Add a ``neutral`` method ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how the Java query pack models the ``now`` method as being neutral with respect to flow. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index 7fea38b05c2..95119d11745 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -393,6 +393,61 @@ This can be achieved with the following data extension: - **Member[data]** selects accesses to the **data** property of the **req** object. - Finally, the kind **remote** indicates that this is considered a source of remote flow. +Example: Taint barrier using the 'encodeURIComponent' function +-------------------------------------------------------------- + +In this example, we'll show how to add the return value of **encodeURIComponent** as a barrier for XSS. + +.. code-block:: js + + let escaped = encodeURIComponent(input); // The return value of this method is safe for XSS. + document.body.innerHTML = escaped; + +We can model this using the following data extension: + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/javascript-all + extensible: barrierModel + data: + - ["global", "Member[encodeURIComponent].ReturnValue", "html-injection"] + +- Since we are adding a barrier, we need to add a tuple to the **barrierModel** extensible predicate. +- The first column, **"global"**, begins the search for relevant calls at references to the global object. +- The second column, **Member[encodeURIComponent].ReturnValue**, selects the return value of the **encodeURIComponent** function. +- The third column, **"html-injection"**, is the kind of the barrier. + +Example: Add a barrier guard +---------------------------- + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +Consider a function called `isValid` which returns `true` when the data is considered safe. + +.. code-block:: js + + if (isValid(userInput)) { // The check guards the use, so the input is safe. + db.query(userInput); // This is safe. + } + +We can model this using the following data extension: + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/javascript-all + extensible: barrierGuardModel + data: + - ["my-package", "Member[isValid].Argument[0]", "true", "sql-injection"] + +- Since we are adding a barrier guard, we need to add a tuple to the **barrierGuardModel** extensible predicate. +- The first column, **"my-package"**, begins the search at imports of the hypothetical NPM package **my-package**. +- The second column, **Member[isValid].Argument[0]**, selects the first argument of the `isValid` function. This is the value being validated. +- The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, **"sql-injection"**, is the kind of the barrier guard. + Reference material ------------------ diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 9fdefa696b8..54b1023c7d0 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -281,6 +281,66 @@ We might also provide a summary stating that the elements of the input list are The tracking of list elements is imprecise in that the analysis does not know where in the list the tracked value is found. So this summary simply states that if the value is found somewhere in the input list, it will also be found somewhere in the output list, unchanged. +Example: Taint barrier using the 'escape' function +-------------------------------------------------- + +In this example, we'll show how to add the return value of **html.escape** as a barrier for XSS. + +.. code-block:: python + + import html + escaped = html.escape(unknown) # The return value of this function is safe for XSS. + +We can model this using the following data extension: + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/python-all + extensible: barrierModel + data: + - ["html", "Member[escape].ReturnValue", "html-injection"] + +- Since we are adding a barrier, we need to add a tuple to the **barrierModel** extensible predicate. +- The first column, **"html"**, begins the search at places where the **html** module is imported. +- The second column, **Member[escape].ReturnValue**, selects the return value of the **escape** function from the **html** module. +- The third column, **"html-injection"**, is the kind of the barrier. + +Example: Add a barrier guard +---------------------------- + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +A barrier guard model is used when a function returns a boolean that indicates whether the data is safe to use. +Consider the function ``url_has_allowed_host_and_scheme`` from the ``django.utils.http`` package which returns ``true`` when the URL is in a safe domain. + +.. code-block:: python + + if url_has_allowed_host_and_scheme(url, allowed_hosts=...): # The check guards the use of 'url', so it is safe. + redirect(url) # This is safe. + +We need to add a tuple to the ``barrierGuardModel``\(type, path, branch, kind, madId) extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/python-all + extensible: barrierGuardModel + data: + - [ + "django", + "Member[utils].Member[http].Member[url_has_allowed_host_and_scheme].Argument[0,url:]", + "true", + "url-redirection", + ] + +- Since we are adding a barrier guard, we need to add a tuple to the **barrierGuardModel** extensible predicate. +- The first column, **"django"**, begins the search at places where the **django** package is imported. +- The second column, **Member[utils].Member[http].Member[url_has_allowed_host_and_scheme].Argument[0,url:]**, selects the first argument (or the keyword argument ``url``) of the ``url_has_allowed_host_and_scheme`` function in the ``django.utils.http`` module. This is the value being validated. +- The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, **"url-redirection"**, is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. + Reference material ------------------ diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index 227a178bf8e..37636960fe8 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -232,6 +232,65 @@ We can model this using the following data extension: - The last column, **taint**, indicates the kind of flow to add. +Example: Taint barrier using the 'escape' method +------------------------------------------------ + +In this example, we'll show how to add the return value of **Mysql2::Client#escape** as a barrier for SQL injection. + +.. code-block:: ruby + + client = Mysql2::Client.new + escaped = client.escape(input) # The return value of this method is safe for SQL injection. + client.query("SELECT * FROM users WHERE name = '#{escaped}'") + +We can model this using the following data extension: + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/ruby-all + extensible: barrierModel + data: + - ["Mysql2::Client!", "Method[escape].ReturnValue", "sql-injection"] + +- Since we are adding a barrier, we need to add a tuple to the **barrierModel** extensible predicate. +- The first column, **"Mysql2::Client!"**, begins the search for relevant calls at references to the **Mysql2::Client** class. + The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- The second column, **"Method[escape].ReturnValue"**, selects the return value of the **escape** method. +- The third column, **"sql-injection"**, is the kind of the barrier. + +Example: Add a barrier guard +---------------------------- + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +Consider a validation method ``Validator.is_safe`` which returns ``true`` when the data is considered safe. + +.. code-block:: ruby + + if Validator.is_safe(user_input) + # The check guards the use, so the input is safe. + client.query("SELECT * FROM users WHERE name = '#{user_input}'") + end + +We can model this using the following data extension: + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/ruby-all + extensible: barrierGuardModel + data: + - ["Validator!", "Method[is_safe].Argument[0]", "true", "sql-injection"] + +- Since we are adding a barrier guard, we need to add a tuple to the **barrierGuardModel** extensible predicate. +- The first column, **"Validator!"**, begins the search at references to the **Validator** class. + The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- The second column, **"Method[is_safe].Argument[0]"**, selects the first argument of the **is_safe** method. This is the value being validated. +- The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, **"sql-injection"**, is the kind of the barrier guard. + Reference material ------------------ From c86ba38a4e52c595b35cbcc0990d0deb8ef5288e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 20 Mar 2026 15:22:29 +0000 Subject: [PATCH 121/208] Add change notes --- .../lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ .../lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ .../lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ .../lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ .../lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ .../lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ .../lib/change-notes/2026-03-20-data-extensions-barriers.md | 4 ++++ 8 files changed, 32 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md create mode 100644 csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md create mode 100644 go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md create mode 100644 java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md create mode 100644 javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md create mode 100644 python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md create mode 100644 ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md create mode 100644 rust/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md diff --git a/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..281008e4697 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for C and C++ `__. diff --git a/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..4d5cc0c0d0d --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for C# `__. diff --git a/go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..1e86b59d5b5 --- /dev/null +++ b/go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Go `__. diff --git a/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..d4ae1f8711d --- /dev/null +++ b/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Java and Kotlin `__. diff --git a/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..e8bacba89b1 --- /dev/null +++ b/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for JavaScript `__. diff --git a/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..b33a89ba776 --- /dev/null +++ b/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Python `__. diff --git a/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..fecf79a0de7 --- /dev/null +++ b/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Ruby `__. diff --git a/rust/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/rust/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..5e97a1533a9 --- /dev/null +++ b/rust/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. From a2a0c087e15569a3aef8b9018dbd2d6d58b43481 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:02:07 +0000 Subject: [PATCH 122/208] Remove incorrect parameter of extensible predicate Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../customizing-library-models-for-python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 54b1023c7d0..942bb2d1220 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -319,7 +319,7 @@ Consider the function ``url_has_allowed_host_and_scheme`` from the ``django.util if url_has_allowed_host_and_scheme(url, allowed_hosts=...): # The check guards the use of 'url', so it is safe. redirect(url) # This is safe. -We need to add a tuple to the ``barrierGuardModel``\(type, path, branch, kind, madId) extensible predicate by updating a data extension file. +We need to add a tuple ``(type, path, branch, kind)`` to the ``barrierGuardModel`` extensible predicate by updating a data extension file (the extension ID is implicit and auto-assigned). .. code-block:: yaml From 6d4e8bfcb29ab98925ea4e69c146d6451b3878a5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:03:53 +0000 Subject: [PATCH 123/208] Correct extensible predicate signatures in docs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../customizing-library-models-for-cpp.rst | 2 +- .../customizing-library-models-for-csharp.rst | 2 +- .../customizing-library-models-for-go.rst | 4 ++-- .../customizing-library-models-for-java-and-kotlin.rst | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index a96fd6ea352..a567a493956 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -59,7 +59,7 @@ The CodeQL library for CPP analysis exposes the following extensible predicates: - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. - ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. The extensible predicates are populated using the models defined in data extension files. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index bec5d55e95c..e8a029a595c 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -59,7 +59,7 @@ The CodeQL library for C# analysis exposes the following extensible predicates: - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. - ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(namespace, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index cfa87f2f736..b26f0ad7e39 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -58,8 +58,8 @@ The CodeQL library for Go analysis exposes the following extensible predicates: - ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. -- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 3cd67022a82..606cdf5c8df 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -64,7 +64,7 @@ The CodeQL library for Java and Kotlin analysis exposes the following extensible - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data maybe used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. - ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, boolean subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) override generated summary models (those with a provenance such as ``df-generated``) so that the summary will be ignored. Other than that, neutral models have a slight impact on the dataflow dispatch logic, which is out of scope for this documentation. The extensible predicates are populated using the models defined in data extension files. From 8f17b7379663d6b38f621d48ed4c8ff370a206f0 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 24 Mar 2026 11:00:44 +0000 Subject: [PATCH 124/208] Fix link formatting in change notes --- cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 2 +- .../ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 2 +- go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 2 +- java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 2 +- .../ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 2 +- .../ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 2 +- ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md index 281008e4697..30f0092a4e9 100644 --- a/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md +++ b/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -1,4 +1,4 @@ --- category: feature --- -* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for C and C++ `__. +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for C and C++](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-cpp/). diff --git a/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md index 4d5cc0c0d0d..6408acc7dae 100644 --- a/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md +++ b/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -1,4 +1,4 @@ --- category: feature --- -* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for C# `__. +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for C#](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-csharp/). diff --git a/go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md index 1e86b59d5b5..ee1b51de861 100644 --- a/go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md +++ b/go/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -1,4 +1,4 @@ --- category: feature --- -* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Go `__. +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for Go](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-go/). diff --git a/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md index d4ae1f8711d..f8bcbb1fcb2 100644 --- a/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md +++ b/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -1,4 +1,4 @@ --- category: feature --- -* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Java and Kotlin `__. +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for Java and Kotlin](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-java-and-kotlin/). diff --git a/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md index e8bacba89b1..d849f4c0c69 100644 --- a/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md +++ b/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -1,4 +1,4 @@ --- category: feature --- -* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for JavaScript `__. +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for JavaScript](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-javascript/). diff --git a/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md index b33a89ba776..522801a0e46 100644 --- a/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md +++ b/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -1,4 +1,4 @@ --- category: feature --- -* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Python `__. +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for Python](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-python/). diff --git a/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md index fecf79a0de7..da53d584e11 100644 --- a/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md +++ b/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -1,4 +1,4 @@ --- category: feature --- -* Data flow barriers and barrier guards can now be added using data extensions. For more information see `Customizing library models for Ruby `__. +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for Ruby](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-ruby/). From 76d165e71ead77b2992c1e2e2af8d0ad4601a6b9 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 31 Mar 2026 12:27:45 +0100 Subject: [PATCH 125/208] "modelling" -> "modeling" in docs --- .../customizing-library-models-for-cpp.rst | 10 +++++----- docs/ql-libraries/dataflow/dataflow.md | 2 +- ruby/ql/docs/flow_summaries.md | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index a567a493956..e7aaf9b03e9 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -92,7 +92,7 @@ Since we are adding a new source, we need to add a tuple to the ``sourceModel`` The first five values identify the callable (in this case a free function) to be modeled as a source. - The first value ``"boost::asio"`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. - The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"read_until"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``read_until``. @@ -128,7 +128,7 @@ Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` ext The first five values identify the callable (in this case a free function) to be modeled as a sink. - The first value ``"boost::asio"`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. - The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"write"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``write``. @@ -165,7 +165,7 @@ Since we are adding flow through a function, we need to add tuples to the ``summ The first five values identify the callable (in this case free function) to be modeled as a summary. - The first value ``"boost::asio"`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. - The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"buffer"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``buffer``. @@ -207,7 +207,7 @@ Since we are adding a barrier, we need to add a tuple to the ``barrierModel`` ex The first five values identify the callable (in this case a free function) to be modeled as a barrier. - The first value ``""`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. - The third value ``False`` is a flag that indicates whether or not the barrier also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"mysql_real_escape_string"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. @@ -247,7 +247,7 @@ Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuar The first five values identify the callable (in this case a free function) to be modeled as a barrier guard. - The first value ``""`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. - The third value ``False`` is a flag that indicates whether or not the barrier guard also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"is_safe"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. diff --git a/docs/ql-libraries/dataflow/dataflow.md b/docs/ql-libraries/dataflow/dataflow.md index ff7c71abfae..7227f7cfd0f 100644 --- a/docs/ql-libraries/dataflow/dataflow.md +++ b/docs/ql-libraries/dataflow/dataflow.md @@ -279,7 +279,7 @@ Content ContentSet::getAReadContent(); which means that a `storeStep(n1, cs, n2)` will be interpreted as storing into _any_ of `cs.getAStoreContent()`, and dually that a `readStep(n1, cs, n2)` will be interpreted as reading from _any_ of `cs.getAReadContent()`. In most cases, there -will be a simple bijection between `ContentSet` and `Content`, but when modelling +will be a simple bijection between `ContentSet` and `Content`, but when modeling for example flow through arrays it can be more involved (see [Example 4](#example-4)). It generally makes sense for stores to target `PostUpdateNode`s, but this is not a strict diff --git a/ruby/ql/docs/flow_summaries.md b/ruby/ql/docs/flow_summaries.md index bb5fe5d7178..e588bdcaf26 100644 --- a/ruby/ql/docs/flow_summaries.md +++ b/ruby/ql/docs/flow_summaries.md @@ -39,7 +39,7 @@ If `preservesValue = true` then value flow is propagated. If it is `false` then only taint flow is propagated. Any call to `chomp` in the database will be translated, in the dataflow graph, -to a call to this fake definition. +to a call to this fake definition. `input` and `output` define the "from" and "to" locations in the flow summary. They use a custom string-based syntax which is similar to that used in `path` @@ -232,7 +232,7 @@ preceding access path. It takes the same specifiers as `WithElement` and `Element`. It is only valid in an input path. This component has the effect of excluding the relevant elements when copying -from input to output. It is useful for modelling methods that remove elements +from input to output. It is useful for modeling methods that remove elements from a collection. For example to model a method that removes the first element from the receiver, we can do so like this: From 2ecf0863333b20957e1d354945646b96055adc42 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 31 Mar 2026 14:59:59 +0100 Subject: [PATCH 126/208] Include parameters when quoting extensible predicate name --- .../customizing-library-models-for-cpp.rst | 10 +++++----- .../customizing-library-models-for-csharp.rst | 14 +++++++------- .../customizing-library-models-for-go.rst | 16 ++++++++-------- ...mizing-library-models-for-java-and-kotlin.rst | 14 +++++++------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index e7aaf9b03e9..1a8e807c069 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -77,7 +77,7 @@ This example shows how the CPP query pack models the return value from the ``rea boost::asio::read_until(socket, recv_buffer, '\0', error); -We need to add a tuple to the ``sourceModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -113,7 +113,7 @@ This example shows how the CPP query pack models the second argument of the ``bo boost::asio::write(socket, send_buffer, error); -We need to add a tuple to the ``sinkModel``\(namespace, type, subtypes, name, signature, ext, input, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -149,7 +149,7 @@ This example shows how the CPP query pack models flow through a function for a s boost::asio::write(socket, boost::asio::buffer(send_str), error); -We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -192,7 +192,7 @@ This function escapes special characters in a string for use in an SQL statement mysql_real_escape_string(mysql, escaped_name, name, strlen(name)); // The escaped_name is safe for SQL injection. sprintf(query_buffer, query, escaped_name); -We need to add a tuple to the ``barrierModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -232,7 +232,7 @@ Consider a function called ``is_safe`` which returns ``true`` when the data is c mysql_query(user_input); // This is safe. } -We need to add a tuple to the ``barrierGuardModel``\(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index e8a029a595c..da267da9f2e 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -121,7 +121,7 @@ This is the ``GetStream`` method in the ``TcpClient`` class, which is located in ... } -We need to add a tuple to the ``sourceModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -161,7 +161,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -218,7 +218,7 @@ This example shows how the C# query pack models flow through a method for a simp ... } -We need to add a tuple to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add a tuple to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -262,7 +262,7 @@ Here we model flow through higher order methods and collection types, as well as ... } -We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -323,7 +323,7 @@ The ``RawUrl`` property returns the raw URL of the current request, which is con Response.Redirect(url); // This is not a URL redirection vulnerability. } -We need to add a tuple to the ``barrierModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -365,7 +365,7 @@ When the ``IsAbsoluteUri`` property returns ``false``, the URL is relative and t } } -We need to add a tuple to the ``barrierGuardModel``\(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -405,7 +405,7 @@ A neutral model is used to define that there is no flow through a method. ... } -We need to add a tuple to the ``neutralModel``\(namespace, type, name, signature, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``neutralModel(namespace, type, name, signature, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index b26f0ad7e39..1d8abed14e2 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -122,7 +122,7 @@ This is the ``FormValue`` method of the ``Request`` type which is located in the } -We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -164,7 +164,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add a tuple to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -209,7 +209,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add a tuple to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -253,7 +253,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -310,7 +310,7 @@ This example shows how the Go query pack models flow through a method for a simp ... } -We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add a tuple to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -354,7 +354,7 @@ The ``Htmlquote`` function from the beego framework HTML-escapes a string, which ... } -We need to add a tuple to the ``barrierModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -395,7 +395,7 @@ Consider a function called ``IsSafe`` which returns ``true`` when the data is co } } -We need to add a tuple to the ``barrierGuardModel``\(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -434,7 +434,7 @@ This example shows how we can model a field read as a source of tainted data. ... } -We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 606cdf5c8df..7b329e450f5 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -87,7 +87,7 @@ This is the ``execute`` method in the ``Statement`` class, which is located in t stmt.execute(query); // The argument to this method is a SQL injection sink. } -We need to add a tuple to the ``sinkModel``\(package, type, subtypes, name, signature, ext, input, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -127,7 +127,7 @@ This is the ``getInputStream`` method in the ``Socket`` class, which is located ... } -We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -167,7 +167,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -212,7 +212,7 @@ Here we model flow through higher order methods and collection types. ... } -We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -271,7 +271,7 @@ This is the ``getName`` method in the ``File`` class, which is located in the `` ... } -We need to add a tuple to the ``barrierModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -315,7 +315,7 @@ When the ``isAbsolute`` method returns ``false``, the URI is relative and theref } } -We need to add a tuple to the ``barrierGuardModel``\(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -356,7 +356,7 @@ A neutral model is used to define that there is no flow through a method. ... } -We need to add a tuple to the ``neutralModel``\(package, type, name, signature, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``neutralModel(package, type, name, signature, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml From 8081d4602bf406ac2cb78f0839e0717dc952f238 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 31 Mar 2026 15:03:20 +0100 Subject: [PATCH 127/208] Use hyphens in column names: "access-path", "accepting-value" --- .../customizing-library-models-for-cpp.rst | 2 +- .../customizing-library-models-for-csharp.rst | 16 +++++++-------- .../customizing-library-models-for-go.rst | 20 +++++++++---------- ...ing-library-models-for-java-and-kotlin.rst | 14 ++++++------- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index 1a8e807c069..b45ec1b726f 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -253,7 +253,7 @@ The first five values identify the callable (in this case a free function) to be - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the input specification, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. +The remaining values are used to define the input specification, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. - The seventh value ``Argument[*0]`` is the input specification (the value being validated). In this case, the first indirection (or pointed-to value, ``*``) of the first argument (``Argument[0]``) passed to the function. - The eighth value ``true`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index da267da9f2e..60b334ad50c 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -103,9 +103,9 @@ The first five values identify the callable (in this case a method) to be modele - The fifth value ``(System.String,System.Data.SqlClient.SqlConnection)`` is the method input type signature. The type names must be fully qualified. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the sink. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the sink. -- The seventh value ``Argument[0]`` is the ``access path`` to the first argument passed to the method, which means that this is the location of the sink. +- The seventh value ``Argument[0]`` is the ``access-path`` to the first argument passed to the method, which means that this is the location of the sink. - The eighth value ``sql-injection`` is the kind of the sink. The sink kind is used to define the queries where the sink is in scope. In this case - the SQL injection queries. - The ninth value ``manual`` is the provenance of the sink, which is used to identify the origin of the sink. @@ -143,7 +143,7 @@ The first five values identify the callable (in this case a method) to be modele - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a source of tainted input. - The eighth value ``remote`` is the kind of the source. The source kind is used to define the threat model where the source is in scope. ``remote`` applies to many of the security related queries as it means a remote source of untrusted data. As an example the SQL injection query uses ``remote`` sources. For more information, see ":ref:`Threat models `." @@ -187,7 +187,7 @@ These are the same for both of the rows above as we are adding two summaries for - The fifth value ``(System.Object,System.Object)`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0]`` is the access path to the first argument (``s1`` in the example) and ``Argument[1]`` is the access path to the second argument (``s2`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -243,7 +243,7 @@ These are the same for both of the rows above as we are adding two summaries for - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[this]`` is the access path to the qualifier (``s`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -287,7 +287,7 @@ These are the same for both of the rows above as we are adding two summaries for - The fifth value ``(System.Collections.Generic.IEnumerable,System.Func)`` is the method input type signature. The generics in the signature must match the generics in the method signature in the source code. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. - The seventh value is the access path to the ``input`` (where data flows from). - The eighth value is the access path to the ``output`` (where data flows to). @@ -344,7 +344,7 @@ The first five values identify the callable (in this case the getter of a proper - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the barrier. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the barrier. - The seventh value ``ReturnValue`` is the access path to the return value of the property getter, which means that the return value is considered safe. - The eighth value ``url-redirection`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. In this case - the URL redirection queries. @@ -386,7 +386,7 @@ The first five values identify the callable (in this case the getter of a proper - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. +The remaining values are used to define the ``access-path``, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. - The seventh value ``Argument[this]`` is the access path to the input whose flow is blocked. In this case, the qualifier of the property access (``uri`` in the example). - The eighth value ``false`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``IsAbsoluteUri`` is ``false``, the URL is relative and considered safe. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index 1d8abed14e2..0c7db5cd40f 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -103,9 +103,9 @@ The first five values identify the function (in this case a method) to be modele - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the sink. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the sink. -- The seventh value ``Argument[0]`` is the ``access path`` to the first argument passed to the method, which means that this is the location of the sink. +- The seventh value ``Argument[0]`` is the ``access-path`` to the first argument passed to the method, which means that this is the location of the sink. - The eighth value ``sql-injection`` is the kind of the sink. The sink kind is used to define the queries where the sink is in scope. In this case - the SQL injection queries. - The ninth value ``manual`` is the provenance of the sink, which is used to identify the origin of the sink. @@ -144,7 +144,7 @@ The first five values identify the function to be modeled as a source. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a source of tainted input. - The eighth value ``remote`` is the kind of the source. The source kind is used to define the threat model where the source is in scope. ``remote`` applies to many of the security related queries as it means a remote source of untrusted data. As an example the SQL injection query uses ``remote`` sources. For more information, see ":ref:`Threat models `." @@ -187,7 +187,7 @@ The first five values identify the function to be modeled as a summary. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0].ArrayElement`` is the access path to the array elements of the first argument (the elements of the slice in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -232,7 +232,7 @@ The first five values identify the function to be modeled as a summary. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0].ArrayElement.ArrayElement`` is the access path to the array elements of the array elements of the first argument. Note that a variadic parameter of type `...T` is treated as if it has type `[]T` and arguments corresponding to the variadic parameter are accessed as elements of this slice. - The eighth value ``ReturnValue.ArrayElement`` is the access path to the output (where data flows to), in this case ``ReturnValue.ArrayElement``, which means that the input flows to the array elements of the return value. @@ -279,7 +279,7 @@ These are the same for both of the rows above as we are adding two summaries for - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0]`` is the access path to the first argument (``elems`` in the example) and ``Argument[1]`` is the access path to the second argument (``sep`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -334,7 +334,7 @@ The first five values identify the function (in this case a method) to be modele - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[receiver]`` is the access path to the receiver (``u`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. When there are multiple return values, use ``ReturnValue[i]`` to refer to the ``i`` th return value (starting from 0). @@ -375,7 +375,7 @@ The first five values identify the function to be modeled as a barrier. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the barrier. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the barrier. - The seventh value ``ReturnValue`` is the access path to the output of the barrier, which means that the return value is considered sanitized. - The eighth value ``html-injection`` is the kind of the barrier. The barrier kind must match the kind used in the query where the barrier should take effect. In this case, it matches the ``html-injection`` sink kind used by XSS queries. @@ -416,7 +416,7 @@ The first five values identify the function to be modeled as a barrier guard. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. +The remaining values are used to define the ``access-path``, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. - The seventh value ``Argument[0]`` is the access path to the input whose flow is blocked. In this case, the first argument to the function (``input`` in the example). - The eighth value ``true`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``IsSafe`` returns ``true``, the input is considered safe. @@ -455,7 +455,7 @@ The first five values identify the field to be modeled as a source. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``""`` is left blank. Leaving the access path of a source model blank indicates that it is a field access. - The eighth value ``remote`` is the source kind. This indicates that the source is a remote source of untrusted data. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 7b329e450f5..1d32d196b07 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -109,9 +109,9 @@ The first five values identify the callable (in this case a method) to be modele - The fifth value ``(String)`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the sink. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the sink. -- The seventh value ``Argument[0]`` is the ``access path`` to the first argument passed to the method, which means that this is the location of the sink. +- The seventh value ``Argument[0]`` is the ``access-path`` to the first argument passed to the method, which means that this is the location of the sink. - The eighth value ``sql-injection`` is the kind of the sink. The sink kind is used to define the queries where the sink is in scope. In this case - the SQL injection queries. - The ninth value ``manual`` is the provenance of the sink, which is used to identify the origin of the sink. @@ -149,7 +149,7 @@ The first five values identify the callable (in this case a method) to be modele - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a source of tainted input. - The eighth value ``remote`` is the kind of the source. The source kind is used to define the threat model where the source is in scope. ``remote`` applies to many of the security related queries as it means a remote source of untrusted data. As an example the SQL injection query uses ``remote`` sources. For more information, see ":ref:`Threat models `." @@ -193,7 +193,7 @@ These are the same for both of the rows above as we are adding two summaries for - The fifth value ``(String)`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[this]`` is the access path to the qualifier (``s1`` in the example) and ``Argument[0]`` is the access path to the first argument (``s2`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -237,7 +237,7 @@ These are the same for both of the rows above as we are adding two summaries for - The fifth value ``Function`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. - The seventh value is the access path to the ``input`` (where data flows from). - The eighth value is the access path to the ``output`` (where data flows to). @@ -293,7 +293,7 @@ The first five values identify the callable (in this case a method) to be modele - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the barrier. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the barrier. - The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a barrier. - The eighth value ``path-injection`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. In this case - the path injection queries. @@ -337,7 +337,7 @@ The first five values identify the callable (in this case a method) to be modele - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``accepting value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. +The remaining values are used to define the ``access-path``, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. - The seventh value ``Argument[this]`` is the access path to the input whose flow is blocked. In this case, the qualifier of the method call (``uri`` in the example). - The eighth value ``false`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``isAbsolute`` is ``false``, the URI is relative and considered safe. From 6321482a46b8d538d11331e5e0e137be8942279a Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 14 Apr 2026 15:29:52 +0100 Subject: [PATCH 128/208] Remove mention of extension ID --- .../customizing-library-models-for-python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 942bb2d1220..608d96f4334 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -319,7 +319,7 @@ Consider the function ``url_has_allowed_host_and_scheme`` from the ``django.util if url_has_allowed_host_and_scheme(url, allowed_hosts=...): # The check guards the use of 'url', so it is safe. redirect(url) # This is safe. -We need to add a tuple ``(type, path, branch, kind)`` to the ``barrierGuardModel`` extensible predicate by updating a data extension file (the extension ID is implicit and auto-assigned). +We need to add a tuple ``(type, path, branch, kind)`` to the ``barrierGuardModel`` extensible predicate by updating a data extension file. .. code-block:: yaml From 87f2e21ae9851ccb49ab8ebe77961327c8aa103b Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 14 Apr 2026 15:37:17 +0100 Subject: [PATCH 129/208] Fix docs: "acceptingvalue" -> "acceptingValue" --- .../customizing-library-models-for-cpp.rst | 4 ++-- .../customizing-library-models-for-csharp.rst | 4 ++-- .../customizing-library-models-for-go.rst | 4 ++-- .../customizing-library-models-for-java-and-kotlin.rst | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index b45ec1b726f..eddbda10a12 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -59,7 +59,7 @@ The CodeQL library for CPP analysis exposes the following extensible predicates: - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. - ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. The extensible predicates are populated using the models defined in data extension files. @@ -232,7 +232,7 @@ Consider a function called ``is_safe`` which returns ``true`` when the data is c mysql_query(user_input); // This is safe. } -We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index 60b334ad50c..7f9594a73c0 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -59,7 +59,7 @@ The CodeQL library for C# analysis exposes the following extensible predicates: - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. - ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(namespace, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. @@ -365,7 +365,7 @@ When the ``IsAbsoluteUri`` property returns ``false``, the URL is relative and t } } -We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index 0c7db5cd40f..4e303d22c4c 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -59,7 +59,7 @@ The CodeQL library for Go analysis exposes the following extensible predicates: - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. - ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. @@ -395,7 +395,7 @@ Consider a function called ``IsSafe`` which returns ``true`` when the data is co } } -We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 1d32d196b07..d8c2ad2d18a 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -64,7 +64,7 @@ The CodeQL library for Java and Kotlin analysis exposes the following extensible - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data maybe used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. - ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) override generated summary models (those with a provenance such as ``df-generated``) so that the summary will be ignored. Other than that, neutral models have a slight impact on the dataflow dispatch logic, which is out of scope for this documentation. The extensible predicates are populated using the models defined in data extension files. @@ -315,7 +315,7 @@ When the ``isAbsolute`` method returns ``false``, the URI is relative and theref } } -We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance)`` extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml From f79ffe792ed547feab80c1b6fccf69ec26ccc8c6 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 14 Apr 2026 15:41:02 +0100 Subject: [PATCH 130/208] Fix docs: "branch" -> "acceptingValue" --- .../customizing-library-models-for-javascript.rst | 2 +- .../customizing-library-models-for-python.rst | 4 ++-- .../customizing-library-models-for-ruby.rst | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index 95119d11745..8b4653b8f4a 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -27,7 +27,7 @@ The CodeQL library for JavaScript exposes the following extensible predicates: - **typeModel**\(type1, type2, path) - **summaryModel**\(type, path, input, output, kind) - **barrierModel**\(type, path, kind) -- **barrierGuardModel**\(type, path, branch, kind) +- **barrierGuardModel**\(type, path, acceptingValue, kind) We'll explain how to use these using a few examples, and provide some reference material at the end of this article. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 608d96f4334..9b055d87d00 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -27,7 +27,7 @@ The CodeQL library for Python exposes the following extensible predicates: - **typeModel**\(type1, type2, path) - **summaryModel**\(type, path, input, output, kind) - **barrierModel**\(type, path, kind) -- **barrierGuardModel**\(type, path, branch, kind) +- **barrierGuardModel**\(type, path, acceptingValue, kind) We'll explain how to use these using a few examples, and provide some reference material at the end of this article. @@ -319,7 +319,7 @@ Consider the function ``url_has_allowed_host_and_scheme`` from the ``django.util if url_has_allowed_host_and_scheme(url, allowed_hosts=...): # The check guards the use of 'url', so it is safe. redirect(url) # This is safe. -We need to add a tuple ``(type, path, branch, kind)`` to the ``barrierGuardModel`` extensible predicate by updating a data extension file. +We need to add a tuple ``(type, path, acceptingValue, kind)`` to the ``barrierGuardModel`` extensible predicate by updating a data extension file. .. code-block:: yaml diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index 37636960fe8..387c4194c48 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -28,7 +28,7 @@ The CodeQL library for Ruby exposes the following extensible predicates: - **typeModel**\(type1, type2, path) - **summaryModel**\(type, path, input, output, kind) - **barrierModel**\(type, path, kind) -- **barrierGuardModel**\(type, path, branch, kind) +- **barrierGuardModel**\(type, path, acceptingValue, kind) We'll explain how to use these using a few examples, and provide some reference material at the end of this article. From 7d1c62daa6b7c40006b7fa429504cb7afe75724c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 15 Apr 2026 13:37:15 +0200 Subject: [PATCH 131/208] Swift: Address review comment --- swift/extractor/mangler/SwiftMangler.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/swift/extractor/mangler/SwiftMangler.cpp b/swift/extractor/mangler/SwiftMangler.cpp index 879bc8fe516..e7dbda6ba91 100644 --- a/swift/extractor/mangler/SwiftMangler.cpp +++ b/swift/extractor/mangler/SwiftMangler.cpp @@ -148,10 +148,15 @@ SwiftMangler::ExtensionOrFilePrivateValueIndex SwiftMangler::getExtensionOrFileP } bool SwiftMangler::isExtensionOrFilePrivateValue(const swift::Decl* decl) { - return decl->getKind() == swift::DeclKind::Extension || - (swift::isa(decl) && - swift::dyn_cast(decl)->getFormalAccess() == - swift::AccessLevel::FilePrivate); + if (decl->getKind() == swift::DeclKind::Extension) { + return true; + } + + if (const auto* valueDecl = swift::dyn_cast(decl)) { + return valueDecl->getFormalAccess() == swift::AccessLevel::FilePrivate; + } + + return false; } void SwiftMangler::indexExtensionsAndFilePrivateValues(llvm::ArrayRef siblings) { From d24fb29ff42e62fa4b1c2782d249d7ab07c732b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 15 Apr 2026 14:23:47 +0000 Subject: [PATCH 132/208] update codeql documentation --- .../codeql-changelog/codeql-cli-2.25.2.rst | 157 ++++++++++++++++++ .../codeql-changelog/index.rst | 1 + 2 files changed, 158 insertions(+) create mode 100644 docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.25.2.rst diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.25.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.25.2.rst new file mode 100644 index 00000000000..58c6a7245d2 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.25.2.rst @@ -0,0 +1,157 @@ +.. _codeql-cli-2.25.2: + +========================== +CodeQL 2.25.2 (2026-04-15) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.25.2 runs a total of 492 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). 1 security query has been added with this release. + +CodeQL CLI +---------- + +Miscellaneous +~~~~~~~~~~~~~ + +* The build of Eclipse Temurin OpenJDK that is used to run the CodeQL CLI has been updated to version 21.0.10. + +Query Packs +----------- + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* The :code:`cs/constant-condition` query has been simplified. The query no longer reports trivially constant conditions as they were found to generally be intentional. As a result, it should now produce fewer false positives. Additionally, the simplification means that it now reports all the results that :code:`cs/constant-comparison` used to report, and as consequence, that query has been deleted. + +Python +"""""" + +* Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The "Extraction warnings" (:code:`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields :code:`ExtractionRecoverableWarning`\ s for :code:`build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. +* Fixed an issue with the "Suspicious add with sizeof" (:code:`cpp/suspicious-add-sizeof`) query causing false positive results in :code:`build-mode: none` databases. +* Fixed an issue with the "Uncontrolled format string" (:code:`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. +* Fixed an issue with the "Wrong type of arguments to formatting function" (:code:`cpp/wrong-type-format-argument`) query causing false positive results in :code:`build-mode: none` databases. +* Fixed an issue with the "Multiplication result converted to larger type" (:code:`cpp/integer-multiplication-cast-to-long`) query causing false positive results in :code:`build-mode: none` databases. + +Query Metadata Changes +~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`@security-severity` metadata of :code:`cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). + +C# +"" + +* The :code:`@security-severity` metadata of :code:`cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). + +Golang +"""""" + +* The :code:`@security-severity` metadata of :code:`go/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`go/html-template-escaping-bypass-xss`, :code:`go/reflected-xss` and :code:`go/stored-xss` has been increased from 6.1 (medium) to 7.8 (high). + +Java/Kotlin +""""""""""" + +* The :code:`@security-severity` metadata of :code:`java/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`java/android/webview-addjavascriptinterface`, :code:`java/android/websettings-javascript-enabled` and :code:`java/xss` has been increased from 6.1 (medium) to 7.8 (high). + +Python +"""""" + +* The :code:`@security-severity` metadata of :code:`py/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`py/jinja2/autoescape-false` and :code:`py/reflective-xss` has been increased from 6.1 (medium) to 7.8 (high). + +Ruby +"""" + +* The :code:`@security-severity` metadata of :code:`rb/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`rb/reflected-xss`, :code:`rb/stored-xss` and :code:`rb/html-constructed-from-input` has been increased from 6.1 (medium) to 7.8 (high). + +Swift +""""" + +* The :code:`@security-severity` metadata of :code:`swift/unsafe-webview-fetch` has been increased from 6.1 (medium) to 7.8 (high). + +Rust +"""" + +* The :code:`@security-severity` metadata of :code:`rust/log-injection` has been increased from 2.6 (low) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`rust/xss` has been increased from 6.1 (medium) to 7.8 (high). + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +Python +"""""" + +* Fixed the resolution of relative imports such as :code:`from . import helper` inside namespace packages (directories without an :code:`__init__.py` file), which previously did not work correctly, leading to missing flow. + +Breaking Changes +~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`SourceModelCsv`, :code:`SinkModelCsv`, and :code:`SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from :code:`ExternalFlow.qll`. New models should be added as :code:`.model.yml` files in the :code:`ext/` directory. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* Added :code:`HttpReceiveHttpRequest`, :code:`HttpReceiveRequestEntityBody`, and :code:`HttpReceiveClientCertificate` from Win32's :code:`http.h` as remote flow sources. +* Added dataflow through members initialized via non-static data member initialization (NSDMI). + +C# +"" + +* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. +* The :code:`cs/log-forging` query no longer treats arguments to extension methods with source code on :code:`ILogger` types as sinks. Instead, taint is tracked interprocedurally through extension method bodies, reducing false positives when extension methods sanitize input internally. + +Java/Kotlin +""""""""""" + +* The :code:`java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in :code:`if`\ -condition bounds-checking patterns. For example, :code:`if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. +* The :code:`java/potentially-weak-cryptographic-algorithm` query no longer flags Elliptic Curve algorithms (:code:`EC`, :code:`ECDSA`, :code:`ECDH`, :code:`EdDSA`, :code:`Ed25519`, :code:`Ed448`, :code:`XDH`, :code:`X25519`, :code:`X448`), HMAC-based algorithms (:code:`HMACSHA1`, :code:`HMACSHA256`, :code:`HMACSHA384`, :code:`HMACSHA512`), or PBKDF2 key derivation as potentially insecure. These are modern, secure algorithms recommended by NIST and other standards bodies. This will reduce the number of false positives for this query. +* The first argument of the method :code:`getInstance` of :code:`java.security.Signature` is now modeled as a sink for :code:`java/potentially-weak-cryptographic-algorithm`, :code:`java/weak-cryptographic-algorithm` and :code:`java/rsa-without-oaep`. This will increase the number of alerts for these queries. +* Kotlin versions up to 2.3.20 are now supported. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* Added a subclass :code:`MesonPrivateTestFile` of :code:`ConfigurationTestFile` that represents files created by Meson to test the build configuration. +* Added a class :code:`ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. +* Added a class :code:`ConstructorDefaultFieldInit` to represent default field initializations. +* Added a class :code:`DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. +* Added a predicate :code:`Node::asIndirectInstruction` which returns the :code:`Instruction` that defines the indirect dataflow node, if any. +* Added a class :code:`IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index fc3c5247328..32a8b4574bb 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here Date: Wed, 15 Apr 2026 16:55:23 +0100 Subject: [PATCH 133/208] Remove global function step from local flow --- .../go/dataflow/internal/DataFlowPrivate.qll | 4 - .../lib/semmle/go/frameworks/stdlib/IoFs.qll | 11 ++- .../dataflow/FlowSteps/LocalFlowStep.expected | 51 ------------ .../PromotedFields/LocalFlowStep.expected | 80 ------------------- 4 files changed, 9 insertions(+), 137 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 33149bf0057..2c5c64ace7d 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -95,10 +95,6 @@ predicate basicLocalFlowStep(Node nodeFrom, Node nodeTo) { nodeTo = instructionNode(succ) and nodeTo != nodeFrom ) - or - // GlobalFunctionNode -> use - nodeFrom = - any(GlobalFunctionNode fn | fn.getFunction() = nodeTo.asExpr().(FunctionName).getTarget()) } pragma[noinline] diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll b/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll index b071e56cbb5..b7045aa7fe2 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll @@ -21,9 +21,16 @@ module IoFs { override predicate step(DataFlow::Node pred, DataFlow::Node succ) { //signature: func WalkDir(fsys FS, root string, fn WalkDirFunc) error exists(DataFlow::CallNode call, DataFlow::FunctionNode f | - call.getTarget().hasQualifiedName(packagePath(), "WalkDir") and - f.getASuccessor*() = call.getArgument(2) + f.(DataFlow::FuncLitNode).getASuccessor*() = call.getArgument(2) + or + exists(DataFlow::ExprNode functionName | + f.(DataFlow::GlobalFunctionNode).getFunction() = + functionName.asExpr().(FunctionName).getTarget() + | + functionName.getASuccessor*() = call.getArgument(2) + ) | + call.getTarget().hasQualifiedName(packagePath(), "WalkDir") and pred = call.getArgument(0) and succ = f.getParameter([0, 1]) ) diff --git a/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected b/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected index fcbb78716a4..7fa8b681d7f 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected @@ -1,52 +1,3 @@ -| file://:0:0:0:0 | function Encode | url.go:51:14:51:21 | selection of Encode | -| file://:0:0:0:0 | function EscapedPath | url.go:28:14:28:26 | selection of EscapedPath | -| file://:0:0:0:0 | function Get | url.go:52:14:52:18 | selection of Get | -| file://:0:0:0:0 | function Hostname | url.go:29:14:29:23 | selection of Hostname | -| file://:0:0:0:0 | function JoinPath | url.go:57:16:57:27 | selection of JoinPath | -| file://:0:0:0:0 | function JoinPath | url.go:58:16:58:27 | selection of JoinPath | -| file://:0:0:0:0 | function JoinPath | url.go:60:15:60:28 | selection of JoinPath | -| file://:0:0:0:0 | function JoinPath | url.go:66:9:66:25 | selection of JoinPath | -| file://:0:0:0:0 | function MarshalBinary | url.go:30:11:30:25 | selection of MarshalBinary | -| file://:0:0:0:0 | function Parse | url.go:23:10:23:18 | selection of Parse | -| file://:0:0:0:0 | function Parse | url.go:32:9:32:15 | selection of Parse | -| file://:0:0:0:0 | function Parse | url.go:59:14:59:22 | selection of Parse | -| file://:0:0:0:0 | function Parse | url.go:65:17:65:25 | selection of Parse | -| file://:0:0:0:0 | function ParseQuery | url.go:50:10:50:23 | selection of ParseQuery | -| file://:0:0:0:0 | function ParseRequestURI | url.go:27:9:27:27 | selection of ParseRequestURI | -| file://:0:0:0:0 | function Password | url.go:43:11:43:21 | selection of Password | -| file://:0:0:0:0 | function PathEscape | url.go:12:31:12:44 | selection of PathEscape | -| file://:0:0:0:0 | function PathUnescape | url.go:12:14:12:29 | selection of PathUnescape | -| file://:0:0:0:0 | function Port | url.go:33:14:33:19 | selection of Port | -| file://:0:0:0:0 | function Println | url.go:28:2:28:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:29:2:29:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:31:2:31:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:33:2:33:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:34:2:34:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:35:2:35:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:44:2:44:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:45:2:45:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:51:2:51:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:52:2:52:12 | selection of Println | -| file://:0:0:0:0 | function Query | url.go:34:14:34:20 | selection of Query | -| file://:0:0:0:0 | function QueryEscape | url.go:14:32:14:46 | selection of QueryEscape | -| file://:0:0:0:0 | function QueryUnescape | url.go:14:14:14:30 | selection of QueryUnescape | -| file://:0:0:0:0 | function Replace | strings.go:9:8:9:22 | selection of Replace | -| file://:0:0:0:0 | function ReplaceAll | strings.go:10:8:10:25 | selection of ReplaceAll | -| file://:0:0:0:0 | function RequestURI | url.go:35:14:35:25 | selection of RequestURI | -| file://:0:0:0:0 | function ResolveReference | url.go:36:6:36:23 | selection of ResolveReference | -| file://:0:0:0:0 | function Sprint | strings.go:11:9:11:18 | selection of Sprint | -| file://:0:0:0:0 | function Sprintf | strings.go:11:30:11:40 | selection of Sprintf | -| file://:0:0:0:0 | function Sprintln | strings.go:11:54:11:65 | selection of Sprintln | -| file://:0:0:0:0 | function User | url.go:41:8:41:15 | selection of User | -| file://:0:0:0:0 | function UserPassword | url.go:42:7:42:22 | selection of UserPassword | -| file://:0:0:0:0 | function Username | url.go:45:14:45:24 | selection of Username | -| file://:0:0:0:0 | function append | main.go:39:8:39:13 | append | -| file://:0:0:0:0 | function append | main.go:40:8:40:13 | append | -| file://:0:0:0:0 | function copy | main.go:42:2:42:5 | copy | -| file://:0:0:0:0 | function make | main.go:41:8:41:11 | make | -| file://:0:0:0:0 | function max | main.go:65:7:65:9 | max | -| file://:0:0:0:0 | function min | main.go:64:7:64:9 | min | -| main.go:3:6:3:10 | function test1 | main.go:34:2:34:6 | test1 | | main.go:3:12:3:12 | argument corresponding to x | main.go:3:12:3:12 | definition of x | | main.go:3:12:3:12 | definition of x | main.go:5:5:5:5 | x | | main.go:3:19:3:20 | argument corresponding to fn | main.go:3:19:3:20 | definition of fn | @@ -66,8 +17,6 @@ | main.go:10:12:10:12 | y | main.go:10:17:10:17 | y | | main.go:10:17:10:27 | ...>=... | main.go:10:7:10:27 | ...&&... | | main.go:11:14:11:14 | z | main.go:11:9:11:15 | type conversion | -| main.go:14:6:14:10 | function test2 | main.go:34:8:34:12 | test2 | -| main.go:14:6:14:10 | function test2 | main.go:34:19:34:23 | test2 | | main.go:15:9:15:9 | 0 | main.go:15:2:15:4 | definition of acc | | main.go:16:9:19:2 | capture variable acc | main.go:17:3:17:5 | acc | | main.go:17:3:17:7 | definition of acc | main.go:18:10:18:12 | acc | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected b/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected index 5908aa8d113..3767cd57b5d 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected @@ -1,83 +1,3 @@ -| main.go:3:6:3:11 | function source | main.go:23:31:23:36 | source | -| main.go:3:6:3:11 | function source | main.go:31:31:31:36 | source | -| main.go:3:6:3:11 | function source | main.go:40:30:40:35 | source | -| main.go:3:6:3:11 | function source | main.go:46:32:46:37 | source | -| main.go:3:6:3:11 | function source | main.go:54:17:54:22 | source | -| main.go:3:6:3:11 | function source | main.go:62:18:62:23 | source | -| main.go:3:6:3:11 | function source | main.go:72:17:72:22 | source | -| main.go:3:6:3:11 | function source | main.go:80:18:80:23 | source | -| main.go:3:6:3:11 | function source | main.go:91:16:91:21 | source | -| main.go:3:6:3:11 | function source | main.go:98:17:98:22 | source | -| main.go:3:6:3:11 | function source | main.go:107:22:107:27 | source | -| main.go:3:6:3:11 | function source | main.go:114:23:114:28 | source | -| main.go:3:6:3:11 | function source | main.go:123:23:123:28 | source | -| main.go:3:6:3:11 | function source | main.go:130:24:130:29 | source | -| main.go:3:6:3:11 | function source | main.go:139:29:139:34 | source | -| main.go:3:6:3:11 | function source | main.go:146:30:146:35 | source | -| main.go:7:6:7:9 | function sink | main.go:25:2:25:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:26:2:26:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:27:2:27:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:28:2:28:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:33:2:33:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:34:2:34:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:35:2:35:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:36:2:36:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:41:2:41:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:42:2:42:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:43:2:43:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:44:2:44:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:47:2:47:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:48:2:48:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:49:2:49:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:50:2:50:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:57:2:57:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:58:2:58:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:59:2:59:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:60:2:60:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:65:2:65:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:66:2:66:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:67:2:67:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:68:2:68:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:75:2:75:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:76:2:76:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:77:2:77:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:78:2:78:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:83:2:83:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:84:2:84:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:85:2:85:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:86:2:86:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:92:2:92:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:93:2:93:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:94:2:94:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:95:2:95:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:99:2:99:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:100:2:100:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:101:2:101:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:102:2:102:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:108:2:108:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:109:2:109:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:110:2:110:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:111:2:111:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:115:2:115:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:116:2:116:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:117:2:117:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:118:2:118:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:124:2:124:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:125:2:125:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:126:2:126:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:127:2:127:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:131:2:131:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:132:2:132:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:133:2:133:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:134:2:134:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:140:2:140:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:141:2:141:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:142:2:142:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:143:2:143:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:147:2:147:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:148:2:148:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:149:2:149:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:150:2:150:5 | sink | | main.go:22:2:22:6 | definition of outer | main.go:25:7:25:11 | outer | | main.go:22:11:24:2 | struct literal | main.go:22:2:22:6 | definition of outer | | main.go:22:11:24:2 | struct literal [postupdate] | main.go:22:2:22:6 | definition of outer | From 2c16cb46ad66c19ba280d48b1de4983cbc5eddee Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Thu, 16 Apr 2026 11:30:10 +0100 Subject: [PATCH 134/208] Quote library name in backticks Co-authored-by: Sarita Iyer <66540150+saritai@users.noreply.github.com> --- .../customizing-library-models-for-go.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index 4e303d22c4c..b1fbcbcb21e 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -344,7 +344,7 @@ The remaining values are used to define the ``access-path``, the ``kind``, and t Example: Add a barrier using the ``Htmlquote`` function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how the Go query pack models a barrier that stops the flow of taint. -The ``Htmlquote`` function from the beego framework HTML-escapes a string, which prevents HTML injection attacks. +The ``Htmlquote`` function from the `beego` framework HTML-escapes a string, which prevents HTML injection attacks. .. code-block:: go From 5a7b1b91e0328f7527e8c74da3b9675178d06a48 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 16 Apr 2026 11:41:30 +0100 Subject: [PATCH 135/208] Fix mistakes in explanation of override column To avoid copy-paste mistakes and make them more consistent we just use the word "model". --- .../customizing-library-models-for-cpp.rst | 10 +++++----- .../customizing-library-models-for-csharp.rst | 14 +++++++------- .../customizing-library-models-for-go.rst | 18 +++++++++--------- ...zing-library-models-for-java-and-kotlin.rst | 12 ++++++------ 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index eddbda10a12..0c632795ddc 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -93,7 +93,7 @@ The first five values identify the callable (in this case a free function) to be - The first value ``"boost::asio"`` is the namespace name. - The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"read_until"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``read_until``. @@ -129,7 +129,7 @@ The first five values identify the callable (in this case a free function) to be - The first value ``"boost::asio"`` is the namespace name. - The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"write"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``write``. @@ -166,7 +166,7 @@ The first five values identify the callable (in this case free function) to be m - The first value ``"boost::asio"`` is the namespace name. - The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"buffer"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``buffer``. @@ -208,7 +208,7 @@ The first five values identify the callable (in this case a free function) to be - The first value ``""`` is the namespace name. - The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the barrier also applies to all overrides of the method. For a free function, this should be ``False``. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"mysql_real_escape_string"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. @@ -248,7 +248,7 @@ The first five values identify the callable (in this case a free function) to be - The first value ``""`` is the namespace name. - The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the barrier guard also applies to all overrides of the method. For a free function, this should be ``False``. +- The third value ``False`` is a flag that indicates whether or not the model guard also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"is_safe"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index 7f9594a73c0..95ea882bac4 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -98,7 +98,7 @@ The first five values identify the callable (in this case a method) to be modele - The first value ``System.Data.SqlClient`` is the namespace name. - The second value ``SqlCommand`` is the name of the class (type) that contains the method. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``SqlCommand`` is the method name. Constructors are named after the class. - The fifth value ``(System.String,System.Data.SqlClient.SqlConnection)`` is the method input type signature. The type names must be fully qualified. @@ -138,7 +138,7 @@ The first five values identify the callable (in this case a method) to be modele - The first value ``System.Net.Sockets`` is the namespace name. - The second value ``TcpClient`` is the name of the class (type) that contains the source. -- The third value ``False`` is a flag that indicates whether or not the source also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``GetStream`` is the method name. - The fifth value ``()`` is the method input type signature. @@ -182,7 +182,7 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``System`` is the namespace name. - The second value ``String`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``Concat`` is the method name. - The fifth value ``(System.Object,System.Object)`` is the method input type signature. @@ -238,7 +238,7 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``System`` is the namespace name. - The second value ``String`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``Trim`` is the method name. - The fifth value ``()`` is the method input type signature. @@ -282,7 +282,7 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``System.Linq`` is the namespace name. - The second value ``Enumerable`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``Select`` is the method name, along with the type parameters for the method. The names of the generic type parameters provided in the model must match the names of the generic type parameters in the method signature in the source code. - The fifth value ``(System.Collections.Generic.IEnumerable,System.Func)`` is the method input type signature. The generics in the signature must match the generics in the method signature in the source code. @@ -339,7 +339,7 @@ The first five values identify the callable (in this case the getter of a proper - The first value ``System.Web`` is the namespace name. - The second value ``HttpRequest`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the barrier also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``get_RawUrl`` is the method name. Getter and setter methods are named ``get_`` and ``set_`` respectively. - The fifth value ``()`` is the method input type signature. @@ -381,7 +381,7 @@ The first five values identify the callable (in this case the getter of a proper - The first value ``System`` is the namespace name. - The second value ``Uri`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the barrier guard also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model guard also applies to all overrides of the method. - The fourth value ``get_IsAbsoluteUri`` is the method name. Getter and setter methods are named ``get_`` and ``set_`` respectively. - The fifth value ``()`` is the method input type signature. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index b1fbcbcb21e..1fd41b49e27 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -98,7 +98,7 @@ The first five values identify the function (in this case a method) to be modele - The first value ``database/sql`` is the package name. - The second value ``DB`` is the name of the type that the method is associated with. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. - The fourth value ``Prepare`` is the method name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. @@ -139,7 +139,7 @@ The first five values identify the function to be modeled as a source. - The first value ``net/http`` is the package name. - The second value ``Request`` is the type name, since the function is a method of the ``Request`` type. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. - The fourth value ``FormValue`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. @@ -182,7 +182,7 @@ The first five values identify the function to be modeled as a summary. - The first value ``slices`` is the package name. - The second value ``""`` is left blank, since the function is not a method of a type. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to subtypes. This has no effect for non-method functions. +- The third value ``False`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. - The fourth value ``Max`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. @@ -227,7 +227,7 @@ The first five values identify the function to be modeled as a summary. - The first value ``slices`` is the package name. - The second value ``""`` is left blank, since the function is not a method of a type. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to subtypes. This has no effect for non-method functions. +- The third value ``False`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. - The fourth value ``Max`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. @@ -274,7 +274,7 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``strings`` is the package name. - The second value ``""`` is left blank, since the function is not a method of a type. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to subtypes. This has no effect for non-method functions. +- The third value ``False`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. - The fourth value ``Join`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. @@ -329,7 +329,7 @@ The first five values identify the function (in this case a method) to be modele - The first value ``net/url`` is the package name. - The second value ``URL`` is the receiver type. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. - The fourth value ``Hostname`` is the method name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. @@ -370,7 +370,7 @@ The first five values identify the function to be modeled as a barrier. - The first value ``group:beego`` is the package group name. The ``group:`` prefix indicates that this is a package group, which is used to match multiple package paths that refer to the same package. - The second value ``""`` is left blank since the function is not a method of a type. -- The third value ``True`` is a flag that indicates whether or not the barrier also applies to subtypes. This has no effect for non-method functions. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. - The fourth value ``Htmlquote`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. @@ -411,7 +411,7 @@ The first five values identify the function to be modeled as a barrier guard. - The first value ``example.com/example`` is the package name. - The second value ``""`` is left blank since the function is not a method of a type. -- The third value ``False`` is a flag that indicates whether or not the barrier guard also applies to subtypes. This has no effect for non-method functions. +- The third value ``False`` is a flag that indicates whether or not the model guard also applies to subtypes. This has no effect for non-method functions. - The fourth value ``IsSafe`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. @@ -450,7 +450,7 @@ The first five values identify the field to be modeled as a source. - The first value ``net/http`` is the package name. - The second value ``Request`` is the name of the type that the field is associated with. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. For fields this means when the field is accessed as a promoted field in another type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. For fields this means when the field is accessed as a promoted field in another type. - The fourth value ``Body`` is the field name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index d8c2ad2d18a..3979dfa91bd 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -104,7 +104,7 @@ The first five values identify the callable (in this case a method) to be modele - The first value ``java.sql`` is the package name. - The second value ``Statement`` is the name of the class (type) that contains the method. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to all overrides of the method. +- The third value ``True`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``execute`` is the method name. - The fifth value ``(String)`` is the method input type signature. @@ -144,7 +144,7 @@ The first five values identify the callable (in this case a method) to be modele - The first value ``java.net`` is the package name. - The second value ``Socket`` is the name of the class (type) that contains the source. -- The third value ``False`` is a flag that indicates whether or not the source also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``getInputStream`` is the method name. - The fifth value ``()`` is the method input type signature. @@ -188,7 +188,7 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``java.lang`` is the package name. - The second value ``String`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``concat`` is the method name. - The fifth value ``(String)`` is the method input type signature. @@ -232,7 +232,7 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``java.util.stream`` is the package name. - The second value ``Stream`` is the class (type) name. -- The third value ``True`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``True`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``map`` is the method name. - The fifth value ``Function`` is the method input type signature. @@ -288,7 +288,7 @@ The first five values identify the callable (in this case a method) to be modele - The first value ``java.io`` is the package name. - The second value ``File`` is the name of the class (type) that contains the method. -- The third value ``True`` is a flag that indicates whether or not the barrier also applies to all overrides of the method. +- The third value ``True`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``getName`` is the method name. - The fifth value ``()`` is the method input type signature. @@ -332,7 +332,7 @@ The first five values identify the callable (in this case a method) to be modele - The first value ``java.net`` is the package name. - The second value ``URI`` is the name of the class (type) that contains the method. -- The third value ``True`` is a flag that indicates whether or not the barrier guard also applies to all overrides of the method. +- The third value ``True`` is a flag that indicates whether or not the model guard also applies to all overrides of the method. - The fourth value ``isAbsolute`` is the method name. - The fifth value ``()`` is the method input type signature. From 82d9d46fdedb7ade555e64729980d2a6f1a4c894 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 16 Apr 2026 12:22:42 +0100 Subject: [PATCH 136/208] Remove duplication and standardize wording Co-authored-by: Copilot --- .../customizing-library-models-for-cpp.rst | 6 --- .../customizing-library-models-for-csharp.rst | 11 ------ .../customizing-library-models-for-go.rst | 10 ----- ...ing-library-models-for-java-and-kotlin.rst | 13 ------- ...tomizing-library-models-for-javascript.rst | 39 +++++++------------ .../customizing-library-models-for-python.rst | 32 +++++++-------- .../customizing-library-models-for-ruby.rst | 27 +++++-------- 7 files changed, 39 insertions(+), 99 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index 0c632795ddc..7ca61963227 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -88,7 +88,6 @@ We need to add a tuple to the ``sourceModel(namespace, type, subtypes, name, sig data: - ["boost::asio", "", False, "read_until", "", "", "Argument[*1]", "remote", "manual"] -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the callable (in this case a free function) to be modeled as a source. - The first value ``"boost::asio"`` is the namespace name. @@ -124,7 +123,6 @@ We need to add a tuple to the ``sinkModel(namespace, type, subtypes, name, signa data: - ["boost::asio", "", False, "write", "", "", "Argument[*1]", "remote-sink", "manual"] -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the callable (in this case a free function) to be modeled as a sink. - The first value ``"boost::asio"`` is the namespace name. @@ -160,8 +158,6 @@ We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, sig data: - ["boost::asio", "", False, "buffer", "", "", "Argument[*0]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a function, we need to add tuples to the ``summaryModel`` extensible predicate. - The first five values identify the callable (in this case free function) to be modeled as a summary. - The first value ``"boost::asio"`` is the namespace name. @@ -203,7 +199,6 @@ We need to add a tuple to the ``barrierModel(namespace, type, subtypes, name, si data: - ["", "", False, "mysql_real_escape_string", "", "", "Argument[*1]", "sql-injection", "manual"] -Since we are adding a barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. The first five values identify the callable (in this case a free function) to be modeled as a barrier. - The first value ``""`` is the namespace name. @@ -243,7 +238,6 @@ We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, nam data: - ["", "", False, "is_safe", "", "", "Argument[*0]", "true", "sql-injection", "manual"] -Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. The first five values identify the callable (in this case a free function) to be modeled as a barrier guard. - The first value ``""`` is the namespace name. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index 95ea882bac4..a4b0e26d1bc 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -93,7 +93,6 @@ We need to add a tuple to the ``sinkModel``\(namespace, type, subtypes, name, si data: - ["System.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,System.Data.SqlClient.SqlConnection)", "", "Argument[0]", "sql-injection", "manual"] -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a sink. - The first value ``System.Data.SqlClient`` is the namespace name. @@ -132,8 +131,6 @@ We need to add a tuple to the ``sourceModel(namespace, type, subtypes, name, sig data: - ["System.Net.Sockets", "TcpClient", False, "GetStream", "()", "", "ReturnValue", "remote", "manual"] - -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a source. - The first value ``System.Net.Sockets`` is the namespace name. @@ -173,7 +170,6 @@ We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, sig - ["System", "String", False, "Concat", "(System.Object,System.Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["System", "String", False, "Concat", "(System.Object,System.Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the first argument (``s1`` in the example) to the return value (``t`` in the example) and the second row defines flow from the second argument (``s2`` in the example) to the return value (``t`` in the example). @@ -229,7 +225,6 @@ We need to add a tuple to the ``summaryModel(namespace, type, subtypes, name, si data: - ["System", "String", False, "Trim", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the qualifier of the method call (``s1`` in the example) to the return value (``t`` in the example). @@ -274,8 +269,6 @@ We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, sig - ["System.Linq", "Enumerable", False, "Select", "(System.Collections.Generic.IEnumerable,System.Func)", "", "Argument[0].Element", "Argument[1].Parameter[0]", "value", "manual"] - ["System.Linq", "Enumerable", False, "Select", "(System.Collections.Generic.IEnumerable,System.Func)", "", "Argument[1].ReturnValue", "ReturnValue.Element", "value", "manual"] - -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines part of the flow that comprises the total flow through the ``Select`` method. The first five values identify the callable (in this case a method) to be modeled as a summary. These are the same for both of the rows above as we are adding two summaries for the same method. @@ -334,7 +327,6 @@ We need to add a tuple to the ``barrierModel(namespace, type, subtypes, name, si data: - ["System.Web", "HttpRequest", False, "get_RawUrl", "()", "", "ReturnValue", "url-redirection", "manual"] -Since we are adding a barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. The first five values identify the callable (in this case the getter of a property) to be modeled as a barrier. - The first value ``System.Web`` is the namespace name. @@ -376,7 +368,6 @@ We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, nam data: - ["System", "Uri", False, "get_IsAbsoluteUri", "()", "", "Argument[this]", "false", "url-redirection", "manual"] -Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. The first five values identify the callable (in this case the getter of a property) to be modeled as a barrier guard. - The first value ``System`` is the namespace name. @@ -416,8 +407,6 @@ We need to add a tuple to the ``neutralModel(namespace, type, name, signature, k data: - ["System", "DateTime", "get_Now", "()", "summary", "manual"] - -Since we are adding a neutral model, we need to add tuples to the ``neutralModel`` extensible predicate. The first four values identify the callable (in this case the getter of the ``Now`` property) to be modeled as a neutral, the fifth value is the kind, and the sixth value is the provenance (origin) of the neutral. - The first value ``System`` is the namespace name. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index 1fd41b49e27..2eb9446459f 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -93,7 +93,6 @@ We need to add a tuple to the ``sinkModel``\(package, type, subtypes, name, sign data: - ["database/sql", "DB", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the function (in this case a method) to be modeled as a sink. - The first value ``database/sql`` is the package name. @@ -133,8 +132,6 @@ We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signa data: - ["net/http", "Request", True, "FormValue", "", "", "ReturnValue", "remote", "manual"] - -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the function to be modeled as a source. - The first value ``net/http`` is the package name. @@ -175,7 +172,6 @@ We need to add a tuple to the ``summaryModel(package, type, subtypes, name, sign data: - ["slices", "", False, "Max", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. The first row defines flow from the first argument (``a`` in the example) to the return value (``max`` in the example). The first five values identify the function to be modeled as a summary. @@ -220,7 +216,6 @@ We need to add a tuple to the ``summaryModel(package, type, subtypes, name, sign data: - ["slices", "", False, "Concat", "", "", "Argument[0].ArrayElement.ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. The first row defines flow from the arguments (``a`` and ``b`` in the example) to the return value (``c`` in the example). The first five values identify the function to be modeled as a summary. @@ -265,7 +260,6 @@ We need to add tuples to the ``summaryModel(package, type, subtypes, name, signa - ["strings", "", False, "Join", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["strings", "", False, "Join", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the first argument (``elems`` in the example) to the return value (``t`` in the example) and the second row defines flow from the second argument (``sep`` in the example) to the return value (``t`` in the example). @@ -321,7 +315,6 @@ We need to add a tuple to the ``summaryModel(package, type, subtypes, name, sign data: - ["net/url", "URL", True, "Hostname", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the qualifier of the method call (``u`` in the example) to the return value (``host`` in the example). @@ -365,7 +358,6 @@ We need to add a tuple to the ``barrierModel(package, type, subtypes, name, sign data: - ["group:beego", "", True, "Htmlquote", "", "", "ReturnValue", "html-injection", "manual"] -Since we are adding a barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. The first five values identify the function to be modeled as a barrier. - The first value ``group:beego`` is the package group name. The ``group:`` prefix indicates that this is a package group, which is used to match multiple package paths that refer to the same package. @@ -406,7 +398,6 @@ We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, data: - ["example.com/example", "", False, "IsSafe", "", "", "Argument[0]", "true", "sql-injection", "manual"] -Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. The first five values identify the function to be modeled as a barrier guard. - The first value ``example.com/example`` is the package name. @@ -445,7 +436,6 @@ We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signa data: - ["net/http", "Request", True, "Body", "", "", "", "remote", "manual"] -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the field to be modeled as a source. - The first value ``net/http`` is the package name. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 3979dfa91bd..203213b9425 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -98,8 +98,6 @@ We need to add a tuple to the ``sinkModel(package, type, subtypes, name, signatu data: - ["java.sql", "Statement", True, "execute", "(String)", "", "Argument[0]", "sql-injection", "manual"] - -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a sink. - The first value ``java.sql`` is the package name. @@ -138,8 +136,6 @@ We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signa data: - ["java.net", "Socket", False, "getInputStream", "()", "", "ReturnValue", "remote", "manual"] - -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a source. - The first value ``java.net`` is the package name. @@ -179,7 +175,6 @@ We need to add tuples to the ``summaryModel(package, type, subtypes, name, signa - ["java.lang", "String", False, "concat", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "concat", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the qualifier (``s1`` in the example) to the return value (``t`` in the example) and the second row defines flow from the first argument (``s2`` in the example) to the return value (``t`` in the example). @@ -224,8 +219,6 @@ We need to add tuples to the ``summaryModel(package, type, subtypes, name, signa - ["java.util.stream", "Stream", True, "map", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "map", "(Function)", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines part of the flow that comprises the total flow through the ``map`` method. The first five values identify the callable (in this case a method) to be modeled as a summary. These are the same for both of the rows above as we are adding two summaries for the same method. @@ -282,8 +275,6 @@ We need to add a tuple to the ``barrierModel(package, type, subtypes, name, sign data: - ["java.io", "File", True, "getName", "()", "", "ReturnValue", "path-injection", "manual"] - -Since we are adding a new barrier, we need to add a tuple to the ``barrierModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a barrier. - The first value ``java.io`` is the package name. @@ -326,8 +317,6 @@ We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, data: - ["java.net", "URI", True, "isAbsolute", "()", "", "Argument[this]", "false", "request-forgery", "manual"] - -Since we are adding a barrier guard, we need to add a tuple to the ``barrierGuardModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a barrier guard. - The first value ``java.net`` is the package name. @@ -367,8 +356,6 @@ We need to add a tuple to the ``neutralModel(package, type, name, signature, kin data: - ["java.time", "Instant", "now", "()", "summary", "manual"] - -Since we are adding a neutral model, we need to add tuples to the ``neutralModel`` extensible predicate. The first four values identify the callable (in this case a method) to be modeled as a neutral, the fifth value is the kind, and the sixth value is the provenance (origin) of the neutral. - The first value ``java.time`` is the package name. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index 8b4653b8f4a..c159bfc5abe 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -41,7 +41,8 @@ In this example, we'll show how to add the following argument, passed to **execa import { shell } from "execa"; shell(cmd); // <-- add 'cmd' as a taint sink -Note that this sink is already recognized by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this sink is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +**sinkModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -52,8 +53,6 @@ Note that this sink is already recognized by the CodeQL JS analysis, but for thi data: - ["execa", "Member[shell].Argument[0]", "command-injection"] - -- Since we're adding a new sink, we add a tuple to the **sinkModel** extensible predicate. - The first column, **"execa"**, identifies a set of values from which to begin the search for the sink. The string **"execa"** means we start at the places where the codebase imports the NPM package **execa**. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. @@ -74,7 +73,8 @@ In this example, we'll show how the **event.data** expression below could be mar let data = event.data; // <-- add 'event.data' as a taint source }); -Note that this source is already known by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this source is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +**sourceModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -89,8 +89,6 @@ Note that this source is already known by the CodeQL JS analysis, but for this e "remote", ] - -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. - The first column, **"global"**, begins the search at references to the global object (also known as **window** in browser contexts). This is a special JavaScript object that contains all global variables and methods. - **Member[addEventListener]** selects accesses to the **addEventListener** member. - **Argument[1]** selects the second argument of calls to that member (the argument containing the callback). @@ -143,7 +141,7 @@ In this example, we'll show how to add the following SQL injection sink: connection.query(q); // <-- add 'q' as a SQL injection sink } -We can recognize this using the following extension: +We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -154,7 +152,6 @@ We can recognize this using the following extension: data: - ["mysql.Connection", "Member[query].Argument[0]", "sql-injection"] - - The first column, **"mysql.Connection"**, begins the search at any expression whose value is known to be an instance of the **Connection** type from the **mysql** package. This will select the **connection** parameter above because of its type annotation. - **Member[query]** selects the **query** member from the connection object. @@ -188,7 +185,8 @@ Suppose we want the model from above to detect the sink in this snippet: connection.query(q); // <-- add 'q' as a SQL injection sink There is no type annotation on **connection**, and there is no indication of what **getConnection()** returns. -Using a **typeModel** tuple we can tell our model that this function returns an instance of **mysql.Connection**: +By adding a tuple to the ``typeModel(type1, type2, path)`` extensible predicate we can tell our model that +this function returns an instance of **mysql.Connection**: .. code-block:: yaml @@ -199,8 +197,6 @@ Using a **typeModel** tuple we can tell our model that this function returns an data: - ["mysql.Connection", "@example/db", "Member[getConnection].ReturnValue"] - -- Since we're providing type information, we add a tuple to the **typeModel** extensible predicate. - The first column, **"mysql.Connection"**, names the type that we're adding a new definition for. - The second column, **"@example/db"**, begins the search at imports of the hypothetical NPM package **@example/db**. - **Member[getConnection]** selects references to the **getConnection** member from that package. @@ -230,7 +226,7 @@ In this example, we'll show how to add the following SQL injection sink using a conn.query(q, (err, rows) => {...}); // <-- add 'q' as a SQL injection sink }); -We can recognize this using a fuzzy model, as shown in the following extension: +We need to add a tuple for a fuzzy model to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -279,7 +275,8 @@ In this example, we'll show how to add flow through calls to `decodeURIComponent let y = decodeURIComponent(x); // add taint flow from 'x' to 'y' -Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -296,8 +293,6 @@ Note that this flow is already recognized by the CodeQL JS analysis, but for thi "taint", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. - The first column, **"global"**, begins the search for relevant calls at references to the global object. In JavaScript, global variables are properties of the global object, so this lets us access global variables or functions. - The second column, **Member[decodeURIComponent]**, is a path leading to the function calls we wish to model. @@ -317,7 +312,8 @@ In this example, we'll show how to add flow through calls to **forEach** from th require('underscore').forEach([x, y], (v) => { ... }); // add value flow from 'x' and 'y' to 'v' -Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -334,8 +330,6 @@ Note that this flow is already recognized by the CodeQL JS analysis, but for thi "value", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. - The first column, **"underscore"**, begins the search for relevant calls at places where the **underscore** package is imported. - The second column, **Member[forEach]**, selects references to the **forEach** member from the **underscore** package. - The third column specifies the input of the flow: @@ -369,7 +363,7 @@ on the incoming request objects: req.data; // <-- mark 'req.data' as a taint source }); -This can be achieved with the following data extension: +We need to add a tuple to the ``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -384,7 +378,6 @@ This can be achieved with the following data extension: "remote", ] -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. - The first column, **"@example/middleware"**, begins the search at imports of the hypothetical NPM package **@example/middleware**. - **Member[injectData]** selects accesses to the **injectData** member. - **ReturnValue** selects the return value of the call to **injectData**. @@ -403,7 +396,7 @@ In this example, we'll show how to add the return value of **encodeURIComponent* let escaped = encodeURIComponent(input); // The return value of this method is safe for XSS. document.body.innerHTML = escaped; -We can model this using the following data extension: +We need to add a tuple to the ``barrierModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -414,7 +407,6 @@ We can model this using the following data extension: data: - ["global", "Member[encodeURIComponent].ReturnValue", "html-injection"] -- Since we are adding a barrier, we need to add a tuple to the **barrierModel** extensible predicate. - The first column, **"global"**, begins the search for relevant calls at references to the global object. - The second column, **Member[encodeURIComponent].ReturnValue**, selects the return value of the **encodeURIComponent** function. - The third column, **"html-injection"**, is the kind of the barrier. @@ -431,7 +423,7 @@ Consider a function called `isValid` which returns `true` when the data is consi db.query(userInput); // This is safe. } -We can model this using the following data extension: +We need to add a tuple to the ``barrierGuardModel(type, path, acceptingValue, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -442,7 +434,6 @@ We can model this using the following data extension: data: - ["my-package", "Member[isValid].Argument[0]", "true", "sql-injection"] -- Since we are adding a barrier guard, we need to add a tuple to the **barrierGuardModel** extensible predicate. - The first column, **"my-package"**, begins the search at imports of the hypothetical NPM package **my-package**. - The second column, **Member[isValid].Argument[0]**, selects the first argument of the `isValid` function. This is the value being validated. - The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 9b055d87d00..2b00d669fb9 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -41,7 +41,8 @@ In this example, we'll show how to add the following argument, passed to **sudo* from fabric.operations import sudo sudo(cmd) # <-- add 'cmd' as a taint sink -Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +**sinkModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -52,8 +53,6 @@ Note that this sink is already recognized by the CodeQL Python analysis, but for data: - ["fabric", "Member[operations].Member[sudo].Argument[0]", "command-injection"] - -- Since we're adding a new sink, we add a tuple to the **sinkModel** extensible predicate. - The first column, **"fabric"**, identifies a set of values from which to begin the search for the sink. The string **"fabric"** means we start at the places where the codebase imports the package **fabric**. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. @@ -75,7 +74,8 @@ Often sinks are found as arguments to methods rather than functions. In this exa c = invoke.Context() c.run(cmd) # <-- add 'cmd' as a taint sink -Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +**sinkModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -121,7 +121,8 @@ The invoke package provides multiple ways to obtain a **Context** instance. The c.run(cmd) # <-- add 'cmd' as a taint sink Comparing to the previous Python snippet, the **Context** class is now found as **invoke.context.Context** instead of **invoke.Context**. -We could add a data extension similar to the previous one, but with the type **invoke.context.Context**. However, we can also use the **typeModel** extensible predicate to describe how to reach **invoke.Context** from **invoke.context.Context**: +We could add a data extension similar to the previous one, but with the type **invoke.context.Context**. +However, we can also use the **typeModel(type1, type2, path)** extensible predicate to describe how to reach **invoke.Context** from **invoke.context.Context**: .. code-block:: yaml @@ -158,7 +159,8 @@ This filename is what we want to mark as a taint source. An example use looks as class MyModel(models.Model): upload = models.FileField(upload_to=user_directory_path) # <-- the 'upload_to' parameter defines our custom function -Note that this source is already known by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this source is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +**sourceModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -173,8 +175,6 @@ Note that this source is already known by the CodeQL Python analysis, but for th "remote", ] - -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. - The first column, **"django.db.models.FileField!"**, is a dotted path to the **FileField** class from the **django.db.models** package. The **!** at the end of the type name indicates that we are looking for the class itself rather than instances of this class. @@ -198,7 +198,8 @@ In this example, we'll show how to add flow through calls to ``re.compile``. let y = re.compile(pattern = x); // add value flow from 'x' to 'y.pattern' -Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -215,8 +216,6 @@ Note that this flow is already recognized by the CodeQL Python analysis, but for "value", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. - The first column, **"re"**, begins the search for relevant calls at places where the **re** package is imported. - The second column, **"Member[compile]"**, is a path leading to the function calls we wish to model. In this case, we select references to the **compile** function from the ``re`` package. @@ -234,7 +233,8 @@ In this example, we'll show how to add flow through calls to the built-in functi y = sorted(x) # add taint flow from 'x' to 'y' -Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -251,8 +251,6 @@ Note that this flow is already recognized by the CodeQL Python analysis, but for "taint", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. - The first column, **"builtins"**, begins the search for relevant calls among references to the built-in names. In Python, many built-in functions are available. Technically, most of these are part of the **builtins** package, but they can be accessed without an explicit import. When we write **builtins** in the first column, we will find both the implicit and explicit references to the built-in functions. - The second column, **"Member[sorted]"**, selects references to the **sorted** function from the **builtins** package; that is, the built-in function **sorted**. @@ -291,7 +289,7 @@ In this example, we'll show how to add the return value of **html.escape** as a import html escaped = html.escape(unknown) # The return value of this function is safe for XSS. -We can model this using the following data extension: +We need to add a tuple to the **barrierModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -302,7 +300,6 @@ We can model this using the following data extension: data: - ["html", "Member[escape].ReturnValue", "html-injection"] -- Since we are adding a barrier, we need to add a tuple to the **barrierModel** extensible predicate. - The first column, **"html"**, begins the search at places where the **html** module is imported. - The second column, **Member[escape].ReturnValue**, selects the return value of the **escape** function from the **html** module. - The third column, **"html-injection"**, is the kind of the barrier. @@ -319,7 +316,7 @@ Consider the function ``url_has_allowed_host_and_scheme`` from the ``django.util if url_has_allowed_host_and_scheme(url, allowed_hosts=...): # The check guards the use of 'url', so it is safe. redirect(url) # This is safe. -We need to add a tuple ``(type, path, acceptingValue, kind)`` to the ``barrierGuardModel`` extensible predicate by updating a data extension file. +We need to add a tuple to the **barrierGuardModel(type, path, acceptingValue, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -335,7 +332,6 @@ We need to add a tuple ``(type, path, acceptingValue, kind)`` to the ``barrierGu "url-redirection", ] -- Since we are adding a barrier guard, we need to add a tuple to the **barrierGuardModel** extensible predicate. - The first column, **"django"**, begins the search at places where the **django** package is imported. - The second column, **Member[utils].Member[http].Member[url_has_allowed_host_and_scheme].Argument[0,url:]**, selects the first argument (or the keyword argument ``url``) of the ``url_has_allowed_host_and_scheme`` function in the ``django.utils.http`` module. This is the value being validated. - The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index 387c4194c48..53392d516ae 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -42,7 +42,8 @@ In this example, we'll show how to add the following argument, passed to **tty-c tty = TTY::Command.new tty.run(cmd) # <-- add 'cmd' as a taint sink -For this example, you can use the following data extension: + +We need to add a tuple to the **sinkModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -54,7 +55,6 @@ For this example, you can use the following data extension: - ["TTY::Command", "Method[run].Argument[0]", "command-injection"] -- Since we're adding a new sink, we add a tuple to the **sinkModel** extensible predicate. - The first column, **"TTY::Command"**, identifies a set of values from which to begin the search for the sink. The string **"TTY::Command""** means we start at the places where the codebase constructs instances of the class **TTY::Command**. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. @@ -77,7 +77,7 @@ In this example, we'll show how the 'x' parameter below could be marked as a rem end end -For this example you could use the following data extension: +We need to add a tuple to the **sourceModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -92,7 +92,6 @@ For this example you could use the following data extension: "remote", ] -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. - The first column, **"Sinatra::Base!"**, begins the search at references to the **Sinatra::Base** class. The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. - **Method[get]** selects calls to the **get** method of the **Sinatra::Base** class. @@ -112,7 +111,7 @@ In this example, we'll show how to add the following SQL injection sink: client.query(q) # <-- add 'q' as a SQL injection sink end -We can recognize this using the following extension: +We need to add a tuple to the **sinkModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -143,8 +142,8 @@ The client is obtained via a call to **Mysql2::EM::Client.new**. So far we have only one model for **Mysql2::Client**, but in the real world we may have many models for the various methods available. Because **Mysql2::EM::Client** is a subclass of **Mysql2::Client**, it inherits all of the same methods. -Instead of updating all our models to include both classes, we can add a type -model to indicate that **Mysql2::EM::Client** is a subclass of **Mysql2::Client**: +Instead of updating all our models to include both classes, we can add a tuple to the **typeModel(type, subtype, ext)** extensible predicate to indicate that +**Mysql2::EM::Client** is a subclass of **Mysql2::Client**: .. code-block:: yaml @@ -164,7 +163,7 @@ In this example, we'll show how to add flow through calls to 'URI.decode_uri_com y = URI.decode_uri_component(x); # add taint flow from 'x' to 'y' -We can model this using the following data extension: +We need to add a tuple to the **summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -181,8 +180,6 @@ We can model this using the following data extension: "taint", ] - -- Since we're adding flow through a method call, we add a tuple to the **summaryModel** extensible predicate. - The first column, **"URI!"**, begins the search for relevant calls at references to the **URI** class. The **!** suffix indicates that we are looking for the class itself, rather than instances of the class. - The second column, **Method[decode_uri_component]**, is a path leading to the method calls we wish to model. @@ -202,7 +199,7 @@ In this example, we'll show how to add flow through calls to **File#each** from f = File.new("example.txt") f.each { |line| ... } # add taint flow from `f` to `line` -We can model this using the following data extension: +We need to add a tuple to the **summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -219,8 +216,6 @@ We can model this using the following data extension: "taint", ] - -- Since we're adding flow through a method call, we add a tuple to the **summaryModel** extensible predicate. - The first column, **"File"**, begins the search for relevant calls at places where the **File** class is used. - The second column, **Method[each]**, selects references to the **each** method on the **File** class. - The third column specifies the input of the flow. **Argument[self]** selects the **self** argument of **each**, which is the **File** instance being iterated over. @@ -243,7 +238,7 @@ In this example, we'll show how to add the return value of **Mysql2::Client#esca escaped = client.escape(input) # The return value of this method is safe for SQL injection. client.query("SELECT * FROM users WHERE name = '#{escaped}'") -We can model this using the following data extension: +We need to add a tuple to the **barrierModel(type, path, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -254,7 +249,6 @@ We can model this using the following data extension: data: - ["Mysql2::Client!", "Method[escape].ReturnValue", "sql-injection"] -- Since we are adding a barrier, we need to add a tuple to the **barrierModel** extensible predicate. - The first column, **"Mysql2::Client!"**, begins the search for relevant calls at references to the **Mysql2::Client** class. The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. - The second column, **"Method[escape].ReturnValue"**, selects the return value of the **escape** method. @@ -273,7 +267,7 @@ Consider a validation method ``Validator.is_safe`` which returns ``true`` when t client.query("SELECT * FROM users WHERE name = '#{user_input}'") end -We can model this using the following data extension: +We need to add a tuple to the **barrierGuardModel(type, path, acceptingValue, kind)** extensible predicate by updating a data extension file. .. code-block:: yaml @@ -284,7 +278,6 @@ We can model this using the following data extension: data: - ["Validator!", "Method[is_safe].Argument[0]", "true", "sql-injection"] -- Since we are adding a barrier guard, we need to add a tuple to the **barrierGuardModel** extensible predicate. - The first column, **"Validator!"**, begins the search at references to the **Validator** class. The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. - The second column, **"Method[is_safe].Argument[0]"**, selects the first argument of the **is_safe** method. This is the value being validated. From 69c150d5f6d637f684077a643a381d9d79abea2b Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 16 Apr 2026 12:34:47 +0100 Subject: [PATCH 137/208] Use monospace instead of bold for predicate signatures --- ...customizing-library-models-for-actions.rst | 38 +++++++++---------- ...tomizing-library-models-for-javascript.rst | 12 +++--- .../customizing-library-models-for-python.rst | 12 +++--- .../customizing-library-models-for-ruby.rst | 12 +++--- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst index 2bf452b5a90..0b78b37359f 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst @@ -24,26 +24,26 @@ The CodeQL library for GitHub Actions exposes the following extensible predicate Customizing data flow and taint tracking: -- **actionsSourceModel**\(action, version, output, kind, provenance) -- **actionsSinkModel**\(action, version, input, kind, provenance) -- **actionsSummaryModel**\(action, version, input, output, kind, provenance) +- ``actionsSourceModel(action, version, output, kind, provenance)`` +- ``actionsSinkModel(action, version, input, kind, provenance)`` +- ``actionsSummaryModel(action, version, input, output, kind, provenance)`` Customizing Actions-specific analysis: -- **argumentInjectionSinksDataModel**\(regexp, command_group, argument_group) -- **contextTriggerDataModel**\(trigger, context_prefix) -- **externallyTriggerableEventsDataModel**\(event) -- **immutableActionsDataModel**\(action) -- **poisonableActionsDataModel**\(action) -- **poisonableCommandsDataModel**\(regexp) -- **poisonableLocalScriptsDataModel**\(regexp, group) -- **repositoryDataModel**\(visibility, default_branch_name) -- **trustedActionsOwnerDataModel**\(owner) -- **untrustedEventPropertiesDataModel**\(property, kind) -- **untrustedGhCommandDataModel**\(cmd_regex, flag) -- **untrustedGitCommandDataModel**\(cmd_regex, flag) -- **vulnerableActionsDataModel**\(action, vulnerable_version, vulnerable_sha, fixed_version) -- **workflowDataModel**\(path, trigger, job, secrets_source, permissions, runner) +- ``argumentInjectionSinksDataModel(regexp, command_group, argument_group)`` +- ``contextTriggerDataModel(trigger, context_prefix)`` +- ``externallyTriggerableEventsDataModel(event)`` +- ``immutableActionsDataModel(action)`` +- ``poisonableActionsDataModel(action)`` +- ``poisonableCommandsDataModel(regexp)`` +- ``poisonableLocalScriptsDataModel(regexp, group)`` +- ``repositoryDataModel(visibility, default_branch_name)`` +- ``trustedActionsOwnerDataModel(owner)`` +- ``untrustedEventPropertiesDataModel(property, kind)`` +- ``untrustedGhCommandDataModel(cmd_regex, flag)`` +- ``untrustedGitCommandDataModel(cmd_regex, flag)`` +- ``vulnerableActionsDataModel(action, vulnerable_version, vulnerable_sha, fixed_version)`` +- ``workflowDataModel(path, trigger, job, secrets_source, permissions, runner)`` Examples of custom model definitions ------------------------------------ @@ -62,9 +62,9 @@ To allow any Action from the publisher ``octodemo``, such as ``octodemo/3rd-part .. code-block:: yaml extensions: - - addsTo: + - addsTo: pack: codeql/actions-all - extensible: trustedActionsOwnerDataModel + extensible: trustedActionsOwnerDataModel data: - ["octodemo"] diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index c159bfc5abe..fd39fc35714 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -22,12 +22,12 @@ A data extension for JavaScript is a YAML file of the form: The CodeQL library for JavaScript exposes the following extensible predicates: -- **sourceModel**\(type, path, kind) -- **sinkModel**\(type, path, kind) -- **typeModel**\(type1, type2, path) -- **summaryModel**\(type, path, input, output, kind) -- **barrierModel**\(type, path, kind) -- **barrierGuardModel**\(type, path, acceptingValue, kind) +- ``sourceModel(type, path, kind)`` +- ``sinkModel(type, path, kind)`` +- ``typeModel(type1, type2, path)`` +- ``summaryModel(type, path, input, output, kind)`` +- ``barrierModel(type, path, kind)`` +- ``barrierGuardModel(type, path, acceptingValue, kind)`` We'll explain how to use these using a few examples, and provide some reference material at the end of this article. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 2b00d669fb9..80d7fd5688b 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -22,12 +22,12 @@ A data extension for Python is a YAML file of the form: The CodeQL library for Python exposes the following extensible predicates: -- **sourceModel**\(type, path, kind) -- **sinkModel**\(type, path, kind) -- **typeModel**\(type1, type2, path) -- **summaryModel**\(type, path, input, output, kind) -- **barrierModel**\(type, path, kind) -- **barrierGuardModel**\(type, path, acceptingValue, kind) +- ``sourceModel(type, path, kind)`` +- ``sinkModel(type, path, kind)`` +- ``typeModel(type1, type2, path)`` +- ``summaryModel(type, path, input, output, kind)`` +- ``barrierModel(type, path, kind)`` +- ``barrierGuardModel(type, path, acceptingValue, kind)`` We'll explain how to use these using a few examples, and provide some reference material at the end of this article. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index 53392d516ae..d084e415885 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -23,12 +23,12 @@ A data extension for Ruby is a YAML file of the form: The CodeQL library for Ruby exposes the following extensible predicates: -- **sourceModel**\(type, path, kind) -- **sinkModel**\(type, path, kind) -- **typeModel**\(type1, type2, path) -- **summaryModel**\(type, path, input, output, kind) -- **barrierModel**\(type, path, kind) -- **barrierGuardModel**\(type, path, acceptingValue, kind) +- ``sourceModel(type, path, kind)`` +- ``sinkModel(type, path, kind)`` +- ``typeModel(type1, type2, path)`` +- ``summaryModel(type, path, input, output, kind)`` +- ``barrierModel(type, path, kind)`` +- ``barrierGuardModel(type, path, acceptingValue, kind)`` We'll explain how to use these using a few examples, and provide some reference material at the end of this article. From 73cc54c10d39567cb406db6a29f3c81e79e84ad3 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 16 Apr 2026 12:35:38 +0100 Subject: [PATCH 138/208] Use monospace instead of bold for quoted code --- ...tomizing-library-models-for-javascript.rst | 268 +++++++++--------- .../customizing-library-models-for-python.rst | 214 +++++++------- .../customizing-library-models-for-ruby.rst | 200 ++++++------- 3 files changed, 341 insertions(+), 341 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index fd39fc35714..a0702289cef 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -34,7 +34,7 @@ We'll explain how to use these using a few examples, and provide some reference Example: Taint sink in the 'execa' package ------------------------------------------ -In this example, we'll show how to add the following argument, passed to **execa**, as a command-line injection sink: +In this example, we'll show how to add the following argument, passed to ``execa``, as a command-line injection sink: .. code-block:: js @@ -42,7 +42,7 @@ In this example, we'll show how to add the following argument, passed to **execa shell(cmd); // <-- add 'cmd' as a taint sink Note that this sink is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the -**sinkModel(type, path, kind)** extensible predicate by updating a data extension file. +``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -53,19 +53,19 @@ Note that this sink is already recognized by the CodeQL JS analysis, but for thi data: - ["execa", "Member[shell].Argument[0]", "command-injection"] -- The first column, **"execa"**, identifies a set of values from which to begin the search for the sink. - The string **"execa"** means we start at the places where the codebase imports the NPM package **execa**. +- The first column, ``"execa"``, identifies a set of values from which to begin the search for the sink. + The string ``"execa"`` means we start at the places where the codebase imports the NPM package ``execa``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Member[shell]** selects accesses to the **shell** member of the **execa** package. - - **Argument[0]** selects the first argument to calls to that member. + - ``Member[shell]`` selects accesses to the ``shell`` member of the ``execa`` package. + - ``Argument[0]`` selects the first argument to calls to that member. -- **command-injection** indicates that this is considered a sink for the command injection query. +- ``command-injection`` indicates that this is considered a sink for the command injection query. Example: Taint sources from window 'message' events --------------------------------------------------- -In this example, we'll show how the **event.data** expression below could be marked as a remote flow source: +In this example, we'll show how the ``event.data`` expression below could be marked as a remote flow source: .. code-block:: js @@ -74,7 +74,7 @@ In this example, we'll show how the **event.data** expression below could be mar }); Note that this source is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the -**sourceModel(type, path, kind)** extensible predicate by updating a data extension file. +``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -89,19 +89,19 @@ Note that this source is already recognized by the CodeQL JS analysis, but for t "remote", ] -- The first column, **"global"**, begins the search at references to the global object (also known as **window** in browser contexts). This is a special JavaScript object that contains all global variables and methods. -- **Member[addEventListener]** selects accesses to the **addEventListener** member. -- **Argument[1]** selects the second argument of calls to that member (the argument containing the callback). -- **Parameter[0]** selects the first parameter of the callback (the parameter named **event**). -- **Member[data]** selects accesses to the **data** property of the event object. -- Finally, the kind **remote** indicates that this is considered a source of remote flow. +- The first column, ``"global"``, begins the search at references to the global object (also known as ``window`` in browser contexts). This is a special JavaScript object that contains all global variables and methods. +- ``Member[addEventListener]`` selects accesses to the ``addEventListener`` member. +- ``Argument[1]`` selects the second argument of calls to that member (the argument containing the callback). +- ``Parameter[0]`` selects the first parameter of the callback (the parameter named ``event``). +- ``Member[data]`` selects accesses to the ``data`` property of the event object. +- Finally, the kind ``remote`` indicates that this is considered a source of remote flow. In the next section, we'll show how to restrict the model to recognize events of a specific type. Continued example: Restricting the event type --------------------------------------------- -The model above treats all events as sources of remote flow, not just **message** events. +The model above treats all events as sources of remote flow, not just ``message`` events. For example, it would also pick up this irrelevant source: .. code-block:: js @@ -111,7 +111,7 @@ For example, it would also pick up this irrelevant source: }); -We can refine the model by adding the **WithStringArgument** component to restrict the set of calls being considered: +We can refine the model by adding the ``WithStringArgument`` component to restrict the set of calls being considered: .. code-block:: yaml @@ -126,7 +126,7 @@ We can refine the model by adding the **WithStringArgument** component to restri "remote", ] -The **WithStringArgument[0=message]** component here selects the subset of calls to **addEventListener** where the first argument is a string literal with the value **"message"**. +The ``WithStringArgument[0=message]`` component here selects the subset of calls to ``addEventListener`` where the first argument is a string literal with the value ``"message"``. Example: Using types to add MySQL injection sinks ------------------------------------------------- @@ -152,13 +152,13 @@ We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predica data: - ["mysql.Connection", "Member[query].Argument[0]", "sql-injection"] -- The first column, **"mysql.Connection"**, begins the search at any expression whose value is known to be an instance of - the **Connection** type from the **mysql** package. This will select the **connection** parameter above because of its type annotation. -- **Member[query]** selects the **query** member from the connection object. -- **Argument[0]** selects the first argument of a call to that member. -- **sql-injection** indicates that this is considered a sink for the SQL injection query. +- The first column, ``"mysql.Connection"``, begins the search at any expression whose value is known to be an instance of + the ``Connection`` type from the ``mysql`` package. This will select the ``connection`` parameter above because of its type annotation. +- ``Member[query]`` selects the ``query`` member from the connection object. +- ``Argument[0]`` selects the first argument of a call to that member. +- ``sql-injection`` indicates that this is considered a sink for the SQL injection query. -This works in this example because the **connection** parameter has a type annotation that matches what the model is looking for. +This works in this example because the ``connection`` parameter has a type annotation that matches what the model is looking for. Note that there is a significant difference between the following two rows: @@ -168,8 +168,8 @@ Note that there is a significant difference between the following two rows: - ["mysql.Connection", "", ...] - ["mysql", "Member[Connection]", ...] -The first row matches instances of **mysql.Connection**, which are objects that encapsulate a MySQL connection. -The second row would match something like **require('mysql').Connection**, which is not itself a connection object. +The first row matches instances of ``mysql.Connection``, which are objects that encapsulate a MySQL connection. +The second row would match something like ``require('mysql').Connection``, which is not itself a connection object. In the next section, we'll show how to generalize the model to handle the absence of type annotations. @@ -184,9 +184,9 @@ Suppose we want the model from above to detect the sink in this snippet: let connection = getConnection(); connection.query(q); // <-- add 'q' as a SQL injection sink -There is no type annotation on **connection**, and there is no indication of what **getConnection()** returns. +There is no type annotation on ``connection``, and there is no indication of what ``getConnection()`` returns. By adding a tuple to the ``typeModel(type1, type2, path)`` extensible predicate we can tell our model that -this function returns an instance of **mysql.Connection**: +this function returns an instance of ``mysql.Connection``: .. code-block:: yaml @@ -197,17 +197,17 @@ this function returns an instance of **mysql.Connection**: data: - ["mysql.Connection", "@example/db", "Member[getConnection].ReturnValue"] -- The first column, **"mysql.Connection"**, names the type that we're adding a new definition for. -- The second column, **"@example/db"**, begins the search at imports of the hypothetical NPM package **@example/db**. -- **Member[getConnection]** selects references to the **getConnection** member from that package. -- **ReturnValue** selects the return value from a call to that member. +- The first column, ``"mysql.Connection"``, names the type that we're adding a new definition for. +- The second column, ``"@example/db"``, begins the search at imports of the hypothetical NPM package ``@example/db``. +- ``Member[getConnection]`` selects references to the ``getConnection`` member from that package. +- ``ReturnValue`` selects the return value from a call to that member. -The new model states that the return value of **getConnection()** has type **mysql.Connection**. +The new model states that the return value of ``getConnection()`` has type ``mysql.Connection``. Combining this with the sink model we added earlier, the sink in the example is detected by the model. The mechanism used here is how library models work for both TypeScript and plain JavaScript. -A good library model contains **typeModel** tuples to ensure it works even in codebases without type annotations. -For example, the **mysql** model that is included with the CodeQL JS analysis includes this type definition (among many others): +A good library model contains ``typeModel`` tuples to ensure it works even in codebases without type annotations. +For example, the ``mysql`` model that is included with the CodeQL JS analysis includes this type definition (among many others): .. code-block:: yaml @@ -237,13 +237,13 @@ We need to add a tuple for a fuzzy model to the ``sinkModel(type, path, kind)`` data: - ["mysql", "Fuzzy.Member[query].Argument[0]", "sql-injection"] -- The first column, **"mysql"**, begins the search at places where the `mysql` package is imported. -- **Fuzzy** selects all objects that appear to originate from the `mysql` package, such as the `pool`, `conn`, `err`, and `rows` objects. -- **Member[query]** selects the **query** member from any of those objects. In this case, the only such member is `conn.query`. +- The first column, ``"mysql"``, begins the search at places where the `mysql` package is imported. +- ``Fuzzy`` selects all objects that appear to originate from the `mysql` package, such as the `pool`, `conn`, `err`, and `rows` objects. +- ``Member[query]`` selects the ``query`` member from any of those objects. In this case, the only such member is `conn.query`. In principle, this would also find expressions such as `pool.query` and `err.query`, but in practice such expressions are not likely to occur, because the `pool` and `err` objects do not have a member named `query`. -- **Argument[0]** selects the first argument of a call to the selected member, that is, the `q` argument to `conn.query`. -- **sql-injection** indicates that this is considered as a sink for the SQL injection query. +- ``Argument[0]`` selects the first argument of a call to the selected member, that is, the `q` argument to `conn.query`. +- ``sql-injection`` indicates that this is considered as a sink for the SQL injection query. For reference, a more detailed model might look like this, as described in the preceding examples: @@ -263,7 +263,7 @@ For reference, a more detailed model might look like this, as described in the p - ["mysql.Pool", "mysql", "Member[createPool].ReturnValue"] - ["mysql.Connection", "mysql.Pool", "Member[getConnection].Argument[0].Parameter[1]"] -The model using the **Fuzzy** component is simpler, at the cost of being approximate. +The model using the ``Fuzzy`` component is simpler, at the cost of being approximate. This technique is useful when modeling a large or complex library, where it is difficult to write a detailed model. Example: Adding flow through 'decodeURIComponent' @@ -276,7 +276,7 @@ In this example, we'll show how to add flow through calls to `decodeURIComponent let y = decodeURIComponent(x); // add taint flow from 'x' to 'y' Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the -**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -293,27 +293,27 @@ Note that this flow is already recognized by the CodeQL JS analysis, but for thi "taint", ] -- The first column, **"global"**, begins the search for relevant calls at references to the global object. +- The first column, ``"global"``, begins the search for relevant calls at references to the global object. In JavaScript, global variables are properties of the global object, so this lets us access global variables or functions. -- The second column, **Member[decodeURIComponent]**, is a path leading to the function calls we wish to model. - In this case, we select references to the **decodeURIComponent** member from the global object, that is, - the global variable named **decodeURIComponent**. -- The third column, **Argument[0]**, indicates the input of the flow. In this case, the first argument to the function call. -- The fourth column, **ReturnValue**, indicates the output of the flow. In this case, the return value of the function call. -- The last column, **taint**, indicates the kind of flow to add. The value **taint** means the output is not necessarily equal +- The second column, ``Member[decodeURIComponent]``, is a path leading to the function calls we wish to model. + In this case, we select references to the ``decodeURIComponent`` member from the global object, that is, + the global variable named ``decodeURIComponent``. +- The third column, ``Argument[0]``, indicates the input of the flow. In this case, the first argument to the function call. +- The fourth column, ``ReturnValue``, indicates the output of the flow. In this case, the return value of the function call. +- The last column, ``taint``, indicates the kind of flow to add. The value ``taint`` means the output is not necessarily equal to the input, but was derived from the input in a taint-preserving way. Example: Adding flow through 'underscore.forEach' ------------------------------------------------- -In this example, we'll show how to add flow through calls to **forEach** from the **underscore** package: +In this example, we'll show how to add flow through calls to ``forEach`` from the ``underscore`` package: .. code-block:: js require('underscore').forEach([x, y], (v) => { ... }); // add value flow from 'x' and 'y' to 'v' Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the -**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -330,19 +330,19 @@ Note that this flow is already recognized by the CodeQL JS analysis, but for thi "value", ] -- The first column, **"underscore"**, begins the search for relevant calls at places where the **underscore** package is imported. -- The second column, **Member[forEach]**, selects references to the **forEach** member from the **underscore** package. +- The first column, ``"underscore"``, begins the search for relevant calls at places where the ``underscore`` package is imported. +- The second column, ``Member[forEach]``, selects references to the ``forEach`` member from the ``underscore`` package. - The third column specifies the input of the flow: - - **Argument[0]** selects the first argument of **forEach**, which is the array being iterated over. - - **ArrayElement** selects the elements of that array (the expressions **x** and **y**). + - ``Argument[0]`` selects the first argument of ``forEach``, which is the array being iterated over. + - ``ArrayElement`` selects the elements of that array (the expressions ``x`` and ``y``). - The fourth column specifies the output of the flow: - - **Argument[1]** selects the second argument of **forEach** (the argument containing the callback function). - - **Parameter[0]** selects the first parameter of the callback function (the parameter named **v**). + - ``Argument[1]`` selects the second argument of ``forEach`` (the argument containing the callback function). + - ``Parameter[0]`` selects the first parameter of the callback function (the parameter named ``v``). -- The last column, **value**, indicates the kind of flow to add. The value **value** means the input value is unchanged as +- The last column, ``value``, indicates the kind of flow to add. The value ``value`` means the input value is unchanged as it flows to the output. @@ -378,18 +378,18 @@ We need to add a tuple to the ``sourceModel(type, path, kind)`` extensible predi "remote", ] -- The first column, **"@example/middleware"**, begins the search at imports of the hypothetical NPM package **@example/middleware**. -- **Member[injectData]** selects accesses to the **injectData** member. -- **ReturnValue** selects the return value of the call to **injectData**. -- **GuardedRouteHandler** interprets the current value as a middleware function and selects all route handlers guarded by that middleware. Since the current value is passd to **app.use()**, the callback subsequently passed to **app.get()** is seen as a guarded route handler. -- **Parameter[0]** selects the first parameter of the callback (the parameter named **req**). -- **Member[data]** selects accesses to the **data** property of the **req** object. -- Finally, the kind **remote** indicates that this is considered a source of remote flow. +- The first column, ``"@example/middleware"``, begins the search at imports of the hypothetical NPM package ``@example/middleware``. +- ``Member[injectData]`` selects accesses to the ``injectData`` member. +- ``ReturnValue`` selects the return value of the call to ``injectData``. +- ``GuardedRouteHandler`` interprets the current value as a middleware function and selects all route handlers guarded by that middleware. Since the current value is passd to ``app.use()``, the callback subsequently passed to ``app.get()`` is seen as a guarded route handler. +- ``Parameter[0]`` selects the first parameter of the callback (the parameter named ``req``). +- ``Member[data]`` selects accesses to the ``data`` property of the ``req`` object. +- Finally, the kind ``remote`` indicates that this is considered a source of remote flow. Example: Taint barrier using the 'encodeURIComponent' function -------------------------------------------------------------- -In this example, we'll show how to add the return value of **encodeURIComponent** as a barrier for XSS. +In this example, we'll show how to add the return value of ``encodeURIComponent`` as a barrier for XSS. .. code-block:: js @@ -407,9 +407,9 @@ We need to add a tuple to the ``barrierModel(type, path, kind)`` extensible pred data: - ["global", "Member[encodeURIComponent].ReturnValue", "html-injection"] -- The first column, **"global"**, begins the search for relevant calls at references to the global object. -- The second column, **Member[encodeURIComponent].ReturnValue**, selects the return value of the **encodeURIComponent** function. -- The third column, **"html-injection"**, is the kind of the barrier. +- The first column, ``"global"``, begins the search for relevant calls at references to the global object. +- The second column, ``Member[encodeURIComponent].ReturnValue``, selects the return value of the ``encodeURIComponent`` function. +- The third column, ``"html-injection"``, is the kind of the barrier. Example: Add a barrier guard ---------------------------- @@ -434,10 +434,10 @@ We need to add a tuple to the ``barrierGuardModel(type, path, acceptingValue, ki data: - ["my-package", "Member[isValid].Argument[0]", "true", "sql-injection"] -- The first column, **"my-package"**, begins the search at imports of the hypothetical NPM package **my-package**. -- The second column, **Member[isValid].Argument[0]**, selects the first argument of the `isValid` function. This is the value being validated. -- The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. -- The fourth column, **"sql-injection"**, is the kind of the barrier guard. +- The first column, ``"my-package"``, begins the search at imports of the hypothetical NPM package ``my-package``. +- The second column, ``Member[isValid].Argument[0]``, selects the first argument of the `isValid` function. This is the value being validated. +- The third column, ``"true"``, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, ``"sql-injection"``, is the kind of the barrier guard. Reference material ------------------ @@ -452,9 +452,9 @@ sourceModel(type, path, kind) Adds a new taint source. Most taint-tracking queries will use the new source. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the source. -- **kind**: Kind of source to add. See the section on source kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the source. +- ``kind``: Kind of source to add. See the section on source kinds for a list of supported kinds. Example: @@ -472,9 +472,9 @@ sinkModel(type, path, kind) Adds a new taint sink. Sinks are query-specific and will typically affect one or two queries. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the sink. -- **kind**: Kind of sink to add. See the section on sink kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the sink. +- ``kind``: Kind of sink to add. See the section on sink kinds for a list of supported kinds. Example: @@ -492,11 +492,11 @@ summaryModel(type, path, input, output, kind) Adds flow through a function call. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to a function call. -- **input**: Path relative to the function call that leads to input of the flow. -- **output**: Path relative to the function call leading to the output of the flow. -- **kind**: Kind of summary to add. Can be **taint** for taint-propagating flow, or **value** for value-preserving flow. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to a function call. +- ``input``: Path relative to the function call that leads to input of the flow. +- ``output``: Path relative to the function call leading to the output of the flow. +- ``kind``: Kind of summary to add. Can be ``taint`` for taint-propagating flow, or ``value`` for value-preserving flow. Example: @@ -520,9 +520,9 @@ typeModel(type1, type2, path) Adds a new definition of a type. -- **type1**: Name of the type to define. -- **type2**: Name of the type from which to evaluate **path**. -- **path**: Access path leading from **type2** to **type1**. +- ``type1``: Name of the type to define. +- ``type2``: Name of the type from which to evaluate ``path``. +- ``path``: Access path leading from ``type2`` to ``type1``. Example: @@ -544,56 +544,56 @@ Types A type is a string that identifies a set of values. In each of the extensible predicates mentioned in previous section, the first column is always the name of a type. -A type can be defined by adding **typeModel** tuples for that type. Additionally, the following built-in types are available: +A type can be defined by adding ``typeModel`` tuples for that type. Additionally, the following built-in types are available: -- The name of an NPM package matches imports of that package. For example, the type **express** matches the expression **require("express")**. If the package name includes dots, it must be surrounded by single quotes, such as in **'lodash.escape'**. -- The type **global** identifies the global object, also known as **window**. In JavaScript, global variables are properties of the global object, so global variables can be identified using this type. (This type also matches imports of the NPM package named **global**, which is a package that happens to export the global object.) -- A qualified type name of form **.** identifies expressions of type **** from ****. For example, **mysql.Connection** identifies expression of type **Connection** from the **mysql** package. Note that this only works if type annotations are present in the codebase, or if sufficient **typeModel** tuples have been provided for that type. +- The name of an NPM package matches imports of that package. For example, the type ``express`` matches the expression ``require("express")``. If the package name includes dots, it must be surrounded by single quotes, such as in ``'lodash.escape'``. +- The type ``global`` identifies the global object, also known as ``window``. In JavaScript, global variables are properties of the global object, so global variables can be identified using this type. (This type also matches imports of the NPM package named ``global``, which is a package that happens to export the global object.) +- A qualified type name of form ``.`` identifies expressions of type ```` from ````. For example, ``mysql.Connection`` identifies expression of type ``Connection`` from the ``mysql`` package. Note that this only works if type annotations are present in the codebase, or if sufficient ``typeModel`` tuples have been provided for that type. Access paths ------------ -The **path**, **input**, and **output** columns consist of a **.**-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. +The ``path``, ``input``, and ``output`` columns consist of a ``.``-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. The following components are supported: -- **Argument[**\ `number`\ **]** selects the argument at the given index. -- **Argument[this]** selects the receiver of a method call. -- **Parameter[**\ `number`\ **]** selects the parameter at the given index. -- **Parameter[this]** selects the **this** parameter of a function. -- **ReturnValue** selects the return value of a function or call. -- **Member[**\ `name`\ **]** selects the property with the given name. -- **AnyMember** selects any property regardless of name. -- **ArrayElement** selects an element of an array. -- **MapValue** selects a value of a map object. -- **Awaited** selects the value of a promise. -- **Instance** selects instances of a class, including instances of its subclasses. -- **Fuzzy** selects all values that are derived from the current value through a combination of the other operations described in this list. +- ``Argument[``\ `number`\ ``]`` selects the argument at the given index. +- ``Argument[this]`` selects the receiver of a method call. +- ``Parameter[``\ `number`\ ``]`` selects the parameter at the given index. +- ``Parameter[this]`` selects the ``this`` parameter of a function. +- ``ReturnValue`` selects the return value of a function or call. +- ``Member[``\ `name`\ ``]`` selects the property with the given name. +- ``AnyMember`` selects any property regardless of name. +- ``ArrayElement`` selects an element of an array. +- ``MapValue`` selects a value of a map object. +- ``Awaited`` selects the value of a promise. +- ``Instance`` selects instances of a class, including instances of its subclasses. +- ``Fuzzy`` selects all values that are derived from the current value through a combination of the other operations described in this list. For example, this can be used to find all values that appear to originate from a particular package. This can be useful for finding method calls from a known package, but where the receiver type is not known or is difficult to model. The following components are called "call site filters". They select a subset of the previously-selected calls, if the call fits certain criteria: -- **WithArity[**\ `number`\ **]** selects the subset of calls that have the given number of arguments. -- **WithStringArgument[**\ `number`\ **=**\ `value`\ **]** selects the subset of calls where the argument at the given index is a string literal with the given value. +- ``WithArity[``\ `number`\ ``]`` selects the subset of calls that have the given number of arguments. +- ``WithStringArgument[``\ `number`\ ``=``\ `value`\ ``]`` selects the subset of calls where the argument at the given index is a string literal with the given value. Components related to decorators: -- **DecoratedClass** selects a class that has the current value as a decorator. For example, **Member[Component].DecoratedClass** selects any class that is decorated with **@Component**. -- **DecoratedParameter** selects a parameter that is decorated by the current value. -- **DecoratedMember** selects a method, field, or accessor that is decorated by the current value. +- ``DecoratedClass`` selects a class that has the current value as a decorator. For example, ``Member[Component].DecoratedClass`` selects any class that is decorated with ``@Component``. +- ``DecoratedParameter`` selects a parameter that is decorated by the current value. +- ``DecoratedMember`` selects a method, field, or accessor that is decorated by the current value. Additionally there is a component related to middleware functions: -- **GuardedRouteHandler** interprets the current value as a middleware function, and selects any route handler function that comes after it in the routing hierarchy. - This can be used to model properties injected onto request and response objects, such as **req.db** after a middleware that injects a database connection. +- ``GuardedRouteHandler`` interprets the current value as a middleware function, and selects any route handler function that comes after it in the routing hierarchy. + This can be used to model properties injected onto request and response objects, such as ``req.db`` after a middleware that injects a database connection. Note that this currently over-approximates the set of route handlers but may be made more accurate in the future. Additional notes about the syntax of operands: -- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, **Member[foo,bar]** matches the union of **Member[foo]** and **Member[bar]**. -- Numeric operands to **Argument**, **Parameter**, and **WithArity** may be given as an interval. For example, **Argument[0..2]** matches argument 0, 1, or 2. -- **Argument[N-1]** selects the last argument of a call, and **Parameter[N-1]** selects the last parameter of a function, with **N-2** being the second-to-last and so on. +- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, ``Member[foo,bar]`` matches the union of ``Member[foo]`` and ``Member[bar]``. +- Numeric operands to ``Argument``, ``Parameter``, and ``WithArity`` may be given as an interval. For example, ``Argument[0..2]`` matches argument 0, 1, or 2. +- ``Argument[N-1]`` selects the last argument of a call, and ``Parameter[N-1]`` selects the last parameter of a function, with ``N-2`` being the second-to-last and so on. Kinds ----- @@ -601,14 +601,14 @@ Kinds Source kinds ~~~~~~~~~~~~ -- **remote**: A general source of remote flow. -- **browser**: A source in the browser environment that does not fit a more specific browser kind. -- **browser-url-query**: A source derived from the query parameters of the browser URL, such as ``location.search``. -- **browser-url-fragment**: A source derived from the fragment part of the browser URL, such as ``location.hash``. -- **browser-url-path**: A source derived from the pathname of the browser URL, such as ``location.pathname``. -- **browser-url**: A source derived from the browser URL, where the untrusted part is prefixed by trusted data such as the scheme and hostname. -- **browser-window-name**: A source derived from the window name, such as ``window.name``. -- **browser-message-event**: A source derived from cross-window message passing, such as ``event`` in ``window.onmessage = event => {...}``. +- ``remote``: A general source of remote flow. +- ``browser``: A source in the browser environment that does not fit a more specific browser kind. +- ``browser-url-query``: A source derived from the query parameters of the browser URL, such as ``location.search``. +- ``browser-url-fragment``: A source derived from the fragment part of the browser URL, such as ``location.hash``. +- ``browser-url-path``: A source derived from the pathname of the browser URL, such as ``location.pathname``. +- ``browser-url``: A source derived from the browser URL, where the untrusted part is prefixed by trusted data such as the scheme and hostname. +- ``browser-window-name``: A source derived from the window name, such as ``window.name``. +- ``browser-message-event``: A source derived from cross-window message passing, such as ``event`` in ``window.onmessage = event => {...}``. See also :ref:`Threat models `. @@ -617,22 +617,22 @@ Sink kinds Unlike sources, sinks tend to be highly query-specific, rarely affecting more than one or two queries. Not every query supports customizable sinks. If the following sinks are not suitable for your use case, you should add a new query. -- **code-injection**: A sink that can be used to inject code, such as in calls to **eval**. -- **command-injection**: A sink that can be used to inject shell commands, such as in calls to **child_process.spawn**. -- **path-injection**: A sink that can be used for path injection in a file system access, such as in calls to **fs.readFile**. -- **sql-injection**: A sink that can be used for SQL injection, such as in a MySQL **query** call. -- **nosql-injection**: A sink that can be used for NoSQL injection, such as in a MongoDB **findOne** call. -- **html-injection**: A sink that can be used for HTML injection, such as in a jQuery **$()** call. -- **request-forgery**: A sink that controls the URL of a request, such as in a **fetch** call. -- **url-redirection**: A sink that can be used to redirect the user to a malicious URL. -- **unsafe-deserialization**: A deserialization sink that can lead to code execution or other unsafe behaviour, such as an unsafe YAML parser. -- **log-injection**: A sink that can be used for log injection, such as in a **console.log** call. +- ``code-injection``: A sink that can be used to inject code, such as in calls to ``eval``. +- ``command-injection``: A sink that can be used to inject shell commands, such as in calls to ``child_process.spawn``. +- ``path-injection``: A sink that can be used for path injection in a file system access, such as in calls to ``fs.readFile``. +- ``sql-injection``: A sink that can be used for SQL injection, such as in a MySQL ``query`` call. +- ``nosql-injection``: A sink that can be used for NoSQL injection, such as in a MongoDB ``findOne`` call. +- ``html-injection``: A sink that can be used for HTML injection, such as in a jQuery ``$()`` call. +- ``request-forgery``: A sink that controls the URL of a request, such as in a ``fetch`` call. +- ``url-redirection``: A sink that can be used to redirect the user to a malicious URL. +- ``unsafe-deserialization``: A deserialization sink that can lead to code execution or other unsafe behaviour, such as an unsafe YAML parser. +- ``log-injection``: A sink that can be used for log injection, such as in a ``console.log`` call. Summary kinds ~~~~~~~~~~~~~ -- **taint**: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. -- **value**: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. +- ``taint``: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. +- ``value``: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. .. _threat-models-javascript: diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 80d7fd5688b..ee4565caff3 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -34,7 +34,7 @@ We'll explain how to use these using a few examples, and provide some reference Example: Taint sink in the 'fabric' package ------------------------------------------- -In this example, we'll show how to add the following argument, passed to **sudo** from the **fabric** package, as a command-line injection sink: +In this example, we'll show how to add the following argument, passed to ``sudo`` from the ``fabric`` package, as a command-line injection sink: .. code-block:: python @@ -42,7 +42,7 @@ In this example, we'll show how to add the following argument, passed to **sudo* sudo(cmd) # <-- add 'cmd' as a taint sink Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the -**sinkModel(type, path, kind)** extensible predicate by updating a data extension file. +``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -53,20 +53,20 @@ Note that this sink is already recognized by the CodeQL Python analysis, but for data: - ["fabric", "Member[operations].Member[sudo].Argument[0]", "command-injection"] -- The first column, **"fabric"**, identifies a set of values from which to begin the search for the sink. - The string **"fabric"** means we start at the places where the codebase imports the package **fabric**. +- The first column, ``"fabric"``, identifies a set of values from which to begin the search for the sink. + The string ``"fabric"`` means we start at the places where the codebase imports the package ``fabric``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Member[operations]** selects accesses to the **operations** module. - - **Member[sudo]** selects accesses to the **sudo** function in the **operations** module. - - **Argument[0]** selects the first argument to calls to that function. + - ``Member[operations]`` selects accesses to the ``operations`` module. + - ``Member[sudo]`` selects accesses to the ``sudo`` function in the ``operations`` module. + - ``Argument[0]`` selects the first argument to calls to that function. -- **"command-injection"** indicates that this is considered a sink for the command injection query. +- ``"command-injection"`` indicates that this is considered a sink for the command injection query. Example: Taint sink in the 'invoke' package ------------------------------------------- -Often sinks are found as arguments to methods rather than functions. In this example, we'll show how to add the following argument, passed to **run** from the **invoke** package, as a command-line injection sink: +Often sinks are found as arguments to methods rather than functions. In this example, we'll show how to add the following argument, passed to ``run`` from the ``invoke`` package, as a command-line injection sink: .. code-block:: python @@ -75,7 +75,7 @@ Often sinks are found as arguments to methods rather than functions. In this exa c.run(cmd) # <-- add 'cmd' as a taint sink Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the -**sinkModel(type, path, kind)** extensible predicate by updating a data extension file. +``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -86,17 +86,17 @@ Note that this sink is already recognized by the CodeQL Python analysis, but for data: - ["invoke", "Member[Context].Instance.Member[run].Argument[0]", "command-injection"] -- The first column, **"invoke"**, begins the search at places where the codebase imports the package **invoke**. +- The first column, ``"invoke"``, begins the search at places where the codebase imports the package ``invoke``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Member[Context]** selects accesses to the **Context** class. - - **Instance** selects instances of the **Context** class. - - **Member[run]** selects accesses to the **run** method in the **Context** class. - - **Argument[0]** selects the first argument to calls to that method. + - ``Member[Context]`` selects accesses to the ``Context`` class. + - ``Instance`` selects instances of the ``Context`` class. + - ``Member[run]`` selects accesses to the ``run`` method in the ``Context`` class. + - ``Argument[0]`` selects the first argument to calls to that method. -- **"command-injection"** indicates that this is considered a sink for the command injection query. +- ``"command-injection"`` indicates that this is considered a sink for the command injection query. -Note that the **Instance** component is used to select instances of a class, including instances of its subclasses. +Note that the ``Instance`` component is used to select instances of a class, including instances of its subclasses. Since methods on instances are common targets, we have a more compact syntax for selecting them. The first column, the type, is allowed to contain a dotted path ending in a class name. This will begin the search at instances of that class. Using this syntax, the previous example could be written as: @@ -112,7 +112,7 @@ This will begin the search at instances of that class. Using this syntax, the pr Continued example: Multiple ways to obtain a type ------------------------------------------------- -The invoke package provides multiple ways to obtain a **Context** instance. The following example shows how to add a new way to obtain a **Context** instance: +The invoke package provides multiple ways to obtain a ``Context`` instance. The following example shows how to add a new way to obtain a ``Context`` instance: .. code-block:: python @@ -120,9 +120,9 @@ The invoke package provides multiple ways to obtain a **Context** instance. The c = context.Context() c.run(cmd) # <-- add 'cmd' as a taint sink -Comparing to the previous Python snippet, the **Context** class is now found as **invoke.context.Context** instead of **invoke.Context**. -We could add a data extension similar to the previous one, but with the type **invoke.context.Context**. -However, we can also use the **typeModel(type1, type2, path)** extensible predicate to describe how to reach **invoke.Context** from **invoke.context.Context**: +Comparing to the previous Python snippet, the ``Context`` class is now found as ``invoke.context.Context`` instead of ``invoke.Context``. +We could add a data extension similar to the previous one, but with the type ``invoke.context.Context``. +However, we can also use the ``typeModel(type1, type2, path)`` extensible predicate to describe how to reach ``invoke.Context`` from ``invoke.context.Context``: .. code-block:: yaml @@ -133,9 +133,9 @@ However, we can also use the **typeModel(type1, type2, path)** extensible predic data: - ["invoke.Context", "invoke.context.Context", ""] -- The first column, **"invoke.Context"**, is the name of the type to reach. -- The second column, **"invoke.context.Context"**, is the name of the type from which to evaluate the path. -- The third column is just an empty string, indicating that any instance of **invoke.context.Context** is also an instance of **invoke.Context**. +- The first column, ``"invoke.Context"``, is the name of the type to reach. +- The second column, ``"invoke.context.Context"``, is the name of the type from which to evaluate the path. +- The third column is just an empty string, indicating that any instance of ``invoke.context.Context`` is also an instance of ``invoke.Context``. Combining this with the sink model we added earlier, the sink in the example is detected by the model. @@ -144,7 +144,7 @@ Example: Taint sources from Django 'upload_to' argument This example is a bit more advanced, involving both a callback function and a class constructor. The Django web framework allows you to specify a function that determines the path where uploaded files are stored (see the `Django documentation `_). -This function is passed as an argument to the **FileField** constructor. +This function is passed as an argument to the ``FileField`` constructor. The function is called with two arguments: the instance of the model and the filename of the uploaded file. This filename is what we want to mark as a taint source. An example use looks as follows: @@ -160,7 +160,7 @@ This filename is what we want to mark as a taint source. An example use looks as upload = models.FileField(upload_to=user_directory_path) # <-- the 'upload_to' parameter defines our custom function Note that this source is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the -**sourceModel(type, path, kind)** extensible predicate by updating a data extension file. +``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -175,16 +175,16 @@ Note that this source is already recognized by the CodeQL Python analysis, but f "remote", ] -- The first column, **"django.db.models.FileField!"**, is a dotted path to the **FileField** class from the **django.db.models** package. - The **!** at the end of the type name indicates that we are looking for the class itself rather than instances of this class. +- The first column, ``"django.db.models.FileField!"``, is a dotted path to the ``FileField`` class from the ``django.db.models`` package. + The ``!`` at the end of the type name indicates that we are looking for the class itself rather than instances of this class. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Call** selects calls to the class. That is, constructor calls. - - **Argument[0,upload_to:]** selects the first positional argument, or the named argument named **upload_to**. Note that the colon at the end of the argument name indicates that we are looking for a named argument. - - **Parameter[1]** selects the second parameter of the callback function, which is the parameter receiving the filename. + - ``Call`` selects calls to the class. That is, constructor calls. + - ``Argument[0,upload_to:]`` selects the first positional argument, or the named argument named ``upload_to``. Note that the colon at the end of the argument name indicates that we are looking for a named argument. + - ``Parameter[1]`` selects the second parameter of the callback function, which is the parameter receiving the filename. -- Finally, the kind **"remote"** indicates that this is considered a source of remote flow. +- Finally, the kind ``"remote"`` indicates that this is considered a source of remote flow. Example: Adding flow through 're.compile' ---------------------------------------------- @@ -199,7 +199,7 @@ In this example, we'll show how to add flow through calls to ``re.compile``. let y = re.compile(pattern = x); // add value flow from 'x' to 'y.pattern' Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the -**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -216,25 +216,25 @@ Note that this flow is already recognized by the CodeQL Python analysis, but for "value", ] -- The first column, **"re"**, begins the search for relevant calls at places where the **re** package is imported. -- The second column, **"Member[compile]"**, is a path leading to the function calls we wish to model. - In this case, we select references to the **compile** function from the ``re`` package. -- The third column, **"Argument[0,pattern:]"**, indicates the input of the flow. In this case, either the first argument to the function call or the argument named **pattern**. -- The fourth column, **"ReturnValue.Attribute[pattern]"**, indicates the output of the flow. In this case, the ``pattern`` attribute of the return value of the function call. -- The last column, **"value"**, indicates the kind of flow to add. The value **value** means the input value is unchanged as +- The first column, ``"re"``, begins the search for relevant calls at places where the ``re`` package is imported. +- The second column, ``"Member[compile]"``, is a path leading to the function calls we wish to model. + In this case, we select references to the ``compile`` function from the ``re`` package. +- The third column, ``"Argument[0,pattern:]"``, indicates the input of the flow. In this case, either the first argument to the function call or the argument named ``pattern``. +- The fourth column, ``"ReturnValue.Attribute[pattern]"``, indicates the output of the flow. In this case, the ``pattern`` attribute of the return value of the function call. +- The last column, ``"value"``, indicates the kind of flow to add. The value ``value`` means the input value is unchanged as it flows to the output. Example: Adding flow through 'sorted' ------------------------------------------------- -In this example, we'll show how to add flow through calls to the built-in function **sorted**: +In this example, we'll show how to add flow through calls to the built-in function ``sorted``: .. code-block:: python y = sorted(x) # add taint flow from 'x' to 'y' Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the -**summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -251,12 +251,12 @@ Note that this flow is already recognized by the CodeQL Python analysis, but for "taint", ] -- The first column, **"builtins"**, begins the search for relevant calls among references to the built-in names. - In Python, many built-in functions are available. Technically, most of these are part of the **builtins** package, but they can be accessed without an explicit import. When we write **builtins** in the first column, we will find both the implicit and explicit references to the built-in functions. -- The second column, **"Member[sorted]"**, selects references to the **sorted** function from the **builtins** package; that is, the built-in function **sorted**. -- The third column, **"Argument[0]"**, indicates the input of the flow. In this case, the first argument to the function call. -- The fourth column, **"ReturnValue"**, indicates the output of the flow. In this case, the return value of the function call. -- The last column, **"taint"**, indicates the kind of flow to add. The value **taint** means the output is not necessarily equal +- The first column, ``"builtins"``, begins the search for relevant calls among references to the built-in names. + In Python, many built-in functions are available. Technically, most of these are part of the ``builtins`` package, but they can be accessed without an explicit import. When we write ``builtins`` in the first column, we will find both the implicit and explicit references to the built-in functions. +- The second column, ``"Member[sorted]"``, selects references to the ``sorted`` function from the ``builtins`` package; that is, the built-in function ``sorted``. +- The third column, ``"Argument[0]"``, indicates the input of the flow. In this case, the first argument to the function call. +- The fourth column, ``"ReturnValue"``, indicates the output of the flow. In this case, the return value of the function call. +- The last column, ``"taint"``, indicates the kind of flow to add. The value ``taint`` means the output is not necessarily equal to the input, but was derived from the input in a taint-preserving way. We might also provide a summary stating that the elements of the input list are preserved in the output list: @@ -282,14 +282,14 @@ So this summary simply states that if the value is found somewhere in the input Example: Taint barrier using the 'escape' function -------------------------------------------------- -In this example, we'll show how to add the return value of **html.escape** as a barrier for XSS. +In this example, we'll show how to add the return value of ``html.escape`` as a barrier for XSS. .. code-block:: python import html escaped = html.escape(unknown) # The return value of this function is safe for XSS. -We need to add a tuple to the **barrierModel(type, path, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -300,9 +300,9 @@ We need to add a tuple to the **barrierModel(type, path, kind)** extensible pred data: - ["html", "Member[escape].ReturnValue", "html-injection"] -- The first column, **"html"**, begins the search at places where the **html** module is imported. -- The second column, **Member[escape].ReturnValue**, selects the return value of the **escape** function from the **html** module. -- The third column, **"html-injection"**, is the kind of the barrier. +- The first column, ``"html"``, begins the search at places where the ``html`` module is imported. +- The second column, ``Member[escape].ReturnValue``, selects the return value of the ``escape`` function from the ``html`` module. +- The third column, ``"html-injection"``, is the kind of the barrier. Example: Add a barrier guard ---------------------------- @@ -316,7 +316,7 @@ Consider the function ``url_has_allowed_host_and_scheme`` from the ``django.util if url_has_allowed_host_and_scheme(url, allowed_hosts=...): # The check guards the use of 'url', so it is safe. redirect(url) # This is safe. -We need to add a tuple to the **barrierGuardModel(type, path, acceptingValue, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(type, path, acceptingValue, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -332,10 +332,10 @@ We need to add a tuple to the **barrierGuardModel(type, path, acceptingValue, ki "url-redirection", ] -- The first column, **"django"**, begins the search at places where the **django** package is imported. -- The second column, **Member[utils].Member[http].Member[url_has_allowed_host_and_scheme].Argument[0,url:]**, selects the first argument (or the keyword argument ``url``) of the ``url_has_allowed_host_and_scheme`` function in the ``django.utils.http`` module. This is the value being validated. -- The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. -- The fourth column, **"url-redirection"**, is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. +- The first column, ``"django"``, begins the search at places where the ``django`` package is imported. +- The second column, ``Member[utils].Member[http].Member[url_has_allowed_host_and_scheme].Argument[0,url:]``, selects the first argument (or the keyword argument ``url``) of the ``url_has_allowed_host_and_scheme`` function in the ``django.utils.http`` module. This is the value being validated. +- The third column, ``"true"``, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, ``"url-redirection"``, is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. Reference material ------------------ @@ -350,9 +350,9 @@ sourceModel(type, path, kind) Adds a new taint source. Most taint-tracking queries will use the new source. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the source. -- **kind**: Kind of source to add. Currently only **remote** is used. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the source. +- ``kind``: Kind of source to add. Currently only ``remote`` is used. Example: @@ -370,9 +370,9 @@ sinkModel(type, path, kind) Adds a new taint sink. Sinks are query-specific and will typically affect one or two queries. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the sink. -- **kind**: Kind of sink to add. See the section on sink kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the sink. +- ``kind``: Kind of sink to add. See the section on sink kinds for a list of supported kinds. Example: @@ -390,11 +390,11 @@ summaryModel(type, path, input, output, kind) Adds flow through a function call. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to a function call. -- **input**: Path relative to the function call that leads to input of the flow. -- **output**: Path relative to the function call leading to the output of the flow. -- **kind**: Kind of summary to add. Can be **taint** for taint-propagating flow, or **value** for value-preserving flow. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to a function call. +- ``input``: Path relative to the function call that leads to input of the flow. +- ``output``: Path relative to the function call leading to the output of the flow. +- ``kind``: Kind of summary to add. Can be ``taint`` for taint-propagating flow, or ``value`` for value-preserving flow. Example: @@ -416,13 +416,13 @@ Example: typeModel(type1, type2, path) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A description of how to reach **type1** from **type2**. -If this is the only way to reach **type1**, for instance if **type1** is a name we made up to represent the inner workings of a library, we think of this as a definition of **type1**. -In the context of instances, this describes how to obtain an instance of **type1** from an instance of **type2**. +A description of how to reach ``type1`` from ``type2``. +If this is the only way to reach ``type1``, for instance if ``type1`` is a name we made up to represent the inner workings of a library, we think of this as a definition of ``type1``. +In the context of instances, this describes how to obtain an instance of ``type1`` from an instance of ``type2``. -- **type1**: Name of the type to reach. -- **type2**: Name of the type from which to evaluate **path**. -- **path**: Access path leading from **type2** to **type1**. +- ``type1``: Name of the type to reach. +- ``type2``: Name of the type from which to evaluate ``path``. +- ``path``: Access path leading from ``type2`` to ``type1``. Example: @@ -444,40 +444,40 @@ Types A type is a string that identifies a set of values. In each of the extensible predicates mentioned in previous section, the first column is always the name of a type. -A type can be defined by adding **typeModel** tuples for that type. Additionally, the following built-in types are available: +A type can be defined by adding ``typeModel`` tuples for that type. Additionally, the following built-in types are available: -- The name of a package matches imports of that package. For example, the type **django** matches the expression **import django**. -- The type **builtins** identifies the builtins package. In Python, all built-in values are found in this package, so they can be identified using this type. -- A dotted path ending in a class name identifies instances of that class. If the suffix **!** is added, the type refers to the class itself. +- The name of a package matches imports of that package. For example, the type ``django`` matches the expression ``import django``. +- The type ``builtins`` identifies the builtins package. In Python, all built-in values are found in this package, so they can be identified using this type. +- A dotted path ending in a class name identifies instances of that class. If the suffix ``!`` is added, the type refers to the class itself. Access paths ------------ -The **path**, **input**, and **output** columns consist of a **.**-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. +The ``path``, ``input``, and ``output`` columns consist of a ``.``-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. The following components are supported: -- **Argument[**\ ``number``\ **]** selects the argument at the given index. -- **Argument[**\ ``name``:\ **]** selects the argument with the given name. -- **Argument[this]** selects the receiver of a method call. -- **Parameter[**\ ``number``\ **]** selects the parameter at the given index. -- **Parameter[**\ ``name``:\ **]** selects the named parameter with the given name. -- **Parameter[this]** selects the **this** parameter of a function. -- **ReturnValue** selects the return value of a function or call. -- **Member[**\ ``name``\ **]** selects the function/method/class/value with the given name. -- **Instance** selects instances of a class, including instances of its subclasses. -- **Attribute[**\ ``name``\ **]** selects the attribute with the given name. -- **ListElement** selects an element of a list. -- **SetElement** selects an element of a set. -- **TupleElement[**\ ``number``\ **]** selects the subscript at the given index. -- **DictionaryElement[**\ ``name``\ **]** selects the subscript at the given name. +- ``Argument[``\ ``number``\ ``]`` selects the argument at the given index. +- ``Argument[``\ ``name``:\ ``]`` selects the argument with the given name. +- ``Argument[this]`` selects the receiver of a method call. +- ``Parameter[``\ ``number``\ ``]`` selects the parameter at the given index. +- ``Parameter[``\ ``name``:\ ``]`` selects the named parameter with the given name. +- ``Parameter[this]`` selects the ``this`` parameter of a function. +- ``ReturnValue`` selects the return value of a function or call. +- ``Member[``\ ``name``\ ``]`` selects the function/method/class/value with the given name. +- ``Instance`` selects instances of a class, including instances of its subclasses. +- ``Attribute[``\ ``name``\ ``]`` selects the attribute with the given name. +- ``ListElement`` selects an element of a list. +- ``SetElement`` selects an element of a set. +- ``TupleElement[``\ ``number``\ ``]`` selects the subscript at the given index. +- ``DictionaryElement[``\ ``name``\ ``]`` selects the subscript at the given name. Additional notes about the syntax of operands: -- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, **Member[foo,bar]** matches the union of **Member[foo]** and **Member[bar]**. -- Numeric operands to **Argument**, **Parameter**, and **WithArity** may be given as an interval. For example, **Argument[0..2]** matches argument 0, 1, or 2. -- **Argument[N-1]** selects the last argument of a call, and **Parameter[N-1]** selects the last parameter of a function, with **N-2** being the second-to-last and so on. +- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, ``Member[foo,bar]`` matches the union of ``Member[foo]`` and ``Member[bar]``. +- Numeric operands to ``Argument``, ``Parameter``, and ``WithArity`` may be given as an interval. For example, ``Argument[0..2]`` matches argument 0, 1, or 2. +- ``Argument[N-1]`` selects the last argument of a call, and ``Parameter[N-1]`` selects the last parameter of a function, with ``N-2`` being the second-to-last and so on. Kinds ----- @@ -492,21 +492,21 @@ Sink kinds Unlike sources, sinks tend to be highly query-specific, rarely affecting more than one or two queries. Not every query supports customizable sinks. If the following sinks are not suitable for your use case, you should add a new query. -- **code-injection**: A sink that can be used to inject code, such as in calls to **exec**. -- **command-injection**: A sink that can be used to inject shell commands, such as in calls to **os.system**. -- **path-injection**: A sink that can be used for path injection in a file system access, such as in calls to **flask.send_from_directory**. -- **sql-injection**: A sink that can be used for SQL injection, such as in a MySQL **query** call. -- **html-injection**: A sink that can be used for HTML injection, such as a server response body. -- **js-injection**: A sink that can be used for JS injection, such as a server response body. -- **url-redirection**: A sink that can be used to redirect the user to a malicious URL. -- **unsafe-deserialization**: A deserialization sink that can lead to code execution or other unsafe behavior, such as an unsafe YAML parser. -- **log-injection**: A sink that can be used for log injection, such as in a **logging.info** call. +- ``code-injection``: A sink that can be used to inject code, such as in calls to ``exec``. +- ``command-injection``: A sink that can be used to inject shell commands, such as in calls to ``os.system``. +- ``path-injection``: A sink that can be used for path injection in a file system access, such as in calls to ``flask.send_from_directory``. +- ``sql-injection``: A sink that can be used for SQL injection, such as in a MySQL ``query`` call. +- ``html-injection``: A sink that can be used for HTML injection, such as a server response body. +- ``js-injection``: A sink that can be used for JS injection, such as a server response body. +- ``url-redirection``: A sink that can be used to redirect the user to a malicious URL. +- ``unsafe-deserialization``: A deserialization sink that can lead to code execution or other unsafe behavior, such as an unsafe YAML parser. +- ``log-injection``: A sink that can be used for log injection, such as in a ``logging.info`` call. Summary kinds ~~~~~~~~~~~~~ -- **taint**: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. -- **value**: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. +- ``taint``: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. +- ``value``: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. .. _threat-models-python: diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index d084e415885..db041a52151 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -35,7 +35,7 @@ We'll explain how to use these using a few examples, and provide some reference Example: Taint sink in the 'tty-command' gem -------------------------------------------- -In this example, we'll show how to add the following argument, passed to **tty-command**, as a command-line injection sink: +In this example, we'll show how to add the following argument, passed to ``tty-command``, as a command-line injection sink: .. code-block:: ruby @@ -43,7 +43,7 @@ In this example, we'll show how to add the following argument, passed to **tty-c tty.run(cmd) # <-- add 'cmd' as a taint sink -We need to add a tuple to the **sinkModel(type, path, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -55,14 +55,14 @@ We need to add a tuple to the **sinkModel(type, path, kind)** extensible predica - ["TTY::Command", "Method[run].Argument[0]", "command-injection"] -- The first column, **"TTY::Command"**, identifies a set of values from which to begin the search for the sink. - The string **"TTY::Command""** means we start at the places where the codebase constructs instances of the class **TTY::Command**. +- The first column, ``"TTY::Command"``, identifies a set of values from which to begin the search for the sink. + The string ``"TTY::Command""`` means we start at the places where the codebase constructs instances of the class ``TTY::Command``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Method[run]** selects calls to the **run** method of the **TTY::Command** class. - - **Argument[0]** selects the first argument to calls to that member. + - ``Method[run]`` selects calls to the ``run`` method of the ``TTY::Command`` class. + - ``Argument[0]`` selects the first argument to calls to that member. -- **command-injection** indicates that this is considered a sink for the command injection query. +- ``command-injection`` indicates that this is considered a sink for the command injection query. Example: Taint sources from 'sinatra' block parameters ------------------------------------------------------ @@ -77,7 +77,7 @@ In this example, we'll show how the 'x' parameter below could be marked as a rem end end -We need to add a tuple to the **sourceModel(type, path, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -92,12 +92,12 @@ We need to add a tuple to the **sourceModel(type, path, kind)** extensible predi "remote", ] -- The first column, **"Sinatra::Base!"**, begins the search at references to the **Sinatra::Base** class. - The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. -- **Method[get]** selects calls to the **get** method of the **Sinatra::Base** class. -- **Argument[block]** selects the block argument to the **get** method call. -- **Parameter[0]** selects the first parameter of the block argument (the parameter named **x**). -- Finally, the kind **remote** indicates that this is considered a source of remote flow. +- The first column, ``"Sinatra::Base!"``, begins the search at references to the ``Sinatra::Base`` class. + The ``!`` suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- ``Method[get]`` selects calls to the ``get`` method of the ``Sinatra::Base`` class. +- ``Argument[block]`` selects the block argument to the ``get`` method call. +- ``Parameter[0]`` selects the first parameter of the block argument (the parameter named ``x``). +- Finally, the kind ``remote`` indicates that this is considered a source of remote flow. Example: Using types to add MySQL injection sinks ------------------------------------------------- @@ -111,7 +111,7 @@ In this example, we'll show how to add the following SQL injection sink: client.query(q) # <-- add 'q' as a SQL injection sink end -We need to add a tuple to the **sinkModel(type, path, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -122,16 +122,16 @@ We need to add a tuple to the **sinkModel(type, path, kind)** extensible predica data: - ["Mysql2::Client", "Method[query].Argument[0]", "sql-injection"] -- The first column, **"Mysql2::Client"**, begins the search at any instance of the **Mysql2::Client** class. -- **Method[query]** selects any call to the **query** method on that instance. -- **Argument[0]** selects the first argument to the method call. -- **sql-injection** indicates that this is considered a sink for the SQL injection query. +- The first column, ``"Mysql2::Client"``, begins the search at any instance of the ``Mysql2::Client`` class. +- ``Method[query]`` selects any call to the ``query`` method on that instance. +- ``Argument[0]`` selects the first argument to the method call. +- ``sql-injection`` indicates that this is considered a sink for the SQL injection query. Continued example: Using type models ------------------------------------ Consider this variation on the previous example, the mysql2 EventMachine API is used. -The client is obtained via a call to **Mysql2::EM::Client.new**. +The client is obtained via a call to ``Mysql2::EM::Client.new``. .. code-block:: ruby @@ -140,10 +140,10 @@ The client is obtained via a call to **Mysql2::EM::Client.new**. client.query(q) end -So far we have only one model for **Mysql2::Client**, but in the real world we -may have many models for the various methods available. Because **Mysql2::EM::Client** is a subclass of **Mysql2::Client**, it inherits all of the same methods. -Instead of updating all our models to include both classes, we can add a tuple to the **typeModel(type, subtype, ext)** extensible predicate to indicate that -**Mysql2::EM::Client** is a subclass of **Mysql2::Client**: +So far we have only one model for ``Mysql2::Client``, but in the real world we +may have many models for the various methods available. Because ``Mysql2::EM::Client`` is a subclass of ``Mysql2::Client``, it inherits all of the same methods. +Instead of updating all our models to include both classes, we can add a tuple to the ``typeModel(type, subtype, ext)`` extensible predicate to indicate that +``Mysql2::EM::Client`` is a subclass of ``Mysql2::Client``: .. code-block:: yaml @@ -163,7 +163,7 @@ In this example, we'll show how to add flow through calls to 'URI.decode_uri_com y = URI.decode_uri_component(x); # add taint flow from 'x' to 'y' -We need to add a tuple to the **summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -180,26 +180,26 @@ We need to add a tuple to the **summaryModel(type, path, input, output, kind)** "taint", ] -- The first column, **"URI!"**, begins the search for relevant calls at references to the **URI** class. - The **!** suffix indicates that we are looking for the class itself, rather than instances of the class. -- The second column, **Method[decode_uri_component]**, is a path leading to the method calls we wish to model. - In this case, we select references to the **decode_uri_component** method from the **URI** class. -- The third column, **Argument[0]**, indicates the input of the flow. In this case, the first argument to the method call. -- The fourth column, **ReturnValue**, indicates the output of the flow. In this case, the return value of the method call. -- The last column, **taint**, indicates the kind of flow to add. The value **taint** means the output is not necessarily equal +- The first column, ``"URI!"``, begins the search for relevant calls at references to the ``URI`` class. + The ``!`` suffix indicates that we are looking for the class itself, rather than instances of the class. +- The second column, ``Method[decode_uri_component]``, is a path leading to the method calls we wish to model. + In this case, we select references to the ``decode_uri_component`` method from the ``URI`` class. +- The third column, ``Argument[0]``, indicates the input of the flow. In this case, the first argument to the method call. +- The fourth column, ``ReturnValue``, indicates the output of the flow. In this case, the return value of the method call. +- The last column, ``taint``, indicates the kind of flow to add. The value ``taint`` means the output is not necessarily equal to the input, but was derived from the input in a taint-preserving way. Example: Adding flow through 'File#each' ---------------------------------------- -In this example, we'll show how to add flow through calls to **File#each** from the standard library, which iterates over the lines of a file: +In this example, we'll show how to add flow through calls to ``File#each`` from the standard library, which iterates over the lines of a file: .. code-block:: ruby f = File.new("example.txt") f.each { |line| ... } # add taint flow from `f` to `line` -We need to add a tuple to the **summaryModel(type, path, input, output, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -216,21 +216,21 @@ We need to add a tuple to the **summaryModel(type, path, input, output, kind)** "taint", ] -- The first column, **"File"**, begins the search for relevant calls at places where the **File** class is used. -- The second column, **Method[each]**, selects references to the **each** method on the **File** class. -- The third column specifies the input of the flow. **Argument[self]** selects the **self** argument of **each**, which is the **File** instance being iterated over. +- The first column, ``"File"``, begins the search for relevant calls at places where the ``File`` class is used. +- The second column, ``Method[each]``, selects references to the ``each`` method on the ``File`` class. +- The third column specifies the input of the flow. ``Argument[self]`` selects the ``self`` argument of ``each``, which is the ``File`` instance being iterated over. - The fourth column specifies the output of the flow: - - **Argument[block]** selects the block argument of **each** (the block which is executed for each line in the file). - - **Parameter[0]** selects the first parameter of the block (the parameter named **line**). + - ``Argument[block]`` selects the block argument of ``each`` (the block which is executed for each line in the file). + - ``Parameter[0]`` selects the first parameter of the block (the parameter named ``line``). -- The last column, **taint**, indicates the kind of flow to add. +- The last column, ``taint``, indicates the kind of flow to add. Example: Taint barrier using the 'escape' method ------------------------------------------------ -In this example, we'll show how to add the return value of **Mysql2::Client#escape** as a barrier for SQL injection. +In this example, we'll show how to add the return value of ``Mysql2::Client#escape`` as a barrier for SQL injection. .. code-block:: ruby @@ -238,7 +238,7 @@ In this example, we'll show how to add the return value of **Mysql2::Client#esca escaped = client.escape(input) # The return value of this method is safe for SQL injection. client.query("SELECT * FROM users WHERE name = '#{escaped}'") -We need to add a tuple to the **barrierModel(type, path, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -249,10 +249,10 @@ We need to add a tuple to the **barrierModel(type, path, kind)** extensible pred data: - ["Mysql2::Client!", "Method[escape].ReturnValue", "sql-injection"] -- The first column, **"Mysql2::Client!"**, begins the search for relevant calls at references to the **Mysql2::Client** class. - The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. -- The second column, **"Method[escape].ReturnValue"**, selects the return value of the **escape** method. -- The third column, **"sql-injection"**, is the kind of the barrier. +- The first column, ``"Mysql2::Client!"``, begins the search for relevant calls at references to the ``Mysql2::Client`` class. + The ``!`` suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- The second column, ``"Method[escape].ReturnValue"``, selects the return value of the ``escape`` method. +- The third column, ``"sql-injection"``, is the kind of the barrier. Example: Add a barrier guard ---------------------------- @@ -267,7 +267,7 @@ Consider a validation method ``Validator.is_safe`` which returns ``true`` when t client.query("SELECT * FROM users WHERE name = '#{user_input}'") end -We need to add a tuple to the **barrierGuardModel(type, path, acceptingValue, kind)** extensible predicate by updating a data extension file. +We need to add a tuple to the ``barrierGuardModel(type, path, acceptingValue, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -278,11 +278,11 @@ We need to add a tuple to the **barrierGuardModel(type, path, acceptingValue, ki data: - ["Validator!", "Method[is_safe].Argument[0]", "true", "sql-injection"] -- The first column, **"Validator!"**, begins the search at references to the **Validator** class. - The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. -- The second column, **"Method[is_safe].Argument[0]"**, selects the first argument of the **is_safe** method. This is the value being validated. -- The third column, **"true"**, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. -- The fourth column, **"sql-injection"**, is the kind of the barrier guard. +- The first column, ``"Validator!"``, begins the search at references to the ``Validator`` class. + The ``!`` suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- The second column, ``"Method[is_safe].Argument[0]"``, selects the first argument of the ``is_safe`` method. This is the value being validated. +- The third column, ``"true"``, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, ``"sql-injection"``, is the kind of the barrier guard. Reference material ------------------ @@ -297,9 +297,9 @@ sourceModel(type, path, kind) Adds a new taint source. Most taint-tracking queries will use the new source. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the source. -- **kind**: Kind of source to add. Currently only **remote** is used. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the source. +- ``kind``: Kind of source to add. Currently only ``remote`` is used. Example: @@ -317,9 +317,9 @@ sinkModel(type, path, kind) Adds a new taint sink. Sinks are query-specific and will typically affect one or two queries. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the sink. -- **kind**: Kind of sink to add. See the section on sink kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the sink. +- ``kind``: Kind of sink to add. See the section on sink kinds for a list of supported kinds. Example: @@ -337,11 +337,11 @@ summaryModel(type, path, input, output, kind) Adds flow through a method call. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to a method call. -- **input**: Path relative to the method call that leads to input of the flow. -- **output**: Path relative to the method call leading to the output of the flow. -- **kind**: Kind of summary to add. Can be **taint** for taint-propagating flow, or **value** for value-preserving flow. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to a method call. +- ``input``: Path relative to the method call that leads to input of the flow. +- ``output``: Path relative to the method call leading to the output of the flow. +- ``kind``: Kind of summary to add. Can be ``taint`` for taint-propagating flow, or ``value`` for value-preserving flow. Example: @@ -365,9 +365,9 @@ typeModel(type1, type2, path) Adds a new definition of a type. -- **type1**: Name of the type to define. -- **type2**: Name of the type from which to evaluate **path**. -- **path**: Access path leading from **type2** to **type1**. +- ``type1``: Name of the type to define. +- ``type2``: Name of the type from which to evaluate ``path``. +- ``path``: Access path leading from ``type2`` to ``type1``. Example: @@ -389,44 +389,44 @@ Types A type is a string that identifies a set of values. In each of the extensible predicates mentioned in previous section, the first column is always the name of a type. -A type can be defined by adding **typeModel** tuples for that type. +A type can be defined by adding ``typeModel`` tuples for that type. Access paths ------------ -The **path**, **input**, and **output** columns consist of a **.**-separated list of components, which is evaluated from left to right, +The ``path``, ``input``, and ``output`` columns consist of a ``.``-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. The following components are supported: -- **Argument[**\ `number`\ **]** selects the argument at the given index. -- **Argument[**\ `string`:\ **]** selects the keyword argument with the given name. -- **Argument[self]** selects the receiver of a method call. -- **Argument[block]** selects the block argument. -- **Argument[any]** selects any argument, except self or block arguments. -- **Argument[any-named]** selects any keyword argument. -- **Argument[hash-splat]** selects a special argument representing all keyword arguments passed in the method call. -- **Parameter[**\ `number`\ **]** selects the argument at the given index. -- **Parameter[**\ `string`:\ **]** selects the keyword argument with the given name. -- **Parameter[self]** selects the **self** parameter of a method. -- **Parameter[block]** selects the block parameter. -- **Parameter[any]** selects any parameter, except self or block parameters. -- **Parameter[any-named]** selects any keyword parameter. -- **Parameter[hash-splat]** selects the hash splat parameter, often written as **\*\*kwargs**. -- **ReturnValue** selects the return value of a call. -- **Method[**\ `name`\ **]** selects a call to the method with the given name. -- **Element[any]** selects any element of an array or hash. -- **Element[**\ `number`\ **]** selects an array element at the given index. -- **Element[**\ `string`\ **]** selects a hash element at the given key. -- **Field[@**\ `string`\ **]** selects an instance variable with the given name. -- **Fuzzy** selects all values that are derived from the current value through a combination of the other operations described in this list. +- ``Argument[``\ `number`\ ``]`` selects the argument at the given index. +- ``Argument[``\ `string`:\ ``]`` selects the keyword argument with the given name. +- ``Argument[self]`` selects the receiver of a method call. +- ``Argument[block]`` selects the block argument. +- ``Argument[any]`` selects any argument, except self or block arguments. +- ``Argument[any-named]`` selects any keyword argument. +- ``Argument[hash-splat]`` selects a special argument representing all keyword arguments passed in the method call. +- ``Parameter[``\ `number`\ ``]`` selects the argument at the given index. +- ``Parameter[``\ `string`:\ ``]`` selects the keyword argument with the given name. +- ``Parameter[self]`` selects the ``self`` parameter of a method. +- ``Parameter[block]`` selects the block parameter. +- ``Parameter[any]`` selects any parameter, except self or block parameters. +- ``Parameter[any-named]`` selects any keyword parameter. +- ``Parameter[hash-splat]`` selects the hash splat parameter, often written as **\*\*kwargs**. +- ``ReturnValue`` selects the return value of a call. +- ``Method[``\ `name`\ ``]`` selects a call to the method with the given name. +- ``Element[any]`` selects any element of an array or hash. +- ``Element[``\ `number`\ ``]`` selects an array element at the given index. +- ``Element[``\ `string`\ ``]`` selects a hash element at the given key. +- ``Field[@``\ `string`\ ``]`` selects an instance variable with the given name. +- ``Fuzzy`` selects all values that are derived from the current value through a combination of the other operations described in this list. For example, this can be used to find all values that appear to originate from a particular class. This can be useful for finding method calls from a known class, but where the receiver type is not known or is difficult to model. Additional notes about the syntax of operands: -- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, **Method[foo,bar]** matches the union of **Method[foo]** and **Method[bar]**. -- Numeric operands to **Argument**, **Parameter**, and **Element** may be given as a lower bound. For example, **Argument[1..]** matches all arguments except 0. +- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, ``Method[foo,bar]`` matches the union of ``Method[foo]`` and ``Method[bar]``. +- Numeric operands to ``Argument``, ``Parameter``, and ``Element`` may be given as a lower bound. For example, ``Argument[1..]`` matches all arguments except 0. Kinds ----- @@ -434,7 +434,7 @@ Kinds Source kinds ~~~~~~~~~~~~ -- **remote**: A generic source of remote flow. Most taint-tracking queries will use such a source. Currently this is the only supported source kind. +- ``remote``: A generic source of remote flow. Most taint-tracking queries will use such a source. Currently this is the only supported source kind. Sink kinds ~~~~~~~~~~ @@ -442,15 +442,15 @@ Sink kinds Unlike sources, sinks tend to be highly query-specific, rarely affecting more than one or two queries. Not every query supports customizable sinks. If the following sinks are not suitable for your use case, you should add a new query. -- **code-injection**: A sink that can be used to inject code, such as in calls to **eval**. -- **command-injection**: A sink that can be used to inject shell commands, such as in calls to **Process.spawn**. -- **path-injection**: A sink that can be used for path injection in a file system access, such as in calls to **File.open**. -- **sql-injection**: A sink that can be used for SQL injection, such as in an ActiveRecord **where** call. -- **url-redirection**: A sink that can be used to redirect the user to a malicious URL. -- **log-injection**: A sink that can be used for log injection, such as in a **Rails.logger** call. +- ``code-injection``: A sink that can be used to inject code, such as in calls to ``eval``. +- ``command-injection``: A sink that can be used to inject shell commands, such as in calls to ``Process.spawn``. +- ``path-injection``: A sink that can be used for path injection in a file system access, such as in calls to ``File.open``. +- ``sql-injection``: A sink that can be used for SQL injection, such as in an ActiveRecord ``where`` call. +- ``url-redirection``: A sink that can be used to redirect the user to a malicious URL. +- ``log-injection``: A sink that can be used for log injection, such as in a ``Rails.logger`` call. Summary kinds ~~~~~~~~~~~~~ -- **taint**: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. -- **value**: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. +- ``taint``: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. +- ``value``: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. From efddfab564ee42f4dbf1da92f09c5cdd31ae5eef Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 16 Apr 2026 17:07:20 +0200 Subject: [PATCH 139/208] Swift: Expose the generic arguments of `BuiltinFixedArray`s --- .../builtin_fixed_array_types.ql | 7 + .../old.dbscheme | 2891 +++++++++++++++++ .../swift.dbscheme | 2889 ++++++++++++++++ .../upgrade.properties | 3 + .../extractor/translators/TypeTranslator.cpp | 8 +- swift/ql/.generated.list | 7 +- swift/ql/.gitattributes | 1 + .../elements/type/BuiltinFixedArrayType.qll | 1 + swift/ql/lib/codeql/swift/generated/Raw.qll | 10 + .../generated/type/BuiltinFixedArrayType.qll | 47 + swift/ql/lib/swift.dbscheme | 4 +- .../old.dbscheme | 2889 ++++++++++++++++ .../swift.dbscheme | 2891 +++++++++++++++++ .../upgrade.properties | 4 + .../upgrade.ql | 44 + .../BuiltinFixedArrayType.expected | 3 + .../BuiltinFixedArrayType.ql | 20 + .../fixed_array.swift | 0 .../type/BuiltinType/BuiltinType.expected | 3 - swift/schema.py | 6 +- 20 files changed, 11714 insertions(+), 14 deletions(-) create mode 100644 swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/builtin_fixed_array_types.ql create mode 100644 swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/old.dbscheme create mode 100644 swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/swift.dbscheme create mode 100644 swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/upgrade.properties create mode 100644 swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme create mode 100644 swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme create mode 100644 swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties create mode 100644 swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql rename swift/ql/test/extractor-tests/generated/type/{BuiltinType => BuiltinFixedArrayType}/fixed_array.swift (100%) diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/builtin_fixed_array_types.ql b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/builtin_fixed_array_types.ql new file mode 100644 index 00000000000..8a678cc40da --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/builtin_fixed_array_types.ql @@ -0,0 +1,7 @@ +class BuiltinFixedArrayType extends @builtin_fixed_array_type { + string toString() { none() } +} + +from BuiltinFixedArrayType builtinFixedArrayType +where builtin_fixed_array_types(builtinFixedArrayType, _, _) +select builtinFixedArrayType diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/old.dbscheme b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/old.dbscheme new file mode 100644 index 00000000000..5738be6bb04 --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/old.dbscheme @@ -0,0 +1,2891 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type, + int size: @type_or_none ref, + int element_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/swift.dbscheme b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/swift.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/swift.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/upgrade.properties b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/upgrade.properties new file mode 100644 index 00000000000..0e7d432a350 --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/upgrade.properties @@ -0,0 +1,3 @@ +description: Support BuiltinFixedArrayType arguments +compatibility: full +builtin_fixed_array_types.rel: run builtin_fixed_array_types.qlo diff --git a/swift/extractor/translators/TypeTranslator.cpp b/swift/extractor/translators/TypeTranslator.cpp index 5d2d1e39667..ccd1a84f3cf 100644 --- a/swift/extractor/translators/TypeTranslator.cpp +++ b/swift/extractor/translators/TypeTranslator.cpp @@ -235,10 +235,10 @@ codeql::BuiltinIntegerType TypeTranslator::translateBuiltinIntegerType( codeql::BuiltinFixedArrayType TypeTranslator::translateBuiltinFixedArrayType( const swift::BuiltinFixedArrayType& type) { - // currently the translate dispatching mechanism does not go up more than one step in the - // hierarchy so we need to put this explicitly here, as BuiltinFixedArrayType derives from - // BuiltinGenericType which then derives from BuiltinType - return translateBuiltinType(type); + auto entry = createTypeEntry(type); + entry.size = dispatcher.fetchLabel(type.getSize()); + entry.element_type = dispatcher.fetchLabel(type.getElementType()); + return entry; } codeql::ExistentialArchetypeType TypeTranslator::translateExistentialArchetypeType( diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index a666c64948d..ea1cb6f571b 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -539,7 +539,7 @@ lib/codeql/swift/elements/type/BoundGenericType.qll 089e5e8d09c62a23d575dcab68cd lib/codeql/swift/elements/type/BuiltinBridgeObjectType.qll b0064e09b53efe801b0bf950ff00698a84e2f714e853e4859ed5f3246025a1bd aa14b6ae2ec510c4ddd2cc073bf971809536ab8fd8763fd05bd171b0bbe83860 lib/codeql/swift/elements/type/BuiltinDefaultActorStorageType.qll e867a9d0b2c61b7eb61f5143c78e31f8d98d3245d79e0e3281d4c172175f496b 265e87f2e37ca968af572cc619294d1ee91dd66ebb0d1bb1ba9ab7159de52f0b lib/codeql/swift/elements/type/BuiltinExecutorType.qll 2b141553bbc02a00d97579ba9d0e38fa0978d40ce954b0caf64826aa259dbc08 a81465fd0e87ad5b8e418d8f21c337b3e96388a3b92b3332f0d6b0ff7663e5c7 -lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll 9d32f49cd7169d12c00cde31433897e8f8ada62132430020dc2525a97673cf57 0236f494f6ce77b04a80e405d11f5b39b1e45ea9c50a6ee42dd96407516b448f +lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll d7ee816a646cde2be9141d89eadc86a144aa3f983d0562f1b478448b0bda54fc 95639bfde60f1401ca741e4930ab7f935b0aa4f4bdb7d8ec09cd2010037c0aca lib/codeql/swift/elements/type/BuiltinFloatType.qll 81f49325077b75cea682904ddab24d1b2fdc5c93b0b28830c08e866d5c9307a7 e26a348d66e3824ccd92729624ce2b2ebc82a844aa47035e0a963a62b08b772d lib/codeql/swift/elements/type/BuiltinGenericType.qll 108682444f5f28b64b7caa16254fd4d7418813bc9e7f6a17477b13fe37293d40 de3fa330516684f0cfd848101b3a93f83b2d8a9f00b35dae70d2b56cb5414923 lib/codeql/swift/elements/type/BuiltinIntegerLiteralType.qll 34ee35733cf26f90d799a79f8a2362b199ea2ecb6ba83eb5678dda9eb3ed255f e33fdb27d3c22d441277b66ba74136cb88e1da25a2146391b258c68f7fbf5dd3 @@ -741,7 +741,7 @@ lib/codeql/swift/generated/Location.qll 5e20316c3e480ddfe632b7e88e016c19f10a67df lib/codeql/swift/generated/MacroRole.qll facf907e75490d69cd401c491215e4719324d751f40ea46c86ccf24cf3663c1f 969d8d4b44e3f1a9c193a152a4d83a303e56d2dbb871fc920c47a33f699cf018 lib/codeql/swift/generated/ParentChild.qll 669d39245f2cb735cfd4bcebdb551ef8f334fef5297c5834a8b09ebfa655856e 59b283c8a30b6b364c853302ab919ea713e0289e7b793b08b46fc87178d14a6a lib/codeql/swift/generated/PureSynthConstructors.qll bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 -lib/codeql/swift/generated/Raw.qll c209a47a66f24f54bdfb5adf591dd171b2dbe9e30936a2355160526b9f756399 378e7492ca885f46092628ca26afa76c909deb88f092fe56404fea8f94d133b0 +lib/codeql/swift/generated/Raw.qll 0090c6509cb3fa5a67c996a2fc22e6338caef19701ca19463965b55b3c63096f 578329fa3abbabbadbff5e364e9c8d7ad76b41d4c17ad76e0660d41f48746659 lib/codeql/swift/generated/Synth.qll e30b50d2645d9c36719d81f1be70712c7c6e89a3f5b4a5ae894411e045d05bff 9bd0c9c90532db97cde9553dde4089b7cf12c462c690d853fa40cb36ea112c21 lib/codeql/swift/generated/SynthConstructors.qll c40f01e1331bdbe238620a41d17409cefe34a6b23066708ef5d74f8631b54f48 c40f01e1331bdbe238620a41d17409cefe34a6b23066708ef5d74f8631b54f48 lib/codeql/swift/generated/UnknownFile.qll 247ddf2ebb49ce5ed4bf7bf91a969ddff37de6c78d43d8affccaf7eb586e06f2 452b29f0465ef45e978ef8b647b75e5a2a1e53f2a568fc003bc8f52f73b3fa4d @@ -980,7 +980,7 @@ lib/codeql/swift/generated/type/BoundGenericType.qll 5e7a2210b766437ca301f9675f7 lib/codeql/swift/generated/type/BuiltinBridgeObjectType.qll 97f30768a8788ec4547ce8a8f06fdd165286177e3819bf2e6590b9479f5bada4 ea3161c34d1d18783b38deac43c73048e4510015307d93f77cd95c149e988846 lib/codeql/swift/generated/type/BuiltinDefaultActorStorageType.qll 10e49de9a8bc3e67285c111f7869c8baceb70e478661d5557ebc8c86f41b4aec 1a0ce85eb325f666fbc2ac49c6f994efd552de6f2105e0a7ba9a10e39f3d1591 lib/codeql/swift/generated/type/BuiltinExecutorType.qll 8f58d4d413910aded894bfa9b54748adfc2b78f4ee271ac6db5f5b0214f36a66 69da70d76146155529b7b2426b3a459abe318f887240aac1aed5719fda5f386a -lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll 2ae9d1ef215c725bc27f69d25247d360ee8aa0aa5a757df6b8e9734821084435 2f1caacf0f95c8f863296f0cc0a56abac4bf58ddc68e9ed63b5d8672fd21172d +lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll 96ff3c5b77ecc92689879c211dce7d6f7a4e3288ff168ac31a723ecf9619da9e c4abf2e438e3924f2b412d78178faf2384004f589caf0ccbdc1f3e712a211a4a lib/codeql/swift/generated/type/BuiltinFloatType.qll 6306a806107bba052fe0b1335c8c4d4391cdb6aa5f42f14c70743113928c4c36 3265d571630c0437e5d81ba20a0b6112b7e88ee3ffca737557186001cf8aa04a lib/codeql/swift/generated/type/BuiltinGenericType.qll 6cd1b5da102e221f25a301c284ccc9cbd64d595596787df1a4fd3f2a92ded077 3ae4c8676a868205c5334646e395b8fc4e561ee2f4c115003ae2f4ed83197b76 lib/codeql/swift/generated/type/BuiltinIntegerLiteralType.qll 3f49aac9b81c440b902a658294cf95aff5cb79b0d6cee8b1abd8a08ad45c7966 6c184dcf5d9376f193f07fe4722ea7cab51f1dfdef4d72c3042842d73cca31fe @@ -1190,6 +1190,7 @@ test/extractor-tests/generated/type/ArraySliceType/MISSING_SOURCE.txt 35fb32ea53 test/extractor-tests/generated/type/BoundGenericClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericEnumType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericStructType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d +test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql fe912eb6996342dd1b7188f560567eab623b888c3160110235e20b2821aa6155 42050d820b80c5f65714ab2bdbc70791b37569e5a7b7839b5b1826a1bf4fe344 test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql 78d10029fa696ec4bcc48ea666923b98aa120a4a66004c491314f4abf283eac4 d23455d2ec38a1bba726d2e8fb349dfa2cdc52b8751d9caabb438d0dcdff6ab7 test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql 83a861b3ad63bed272f892031adc5bc651ed244cfcd53fc3090a2cea3f9d6a8d 197689774e28406b4bd798059fc57078695b43ca0833a7a4ef9dabd519e62d0d test/extractor-tests/generated/type/ClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 212221509d0..6810b5061d5 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -1192,6 +1192,7 @@ /test/extractor-tests/generated/type/BoundGenericClassType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/BoundGenericEnumType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/BoundGenericStructType/MISSING_SOURCE.txt linguist-generated +/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql linguist-generated /test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql linguist-generated /test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql linguist-generated /test/extractor-tests/generated/type/ClassType/MISSING_SOURCE.txt linguist-generated diff --git a/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll index 996c38d127b..8723de5cc49 100644 --- a/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll @@ -5,6 +5,7 @@ private import internal.BuiltinFixedArrayTypeImpl import codeql.swift.elements.type.BuiltinGenericType +import codeql.swift.elements.type.Type /** * A builtin type representing N values stored contiguously. diff --git a/swift/ql/lib/codeql/swift/generated/Raw.qll b/swift/ql/lib/codeql/swift/generated/Raw.qll index c2c65234cd4..3e0fa95a327 100644 --- a/swift/ql/lib/codeql/swift/generated/Raw.qll +++ b/swift/ql/lib/codeql/swift/generated/Raw.qll @@ -6537,6 +6537,16 @@ module Raw { */ class BuiltinFixedArrayType extends @builtin_fixed_array_type, BuiltinGenericType { override string toString() { result = "BuiltinFixedArrayType" } + + /** + * Gets the size of this builtin fixed array type. + */ + Type getSize() { builtin_fixed_array_types(this, result, _) } + + /** + * Gets the element type of this builtin fixed array type. + */ + Type getElementType() { builtin_fixed_array_types(this, _, result) } } private Element getImmediateChildOfBuiltinFixedArrayType(BuiltinFixedArrayType e, int index) { diff --git a/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll index 5ed9491607a..e7a2d0ef0d3 100644 --- a/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll +++ b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll @@ -7,6 +7,7 @@ private import codeql.swift.generated.Synth private import codeql.swift.generated.Raw import codeql.swift.elements.type.internal.BuiltinGenericTypeImpl::Impl as BuiltinGenericTypeImpl +import codeql.swift.elements.type.Type /** * INTERNAL: This module contains the fully generated definition of `BuiltinFixedArrayType` and should not @@ -22,5 +23,51 @@ module Generated { BuiltinGenericTypeImpl::BuiltinGenericType { override string getAPrimaryQlClass() { result = "BuiltinFixedArrayType" } + + /** + * Gets the size of this builtin fixed array type. + * + * This includes nodes from the "hidden" AST. It can be overridden in subclasses to change the + * behavior of both the `Immediate` and non-`Immediate` versions. + */ + Type getImmediateSize() { + result = + Synth::convertTypeFromRaw(Synth::convertBuiltinFixedArrayTypeToRaw(this) + .(Raw::BuiltinFixedArrayType) + .getSize()) + } + + /** + * Gets the size of this builtin fixed array type. + */ + final Type getSize() { + exists(Type immediate | + immediate = this.getImmediateSize() and + if exists(this.getResolveStep()) then result = immediate else result = immediate.resolve() + ) + } + + /** + * Gets the element type of this builtin fixed array type. + * + * This includes nodes from the "hidden" AST. It can be overridden in subclasses to change the + * behavior of both the `Immediate` and non-`Immediate` versions. + */ + Type getImmediateElementType() { + result = + Synth::convertTypeFromRaw(Synth::convertBuiltinFixedArrayTypeToRaw(this) + .(Raw::BuiltinFixedArrayType) + .getElementType()) + } + + /** + * Gets the element type of this builtin fixed array type. + */ + final Type getElementType() { + exists(Type immediate | + immediate = this.getImmediateElementType() and + if exists(this.getResolveStep()) then result = immediate else result = immediate.resolve() + ) + } } } diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index ee3053b673c..5738be6bb04 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -2559,7 +2559,9 @@ bound_generic_type_arg_types( //dir=type ); builtin_fixed_array_types( //dir=type - unique int id: @builtin_fixed_array_type + unique int id: @builtin_fixed_array_type, + int size: @type_or_none ref, + int element_type: @type_or_none ref ); builtin_integer_literal_types( //dir=type diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme new file mode 100644 index 00000000000..5738be6bb04 --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme @@ -0,0 +1,2891 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type, + int size: @type_or_none ref, + int element_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties new file mode 100644 index 00000000000..48de15f84ae --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties @@ -0,0 +1,4 @@ +description: Support BuiltinFixedArrayType arguments +compatibility: backwards +builtin_fixed_array_types.rel: run upgrade.ql new_builtin_fixed_array_types +unspecified_elements.rel: run upgrade.ql new_unspecified_elements diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.ql b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.ql new file mode 100644 index 00000000000..03a001e6000 --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.ql @@ -0,0 +1,44 @@ +class BuiltinFixedArrayType extends @builtin_fixed_array_type { + string toString() { none() } +} + +newtype TAddedElement = + TSize(BuiltinFixedArrayType a) or + TElementType(BuiltinFixedArrayType a) + +module Fresh = QlBuiltins::NewEntity; + +class TNewElement = @element or Fresh::EntityId; + +class NewElement extends TNewElement { + string toString() { none() } +} + +class TypeOrNone extends @type_or_none { + string toString() { none() } +} + +query predicate new_builtin_fixed_array_types( + BuiltinFixedArrayType builtinFixedArrayType, NewElement size, NewElement elementType +) { + builtin_fixed_array_types(builtinFixedArrayType) and + Fresh::map(TSize(builtinFixedArrayType)) = size and + Fresh::map(TElementType(builtinFixedArrayType)) = elementType +} + +query predicate new_unspecified_elements(NewElement id, string property, string error) { + unspecified_elements(id, property, error) + or + exists(BuiltinFixedArrayType builtinFixedArrayType | + builtin_fixed_array_types(builtinFixedArrayType) + | + id = Fresh::map(TSize(builtinFixedArrayType)) and + error = "BuiltinFixedArrayType size missing after upgrade. Please update your CodeQL code." and + property = "" + or + id = Fresh::map(TElementType(builtinFixedArrayType)) and + error = + "BuiltinFixedArrayType element type missing after upgrade. Please update your CodeQL code." and + property = "" + ) +} diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.expected new file mode 100644 index 00000000000..5dce3facedf --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.expected @@ -0,0 +1,3 @@ +| Builtin.FixedArray<4, Int> | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | getSize: | 4 | getElementType: | Int | +| Builtin.FixedArray | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | getSize: | N | getElementType: | T | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | getSize: | \u03c4_0_0 | getElementType: | \u03c4_0_1 | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql new file mode 100644 index 00000000000..e8ec753f6f6 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql @@ -0,0 +1,20 @@ +// generated by codegen/codegen.py, do not edit +import codeql.swift.elements +import TestUtils + +query predicate instances( + BuiltinFixedArrayType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getSize__label, Type getSize, string getElementType__label, + Type getElementType +) { + toBeTested(x) and + not x.isUnknown() and + getName__label = "getName:" and + getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and + getCanonicalType = x.getCanonicalType() and + getSize__label = "getSize:" and + getSize = x.getSize() and + getElementType__label = "getElementType:" and + getElementType = x.getElementType() +} diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/fixed_array.swift similarity index 100% rename from swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift rename to swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/fixed_array.swift diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected index 1b64e9f4a22..27e4e6f0868 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected @@ -2,9 +2,6 @@ | Builtin.Executor | BuiltinExecutorType | getName: | Executor | getCanonicalType: | Builtin.Executor | | Builtin.FPIEEE32 | BuiltinFloatType | getName: | FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | | Builtin.FPIEEE64 | BuiltinFloatType | getName: | FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | | Builtin.IntLiteral | BuiltinIntegerLiteralType | getName: | IntLiteral | getCanonicalType: | Builtin.IntLiteral | | Builtin.Job | BuiltinJobType | getName: | Job | getCanonicalType: | Builtin.Job | | Builtin.NativeObject | BuiltinNativeObjectType | getName: | NativeObject | getCanonicalType: | Builtin.NativeObject | diff --git a/swift/schema.py b/swift/schema.py index 9302cb14b57..febbf1ae2f4 100644 --- a/swift/schema.py +++ b/swift/schema.py @@ -307,7 +307,6 @@ class ModuleDecl(TypeDecl): class SubscriptDecl(AbstractStorageDecl, GenericContext): params: list[ParamDecl] | child element_type: Type - element_type: Type @group("decl") class Accessor(AccessorOrNamedFunction): @@ -1486,9 +1485,10 @@ class BuiltinGenericType(BuiltinType): """ pass - +@qltest.uncollapse_hierarchy class BuiltinFixedArrayType(BuiltinGenericType): """ A builtin type representing N values stored contiguously. """ - pass + size: Type + element_type: Type From 6c675fcede8cac3eb3362ee7765a3c96c11c3631 Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 16 Apr 2026 21:14:42 +0000 Subject: [PATCH 140/208] Python: Consolidate duplicated code --- python/extractor/tsg-python/python.tsg | 30 +------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/python/extractor/tsg-python/python.tsg b/python/extractor/tsg-python/python.tsg index e0aadd5432c..c832f7e6321 100644 --- a/python/extractor/tsg-python/python.tsg +++ b/python/extractor/tsg-python/python.tsg @@ -795,12 +795,7 @@ ;;;;;; DictComp (`{a: b for c in d if e}`) ; See GeneratorExp for details. -(dictionary_comprehension - body: (pair - key: (_) @_key - value: (_) @_value - ) -) @genexpr +(dictionary_comprehension) @genexpr { ; Synthesize the `genexpr` function let @genexpr.fun = (ast-node @genexpr "Function") @@ -824,29 +819,6 @@ attr (@genexpr.arg_use) ctx = "load" } -; DictComp with unpacking (PEP 798): `{**d for d in dicts}` -(dictionary_comprehension - body: (dictionary_splat) -) @genexpr -{ - let @genexpr.fun = (ast-node @genexpr "Function") - attr (@genexpr.node) function = @genexpr.fun - attr (@genexpr.fun) name = "dictcomp" - - let @genexpr.arg = (ast-node @genexpr "Name") - attr (@genexpr.arg) variable = ".0" - attr (@genexpr.arg) ctx = "param" - - edge @genexpr.fun -> @genexpr.arg - attr (@genexpr.fun -> @genexpr.arg) args = 0 - attr (@genexpr.fun) kwonlyargs = #null - attr (@genexpr.fun) kwarg = #null - - let @genexpr.arg_use = (ast-node @genexpr "Name") - attr (@genexpr.arg_use) variable = ".0" - attr (@genexpr.arg_use) ctx = "load" -} - ;;;;;; End of DictComp (`{a: b for c in d if e}`) ;;;;;; GeneratorExp (`(a for b in c if d)`) From d2d594a8ff79ab05892216ab77aca13cef650a26 Mon Sep 17 00:00:00 2001 From: jeongsoolee09 Date: Thu, 16 Apr 2026 21:21:09 -0400 Subject: [PATCH 141/208] Add models of ::aligned_alloc, std::aligned_alloc, and bsl::aligned_alloc --- cpp/ql/lib/ext/allocation/Std.allocation.model.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/ext/allocation/Std.allocation.model.yml b/cpp/ql/lib/ext/allocation/Std.allocation.model.yml index 16b3d5bceba..227cc4176c0 100644 --- a/cpp/ql/lib/ext/allocation/Std.allocation.model.yml +++ b/cpp/ql/lib/ext/allocation/Std.allocation.model.yml @@ -12,4 +12,7 @@ extensions: - ["", "", False, "_malloca", "0", "", "", False] - ["", "", False, "calloc", "1", "0", "", True] - ["std", "", False, "calloc", "1", "0", "", True] - - ["bsl", "", False, "calloc", "1", "0", "", True] \ No newline at end of file + - ["bsl", "", False, "calloc", "1", "0", "", True] + - ["", "", False, "aligned_alloc", "1", "", "", True] + - ["std", "", False, "aligned_alloc", "1", "", "", True] + - ["bsl", "", False, "aligned_alloc", "1", "", "", True] From 553ed103c35589c3d25763b665bf1a7758618740 Mon Sep 17 00:00:00 2001 From: jeongsoolee09 Date: Thu, 16 Apr 2026 21:31:55 -0400 Subject: [PATCH 142/208] Add a change note --- .../change-notes/2026-04-16-add-model-for-aligned-alloc.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md diff --git a/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md b/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md new file mode 100644 index 00000000000..010fb0f69a1 --- /dev/null +++ b/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added models for `::aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. These will now be recognized as `AllocationFunction`. From 33e9c020799a99f117a3dd722de53fea6ab58a27 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 17 Apr 2026 09:33:13 +0200 Subject: [PATCH 143/208] C#: Add more tests for `RedundantToStringCall.ql` --- .../RedundantToStringCall/RedundantToStringCall.cs | 14 +++++++++++--- .../RedundantToStringCall.expected | 9 ++++++--- .../RedundantToStringCall.qlref | 4 +++- .../RedundantToStringCallBad.cs | 2 +- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs index 981b3600266..d055307d539 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs @@ -1,16 +1,24 @@ using System; +using System.Text; class RedundantToString { public void M(object o) { - Console.WriteLine(o.ToString()); // BAD + Console.WriteLine(o.ToString()); // $ Alert Console.WriteLine(o); // GOOD - Console.WriteLine($"Hello: {o.ToString()}"); // BAD + Console.WriteLine($"Hello: {o.ToString()}"); // $ Alert Console.WriteLine($"Hello: {o}"); // GOOD - Console.WriteLine("Hello: " + o.ToString()); // BAD + Console.WriteLine("Hello: " + o.ToString()); // $ Alert Console.WriteLine("Hello: " + o); // GOOD + + var sb = new StringBuilder(); + sb.Append(o.ToString()); // $ Alert + sb.Append(o); // GOOD + sb.AppendLine(o.ToString()); // $ SPURIOUS: Alert + + Console.WriteLine($"Hello: {base.ToString()}"); // $ SPURIOUS: Alert } } diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected index 28775378f04..aade4883486 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected @@ -1,4 +1,7 @@ -| RedundantToStringCall.cs:7:27:7:38 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:10:37:10:48 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:13:39:13:50 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:8:27:8:38 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:11:37:11:48 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:14:39:14:50 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:18:19:18:30 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:20:23:20:34 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:22:37:22:51 | call to method ToString | Redundant call to 'ToString' on a String object. | | RedundantToStringCallBad.cs:7:45:7:56 | call to method ToString | Redundant call to 'ToString' on a String object. | diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref index c0ee8dd0ec7..86bf1476007 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref @@ -1 +1,3 @@ -Useless code/RedundantToStringCall.ql \ No newline at end of file +query: Useless code/RedundantToStringCall.ql +postprocess: + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs index d6d043f2376..ed5cd137a85 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs @@ -4,6 +4,6 @@ class Bad { static string Hello(object o) { - return string.Format("Hello, {0}!", o.ToString()); + return string.Format("Hello, {0}!", o.ToString()); // $ Alert } } From 426962e348976d4d90afa0561cb56b63296e9f32 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 17 Apr 2026 09:37:19 +0200 Subject: [PATCH 144/208] C#: Fix FPs in `RedundantToStringCall.ql` --- csharp/ql/lib/semmle/code/csharp/commons/Strings.qll | 2 +- csharp/ql/src/Useless code/RedundantToStringCall.ql | 3 ++- .../RedundantToStringCall/RedundantToStringCall.cs | 4 ++-- .../RedundantToStringCall/RedundantToStringCall.expected | 2 -- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll index 678a1f92816..3fde913358b 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll @@ -29,7 +29,7 @@ class ImplicitToStringExpr extends Expr { m = p.getCallable() | m = any(SystemTextStringBuilderClass c).getAMethod() and - m.getName().regexpMatch("Append(Line)?") and + m.getName() = "Append" and not p.getType() instanceof ArrayType or p instanceof StringFormatItemParameter and diff --git a/csharp/ql/src/Useless code/RedundantToStringCall.ql b/csharp/ql/src/Useless code/RedundantToStringCall.ql index 55e7056e9a0..3b531f4d097 100644 --- a/csharp/ql/src/Useless code/RedundantToStringCall.ql +++ b/csharp/ql/src/Useless code/RedundantToStringCall.ql @@ -18,5 +18,6 @@ import semmle.code.csharp.frameworks.System from MethodCall mc where mc instanceof ImplicitToStringExpr and - mc.getTarget() instanceof ToStringMethod + mc.getTarget() instanceof ToStringMethod and + not mc.getQualifier() instanceof BaseAccess select mc, "Redundant call to 'ToString' on a String object." diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs index d055307d539..01c770d105b 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs @@ -17,8 +17,8 @@ class RedundantToString var sb = new StringBuilder(); sb.Append(o.ToString()); // $ Alert sb.Append(o); // GOOD - sb.AppendLine(o.ToString()); // $ SPURIOUS: Alert + sb.AppendLine(o.ToString()); // GOOD - Console.WriteLine($"Hello: {base.ToString()}"); // $ SPURIOUS: Alert + Console.WriteLine($"Hello: {base.ToString()}"); // GOOD } } diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected index aade4883486..ecfc616335a 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected @@ -2,6 +2,4 @@ | RedundantToStringCall.cs:11:37:11:48 | call to method ToString | Redundant call to 'ToString' on a String object. | | RedundantToStringCall.cs:14:39:14:50 | call to method ToString | Redundant call to 'ToString' on a String object. | | RedundantToStringCall.cs:18:19:18:30 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:20:23:20:34 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:22:37:22:51 | call to method ToString | Redundant call to 'ToString' on a String object. | | RedundantToStringCallBad.cs:7:45:7:56 | call to method ToString | Redundant call to 'ToString' on a String object. | From 9f4fd7fab0c40b7e4543324075339b535c8c9448 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 17 Apr 2026 11:27:36 +0100 Subject: [PATCH 145/208] Remove a data flow consistency exclusion This is no longer needed. --- .../semmle/go/dataflow/internal/DataFlowImplConsistency.qll | 4 ---- 1 file changed, 4 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll index cf4794a9715..b4cd0a01bfc 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll @@ -19,10 +19,6 @@ private module Input implements InputSig { predicate uniqueNodeLocationExclude(DataFlow::Node n) { missingLocationExclude(n) } - predicate localFlowIsLocalExclude(DataFlow::Node n1, DataFlow::Node n2) { - n1 instanceof DataFlow::FunctionNode and simpleLocalFlowStep(n1, n2, _) - } - predicate argHasPostUpdateExclude(DataFlow::ArgumentNode n) { not DataFlow::insnHasPostUpdateNode(n.asInstruction()) } From abec00cd341cafe441e1d4a2515cf87011e0aa31 Mon Sep 17 00:00:00 2001 From: Jeongsoo Lee Date: Fri, 17 Apr 2026 07:08:38 -0400 Subject: [PATCH 146/208] Update cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- .../src/change-notes/2026-04-16-add-model-for-aligned-alloc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md b/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md index 010fb0f69a1..af97cee7f9e 100644 --- a/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md +++ b/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Added models for `::aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. These will now be recognized as `AllocationFunction`. +* Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. From dd2440086f15e1a45be2f11360c94bc968467d4c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 17 Apr 2026 13:24:17 +0200 Subject: [PATCH 147/208] Swift: Add change note --- swift/ql/lib/change-notes/2026-04-17-fixed-array.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2026-04-17-fixed-array.md diff --git a/swift/ql/lib/change-notes/2026-04-17-fixed-array.md b/swift/ql/lib/change-notes/2026-04-17-fixed-array.md new file mode 100644 index 00000000000..26eac3f9272 --- /dev/null +++ b/swift/ql/lib/change-notes/2026-04-17-fixed-array.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* The `BuiltinFixedArrays` class now defines the predicates `getSize` and `getElementType`, which yield the size of the array and the type of elements stored in the array, respectively. From e3b88cbad3548e52cfeede7e32a7ffe4ccff3c11 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 17 Apr 2026 13:29:24 +0200 Subject: [PATCH 148/208] Swift: Fix change note --- swift/ql/lib/change-notes/2026-04-17-fixed-array.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/ql/lib/change-notes/2026-04-17-fixed-array.md b/swift/ql/lib/change-notes/2026-04-17-fixed-array.md index 26eac3f9272..3fd91627544 100644 --- a/swift/ql/lib/change-notes/2026-04-17-fixed-array.md +++ b/swift/ql/lib/change-notes/2026-04-17-fixed-array.md @@ -1,4 +1,4 @@ --- category: feature --- -* The `BuiltinFixedArrays` class now defines the predicates `getSize` and `getElementType`, which yield the size of the array and the type of elements stored in the array, respectively. +* The `BuiltinFixedArrayType` class now defines the predicates `getSize` and `getElementType`, which yield the size of the array and the type of elements stored in the array, respectively. From 0235df87582d56ff8b7f22824f89704a77340423 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 17 Apr 2026 13:15:10 +0200 Subject: [PATCH 149/208] C#: Improve alert message for `RedundantToStringCall.ql` --- csharp/ql/src/Useless code/RedundantToStringCall.ql | 2 +- .../RedundantToStringCall.expected | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/csharp/ql/src/Useless code/RedundantToStringCall.ql b/csharp/ql/src/Useless code/RedundantToStringCall.ql index 3b531f4d097..e29e071b4d9 100644 --- a/csharp/ql/src/Useless code/RedundantToStringCall.ql +++ b/csharp/ql/src/Useless code/RedundantToStringCall.ql @@ -20,4 +20,4 @@ where mc instanceof ImplicitToStringExpr and mc.getTarget() instanceof ToStringMethod and not mc.getQualifier() instanceof BaseAccess -select mc, "Redundant call to 'ToString' on a String object." +select mc, "Redundant call to 'ToString'." diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected index ecfc616335a..b81421da571 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected @@ -1,5 +1,5 @@ -| RedundantToStringCall.cs:8:27:8:38 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:11:37:11:48 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:14:39:14:50 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:18:19:18:30 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCallBad.cs:7:45:7:56 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:8:27:8:38 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCall.cs:11:37:11:48 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCall.cs:14:39:14:50 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCall.cs:18:19:18:30 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCallBad.cs:7:45:7:56 | call to method ToString | Redundant call to 'ToString'. | From 7bfdfbefa9438bfd5180c84444e54517e7271c6c Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 17 Apr 2026 13:57:08 +0200 Subject: [PATCH 150/208] Add change note --- csharp/ql/src/change-notes/2026-04-17-useless-to-string.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 csharp/ql/src/change-notes/2026-04-17-useless-to-string.md diff --git a/csharp/ql/src/change-notes/2026-04-17-useless-to-string.md b/csharp/ql/src/change-notes/2026-04-17-useless-to-string.md new file mode 100644 index 00000000000..9b4c81378c9 --- /dev/null +++ b/csharp/ql/src/change-notes/2026-04-17-useless-to-string.md @@ -0,0 +1,7 @@ +--- +category: minorAnalysis +--- +* The query `cs/useless-tostring-call` has been updated to avoid false + positive results in calls to `StringBuilder.AppendLine` and calls of + the form `base.ToString()`. Moreover, the alert message has been + made more precise. From dc3660974313160236464e7bbb68f2bd2a13ac15 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 17 Apr 2026 12:15:04 +0000 Subject: [PATCH 151/208] Python: Add data-flow tests Alas, all these demonstrate is that we already don't fully support the desugared `yield from` form. --- .../library-tests/dataflow/coverage/test.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/python/ql/test/library-tests/dataflow/coverage/test.py b/python/ql/test/library-tests/dataflow/coverage/test.py index 5f13ba5a403..e07e32f0840 100644 --- a/python/ql/test/library-tests/dataflow/coverage/test.py +++ b/python/ql/test/library-tests/dataflow/coverage/test.py @@ -257,6 +257,32 @@ def test_yield_from(): SINK(next(g)) # $ MISSING:flow="SOURCE, l:-1 -> next()" +# PEP 798: Unpacking in comprehensions. +# These desugar to `yield from`, so flow depends on yield-from support (see above). +def test_star_list_comp(): + l = [[SOURCE]] + flat = [*x for x in l] + SINK(flat[0]) # $ MISSING:flow="SOURCE, l:-2 -> flat[0]" + + +def test_star_set_comp(): + l = [[SOURCE]] + flat = {*x for x in l} + SINK(flat.pop()) # $ MISSING:flow="SOURCE, l:-2 -> flat.pop()" + + +def test_star_genexp(): + l = [[SOURCE]] + g = (*x for x in l) + SINK(next(g)) # $ MISSING:flow="SOURCE, l:-2 -> next()" + + +def test_star_dictcomp(): + l = [{"key": SOURCE}] + merged = {**d for d in l} + SINK(merged["key"]) # $ MISSING:flow="SOURCE, l:-2 -> merged[..]" + + # a statement rather than an expression, but related to generators def test_for(): for x in gen(SOURCE): From bc28e1726c7198c850b4c49031725857f6599294 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 17 Apr 2026 13:24:16 +0100 Subject: [PATCH 152/208] Refactor to get rid of duplication --- go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll b/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll index b7045aa7fe2..cfd8a8aee23 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll @@ -20,17 +20,13 @@ module IoFs { private class WalkDirStep extends TaintTracking::AdditionalTaintStep { override predicate step(DataFlow::Node pred, DataFlow::Node succ) { //signature: func WalkDir(fsys FS, root string, fn WalkDirFunc) error - exists(DataFlow::CallNode call, DataFlow::FunctionNode f | - f.(DataFlow::FuncLitNode).getASuccessor*() = call.getArgument(2) + exists(DataFlow::CallNode call, DataFlow::FunctionNode f, DataFlow::Node n | + n = f.(DataFlow::FuncLitNode) or - exists(DataFlow::ExprNode functionName | - f.(DataFlow::GlobalFunctionNode).getFunction() = - functionName.asExpr().(FunctionName).getTarget() - | - functionName.getASuccessor*() = call.getArgument(2) - ) + n.asExpr().(FunctionName).getTarget() = f.(DataFlow::GlobalFunctionNode).getFunction() | call.getTarget().hasQualifiedName(packagePath(), "WalkDir") and + n.getASuccessor*() = call.getArgument(2) and pred = call.getArgument(0) and succ = f.getParameter([0, 1]) ) From ac23e1678607d03c8409e14de5f9348171ecb287 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 17 Apr 2026 13:16:46 +0000 Subject: [PATCH 153/208] Python: Move Python 3.15 data-flow tests to a separate file We won't be able to run these tests until Python 3.15 is actually out (and our CI is using it), so it seemed easiest to just put them in their own test directory. --- .../NormalDataflowTest.expected | 2 ++ .../coverage-pep798/NormalDataflowTest.ql | 2 ++ .../dataflow/coverage-pep798/test.py | 25 ++++++++++++++++++ .../library-tests/dataflow/coverage/test.py | 26 ------------------- 4 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.expected create mode 100644 python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.ql create mode 100644 python/ql/test/library-tests/dataflow/coverage-pep798/test.py diff --git a/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.expected new file mode 100644 index 00000000000..2fad7bb9a84 --- /dev/null +++ b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.expected @@ -0,0 +1,2 @@ +missingAnnotationOnSink +testFailures diff --git a/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.ql new file mode 100644 index 00000000000..1e0627bfcca --- /dev/null +++ b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.ql @@ -0,0 +1,2 @@ +import python +import utils.test.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/coverage-pep798/test.py b/python/ql/test/library-tests/dataflow/coverage-pep798/test.py new file mode 100644 index 00000000000..c6f7a1b4bf1 --- /dev/null +++ b/python/ql/test/library-tests/dataflow/coverage-pep798/test.py @@ -0,0 +1,25 @@ +# PEP 798: Unpacking in comprehensions. +# These desugar to `yield from`, so flow depends on yield-from support. + +def test_star_list_comp(): + l = [[SOURCE]] + flat = [*x for x in l] + SINK(flat[0]) # $ MISSING:flow="SOURCE, l:-2 -> flat[0]" + + +def test_star_set_comp(): + l = [[SOURCE]] + flat = {*x for x in l} + SINK(flat.pop()) # $ MISSING:flow="SOURCE, l:-2 -> flat.pop()" + + +def test_star_genexp(): + l = [[SOURCE]] + g = (*x for x in l) + SINK(next(g)) # $ MISSING:flow="SOURCE, l:-2 -> next()" + + +def test_star_dictcomp(): + l = [{"key": SOURCE}] + merged = {**d for d in l} + SINK(merged["key"]) # $ MISSING:flow="SOURCE, l:-2 -> merged[..]" diff --git a/python/ql/test/library-tests/dataflow/coverage/test.py b/python/ql/test/library-tests/dataflow/coverage/test.py index e07e32f0840..5f13ba5a403 100644 --- a/python/ql/test/library-tests/dataflow/coverage/test.py +++ b/python/ql/test/library-tests/dataflow/coverage/test.py @@ -257,32 +257,6 @@ def test_yield_from(): SINK(next(g)) # $ MISSING:flow="SOURCE, l:-1 -> next()" -# PEP 798: Unpacking in comprehensions. -# These desugar to `yield from`, so flow depends on yield-from support (see above). -def test_star_list_comp(): - l = [[SOURCE]] - flat = [*x for x in l] - SINK(flat[0]) # $ MISSING:flow="SOURCE, l:-2 -> flat[0]" - - -def test_star_set_comp(): - l = [[SOURCE]] - flat = {*x for x in l} - SINK(flat.pop()) # $ MISSING:flow="SOURCE, l:-2 -> flat.pop()" - - -def test_star_genexp(): - l = [[SOURCE]] - g = (*x for x in l) - SINK(next(g)) # $ MISSING:flow="SOURCE, l:-2 -> next()" - - -def test_star_dictcomp(): - l = [{"key": SOURCE}] - merged = {**d for d in l} - SINK(merged["key"]) # $ MISSING:flow="SOURCE, l:-2 -> merged[..]" - - # a statement rather than an expression, but related to generators def test_for(): for x in gen(SOURCE): From f5131f9bc6e123f65e4c7ad6018de2c5c71201ac Mon Sep 17 00:00:00 2001 From: Salah Baddou Date: Thu, 16 Apr 2026 04:10:04 +0000 Subject: [PATCH 154/208] Java: Add XXE sink model for Woodstox WstxInputFactory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `com.ctc.wstx.stax.WstxInputFactory` overrides `createXMLStreamReader`, `createXMLEventReader` and `setProperty` from `XMLInputFactory`, so the existing `XmlInputFactory` model in `XmlParsers.qll` does not match calls where the static receiver type is `WstxInputFactory` (or its supertype `org.codehaus.stax2.XMLInputFactory2`). Woodstox is vulnerable to XXE in its default configuration, so these missed sinks were false negatives in `java/xxe`. This adds a scoped framework model under `semmle/code/java/frameworks/woodstox/WoodstoxXml.qll` (registered in the `Frameworks` module of `XmlParsers.qll`) that recognises these calls as XXE sinks and treats the factory as safe when both `javax.xml.stream.supportDTD` and `javax.xml.stream.isSupportingExternalEntities` are disabled — mirroring the existing `XMLInputFactory` safe-configuration logic. --- .../java/frameworks/woodstox/WoodstoxXml.qll | 93 +++++++++++++++++++ .../semmle/code/java/security/XmlParsers.qll | 1 + .../change-notes/2026-04-16-woodstox-xxe.md | 4 + .../CWE-611/WstxInputFactoryTests.java | 44 +++++++++ .../query-tests/security/CWE-611/XXE.expected | 12 +++ .../test/query-tests/security/CWE-611/options | 2 +- .../com/ctc/wstx/stax/WstxInputFactory.java | 49 ++++++++++ .../org/codehaus/stax2/XMLInputFactory2.java | 9 ++ 8 files changed, 213 insertions(+), 1 deletion(-) create mode 100644 java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll create mode 100644 java/ql/src/change-notes/2026-04-16-woodstox-xxe.md create mode 100644 java/ql/test/query-tests/security/CWE-611/WstxInputFactoryTests.java create mode 100644 java/ql/test/stubs/woodstox-core-6.4.0/com/ctc/wstx/stax/WstxInputFactory.java create mode 100644 java/ql/test/stubs/woodstox-core-6.4.0/org/codehaus/stax2/XMLInputFactory2.java diff --git a/java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll b/java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll new file mode 100644 index 00000000000..b5964aba3ba --- /dev/null +++ b/java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll @@ -0,0 +1,93 @@ +/** Provides definitions related to XML parsing in the Woodstox StAX library. */ +overlay[local?] +module; + +import java +private import semmle.code.java.security.XmlParsers + +/** + * The class `com.ctc.wstx.stax.WstxInputFactory` or its abstract supertype + * `org.codehaus.stax2.XMLInputFactory2`. + */ +private class WstxInputFactory extends RefType { + WstxInputFactory() { + this.hasQualifiedName("com.ctc.wstx.stax", "WstxInputFactory") or + this.hasQualifiedName("org.codehaus.stax2", "XMLInputFactory2") + } +} + +/** A call to `WstxInputFactory.createXMLStreamReader`. */ +private class WstxInputFactoryStreamReader extends XmlParserCall { + WstxInputFactoryStreamReader() { + exists(Method m | + this.getMethod() = m and + m.getDeclaringType() instanceof WstxInputFactory and + m.hasName("createXMLStreamReader") + ) + } + + override Expr getSink() { + if this.getMethod().getParameterType(0) instanceof TypeString + then result = this.getArgument(1) + else result = this.getArgument(0) + } + + override predicate isSafe() { + SafeWstxInputFactoryFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) + } +} + +/** A call to `WstxInputFactory.createXMLEventReader`. */ +private class WstxInputFactoryEventReader extends XmlParserCall { + WstxInputFactoryEventReader() { + exists(Method m | + this.getMethod() = m and + m.getDeclaringType() instanceof WstxInputFactory and + m.hasName("createXMLEventReader") + ) + } + + override Expr getSink() { + if this.getMethod().getParameterType(0) instanceof TypeString + then result = this.getArgument(1) + else result = this.getArgument(0) + } + + override predicate isSafe() { + SafeWstxInputFactoryFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) + } +} + +/** A `ParserConfig` specific to `WstxInputFactory`. */ +private class WstxInputFactoryConfig extends ParserConfig { + WstxInputFactoryConfig() { + exists(Method m | + m = this.getMethod() and + m.getDeclaringType() instanceof WstxInputFactory and + m.hasName("setProperty") + ) + } +} + +/** + * A safely configured `WstxInputFactory`. + */ +private class SafeWstxInputFactory extends VarAccess { + SafeWstxInputFactory() { + exists(Variable v | + v = this.getVariable() and + exists(WstxInputFactoryConfig config | config.getQualifier() = v.getAnAccess() | + config.disables(configOptionIsSupportingExternalEntities()) + ) and + exists(WstxInputFactoryConfig config | config.getQualifier() = v.getAnAccess() | + config.disables(configOptionSupportDtd()) + ) + ) + } +} + +private predicate safeWstxInputFactoryNode(DataFlow::Node src) { + src.asExpr() instanceof SafeWstxInputFactory +} + +private module SafeWstxInputFactoryFlow = DataFlow::SimpleGlobal; diff --git a/java/ql/lib/semmle/code/java/security/XmlParsers.qll b/java/ql/lib/semmle/code/java/security/XmlParsers.qll index bd1520034eb..a910e34c8e3 100644 --- a/java/ql/lib/semmle/code/java/security/XmlParsers.qll +++ b/java/ql/lib/semmle/code/java/security/XmlParsers.qll @@ -12,6 +12,7 @@ private module Frameworks { private import semmle.code.java.frameworks.javase.Beans private import semmle.code.java.frameworks.mdht.MdhtXml private import semmle.code.java.frameworks.rundeck.RundeckXml + private import semmle.code.java.frameworks.woodstox.WoodstoxXml } /** diff --git a/java/ql/src/change-notes/2026-04-16-woodstox-xxe.md b/java/ql/src/change-notes/2026-04-16-woodstox-xxe.md new file mode 100644 index 00000000000..891fc489e46 --- /dev/null +++ b/java/ql/src/change-notes/2026-04-16-woodstox-xxe.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The queries "Resolving XML external entity in user-controlled data" (`java/xxe`) and "Resolving XML external entity in user-controlled data from local source" (`java/xxe-local`) now recognize sinks in the Woodstox StAX library when `com.ctc.wstx.stax.WstxInputFactory` or `org.codehaus.stax2.XMLInputFactory2` are used directly. diff --git a/java/ql/test/query-tests/security/CWE-611/WstxInputFactoryTests.java b/java/ql/test/query-tests/security/CWE-611/WstxInputFactoryTests.java new file mode 100644 index 00000000000..b64ec54f5b7 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-611/WstxInputFactoryTests.java @@ -0,0 +1,44 @@ +import java.net.Socket; + +import javax.xml.stream.XMLInputFactory; + +import com.ctc.wstx.stax.WstxInputFactory; + +public class WstxInputFactoryTests { + + public void unconfiguredFactory(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert + } + + public void safeFactory(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty(XMLInputFactory.SUPPORT_DTD, false); + factory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false); + factory.createXMLStreamReader(sock.getInputStream()); // safe + factory.createXMLEventReader(sock.getInputStream()); // safe + } + + public void safeFactoryStringProperties(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty("javax.xml.stream.supportDTD", false); + factory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); + factory.createXMLStreamReader(sock.getInputStream()); // safe + factory.createXMLEventReader(sock.getInputStream()); // safe + } + + public void misConfiguredFactory(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert + } + + public void misConfiguredFactory2(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty(XMLInputFactory.SUPPORT_DTD, false); + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert + } +} diff --git a/java/ql/test/query-tests/security/CWE-611/XXE.expected b/java/ql/test/query-tests/security/CWE-611/XXE.expected index a1d0725321d..87e033c129a 100644 --- a/java/ql/test/query-tests/security/CWE-611/XXE.expected +++ b/java/ql/test/query-tests/security/CWE-611/XXE.expected @@ -89,6 +89,12 @@ | TransformerTests.java:141:21:141:73 | new SAXSource(...) | TransformerTests.java:141:51:141:71 | getInputStream(...) : InputStream | TransformerTests.java:141:21:141:73 | new SAXSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:141:51:141:71 | getInputStream(...) | user-provided value | | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | user-provided value | | ValidatorTests.java:22:28:22:33 | source | ValidatorTests.java:17:49:17:72 | getInputStream(...) : ServletInputStream | ValidatorTests.java:22:28:22:33 | source | XML parsing depends on a $@ without guarding against external entity expansion. | ValidatorTests.java:17:49:17:72 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | user-provided value | | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | XML parsing depends on a $@ without guarding against external entity expansion. | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) | user-provided value | | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | XMLReaderTests.java:16:34:16:54 | getInputStream(...) : InputStream | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:16:34:16:54 | getInputStream(...) | user-provided value | | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | XMLReaderTests.java:56:34:56:54 | getInputStream(...) : InputStream | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:56:34:56:54 | getInputStream(...) | user-provided value | @@ -390,6 +396,12 @@ nodes | ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | | ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | semmle.label | servletInputStream : ServletInputStream | | ValidatorTests.java:22:28:22:33 | source | semmle.label | source | +| WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | semmle.label | getInputStream(...) | | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | semmle.label | getInputStream(...) : ServletInputStream | | XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | semmle.label | new XMLDecoder(...) : XMLDecoder | | XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | semmle.label | servletInputStream : ServletInputStream | diff --git a/java/ql/test/query-tests/security/CWE-611/options b/java/ql/test/query-tests/security/CWE-611/options index 1480b49d716..190e6b2af0c 100644 --- a/java/ql/test/query-tests/security/CWE-611/options +++ b/java/ql/test/query-tests/security/CWE-611/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/jdom-1.1.3:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/simple-xml-2.7.1:${testdir}/../../../stubs/jaxb-api-2.3.1:${testdir}/../../../stubs/jaxen-1.2.0:${testdir}/../../../stubs/apache-commons-digester3-3.2:${testdir}/../../../stubs/servlet-api-2.4/:${testdir}/../../../stubs/rundeck-api-java-client-13.2:${testdir}/../../../stubs/springframework-5.8.x/:${testdir}/../../../stubs/mdht-1.2.0/ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/jdom-1.1.3:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/simple-xml-2.7.1:${testdir}/../../../stubs/jaxb-api-2.3.1:${testdir}/../../../stubs/jaxen-1.2.0:${testdir}/../../../stubs/apache-commons-digester3-3.2:${testdir}/../../../stubs/servlet-api-2.4/:${testdir}/../../../stubs/rundeck-api-java-client-13.2:${testdir}/../../../stubs/springframework-5.8.x/:${testdir}/../../../stubs/mdht-1.2.0/:${testdir}/../../../stubs/woodstox-core-6.4.0 diff --git a/java/ql/test/stubs/woodstox-core-6.4.0/com/ctc/wstx/stax/WstxInputFactory.java b/java/ql/test/stubs/woodstox-core-6.4.0/com/ctc/wstx/stax/WstxInputFactory.java new file mode 100644 index 00000000000..979d76b6e20 --- /dev/null +++ b/java/ql/test/stubs/woodstox-core-6.4.0/com/ctc/wstx/stax/WstxInputFactory.java @@ -0,0 +1,49 @@ +// Generated automatically from com.ctc.wstx.stax.WstxInputFactory for testing purposes + +package com.ctc.wstx.stax; + +import java.io.InputStream; +import java.io.Reader; +import javax.xml.stream.EventFilter; +import javax.xml.stream.StreamFilter; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLReporter; +import javax.xml.stream.XMLResolver; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.util.XMLEventAllocator; +import javax.xml.transform.Source; +import org.codehaus.stax2.XMLInputFactory2; + +public class WstxInputFactory extends XMLInputFactory2 { + public WstxInputFactory() {} + + public XMLStreamReader createXMLStreamReader(InputStream in) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(InputStream in, String enc) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(Reader r) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(Source src) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(String systemId, InputStream in) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(String systemId, Reader r) throws XMLStreamException { return null; } + + public XMLEventReader createXMLEventReader(InputStream in) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(InputStream in, String enc) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(Reader r) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(Source src) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(String systemId, InputStream in) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(String systemId, Reader r) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(XMLStreamReader sr) throws XMLStreamException { return null; } + + public XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter) { return null; } + public XMLEventReader createFilteredReader(XMLEventReader reader, EventFilter filter) { return null; } + + public void setProperty(String name, Object value) {} + public Object getProperty(String name) { return null; } + public boolean isPropertySupported(String name) { return false; } + + public XMLResolver getXMLResolver() { return null; } + public void setXMLResolver(XMLResolver r) {} + public XMLReporter getXMLReporter() { return null; } + public void setXMLReporter(XMLReporter r) {} + public XMLEventAllocator getEventAllocator() { return null; } + public void setEventAllocator(XMLEventAllocator a) {} +} diff --git a/java/ql/test/stubs/woodstox-core-6.4.0/org/codehaus/stax2/XMLInputFactory2.java b/java/ql/test/stubs/woodstox-core-6.4.0/org/codehaus/stax2/XMLInputFactory2.java new file mode 100644 index 00000000000..6b94d00d03a --- /dev/null +++ b/java/ql/test/stubs/woodstox-core-6.4.0/org/codehaus/stax2/XMLInputFactory2.java @@ -0,0 +1,9 @@ +// Generated automatically from org.codehaus.stax2.XMLInputFactory2 for testing purposes + +package org.codehaus.stax2; + +import javax.xml.stream.XMLInputFactory; + +public abstract class XMLInputFactory2 extends XMLInputFactory { + protected XMLInputFactory2() {} +} From fb2d53e72a5fc189472a1be7163c5960c6c9cc29 Mon Sep 17 00:00:00 2001 From: Salah Baddou Date: Fri, 17 Apr 2026 18:32:24 +0400 Subject: [PATCH 155/208] Address review: inline Woodstox into XmlParsers, move changelog to lib --- .../change-notes/2026-04-16-woodstox-xxe.md | 0 .../java/frameworks/woodstox/WoodstoxXml.qll | 93 ------------------- .../semmle/code/java/security/XmlParsers.qll | 32 ++++++- 3 files changed, 27 insertions(+), 98 deletions(-) rename java/ql/{src => lib}/change-notes/2026-04-16-woodstox-xxe.md (100%) delete mode 100644 java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll diff --git a/java/ql/src/change-notes/2026-04-16-woodstox-xxe.md b/java/ql/lib/change-notes/2026-04-16-woodstox-xxe.md similarity index 100% rename from java/ql/src/change-notes/2026-04-16-woodstox-xxe.md rename to java/ql/lib/change-notes/2026-04-16-woodstox-xxe.md diff --git a/java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll b/java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll deleted file mode 100644 index b5964aba3ba..00000000000 --- a/java/ql/lib/semmle/code/java/frameworks/woodstox/WoodstoxXml.qll +++ /dev/null @@ -1,93 +0,0 @@ -/** Provides definitions related to XML parsing in the Woodstox StAX library. */ -overlay[local?] -module; - -import java -private import semmle.code.java.security.XmlParsers - -/** - * The class `com.ctc.wstx.stax.WstxInputFactory` or its abstract supertype - * `org.codehaus.stax2.XMLInputFactory2`. - */ -private class WstxInputFactory extends RefType { - WstxInputFactory() { - this.hasQualifiedName("com.ctc.wstx.stax", "WstxInputFactory") or - this.hasQualifiedName("org.codehaus.stax2", "XMLInputFactory2") - } -} - -/** A call to `WstxInputFactory.createXMLStreamReader`. */ -private class WstxInputFactoryStreamReader extends XmlParserCall { - WstxInputFactoryStreamReader() { - exists(Method m | - this.getMethod() = m and - m.getDeclaringType() instanceof WstxInputFactory and - m.hasName("createXMLStreamReader") - ) - } - - override Expr getSink() { - if this.getMethod().getParameterType(0) instanceof TypeString - then result = this.getArgument(1) - else result = this.getArgument(0) - } - - override predicate isSafe() { - SafeWstxInputFactoryFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) - } -} - -/** A call to `WstxInputFactory.createXMLEventReader`. */ -private class WstxInputFactoryEventReader extends XmlParserCall { - WstxInputFactoryEventReader() { - exists(Method m | - this.getMethod() = m and - m.getDeclaringType() instanceof WstxInputFactory and - m.hasName("createXMLEventReader") - ) - } - - override Expr getSink() { - if this.getMethod().getParameterType(0) instanceof TypeString - then result = this.getArgument(1) - else result = this.getArgument(0) - } - - override predicate isSafe() { - SafeWstxInputFactoryFlow::flowsTo(DataFlow::exprNode(this.getQualifier())) - } -} - -/** A `ParserConfig` specific to `WstxInputFactory`. */ -private class WstxInputFactoryConfig extends ParserConfig { - WstxInputFactoryConfig() { - exists(Method m | - m = this.getMethod() and - m.getDeclaringType() instanceof WstxInputFactory and - m.hasName("setProperty") - ) - } -} - -/** - * A safely configured `WstxInputFactory`. - */ -private class SafeWstxInputFactory extends VarAccess { - SafeWstxInputFactory() { - exists(Variable v | - v = this.getVariable() and - exists(WstxInputFactoryConfig config | config.getQualifier() = v.getAnAccess() | - config.disables(configOptionIsSupportingExternalEntities()) - ) and - exists(WstxInputFactoryConfig config | config.getQualifier() = v.getAnAccess() | - config.disables(configOptionSupportDtd()) - ) - ) - } -} - -private predicate safeWstxInputFactoryNode(DataFlow::Node src) { - src.asExpr() instanceof SafeWstxInputFactory -} - -private module SafeWstxInputFactoryFlow = DataFlow::SimpleGlobal; diff --git a/java/ql/lib/semmle/code/java/security/XmlParsers.qll b/java/ql/lib/semmle/code/java/security/XmlParsers.qll index a910e34c8e3..602076996a7 100644 --- a/java/ql/lib/semmle/code/java/security/XmlParsers.qll +++ b/java/ql/lib/semmle/code/java/security/XmlParsers.qll @@ -12,7 +12,6 @@ private module Frameworks { private import semmle.code.java.frameworks.javase.Beans private import semmle.code.java.frameworks.mdht.MdhtXml private import semmle.code.java.frameworks.rundeck.RundeckXml - private import semmle.code.java.frameworks.woodstox.WoodstoxXml } /** @@ -180,12 +179,29 @@ class XmlInputFactory extends RefType { XmlInputFactory() { this.hasQualifiedName(javaxOrJakarta() + ".xml.stream", "XMLInputFactory") } } -/** A call to `XMLInputFactory.createXMLStreamReader`. */ +/** + * The class `com.ctc.wstx.stax.WstxInputFactory` or its abstract supertype + * `org.codehaus.stax2.XMLInputFactory2` from the Woodstox StAX library. + */ +class WstxInputFactory extends RefType { + WstxInputFactory() { + this.hasQualifiedName("com.ctc.wstx.stax", "WstxInputFactory") or + this.hasQualifiedName("org.codehaus.stax2", "XMLInputFactory2") + } +} + +/** + * A call to `XMLInputFactory.createXMLStreamReader` or the equivalent method on the + * Woodstox `WstxInputFactory`. + */ class XmlInputFactoryStreamReader extends XmlParserCall { XmlInputFactoryStreamReader() { exists(Method m | this.getMethod() = m and - m.getDeclaringType() instanceof XmlInputFactory and + ( + m.getDeclaringType() instanceof XmlInputFactory or + m.getDeclaringType() instanceof WstxInputFactory + ) and m.hasName("createXMLStreamReader") ) } @@ -213,7 +229,10 @@ class XmlInputFactoryEventReader extends XmlParserCall { XmlInputFactoryEventReader() { exists(Method m | this.getMethod() = m and - m.getDeclaringType() instanceof XmlInputFactory and + ( + m.getDeclaringType() instanceof XmlInputFactory or + m.getDeclaringType() instanceof WstxInputFactory + ) and m.hasName("createXMLEventReader") ) } @@ -236,7 +255,10 @@ class XmlInputFactoryConfig extends ParserConfig { XmlInputFactoryConfig() { exists(Method m | m = this.getMethod() and - m.getDeclaringType() instanceof XmlInputFactory and + ( + m.getDeclaringType() instanceof XmlInputFactory or + m.getDeclaringType() instanceof WstxInputFactory + ) and m.hasName("setProperty") ) } From dca7046d8c94b1d4a3989981e404eb807c24fbe9 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 18 Apr 2026 10:35:15 +0100 Subject: [PATCH 156/208] Make inline expectation comments specify query --- .../tests/PartialPathTraversalTest.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java index b1986c1b669..4c5f83e433a 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java @@ -10,14 +10,14 @@ import java.net.Socket; public class PartialPathTraversalTest { public void esapiExample(File parent) throws IOException { - if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @SuppressWarnings("ResultOfMethodCallIgnored") void foo1(File parent) throws IOException { - (dir().getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $ Alert + (dir().getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $ Alert[java/partial-path-traversal-from-remote] } void foo2(File parent) throws IOException { @@ -29,31 +29,31 @@ public class PartialPathTraversalTest { void foo3(File parent) throws IOException { String parentPath = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentPath)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentPath)) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo4() throws IOException { - if (!dir().getCanonicalPath().startsWith("/usr" + "/dir")) { // $ Alert + if (!dir().getCanonicalPath().startsWith("/usr" + "/dir")) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo5(File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo6(File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } String canonicalPath2 = dir().getCanonicalPath(); - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -61,10 +61,10 @@ public class PartialPathTraversalTest { void foo7(File dir, File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); String canonicalPath2 = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -94,7 +94,7 @@ public class PartialPathTraversalTest { void foo11(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -102,10 +102,10 @@ public class PartialPathTraversalTest { void foo12(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); String parentCanonical2 = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -173,7 +173,7 @@ public class PartialPathTraversalTest { void foo19(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + "/potato"; - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -191,7 +191,7 @@ public class PartialPathTraversalTest { String filePath = sb.toString(); File encodedFile = new File(filePath); try { - if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $ Alert + if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] return null; } return Files.newInputStream(encodedFile.toPath()); @@ -209,7 +209,7 @@ public class PartialPathTraversalTest { void foo22(File dir2, File parent, boolean conditional) throws IOException { String canonicalPath = conditional ? dir().getCanonicalPath() : dir2.getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } From 63d20a54d46c2b87190f3631f1606075215f22f5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 18 Apr 2026 10:48:14 +0100 Subject: [PATCH 157/208] Use inline expectations with second test Co-authored-by: Copilot --- .../semmle/tests/PartialPathTraversal.qlref | 5 ++- .../tests/PartialPathTraversalTest.java | 32 +++++++++---------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref index 431556c90af..9d7e47fca70 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref @@ -1 +1,4 @@ -Security/CWE/CWE-023/PartialPathTraversal.ql \ No newline at end of file +query: Security/CWE/CWE-023/PartialPathTraversal.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java index 4c5f83e433a..a8d0b7396ae 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java @@ -10,14 +10,14 @@ import java.net.Socket; public class PartialPathTraversalTest { public void esapiExample(File parent) throws IOException { - if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @SuppressWarnings("ResultOfMethodCallIgnored") void foo1(File parent) throws IOException { - (dir().getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $ Alert[java/partial-path-traversal-from-remote] + (dir().getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] } void foo2(File parent) throws IOException { @@ -29,31 +29,31 @@ public class PartialPathTraversalTest { void foo3(File parent) throws IOException { String parentPath = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentPath)) { // $ Alert[java/partial-path-traversal-from-remote] + if (!dir().getCanonicalPath().startsWith(parentPath)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo4() throws IOException { - if (!dir().getCanonicalPath().startsWith("/usr" + "/dir")) { // $ Alert[java/partial-path-traversal-from-remote] + if (!dir().getCanonicalPath().startsWith("/usr" + "/dir")) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo5(File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo6(File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } String canonicalPath2 = dir().getCanonicalPath(); - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -61,10 +61,10 @@ public class PartialPathTraversalTest { void foo7(File dir, File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); String canonicalPath2 = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -75,7 +75,7 @@ public class PartialPathTraversalTest { void foo8(File parent) throws IOException { String canonicalPath = getChild().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + getChild().getCanonicalPath()); } } @@ -94,7 +94,7 @@ public class PartialPathTraversalTest { void foo11(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -102,10 +102,10 @@ public class PartialPathTraversalTest { void foo12(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); String parentCanonical2 = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { // $ Alert[java/partial-path-traversal-from-remote] + if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -173,7 +173,7 @@ public class PartialPathTraversalTest { void foo19(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + "/potato"; - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -191,7 +191,7 @@ public class PartialPathTraversalTest { String filePath = sb.toString(); File encodedFile = new File(filePath); try { - if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] return null; } return Files.newInputStream(encodedFile.toPath()); @@ -209,7 +209,7 @@ public class PartialPathTraversalTest { void foo22(File dir2, File parent, boolean conditional) throws IOException { String canonicalPath = conditional ? dir().getCanonicalPath() : dir2.getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } From 6099c5d034c28bed9dfe1ff46e5bc63f42aae5dd Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 18 Apr 2026 19:56:19 +0100 Subject: [PATCH 158/208] Add SPURIOUS test for `+= File.separator` --- .../tests/PartialPathTraversal.expected | 1 + ...artialPathTraversalFromRemoteTest.expected | 103 +++++++++--------- .../tests/PartialPathTraversalTest.java | 8 ++ 3 files changed, 63 insertions(+), 49 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected index 5379de2403b..a30ff929df8 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected @@ -14,3 +14,4 @@ | PartialPathTraversalTest.java:176:14:176:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | | PartialPathTraversalTest.java:194:18:194:87 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | | PartialPathTraversalTest.java:212:14:212:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:234:14:234:54 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected index f2af01542ee..0c88cb8107f 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected @@ -1,19 +1,20 @@ #select -| PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | edges | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | provenance | MaD:6 | | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | provenance | MaD:6 | @@ -43,30 +44,32 @@ edges | PartialPathTraversalTest.java:194:18:194:28 | encodedFile : File | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | provenance | MaD:6 | | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | provenance | MaD:6 | | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | provenance | | -| PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | provenance | | -| PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | provenance | MaD:2 | -| PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:1 MaD:7 | -| PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | provenance | MaD:3 | -| PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | PartialPathTraversalTest.java:254:29:254:36 | filename : String | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:32:14:32:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:38:14:38:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:44:32:44:36 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:51:32:51:36 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:55:33:55:37 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:62:32:62:36 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:63:33:63:37 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:97:14:97:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:105:14:105:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:29:254:36 | filename : String | PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | provenance | MaD:4 | -| PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | provenance | MaD:5 | -| PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | provenance | MaD:10 | -| PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | PartialPathTraversalTest.java:186:25:186:30 | path(...) : String[] | provenance | | +| PartialPathTraversalTest.java:234:14:234:18 | dir(...) : File | PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | PartialPathTraversalTest.java:261:31:261:44 | filenameReader : BufferedReader | provenance | | +| PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | provenance | MaD:2 | +| PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:1 MaD:7 | +| PartialPathTraversalTest.java:261:31:261:44 | filenameReader : BufferedReader | PartialPathTraversalTest.java:261:31:261:55 | readLine(...) : String | provenance | MaD:3 | +| PartialPathTraversalTest.java:261:31:261:55 | readLine(...) : String | PartialPathTraversalTest.java:262:29:262:36 | filename : String | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:32:14:32:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:38:14:38:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:44:32:44:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:51:32:51:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:55:33:55:37 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:62:32:62:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:63:33:63:37 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:97:14:97:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:105:14:105:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:234:14:234:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:29:262:36 | filename : String | PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | provenance | MaD:4 | +| PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | PartialPathTraversalTest.java:269:16:269:38 | getAbsolutePath(...) : String | provenance | MaD:5 | +| PartialPathTraversalTest.java:269:16:269:38 | getAbsolutePath(...) : String | PartialPathTraversalTest.java:269:16:269:60 | split(...) : String[] | provenance | MaD:10 | +| PartialPathTraversalTest.java:269:16:269:60 | split(...) : String[] | PartialPathTraversalTest.java:186:25:186:30 | path(...) : String[] | provenance | | models | 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | | 2 | Summary: java.io; BufferedReader; false; BufferedReader; ; ; Argument[0]; Argument[this]; taint; manual | @@ -122,14 +125,16 @@ nodes | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | semmle.label | dir(...) : File | | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | semmle.label | canonicalPath | -| PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | -| PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | -| PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | -| PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | semmle.label | filenameReader : BufferedReader | -| PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | semmle.label | readLine(...) : String | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | semmle.label | new File(...) : File | -| PartialPathTraversalTest.java:254:29:254:36 | filename : String | semmle.label | filename : String | -| PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | semmle.label | dir(...) : File | -| PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | semmle.label | getAbsolutePath(...) : String | -| PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | semmle.label | split(...) : String[] | +| PartialPathTraversalTest.java:234:14:234:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | +| PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| PartialPathTraversalTest.java:261:31:261:44 | filenameReader : BufferedReader | semmle.label | filenameReader : BufferedReader | +| PartialPathTraversalTest.java:261:31:261:55 | readLine(...) : String | semmle.label | readLine(...) : String | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | semmle.label | new File(...) : File | +| PartialPathTraversalTest.java:262:29:262:36 | filename : String | semmle.label | filename : String | +| PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:269:16:269:38 | getAbsolutePath(...) : String | semmle.label | getAbsolutePath(...) : String | +| PartialPathTraversalTest.java:269:16:269:60 | split(...) : String[] | semmle.label | split(...) : String[] | subpaths diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java index a8d0b7396ae..89fb6aaf469 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java @@ -228,6 +228,14 @@ public class PartialPathTraversalTest { } } + void foo25(File parent) throws IOException { + String path = parent.getCanonicalPath(); + path += File.separator; + if (!dir().getCanonicalPath().startsWith(path)) { // $ SPURIOUS: Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); + } + } + public void doesNotFlagOptimalSafeVersion(File parent) throws IOException { if (!dir().toPath().normalize().startsWith(parent.toPath())) { // Safe throw new IOException("Path traversal attempt: " + dir().getCanonicalPath()); From 6d4a3974ced27ce770b2d0864801adb813079b9e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 18 Apr 2026 20:02:32 +0100 Subject: [PATCH 159/208] Fix bug so `+= File.separator` is recognized --- .../lib/semmle/code/java/security/PartialPathTraversal.qll | 7 +++++-- .../CWE-023/semmle/tests/PartialPathTraversal.expected | 1 - .../tests/PartialPathTraversalFromRemoteTest.expected | 5 ----- .../CWE-023/semmle/tests/PartialPathTraversalTest.java | 2 +- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll b/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll index 63ffb62ef63..a7b0c50b082 100644 --- a/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll +++ b/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll @@ -40,8 +40,11 @@ private class CharacterLiteralFileSeparatorExpr extends FileSeparatorExpr, Chara CharacterLiteralFileSeparatorExpr() { this.getValue() = "/" or this.getValue() = "\\" } } -private class FileSeparatorAppend extends AddExpr { - FileSeparatorAppend() { this.getRightOperand() instanceof FileSeparatorExpr } +private class FileSeparatorAppend extends BinaryExpr { + FileSeparatorAppend() { + this.(AddExpr).getRightOperand() instanceof FileSeparatorExpr or + this.(AssignAddExpr).getRightOperand() instanceof FileSeparatorExpr + } } private predicate isSafe(Expr expr) { diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected index a30ff929df8..5379de2403b 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected @@ -14,4 +14,3 @@ | PartialPathTraversalTest.java:176:14:176:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | | PartialPathTraversalTest.java:194:18:194:87 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | | PartialPathTraversalTest.java:212:14:212:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:234:14:234:54 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected index 0c88cb8107f..156adced6b0 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected @@ -14,7 +14,6 @@ | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | edges | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | provenance | MaD:6 | | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | provenance | MaD:6 | @@ -44,7 +43,6 @@ edges | PartialPathTraversalTest.java:194:18:194:28 | encodedFile : File | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | provenance | MaD:6 | | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | provenance | MaD:6 | | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | provenance | | -| PartialPathTraversalTest.java:234:14:234:18 | dir(...) : File | PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | provenance | MaD:6 | | PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | PartialPathTraversalTest.java:261:31:261:44 | filenameReader : BufferedReader | provenance | | | PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | provenance | MaD:2 | | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:1 MaD:7 | @@ -64,7 +62,6 @@ edges | PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | provenance | | | PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | provenance | | | PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:234:14:234:18 | dir(...) : File | provenance | | | PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | provenance | | | PartialPathTraversalTest.java:262:29:262:36 | filename : String | PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | provenance | MaD:4 | | PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | PartialPathTraversalTest.java:269:16:269:38 | getAbsolutePath(...) : String | provenance | MaD:5 | @@ -125,8 +122,6 @@ nodes | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | semmle.label | dir(...) : File | | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | semmle.label | canonicalPath | -| PartialPathTraversalTest.java:234:14:234:18 | dir(...) : File | semmle.label | dir(...) : File | -| PartialPathTraversalTest.java:234:14:234:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | | PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | | PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java index 89fb6aaf469..42e70b2c53d 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java @@ -231,7 +231,7 @@ public class PartialPathTraversalTest { void foo25(File parent) throws IOException { String path = parent.getCanonicalPath(); path += File.separator; - if (!dir().getCanonicalPath().startsWith(path)) { // $ SPURIOUS: Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] + if (!dir().getCanonicalPath().startsWith(path)) { throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } From c6f641eac4ef37ba8a6edcdc11c62ae57dd4f12a Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Sat, 18 Apr 2026 20:16:49 +0100 Subject: [PATCH 160/208] Add change note Co-authored-by: Copilot --- .../lib/change-notes/2026-04-18-partial-path-traversal-fix.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2026-04-18-partial-path-traversal-fix.md diff --git a/java/ql/lib/change-notes/2026-04-18-partial-path-traversal-fix.md b/java/ql/lib/change-notes/2026-04-18-partial-path-traversal-fix.md new file mode 100644 index 00000000000..8c15a346552 --- /dev/null +++ b/java/ql/lib/change-notes/2026-04-18-partial-path-traversal-fix.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `java/partial-path-traversal` and `java/partial-path-traversal-from-remote` queries now correctly recognize file separator appends using `+=`. From 92d205d1a832dfb018aeef20ff64f1d6f556b749 Mon Sep 17 00:00:00 2001 From: MarkLee131 Date: Sun, 19 Apr 2026 23:29:07 -0400 Subject: [PATCH 161/208] Use set literal for getCommonSensitiveInfoFPRegex Replace the five-way result = ... or result = ... disjunction with a single equality on a set literal. Addresses the CodeQL style alert "Use a set literal in place of or" reported by the self-scan on this PR. Pure refactor, no semantic change. --- .../code/java/security/SensitiveActions.qll | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll index a4adcd7c341..86ff96c1917 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll @@ -50,20 +50,16 @@ string getCommonSensitiveInfoRegex() { * - Secret metadata: "secretName" (K8s/AWS), "secretId" (Azure), "secretVersion", etc. */ string getCommonSensitiveInfoFPRegex() { - result = "(?i).*(null|tokenizer).*" - or - result = "tokenImage" - or - // Pagination/iteration tokens (e.g., AWS SDK pagination cursors, parser tokens) - result = "(?i).*(next|previous|current|page|continuation|cursor)tokens?.*" - or - // Token metadata/infrastructure (token followed by a non-value descriptor) result = - "(?i).*tokens?(type|kind|count|index|position|length|offset|endpoint|url|uri|bucket|rate|delimiter|separator|format|number|name|id|prefix|suffix|pattern|class|style).*" - or - // Secret metadata (secret followed by a non-value descriptor) - result = - "(?i).*secrets?(name|id|version|ref|arn|path|type|label|description|manager|client|provider|store|factory|properties).*" + [ + "(?i).*(null|tokenizer).*", "tokenImage", + // Pagination/iteration tokens (e.g., AWS SDK pagination cursors, parser tokens) + "(?i).*(next|previous|current|page|continuation|cursor)tokens?.*", + // Token metadata/infrastructure (token followed by a non-value descriptor) + "(?i).*tokens?(type|kind|count|index|position|length|offset|endpoint|url|uri|bucket|rate|delimiter|separator|format|number|name|id|prefix|suffix|pattern|class|style).*", + // Secret metadata (secret followed by a non-value descriptor) + "(?i).*secrets?(name|id|version|ref|arn|path|type|label|description|manager|client|provider|store|factory|properties).*" + ] } /** An expression that might contain sensitive data. */ From c861d99802a76469906837fe9af3bdba66231d78 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 20 Apr 2026 09:27:23 +0000 Subject: [PATCH 162/208] Release preparation for version 2.25.3 --- actions/ql/lib/CHANGELOG.md | 6 ++++++ .../0.4.34.md} | 7 ++++--- actions/ql/lib/codeql-pack.release.yml | 2 +- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/CHANGELOG.md | 10 ++++++++++ .../ql/src/change-notes/2026-04-02-permissions.md | 4 ---- .../0.6.26.md} | 13 +++++++++---- actions/ql/src/codeql-pack.release.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/CHANGELOG.md | 11 +++++++++++ cpp/ql/lib/change-notes/2026-04-07-autoconf.md | 4 ---- cpp/ql/lib/change-notes/2026-04-14-throwing.md | 5 ----- cpp/ql/lib/change-notes/released/10.0.0.md | 10 ++++++++++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 12 ++++++++++++ .../2026-03-23-implicit-function-declaration.md | 4 ---- .../2026-04-02-comparison-with-wider-type.md | 4 ---- .../2026-04-02-implicit-function-declaration.md | 4 ---- ...026-04-02-integer-multiplication-cast-to-long.md | 4 ---- .../2026-04-02-suspicious-add-sizeof.md | 4 ---- .../2026-04-02-wrong-type-format-argument.md | 4 ---- .../2026-04-16-add-model-for-aligned-alloc.md | 4 ---- cpp/ql/src/change-notes/released/1.6.1.md | 11 +++++++++++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../Solorigate/lib/change-notes/released/1.7.65.md | 3 +++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../Solorigate/src/change-notes/released/1.7.65.md | 3 +++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 6 ++++++ .../{2026-04-01-getlrvalue.md => released/5.5.0.md} | 7 ++++--- csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 9 +++++++++ .../1.7.1.md} | 7 ++++--- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.48.md | 3 +++ go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 4 ++++ go/ql/lib/change-notes/released/7.0.6.md | 3 +++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/1.6.1.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 6 ++++++ .../9.0.4.md} | 7 ++++--- java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 4 ++++ java/ql/src/change-notes/released/1.11.1.md | 3 +++ java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ javascript/ql/lib/change-notes/released/2.6.28.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 7 +++++++ .../2.3.8.md} | 7 ++++--- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ misc/suite-helpers/change-notes/released/1.0.48.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 6 ++++++ .../7.0.5.md} | 6 +++--- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ++++++ .../1.8.1.md} | 6 +++--- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++++ ruby/ql/lib/change-notes/released/5.1.16.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 4 ++++ ruby/ql/src/change-notes/released/1.6.1.md | 3 +++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/CHANGELOG.md | 4 ++++ rust/ql/lib/change-notes/released/0.2.12.md | 3 +++ rust/ql/lib/codeql-pack.release.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/CHANGELOG.md | 4 ++++ rust/ql/src/change-notes/released/0.1.33.md | 3 +++ rust/ql/src/codeql-pack.release.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/CHANGELOG.md | 4 ++++ shared/concepts/change-notes/released/0.0.22.md | 3 +++ shared/concepts/codeql-pack.release.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ shared/controlflow/change-notes/released/2.0.32.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/2.1.4.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/1.0.48.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/CHANGELOG.md | 4 ++++ shared/quantum/change-notes/released/0.0.26.md | 3 +++ shared/quantum/codeql-pack.release.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../rangeanalysis/change-notes/released/1.0.48.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/1.0.48.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/2.0.24.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ .../threat-models/change-notes/released/1.0.48.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/1.0.48.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/CHANGELOG.md | 4 ++++ shared/typeflow/change-notes/released/1.0.48.md | 3 +++ shared/typeflow/codeql-pack.release.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/CHANGELOG.md | 4 ++++ .../typeinference/change-notes/released/0.0.29.md | 3 +++ shared/typeinference/codeql-pack.release.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ shared/typetracking/change-notes/released/2.0.32.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/1.0.48.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/2.0.35.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/CHANGELOG.md | 4 ++++ shared/xml/change-notes/released/1.0.48.md | 3 +++ shared/xml/codeql-pack.release.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/1.0.48.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 6 ++++++ .../{2026-04-06-swift-6.3.md => released/6.4.0.md} | 7 ++++--- swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/1.3.1.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 174 files changed, 437 insertions(+), 151 deletions(-) rename actions/ql/lib/change-notes/{2026-03-26-remove-false-positive-sinks.md => released/0.4.34.md} (79%) delete mode 100644 actions/ql/src/change-notes/2026-04-02-permissions.md rename actions/ql/src/change-notes/{2026-04-02-alert-msg-poisoning.md => released/0.6.26.md} (64%) delete mode 100644 cpp/ql/lib/change-notes/2026-04-07-autoconf.md delete mode 100644 cpp/ql/lib/change-notes/2026-04-14-throwing.md create mode 100644 cpp/ql/lib/change-notes/released/10.0.0.md delete mode 100644 cpp/ql/src/change-notes/2026-03-23-implicit-function-declaration.md delete mode 100644 cpp/ql/src/change-notes/2026-04-02-comparison-with-wider-type.md delete mode 100644 cpp/ql/src/change-notes/2026-04-02-implicit-function-declaration.md delete mode 100644 cpp/ql/src/change-notes/2026-04-02-integer-multiplication-cast-to-long.md delete mode 100644 cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md delete mode 100644 cpp/ql/src/change-notes/2026-04-02-wrong-type-format-argument.md delete mode 100644 cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md create mode 100644 cpp/ql/src/change-notes/released/1.6.1.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.65.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.65.md rename csharp/ql/lib/change-notes/{2026-04-01-getlrvalue.md => released/5.5.0.md} (79%) rename csharp/ql/src/change-notes/{2026-04-17-useless-to-string.md => released/1.7.1.md} (84%) create mode 100644 go/ql/consistency-queries/change-notes/released/1.0.48.md create mode 100644 go/ql/lib/change-notes/released/7.0.6.md create mode 100644 go/ql/src/change-notes/released/1.6.1.md rename java/ql/lib/change-notes/{2026-04-16-woodstox-xxe.md => released/9.0.4.md} (88%) create mode 100644 java/ql/src/change-notes/released/1.11.1.md create mode 100644 javascript/ql/lib/change-notes/released/2.6.28.md rename javascript/ql/src/change-notes/{2026-04-13-fastify-per-route-rate-limit.md => released/2.3.8.md} (69%) create mode 100644 misc/suite-helpers/change-notes/released/1.0.48.md rename python/ql/lib/change-notes/{2026-04-10-support-lazy-keyword.md => released/7.0.5.md} (81%) rename python/ql/src/change-notes/{2026-03-26-improve-bind-all-interfaces-query.md => released/1.8.1.md} (86%) create mode 100644 ruby/ql/lib/change-notes/released/5.1.16.md create mode 100644 ruby/ql/src/change-notes/released/1.6.1.md create mode 100644 rust/ql/lib/change-notes/released/0.2.12.md create mode 100644 rust/ql/src/change-notes/released/0.1.33.md create mode 100644 shared/concepts/change-notes/released/0.0.22.md create mode 100644 shared/controlflow/change-notes/released/2.0.32.md create mode 100644 shared/dataflow/change-notes/released/2.1.4.md create mode 100644 shared/mad/change-notes/released/1.0.48.md create mode 100644 shared/quantum/change-notes/released/0.0.26.md create mode 100644 shared/rangeanalysis/change-notes/released/1.0.48.md create mode 100644 shared/regex/change-notes/released/1.0.48.md create mode 100644 shared/ssa/change-notes/released/2.0.24.md create mode 100644 shared/threat-models/change-notes/released/1.0.48.md create mode 100644 shared/tutorial/change-notes/released/1.0.48.md create mode 100644 shared/typeflow/change-notes/released/1.0.48.md create mode 100644 shared/typeinference/change-notes/released/0.0.29.md create mode 100644 shared/typetracking/change-notes/released/2.0.32.md create mode 100644 shared/typos/change-notes/released/1.0.48.md create mode 100644 shared/util/change-notes/released/2.0.35.md create mode 100644 shared/xml/change-notes/released/1.0.48.md create mode 100644 shared/yaml/change-notes/released/1.0.48.md rename swift/ql/lib/change-notes/{2026-04-06-swift-6.3.md => released/6.4.0.md} (50%) create mode 100644 swift/ql/src/change-notes/released/1.3.1.md diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index d625bc6f619..e84ba38d180 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.4.34 + +### Minor Analysis Improvements + +* Removed false positive injection sink models for the `context` input of `docker/build-push-action` and the `allowed-endpoints` input of `step-security/harden-runner`. + ## 0.4.33 No user-facing changes. diff --git a/actions/ql/lib/change-notes/2026-03-26-remove-false-positive-sinks.md b/actions/ql/lib/change-notes/released/0.4.34.md similarity index 79% rename from actions/ql/lib/change-notes/2026-03-26-remove-false-positive-sinks.md rename to actions/ql/lib/change-notes/released/0.4.34.md index 20ccc6d6c02..23b06db4967 100644 --- a/actions/ql/lib/change-notes/2026-03-26-remove-false-positive-sinks.md +++ b/actions/ql/lib/change-notes/released/0.4.34.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 0.4.34 + +### Minor Analysis Improvements + * Removed false positive injection sink models for the `context` input of `docker/build-push-action` and the `allowed-endpoints` input of `step-security/harden-runner`. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 7581fef2abf..69fb16e4c39 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.33 +lastReleaseVersion: 0.4.34 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index fec27415800..b7acc7a3957 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.34-dev +version: 0.4.34 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index d991237aca9..9dd234fd483 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.6.26 + +### Major Analysis Improvements + +* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also clarify the wording to make it clear that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Also change the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. + +### Minor Analysis Improvements + +* The query `actions/missing-workflow-permissions` no longer produces false positive results on reusable workflows where all callers set permissions. + ## 0.6.25 No user-facing changes. diff --git a/actions/ql/src/change-notes/2026-04-02-permissions.md b/actions/ql/src/change-notes/2026-04-02-permissions.md deleted file mode 100644 index 2672a30ef87..00000000000 --- a/actions/ql/src/change-notes/2026-04-02-permissions.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The query `actions/missing-workflow-permissions` no longer produces false positive results on reusable workflows where all callers set permissions. \ No newline at end of file diff --git a/actions/ql/src/change-notes/2026-04-02-alert-msg-poisoning.md b/actions/ql/src/change-notes/released/0.6.26.md similarity index 64% rename from actions/ql/src/change-notes/2026-04-02-alert-msg-poisoning.md rename to actions/ql/src/change-notes/released/0.6.26.md index e2340f446a7..3147a666cdb 100644 --- a/actions/ql/src/change-notes/2026-04-02-alert-msg-poisoning.md +++ b/actions/ql/src/change-notes/released/0.6.26.md @@ -1,4 +1,9 @@ ---- -category: majorAnalysis ---- -* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also clarify the wording to make it clear that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Also change the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. \ No newline at end of file +## 0.6.26 + +### Major Analysis Improvements + +* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also clarify the wording to make it clear that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Also change the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. + +### Minor Analysis Improvements + +* The query `actions/missing-workflow-permissions` no longer produces false positive results on reusable workflows where all callers set permissions. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index b8288b39222..e83bac0046e 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.25 +lastReleaseVersion: 0.6.26 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 3216a36f3d0..fc18f8052b2 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.26-dev +version: 0.6.26 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 5b5bc748c5d..2cd1bcede35 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 10.0.0 + +### Breaking Changes + +* The deprecated `NonThrowingFunction` class has been removed, use `NonCppThrowingFunction` instead. +* The deprecated `ThrowingFunction` class has been removed, use `AlwaysSehThrowingFunction` instead. + +### New Features + +* Added a subclass `AutoconfConfigureTestFile` of `ConfigurationTestFile` that represents files created by GNU autoconf configure scripts to test the build configuration. + ## 9.0.0 ### Breaking Changes diff --git a/cpp/ql/lib/change-notes/2026-04-07-autoconf.md b/cpp/ql/lib/change-notes/2026-04-07-autoconf.md deleted file mode 100644 index 9f04417b8e2..00000000000 --- a/cpp/ql/lib/change-notes/2026-04-07-autoconf.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a subclass `AutoconfConfigureTestFile` of `ConfigurationTestFile` that represents files created by GNU autoconf configure scripts to test the build configuration. diff --git a/cpp/ql/lib/change-notes/2026-04-14-throwing.md b/cpp/ql/lib/change-notes/2026-04-14-throwing.md deleted file mode 100644 index 6a15437e126..00000000000 --- a/cpp/ql/lib/change-notes/2026-04-14-throwing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: breaking ---- -* The deprecated `NonThrowingFunction` class has been removed, use `NonCppThrowingFunction` instead. -* The deprecated `ThrowingFunction` class has been removed, use `AlwaysSehThrowingFunction` instead. diff --git a/cpp/ql/lib/change-notes/released/10.0.0.md b/cpp/ql/lib/change-notes/released/10.0.0.md new file mode 100644 index 00000000000..af591bd1a0a --- /dev/null +++ b/cpp/ql/lib/change-notes/released/10.0.0.md @@ -0,0 +1,10 @@ +## 10.0.0 + +### Breaking Changes + +* The deprecated `NonThrowingFunction` class has been removed, use `NonCppThrowingFunction` instead. +* The deprecated `ThrowingFunction` class has been removed, use `AlwaysSehThrowingFunction` instead. + +### New Features + +* Added a subclass `AutoconfConfigureTestFile` of `ConfigurationTestFile` that represents files created by GNU autoconf configure scripts to test the build configuration. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index fd5f4a48b3c..28758256b94 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 9.0.0 +lastReleaseVersion: 10.0.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index dbf57d2b869..4bcb59885fa 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 9.0.1-dev +version: 10.0.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index a3f9d1836ad..aca22062e9f 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,15 @@ +## 1.6.1 + +### Minor Analysis Improvements + +* Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. +* The "Comparison of narrow type with wide type in loop condition" (`cpp/comparison-with-wider-type`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. +* The "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query no longer produces results on `build mode: none` databases. These results were found to be very noisy and fundamentally imprecise in this mode. + ## 1.6.0 ### Query Metadata Changes diff --git a/cpp/ql/src/change-notes/2026-03-23-implicit-function-declaration.md b/cpp/ql/src/change-notes/2026-03-23-implicit-function-declaration.md deleted file mode 100644 index 8c2c431ec24..00000000000 --- a/cpp/ql/src/change-notes/2026-03-23-implicit-function-declaration.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query no longer produces results on `build mode: none` databases. These results were found to be very noisy and fundamentally imprecise in this mode. diff --git a/cpp/ql/src/change-notes/2026-04-02-comparison-with-wider-type.md b/cpp/ql/src/change-notes/2026-04-02-comparison-with-wider-type.md deleted file mode 100644 index c84e1dba404..00000000000 --- a/cpp/ql/src/change-notes/2026-04-02-comparison-with-wider-type.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Comparison of narrow type with wide type in loop condition" (`cpp/comparison-with-wider-type`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. diff --git a/cpp/ql/src/change-notes/2026-04-02-implicit-function-declaration.md b/cpp/ql/src/change-notes/2026-04-02-implicit-function-declaration.md deleted file mode 100644 index dd0dbd4bc7d..00000000000 --- a/cpp/ql/src/change-notes/2026-04-02-implicit-function-declaration.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. diff --git a/cpp/ql/src/change-notes/2026-04-02-integer-multiplication-cast-to-long.md b/cpp/ql/src/change-notes/2026-04-02-integer-multiplication-cast-to-long.md deleted file mode 100644 index cd6796b408f..00000000000 --- a/cpp/ql/src/change-notes/2026-04-02-integer-multiplication-cast-to-long.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. diff --git a/cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md b/cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md deleted file mode 100644 index 040e89c1347..00000000000 --- a/cpp/ql/src/change-notes/2026-04-02-suspicious-add-sizeof.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. diff --git a/cpp/ql/src/change-notes/2026-04-02-wrong-type-format-argument.md b/cpp/ql/src/change-notes/2026-04-02-wrong-type-format-argument.md deleted file mode 100644 index f8b9085dacc..00000000000 --- a/cpp/ql/src/change-notes/2026-04-02-wrong-type-format-argument.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. diff --git a/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md b/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md deleted file mode 100644 index af97cee7f9e..00000000000 --- a/cpp/ql/src/change-notes/2026-04-16-add-model-for-aligned-alloc.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. diff --git a/cpp/ql/src/change-notes/released/1.6.1.md b/cpp/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 00000000000..4cba7e508bd --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,11 @@ +## 1.6.1 + +### Minor Analysis Improvements + +* Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. +* The "Comparison of narrow type with wide type in loop condition" (`cpp/comparison-with-wider-type`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. +* The "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query no longer produces results on `build mode: none` databases. These results were found to be very noisy and fundamentally imprecise in this mode. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index c4f0b07d533..ef7a789e0cf 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.0 +lastReleaseVersion: 1.6.1 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 4648951796c..8ec81ab6135 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.6.1-dev +version: 1.6.1 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index f7107d18c01..166a94bd88d 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.65 + +No user-facing changes. + ## 1.7.64 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.65.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.65.md new file mode 100644 index 00000000000..12bf5dad4b0 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.65.md @@ -0,0 +1,3 @@ +## 1.7.65 + +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 f41e954c9ae..bf581427d29 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.64 +lastReleaseVersion: 1.7.65 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 006ef851567..d50eb024972 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.65-dev +version: 1.7.65 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index f7107d18c01..166a94bd88d 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.65 + +No user-facing changes. + ## 1.7.64 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.65.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.65.md new file mode 100644 index 00000000000..12bf5dad4b0 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.65.md @@ -0,0 +1,3 @@ +## 1.7.65 + +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 f41e954c9ae..bf581427d29 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.64 +lastReleaseVersion: 1.7.65 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index af5fd98f58a..bd70b1664ac 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.65-dev +version: 1.7.65 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 57d99a41480..32cd8f33c65 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 5.5.0 + +### Deprecated APIs + +* The predicates `get[L|R]Value` in the class `Assignment` have been deprecated. Use `get[Left|Right]Operand` instead. + ## 5.4.12 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2026-04-01-getlrvalue.md b/csharp/ql/lib/change-notes/released/5.5.0.md similarity index 79% rename from csharp/ql/lib/change-notes/2026-04-01-getlrvalue.md rename to csharp/ql/lib/change-notes/released/5.5.0.md index da1a3d62148..b497d8ea51b 100644 --- a/csharp/ql/lib/change-notes/2026-04-01-getlrvalue.md +++ b/csharp/ql/lib/change-notes/released/5.5.0.md @@ -1,4 +1,5 @@ ---- -category: deprecated ---- +## 5.5.0 + +### Deprecated APIs + * The predicates `get[L|R]Value` in the class `Assignment` have been deprecated. Use `get[Left|Right]Operand` instead. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 43db6e52c98..4b8cf9533c1 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.12 +lastReleaseVersion: 5.5.0 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 02c1ccd0d33..f90aa010b89 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.13-dev +version: 5.5.0 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index fc0f8c58d79..cdab7134185 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,12 @@ +## 1.7.1 + +### Minor Analysis Improvements + +* The query `cs/useless-tostring-call` has been updated to avoid false + positive results in calls to `StringBuilder.AppendLine` and calls of + the form `base.ToString()`. Moreover, the alert message has been + made more precise. + ## 1.7.0 ### Query Metadata Changes diff --git a/csharp/ql/src/change-notes/2026-04-17-useless-to-string.md b/csharp/ql/src/change-notes/released/1.7.1.md similarity index 84% rename from csharp/ql/src/change-notes/2026-04-17-useless-to-string.md rename to csharp/ql/src/change-notes/released/1.7.1.md index 9b4c81378c9..0b5df9629c6 100644 --- a/csharp/ql/src/change-notes/2026-04-17-useless-to-string.md +++ b/csharp/ql/src/change-notes/released/1.7.1.md @@ -1,6 +1,7 @@ ---- -category: minorAnalysis ---- +## 1.7.1 + +### Minor Analysis Improvements + * The query `cs/useless-tostring-call` has been updated to avoid false positive results in calls to `StringBuilder.AppendLine` and calls of the form `base.ToString()`. Moreover, the alert message has been diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index d1184cc6750..7bdec0d85c7 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.0 +lastReleaseVersion: 1.7.1 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 9ea341d1b38..c7d8eace296 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.7.1-dev +version: 1.7.1 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 34ae2fd2277..a3aa00d4872 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.48.md b/go/ql/consistency-queries/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +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 dcec0f6405a..6db79f2c397 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.47 +lastReleaseVersion: 1.0.48 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index c9dda4765dd..2a03af96152 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.48-dev +version: 1.0.48 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 441d15a0d0e..737d08654b8 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 7.0.6 + +No user-facing changes. + ## 7.0.5 No user-facing changes. diff --git a/go/ql/lib/change-notes/released/7.0.6.md b/go/ql/lib/change-notes/released/7.0.6.md new file mode 100644 index 00000000000..ca9a73aa64c --- /dev/null +++ b/go/ql/lib/change-notes/released/7.0.6.md @@ -0,0 +1,3 @@ +## 7.0.6 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 2cff21d59fe..c7cff8c5378 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.0.5 +lastReleaseVersion: 7.0.6 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 2d7338a020d..71a8c1c50f0 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 7.0.6-dev +version: 7.0.6 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 2bc95cc1922..971d478d56e 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.6.1 + +No user-facing changes. + ## 1.6.0 ### Query Metadata Changes diff --git a/go/ql/src/change-notes/released/1.6.1.md b/go/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 00000000000..898f6201ed7 --- /dev/null +++ b/go/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,3 @@ +## 1.6.1 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index c4f0b07d533..ef7a789e0cf 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.0 +lastReleaseVersion: 1.6.1 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index de4e5e06d38..3f3d4e7cc2a 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.6.1-dev +version: 1.6.1 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index caa1eaecb94..2d34c791c92 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 9.0.4 + +### Minor Analysis Improvements + +* The queries "Resolving XML external entity in user-controlled data" (`java/xxe`) and "Resolving XML external entity in user-controlled data from local source" (`java/xxe-local`) now recognize sinks in the Woodstox StAX library when `com.ctc.wstx.stax.WstxInputFactory` or `org.codehaus.stax2.XMLInputFactory2` are used directly. + ## 9.0.3 ### Minor Analysis Improvements diff --git a/java/ql/lib/change-notes/2026-04-16-woodstox-xxe.md b/java/ql/lib/change-notes/released/9.0.4.md similarity index 88% rename from java/ql/lib/change-notes/2026-04-16-woodstox-xxe.md rename to java/ql/lib/change-notes/released/9.0.4.md index 891fc489e46..a5499634951 100644 --- a/java/ql/lib/change-notes/2026-04-16-woodstox-xxe.md +++ b/java/ql/lib/change-notes/released/9.0.4.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 9.0.4 + +### Minor Analysis Improvements + * The queries "Resolving XML external entity in user-controlled data" (`java/xxe`) and "Resolving XML external entity in user-controlled data from local source" (`java/xxe-local`) now recognize sinks in the Woodstox StAX library when `com.ctc.wstx.stax.WstxInputFactory` or `org.codehaus.stax2.XMLInputFactory2` are used directly. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 175658aaf53..4bbe4f75b58 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 9.0.3 +lastReleaseVersion: 9.0.4 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 7f058cfb8d6..0a842a96b34 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 9.0.4-dev +version: 9.0.4 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 2a2f8052092..1b5d2bdad8a 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.11.1 + +No user-facing changes. + ## 1.11.0 ### Query Metadata Changes diff --git a/java/ql/src/change-notes/released/1.11.1.md b/java/ql/src/change-notes/released/1.11.1.md new file mode 100644 index 00000000000..f5047685223 --- /dev/null +++ b/java/ql/src/change-notes/released/1.11.1.md @@ -0,0 +1,3 @@ +## 1.11.1 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 276088d81dc..4ae123153bf 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.11.0 +lastReleaseVersion: 1.11.1 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 72b4a5f94e6..49c552ec02a 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.11.1-dev +version: 1.11.1 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index fedb0b9b587..77837f46c5e 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.6.28 + +No user-facing changes. + ## 2.6.27 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/released/2.6.28.md b/javascript/ql/lib/change-notes/released/2.6.28.md new file mode 100644 index 00000000000..9c30dddcc0a --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.28.md @@ -0,0 +1,3 @@ +## 2.6.28 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 2ce86b10a85..2456457874e 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.27 +lastReleaseVersion: 2.6.28 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index e0834c056d1..dabbc8bd755 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.28-dev +version: 2.6.28 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 29e6c8e8da3..9b122364ffa 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 2.3.8 + +### Minor Analysis Improvements + +* The query `js/missing-rate-limiting` now takes Fastify per-route + rate limiting into account. + ## 2.3.7 No user-facing changes. diff --git a/javascript/ql/src/change-notes/2026-04-13-fastify-per-route-rate-limit.md b/javascript/ql/src/change-notes/released/2.3.8.md similarity index 69% rename from javascript/ql/src/change-notes/2026-04-13-fastify-per-route-rate-limit.md rename to javascript/ql/src/change-notes/released/2.3.8.md index 56d52388524..5ce5cbe2f24 100644 --- a/javascript/ql/src/change-notes/2026-04-13-fastify-per-route-rate-limit.md +++ b/javascript/ql/src/change-notes/released/2.3.8.md @@ -1,5 +1,6 @@ ---- -category: minorAnalysis ---- +## 2.3.8 + +### Minor Analysis Improvements + * The query `js/missing-rate-limiting` now takes Fastify per-route rate limiting into account. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 914cded08b3..c68b70cb8be 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.3.7 +lastReleaseVersion: 2.3.8 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 117fae183e9..dd4f7c255a8 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.3.8-dev +version: 2.3.8 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 4b73639b1f7..897533f6450 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.48.md b/misc/suite-helpers/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 1d853802342..c18ab2bb10e 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.48-dev +version: 1.0.48 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index a6833ea8db3..69fa60a6675 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.0.5 + +### Minor Analysis Improvements + +- The Python extractor now supports the new `lazy import ...` and `lazy from ... import ...` (as defined in [PEP-810](https://peps.python.org/pep-0810/)) that will be part of Python 3.15. + ## 7.0.4 ### Bug Fixes diff --git a/python/ql/lib/change-notes/2026-04-10-support-lazy-keyword.md b/python/ql/lib/change-notes/released/7.0.5.md similarity index 81% rename from python/ql/lib/change-notes/2026-04-10-support-lazy-keyword.md rename to python/ql/lib/change-notes/released/7.0.5.md index 67de168ff47..e205660dfde 100644 --- a/python/ql/lib/change-notes/2026-04-10-support-lazy-keyword.md +++ b/python/ql/lib/change-notes/released/7.0.5.md @@ -1,5 +1,5 @@ ---- -category: minorAnalysis ---- +## 7.0.5 + +### Minor Analysis Improvements - The Python extractor now supports the new `lazy import ...` and `lazy from ... import ...` (as defined in [PEP-810](https://peps.python.org/pep-0810/)) that will be part of Python 3.15. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 6630ee1984a..2cff21d59fe 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.0.4 +lastReleaseVersion: 7.0.5 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index fe87c5761cf..4dc63a6f9cb 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 7.0.5-dev +version: 7.0.5 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index d5f5269c61d..38018f09856 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.8.1 + +### Minor Analysis Improvements + +- The `py/bind-socket-all-network-interfaces` query now uses the global data-flow library, leading to better precision and more results. Also, wrappers of `socket.socket` in the `eventlet` and `gevent` libraries are now also recognized as socket binding operations. + ## 1.8.0 ### Query Metadata Changes diff --git a/python/ql/src/change-notes/2026-03-26-improve-bind-all-interfaces-query.md b/python/ql/src/change-notes/released/1.8.1.md similarity index 86% rename from python/ql/src/change-notes/2026-03-26-improve-bind-all-interfaces-query.md rename to python/ql/src/change-notes/released/1.8.1.md index bc78b2b6f77..cafb58c11c9 100644 --- a/python/ql/src/change-notes/2026-03-26-improve-bind-all-interfaces-query.md +++ b/python/ql/src/change-notes/released/1.8.1.md @@ -1,5 +1,5 @@ ---- -category: minorAnalysis ---- +## 1.8.1 + +### Minor Analysis Improvements - The `py/bind-socket-all-network-interfaces` query now uses the global data-flow library, leading to better precision and more results. Also, wrappers of `socket.socket` in the `eventlet` and `gevent` libraries are now also recognized as socket binding operations. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index dc8a37cc443..28a7c123ae8 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.8.0 +lastReleaseVersion: 1.8.1 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index aa2a2364854..b7d90a618e9 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.8.1-dev +version: 1.8.1 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 40cb88d396f..8315b641369 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.16 + +No user-facing changes. + ## 5.1.15 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.1.16.md b/ruby/ql/lib/change-notes/released/5.1.16.md new file mode 100644 index 00000000000..42c9934011a --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.16.md @@ -0,0 +1,3 @@ +## 5.1.16 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 840348ed924..735f742e9af 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.15 +lastReleaseVersion: 5.1.16 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index bbf4de40909..ef68525f982 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.16-dev +version: 5.1.16 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index cb4c0ae7874..5266fc1d5d9 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.6.1 + +No user-facing changes. + ## 1.6.0 ### Query Metadata Changes diff --git a/ruby/ql/src/change-notes/released/1.6.1.md b/ruby/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 00000000000..898f6201ed7 --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,3 @@ +## 1.6.1 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index c4f0b07d533..ef7a789e0cf 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.0 +lastReleaseVersion: 1.6.1 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 191689565de..8964f6e51ac 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.6.1-dev +version: 1.6.1 groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index eea5bd6e89d..8e515660f29 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.12 + +No user-facing changes. + ## 0.2.11 No user-facing changes. diff --git a/rust/ql/lib/change-notes/released/0.2.12.md b/rust/ql/lib/change-notes/released/0.2.12.md new file mode 100644 index 00000000000..590eb0cedd1 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.12.md @@ -0,0 +1,3 @@ +## 0.2.12 + +No user-facing changes. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index 2ee635b9937..da1cea93393 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.11 +lastReleaseVersion: 0.2.12 diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index f5031020037..569930438ab 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.12-dev +version: 0.2.12 groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index eab921bcbd6..14034c9877d 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.33 + +No user-facing changes. + ## 0.1.32 ### Query Metadata Changes diff --git a/rust/ql/src/change-notes/released/0.1.33.md b/rust/ql/src/change-notes/released/0.1.33.md new file mode 100644 index 00000000000..5bd982edadd --- /dev/null +++ b/rust/ql/src/change-notes/released/0.1.33.md @@ -0,0 +1,3 @@ +## 0.1.33 + +No user-facing changes. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 21bbd752f27..d9c9e819daa 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.32 +lastReleaseVersion: 0.1.33 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index f78504db76e..0eefe2f3932 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.33-dev +version: 0.1.33 groups: - rust - queries diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index 704ea3e8e01..e8b920847e9 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.22 + +No user-facing changes. + ## 0.0.21 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.22.md b/shared/concepts/change-notes/released/0.0.22.md new file mode 100644 index 00000000000..00226747438 --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.22.md @@ -0,0 +1,3 @@ +## 0.0.22 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index 0c15c351db4..11aaa2243f5 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.21 +lastReleaseVersion: 0.0.22 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index bf6e8b6018c..2ce2978829e 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.22-dev +version: 0.0.22 groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index baca729ddda..df00c6146d8 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.32 + +No user-facing changes. + ## 2.0.31 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.32.md b/shared/controlflow/change-notes/released/2.0.32.md new file mode 100644 index 00000000000..0930bb07f8c --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.32.md @@ -0,0 +1,3 @@ +## 2.0.32 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 783d47207cd..483a0d5db8e 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.31 +lastReleaseVersion: 2.0.32 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 5573548794d..b293853c73b 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.32-dev +version: 2.0.32 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index 52c893f78e2..ed60239f3de 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.1.4 + +No user-facing changes. + ## 2.1.3 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.1.4.md b/shared/dataflow/change-notes/released/2.1.4.md new file mode 100644 index 00000000000..a1035c6b05b --- /dev/null +++ b/shared/dataflow/change-notes/released/2.1.4.md @@ -0,0 +1,3 @@ +## 2.1.4 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 345fb0c73a4..896b46fda9b 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.1.3 +lastReleaseVersion: 2.1.4 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 3b917def33d..e7778805c50 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.1.4-dev +version: 2.1.4 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 1bffb976cf8..ff868403d0c 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.48.md b/shared/mad/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/mad/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index b5583f8c55a..920ffe10267 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.48-dev +version: 1.0.48 groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index 8d524a11a09..eccc65c6041 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.26 + +No user-facing changes. + ## 0.0.25 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.26.md b/shared/quantum/change-notes/released/0.0.26.md new file mode 100644 index 00000000000..e6dc680cc11 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.26.md @@ -0,0 +1,3 @@ +## 0.0.26 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index 6d0e80a50c3..c576d2d7db2 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.25 +lastReleaseVersion: 0.0.26 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index a19e99ef7ea..52c78c5f963 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.26-dev +version: 0.0.26 groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 0ab7487192c..9afb612f18a 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.48.md b/shared/rangeanalysis/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index d493350749e..274a6160372 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.48-dev +version: 1.0.48 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index dd6f0c4cad6..2375b7b56ab 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.48.md b/shared/regex/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/regex/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 7b953dcff1c..abe561fb37c 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.48-dev +version: 1.0.48 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 3573140fc41..dd21ba6d38b 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.24 + +No user-facing changes. + ## 2.0.23 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.24.md b/shared/ssa/change-notes/released/2.0.24.md new file mode 100644 index 00000000000..6547901c334 --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.24.md @@ -0,0 +1,3 @@ +## 2.0.24 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 1bd7e296a34..1460df314d5 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.23 +lastReleaseVersion: 2.0.24 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index a8fa9a11424..16d312b77ae 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.24-dev +version: 2.0.24 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index 34ae2fd2277..a3aa00d4872 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.48.md b/shared/threat-models/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index a4a367a990b..2cf364fa332 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.48-dev +version: 1.0.48 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index cf8f60d1d46..9350e8a04eb 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.48.md b/shared/tutorial/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index f961ccdc0eb..5c9c6cdc47c 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.48-dev +version: 1.0.48 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 8c5ee5e9486..035c2aa456e 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.48.md b/shared/typeflow/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index f7e111d28fd..c9d4ec97a92 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.48-dev +version: 1.0.48 groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index 7153b9314b1..c8b656e4f35 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.29 + +No user-facing changes. + ## 0.0.28 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.29.md b/shared/typeinference/change-notes/released/0.0.29.md new file mode 100644 index 00000000000..4428927c79d --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.29.md @@ -0,0 +1,3 @@ +## 0.0.29 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index 3462db7d348..c81f1813120 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.28 +lastReleaseVersion: 0.0.29 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 97c8df36895..57ed4da1080 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.29-dev +version: 0.0.29 groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index f779002267a..75d8938e6a1 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.32 + +No user-facing changes. + ## 2.0.31 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.32.md b/shared/typetracking/change-notes/released/2.0.32.md new file mode 100644 index 00000000000..0930bb07f8c --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.32.md @@ -0,0 +1,3 @@ +## 2.0.32 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 783d47207cd..483a0d5db8e 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.31 +lastReleaseVersion: 2.0.32 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index aa029687531..7d506ee6807 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.32-dev +version: 2.0.32 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index b49f756fef0..35825098a63 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.48.md b/shared/typos/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/typos/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 37fc79bb1df..5ba6ce2b43d 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.48-dev +version: 1.0.48 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index cb3ac7bbe79..d1becc8ba2c 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.35 + +No user-facing changes. + ## 2.0.34 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.35.md b/shared/util/change-notes/released/2.0.35.md new file mode 100644 index 00000000000..526e1fc9f4c --- /dev/null +++ b/shared/util/change-notes/released/2.0.35.md @@ -0,0 +1,3 @@ +## 2.0.35 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 339a3ce7c57..27eb8ef8ece 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.34 +lastReleaseVersion: 2.0.35 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 02e6241dccb..1e765b5e42e 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.35-dev +version: 2.0.35 groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index 98702251320..131bf7afd2a 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.48.md b/shared/xml/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/xml/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 0d75859bdb9..45ddcffaee7 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.48-dev +version: 1.0.48 groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 4a41f8ee9df..1c420b31355 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.48 + +No user-facing changes. + ## 1.0.47 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.48.md b/shared/yaml/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index dcec0f6405a..6db79f2c397 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.47 +lastReleaseVersion: 1.0.48 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index cfea54e0b5b..461f97ac4db 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.48-dev +version: 1.0.48 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index 3967689b933..e2cb45f9769 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 6.4.0 + +### Major Analysis Improvements + +* Upgraded to allow analysis of Swift 6.3. + ## 6.3.3 No user-facing changes. diff --git a/swift/ql/lib/change-notes/2026-04-06-swift-6.3.md b/swift/ql/lib/change-notes/released/6.4.0.md similarity index 50% rename from swift/ql/lib/change-notes/2026-04-06-swift-6.3.md rename to swift/ql/lib/change-notes/released/6.4.0.md index 512cb613984..e4b68cd2c9b 100644 --- a/swift/ql/lib/change-notes/2026-04-06-swift-6.3.md +++ b/swift/ql/lib/change-notes/released/6.4.0.md @@ -1,4 +1,5 @@ ---- -category: majorAnalysis ---- +## 6.4.0 + +### Major Analysis Improvements + * Upgraded to allow analysis of Swift 6.3. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 83b98dcdbc3..3098c5db6c3 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.3.3 +lastReleaseVersion: 6.4.0 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 32c6458ddea..c8cc7f97a2b 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.3.4-dev +version: 6.4.0 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index f880dc3366f..af70cebc1e4 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.3.1 + +No user-facing changes. + ## 1.3.0 ### Query Metadata Changes diff --git a/swift/ql/src/change-notes/released/1.3.1.md b/swift/ql/src/change-notes/released/1.3.1.md new file mode 100644 index 00000000000..8dd9964197c --- /dev/null +++ b/swift/ql/src/change-notes/released/1.3.1.md @@ -0,0 +1,3 @@ +## 1.3.1 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index ec16350ed6f..e71b6d081f1 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.3.0 +lastReleaseVersion: 1.3.1 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 5b6c7a6977a..2bde0f317c7 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.3.1-dev +version: 1.3.1 groups: - swift - queries From 34b5dcfd5f88c73990b4a69fa289c20a0e7f7275 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Mon, 20 Apr 2026 11:40:32 +0200 Subject: [PATCH 163/208] Improve wording of `actions` note --- actions/ql/src/CHANGELOG.md | 4 ++-- actions/ql/src/change-notes/released/0.6.26.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 9dd234fd483..96f8d266206 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -2,7 +2,7 @@ ### Major Analysis Improvements -* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also clarify the wording to make it clear that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Also change the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. +* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also improved the wording to make it clearer that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Finally, changed the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. ### Minor Analysis Improvements @@ -173,7 +173,7 @@ No user-facing changes. * `actions/if-expression-always-true/critical` * `actions/if-expression-always-true/high` * `actions/unnecessary-use-of-advanced-config` - + * The following query has been moved from the `code-scanning` suite to the `security-extended` suite. Any existing alerts for this query will be closed automatically unless the analysis is configured to use the `security-extended` suite. diff --git a/actions/ql/src/change-notes/released/0.6.26.md b/actions/ql/src/change-notes/released/0.6.26.md index 3147a666cdb..8bf43e63907 100644 --- a/actions/ql/src/change-notes/released/0.6.26.md +++ b/actions/ql/src/change-notes/released/0.6.26.md @@ -2,7 +2,7 @@ ### Major Analysis Improvements -* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also clarify the wording to make it clear that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Also change the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. +* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also improved the wording to make it clearer that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Finally, changed the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. ### Minor Analysis Improvements From abf374433b4e05ec4d4f0d0ae077766c2eebe241 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Mon, 20 Apr 2026 12:24:05 +0200 Subject: [PATCH 164/208] Merge changelog entries for `cpp/implicit-function-declaration` --- cpp/ql/src/CHANGELOG.md | 5 ++--- cpp/ql/src/change-notes/released/1.6.1.md | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index aca22062e9f..80b9ad0e475 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -4,11 +4,10 @@ * Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. * The "Comparison of narrow type with wide type in loop condition" (`cpp/comparison-with-wider-type`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. -* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. * The "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. * The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. * The "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. -* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query no longer produces results on `build mode: none` databases. These results were found to be very noisy and fundamentally imprecise in this mode. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. However, for `build mode: none` databases, it no longer produces any results. The results in this mode were found to be very noisy and fundamentally imprecise. ## 1.6.0 @@ -367,7 +366,7 @@ No user-facing changes. ### Minor Analysis Improvements * The "non-constant format string" query (`cpp/non-constant-format`) has been updated to produce fewer false positives. -* Added dataflow models for the `gettext` function variants. +* Added dataflow models for the `gettext` function variants. ## 0.9.4 diff --git a/cpp/ql/src/change-notes/released/1.6.1.md b/cpp/ql/src/change-notes/released/1.6.1.md index 4cba7e508bd..83781b87c58 100644 --- a/cpp/ql/src/change-notes/released/1.6.1.md +++ b/cpp/ql/src/change-notes/released/1.6.1.md @@ -4,8 +4,7 @@ * Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. * The "Comparison of narrow type with wide type in loop condition" (`cpp/comparison-with-wider-type`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. -* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. * The "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. * The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. * The "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. -* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query no longer produces results on `build mode: none` databases. These results were found to be very noisy and fundamentally imprecise in this mode. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. However, for `build mode: none` databases, it no longer produces any results. The results in this mode were found to be very noisy and fundamentally imprecise. From a0bab539bb2176af27fd717c78920db60b82229d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 20 Apr 2026 12:40:34 +0000 Subject: [PATCH 165/208] Post-release preparation for codeql-cli-2.25.3 --- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index b7acc7a3957..6e78fc546b3 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.34 +version: 0.4.35-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index fc18f8052b2..c815afc498c 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.26 +version: 0.6.27-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 4bcb59885fa..8a9d60a7fa9 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 10.0.0 +version: 10.0.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 8ec81ab6135..714167434c8 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.6.1 +version: 1.6.2-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index d50eb024972..9d0e0ffd4f9 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.65 +version: 1.7.66-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index bd70b1664ac..f5203f4e443 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.65 +version: 1.7.66-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index f90aa010b89..7c906e033ad 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.5.0 +version: 5.5.1-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index c7d8eace296..25b04cf2dc6 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.7.1 +version: 1.7.2-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 2a03af96152..a82ec95583b 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.48 +version: 1.0.49-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 71a8c1c50f0..e191e0da688 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 7.0.6 +version: 7.0.7-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 3f3d4e7cc2a..fa7e934382a 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.6.1 +version: 1.6.2-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 0a842a96b34..efa1d011ea5 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 9.0.4 +version: 9.0.5-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 49c552ec02a..2f2233460ba 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.11.1 +version: 1.11.2-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index dabbc8bd755..b62abbbe101 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.28 +version: 2.6.29-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index dd4f7c255a8..9081791d0e0 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.3.8 +version: 2.3.9-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index c18ab2bb10e..778284fbe9a 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.48 +version: 1.0.49-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 4dc63a6f9cb..8564a098594 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 7.0.5 +version: 7.0.6-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index b7d90a618e9..2d99bcd0c7a 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.8.1 +version: 1.8.2-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index ef68525f982..1ac5090098a 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.16 +version: 5.1.17-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 8964f6e51ac..978102bb82a 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.6.1 +version: 1.6.2-dev groups: - ruby - queries diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 569930438ab..7eb159e4b50 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.12 +version: 0.2.13-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 0eefe2f3932..7b2bd73728a 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.33 +version: 0.1.34-dev groups: - rust - queries diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 2ce2978829e..947826f7dfd 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.22 +version: 0.0.23-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index b293853c73b..adc4aedc5c3 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.32 +version: 2.0.33-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index e7778805c50..a18b746e4b4 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.1.4 +version: 2.1.5-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 920ffe10267..dd5fcf54034 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.48 +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 52c78c5f963..c4e5d41dfaa 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.26 +version: 0.0.27-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 274a6160372..ed3b4a66239 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.48 +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index abe561fb37c..3d569c7d429 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.48 +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 16d312b77ae..c1fd261e070 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.24 +version: 2.0.25-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 2cf364fa332..59ce8c06727 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.48 +version: 1.0.49-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 5c9c6cdc47c..36b8181e0bf 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.48 +version: 1.0.49-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index c9d4ec97a92..0734b2b722e 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.48 +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 57ed4da1080..2bf5c49d97e 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.29 +version: 0.0.30-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 7d506ee6807..fe35cf5955b 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.32 +version: 2.0.33-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 5ba6ce2b43d..a8c85168f20 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.48 +version: 1.0.49-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 1e765b5e42e..99f8c5374dc 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.35 +version: 2.0.36-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 45ddcffaee7..2c44df63e7e 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.48 +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 461f97ac4db..6778ee5a156 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.48 +version: 1.0.49-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index c8cc7f97a2b..595a2804df5 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.4.0 +version: 6.4.1-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 2bde0f317c7..6b4dc1f65e5 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.3.1 +version: 1.3.2-dev groups: - swift - queries From e928c224ae1aa7bc4a9f850a2c2d1522d6e04724 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 20 Apr 2026 11:05:40 +0200 Subject: [PATCH 166/208] C#/Cfg: Some simple review fixes. --- .../code/csharp/controlflow/ControlFlowElement.qll | 2 +- .../code/csharp/controlflow/ControlFlowGraph.qll | 12 +++++++----- .../code/csharp/controlflow/internal/Completion.qll | 2 -- .../codeql/controlflow/ControlFlowGraph.qll | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index 3847ce9494d..8db76e71619 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -38,7 +38,7 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele */ ControlFlowNodes::ElementNode getAControlFlowNode() { result = this.getControlFlowNode() } - /** Gets the control flow node for this element. */ + /** Gets the control flow node for this element, if any. */ ControlFlowNode getControlFlowNode() { result.injects(this) } /** Gets the basic block in which this element occurs. */ diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 4d061ed5952..a6a29d8e89b 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -277,11 +277,12 @@ private module Initializers { */ Expr initializedStaticMemberOrder(Constructor staticCtor, int i) { result = - rank[i + 1](Expr init, Location l | + rank[i + 1](Expr init, Location l, string filepath, int startline, int startcolumn | staticMemberInitializer(staticCtor, init) and - l = init.getLocation() + l = init.getLocation() and + l.hasLocationInfo(filepath, startline, startcolumn, _, _) | - init order by l.getStartLine(), l.getStartColumn(), l.getFile().getAbsolutePath() + init order by startline, startcolumn, filepath ) } @@ -292,12 +293,13 @@ private module Initializers { AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { obinit.initializes(result) and result = - rank[i + 1](AssignExpr ae0, Location l | + rank[i + 1](AssignExpr ae0, Location l, string filepath, int startline, int startcolumn | obinit.initializes(ae0) and l = ae0.getLocation() and + l.hasLocationInfo(filepath, startline, startcolumn, _, _) and getCompilation(l.getFile()) = comp | - ae0 order by l.getStartLine(), l.getStartColumn(), l.getFile().getAbsolutePath() + ae0 order by startline, startcolumn, filepath ) } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll index 85a514d5236..2b8c436fb14 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll @@ -21,10 +21,8 @@ import csharp private import semmle.code.csharp.commons.Assertions -private import semmle.code.csharp.commons.Constants private import semmle.code.csharp.frameworks.System private import NonReturning -private import SuccessorType private class Overflowable extends UnaryOperation { Overflowable() { diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index c13ab65ff32..125372e5679 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -1990,7 +1990,7 @@ module Make0 Ast> { /** Holds if `n` does not have a unique enclosing callable. */ query predicate nonUniqueEnclosingCallable(AstNode n, int callables) { - callables = strictcount(getEnclosingCallable(n)) and callables > 1 + callables = count(getEnclosingCallable(n)) and callables != 1 } /** From 3ceb96a45fa3290eaacb7dad20eecf2386d492dd Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 20 Apr 2026 14:11:13 +0200 Subject: [PATCH 167/208] C#: Eliminate Completion.qll. --- .../csharp/controlflow/ControlFlowGraph.qll | 105 ++++++++++++++- .../semmle/code/csharp/controlflow/Guards.qll | 1 - .../controlflow/internal/Completion.qll | 122 ------------------ 3 files changed, 103 insertions(+), 125 deletions(-) delete mode 100644 csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index a6a29d8e89b..8cb4d732657 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -7,7 +7,6 @@ private import codeql.controlflow.ControlFlowGraph private import codeql.controlflow.SuccessorType private import semmle.code.csharp.commons.Compilation private import semmle.code.csharp.controlflow.internal.NonReturning as NonReturning -private import semmle.code.csharp.controlflow.internal.Completion as Completion private module Cfg0 = Make0; @@ -315,6 +314,108 @@ private module Initializers { } } +private module Exceptions { + private import semmle.code.csharp.commons.Assertions + private import semmle.code.csharp.frameworks.System + + private class Overflowable extends UnaryOperation { + Overflowable() { + not this instanceof UnaryBitwiseOperation and + this.getType() instanceof IntegralType + } + } + + /** Holds if `cfe` is a control flow element that may throw an exception. */ + predicate mayThrowException(ControlFlowElement cfe) { + exists(cfe.(TriedControlFlowElement).getAThrownException()) + or + cfe instanceof Assertion + } + + /** A control flow element that is inside a `try` block. */ + private class TriedControlFlowElement extends ControlFlowElement { + TriedControlFlowElement() { + this = any(TryStmt try).getATriedElement() and + not this instanceof NonReturning::NonReturningCall + } + + /** + * Gets an exception class that is potentially thrown by this element, if any. + */ + Class getAThrownException() { + this instanceof Overflowable and + result instanceof SystemOverflowExceptionClass + or + this.(CastExpr).getType() instanceof IntegralType and + result instanceof SystemOverflowExceptionClass + or + invalidCastCandidate(this) and + result instanceof SystemInvalidCastExceptionClass + or + this instanceof Call and + result instanceof SystemExceptionClass + or + this = + any(MemberAccess ma | + not ma.isConditional() and + ma.getQualifier() = any(Expr e | not e instanceof TypeAccess) and + result instanceof SystemNullReferenceExceptionClass + ) + or + this instanceof DelegateCreation and + result instanceof SystemOutOfMemoryExceptionClass + or + this instanceof ArrayCreation and + result instanceof SystemOutOfMemoryExceptionClass + or + this = + any(AddOperation ae | + ae.getType() instanceof StringType and + result instanceof SystemOutOfMemoryExceptionClass + or + ae.getType() instanceof IntegralType and + result instanceof SystemOverflowExceptionClass + ) + or + this = + any(SubOperation se | + se.getType() instanceof IntegralType and + result instanceof SystemOverflowExceptionClass + ) + or + this = + any(MulOperation me | + me.getType() instanceof IntegralType and + result instanceof SystemOverflowExceptionClass + ) + or + this = + any(DivOperation de | + not de.getDenominator().getValue().toFloat() != 0 and + result instanceof SystemDivideByZeroExceptionClass + ) + or + this instanceof RemOperation and + result instanceof SystemDivideByZeroExceptionClass + or + this instanceof DynamicExpr and + result instanceof SystemExceptionClass + } + } + + pragma[nomagic] + private ValueOrRefType getACastExprBaseType(CastExpr ce) { + result = ce.getType().(ValueOrRefType).getABaseType() + or + result = getACastExprBaseType(ce).getABaseType() + } + + pragma[nomagic] + private predicate invalidCastCandidate(CastExpr ce) { + ce.getExpr().getType() = getACastExprBaseType(ce) + } +} + private module Input implements InputSig1, InputSig2 { predicate cfgCachedStageRef() { CfgCachedStage::ref() } @@ -368,7 +469,7 @@ private module Input implements InputSig1, InputSig2 { c.asSimpleAbruptCompletion() instanceof ReturnSuccessor and always = true or - Completion::mayThrowException(ast) and + Exceptions::mayThrowException(ast) and n.isIn(ast) and c.asSimpleAbruptCompletion() instanceof ExceptionSuccessor and always = false diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index da17da616a0..0b07e049fac 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -7,7 +7,6 @@ private import ControlFlow private import semmle.code.csharp.commons.Assertions private import semmle.code.csharp.commons.ComparisonTest private import semmle.code.csharp.commons.StructuralComparison as SC -private import semmle.code.csharp.controlflow.internal.Completion private import semmle.code.csharp.frameworks.System private import semmle.code.csharp.frameworks.system.Linq private import semmle.code.csharp.frameworks.system.Collections diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll deleted file mode 100644 index 2b8c436fb14..00000000000 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll +++ /dev/null @@ -1,122 +0,0 @@ -/** - * INTERNAL: Do not use. - * - * Provides classes representing control flow completions. - * - * A completion represents how a statement or expression terminates. - * - * There are six kinds of completions: normal completion, - * `return` completion, `break` completion, `continue` completion, - * `goto` completion, and `throw` completion. - * - * Normal completions are further subdivided into Boolean completions and all - * other normal completions. A Boolean completion adds the information that the - * expression terminated with the given boolean value due to a subexpression - * terminating with the other given Boolean value. This is only relevant for - * conditional contexts in which the value controls the control-flow successor. - * - * Goto successors are further subdivided into label gotos, case gotos, and - * default gotos. - */ - -import csharp -private import semmle.code.csharp.commons.Assertions -private import semmle.code.csharp.frameworks.System -private import NonReturning - -private class Overflowable extends UnaryOperation { - Overflowable() { - not this instanceof UnaryBitwiseOperation and - this.getType() instanceof IntegralType - } -} - -/** Holds if `cfe` is a control flow element that may throw an exception. */ -predicate mayThrowException(ControlFlowElement cfe) { - exists(cfe.(TriedControlFlowElement).getAThrownException()) - or - cfe instanceof Assertion -} - -/** A control flow element that is inside a `try` block. */ -private class TriedControlFlowElement extends ControlFlowElement { - TriedControlFlowElement() { - this = any(TryStmt try).getATriedElement() and - not this instanceof NonReturningCall - } - - /** - * Gets an exception class that is potentially thrown by this element, if any. - */ - Class getAThrownException() { - this instanceof Overflowable and - result instanceof SystemOverflowExceptionClass - or - this.(CastExpr).getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass - or - invalidCastCandidate(this) and - result instanceof SystemInvalidCastExceptionClass - or - this instanceof Call and - result instanceof SystemExceptionClass - or - this = - any(MemberAccess ma | - not ma.isConditional() and - ma.getQualifier() = any(Expr e | not e instanceof TypeAccess) and - result instanceof SystemNullReferenceExceptionClass - ) - or - this instanceof DelegateCreation and - result instanceof SystemOutOfMemoryExceptionClass - or - this instanceof ArrayCreation and - result instanceof SystemOutOfMemoryExceptionClass - or - this = - any(AddOperation ae | - ae.getType() instanceof StringType and - result instanceof SystemOutOfMemoryExceptionClass - or - ae.getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass - ) - or - this = - any(SubOperation se | - se.getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass - ) - or - this = - any(MulOperation me | - me.getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass - ) - or - this = - any(DivOperation de | - not de.getDenominator().getValue().toFloat() != 0 and - result instanceof SystemDivideByZeroExceptionClass - ) - or - this instanceof RemOperation and - result instanceof SystemDivideByZeroExceptionClass - or - this instanceof DynamicExpr and - result instanceof SystemExceptionClass - } -} - -pragma[nomagic] -private ValueOrRefType getACastExprBaseType(CastExpr ce) { - result = ce.getType().(ValueOrRefType).getABaseType() - or - result = getACastExprBaseType(ce).getABaseType() -} - -pragma[nomagic] -private predicate invalidCastCandidate(CastExpr ce) { - ce.getExpr().getType() = getACastExprBaseType(ce) -} From b6f50f599283b627b63e4fba830b96c25c878a3a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 20 Apr 2026 14:15:49 +0200 Subject: [PATCH 168/208] C#: Simplify. --- .../csharp/controlflow/ControlFlowGraph.qll | 58 ++++++------------- 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 8cb4d732657..e1e74100ca8 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -316,7 +316,6 @@ private module Initializers { private module Exceptions { private import semmle.code.csharp.commons.Assertions - private import semmle.code.csharp.frameworks.System private class Overflowable extends UnaryOperation { Overflowable() { @@ -327,7 +326,7 @@ private module Exceptions { /** Holds if `cfe` is a control flow element that may throw an exception. */ predicate mayThrowException(ControlFlowElement cfe) { - exists(cfe.(TriedControlFlowElement).getAThrownException()) + cfe.(TriedControlFlowElement).mayThrowException() or cfe instanceof Assertion } @@ -340,66 +339,43 @@ private module Exceptions { } /** - * Gets an exception class that is potentially thrown by this element, if any. + * Holds if this element may potentially throw an exception. */ - Class getAThrownException() { - this instanceof Overflowable and - result instanceof SystemOverflowExceptionClass + predicate mayThrowException() { + this instanceof Overflowable or - this.(CastExpr).getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass + this.(CastExpr).getType() instanceof IntegralType or - invalidCastCandidate(this) and - result instanceof SystemInvalidCastExceptionClass + invalidCastCandidate(this) or - this instanceof Call and - result instanceof SystemExceptionClass + this instanceof Call or this = any(MemberAccess ma | not ma.isConditional() and - ma.getQualifier() = any(Expr e | not e instanceof TypeAccess) and - result instanceof SystemNullReferenceExceptionClass + ma.getQualifier() = any(Expr e | not e instanceof TypeAccess) ) or - this instanceof DelegateCreation and - result instanceof SystemOutOfMemoryExceptionClass + this instanceof DelegateCreation or - this instanceof ArrayCreation and - result instanceof SystemOutOfMemoryExceptionClass + this instanceof ArrayCreation or this = any(AddOperation ae | - ae.getType() instanceof StringType and - result instanceof SystemOutOfMemoryExceptionClass + ae.getType() instanceof StringType or - ae.getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass + ae.getType() instanceof IntegralType ) or - this = - any(SubOperation se | - se.getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass - ) + this = any(SubOperation se | se.getType() instanceof IntegralType) or - this = - any(MulOperation me | - me.getType() instanceof IntegralType and - result instanceof SystemOverflowExceptionClass - ) + this = any(MulOperation me | me.getType() instanceof IntegralType) or - this = - any(DivOperation de | - not de.getDenominator().getValue().toFloat() != 0 and - result instanceof SystemDivideByZeroExceptionClass - ) + this = any(DivOperation de | not de.getDenominator().getValue().toFloat() != 0) or - this instanceof RemOperation and - result instanceof SystemDivideByZeroExceptionClass + this instanceof RemOperation or - this instanceof DynamicExpr and - result instanceof SystemExceptionClass + this instanceof DynamicExpr } } From abd08440a1134447a16523adfdda1ad561c78290 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 17 Apr 2026 16:07:22 +0200 Subject: [PATCH 169/208] Swift: Update to Swift 6.3.1 --- swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md | 4 ++++ swift/third_party/resources/resource-dir-linux.zip | 4 ++-- swift/third_party/resources/resource-dir-macos.zip | 4 ++-- swift/third_party/resources/swift-prebuilt-linux.tar.zst | 4 ++-- swift/third_party/resources/swift-prebuilt-macos.tar.zst | 4 ++-- 5 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md diff --git a/swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md b/swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md new file mode 100644 index 00000000000..acc4bc73861 --- /dev/null +++ b/swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Upgraded to allow analysis of Swift 6.3.1. diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index 74170f15323..8692eb89fd4 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:9078cfd1ec62f30cd25c0ea4e43fc3d99449f802e6c165f59a7f789a70eb5284 -size 408208306 +oid sha256:25718237e4b0d725f62baceb8e9eb6b1090433c3a64c15b54205bbd3b1241a78 +size 408416862 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index a505593bce9..51c367e2b13 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:991e63a2559a762058d66df08275aea55217ff96bd482c5ad7d536181afa573a -size 547982664 +oid sha256:97c427650a83bd1d70846ef24965cbe2451c3e9b3bb86530f0cb704936ffa07a +size 548168307 diff --git a/swift/third_party/resources/swift-prebuilt-linux.tar.zst b/swift/third_party/resources/swift-prebuilt-linux.tar.zst index eb86602bcd9..769117fefea 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:cfc111c983a00acfdb01090ba1f568fa257d2f8fc3050a2f7c37e160fe9f1003 -size 143475222 +oid sha256:b313be2bee2c0afbedbe710435b7e0836e1a06f6a8b57d300c9843ebd1f469e3 +size 143494508 diff --git a/swift/third_party/resources/swift-prebuilt-macos.tar.zst b/swift/third_party/resources/swift-prebuilt-macos.tar.zst index a2df7ad311c..a48c2ce0466 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:eab65167bfb20e07803b9be61b22b109a0308056c58b572ea9a275b920a3ea0a -size 125077905 +oid sha256:4aea62dad0e67b8bb6ac5536a3fff1730f48a15f516b5b6d48b6c42f16508687 +size 125103802 From 9de02b7ae6d1a7cf77fd30d3ad69979b2e7f7e61 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 21 Apr 2026 10:56:10 +0200 Subject: [PATCH 170/208] Cfg: Use consistent casing in additional node tags. --- .../controlflow/graph/BasicBlock.expected | 28 +-- .../controlflow/graph/Condition.expected | 66 +++--- .../controlflow/graph/Dominance.expected | 224 +++++++++--------- .../graph/EnclosingCallable.expected | 56 ++--- .../controlflow/graph/NodeGraph.expected | 56 ++--- .../library-tests/csharp7/IsFlow.expected | 4 +- .../csharp8/ispatternflow.expected | 20 +- .../csharp8/switchexprcontrolflow.expected | 4 +- .../codeql/controlflow/ControlFlowGraph.qll | 2 +- 9 files changed, 230 insertions(+), 230 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index 98a7879a6a3..19aa44a8447 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -906,13 +906,13 @@ | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | ... is ... | 13 | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | case ...: | 4 | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | ... is ... | 5 | -| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:9:9:11:9 | After {...} | 18 | +| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:9:9:11:9 | After {...} | 18 | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | 1 | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | ... is ... | 5 | -| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:13:9:15:9 | After {...} | 18 | +| Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | Patterns.cs:13:9:15:9 | After {...} | 18 | | Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | 1 | | Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | 1 | -| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:17:9:18:9 | {...} | 4 | +| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:17:9:18:9 | {...} | 4 | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | Exit | 7 | | Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:23:17:23:22 | break; | 4 | | Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | case ...: | 2 | @@ -929,18 +929,18 @@ | Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:37:17:37:22 | break; | 11 | | Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | ... is ... | 4 | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Exit | 3 | -| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:14:48:20 | After not ... | 5 | +| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:48:14:48:20 | After not ... | 5 | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | ... is ... | 5 | | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | ... is ... | 4 | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | ... is ... | 9 | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:25:51:30 | ... is ... | 9 | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Exit | 3 | | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | 1 | -| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:30:51:30 | 1 | 2 | +| Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | Patterns.cs:51:30:51:30 | 1 | 2 | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | 1 | -| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:39:51:39 | 2 | 2 | +| Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | Patterns.cs:51:39:51:39 | 2 | 2 | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | ... is ... | 4 | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Exit | 3 | -| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:14:54:37 | After not ... | 13 | +| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:54:14:54:37 | After not ... | 13 | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | ... => ... | 6 | | Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | Exit | 4 | | Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:22:60:28 | "not 1" | 6 | @@ -961,26 +961,26 @@ | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:81:18:81:20 | "0" | 5 | | Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | ... is ... | 5 | | Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:67:85:69 | "2" | 2 | -| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | 11 | +| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | 11 | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Exit | 3 | | Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | ... is ... | 5 | | Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:64:87:70 | "not 1" | 2 | -| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:58:87:60 | "1" | 11 | +| Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | Patterns.cs:87:58:87:60 | "1" | 11 | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Exit | 3 | | Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | ... is ... | 6 | | Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:93:17:93:19 | Exit | 4 | | Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:13:95:40 | After ... is ... [false] | 1 | -| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:96:9:98:9 | After {...} | 21 | +| Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | Patterns.cs:96:9:98:9 | After {...} | 21 | | PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Exit | 11 | | PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | Exit | 11 | | PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | ... is ... | 6 | | PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Exit | 2 | | PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:11:5:15:5 | After {...} | 9 | -| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | 5 | +| PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | PostDominance.cs:13:13:13:19 | return ...; | 5 | | PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | ... is ... | 6 | | PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | Exit | 1 | | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | Normal Exit | 10 | -| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:17:10:17:11 | Exceptional Exit | 10 | +| PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | PostDominance.cs:17:10:17:11 | Exceptional Exit | 10 | | Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Exit | 11 | | Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Exit | 4 | | Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | Exit | 4 | @@ -1114,7 +1114,7 @@ | TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | ... is ... | 26 | | TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | Exit | 11 | | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | 1 | -| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | 4 | +| TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | TypeAccesses.cs:7:25:7:25 | ; | 4 | | VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Exit | 11 | | VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | Exit | 36 | | VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | Exit | 23 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected index 05c22139486..0e5259f89a0 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected @@ -530,13 +530,13 @@ conditionBlock | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [non-null] | false | | NullCoalescing.cs:16:17:16:25 | After ... ?? ... | NullCoalescing.cs:17:13:17:19 | After (...) ... [null] | true | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | After ... is ... [false] | false | -| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | [match-true] ... is ... | true | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | true | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:14:18:9 | After if (...) ... | false | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | -| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | [match-true] ... is ... | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | false | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:14:18:9 | After if (...) ... | false | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | -| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | [match-true] ... is ... | false | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | false | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [match] | true | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [no-match] | false | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:13:24:36 | After case ...: [match] | false | @@ -551,12 +551,12 @@ conditionBlock | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [match] | false | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | -| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | [match-true] ... is ... | true | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | true | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | false | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | -| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | false | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | false | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | -| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | true | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | true | | Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [match] | true | | Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | false | | Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | true | @@ -575,16 +575,16 @@ conditionBlock | Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false | | Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | true | | Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false | -| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | [match-true] ... is ... | true | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | true | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | After ... is ... [false] | false | -| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | [match-true] ... is ... | true | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | true | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | After ... is ... | true | -| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | true | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | After ... is ... | false | -| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | [match-true] ... is ... | false | -| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | [match-true] ... is ... | true | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | -| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | [match-true] ... is ... | true | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | false | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | true | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | true | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | true | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [match] | true | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | false | | Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | After ... => ... [match] | true | @@ -606,15 +606,15 @@ conditionBlock | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | true | | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | false | | Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | After ... is ... [false] | false | -| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | [match-true] ... is ... | true | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | true | | Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | After ... is ... [false] | false | -| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | [match-true] ... is ... | true | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | true | | Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | After ... is ... [false] | false | -| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | [match-true] ... is ... | true | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | true | | PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | After ... is ... [false] | false | -| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | true | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | true | | PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | After ... is ... [false] | false | -| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | true | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | true | | Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Exceptional Exit | false | | Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [match] | true | | Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [no-match] | false | @@ -798,7 +798,7 @@ conditionBlock | Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [match] | true | | Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | false | | TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | false | -| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | true | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | true | | VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | false | | VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | true | | cflow.cs:5:17:5:20 | Entry | cflow.cs:11:13:11:17 | After ... > ... [false] | false | @@ -1316,37 +1316,37 @@ conditionFlow | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [false] | false | | NullCoalescing.cs:11:57:11:58 | access to parameter b3 | NullCoalescing.cs:11:57:11:58 | After access to parameter b3 [true] | true | | Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | false | -| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | true | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | true | | Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | After ... is ... [true] | true | | Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | -| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | true | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | true | | Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | After ... is ... [true] | true | | Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | -| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | true | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | true | | Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | After ... is ... [true] | true | | Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | false | | Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | true | -| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | true | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | true | | Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | false | -| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | true | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | true | | Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | true | -| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | -| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | true | -| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | true | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | true | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | true | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | true | | Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | false | -| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | true | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | true | | Patterns.cs:85:44:85:53 | After ... or ... | Patterns.cs:85:39:85:53 | After ... is ... [true] | true | | Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | false | -| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | true | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | true | | Patterns.cs:87:44:87:54 | After ... and ... | Patterns.cs:87:39:87:54 | After ... is ... [true] | true | | Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | false | -| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | true | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | true | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:13:95:40 | After ... is ... [true] | true | | PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | After ... is ... [false] | false | -| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | true | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | true | | PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | After ... is ... [true] | true | | PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | After ... is ... [false] | false | -| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | true | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | true | | PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | After ... is ... [true] | true | | Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [false] | false | | Switch.cs:21:21:21:29 | ... == ... | Switch.cs:21:21:21:29 | After ... == ... [true] | true | @@ -1372,7 +1372,7 @@ conditionFlow | Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [false] | false | | Switch.cs:157:13:157:13 | access to parameter b | Switch.cs:157:13:157:13 | After access to parameter b [true] | true | | TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | false | -| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | true | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | true | | TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | true | | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | false | | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:20:25:20 | After access to parameter b [true] | true | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index 209cb10f811..127e4b61b63 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -4991,11 +4991,11 @@ dominance | Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:8:13:8:23 | Before ... is ... | | Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:13:8:23 | ... is ... | | Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | -| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:14:18:9 | if (...) ... | | Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:9:9:11:9 | {...} | | Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:8:13:8:13 | access to local variable o | -| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:18:8:23 | Int32 i1 | +| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:8:18:8:23 | Int32 i1 | | Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | After ... is ... [true] | | Patterns.cs:9:9:11:9 | {...} | Patterns.cs:10:13:10:43 | ...; | | Patterns.cs:10:13:10:42 | After call to method WriteLine | Patterns.cs:10:13:10:43 | After ...; | @@ -5014,11 +5014,11 @@ dominance | Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | Before ... is ... | | Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:18:12:31 | ... is ... | | Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | -| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:14:18:9 | if (...) ... | | Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:13:9:15:9 | {...} | | Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:12:18:12:18 | access to local variable o | -| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:23:12:31 | String s1 | +| Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | Patterns.cs:12:23:12:31 | String s1 | | Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | After ... is ... [true] | | Patterns.cs:13:9:15:9 | {...} | Patterns.cs:14:13:14:46 | ...; | | Patterns.cs:14:13:14:45 | After call to method WriteLine | Patterns.cs:14:13:14:46 | After ...; | @@ -5037,10 +5037,10 @@ dominance | Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | Before ... is ... | | Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:18:16:28 | ... is ... | | Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:17:9:18:9 | {...} | | Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:16:18:16:18 | access to local variable o | -| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:23:16:28 | Object v1 | +| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:16:23:16:28 | Object v1 | | Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | After ... is ... [true] | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | | Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:20:17:20:17 | access to local variable o | @@ -5135,10 +5135,10 @@ dominance | Patterns.cs:47:24:47:25 | Normal Exit | Patterns.cs:47:24:47:25 | Exit | | Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:9:48:20 | ... is ... | | Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | -| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Normal Exit | | Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:48:9:48:9 | access to parameter c | -| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:14:48:20 | Before not ... | +| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:48:14:48:20 | Before not ... | | Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:48:18:48:20 | a | | Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:14:48:20 | After not ... | | Patterns.cs:48:18:48:20 | a | Patterns.cs:48:14:48:20 | not ... | @@ -5146,11 +5146,11 @@ dominance | Patterns.cs:50:24:50:25 | Normal Exit | Patterns.cs:50:24:50:25 | Exit | | Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:9:51:21 | ... is ... | | Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | -| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | Before ... is ... | | Patterns.cs:51:9:51:21 | After ... is ... [true] | Patterns.cs:51:25:51:30 | Before ... is ... | | Patterns.cs:51:9:51:21 | Before ... is ... | Patterns.cs:51:9:51:9 | access to parameter c | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:14:51:21 | Before not ... | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:14:51:21 | Before not ... | | Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:21 | Before ... is ... | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Normal Exit | | Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | @@ -5159,22 +5159,22 @@ dominance | Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | not ... | | Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:30 | ... is ... | | Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | -| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | | Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | -| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:30:51:30 | 1 | +| Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | Patterns.cs:51:30:51:30 | 1 | | Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:39 | ... is ... | | Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | -| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | | Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | -| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:39:51:39 | 2 | +| Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | Patterns.cs:51:39:51:39 | 2 | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | Before ... is ... | | Patterns.cs:53:24:53:25 | Normal Exit | Patterns.cs:53:24:53:25 | Exit | | Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:9:54:37 | ... is ... | | Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | -| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Normal Exit | | Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:54:9:54:9 | access to parameter c | -| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:14:54:37 | Before not ... | +| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:54:14:54:37 | Before not ... | | Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:54:18:54:37 | Before { ... } | | Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:14:54:37 | After not ... | | Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:54:27:54:35 | Before { ... } | @@ -5261,11 +5261,11 @@ dominance | Patterns.cs:85:26:85:27 | Normal Exit | Patterns.cs:85:26:85:27 | Exit | | Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:39:85:53 | ... is ... | | Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | -| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | | Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:67:85:69 | "2" | | Patterns.cs:85:39:85:53 | After ... is ... [true] | Patterns.cs:85:57:85:63 | "not 2" | | Patterns.cs:85:39:85:53 | Before ... is ... | Patterns.cs:85:39:85:39 | access to parameter i | -| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:44:85:53 | Before ... or ... | +| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:44:85:53 | Before ... or ... | | Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:53 | Before ... is ... | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Normal Exit | | Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:49:85:53 | Before not ... | @@ -5280,11 +5280,11 @@ dominance | Patterns.cs:87:26:87:27 | Normal Exit | Patterns.cs:87:26:87:27 | Exit | | Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:39:87:54 | ... is ... | | Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | -| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | | Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:64:87:70 | "not 1" | | Patterns.cs:87:39:87:54 | After ... is ... [true] | Patterns.cs:87:58:87:60 | "1" | | Patterns.cs:87:39:87:54 | Before ... is ... | Patterns.cs:87:39:87:39 | access to parameter i | -| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:44:87:54 | Before ... and ... | +| Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | Patterns.cs:87:44:87:54 | Before ... and ... | | Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:54 | Before ... is ... | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Normal Exit | | Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:50:87:54 | Before not ... | @@ -5303,10 +5303,10 @@ dominance | Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:95:13:95:40 | Before ... is ... | | Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:13:95:40 | ... is ... | | Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | -| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | | Patterns.cs:95:13:95:40 | After ... is ... [true] | Patterns.cs:96:9:98:9 | {...} | | Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:95:13:95:16 | this access | -| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:21:95:40 | Before { ... } | +| Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | Patterns.cs:95:21:95:40 | Before { ... } | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:13:95:40 | After ... is ... [true] | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | | Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:21:95:40 | Before { ... } | @@ -5352,11 +5352,11 @@ dominance | PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:12:13:12:21 | Before ... is ... | | PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:13:12:21 | ... is ... | | PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | After ... is ... [false] | -| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | | PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:9:13:19 | After if (...) ... | | PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:13:13:13:19 | Before return ...; | | PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:12:13:12:13 | access to parameter s | -| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:18:12:21 | null | +| PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | PostDominance.cs:12:18:12:21 | null | | PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | After ... is ... [true] | | PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:13:13:13:19 | return ...; | | PostDominance.cs:14:9:14:28 | After call to method WriteLine | PostDominance.cs:14:9:14:29 | After ...; | @@ -5372,11 +5372,11 @@ dominance | PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:19:13:19:21 | Before ... is ... | | PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:13:19:21 | ... is ... | | PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | After ... is ... [false] | -| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:9:20:55 | After if (...) ... | | PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:20:13:20:55 | Before throw ...; | | PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:19:13:19:13 | access to parameter s | -| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:18:19:21 | null | +| PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | PostDominance.cs:19:18:19:21 | null | | PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | After ... is ... [true] | | PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | | PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | Exceptional Exit | @@ -6066,10 +6066,10 @@ dominance | TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:13:7:22 | Before ... is ... | | TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:13:7:22 | ... is ... | | TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | -| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:7:25:7:25 | ; | | TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | -| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:18:7:22 | Int32 j | +| TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | TypeAccesses.cs:7:18:7:22 | Int32 j | | TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:13:8:27 | Before Type t = ... | | TypeAccesses.cs:8:9:8:28 | After ... ...; | TypeAccesses.cs:4:5:9:5 | After {...} | @@ -12424,7 +12424,7 @@ postDominance | Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:13 | access to local variable o | | Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:8:18:8:23 | Int32 i1 | | Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:8:9:18:9 | if (...) ... | -| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | | Patterns.cs:9:9:11:9 | After {...} | Patterns.cs:10:13:10:43 | After ...; | | Patterns.cs:9:9:11:9 | {...} | Patterns.cs:8:13:8:23 | After ... is ... [true] | | Patterns.cs:10:13:10:42 | After call to method WriteLine | Patterns.cs:10:13:10:42 | call to method WriteLine | @@ -12447,7 +12447,7 @@ postDominance | Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:18 | access to local variable o | | Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:12:23:12:31 | String s1 | | Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:12:14:18:9 | if (...) ... | -| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:13:9:15:9 | After {...} | Patterns.cs:14:13:14:46 | After ...; | | Patterns.cs:13:9:15:9 | {...} | Patterns.cs:12:18:12:31 | After ... is ... [true] | | Patterns.cs:14:13:14:45 | After call to method WriteLine | Patterns.cs:14:13:14:45 | call to method WriteLine | @@ -12470,7 +12470,7 @@ postDominance | Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:18 | access to local variable o | | Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:16:23:16:28 | Object v1 | | Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:16:14:18:9 | if (...) ... | -| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:17:9:18:9 | {...} | Patterns.cs:16:18:16:28 | After ... is ... [true] | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:23:17:23:22 | break; | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:26:17:26:22 | break; | @@ -12565,7 +12565,7 @@ postDominance | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:14:48:20 | After not ... | | Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:47:24:47:25 | Entry | | Patterns.cs:48:14:48:20 | After not ... | Patterns.cs:48:14:48:20 | not ... | -| Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | | Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:18:48:20 | a | | Patterns.cs:48:18:48:20 | a | Patterns.cs:48:14:48:20 | Before not ... | | Patterns.cs:50:24:50:25 | Exit | Patterns.cs:50:24:50:25 | Normal Exit | @@ -12578,7 +12578,7 @@ postDominance | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:25:51:30 | After ... is ... | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:34:51:39 | After ... is ... | | Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:14:51:21 | not ... | -| Patterns.cs:51:14:51:21 | Before not ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:14:51:21 | Before not ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | | Patterns.cs:51:14:51:21 | not ... | Patterns.cs:51:18:51:21 | null | | Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | Before not ... | | Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:30 | Before ... is ... | @@ -12586,13 +12586,13 @@ postDominance | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | ... is ... | | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:30:51:30 | 1 | | Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | -| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | | Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:39 | Before ... is ... | | Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | ... is ... | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:39:51:39 | 2 | | Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | -| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | | Patterns.cs:53:24:53:25 | Exit | Patterns.cs:53:24:53:25 | Normal Exit | | Patterns.cs:53:24:53:25 | Normal Exit | Patterns.cs:54:9:54:37 | After ... is ... | | Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:9:54:37 | Before ... is ... | @@ -12601,7 +12601,7 @@ postDominance | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:14:54:37 | After not ... | | Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:53:24:53:25 | Entry | | Patterns.cs:54:14:54:37 | After not ... | Patterns.cs:54:14:54:37 | not ... | -| Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | | Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:18:54:37 | After { ... } | | Patterns.cs:54:18:54:25 | access to type Patterns | Patterns.cs:54:18:54:37 | Patterns u | | Patterns.cs:54:18:54:37 | After { ... } | Patterns.cs:54:18:54:37 | { ... } | @@ -12692,7 +12692,7 @@ postDominance | Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:44:85:53 | Before ... or ... | | Patterns.cs:85:44:85:53 | ... or ... | Patterns.cs:85:49:85:53 | After not ... | | Patterns.cs:85:44:85:53 | After ... or ... | Patterns.cs:85:44:85:53 | ... or ... | -| Patterns.cs:85:44:85:53 | Before ... or ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:44:85:53 | Before ... or ... | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | | Patterns.cs:85:49:85:53 | After not ... | Patterns.cs:85:49:85:53 | not ... | | Patterns.cs:85:49:85:53 | Before not ... | Patterns.cs:85:44:85:44 | 1 | | Patterns.cs:85:49:85:53 | not ... | Patterns.cs:85:53:85:53 | 2 | @@ -12711,7 +12711,7 @@ postDominance | Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:44:87:54 | Before ... and ... | | Patterns.cs:87:44:87:54 | ... and ... | Patterns.cs:87:50:87:54 | After not ... | | Patterns.cs:87:44:87:54 | After ... and ... | Patterns.cs:87:44:87:54 | ... and ... | -| Patterns.cs:87:44:87:54 | Before ... and ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:44:87:54 | Before ... and ... | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | | Patterns.cs:87:50:87:54 | After not ... | Patterns.cs:87:50:87:54 | not ... | | Patterns.cs:87:50:87:54 | Before not ... | Patterns.cs:87:44:87:44 | 1 | | Patterns.cs:87:50:87:54 | not ... | Patterns.cs:87:54:87:54 | 2 | @@ -12731,7 +12731,7 @@ postDominance | Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:95:9:98:9 | if (...) ... | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | -| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | | Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:21:95:40 | Before { ... } | | Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:21:95:40 | After { ... } | | Patterns.cs:95:21:95:40 | { ... } | Patterns.cs:95:29:95:38 | After ... or ... | @@ -12779,7 +12779,7 @@ postDominance | PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:13 | access to parameter s | | PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:12:18:12:21 | null | | PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:12:9:13:19 | if (...) ... | -| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | | PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:12:13:12:21 | After ... is ... [true] | | PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:13:13:13:19 | Before return ...; | | PostDominance.cs:14:9:14:28 | After call to method WriteLine | PostDominance.cs:14:9:14:28 | call to method WriteLine | @@ -12799,7 +12799,7 @@ postDominance | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:13:19:21 | ... is ... | | PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:19:18:19:21 | null | | PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:19:9:20:55 | if (...) ... | -| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | | PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:19:13:19:21 | After ... is ... [true] | | PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | | PostDominance.cs:20:19:20:54 | After object creation of type ArgumentNullException | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | @@ -13475,7 +13475,7 @@ postDominance | TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:7:18:7:22 | Int32 j | | TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:7:9:7:25 | if (...) ... | -| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | | TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | TypeAccesses.cs:8:9:8:28 | After ... ...; | TypeAccesses.cs:8:13:8:27 | After Type t = ... | @@ -17914,13 +17914,13 @@ blockDominance | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:5:10:5:11 | Entry | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:9:18:9 | After if (...) ... | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | After ... is ... [false] | -| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:14:18:9 | After if (...) ... | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | After ... is ... [false] | -| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:20:9:38:9 | After switch (...) {...} | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:22:13:22:23 | After case ...: [match] | | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:22:13:22:23 | After case ...: [no-match] | @@ -17953,20 +17953,20 @@ blockDominance | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:8:13:8:23 | After ... is ... [false] | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:14:18:9 | After if (...) ... | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | -| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | -| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | +| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [match-true] ... is ... | -| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | +| Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:20:9:38:9 | After switch (...) {...} | | Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:22:13:22:23 | After case ...: [match] | | Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:22:13:22:23 | After case ...: [no-match] | @@ -18008,33 +18008,33 @@ blockDominance | Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | | Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | Entry | | Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | After ... is ... | -| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | -| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:50:24:50:25 | Entry | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | After ... is ... [false] | -| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:39 | After ... ? ... : ... | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | After ... is ... | -| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | After ... is ... | -| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:9:51:21 | After ... is ... [false] | | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | After ... is ... | -| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | [match-true] ... is ... | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | -| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | -| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | Entry | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | After ... is ... | -| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | -| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | Entry | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:58:16:62:9 | After ... switch { ... } | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [match] | @@ -18078,41 +18078,41 @@ blockDominance | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | | Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | Entry | | Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | After ... is ... [false] | -| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | | Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:69 | After ... ? ... : ... | | Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:39:85:53 | After ... is ... [false] | -| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:69 | After ... ? ... : ... | | Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:26:87:27 | Entry | | Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | After ... is ... [false] | -| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | | Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:70 | After ... ? ... : ... | | Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:39:87:54 | After ... is ... [false] | -| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:70 | After ... ? ... : ... | | Patterns.cs:93:17:93:19 | Entry | Patterns.cs:93:17:93:19 | Entry | | Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:9:98:9 | After if (...) ... | | Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | After ... is ... [false] | -| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:93:17:93:19 | Entry | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | | Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:9:98:9 | After if (...) ... | | Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:13:95:40 | After ... is ... [false] | -| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | | PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Entry | | PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | Entry | | PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | Entry | | PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | Normal Exit | | PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | After ... is ... [false] | -| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | | PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Normal Exit | | PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:13:12:21 | After ... is ... [false] | -| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | | PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | Entry | | PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | Exit | | PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | After ... is ... [false] | -| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | | PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | Exit | | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:13:19:21 | After ... is ... [false] | -| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | | Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Entry | | Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Entry | | Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | Entry | @@ -18473,10 +18473,10 @@ blockDominance | TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:3:10:3:10 | Entry | | TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | -| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | | TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | -| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | | VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Entry | | VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | Entry | | VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | Entry | @@ -22029,40 +22029,40 @@ postBlockDominance | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | Entry | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:9:18:9 | After if (...) ... | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | -| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | -| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:8:13:8:23 | After ... is ... [false] | -| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | -| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | -| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | | Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | Entry | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:8:9:18:9 | After if (...) ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:8:13:8:23 | After ... is ... [false] | -| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:8:13:8:23 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:12:14:18:9 | After if (...) ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:12:18:12:31 | After ... is ... [false] | -| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:12:18:12:31 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:16:14:18:9 | After if (...) ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:16:18:16:28 | After ... is ... [false] | -| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:16:18:16:28 | [match-true] ... is ... | +| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:20:9:38:9 | After switch (...) {...} | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:22:13:22:23 | After case ...: [match] | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:22:13:22:23 | After case ...: [no-match] | @@ -22095,32 +22095,32 @@ postBlockDominance | Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | Entry | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Entry | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | -| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | -| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | +| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | +| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:50:24:50:25 | Entry | | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:9:51:21 | After ... is ... [false] | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Entry | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | -| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:25:51:30 | After ... is ... | -| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:34:51:39 | After ... is ... | -| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | -| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | +| Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | -| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | -| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | +| Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | +| Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | -| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | -| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | +| Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | +| Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | Entry | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Entry | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | -| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | -| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | +| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | +| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | Entry | | Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | Entry | | Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:58:16:62:9 | After ... switch { ... } | @@ -22156,39 +22156,39 @@ postBlockDominance | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | | Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | Entry | | Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:39:85:53 | After ... is ... [false] | -| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Entry | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | -| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | +| Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:39:85:69 | After ... ? ... : ... | | Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:26:87:27 | Entry | | Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:39:87:54 | After ... is ... [false] | -| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Entry | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | -| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | +| Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:39:87:70 | After ... ? ... : ... | | Patterns.cs:93:17:93:19 | Entry | Patterns.cs:93:17:93:19 | Entry | | Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:93:17:93:19 | Entry | | Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:9:98:9 | After if (...) ... | | Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | -| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | | Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:13:95:40 | After ... is ... [false] | -| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | +| Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | | PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | Entry | | PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | Entry | | PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | Entry | | PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Entry | | PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | Normal Exit | | PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:12:13:12:21 | After ... is ... [false] | -| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | | PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:13:12:21 | After ... is ... [false] | -| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | +| PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | | PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | Entry | | PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | Exit | | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | Entry | | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:13:19:21 | After ... is ... [false] | -| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | +| PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | | Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Entry | | Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Entry | | Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | Entry | @@ -22461,9 +22461,9 @@ postBlockDominance | TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | Entry | | TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | -| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | -| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | +| TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | | VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | Entry | | VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | Entry | | VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | Entry | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index db951b3ba80..34f56adc029 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -5387,7 +5387,7 @@ nodeEnclosing | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:9:9:11:9 | After {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:9:9:11:9 | {...} | Patterns.cs:5:10:5:11 | M1 | @@ -5411,7 +5411,7 @@ nodeEnclosing | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:13:9:15:9 | After {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:13:9:15:9 | {...} | Patterns.cs:5:10:5:11 | M1 | @@ -5435,7 +5435,7 @@ nodeEnclosing | Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:17:9:18:9 | {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | @@ -5536,7 +5536,7 @@ nodeEnclosing | Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:47:24:47:25 | M2 | -| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:14:48:20 | After not ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:14:48:20 | not ... | Patterns.cs:47:24:47:25 | M2 | @@ -5549,7 +5549,7 @@ nodeEnclosing | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:21 | After ... is ... [true] | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:21 | Before ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:50:24:50:25 | M3 | @@ -5560,13 +5560,13 @@ nodeEnclosing | Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:30:51:30 | 1 | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:39:51:39 | 2 | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:53:24:53:25 | Exit | Patterns.cs:53:24:53:25 | M4 | @@ -5575,7 +5575,7 @@ nodeEnclosing | Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:14:54:37 | After not ... | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:14:54:37 | not ... | Patterns.cs:53:24:53:25 | M4 | @@ -5673,7 +5673,7 @@ nodeEnclosing | Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:53 | After ... is ... [true] | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:53 | Before ... is ... | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:26:85:27 | M8 | @@ -5694,7 +5694,7 @@ nodeEnclosing | Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:54 | After ... is ... [true] | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:54 | Before ... is ... | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:26:87:27 | M9 | @@ -5719,7 +5719,7 @@ nodeEnclosing | Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:13:95:40 | After ... is ... [true] | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:93:17:93:19 | M10 | @@ -5773,7 +5773,7 @@ nodeEnclosing | PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:12:18:12:21 | null | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:10:10:10:11 | M2 | @@ -5796,7 +5796,7 @@ nodeEnclosing | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:19:18:19:21 | null | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | M3 | @@ -6542,7 +6542,7 @@ nodeEnclosing | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:3:10:3:10 | M | @@ -8960,13 +8960,13 @@ blockEnclosing | Patterns.cs:5:10:5:11 | Entry | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:14:18:9 | After if (...) ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 | -| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:5:10:5:11 | M1 | +| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | @@ -8983,18 +8983,18 @@ blockEnclosing | Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | M2 | -| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:47:24:47:25 | M2 | +| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:47:24:47:25 | M2 | | Patterns.cs:50:24:50:25 | Entry | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:50:24:50:25 | M3 | -| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:50:24:50:25 | M3 | +| Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | Patterns.cs:50:24:50:25 | M3 | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | M4 | -| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:53:24:53:25 | M4 | +| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:53:24:53:25 | M4 | | Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | M5 | | Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:56:26:56:27 | M5 | @@ -9015,26 +9015,26 @@ blockEnclosing | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 | | Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:26:85:27 | M8 | -| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:26:85:27 | M8 | +| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | M8 | | Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:26:87:27 | M9 | -| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:26:87:27 | M9 | +| Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | M9 | | Patterns.cs:93:17:93:19 | Entry | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:9:98:9 | After if (...) ... | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:93:17:93:19 | M10 | -| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:93:17:93:19 | M10 | +| Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | Patterns.cs:93:17:93:19 | M10 | | PostDominance.cs:3:7:3:19 | Entry | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:5:10:5:11 | Entry | PostDominance.cs:5:10:5:11 | M1 | | PostDominance.cs:10:10:10:11 | Entry | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:10:10:10:11 | Normal Exit | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:10:10:10:11 | M2 | -| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:10:10:10:11 | M2 | +| PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | PostDominance.cs:10:10:10:11 | M2 | | PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:17:10:17:11 | Exit | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:17:10:17:11 | M3 | -| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:17:10:17:11 | M3 | +| PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | PostDominance.cs:17:10:17:11 | M3 | | Qualifiers.cs:1:7:1:16 | Entry | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:7:16:7:21 | Entry | Qualifiers.cs:7:16:7:21 | Method | | Qualifiers.cs:8:23:8:34 | Entry | Qualifiers.cs:8:23:8:34 | StaticMethod | @@ -9168,7 +9168,7 @@ blockEnclosing | TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:3:10:3:10 | M | -| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:3:10:3:10 | M | +| TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | TypeAccesses.cs:3:10:3:10 | M | | VarDecls.cs:3:7:3:14 | Entry | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:5:18:5:19 | Entry | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:13:12:13:13 | Entry | VarDecls.cs:13:12:13:13 | M2 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index 387feb47b7a..f555d3a24e2 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -5483,11 +5483,11 @@ | Patterns.cs:8:9:18:9 | if (...) ... | Patterns.cs:8:13:8:23 | Before ... is ... | | | Patterns.cs:8:13:8:13 | access to local variable o | Patterns.cs:8:13:8:23 | ... is ... | | | Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | After ... is ... [false] | false | -| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [match-true] ... is ... | true | +| Patterns.cs:8:13:8:23 | ... is ... | Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | true | | Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:14:18:9 | if (...) ... | | | Patterns.cs:8:13:8:23 | After ... is ... [true] | Patterns.cs:9:9:11:9 | {...} | | | Patterns.cs:8:13:8:23 | Before ... is ... | Patterns.cs:8:13:8:13 | access to local variable o | | -| Patterns.cs:8:13:8:23 | [match-true] ... is ... | Patterns.cs:8:18:8:23 | Int32 i1 | | +| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:8:18:8:23 | Int32 i1 | | | Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:13:8:23 | After ... is ... [true] | true | | Patterns.cs:9:9:11:9 | After {...} | Patterns.cs:8:9:18:9 | After if (...) ... | | | Patterns.cs:9:9:11:9 | {...} | Patterns.cs:10:13:10:43 | ...; | | @@ -5508,11 +5508,11 @@ | Patterns.cs:12:14:18:9 | if (...) ... | Patterns.cs:12:18:12:31 | Before ... is ... | | | Patterns.cs:12:18:12:18 | access to local variable o | Patterns.cs:12:18:12:31 | ... is ... | | | Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | After ... is ... [false] | false | -| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [match-true] ... is ... | true | +| Patterns.cs:12:18:12:31 | ... is ... | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | true | | Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:14:18:9 | if (...) ... | | | Patterns.cs:12:18:12:31 | After ... is ... [true] | Patterns.cs:13:9:15:9 | {...} | | | Patterns.cs:12:18:12:31 | Before ... is ... | Patterns.cs:12:18:12:18 | access to local variable o | | -| Patterns.cs:12:18:12:31 | [match-true] ... is ... | Patterns.cs:12:23:12:31 | String s1 | | +| Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | Patterns.cs:12:23:12:31 | String s1 | | | Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:18:12:31 | After ... is ... [true] | true | | Patterns.cs:13:9:15:9 | After {...} | Patterns.cs:12:14:18:9 | After if (...) ... | | | Patterns.cs:13:9:15:9 | {...} | Patterns.cs:14:13:14:46 | ...; | | @@ -5533,11 +5533,11 @@ | Patterns.cs:16:14:18:9 | if (...) ... | Patterns.cs:16:18:16:28 | Before ... is ... | | | Patterns.cs:16:18:16:18 | access to local variable o | Patterns.cs:16:18:16:28 | ... is ... | | | Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | After ... is ... [false] | false | -| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [match-true] ... is ... | true | +| Patterns.cs:16:18:16:28 | ... is ... | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | true | | Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | | | Patterns.cs:16:18:16:28 | After ... is ... [true] | Patterns.cs:17:9:18:9 | {...} | | | Patterns.cs:16:18:16:28 | Before ... is ... | Patterns.cs:16:18:16:18 | access to local variable o | | -| Patterns.cs:16:18:16:28 | [match-true] ... is ... | Patterns.cs:16:23:16:28 | Object v1 | | +| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:16:23:16:28 | Object v1 | | | Patterns.cs:16:23:16:28 | Object v1 | Patterns.cs:16:18:16:28 | After ... is ... [true] | true | | Patterns.cs:17:9:18:9 | {...} | Patterns.cs:16:14:18:9 | After if (...) ... | | | Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | | @@ -5641,10 +5641,10 @@ | Patterns.cs:47:24:47:25 | Normal Exit | Patterns.cs:47:24:47:25 | Exit | | | Patterns.cs:48:9:48:9 | access to parameter c | Patterns.cs:48:9:48:20 | ... is ... | | | Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | After ... is ... | | -| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [match-true] ... is ... | true | +| Patterns.cs:48:9:48:20 | ... is ... | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | true | | Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Normal Exit | | | Patterns.cs:48:9:48:20 | Before ... is ... | Patterns.cs:48:9:48:9 | access to parameter c | | -| Patterns.cs:48:9:48:20 | [match-true] ... is ... | Patterns.cs:48:14:48:20 | Before not ... | | +| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:48:14:48:20 | Before not ... | | | Patterns.cs:48:14:48:20 | After not ... | Patterns.cs:48:9:48:20 | After ... is ... | | | Patterns.cs:48:14:48:20 | Before not ... | Patterns.cs:48:18:48:20 | a | | | Patterns.cs:48:14:48:20 | not ... | Patterns.cs:48:14:48:20 | After not ... | | @@ -5653,11 +5653,11 @@ | Patterns.cs:50:24:50:25 | Normal Exit | Patterns.cs:50:24:50:25 | Exit | | | Patterns.cs:51:9:51:9 | access to parameter c | Patterns.cs:51:9:51:21 | ... is ... | | | Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | After ... is ... [false] | false | -| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [match-true] ... is ... | true | +| Patterns.cs:51:9:51:21 | ... is ... | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | true | | Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | Before ... is ... | | | Patterns.cs:51:9:51:21 | After ... is ... [true] | Patterns.cs:51:25:51:30 | Before ... is ... | | | Patterns.cs:51:9:51:21 | Before ... is ... | Patterns.cs:51:9:51:9 | access to parameter c | | -| Patterns.cs:51:9:51:21 | [match-true] ... is ... | Patterns.cs:51:14:51:21 | Before not ... | | +| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:14:51:21 | Before not ... | | | Patterns.cs:51:9:51:39 | ... ? ... : ... | Patterns.cs:51:9:51:21 | Before ... is ... | | | Patterns.cs:51:9:51:39 | After ... ? ... : ... | Patterns.cs:50:24:50:25 | Normal Exit | | | Patterns.cs:51:14:51:21 | After not ... | Patterns.cs:51:9:51:21 | After ... is ... [true] | true | @@ -5666,26 +5666,26 @@ | Patterns.cs:51:18:51:21 | null | Patterns.cs:51:14:51:21 | not ... | | | Patterns.cs:51:25:51:25 | access to parameter c | Patterns.cs:51:25:51:30 | ... is ... | | | Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | After ... is ... | | -| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [match-true] ... is ... | true | +| Patterns.cs:51:25:51:30 | ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | true | | Patterns.cs:51:25:51:30 | After ... is ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | | | Patterns.cs:51:25:51:30 | Before ... is ... | Patterns.cs:51:25:51:25 | access to parameter c | | -| Patterns.cs:51:25:51:30 | [match-true] ... is ... | Patterns.cs:51:30:51:30 | 1 | | +| Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | Patterns.cs:51:30:51:30 | 1 | | | Patterns.cs:51:30:51:30 | 1 | Patterns.cs:51:25:51:30 | After ... is ... | | | Patterns.cs:51:34:51:34 | access to parameter c | Patterns.cs:51:34:51:39 | ... is ... | | | Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | After ... is ... | | -| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [match-true] ... is ... | true | +| Patterns.cs:51:34:51:39 | ... is ... | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | true | | Patterns.cs:51:34:51:39 | After ... is ... | Patterns.cs:51:9:51:39 | After ... ? ... : ... | | | Patterns.cs:51:34:51:39 | Before ... is ... | Patterns.cs:51:34:51:34 | access to parameter c | | -| Patterns.cs:51:34:51:39 | [match-true] ... is ... | Patterns.cs:51:39:51:39 | 2 | | +| Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | Patterns.cs:51:39:51:39 | 2 | | | Patterns.cs:51:39:51:39 | 2 | Patterns.cs:51:34:51:39 | After ... is ... | | | Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | Before ... is ... | | | Patterns.cs:53:24:53:25 | Normal Exit | Patterns.cs:53:24:53:25 | Exit | | | Patterns.cs:54:9:54:9 | access to parameter c | Patterns.cs:54:9:54:37 | ... is ... | | | Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | After ... is ... | | -| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [match-true] ... is ... | true | +| Patterns.cs:54:9:54:37 | ... is ... | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | true | | Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Normal Exit | | | Patterns.cs:54:9:54:37 | Before ... is ... | Patterns.cs:54:9:54:9 | access to parameter c | | -| Patterns.cs:54:9:54:37 | [match-true] ... is ... | Patterns.cs:54:14:54:37 | Before not ... | | +| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:54:14:54:37 | Before not ... | | | Patterns.cs:54:14:54:37 | After not ... | Patterns.cs:54:9:54:37 | After ... is ... | | | Patterns.cs:54:14:54:37 | Before not ... | Patterns.cs:54:18:54:37 | Before { ... } | | | Patterns.cs:54:14:54:37 | not ... | Patterns.cs:54:14:54:37 | After not ... | | @@ -5782,11 +5782,11 @@ | Patterns.cs:85:26:85:27 | Normal Exit | Patterns.cs:85:26:85:27 | Exit | | | Patterns.cs:85:39:85:39 | access to parameter i | Patterns.cs:85:39:85:53 | ... is ... | | | Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | After ... is ... [false] | false | -| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [match-true] ... is ... | true | +| Patterns.cs:85:39:85:53 | ... is ... | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | true | | Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:67:85:69 | "2" | | | Patterns.cs:85:39:85:53 | After ... is ... [true] | Patterns.cs:85:57:85:63 | "not 2" | | | Patterns.cs:85:39:85:53 | Before ... is ... | Patterns.cs:85:39:85:39 | access to parameter i | | -| Patterns.cs:85:39:85:53 | [match-true] ... is ... | Patterns.cs:85:44:85:53 | Before ... or ... | | +| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:44:85:53 | Before ... or ... | | | Patterns.cs:85:39:85:69 | ... ? ... : ... | Patterns.cs:85:39:85:53 | Before ... is ... | | | Patterns.cs:85:39:85:69 | After ... ? ... : ... | Patterns.cs:85:26:85:27 | Normal Exit | | | Patterns.cs:85:44:85:44 | 1 | Patterns.cs:85:49:85:53 | Before not ... | | @@ -5803,11 +5803,11 @@ | Patterns.cs:87:26:87:27 | Normal Exit | Patterns.cs:87:26:87:27 | Exit | | | Patterns.cs:87:39:87:39 | access to parameter i | Patterns.cs:87:39:87:54 | ... is ... | | | Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | After ... is ... [false] | false | -| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [match-true] ... is ... | true | +| Patterns.cs:87:39:87:54 | ... is ... | Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | true | | Patterns.cs:87:39:87:54 | After ... is ... [false] | Patterns.cs:87:64:87:70 | "not 1" | | | Patterns.cs:87:39:87:54 | After ... is ... [true] | Patterns.cs:87:58:87:60 | "1" | | | Patterns.cs:87:39:87:54 | Before ... is ... | Patterns.cs:87:39:87:39 | access to parameter i | | -| Patterns.cs:87:39:87:54 | [match-true] ... is ... | Patterns.cs:87:44:87:54 | Before ... and ... | | +| Patterns.cs:87:39:87:54 | [MatchTrue] ... is ... | Patterns.cs:87:44:87:54 | Before ... and ... | | | Patterns.cs:87:39:87:70 | ... ? ... : ... | Patterns.cs:87:39:87:54 | Before ... is ... | | | Patterns.cs:87:39:87:70 | After ... ? ... : ... | Patterns.cs:87:26:87:27 | Normal Exit | | | Patterns.cs:87:44:87:44 | 1 | Patterns.cs:87:50:87:54 | Before not ... | | @@ -5828,11 +5828,11 @@ | Patterns.cs:95:9:98:9 | if (...) ... | Patterns.cs:95:13:95:40 | Before ... is ... | | | Patterns.cs:95:13:95:16 | this access | Patterns.cs:95:13:95:40 | ... is ... | | | Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | After ... is ... [false] | false | -| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [match-true] ... is ... | true | +| Patterns.cs:95:13:95:40 | ... is ... | Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | true | | Patterns.cs:95:13:95:40 | After ... is ... [false] | Patterns.cs:95:9:98:9 | After if (...) ... | | | Patterns.cs:95:13:95:40 | After ... is ... [true] | Patterns.cs:96:9:98:9 | {...} | | | Patterns.cs:95:13:95:40 | Before ... is ... | Patterns.cs:95:13:95:16 | this access | | -| Patterns.cs:95:13:95:40 | [match-true] ... is ... | Patterns.cs:95:21:95:40 | Before { ... } | | +| Patterns.cs:95:13:95:40 | [MatchTrue] ... is ... | Patterns.cs:95:21:95:40 | Before { ... } | | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:13:95:40 | After ... is ... [true] | true | | Patterns.cs:95:21:95:40 | After { ... } | Patterns.cs:95:21:95:40 | { ... } | | | Patterns.cs:95:21:95:40 | Before { ... } | Patterns.cs:95:21:95:40 | Before { ... } | | @@ -5880,11 +5880,11 @@ | PostDominance.cs:12:9:13:19 | if (...) ... | PostDominance.cs:12:13:12:21 | Before ... is ... | | | PostDominance.cs:12:13:12:13 | access to parameter s | PostDominance.cs:12:13:12:21 | ... is ... | | | PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | After ... is ... [false] | false | -| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [match-true] ... is ... | true | +| PostDominance.cs:12:13:12:21 | ... is ... | PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | true | | PostDominance.cs:12:13:12:21 | After ... is ... [false] | PostDominance.cs:12:9:13:19 | After if (...) ... | | | PostDominance.cs:12:13:12:21 | After ... is ... [true] | PostDominance.cs:13:13:13:19 | Before return ...; | | | PostDominance.cs:12:13:12:21 | Before ... is ... | PostDominance.cs:12:13:12:13 | access to parameter s | | -| PostDominance.cs:12:13:12:21 | [match-true] ... is ... | PostDominance.cs:12:18:12:21 | null | | +| PostDominance.cs:12:13:12:21 | [MatchTrue] ... is ... | PostDominance.cs:12:18:12:21 | null | | | PostDominance.cs:12:18:12:21 | null | PostDominance.cs:12:13:12:21 | After ... is ... [true] | true | | PostDominance.cs:13:13:13:19 | Before return ...; | PostDominance.cs:13:13:13:19 | return ...; | | | PostDominance.cs:13:13:13:19 | return ...; | PostDominance.cs:10:10:10:11 | Normal Exit | return | @@ -5903,11 +5903,11 @@ | PostDominance.cs:19:9:20:55 | if (...) ... | PostDominance.cs:19:13:19:21 | Before ... is ... | | | PostDominance.cs:19:13:19:13 | access to parameter s | PostDominance.cs:19:13:19:21 | ... is ... | | | PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | After ... is ... [false] | false | -| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [match-true] ... is ... | true | +| PostDominance.cs:19:13:19:21 | ... is ... | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | true | | PostDominance.cs:19:13:19:21 | After ... is ... [false] | PostDominance.cs:19:9:20:55 | After if (...) ... | | | PostDominance.cs:19:13:19:21 | After ... is ... [true] | PostDominance.cs:20:13:20:55 | Before throw ...; | | | PostDominance.cs:19:13:19:21 | Before ... is ... | PostDominance.cs:19:13:19:13 | access to parameter s | | -| PostDominance.cs:19:13:19:21 | [match-true] ... is ... | PostDominance.cs:19:18:19:21 | null | | +| PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | PostDominance.cs:19:18:19:21 | null | | | PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | After ... is ... [true] | true | | PostDominance.cs:20:13:20:55 | Before throw ...; | PostDominance.cs:20:19:20:54 | Before object creation of type ArgumentNullException | | | PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | Exceptional Exit | exception | @@ -6669,11 +6669,11 @@ | TypeAccesses.cs:7:9:7:25 | if (...) ... | TypeAccesses.cs:7:13:7:22 | Before ... is ... | | | TypeAccesses.cs:7:13:7:13 | access to parameter o | TypeAccesses.cs:7:13:7:22 | ... is ... | | | TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | false | -| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | true | +| TypeAccesses.cs:7:13:7:22 | ... is ... | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | true | | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | TypeAccesses.cs:7:25:7:25 | ; | | | TypeAccesses.cs:7:13:7:22 | Before ... is ... | TypeAccesses.cs:7:13:7:13 | access to parameter o | | -| TypeAccesses.cs:7:13:7:22 | [match-true] ... is ... | TypeAccesses.cs:7:18:7:22 | Int32 j | | +| TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | TypeAccesses.cs:7:18:7:22 | Int32 j | | | TypeAccesses.cs:7:18:7:22 | Int32 j | TypeAccesses.cs:7:13:7:22 | After ... is ... [true] | true | | TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:9:7:25 | After if (...) ... | | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:8:13:8:27 | Before Type t = ... | | diff --git a/csharp/ql/test/library-tests/csharp7/IsFlow.expected b/csharp/ql/test/library-tests/csharp7/IsFlow.expected index b7bd4981019..a1dafe05ce6 100644 --- a/csharp/ql/test/library-tests/csharp7/IsFlow.expected +++ b/csharp/ql/test/library-tests/csharp7/IsFlow.expected @@ -31,11 +31,11 @@ | CSharp7.cs:254:18:254:20 | "x" | CSharp7.cs:254:27:254:40 | Before ... is ... | semmle.label | successor | | CSharp7.cs:254:27:254:27 | access to local variable o | CSharp7.cs:254:27:254:40 | ... is ... | semmle.label | successor | | CSharp7.cs:254:27:254:40 | ... is ... | CSharp7.cs:254:27:254:40 | After ... is ... [false] | semmle.label | false | -| CSharp7.cs:254:27:254:40 | ... is ... | CSharp7.cs:254:27:254:40 | [match-true] ... is ... | semmle.label | true | +| CSharp7.cs:254:27:254:40 | ... is ... | CSharp7.cs:254:27:254:40 | [MatchTrue] ... is ... | semmle.label | true | | CSharp7.cs:254:27:254:40 | After ... is ... [false] | CSharp7.cs:257:13:257:36 | case ...: | semmle.label | successor | | CSharp7.cs:254:27:254:40 | After ... is ... [true] | CSharp7.cs:255:17:255:45 | ...; | semmle.label | successor | | CSharp7.cs:254:27:254:40 | Before ... is ... | CSharp7.cs:254:27:254:27 | access to local variable o | semmle.label | successor | -| CSharp7.cs:254:27:254:40 | [match-true] ... is ... | CSharp7.cs:254:32:254:40 | String s4 | semmle.label | successor | +| CSharp7.cs:254:27:254:40 | [MatchTrue] ... is ... | CSharp7.cs:254:32:254:40 | String s4 | semmle.label | successor | | CSharp7.cs:254:32:254:40 | String s4 | CSharp7.cs:254:27:254:40 | After ... is ... [true] | semmle.label | true | | CSharp7.cs:255:17:255:44 | After call to method WriteLine | CSharp7.cs:255:17:255:45 | After ...; | semmle.label | successor | | CSharp7.cs:255:17:255:44 | Before call to method WriteLine | CSharp7.cs:255:35:255:43 | Before $"..." | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected index 2ceca1d0387..b6477940501 100644 --- a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected +++ b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected @@ -26,22 +26,22 @@ | patterns.cs:9:9:11:9 | if (...) ... | patterns.cs:9:13:9:29 | Before ... is ... | semmle.label | successor | | patterns.cs:9:13:9:13 | access to local variable o | patterns.cs:9:13:9:29 | ... is ... | semmle.label | successor | | patterns.cs:9:13:9:29 | ... is ... | patterns.cs:9:13:9:29 | After ... is ... [false] | semmle.label | false | -| patterns.cs:9:13:9:29 | ... is ... | patterns.cs:9:13:9:29 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:9:13:9:29 | ... is ... | patterns.cs:9:13:9:29 | [MatchTrue] ... is ... | semmle.label | true | | patterns.cs:9:13:9:29 | After ... is ... [false] | patterns.cs:9:9:11:9 | After if (...) ... | semmle.label | successor | | patterns.cs:9:13:9:29 | After ... is ... [true] | patterns.cs:10:9:11:9 | {...} | semmle.label | successor | | patterns.cs:9:13:9:29 | Before ... is ... | patterns.cs:9:13:9:13 | access to local variable o | semmle.label | successor | -| patterns.cs:9:13:9:29 | [match-true] ... is ... | patterns.cs:9:18:9:29 | MyStruct ms1 | semmle.label | successor | +| patterns.cs:9:13:9:29 | [MatchTrue] ... is ... | patterns.cs:9:18:9:29 | MyStruct ms1 | semmle.label | successor | | patterns.cs:9:18:9:29 | MyStruct ms1 | patterns.cs:9:13:9:29 | After ... is ... [true] | semmle.label | true | | patterns.cs:10:9:11:9 | {...} | patterns.cs:9:9:11:9 | After if (...) ... | semmle.label | successor | | patterns.cs:13:9:15:9 | After if (...) ... | patterns.cs:17:9:19:9 | if (...) ... | semmle.label | successor | | patterns.cs:13:9:15:9 | if (...) ... | patterns.cs:13:13:13:56 | ... && ... | semmle.label | successor | | patterns.cs:13:13:13:13 | access to local variable o | patterns.cs:13:13:13:40 | ... is ... | semmle.label | successor | | patterns.cs:13:13:13:40 | ... is ... | patterns.cs:13:13:13:40 | After ... is ... [false] | semmle.label | false | -| patterns.cs:13:13:13:40 | ... is ... | patterns.cs:13:13:13:40 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:13:13:13:40 | ... is ... | patterns.cs:13:13:13:40 | [MatchTrue] ... is ... | semmle.label | true | | patterns.cs:13:13:13:40 | After ... is ... [false] | patterns.cs:13:13:13:47 | After ... && ... [false] | semmle.label | false | | patterns.cs:13:13:13:40 | After ... is ... [true] | patterns.cs:13:45:13:47 | Before ... < ... | semmle.label | successor | | patterns.cs:13:13:13:40 | Before ... is ... | patterns.cs:13:13:13:13 | access to local variable o | semmle.label | successor | -| patterns.cs:13:13:13:40 | [match-true] ... is ... | patterns.cs:13:18:13:40 | Before { ... } | semmle.label | successor | +| patterns.cs:13:13:13:40 | [MatchTrue] ... is ... | patterns.cs:13:18:13:40 | Before { ... } | semmle.label | successor | | patterns.cs:13:13:13:47 | ... && ... | patterns.cs:13:13:13:40 | Before ... is ... | semmle.label | successor | | patterns.cs:13:13:13:47 | After ... && ... [false] | patterns.cs:13:13:13:56 | After ... && ... [false] | semmle.label | false | | patterns.cs:13:13:13:47 | After ... && ... [true] | patterns.cs:13:52:13:56 | Before ... < ... | semmle.label | successor | @@ -79,11 +79,11 @@ | patterns.cs:17:9:19:9 | if (...) ... | patterns.cs:17:13:17:21 | Before ... is ... | semmle.label | successor | | patterns.cs:17:13:17:13 | access to local variable o | patterns.cs:17:13:17:21 | ... is ... | semmle.label | successor | | patterns.cs:17:13:17:21 | ... is ... | patterns.cs:17:13:17:21 | After ... is ... [false] | semmle.label | false | -| patterns.cs:17:13:17:21 | ... is ... | patterns.cs:17:13:17:21 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:17:13:17:21 | ... is ... | patterns.cs:17:13:17:21 | [MatchTrue] ... is ... | semmle.label | true | | patterns.cs:17:13:17:21 | After ... is ... [false] | patterns.cs:17:9:19:9 | After if (...) ... | semmle.label | successor | | patterns.cs:17:13:17:21 | After ... is ... [true] | patterns.cs:18:9:19:9 | {...} | semmle.label | successor | | patterns.cs:17:13:17:21 | Before ... is ... | patterns.cs:17:13:17:13 | access to local variable o | semmle.label | successor | -| patterns.cs:17:13:17:21 | [match-true] ... is ... | patterns.cs:17:18:17:21 | Before { ... } | semmle.label | successor | +| patterns.cs:17:13:17:21 | [MatchTrue] ... is ... | patterns.cs:17:18:17:21 | Before { ... } | semmle.label | successor | | patterns.cs:17:18:17:19 | { ... } | patterns.cs:17:18:17:21 | { ... } | semmle.label | successor | | patterns.cs:17:18:17:21 | After { ... } | patterns.cs:17:13:17:21 | After ... is ... [true] | semmle.label | true | | patterns.cs:17:18:17:21 | Before { ... } | patterns.cs:17:18:17:21 | Object p | semmle.label | successor | @@ -94,11 +94,11 @@ | patterns.cs:22:9:24:9 | if (...) ... | patterns.cs:22:13:22:53 | Before ... is ... | semmle.label | successor | | patterns.cs:22:13:22:13 | access to local variable o | patterns.cs:22:13:22:53 | ... is ... | semmle.label | successor | | patterns.cs:22:13:22:53 | ... is ... | patterns.cs:22:13:22:53 | After ... is ... [false] | semmle.label | false | -| patterns.cs:22:13:22:53 | ... is ... | patterns.cs:22:13:22:53 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:22:13:22:53 | ... is ... | patterns.cs:22:13:22:53 | [MatchTrue] ... is ... | semmle.label | true | | patterns.cs:22:13:22:53 | After ... is ... [false] | patterns.cs:22:9:24:9 | After if (...) ... | semmle.label | successor | | patterns.cs:22:13:22:53 | After ... is ... [true] | patterns.cs:23:9:24:9 | {...} | semmle.label | successor | | patterns.cs:22:13:22:53 | Before ... is ... | patterns.cs:22:13:22:13 | access to local variable o | semmle.label | successor | -| patterns.cs:22:13:22:53 | [match-true] ... is ... | patterns.cs:22:18:22:53 | Before { ... } | semmle.label | successor | +| patterns.cs:22:13:22:53 | [MatchTrue] ... is ... | patterns.cs:22:18:22:53 | Before { ... } | semmle.label | successor | | patterns.cs:22:18:22:25 | access to type MyStruct | patterns.cs:22:27:22:53 | Before { ... } | semmle.label | successor | | patterns.cs:22:18:22:53 | After { ... } | patterns.cs:22:13:22:53 | After ... is ... [true] | semmle.label | true | | patterns.cs:22:18:22:53 | Before { ... } | patterns.cs:22:18:22:25 | access to type MyStruct | semmle.label | successor | @@ -119,11 +119,11 @@ | patterns.cs:27:9:29:9 | if (...) ... | patterns.cs:27:13:27:58 | Before ... is ... | semmle.label | successor | | patterns.cs:27:13:27:13 | access to local variable o | patterns.cs:27:13:27:58 | ... is ... | semmle.label | successor | | patterns.cs:27:13:27:58 | ... is ... | patterns.cs:27:13:27:58 | After ... is ... [false] | semmle.label | false | -| patterns.cs:27:13:27:58 | ... is ... | patterns.cs:27:13:27:58 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:27:13:27:58 | ... is ... | patterns.cs:27:13:27:58 | [MatchTrue] ... is ... | semmle.label | true | | patterns.cs:27:13:27:58 | After ... is ... [false] | patterns.cs:27:9:29:9 | After if (...) ... | semmle.label | successor | | patterns.cs:27:13:27:58 | After ... is ... [true] | patterns.cs:28:9:29:9 | {...} | semmle.label | successor | | patterns.cs:27:13:27:58 | Before ... is ... | patterns.cs:27:13:27:13 | access to local variable o | semmle.label | successor | -| patterns.cs:27:13:27:58 | [match-true] ... is ... | patterns.cs:27:18:27:58 | Before { ... } | semmle.label | successor | +| patterns.cs:27:13:27:58 | [MatchTrue] ... is ... | patterns.cs:27:18:27:58 | Before { ... } | semmle.label | successor | | patterns.cs:27:18:27:25 | access to type MyStruct | patterns.cs:27:27:27:58 | Before { ... } | semmle.label | successor | | patterns.cs:27:18:27:58 | After { ... } | patterns.cs:27:13:27:58 | After ... is ... [true] | semmle.label | true | | patterns.cs:27:18:27:58 | Before { ... } | patterns.cs:27:18:27:25 | access to type MyStruct | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected index d50ac10c41e..9d35bd27b38 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected @@ -284,11 +284,11 @@ | patterns.cs:140:17:140:42 | After ... => ... [no-match] | patterns.cs:141:17:141:29 | ... => ... | semmle.label | successor | | patterns.cs:140:31:140:31 | access to local variable y | patterns.cs:140:31:140:37 | ... is ... | semmle.label | successor | | patterns.cs:140:31:140:37 | ... is ... | patterns.cs:140:31:140:37 | After ... is ... [false] | semmle.label | false | -| patterns.cs:140:31:140:37 | ... is ... | patterns.cs:140:31:140:37 | [match-true] ... is ... | semmle.label | true | +| patterns.cs:140:31:140:37 | ... is ... | patterns.cs:140:31:140:37 | [MatchTrue] ... is ... | semmle.label | true | | patterns.cs:140:31:140:37 | After ... is ... [false] | patterns.cs:141:17:141:29 | ... => ... | semmle.label | successor | | patterns.cs:140:31:140:37 | After ... is ... [true] | patterns.cs:140:42:140:42 | 4 | semmle.label | successor | | patterns.cs:140:31:140:37 | Before ... is ... | patterns.cs:140:31:140:31 | access to local variable y | semmle.label | successor | -| patterns.cs:140:31:140:37 | [match-true] ... is ... | patterns.cs:140:36:140:37 | Before { ... } | semmle.label | successor | +| patterns.cs:140:31:140:37 | [MatchTrue] ... is ... | patterns.cs:140:36:140:37 | Before { ... } | semmle.label | successor | | patterns.cs:140:36:140:37 | After { ... } | patterns.cs:140:31:140:37 | After ... is ... [true] | semmle.label | true | | patterns.cs:140:36:140:37 | Before { ... } | patterns.cs:140:36:140:37 | { ... } | semmle.label | successor | | patterns.cs:140:36:140:37 | { ... } | patterns.cs:140:36:140:37 | After { ... } | semmle.label | successor | diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 125372e5679..9d0b479518c 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -588,7 +588,7 @@ module Make0 Ast> { private string loopHeaderTag() { result = "[LoopHeader]" } - private string patternMatchTrueTag() { result = "[match-true]" } + private string patternMatchTrueTag() { result = "[MatchTrue]" } /** * Holds if an additional node tagged with `tag` should be created for From a2a4e8288ebc749ae1b2fa1a7f7c24b71f56f700 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 21 Apr 2026 11:14:05 +0200 Subject: [PATCH 171/208] C#: Deprecate ControlFlowElement.getAControlFlowNode and remove some splitting quantification. --- .../src/ModifiedFnvFunctionDetection.ql | 2 +- .../Cryptography/NonCryptographicHashes.qll | 6 ++--- .../ql/lib/semmle/code/csharp/Assignable.qll | 16 +++++--------- .../csharp/controlflow/ControlFlowElement.qll | 22 ++++++++++--------- .../semmle/code/csharp/controlflow/Guards.qll | 8 +++---- .../semmle/code/csharp/dataflow/Nullness.qll | 4 ++-- .../lib/semmle/code/csharp/dataflow/SSA.qll | 4 ++-- .../code/csharp/dataflow/SignAnalysis.qll | 12 ++++------ .../code/csharp/dataflow/internal/BaseSSA.qll | 6 ++--- .../dataflow/internal/DataFlowPrivate.qll | 22 +++++++++---------- .../code/csharp/dataflow/internal/SsaImpl.qll | 6 ++--- .../rangeanalysis/SignAnalysisSpecific.qll | 2 +- .../rangeanalysis/SsaReadPositionSpecific.qll | 4 +--- .../semmle/code/csharp/frameworks/Format.qll | 2 +- .../Concurrency/UnsynchronizedStaticAccess.ql | 2 +- csharp/ql/src/Dead Code/DeadStoreOfLocal.ql | 2 +- .../src/Likely Bugs/Statements/UseBraces.ql | 2 +- .../src/Likely Bugs/UncheckedCastInEquals.ql | 2 +- .../ql/src/Performance/StringBuilderInLoop.ql | 2 +- .../src/Useless code/DefaultToStringQuery.qll | 2 +- .../assignables/AssignableDefinitionNode.ql | 2 +- .../ql/test/library-tests/csharp7/IsFlow.ql | 2 +- .../dataflow/defuse/defUseEquivalence.ql | 6 ++--- .../defuse/parameterUseEquivalence.ql | 4 ++-- .../dataflow/defuse/useUseEquivalence.ql | 6 ++--- 25 files changed, 69 insertions(+), 79 deletions(-) diff --git a/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql b/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql index ed350932bd8..515bbbd91c6 100644 --- a/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql +++ b/csharp/ql/campaigns/Solorigate/src/ModifiedFnvFunctionDetection.ql @@ -19,7 +19,7 @@ from Variable v, Literal l, LoopStmt loop, Expr additional_xor where maybeUsedInFnvFunction(v, _, _, loop) and exists(BitwiseXorOperation xor2 | xor2.getAnOperand() = l and additional_xor = xor2 | - loopExitNode(loop).getASuccessor*() = xor2.getAControlFlowNode() and + loopExitNode(loop).getASuccessor*() = xor2.getControlFlowNode() and xor2.getAnOperand() = v.getAnAccess() ) select l, "This literal is used in an $@ after an FNV-like hash calculation with variable $@.", diff --git a/csharp/ql/lib/experimental/code/csharp/Cryptography/NonCryptographicHashes.qll b/csharp/ql/lib/experimental/code/csharp/Cryptography/NonCryptographicHashes.qll index b09251cf6e4..130e563a663 100644 --- a/csharp/ql/lib/experimental/code/csharp/Cryptography/NonCryptographicHashes.qll +++ b/csharp/ql/lib/experimental/code/csharp/Cryptography/NonCryptographicHashes.qll @@ -30,7 +30,7 @@ predicate maybeUsedInFnvFunction(Variable v, Operation xor, Operation mul, LoopS e2.getAChild*() = v.getAnAccess() and e1 = xor.getAnOperand() and e2 = mul.getAnOperand() and - xor.getAControlFlowNode().getASuccessor*() = mul.getAControlFlowNode() and + xor.getControlFlowNode().getASuccessor*() = mul.getControlFlowNode() and (xor instanceof AssignXorExpr or xor instanceof BitwiseXorExpr) and (mul instanceof AssignMulExpr or mul instanceof MulExpr) ) and @@ -55,11 +55,11 @@ private predicate maybeUsedInElfHashFunction(Variable v, Operation xor, Operatio v = addAssign.getTargetVariable() and addAssign.getAChild*() = add and (xor instanceof BitwiseXorExpr or xor instanceof AssignXorExpr) and - addAssign.getAControlFlowNode().getASuccessor*() = xor.getAControlFlowNode() and + addAssign.getControlFlowNode().getASuccessor*() = xor.getControlFlowNode() and xorAssign.getAChild*() = xor and v = xorAssign.getTargetVariable() and (notOp instanceof UnaryBitwiseOperation or notOp instanceof AssignBitwiseOperation) and - xor.getAControlFlowNode().getASuccessor*() = notOp.getAControlFlowNode() and + xor.getControlFlowNode().getASuccessor*() = notOp.getControlFlowNode() and notAssign.getAChild*() = notOp and v = notAssign.getTargetVariable() and loop.getAChild*() = add.getEnclosingStmt() and diff --git a/csharp/ql/lib/semmle/code/csharp/Assignable.qll b/csharp/ql/lib/semmle/code/csharp/Assignable.qll index 874e657cf08..af6861349d1 100644 --- a/csharp/ql/lib/semmle/code/csharp/Assignable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Assignable.qll @@ -86,7 +86,7 @@ class AssignableRead extends AssignableAccess { pragma[noinline] private ControlFlowNode getAnAdjacentReadSameVar() { - SsaImpl::adjacentReadPairSameVar(_, this.getAControlFlowNode(), result) + SsaImpl::adjacentReadPairSameVar(_, this.getControlFlowNode(), result) } /** @@ -114,11 +114,7 @@ class AssignableRead extends AssignableAccess { * - The read of `this.Field` on line 11 is next to the read on line 10. */ pragma[nomagic] - AssignableRead getANextRead() { - forex(ControlFlowNode cfn | cfn = result.getAControlFlowNode() | - cfn = this.getAnAdjacentReadSameVar() - ) - } + AssignableRead getANextRead() { result.getControlFlowNode() = this.getAnAdjacentReadSameVar() } } /** @@ -410,7 +406,7 @@ private import AssignableInternal */ class AssignableDefinition extends TAssignableDefinition { /** - * DEPRECATED: Use `this.getExpr().getAControlFlowNode()` instead. + * DEPRECATED: Use `this.getExpr().getControlFlowNode()` instead. * * Gets a control flow node that updates the targeted assignable when * reached. @@ -419,7 +415,7 @@ class AssignableDefinition extends TAssignableDefinition { * the definitions of `x` and `y` in `M(out x, out y)` and `(x, y) = (0, 1)` * relate to the same call to `M` and assignment node, respectively. */ - deprecated ControlFlowNode getAControlFlowNode() { result = this.getExpr().getAControlFlowNode() } + deprecated ControlFlowNode getAControlFlowNode() { result = this.getExpr().getControlFlowNode() } /** * Gets the underlying expression that updates the targeted assignable when @@ -492,7 +488,7 @@ class AssignableDefinition extends TAssignableDefinition { */ pragma[nomagic] AssignableRead getAFirstRead() { - forex(ControlFlowNode cfn | cfn = result.getAControlFlowNode() | + exists(ControlFlowNode cfn | cfn = result.getControlFlowNode() | exists(Ssa::ExplicitDefinition def | result = def.getAFirstReadAtNode(cfn) | this = def.getADefinition() ) @@ -572,7 +568,7 @@ module AssignableDefinitions { /** Holds if a node in basic block `bb` assigns to `ref` parameter `p` via definition `def`. */ private predicate basicBlockRefParamDef(BasicBlock bb, Parameter p, AssignableDefinition def) { def = any(RefArg arg).getAnAnalyzableRefDef(p) and - bb.getANode() = def.getExpr().getAControlFlowNode() + bb.getANode() = def.getExpr().getControlFlowNode() } /** diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index 8db76e71619..f2b459b63f7 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -16,9 +16,7 @@ class ControlFlowElementOrCallable extends ExprOrStmtParent, TControlFlowElement * an expression. * * A control flow element can be mapped to a control flow node (`ControlFlowNode`) - * via `getAControlFlowNode()`. There is a one-to-many relationship between - * control flow elements and control flow nodes. This allows control flow - * splitting, for example modeling the control flow through `finally` blocks. + * via `getControlFlowNode()`. */ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_element { /** Gets the enclosing callable of this element, if any. */ @@ -33,22 +31,26 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele } /** + * DEPRECATED: Use `getControlFlowNode()` instead. + * * Gets a control flow node for this element. That is, a node in the * control flow graph that corresponds to this element. */ - ControlFlowNodes::ElementNode getAControlFlowNode() { result = this.getControlFlowNode() } + deprecated ControlFlowNodes::ElementNode getAControlFlowNode() { + result = this.getControlFlowNode() + } /** Gets the control flow node for this element, if any. */ ControlFlowNode getControlFlowNode() { result.injects(this) } /** Gets the basic block in which this element occurs. */ - BasicBlock getBasicBlock() { result = this.getAControlFlowNode().getBasicBlock() } + BasicBlock getBasicBlock() { result = this.getControlFlowNode().getBasicBlock() } /** * Holds if this element is live, that is this element can be reached * from the entry point of its enclosing callable. */ - predicate isLive() { exists(this.getAControlFlowNode()) } + predicate isLive() { exists(this.getControlFlowNode()) } /** Holds if the current element is reachable from `src`. */ // potentially very large predicate, so must be inlined @@ -61,13 +63,13 @@ class ControlFlowElement extends ControlFlowElementOrCallable, @control_flow_ele ControlFlowElement getAReachableElement() { // Reachable in same basic block exists(BasicBlock bb, int i, int j | - bb.getNode(i) = this.getAControlFlowNode() and - bb.getNode(j) = result.getAControlFlowNode() and + bb.getNode(i) = this.getControlFlowNode() and + bb.getNode(j) = result.getControlFlowNode() and i < j ) or // Reachable in different basic blocks - this.getAControlFlowNode().getBasicBlock().getASuccessor+().getANode() = - result.getAControlFlowNode() + this.getControlFlowNode().getBasicBlock().getASuccessor+().getANode() = + result.getControlFlowNode() } } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 0b07e049fac..a97d8f9738e 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -1073,7 +1073,7 @@ module Internal { candidateAux(x, d, bb) and y = any(AccessOrCallExpr e | - e.getAControlFlowNode().getBasicBlock() = bb and + e.getControlFlowNode().getBasicBlock() = bb and e.getTarget() = d ) ) @@ -1109,7 +1109,7 @@ module Internal { AccessOrCallExpr sub, GuardValue v ) { Stages::GuardsStage::forceCachingInSameStage() and - guardedCfn = guarded.getAControlFlowNode() and + guardedCfn = guarded.getControlFlowNode() and guardedBB = guardedCfn.getBasicBlock() and guardControls(g, guardedBB, v) and guardControlsSubSame(g, guardedBB, sub) and @@ -1152,9 +1152,7 @@ module Internal { private predicate isGuardedByExpr0( AccessOrCallExpr guarded, Guard g, AccessOrCallExpr sub, GuardValue v ) { - forex(ControlFlowNode cfn | cfn = guarded.getAControlFlowNode() | - nodeIsGuardedBySameSubExpr(cfn, _, guarded, g, sub, v) - ) + nodeIsGuardedBySameSubExpr(guarded.getControlFlowNode(), _, guarded, g, sub, v) } cached diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index fa4a7fa50f8..d36fb68b915 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -259,7 +259,7 @@ private predicate defReaches(Ssa::Definition def, ControlFlowNode cfn) { or exists(ControlFlowNode mid | defReaches(def, mid) | SsaImpl::adjacentReadPairSameVar(_, mid, cfn) and - not mid = any(Dereference d | d.isAlwaysNull(def.getSourceVariable())).getAControlFlowNode() + not mid = any(Dereference d | d.isAlwaysNull(def.getSourceVariable())).getControlFlowNode() ) } @@ -384,6 +384,6 @@ class Dereference extends G::DereferenceableExpr { */ predicate isFirstAlwaysNull(Ssa::SourceVariable v) { this.isAlwaysNull(v) and - defReaches(v.getAnSsaDefinition(), this.getAControlFlowNode()) + defReaches(v.getAnSsaDefinition(), this.getControlFlowNode()) } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index 87710acd262..ae875e97c6d 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -308,7 +308,7 @@ module Ssa { */ final AssignableRead getAFirstReadAtNode(ControlFlowNode cfn) { SsaImpl::firstReadSameVar(this, cfn) and - result.getAControlFlowNode() = cfn + result.getControlFlowNode() = cfn } /** @@ -371,7 +371,7 @@ module Ssa { */ deprecated final AssignableRead getALastReadAtNode(ControlFlowNode cfn) { SsaImpl::lastReadSameVar(this, cfn) and - result.getAControlFlowNode() = cfn + result.getControlFlowNode() = cfn } /** diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll index e7d3590e0fd..e1d804e6548 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SignAnalysis.qll @@ -11,27 +11,23 @@ private import semmle.code.csharp.dataflow.internal.rangeanalysis.SignAnalysisCo /** Holds if `e` can be positive and cannot be negative. */ predicate positiveExpr(Expr e) { - forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | + exists(ControlFlowNode cfn | cfn = e.getControlFlowNode() | positive(cfn) or strictlyPositive(cfn) ) } /** Holds if `e` can be negative and cannot be positive. */ predicate negativeExpr(Expr e) { - forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | + exists(ControlFlowNode cfn | cfn = e.getControlFlowNode() | negative(cfn) or strictlyNegative(cfn) ) } /** Holds if `e` is strictly positive. */ -predicate strictlyPositiveExpr(Expr e) { - forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | strictlyPositive(cfn)) -} +predicate strictlyPositiveExpr(Expr e) { strictlyPositive(e.getControlFlowNode()) } /** Holds if `e` is strictly negative. */ -predicate strictlyNegativeExpr(Expr e) { - forex(ControlFlowNode cfn | cfn = e.getAControlFlowNode() | strictlyNegative(cfn)) -} +predicate strictlyNegativeExpr(Expr e) { strictlyNegative(e.getControlFlowNode()) } /** Holds if `e` can be positive and cannot be negative. */ predicate positive(ControlFlowNodes::ExprNode e) { Common::positive(e) } 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 3af93ee2945..4f37508f9a2 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -14,7 +14,7 @@ module BaseSsa { private predicate definitionAt( AssignableDefinition def, BasicBlock bb, int i, SsaInput::SourceVariable v ) { - bb.getNode(i) = def.getExpr().getAControlFlowNode() and + bb.getNode(i) = def.getExpr().getControlFlowNode() 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 | @@ -95,7 +95,7 @@ module BaseSsa { predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain) { exists(AssignableRead read | - read.getAControlFlowNode() = bb.getNode(i) and + read.getControlFlowNode() = bb.getNode(i) and read.getTarget() = v and certain = true ) @@ -108,7 +108,7 @@ module BaseSsa { final AssignableRead getARead() { exists(BasicBlock bb, int i | SsaImpl::ssaDefReachesRead(_, this, bb, i) and - result.getAControlFlowNode() = bb.getNode(i) + result.getControlFlowNode() = bb.getNode(i) ) } 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 00a0ca06ae3..5b3bf5f2dae 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -44,10 +44,10 @@ predicate isArgumentNode(ArgumentNode arg, DataFlowCall c, ArgumentPosition pos) private ControlFlowNode getAPrimaryConstructorParameterCfn(ParameterAccess pa) { pa.getTarget().getCallable() instanceof PrimaryConstructor and ( - result = pa.(ParameterRead).getAControlFlowNode() + result = pa.(ParameterRead).getControlFlowNode() or pa = - any(AssignableDefinition def | result = def.getExpr().getAControlFlowNode()).getTargetAccess() + any(AssignableDefinition def | result = def.getExpr().getControlFlowNode()).getTargetAccess() ) } @@ -339,7 +339,7 @@ module VariableCapture { VariableWrite() { def.getTarget() = v.asLocalScopeVariable() and - this = def.getExpr().getAControlFlowNode() + this = def.getExpr().getControlFlowNode() } ControlFlowNode getRhs() { LocalFlow::defAssigns(def, this, _, result) } @@ -552,7 +552,7 @@ module LocalFlow { ) { def.getSource() = value and valueCfn = value.getControlFlowNode() and - cfnDef = def.getExpr().getAControlFlowNode() + cfnDef = def.getExpr().getControlFlowNode() } private predicate defAssigns(ExprNode value, AssignableDefinitionNode defNode) { @@ -1012,7 +1012,7 @@ private module Cached { TExprNode(ControlFlowNodes::ElementNode cfn) { exists(cfn.asExpr()) } or TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or TAssignableDefinitionNode(AssignableDefinition def, ControlFlowNode cfn) { - cfn = def.getExpr().getAControlFlowNode() + cfn = def.getExpr().getControlFlowNode() } or TExplicitParameterNode(Parameter p, DataFlowCallable c) { p = c.asCallable(_).(CallableUsedInSource).getAParameter() @@ -1055,7 +1055,7 @@ private module Cached { // needed for reverse stores; e.g. `x.f1.f2 = y` induces // a store step of `f1` into `x` exists(TExprPostUpdateNode upd, Expr read | - upd = TExprPostUpdateNode(read.getAControlFlowNode()) + upd = TExprPostUpdateNode(read.getControlFlowNode()) | fieldOrPropertyRead(e, _, read) or @@ -1071,7 +1071,7 @@ private module Cached { sn.getSummarizedCallable() instanceof CallableUsedInSource } or TParamsArgumentNode(ControlFlowNode callCfn) { - callCfn = any(Call c | isParamsArg(c, _, _)).getAControlFlowNode() + callCfn = any(Call c | isParamsArg(c, _, _)).getControlFlowNode() } or TFlowInsensitiveFieldNode(FieldOrPropertyUsedInSource f) { f.isFieldLike() } or TFlowInsensitiveCapturedVariableNode(LocalScopeVariable v) { v.isCaptured() } or @@ -1533,7 +1533,7 @@ private module ArgumentNodes { ParamsArgumentNode() { this = TParamsArgumentNode(callCfn) } private Parameter getParameter() { - callCfn = any(Call c | isParamsArg(c, _, result)).getAControlFlowNode() + callCfn = any(Call c | isParamsArg(c, _, result)).getControlFlowNode() } override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { @@ -1619,7 +1619,7 @@ private module ReturnNodes { private ControlFlowNodes::ElementNode cfn; private YieldReturnStmt yrs; - YieldReturnNode() { this = TYieldReturnNode(cfn) and yrs.getExpr().getAControlFlowNode() = cfn } + YieldReturnNode() { this = TYieldReturnNode(cfn) and yrs.getExpr().getControlFlowNode() = cfn } YieldReturnStmt getYieldReturnStmt() { result = yrs } @@ -2534,7 +2534,7 @@ module PostUpdateNodes { class ObjectCreationNode extends SourcePostUpdateNode, ExprNode, TExprNode { private ObjectCreation oc; - ObjectCreationNode() { this = TExprNode(oc.getAControlFlowNode()) } + ObjectCreationNode() { this = TExprNode(oc.getControlFlowNode()) } override Node getPreUpdateSourceNode() { exists(ControlFlowNodes::ElementNode cfn | this = TExprNode(cfn) | @@ -2561,7 +2561,7 @@ module PostUpdateNodes { ObjectInitializerNode() { this = TObjectInitializerNode(cfn) and - cfn = oc.getAControlFlowNode() + cfn = oc.getControlFlowNode() } /** Gets the initializer to which this initializer node belongs. */ 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 d4842ba89cc..0a8a4680191 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -126,7 +126,7 @@ private module SourceVariableImpl { */ predicate variableDefinition(BasicBlock bb, int i, Ssa::SourceVariable v, AssignableDefinition ad) { ad = v.getADefinition() and - ad.getExpr().getAControlFlowNode() = bb.getNode(i) and + ad.getExpr().getControlFlowNode() = bb.getNode(i) and // In cases like `(x, x) = (0, 1)`, we discard the first (dead) definition of `x` not exists(TupleAssignmentDefinition first, TupleAssignmentDefinition second | first = ad | second.getAssignment() = first.getAssignment() and @@ -217,7 +217,7 @@ private module SourceVariableImpl { def.getTarget() = lv and lv.isRef() and lv = v.getAssignable() and - bb.getNode(i) = def.getExpr().getAControlFlowNode() and + bb.getNode(i) = def.getExpr().getControlFlowNode() and not def.getAssignment() instanceof LocalVariableDeclAndInitExpr ) } @@ -888,7 +888,7 @@ private module Cached { Impl::ssaDefReachesRead(v, def, bb, i) and variableReadActual(bb, i, v) and cfn = bb.getNode(i) and - result.getAControlFlowNode() = cfn + result.getControlFlowNode() = cfn ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll index 38d1b250618..f6dd4911256 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll @@ -254,7 +254,7 @@ private module Impl { Guard getComparisonGuard(ComparisonExpr ce) { result = ce.getExpr() } private newtype TComparisonExpr = - MkComparisonExpr(ComparisonTest ct, ExprNode e) { e = ct.getExpr().getAControlFlowNode() } + MkComparisonExpr(ComparisonTest ct, ExprNode e) { e = ct.getExpr().getControlFlowNode() } /** A relational comparison */ class ComparisonExpr extends MkComparisonExpr { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll index c5510952804..6da6ec8b11e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll @@ -12,9 +12,7 @@ class SsaPhiNode = CS::Ssa::PhiNode; class BasicBlock = CS::BasicBlock; /** Gets a basic block in which SSA variable `v` is read. */ -BasicBlock getAReadBasicBlock(SsaVariable v) { - result = v.getARead().getAControlFlowNode().getBasicBlock() -} +BasicBlock getAReadBasicBlock(SsaVariable v) { result = v.getARead().getBasicBlock() } private class PhiInputEdgeBlock extends BasicBlock { PhiInputEdgeBlock() { this = any(SsaReadPositionPhiInputEdge edge).getOrigBlock() } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll index b00459c64b0..d191f62aa92 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll @@ -126,7 +126,7 @@ private class SystemDiagnosticsFormatMethods extends FormatMethodImpl { pragma[nomagic] private predicate parameterReadPostDominatesEntry(ParameterRead pr) { - pr.getAControlFlowNode().postDominates(pr.getEnclosingCallable().getEntryPoint()) and + pr.getControlFlowNode().postDominates(pr.getEnclosingCallable().getEntryPoint()) and getParameterType(pr.getTarget()) instanceof ObjectType } diff --git a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql index bcb134a4e73..340663c6701 100644 --- a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql +++ b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql @@ -22,7 +22,7 @@ predicate correctlySynchronized(CollectionMember c, Expr access) { ( c.getType().(ValueOrRefType).getABaseType*().getName().matches("Concurrent%") or access.getEnclosingStmt().getParent*() instanceof LockStmt or - any(LockingCall call).getAControlFlowNode().getASuccessor+() = access.getAControlFlowNode() + any(LockingCall call).getControlFlowNode().getASuccessor+() = access.getControlFlowNode() ) } diff --git a/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql b/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql index 59816a18b3f..12baac99c78 100644 --- a/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql +++ b/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql @@ -131,7 +131,7 @@ class RelevantDefinition extends AssignableDefinition { /** Holds if this definition is dead and we want to report it. */ predicate isDead() { // Ensure that the definition is not in dead code - exists(this.getExpr().getAControlFlowNode()) and + exists(this.getExpr().getControlFlowNode()) and not this.isMaybeLive() and // Allow dead initializer assignments, such as `string s = string.Empty`, but only // if the initializer expression assigns a default-like value, and there exists another diff --git a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql index bef3fabd296..39f0bfddf6a 100644 --- a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql +++ b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql @@ -23,7 +23,7 @@ Stmt findSuccessorStmt(ControlFlowNode n) { // Return a successor statement to s Stmt getASuccessorStmt(Stmt s) { - result = findSuccessorStmt(s.getAControlFlowNode().getASuccessor()) + result = findSuccessorStmt(s.getControlFlowNode().getASuccessor()) } class IfThenStmt extends IfStmt { diff --git a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql index 0b59ea92824..0b87b12041a 100644 --- a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql +++ b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql @@ -30,5 +30,5 @@ from ParameterAccess access, CastExpr cast where access = cast.getAChild() and access.getTarget().getDeclaringElement() = access.getEnclosingCallable() and - nodeBeforeParameterAccess(access.getAControlFlowNode()) + nodeBeforeParameterAccess(access.getControlFlowNode()) select cast, "Equals() method does not check argument type." diff --git a/csharp/ql/src/Performance/StringBuilderInLoop.ql b/csharp/ql/src/Performance/StringBuilderInLoop.ql index f2a13923478..1f7e24988ce 100644 --- a/csharp/ql/src/Performance/StringBuilderInLoop.ql +++ b/csharp/ql/src/Performance/StringBuilderInLoop.ql @@ -18,5 +18,5 @@ where creation.getType() instanceof SystemTextStringBuilderClass and loopEntryNode.isBefore(loop.getBody()) and loop.getBody().getAChild*() = creation and - creation.getAControlFlowNode().postDominates(loopEntryNode) + creation.getControlFlowNode().postDominates(loopEntryNode) select creation, "Creating a 'StringBuilder' in a loop." diff --git a/csharp/ql/src/Useless code/DefaultToStringQuery.qll b/csharp/ql/src/Useless code/DefaultToStringQuery.qll index 411ca47b5e6..cd7a1419028 100644 --- a/csharp/ql/src/Useless code/DefaultToStringQuery.qll +++ b/csharp/ql/src/Useless code/DefaultToStringQuery.qll @@ -30,7 +30,7 @@ predicate invokesToString(Expr e, ValueOrRefType t) { pragma[nomagic] private predicate parameterReadPostDominatesEntry(ParameterRead pr) { - pr.getAControlFlowNode().postDominates(pr.getEnclosingCallable().getEntryPoint()) + pr.getControlFlowNode().postDominates(pr.getEnclosingCallable().getEntryPoint()) } pragma[nomagic] diff --git a/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.ql b/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.ql index 8ff3aad95fc..2e4af6cfe9b 100644 --- a/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.ql +++ b/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.ql @@ -1,4 +1,4 @@ import csharp from AssignableDefinition def -select def, def.getExpr().getAControlFlowNode() +select def, def.getExpr().getControlFlowNode() diff --git a/csharp/ql/test/library-tests/csharp7/IsFlow.ql b/csharp/ql/test/library-tests/csharp7/IsFlow.ql index ccd51760504..0567ea5828f 100644 --- a/csharp/ql/test/library-tests/csharp7/IsFlow.ql +++ b/csharp/ql/test/library-tests/csharp7/IsFlow.ql @@ -2,7 +2,7 @@ import csharp query predicate edges(ControlFlowNode n1, ControlFlowNode n2, string attr, string val) { exists(SwitchStmt switch, ControlFlow::SuccessorType t | - switch.getAControlFlowNode().getASuccessor*() = n1 + switch.getControlFlowNode().getASuccessor*() = n1 | n2 = n1.getASuccessor(t) and attr = "semmle.label" and diff --git a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql index 19037a80e6c..abac840ab10 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql @@ -5,20 +5,20 @@ private import semmle.code.csharp.dataflow.internal.BaseSSA predicate defReaches( AssignableDefinition def, BaseSsa::SimpleLocalScopeVariable v, ControlFlowNode cfn ) { - def.getTarget() = v and cfn = def.getExpr().getAControlFlowNode().getASuccessor() + def.getTarget() = v and cfn = def.getExpr().getControlFlowNode().getASuccessor() or exists(ControlFlowNode mid | defReaches(def, v, mid) | not mid = any(AssignableDefinition ad | ad.getTarget() = v and ad.isCertain()) .getExpr() - .getAControlFlowNode() and + .getControlFlowNode() and cfn = mid.getASuccessor() ) } predicate defUsePair(AssignableDefinition def, AssignableRead read) { exists(Assignable a | - defReaches(def, a, read.getAControlFlowNode()) and + defReaches(def, a, read.getControlFlowNode()) and read.getTarget() = a ) } diff --git a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql index abb84e3741c..e4216f89942 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql @@ -10,13 +10,13 @@ predicate parameterReaches(Parameter p, ControlFlowNode cfn) { not mid = any(AssignableDefinition ad | ad.getTarget() = p and ad.isCertain()) .getExpr() - .getAControlFlowNode() and + .getControlFlowNode() and cfn = mid.getASuccessor() ) } predicate parameterUsePair(Parameter p, AssignableRead read) { - parameterReaches(p, read.getAControlFlowNode()) and + parameterReaches(p, read.getControlFlowNode()) and read.getTarget() = p } diff --git a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql index 4c189ca0274..bc3d6d422a6 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql @@ -5,20 +5,20 @@ private import semmle.code.csharp.dataflow.internal.BaseSSA predicate useReaches( LocalScopeVariableRead read, BaseSsa::SimpleLocalScopeVariable v, ControlFlowNode cfn ) { - read.getTarget() = v and cfn = read.getAControlFlowNode().getASuccessor() + read.getTarget() = v and cfn = read.getControlFlowNode().getASuccessor() or exists(ControlFlowNode mid | useReaches(read, v, mid) | not mid = any(AssignableDefinition ad | ad.getTarget() = v and ad.isCertain()) .getExpr() - .getAControlFlowNode() and + .getControlFlowNode() and cfn = mid.getASuccessor() ) } predicate useUsePair(LocalScopeVariableRead read1, LocalScopeVariableRead read2) { exists(Assignable a | - useReaches(read1, a, read2.getAControlFlowNode()) and + useReaches(read1, a, read2.getControlFlowNode()) and read2.getTarget() = a ) } From 67c0515d3c39d98378d43ef0183277b52532908e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 21 Apr 2026 13:10:03 +0200 Subject: [PATCH 172/208] Cfg: Undo consistency check change. --- shared/controlflow/codeql/controlflow/ControlFlowGraph.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 9d0b479518c..0e61884b437 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -1990,7 +1990,7 @@ module Make0 Ast> { /** Holds if `n` does not have a unique enclosing callable. */ query predicate nonUniqueEnclosingCallable(AstNode n, int callables) { - callables = count(getEnclosingCallable(n)) and callables != 1 + callables = strictcount(getEnclosingCallable(n)) and callables > 1 } /** From 0062eb12099f09ebd67837b41343037c542a8605 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 30 Mar 2026 11:24:55 +0200 Subject: [PATCH 173/208] C#: Update remote flow sources test to also report tainted members. --- .../dataflow/flowsources/remote/remoteFlowSource.expected | 2 ++ .../dataflow/flowsources/remote/remoteFlowSource.ql | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected index f5f541d73d5..d115e08c863 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected @@ -1,3 +1,5 @@ +remoteFlowSourceMembers +remoteFlowSources | Controller.cs:11:43:11:52 | sampleData | ASP.NET MVC action method parameter | | Controller.cs:11:62:11:66 | taint | ASP.NET MVC action method parameter | | Controller.cs:16:43:16:52 | sampleData | ASP.NET MVC action method parameter | diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.ql b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.ql index fdea5323d5c..f6d87eb9ff4 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.ql +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.ql @@ -1,5 +1,7 @@ import semmle.code.csharp.security.dataflow.flowsources.Remote -from RemoteFlowSource source -where source.getLocation().getFile().fromSource() -select source, source.getSourceType() +query predicate remoteFlowSourceMembers(TaintTracking::TaintedMember m) { m.fromSource() } + +query predicate remoteFlowSources(RemoteFlowSource source, string type) { + source.getLocation().getFile().fromSource() and type = source.getSourceType() +} From 77da545ab439c46924495c14088660956f25dd9e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 30 Mar 2026 12:53:17 +0200 Subject: [PATCH 174/208] C#: Reclassify some sources as AspNetRemoteFlowSource. --- .../code/csharp/security/dataflow/flowsources/Remote.qll | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll index 2906fde4e1d..e2ec595cd6d 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll @@ -104,7 +104,7 @@ class WcfRemoteFlowSource extends RemoteFlowSource, DataFlow::ParameterNode { } /** A data flow source of remote user input (ASP.NET web service). */ -class AspNetServiceRemoteFlowSource extends RemoteFlowSource, DataFlow::ParameterNode { +class AspNetServiceRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::ParameterNode { AspNetServiceRemoteFlowSource() { exists(Method m | m.getAParameter() = this.getParameter() and @@ -116,7 +116,8 @@ class AspNetServiceRemoteFlowSource extends RemoteFlowSource, DataFlow::Paramete } /** A data flow source of remote user input (ASP.NET request message). */ -class SystemNetHttpRequestMessageRemoteFlowSource extends RemoteFlowSource, DataFlow::ExprNode { +class SystemNetHttpRequestMessageRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::ExprNode +{ SystemNetHttpRequestMessageRemoteFlowSource() { this.getType() instanceof SystemWebHttpRequestMessageClass } @@ -166,7 +167,7 @@ class MicrosoftOwinRequestRemoteFlowSource extends RemoteFlowSource, DataFlow::E } /** A parameter to an Mvc controller action method, viewed as a source of remote user input. */ -class ActionMethodParameter extends RemoteFlowSource, DataFlow::ParameterNode { +class ActionMethodParameter extends AspNetRemoteFlowSource, DataFlow::ParameterNode { ActionMethodParameter() { exists(Parameter p | p = this.getParameter() and From dba1b7539f48b298e28616c03a50bf03f1990795 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 30 Mar 2026 14:48:41 +0200 Subject: [PATCH 175/208] C#: Taint members of types used in ASP.NET remote flow source context. --- .../security/dataflow/flowsources/Remote.qll | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll index e2ec595cd6d..2aa18c0d2a8 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll @@ -115,6 +115,40 @@ class AspNetServiceRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::Pa override string getSourceType() { result = "ASP.NET web service input" } } +/** + * Taint members (transitively) on types used in + * 1. Action method parameters. + * 2. WebMethod parameters. + * + * Note, that this also impacts uses of such types in other contexts. + */ +private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember { + AspNetRemoteFlowSourceMember() { + exists(Type t, Type t0 | t = this.getDeclaringType() | + (t = t0 or t = t0.(ArrayType).getElementType()) and + ( + t0 = any(AspNetRemoteFlowSourceMember m).getType() + or + t0 = any(ActionMethodParameter p).getType() + or + t0 = any(AspNetServiceRemoteFlowSource source).getType() + ) + ) and + this.isPublic() and + not this.isStatic() and + ( + this = + any(Property p | + p.isAutoImplemented() and + p.getGetter().isPublic() and + p.getSetter().isPublic() + ) + or + this = any(Field f | f.isPublic()) + ) + } +} + /** A data flow source of remote user input (ASP.NET request message). */ class SystemNetHttpRequestMessageRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::ExprNode { From 921d93e42707eef0b7a88544b93e6c070843d871 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 30 Mar 2026 12:44:07 +0200 Subject: [PATCH 176/208] C#: Add an ASP.NET flow source example when using the WebMethod attribute. --- .../flowsources/remote/RemoteFlowSource.cs | 48 +++++++++++++++++++ .../remote/remoteFlowSource.expected | 10 ++++ csharp/ql/test/resources/stubs/System.Web.cs | 5 ++ 3 files changed, 63 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs b/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs index 5889183f525..3c7cbcba04a 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs @@ -54,3 +54,51 @@ namespace RemoteFlowSource } } } + +namespace AspRemoteFlowSource +{ + using System.Web.Services; + + public class MySubData + { + public string SubDataProp { get; set; } + } + + public class MyElementSubData + { + public string ElementSubDataProp { get; set; } + } + + public class MyData + { + public string DataField; + public string DataProp { get; set; } + public MySubData SubData { get; set; } + public MyElementSubData[] Elements { get; set; } + } + + public class MyDataElement + { + public string Prop { get; set; } + } + + + public class MyService + { + [WebMethod] + public void MyMethod(MyData data) + { + Use(data.DataProp); + Use(data.SubData.SubDataProp); + Use(data.Elements[0].ElementSubDataProp); + } + + [WebMethod] + public void MyMethod2(MyDataElement[] data) + { + Use(data[0].Prop); + } + + public static void Use(object o) { } + } +} diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected index d115e08c863..ef70ca9ad93 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected @@ -1,4 +1,12 @@ remoteFlowSourceMembers +| Controller.cs:6:19:6:25 | Tainted | +| RemoteFlowSource.cs:64:23:64:33 | SubDataProp | +| RemoteFlowSource.cs:69:23:69:40 | ElementSubDataProp | +| RemoteFlowSource.cs:74:23:74:31 | DataField | +| RemoteFlowSource.cs:75:23:75:30 | DataProp | +| RemoteFlowSource.cs:76:26:76:32 | SubData | +| RemoteFlowSource.cs:77:35:77:42 | Elements | +| RemoteFlowSource.cs:82:23:82:26 | Prop | remoteFlowSources | Controller.cs:11:43:11:52 | sampleData | ASP.NET MVC action method parameter | | Controller.cs:11:62:11:66 | taint | ASP.NET MVC action method parameter | @@ -12,3 +20,5 @@ remoteFlowSources | RemoteFlowSource.cs:45:17:45:23 | access to parameter request | ASP.NET query string | | RemoteFlowSource.cs:45:17:45:42 | access to property RawUrl | ASP.NET unvalidated request data | | RemoteFlowSource.cs:52:55:52:61 | [post] access to local variable segment | external | +| RemoteFlowSource.cs:89:37:89:40 | data | ASP.NET web service input | +| RemoteFlowSource.cs:97:47:97:50 | data | ASP.NET web service input | diff --git a/csharp/ql/test/resources/stubs/System.Web.cs b/csharp/ql/test/resources/stubs/System.Web.cs index c15b871095f..23ae0f298cf 100644 --- a/csharp/ql/test/resources/stubs/System.Web.cs +++ b/csharp/ql/test/resources/stubs/System.Web.cs @@ -454,3 +454,8 @@ namespace System.Web.Script.Serialization public SimpleTypeResolver() => throw null; } } + +namespace System.Web.Services +{ + public class WebMethodAttribute : Attribute { } +} From 8060d2ff24a9aa9ef0cc771c5e906dfba3e62f02 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 1 Apr 2026 11:06:15 +0200 Subject: [PATCH 177/208] C#: Streamline the implementation for ASP.NET Core tainted members. --- .../security/dataflow/flowsources/Remote.qll | 63 +++++++++++-------- .../aspremote/AspRemoteFlowSource.cs | 2 +- .../aspremote/aspRemoteFlowSource.expected | 1 + 3 files changed, 39 insertions(+), 27 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll index 2aa18c0d2a8..4fab2e8f548 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll @@ -115,25 +115,8 @@ class AspNetServiceRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::Pa override string getSourceType() { result = "ASP.NET web service input" } } -/** - * Taint members (transitively) on types used in - * 1. Action method parameters. - * 2. WebMethod parameters. - * - * Note, that this also impacts uses of such types in other contexts. - */ -private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember { - AspNetRemoteFlowSourceMember() { - exists(Type t, Type t0 | t = this.getDeclaringType() | - (t = t0 or t = t0.(ArrayType).getElementType()) and - ( - t0 = any(AspNetRemoteFlowSourceMember m).getType() - or - t0 = any(ActionMethodParameter p).getType() - or - t0 = any(AspNetServiceRemoteFlowSource source).getType() - ) - ) and +private class CandidateMembersToTaint extends Member { + CandidateMembersToTaint() { this.isPublic() and not this.isStatic() and ( @@ -149,6 +132,30 @@ private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember } } +/** + * Taint members (transitively) on types used in + * 1. Action method parameters. + * 2. WebMethod parameters. + * + * Note, that this also impacts uses of such types in other contexts. + */ +private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember, + CandidateMembersToTaint +{ + AspNetRemoteFlowSourceMember() { + exists(Type t, Type t0 | t = this.getDeclaringType() | + (t = t0 or t = t0.(ArrayType).getElementType()) and + ( + t0 = any(AspNetRemoteFlowSourceMember m).getType() + or + t0 = any(ActionMethodParameter p).getType() + or + t0 = any(AspNetServiceRemoteFlowSource source).getType() + ) + ) + } +} + /** A data flow source of remote user input (ASP.NET request message). */ class SystemNetHttpRequestMessageRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::ExprNode { @@ -253,14 +260,18 @@ class AspNetCoreRoutingMethodParameter extends AspNetCoreRemoteFlowSource, DataF * Flow is defined from any ASP.NET Core remote source object to any of its member * properties. */ -private class AspNetCoreRemoteFlowSourceMember extends TaintTracking::TaintedMember, Property { +private class AspNetCoreRemoteFlowSourceMember extends TaintTracking::TaintedMember, + CandidateMembersToTaint +{ AspNetCoreRemoteFlowSourceMember() { - this.getDeclaringType() = any(AspNetCoreRemoteFlowSource source).getType() and - this.isPublic() and - not this.isStatic() and - this.isAutoImplemented() and - this.getGetter().isPublic() and - this.getSetter().isPublic() + exists(Type t, Type t0 | t = this.getDeclaringType() | + (t = t0 or t = t0.(ArrayType).getElementType()) and + ( + t0 = any(AspNetCoreRemoteFlowSourceMember m).getType() + or + t0 = any(AspNetCoreRemoteFlowSource m).getType() + ) + ) } } diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/AspRemoteFlowSource.cs b/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/AspRemoteFlowSource.cs index 176f95e4a89..e554f25f206 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/AspRemoteFlowSource.cs +++ b/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/AspRemoteFlowSource.cs @@ -8,7 +8,7 @@ namespace Testing public class ViewModel { public string RequestId { get; set; } // Considered tainted. - public object RequestIdField; // Not considered tainted as it is a field. + public object RequestIdField; // Considered tainted. public string RequestIdOnlyGet { get; } // Not considered tainted as there is no setter. public string RequestIdPrivateSet { get; private set; } // Not considered tainted as it has a private setter. public static object RequestIdStatic { get; set; } // Not considered tainted as it is static. diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/aspRemoteFlowSource.expected b/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/aspRemoteFlowSource.expected index a7442a80839..d729eb939d2 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/aspRemoteFlowSource.expected +++ b/csharp/ql/test/library-tests/dataflow/flowsources/aspremote/aspRemoteFlowSource.expected @@ -1,5 +1,6 @@ remoteFlowSourceMembers | AspRemoteFlowSource.cs:10:23:10:31 | RequestId | +| AspRemoteFlowSource.cs:11:23:11:36 | RequestIdField | | AspRemoteFlowSource.cs:28:23:28:29 | Tainted | remoteFlowSources | AspRemoteFlowSource.cs:20:42:20:50 | viewModel | From dc0e7d4988e08f611906a059635ad6b6f2fc9144 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 1 Apr 2026 11:23:12 +0200 Subject: [PATCH 178/208] C#: Add change-note. --- csharp/ql/lib/change-notes/2026-04-01-asp-remote-sources.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2026-04-01-asp-remote-sources.md diff --git a/csharp/ql/lib/change-notes/2026-04-01-asp-remote-sources.md b/csharp/ql/lib/change-notes/2026-04-01-asp-remote-sources.md new file mode 100644 index 00000000000..52f3f721e9f --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-04-01-asp-remote-sources.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Expanded ASP and ASP.NET remote source modeling to cover additional sources, including fields of tainted parameters as well as properties and fields that become tainted transitively. From 105508430587e29281bd893e2a86728b6c6781c1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 1 Apr 2026 13:23:06 +0200 Subject: [PATCH 179/208] C#: Address review comments. --- .../semmle/code/csharp/security/dataflow/flowsources/Remote.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll index 4fab2e8f548..2a74c7844b1 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll @@ -137,7 +137,7 @@ private class CandidateMembersToTaint extends Member { * 1. Action method parameters. * 2. WebMethod parameters. * - * Note, that this also impacts uses of such types in other contexts. + * Note that this also impacts uses of such types in other contexts. */ private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember, CandidateMembersToTaint From f826262f1d1e0be30bab3ebd895d3fc38da15c6d Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Apr 2026 13:36:43 +0200 Subject: [PATCH 180/208] C#: Re-factor CollectionType into an abstract class and introduce getElementType predicate. --- .../code/csharp/commons/Collections.qll | 47 ++++++++++++++----- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Collections.qll b/csharp/ql/lib/semmle/code/csharp/commons/Collections.qll index b33c0f73d60..c0752a720b2 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Collections.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Collections.qll @@ -54,21 +54,44 @@ private string genericCollectionTypeName() { ] } -/** A collection type. */ -class CollectionType extends RefType { - CollectionType() { - exists(RefType base | base = this.getABaseType*() | - base.hasFullyQualifiedName(collectionNamespaceName(), collectionTypeName()) - or - base.(ConstructedType) - .getUnboundGeneric() - .hasFullyQualifiedName(genericCollectionNamespaceName(), genericCollectionTypeName()) - ) - or - this instanceof ArrayType +/** A collection type */ +abstract private class CollectionTypeImpl extends RefType { + /** + * Gets the element type of this collection, for example `int` in `List`. + */ + abstract Type getElementType(); +} + +private class GenericCollectionType extends CollectionTypeImpl { + private ConstructedType base; + + GenericCollectionType() { + base = this.getABaseType*() and + base.getUnboundGeneric() + .hasFullyQualifiedName(genericCollectionNamespaceName(), genericCollectionTypeName()) + } + + override Type getElementType() { + result = base.getTypeArgument(0) and base.getNumberOfTypeArguments() = 1 } } +private class NonGenericCollectionType extends CollectionTypeImpl { + NonGenericCollectionType() { + exists(RefType base | base = this.getABaseType*() | + base.hasFullyQualifiedName(collectionNamespaceName(), collectionTypeName()) + ) + } + + override Type getElementType() { none() } +} + +private class ArrayCollectionType extends CollectionTypeImpl instanceof ArrayType { + override Type getElementType() { result = ArrayType.super.getElementType() } +} + +final class CollectionType = CollectionTypeImpl; + /** * A collection type that can be used as a `params` parameter type. */ From 2d6197fd7da9e534ea8eccb6462945915405b672 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Apr 2026 14:06:36 +0200 Subject: [PATCH 181/208] C#: Generalize ASP.NET taint members to collection types. --- .../csharp/security/dataflow/flowsources/Remote.qll | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll index 2a74c7844b1..aa8c8536556 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Remote.qll @@ -3,6 +3,7 @@ */ import csharp +private import semmle.code.csharp.commons.Collections private import semmle.code.csharp.frameworks.system.Net private import semmle.code.csharp.frameworks.system.Web private import semmle.code.csharp.frameworks.system.web.Http @@ -115,8 +116,8 @@ class AspNetServiceRemoteFlowSource extends AspNetRemoteFlowSource, DataFlow::Pa override string getSourceType() { result = "ASP.NET web service input" } } -private class CandidateMembersToTaint extends Member { - CandidateMembersToTaint() { +private class CandidateMemberToTaint extends Member { + CandidateMemberToTaint() { this.isPublic() and not this.isStatic() and ( @@ -140,11 +141,11 @@ private class CandidateMembersToTaint extends Member { * Note that this also impacts uses of such types in other contexts. */ private class AspNetRemoteFlowSourceMember extends TaintTracking::TaintedMember, - CandidateMembersToTaint + CandidateMemberToTaint { AspNetRemoteFlowSourceMember() { exists(Type t, Type t0 | t = this.getDeclaringType() | - (t = t0 or t = t0.(ArrayType).getElementType()) and + (t = t0 or t = t0.(CollectionType).getElementType()) and ( t0 = any(AspNetRemoteFlowSourceMember m).getType() or @@ -261,11 +262,11 @@ class AspNetCoreRoutingMethodParameter extends AspNetCoreRemoteFlowSource, DataF * properties. */ private class AspNetCoreRemoteFlowSourceMember extends TaintTracking::TaintedMember, - CandidateMembersToTaint + CandidateMemberToTaint { AspNetCoreRemoteFlowSourceMember() { exists(Type t, Type t0 | t = this.getDeclaringType() | - (t = t0 or t = t0.(ArrayType).getElementType()) and + (t = t0 or t = t0.(CollectionType).getElementType()) and ( t0 = any(AspNetCoreRemoteFlowSourceMember m).getType() or From 8b93ce274707c2ddcd83d348c3ee82cb8dfaf02f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 21 Apr 2026 14:07:22 +0200 Subject: [PATCH 182/208] C#: Add ASP.NET test case for a collection type. --- .../flowsources/remote/RemoteFlowSource.cs | 16 +++++++++++---- .../remote/remoteFlowSource.expected | 20 ++++++++++--------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs b/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs index 3c7cbcba04a..d54a359aca0 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs @@ -58,15 +58,21 @@ namespace RemoteFlowSource namespace AspRemoteFlowSource { using System.Web.Services; + using System.Collections.Generic; public class MySubData { public string SubDataProp { get; set; } } - public class MyElementSubData + public class ArrayElementData { - public string ElementSubDataProp { get; set; } + public string ArrayElementDataProp { get; set; } + } + + public class ListElementData + { + public string ListElementDataProp { get; set; } } public class MyData @@ -74,7 +80,8 @@ namespace AspRemoteFlowSource public string DataField; public string DataProp { get; set; } public MySubData SubData { get; set; } - public MyElementSubData[] Elements { get; set; } + public ArrayElementData[] Elements { get; set; } + public List List; } public class MyDataElement @@ -90,7 +97,8 @@ namespace AspRemoteFlowSource { Use(data.DataProp); Use(data.SubData.SubDataProp); - Use(data.Elements[0].ElementSubDataProp); + Use(data.Elements[0].ArrayElementDataProp); + Use(data.List[0].ListElementDataProp); } [WebMethod] diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected index ef70ca9ad93..242080e6bda 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected @@ -1,12 +1,14 @@ remoteFlowSourceMembers | Controller.cs:6:19:6:25 | Tainted | -| RemoteFlowSource.cs:64:23:64:33 | SubDataProp | -| RemoteFlowSource.cs:69:23:69:40 | ElementSubDataProp | -| RemoteFlowSource.cs:74:23:74:31 | DataField | -| RemoteFlowSource.cs:75:23:75:30 | DataProp | -| RemoteFlowSource.cs:76:26:76:32 | SubData | -| RemoteFlowSource.cs:77:35:77:42 | Elements | -| RemoteFlowSource.cs:82:23:82:26 | Prop | +| RemoteFlowSource.cs:65:23:65:33 | SubDataProp | +| RemoteFlowSource.cs:70:23:70:42 | ArrayElementDataProp | +| RemoteFlowSource.cs:75:23:75:41 | ListElementDataProp | +| RemoteFlowSource.cs:80:23:80:31 | DataField | +| RemoteFlowSource.cs:81:23:81:30 | DataProp | +| RemoteFlowSource.cs:82:26:82:32 | SubData | +| RemoteFlowSource.cs:83:35:83:42 | Elements | +| RemoteFlowSource.cs:84:38:84:41 | List | +| RemoteFlowSource.cs:89:23:89:26 | Prop | remoteFlowSources | Controller.cs:11:43:11:52 | sampleData | ASP.NET MVC action method parameter | | Controller.cs:11:62:11:66 | taint | ASP.NET MVC action method parameter | @@ -20,5 +22,5 @@ remoteFlowSources | RemoteFlowSource.cs:45:17:45:23 | access to parameter request | ASP.NET query string | | RemoteFlowSource.cs:45:17:45:42 | access to property RawUrl | ASP.NET unvalidated request data | | RemoteFlowSource.cs:52:55:52:61 | [post] access to local variable segment | external | -| RemoteFlowSource.cs:89:37:89:40 | data | ASP.NET web service input | -| RemoteFlowSource.cs:97:47:97:50 | data | ASP.NET web service input | +| RemoteFlowSource.cs:96:37:96:40 | data | ASP.NET web service input | +| RemoteFlowSource.cs:105:47:105:50 | data | ASP.NET web service input | From 91f9f23138b1133150d62df207148a95994aa5cd Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 21 Apr 2026 14:52:10 +0100 Subject: [PATCH 183/208] Fix wrong function name --- .../customizing-library-models-for-go.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index 2eb9446459f..f8f576b16b1 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -223,7 +223,7 @@ The first five values identify the function to be modeled as a summary. - The first value ``slices`` is the package name. - The second value ``""`` is left blank, since the function is not a method of a type. - The third value ``False`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. -- The fourth value ``Max`` is the function name. +- The fourth value ``Concat`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. From 424b7decb1fcab22b300990eedd45108ed95cc00 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 21 Apr 2026 14:52:22 +0100 Subject: [PATCH 184/208] Fix wrong parameter name --- .../customizing-library-models-for-java-and-kotlin.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 203213b9425..608235636f1 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -63,8 +63,8 @@ The CodeQL library for Java and Kotlin analysis exposes the following extensible - ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data maybe used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. -- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. -- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. +- ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) override generated summary models (those with a provenance such as ``df-generated``) so that the summary will be ignored. Other than that, neutral models have a slight impact on the dataflow dispatch logic, which is out of scope for this documentation. The extensible predicates are populated using the models defined in data extension files. From 3a13f770584c4325e8ffb1fca22b5ca03d3c1837 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 21 Apr 2026 14:52:48 +0100 Subject: [PATCH 185/208] Fix typo "passd" -> "passed" --- .../customizing-library-models-for-javascript.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index a0702289cef..77ea678f546 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -381,7 +381,7 @@ We need to add a tuple to the ``sourceModel(type, path, kind)`` extensible predi - The first column, ``"@example/middleware"``, begins the search at imports of the hypothetical NPM package ``@example/middleware``. - ``Member[injectData]`` selects accesses to the ``injectData`` member. - ``ReturnValue`` selects the return value of the call to ``injectData``. -- ``GuardedRouteHandler`` interprets the current value as a middleware function and selects all route handlers guarded by that middleware. Since the current value is passd to ``app.use()``, the callback subsequently passed to ``app.get()`` is seen as a guarded route handler. +- ``GuardedRouteHandler`` interprets the current value as a middleware function and selects all route handlers guarded by that middleware. Since the current value is passed to ``app.use()``, the callback subsequently passed to ``app.get()`` is seen as a guarded route handler. - ``Parameter[0]`` selects the first parameter of the callback (the parameter named ``req``). - ``Member[data]`` selects accesses to the ``data`` property of the ``req`` object. - Finally, the kind ``remote`` indicates that this is considered a source of remote flow. From b47afafe8e681717f5631461df9268a5eb421509 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 21 Apr 2026 14:53:11 +0100 Subject: [PATCH 186/208] Fix duplicated quotation mark --- .../customizing-library-models-for-ruby.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index db041a52151..beccf82327f 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -56,7 +56,7 @@ We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predica - The first column, ``"TTY::Command"``, identifies a set of values from which to begin the search for the sink. - The string ``"TTY::Command""`` means we start at the places where the codebase constructs instances of the class ``TTY::Command``. + The string ``"TTY::Command"`` means we start at the places where the codebase constructs instances of the class ``TTY::Command``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - ``Method[run]`` selects calls to the ``run`` method of the ``TTY::Command`` class. From 145d3242a6858d0a6ceea4570a9357c5fb70db94 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 16 Apr 2026 13:30:47 +0200 Subject: [PATCH 187/208] C#: Instantiate shared SSA wrappers for BaseSSA. --- .../code/csharp/dataflow/internal/BaseSSA.qll | 50 +++++++++++++++---- 1 file changed, 40 insertions(+), 10 deletions(-) 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 4f37508f9a2..629cc8f7b1c 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -12,7 +12,7 @@ module BaseSsa { * targeting local scope variable `v`. */ private predicate definitionAt( - AssignableDefinition def, BasicBlock bb, int i, SsaInput::SourceVariable v + AssignableDefinition def, BasicBlock bb, int i, SsaImplInput::SourceVariable v ) { bb.getNode(i) = def.getExpr().getControlFlowNode() and v = def.getTarget() and @@ -24,7 +24,7 @@ module BaseSsa { ) } - private predicate implicitEntryDef(Callable c, EntryBasicBlock bb, SsaInput::SourceVariable v) { + private predicate entryDef(Callable c, EntryBasicBlock bb, SsaImplInput::SourceVariable v) { exists(EntryBasicBlock entry | c = entry.getEnclosingCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit @@ -79,7 +79,7 @@ module BaseSsa { } } - private module SsaInput implements SsaImplCommon::InputSig { + private module SsaImplInput implements SsaImplCommon::InputSig { class SourceVariable = SimpleLocalScopeVariable; predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) { @@ -88,7 +88,7 @@ module BaseSsa { if def.isCertain() then certain = true else certain = false ) or - implicitEntryDef(_, bb, v) and + entryDef(_, bb, v) and i = -1 and certain = true } @@ -102,7 +102,37 @@ module BaseSsa { } } - private module SsaImpl = SsaImplCommon::Make; + private module SsaImpl = SsaImplCommon::Make; + + private module SsaInput implements SsaImpl::SsaInputSig { + private import csharp as CS + + class Expr = CS::Expr; + + class Parameter = CS::Parameter; + + class VariableWrite extends AssignableDefinition { + Expr asExpr() { result = this.getExpr() } + + Expr getValue() { result = this.getSource() } + + predicate isParameterInit(Parameter p) { + this.(ImplicitParameterDefinition).getParameter() = p + } + } + + predicate explicitWrite(VariableWrite w, BasicBlock bb, int i, SsaImplInput::SourceVariable v) { + definitionAt(w, bb, i, v) + or + entryDef(_, bb, v) and + i = -1 and + w.isParameterInit(v) + } + } + + module Ssa = SsaImpl::MakeSsa; + + import Ssa class Definition extends SsaImpl::Definition { final AssignableRead getARead() { @@ -113,16 +143,16 @@ module BaseSsa { } final AssignableDefinition getDefinition() { - exists(BasicBlock bb, int i, SsaInput::SourceVariable v | + exists(BasicBlock bb, int i, SsaImplInput::SourceVariable v | this.definesAt(v, bb, i) and definitionAt(result, bb, i, v) ) } - final predicate isImplicitEntryDefinition(SsaInput::SourceVariable v) { + final predicate isImplicitEntryDefinition(SsaImplInput::SourceVariable v) { exists(BasicBlock bb | this.definesAt(v, bb, -1) and - implicitEntryDef(_, bb, v) + entryDef(_, bb, v) ) } @@ -139,9 +169,9 @@ module BaseSsa { override Location getLocation() { result = this.getDefinition().getLocation() or - exists(Callable c, BasicBlock bb, SsaInput::SourceVariable v | + exists(Callable c, BasicBlock bb, SsaImplInput::SourceVariable v | this.definesAt(v, bb, -1) and - implicitEntryDef(c, bb, v) and + entryDef(c, bb, v) and result = c.getLocation() ) } From bbd60031b15fe5eaf6b2b22c246cb86257e9d2bb Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 16 Apr 2026 13:58:21 +0200 Subject: [PATCH 188/208] C#: Replace references to old BaseSSA classes. --- .../code/csharp/dataflow/internal/BaseSSA.qll | 49 ------------------- .../code/csharp/dataflow/internal/Steps.qll | 4 +- .../semmle/code/csharp/dispatch/Dispatch.qll | 4 +- .../dataflow/ssa/BaseSsaConsistency.ql | 4 +- 4 files changed, 7 insertions(+), 54 deletions(-) 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 629cc8f7b1c..8cf9c85d6a1 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -133,53 +133,4 @@ module BaseSsa { module Ssa = SsaImpl::MakeSsa; import Ssa - - class Definition extends SsaImpl::Definition { - final AssignableRead getARead() { - exists(BasicBlock bb, int i | - SsaImpl::ssaDefReachesRead(_, this, bb, i) and - result.getControlFlowNode() = bb.getNode(i) - ) - } - - final AssignableDefinition getDefinition() { - exists(BasicBlock bb, int i, SsaImplInput::SourceVariable v | - this.definesAt(v, bb, i) and - definitionAt(result, bb, i, v) - ) - } - - final predicate isImplicitEntryDefinition(SsaImplInput::SourceVariable v) { - exists(BasicBlock bb | - this.definesAt(v, bb, -1) and - entryDef(_, bb, v) - ) - } - - private Definition getAPhiInputOrPriorDefinition() { - result = this.(PhiNode).getAnInput() or - SsaImpl::uncertainWriteDefinitionInput(this, result) - } - - final Definition getAnUltimateDefinition() { - result = this.getAPhiInputOrPriorDefinition*() and - not result instanceof PhiNode - } - - override Location getLocation() { - result = this.getDefinition().getLocation() - or - exists(Callable c, BasicBlock bb, SsaImplInput::SourceVariable v | - this.definesAt(v, bb, -1) and - entryDef(c, bb, v) and - result = c.getLocation() - ) - } - } - - class PhiNode extends SsaImpl::PhiNode, Definition { - override Location getLocation() { result = this.getBasicBlock().getLocation() } - - final Definition getAnInput() { SsaImpl::phiHasInputFromBlock(this, result, _) } - } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/Steps.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/Steps.qll index 63cd0b65dc6..7e2709468d6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/Steps.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/Steps.qll @@ -15,8 +15,8 @@ module Steps { * Gets a read that may read the value assigned at definition `def`. */ private AssignableRead getARead(AssignableDefinition def) { - exists(BaseSsa::Definition ssaDef | - ssaDef.getAnUltimateDefinition().getDefinition() = def and + exists(BaseSsa::SsaDefinition ssaDef | + ssaDef.getAnUltimateDefinition().(BaseSsa::SsaExplicitWrite).getDefinition() = def and result = ssaDef.getARead() ) or diff --git a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll index 10ea1c8eb52..6d535025a19 100644 --- a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll @@ -355,8 +355,8 @@ private module Internal { 1 < strictcount(this.getADynamicTarget().getUnboundDeclaration()) and c = this.getCall().getEnclosingCallable().getUnboundDeclaration() and ( - exists(BaseSsa::Definition def, Parameter p | - def.isImplicitEntryDefinition(p) and + exists(BaseSsa::SsaParameterInit def, Parameter p | + def.getParameter() = p and this.getSyntheticQualifier() = def.getARead() and p.getPosition() = i and c.getAParameter() = p and diff --git a/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql b/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql index 86e13215b0c..5a754ef3041 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql +++ b/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql @@ -1,7 +1,9 @@ import csharp import semmle.code.csharp.dataflow.internal.BaseSSA -from AssignableRead ar, BaseSsa::Definition ssaDef, AssignableDefinition def, LocalScopeVariable v +from + AssignableRead ar, BaseSsa::SsaExplicitWrite ssaDef, AssignableDefinition def, + LocalScopeVariable v where ar = ssaDef.getARead() and def = ssaDef.getDefinition() and From ae7904f0c8b8ab7e8a1c688a906feee8816f4005 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 17 Apr 2026 14:32:40 +0200 Subject: [PATCH 189/208] C#: Fix BaseSSA caching. --- .../semmle/code/csharp/dataflow/internal/BaseSSA.qll | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 8cf9c85d6a1..f5e7d22eb00 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -7,6 +7,15 @@ module BaseSsa { private import AssignableDefinitions private import codeql.ssa.Ssa as SsaImplCommon + cached + private module BaseSsaStage { + cached + predicate ref() { any() } + + cached + predicate backref() { (exists(any(SsaDefinition def).getARead()) implies any()) } + } + /** * Holds if the `i`th node of basic block `bb` is assignable definition `def`, * targeting local scope variable `v`. @@ -83,6 +92,7 @@ module BaseSsa { class SourceVariable = SimpleLocalScopeVariable; predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) { + BaseSsaStage::ref() and exists(AssignableDefinition def | definitionAt(def, bb, i, v) and if def.isCertain() then certain = true else certain = false From b0c31badc24dc41d6ecf2af4c93a56c545d68ad0 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 17 Apr 2026 15:10:35 +0200 Subject: [PATCH 190/208] C#: Bugfix for multi-body baseSsa entry defs. --- csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f5e7d22eb00..63a9e782250 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -33,7 +33,7 @@ module BaseSsa { ) } - private predicate entryDef(Callable c, EntryBasicBlock bb, SsaImplInput::SourceVariable v) { + private predicate entryDef(Callable c, BasicBlock bb, SsaImplInput::SourceVariable v) { exists(EntryBasicBlock entry | c = entry.getEnclosingCallable() and // In case `c` has multiple bodies, we want each body to get its own implicit From e60275c4ded23a5b0141d4db44462cb83e8c157b Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 27 Mar 2026 11:50:37 +0100 Subject: [PATCH 191/208] Rust: Refine `implSiblings` Consider two implementations of the same trait to be siblings when the type being implemented by one is an instantiation of the type being implemented by the other. --- .../typeinference/FunctionOverloading.qll | 121 +++++++++++------- .../internal/typeinference/TypeInference.qll | 5 + .../type-inference/regressions.rs | 2 +- .../type-inference/type-inference.expected | 6 - .../typeinference/internal/TypeInference.qll | 39 +++++- 5 files changed, 115 insertions(+), 58 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index ec0152c7eca..9af026149cc 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -22,17 +22,8 @@ private signature Type resolveTypeMentionAtSig(AstNode tm, TypePath path); * how to resolve type mentions (`PreTypeMention` vs. `TypeMention`). */ private module MkSiblingImpls { - pragma[nomagic] - private Type resolveNonTypeParameterTypeAt(AstNode tm, TypePath path) { - result = resolveTypeMentionAt(tm, path) and - not result instanceof TypeParameter - } - - bindingset[t1, t2] - private predicate typeMentionEqual(AstNode t1, AstNode t2) { - forex(TypePath path, Type type | resolveNonTypeParameterTypeAt(t1, path) = type | - resolveNonTypeParameterTypeAt(t2, path) = type - ) + private class Tm extends AstNode { + Type getTypeAt(TypePath path) { result = resolveTypeMentionAt(this, path) } } pragma[nomagic] @@ -50,54 +41,91 @@ private module MkSiblingImpls { trait = impl.resolveTraitTy() } + private module ImplIsInstantiationOfSiblingInput implements IsInstantiationOfInputSig { + predicate potentialInstantiationOf(Tm cond, TypeAbstraction abs, Tm constraint) { + exists(TraitItemNode trait, Type rootType | + implSiblingCandidate(_, trait, rootType, cond) and + implSiblingCandidate(abs, trait, rootType, constraint) and + cond != constraint + ) + } + } + + private module ImplIsInstantiationOfSibling = + IsInstantiationOf; + /** * Holds if `impl1` and `impl2` are sibling implementations of `trait`. We - * consider implementations to be siblings if they implement the same trait for - * the same type. In that case `Self` is the same type in both implementations, - * and method calls to the implementations cannot be resolved unambiguously - * based only on the receiver type. + * consider implementations to be siblings if they implement the same trait and + * the type being implemented by one of the implementations is an instantiation + * of the type being implemented by the other. + * + * For example, in + * + * ```rust + * trait MyTrait { ... } + * impl MyTrait for i64 { ... } // I1 + * impl MyTrait for i64 { ... } // I2 + * + * impl MyTrait for S { ... } // I3 + * impl MyTrait for S { ... } // I4 + * impl MyTrait for S { ... } // I5 + * ``` + * + * the pairs `(I1, I2)`, `(I3, I5)`, and `(I4, I5)` are siblings, but not `(I3, I4)`. + * + * Whenever an implementation has a sibling, calls to the implementations cannot be + * resolved unambiguously based only on the `Self` type alone. */ - pragma[inline] - predicate implSiblings(TraitItemNode trait, Impl impl1, Impl impl2) { - impl1 != impl2 and - ( - exists(Type rootType, AstNode selfTy1, AstNode selfTy2 | - implSiblingCandidate(impl1, trait, rootType, selfTy1) and - implSiblingCandidate(impl2, trait, rootType, selfTy2) and - // In principle the second conjunct below should be superfluous, but we still - // have ill-formed type mentions for types that we don't understand. For - // those checking both directions restricts further. Note also that we check - // syntactic equality, whereas equality up to renaming would be more - // correct. - typeMentionEqual(selfTy1, selfTy2) and - typeMentionEqual(selfTy2, selfTy1) - ) - or - blanketImplSiblingCandidate(impl1, trait) and - blanketImplSiblingCandidate(impl2, trait) + pragma[nomagic] + predicate implSiblings(TraitItemNode trait, ImplItemNode impl1, ImplItemNode impl2) { + exists(Type rootType, AstNode selfTy1, AstNode selfTy2 | + implSiblingCandidate(impl1, trait, rootType, selfTy1) and + implSiblingCandidate(impl2, trait, rootType, selfTy2) + | + ImplIsInstantiationOfSibling::isInstantiationOf(selfTy1, impl2, selfTy2) or + ImplIsInstantiationOfSibling::isInstantiationOf(selfTy2, impl1, selfTy1) ) + or + blanketImplSiblingCandidate(impl1, trait) and + blanketImplSiblingCandidate(impl2, trait) and + impl1 != impl2 } /** * Holds if `impl` is an implementation of `trait` and if another implementation * exists for the same type. */ - pragma[nomagic] predicate implHasSibling(ImplItemNode impl, Trait trait) { implSiblings(trait, impl, _) } + pragma[nomagic] + predicate implSiblings(TraitItemNode trait, ImplItemNode impl1, Tm traitMention1, Tm traitMention2) { + exists(ImplItemNode impl2 | + implSiblings(trait, impl1, impl2) and + traitMention1 = impl1.getTraitPath() and + traitMention2 = impl2.getTraitPath() + ) + } + + bindingset[t1, t2] + pragma[inline_late] + private predicate differentTypes(Type t1, Type t2) { + t1 != t2 and + (not t1 instanceof TypeParameter or not t2 instanceof TypeParameter) + } + pragma[nomagic] predicate implHasAmbiguousSiblingAt(ImplItemNode impl, Trait trait, TypePath path) { - exists(ImplItemNode impl2, Type t1, Type t2 | - implSiblings(trait, impl, impl2) and - t1 = resolveTypeMentionAt(impl.getTraitPath(), path) and - t2 = resolveTypeMentionAt(impl2.getTraitPath(), path) and - t1 != t2 - | - not t1 instanceof TypeParameter or - not t2 instanceof TypeParameter + exists(Tm traitMention, Tm traitMention2, Type t1, Type t2 | + implSiblings(trait, impl, traitMention, traitMention2) and + t1 = traitMention.getTypeAt(path) and + t2 = traitMention2.getTypeAt(path) and + differentTypes(t1, t2) ) or - // todo: handle blanket/non-blanket siblings in `implSiblings` + // Since we cannot resolve the `Output` types of certain built-in `Index` trait + // implementations, we need to ensure that the type-specialized versions that we + // ship do not apply unless there is an exact type match trait = any(IndexTrait it | implSiblingCandidate(impl, it, _, _) and @@ -152,7 +180,7 @@ private predicate functionResolutionDependsOnArgumentCand( * ```rust * trait MyTrait { * fn method(&self, value: Foo) -> Self; - * // ^^^^^^^^^^^^^ `pos` = 0 + * // ^^^^^^^^^^^^^ `pos` = 1 * // ^ `path` = "T" * } * impl MyAdd for i64 { @@ -160,11 +188,6 @@ private predicate functionResolutionDependsOnArgumentCand( * // ^^^ `type` = i64 * } * ``` - * - * Note that we only check the root type symbol at the position. If the type - * at that position is a type constructor (for instance `Vec<..>`) then - * inspecting the entire type tree could be necessary to disambiguate the - * method. In that case we will still resolve several methods. */ exists(TraitItemNode trait | diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 6c0034c2b9c..423ad21ae4a 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -37,6 +37,11 @@ private module Input1 implements InputSig1 { class Type = T::Type; + predicate isPseudoType(Type t) { + t instanceof UnknownType or + t instanceof NeverType + } + class TypeParameter = T::TypeParameter; class TypeAbstraction = TA::TypeAbstraction; diff --git a/rust/ql/test/library-tests/type-inference/regressions.rs b/rust/ql/test/library-tests/type-inference/regressions.rs index 5c830bb3db2..465475475bf 100644 --- a/rust/ql/test/library-tests/type-inference/regressions.rs +++ b/rust/ql/test/library-tests/type-inference/regressions.rs @@ -149,7 +149,7 @@ mod regression5 { fn foo() -> S2 { let x = S1.into(); // $ target=into - x // $ SPURIOUS: type=x:T2.TRef.S1 -- happens because we currently do not consider the two `impl` blocks to be siblings + x // $ type=x:T2.S1 } } 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 5e870ae6ca5..3344fc45f74 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -15818,18 +15818,12 @@ inferType | regressions.rs:150:24:153:5 | { ... } | | regressions.rs:136:5:136:22 | S2 | | regressions.rs:150:24:153:5 | { ... } | T2 | regressions.rs:135:5:135:14 | S1 | | regressions.rs:151:13:151:13 | x | | regressions.rs:136:5:136:22 | S2 | -| regressions.rs:151:13:151:13 | x | T2 | {EXTERNAL LOCATION} | & | | regressions.rs:151:13:151:13 | x | T2 | regressions.rs:135:5:135:14 | S1 | -| regressions.rs:151:13:151:13 | x | T2.TRef | regressions.rs:135:5:135:14 | S1 | | regressions.rs:151:17:151:18 | S1 | | regressions.rs:135:5:135:14 | S1 | | regressions.rs:151:17:151:25 | S1.into() | | regressions.rs:136:5:136:22 | S2 | -| regressions.rs:151:17:151:25 | S1.into() | T2 | {EXTERNAL LOCATION} | & | | regressions.rs:151:17:151:25 | S1.into() | T2 | regressions.rs:135:5:135:14 | S1 | -| regressions.rs:151:17:151:25 | S1.into() | T2.TRef | regressions.rs:135:5:135:14 | S1 | | regressions.rs:152:9:152:9 | x | | regressions.rs:136:5:136:22 | S2 | -| regressions.rs:152:9:152:9 | x | T2 | {EXTERNAL LOCATION} | & | | regressions.rs:152:9:152:9 | x | T2 | regressions.rs:135:5:135:14 | S1 | -| regressions.rs:152:9:152:9 | x | T2.TRef | regressions.rs:135:5:135:14 | S1 | | regressions.rs:164:16:164:19 | SelfParam | | regressions.rs:158:5:158:19 | S | | regressions.rs:164:16:164:19 | SelfParam | T | regressions.rs:160:10:160:10 | T | | regressions.rs:164:22:164:25 | _rhs | | regressions.rs:158:5:158:19 | S | diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 9f4be49d878..1f4400d8f2d 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -145,6 +145,12 @@ signature module InputSig1 { Location getLocation(); } + /** + * Holds if `t` is a pseudo type. Pseudo types are skipped when checking for + * non-instantiations in `isNotInstantiationOf`. + */ + predicate isPseudoType(Type t); + /** A type parameter. */ class TypeParameter extends Type; @@ -624,6 +630,26 @@ module Make1 Input1> { ) } + pragma[nomagic] + private predicate hasTypeParameterAt( + App app, TypeAbstraction abs, Constraint constraint, TypePath path, TypeParameter tp + ) { + tp = getTypeAt(app, abs, constraint, path) and + tp = abs.getATypeParameter() + } + + private Type getNonPseudoTypeAt(App app, TypePath path) { + result = app.getTypeAt(path) and not isPseudoType(result) + } + + pragma[nomagic] + private Type getNonPseudoTypeAtTypeParameter( + App app, TypeAbstraction abs, Constraint constraint, TypeParameter tp, TypePath path + ) { + hasTypeParameterAt(app, abs, constraint, path, tp) and + result = getNonPseudoTypeAt(app, path) + } + /** * Holds if `app` is _not_ a possible instantiation of `constraint`, because `app` * and `constraint` differ on concrete types at `path`. @@ -643,13 +669,22 @@ module Make1 Input1> { predicate isNotInstantiationOf( App app, TypeAbstraction abs, Constraint constraint, TypePath path ) { - // `app` and `constraint` differ on a concrete type + // `app` and `constraint` differ on a non-pseudo concrete type exists(Type t, Type t2 | t = getTypeAt(app, abs, constraint, path) and not t = abs.getATypeParameter() and - app.getTypeAt(path) = t2 and + t2 = getNonPseudoTypeAt(app, path) and t2 != t ) + or + // `app` has different instantiations of a type parameter mentioned at two + // different paths + exists(TypeParameter tp, TypePath path2, Type t, Type t2 | + t = getNonPseudoTypeAtTypeParameter(app, abs, constraint, tp, path) and + t2 = getNonPseudoTypeAtTypeParameter(app, abs, constraint, tp, path2) and + t != t2 and + path != path2 + ) } } From 4b8e4b40af7c49137ff935a336c4ba1608586935 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 22 Apr 2026 14:00:13 +0200 Subject: [PATCH 192/208] C#: Fix test. --- .../ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql b/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql index 5a754ef3041..4748f516114 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql +++ b/csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql @@ -11,5 +11,9 @@ where not exists(Ssa::ExplicitDefinition edef | edef.getADefinition() = def and edef.getARead() = ar + ) and + not exists(Ssa::ImplicitParameterDefinition edef | + edef.getParameter() = def.(AssignableDefinitions::ImplicitParameterDefinition).getParameter() and + edef.getARead() = ar ) select ar, def From 39cd86a48e6b41dc47d8eba1fec6ae69a6b5ec66 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 22 Apr 2026 13:12:08 +0200 Subject: [PATCH 193/208] C#: Move handling of callables into shared control flow library --- .../csharp/controlflow/ControlFlowGraph.qll | 142 ++++++------------ .../codeql/controlflow/ControlFlowGraph.qll | 98 +++++++++--- 2 files changed, 121 insertions(+), 119 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index e1e74100ca8..947f9ae4d5c 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -25,7 +25,7 @@ private module Ast implements AstSig { class AstNode = ControlFlowElementOrCallable; - private predicate skipControlFlow(AstNode e) { + additional predicate skipControlFlow(AstNode e) { e instanceof TypeAccess and not e instanceof TypeAccessPatternExpr or @@ -82,13 +82,8 @@ private module Ast implements AstSig { AstNode callableGetBody(Callable c) { not skipControlFlow(result) and - ( - result = c.getBody() or - result = c.(Constructor).getObjectInitializerCall() or - result = c.(Constructor).getInitializer() or - c.(ObjectInitMethod).initializes(result) or - Initializers::staticMemberInitializer(c, result) - ) + result = c.getBody() and + not c instanceof Constructor // handled in `callableGetBodyPart` } class Stmt = CS::Stmt; @@ -222,10 +217,21 @@ private module Ast implements AstSig { * Unlike the standard `Compilation` class, this class also supports buildless * extraction. */ -private newtype CompilationExt = +private newtype TCompilationExt = TCompilation(Compilation c) { not extractionIsStandalone() } or TBuildless() { extractionIsStandalone() } +private class CompilationExt extends TCompilationExt { + string toString() { + exists(Compilation c | + this = TCompilation(c) and + result = c.toString() + ) + or + this = TBuildless() and result = "buildless compilation" + } +} + /** Gets the compilation that source file `f` belongs to. */ private CompilationExt getCompilation(File f) { exists(Compilation c | @@ -286,32 +292,18 @@ private module Initializers { } /** - * Gets the `i`th member initializer expression for object initializer method `obinit` - * in compilation `comp`. + * Gets the `i`th member initializer expression for object initializer method `obinit`. */ - AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { - obinit.initializes(result) and + AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, int i) { result = rank[i + 1](AssignExpr ae0, Location l, string filepath, int startline, int startcolumn | obinit.initializes(ae0) and l = ae0.getLocation() and - l.hasLocationInfo(filepath, startline, startcolumn, _, _) and - getCompilation(l.getFile()) = comp + l.hasLocationInfo(filepath, startline, startcolumn, _, _) | ae0 order by startline, startcolumn, filepath ) } - - /** - * 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)) - ) - } } private module Exceptions { @@ -424,6 +416,31 @@ private module Input implements InputSig1, InputSig2 { l = TLblGoto(n.(LabelStmt).getLabel()) } + class CallableBodyPartContext = CompilationExt; + + pragma[nomagic] + Ast::AstNode callableGetBodyPart(Callable c, CallableBodyPartContext ctx, int index) { + not Ast::skipControlFlow(result) and + ctx = getCompilation(result.getFile()) and + ( + result = Initializers::initializedInstanceMemberOrder(c, index) + or + result = Initializers::initializedStaticMemberOrder(c, index) + or + exists(Constructor ctor, int i, int staticMembers | + c = ctor and + staticMembers = count(Expr init | Initializers::staticMemberInitializer(ctor, init)) and + index = staticMembers + i + 1 + | + i = 0 and result = ctor.getObjectInitializerCall() + or + i = 1 and result = ctor.getInitializer() + or + i = 2 and result = ctor.getBody() + ) + ) + } + private Expr getQualifier(QualifiableExpr qe) { result = qe.getQualifier() or result = qe.(ExtensionMethodCall).getArgument(0) @@ -474,80 +491,7 @@ private module Input implements InputSig1, InputSig2 { ) } - pragma[noinline] - private MethodCall getObjectInitializerCall(Constructor ctor, CompilationExt comp) { - result = ctor.getObjectInitializerCall() and - comp = getCompilation(result.getFile()) - } - - pragma[noinline] - private ConstructorInitializer getInitializer(Constructor ctor, CompilationExt comp) { - result = ctor.getInitializer() and - comp = getCompilation(result.getFile()) - } - - pragma[noinline] - private Ast::AstNode getBody(Constructor ctor, CompilationExt comp) { - result = ctor.getBody() and - comp = getCompilation(result.getFile()) - } - predicate step(PreControlFlowNode n1, PreControlFlowNode n2) { - exists(Constructor ctor | - n1.(EntryNodeImpl).getEnclosingCallable() = ctor and - if Initializers::staticMemberInitializer(ctor, _) - then n2.isBefore(Initializers::initializedStaticMemberOrder(ctor, 0)) - else - if exists(ctor.getObjectInitializerCall()) - then n2.isBefore(ctor.getObjectInitializerCall()) - else - if exists(ctor.getInitializer()) - then n2.isBefore(ctor.getInitializer()) - else n2.isBefore(ctor.getBody()) - or - exists(int i | n1.isAfter(Initializers::initializedStaticMemberOrder(ctor, i)) | - n2.isBefore(Initializers::initializedStaticMemberOrder(ctor, i + 1)) - or - not exists(Initializers::initializedStaticMemberOrder(ctor, i + 1)) and - n2.isBefore(ctor.getBody()) - ) - or - exists(CompilationExt comp | - n1.isAfter(getObjectInitializerCall(ctor, comp)) and - if exists(getInitializer(ctor, comp)) - then n2.isBefore(getInitializer(ctor, comp)) - else - // 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. - if exists(getBody(ctor, comp)) - then n2.isBefore(getBody(ctor, comp)) - else n2.(NormalExitNodeImpl).getEnclosingCallable() = ctor - or - n1.isAfter(getInitializer(ctor, comp)) and - if exists(getBody(ctor, comp)) - then n2.isBefore(getBody(ctor, comp)) - else n2.(NormalExitNodeImpl).getEnclosingCallable() = ctor - ) - or - n1.isAfter(ctor.getBody()) and - n2.(NormalExitNodeImpl).getEnclosingCallable() = ctor - ) - or - exists(ObjectInitMethod obinit | - n1.(EntryNodeImpl).getEnclosingCallable() = obinit and - n2.isBefore(Initializers::initializedInstanceMemberOrder(obinit, _, 0)) - or - exists(CompilationExt comp, int i | - // Flow from one member initializer to the next - n1.isAfter(Initializers::initializedInstanceMemberOrder(obinit, comp, i)) and - n2.isBefore(Initializers::initializedInstanceMemberOrder(obinit, comp, i + 1)) - ) - or - n1.isAfter(Initializers::lastInitializer(obinit, _)) and - n2.(NormalExitNodeImpl).getEnclosingCallable() = obinit - ) - or exists(QualifiableExpr qe | qe.isConditional() | n1.isBefore(qe) and n2.isBefore(getQualifier(qe)) or diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 0e61884b437..ed1bfba3177 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -38,16 +38,16 @@ signature module AstSig { Location getLocation(); } - /** Gets the child of this AST node at the specified index. */ + /** Gets the child of AST node `n` at the specified index. */ AstNode getChild(AstNode n, int index); - /** Gets the immediately enclosing callable that contains this node. */ + /** Gets the immediately enclosing callable that contains `node`. */ Callable getEnclosingCallable(AstNode node); /** A callable, for example a function, method, constructor, or top-level script. */ class Callable extends AstNode; - /** Gets the body of this callable, if any. */ + /** Gets the body of callable `c`, if any. */ AstNode callableGetBody(Callable c); /** A statement. */ @@ -454,6 +454,27 @@ module Make0 Ast> { default predicate successorValueImplies(ConditionalSuccessor t1, ConditionalSuccessor t2) { none() } + + /** + * An additional context needed to identify the body parts of a callable. + * + * When not used, instantiate with the `Void` type. + */ + class CallableBodyPartContext { + /** Gets a textual representation of this context. */ + string toString(); + } + + /** + * Gets the `index`th part of the body of `c` in context `ctx`. The indices do not + * need to be consecutive nor start from a specific index. + * + * `callableGetBodyPart(c, _, _)` and `callableGetBody(c)` must never both hold + * for a given callable `c`. + */ + default AstNode callableGetBodyPart(Callable c, CallableBodyPartContext ctx, int index) { + none() + } } /** @@ -661,6 +682,34 @@ module Make0 Ast> { * not step to it, since "after" represents normal termination). */ + private predicate isCallableBodyPart(Callable c, AstNode n) { + n = callableGetBody(c) or n = Input1::callableGetBodyPart(c, _, _) + } + + private AstNode getRankedBodyPart(Callable c, Input1::CallableBodyPartContext ctx, int rnk) { + result = + rank[rnk](AstNode child, int ix | + child = Input1::callableGetBodyPart(c, ctx, ix) + | + child order by ix + ) + } + + private AstNode getBodyEntry(Callable c) { + result = callableGetBody(c) + or + result = getRankedBodyPart(c, _, 1) + } + + private AstNode getBodyExit(Callable c) { + result = callableGetBody(c) + or + exists(Input1::CallableBodyPartContext ctx, int last | + result = getRankedBodyPart(c, ctx, last) and + not exists(getRankedBodyPart(c, ctx, last + 1)) + ) + } + cached private newtype TNode = TBeforeNode(AstNode n) { Input1::cfgCachedStageRef() and exists(getEnclosingCallable(n)) } or @@ -677,9 +726,9 @@ module Make0 Ast> { TAdditionalNode(AstNode n, string tag) { additionalNode(n, tag, _) and exists(getEnclosingCallable(n)) } or - TEntryNode(Callable c) { exists(callableGetBody(c)) } or - TAnnotatedExitNode(Callable c, Boolean normal) { exists(callableGetBody(c)) } or - TExitNode(Callable c) { exists(callableGetBody(c)) } + TEntryNode(Callable c) { isCallableBodyPart(c, _) } or + TAnnotatedExitNode(Callable c, Boolean normal) { isCallableBodyPart(c, _) } or + TExitNode(Callable c) { isCallableBodyPart(c, _) } private class NodeImpl extends TNode { /** @@ -895,7 +944,7 @@ module Make0 Ast> { } /** The `PreControlFlowNode` at the entry point of a callable. */ - final class EntryNodeImpl extends NodeImpl, TEntryNode { + final private class EntryNodeImpl extends NodeImpl, TEntryNode { private Callable c; EntryNodeImpl() { this = TEntryNode(c) } @@ -1097,7 +1146,7 @@ module Make0 Ast> { private predicate endAbruptCompletion(AstNode ast, PreControlFlowNode n, AbruptCompletion c) { Input2::endAbruptCompletion(ast, n, c) or - exists(Callable callable | ast = callableGetBody(callable) | + exists(Callable callable | isCallableBodyPart(callable, ast) | c.getSuccessorType() instanceof ReturnSuccessor and n.(NormalExitNodeImpl).getEnclosingCallable() = callable or @@ -1255,22 +1304,15 @@ module Make0 Ast> { ) } - private predicate hasSpecificCallableSteps(Callable c) { - exists(EntryNodeImpl entry | entry.getEnclosingCallable() = c and Input2::step(entry, _)) - } - /** Holds if there is a local non-abrupt step from `n1` to `n2`. */ private predicate explicitStep(PreControlFlowNode n1, PreControlFlowNode n2) { Input2::step(n1, n2) or exists(Callable c | - // Allow language-specific overrides for the default entry and exit edges. - not hasSpecificCallableSteps(c) and n1.(EntryNodeImpl).getEnclosingCallable() = c and - n2.isBefore(callableGetBody(c)) + n2.isBefore(getBodyEntry(c)) or - not hasSpecificCallableSteps(c) and - n1.isAfter(callableGetBody(c)) and + n1.isAfter(getBodyExit(c)) and n2.(NormalExitNodeImpl).getEnclosingCallable() = c or n1.(AnnotatedExitNodeImpl).getEnclosingCallable() = c and @@ -1650,9 +1692,17 @@ module Make0 Ast> { n1.isBefore(ast) and n2.isBefore(getRankedChild(ast, 1)) or - exists(int i | - n1.isAfter(getRankedChild(ast, i)) and - n2.isBefore(getRankedChild(ast, i + 1)) + exists(int i, AstNode prev, AstNode next | + n1.isAfter(prev) and + n2.isBefore(next) + | + prev = getRankedChild(ast, i) and + next = getRankedChild(ast, i + 1) + or + exists(Input1::CallableBodyPartContext ctx | + prev = getRankedBodyPart(ast, ctx, i) and + next = getRankedBodyPart(ast, ctx, i + 1) + ) ) or ( @@ -2128,6 +2178,14 @@ module Make0 Ast> { query predicate selfLoop(ControlFlowNode node, SuccessorType t) { node.getASuccessor(t) = node } + + /** + * Holds if `c` is included in both `callableGetBody` and `callableGetBodyPart`. + */ + query predicate bodyPartOverlap(Callable c) { + exists(callableGetBody(c)) and + exists(Input1::callableGetBodyPart(c, _, _)) + } } } } From 6ebf4ee394a169548a0faf910d0d882685e8a0b1 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 22 Apr 2026 13:17:40 +0200 Subject: [PATCH 194/208] Java: Adapt to changes in CFG library --- java/ql/lib/semmle/code/java/ControlFlowGraph.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 72353de39fc..1137b46f32c 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -468,6 +468,7 @@ private module NonReturningCalls { private module Input implements InputSig1, InputSig2 { private import java as J + private import codeql.util.Void predicate cfgCachedStageRef() { CfgCachedStage::ref() } @@ -533,6 +534,8 @@ private module Input implements InputSig1, InputSig2 { l = TYield() and n instanceof SwitchExpr } + class CallableBodyPartContext = Void; + predicate inConditionalContext(Ast::AstNode n, ConditionKind kind) { kind.isBoolean() and ( From 57eaed4dcc4645cdd4d82960448e444d28f0d03d Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 22 Apr 2026 13:37:35 +0100 Subject: [PATCH 195/208] Refactor: remove fields from `EncryptionOperation` Co-authored-by: Copilot --- go/ql/lib/semmle/go/Concepts.qll | 16 +++++----- .../semmle/go/frameworks/CryptoLibraries.qll | 30 +++++++++++++------ 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/go/ql/lib/semmle/go/Concepts.qll b/go/ql/lib/semmle/go/Concepts.qll index ffa48ea9654..c33fb0ae6bb 100644 --- a/go/ql/lib/semmle/go/Concepts.qll +++ b/go/ql/lib/semmle/go/Concepts.qll @@ -574,19 +574,17 @@ module Cryptography { * is one) have been initialized separately. */ abstract class EncryptionOperation extends CryptographicOperation::Range { - DataFlow::Node encryptionFlowTarget; - DataFlow::Node inputNode; + /** Gets the target node for the encryption flow. */ + abstract DataFlow::Node getEncryptionFlowTarget(); override DataFlow::Node getInitialization() { - EncryptionFlow::flow(result, encryptionFlowTarget) + EncryptionFlow::flow(result, this.getEncryptionFlowTarget()) } override EncryptionAlgorithm getAlgorithm() { result = this.getInitialization().(EncryptionAlgorithmInit).getAlgorithm() } - override DataFlow::Node getAnInput() { result = inputNode } - override BlockMode getBlockMode() { result = this.getInitialization().(BlockModeInit).getMode() } @@ -601,8 +599,12 @@ module Cryptography { int inputArg; EncryptionMethodCall() { - encryptionFlowTarget = super.getReceiver() and - inputNode = super.getArgument(inputArg) + exists(super.getReceiver()) and + exists(super.getArgument(inputArg)) } + + override DataFlow::Node getEncryptionFlowTarget() { result = super.getReceiver() } + + override DataFlow::Node getAnInput() { result = super.getArgument(inputArg) } } } diff --git a/go/ql/lib/semmle/go/frameworks/CryptoLibraries.qll b/go/ql/lib/semmle/go/frameworks/CryptoLibraries.qll index 7f0e52b449a..f8714e8602a 100644 --- a/go/ql/lib/semmle/go/frameworks/CryptoLibraries.qll +++ b/go/ql/lib/semmle/go/frameworks/CryptoLibraries.qll @@ -381,19 +381,26 @@ private module Crypto { } private class StreamReader extends EncryptionOperation { + DataFlow::Node encryptionFlowTarget; + DataFlow::Node inputNode; + StreamReader() { lookThroughPointerType(this.getType()).hasQualifiedName("crypto/cipher", "StreamReader") and - exists(DataFlow::Write w, DataFlow::Node base, Field f | - f.hasQualifiedName("crypto/cipher", "StreamReader", "S") and - w.writesField(base, f, encryptionFlowTarget) and - DataFlow::localFlow(base, this) + exists(DataFlow::Write wS, DataFlow::Node baseS, Field fS | + fS.hasQualifiedName("crypto/cipher", "StreamReader", "S") and + wS.writesField(baseS, fS, encryptionFlowTarget) and + DataFlow::localFlow(baseS, this) ) and - exists(DataFlow::Write w, DataFlow::Node base, Field f | - f.hasQualifiedName("crypto/cipher", "StreamReader", "R") and - w.writesField(base, f, inputNode) and - DataFlow::localFlow(base, this) + exists(DataFlow::Write wR, DataFlow::Node baseR, Field fR | + fR.hasQualifiedName("crypto/cipher", "StreamReader", "R") and + wR.writesField(baseR, fR, inputNode) and + DataFlow::localFlow(baseR, this) ) } + + override DataFlow::Node getEncryptionFlowTarget() { result = encryptionFlowTarget } + + override DataFlow::Node getAnInput() { result = inputNode } } /** @@ -402,9 +409,10 @@ private module Crypto { * so it only works within one function. */ private class StreamWriter extends EncryptionOperation { + DataFlow::Node encryptionFlowTarget; + StreamWriter() { lookThroughPointerType(this.getType()).hasQualifiedName("crypto/cipher", "StreamWriter") and - inputNode = this and exists(DataFlow::Write w, DataFlow::Node base, Field f | w.writesField(base, f, encryptionFlowTarget) and f.hasQualifiedName("crypto/cipher", "StreamWriter", "S") @@ -413,6 +421,10 @@ private module Crypto { TaintTracking::localTaint(base, this.(DataFlow::PostUpdateNode).getPreUpdateNode()) ) } + + override DataFlow::Node getEncryptionFlowTarget() { result = encryptionFlowTarget } + + override DataFlow::Node getAnInput() { result = this } } } } From 71fa2166ee1e364cba9e25c6b47c738d95160378 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 22 Apr 2026 17:06:31 +0200 Subject: [PATCH 196/208] Apply suggestions from code review Co-authored-by: Anders Schack-Mulligen --- .../csharp/controlflow/ControlFlowGraph.qll | 3 +- .../codeql/controlflow/ControlFlowGraph.qll | 45 ++++++++++--------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 947f9ae4d5c..09f65034f6d 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -82,8 +82,7 @@ private module Ast implements AstSig { AstNode callableGetBody(Callable c) { not skipControlFlow(result) and - result = c.getBody() and - not c instanceof Constructor // handled in `callableGetBodyPart` + result = c.getBody() } class Stmt = CS::Stmt; diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index ed1bfba3177..1d34992de27 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -469,8 +469,9 @@ module Make0 Ast> { * Gets the `index`th part of the body of `c` in context `ctx`. The indices do not * need to be consecutive nor start from a specific index. * - * `callableGetBodyPart(c, _, _)` and `callableGetBody(c)` must never both hold - * for a given callable `c`. + * This overrides the default CFG for a `Callable` with sequential evaluation + * of the body parts, in case a singleton `callableGetBody(c)` is inadequate + * to describe the child nodes of `c`. */ default AstNode callableGetBodyPart(Callable c, CallableBodyPartContext ctx, int index) { none() @@ -682,7 +683,7 @@ module Make0 Ast> { * not step to it, since "after" represents normal termination). */ - private predicate isCallableBodyPart(Callable c, AstNode n) { + private predicate callableHasBodyPart(Callable c, AstNode n) { n = callableGetBody(c) or n = Input1::callableGetBodyPart(c, _, _) } @@ -696,13 +697,15 @@ module Make0 Ast> { } private AstNode getBodyEntry(Callable c) { - result = callableGetBody(c) + result = callableGetBody(c) and + not exists(getRankedBodyPart(c, _, _)) or result = getRankedBodyPart(c, _, 1) } private AstNode getBodyExit(Callable c) { - result = callableGetBody(c) + result = callableGetBody(c) and + not exists(getRankedBodyPart(c, _, _)) or exists(Input1::CallableBodyPartContext ctx, int last | result = getRankedBodyPart(c, ctx, last) and @@ -726,9 +729,9 @@ module Make0 Ast> { TAdditionalNode(AstNode n, string tag) { additionalNode(n, tag, _) and exists(getEnclosingCallable(n)) } or - TEntryNode(Callable c) { isCallableBodyPart(c, _) } or - TAnnotatedExitNode(Callable c, Boolean normal) { isCallableBodyPart(c, _) } or - TExitNode(Callable c) { isCallableBodyPart(c, _) } + TEntryNode(Callable c) { callableHasBodyPart(c, _) } or + TAnnotatedExitNode(Callable c, Boolean normal) { callableHasBodyPart(c, _) } or + TExitNode(Callable c) { callableHasBodyPart(c, _) } private class NodeImpl extends TNode { /** @@ -1146,7 +1149,7 @@ module Make0 Ast> { private predicate endAbruptCompletion(AstNode ast, PreControlFlowNode n, AbruptCompletion c) { Input2::endAbruptCompletion(ast, n, c) or - exists(Callable callable | isCallableBodyPart(callable, ast) | + exists(Callable callable | callableHasBodyPart(callable, ast) | c.getSuccessorType() instanceof ReturnSuccessor and n.(NormalExitNodeImpl).getEnclosingCallable() = callable or @@ -1312,6 +1315,11 @@ module Make0 Ast> { n1.(EntryNodeImpl).getEnclosingCallable() = c and n2.isBefore(getBodyEntry(c)) or + exists(Input1::CallableBodyPartContext ctx, int i | + n1.isAfter(getRankedBodyPart(c, ctx, i)) and + n2.isBefore(getRankedBodyPart(c, ctx, i + 1)) + ) + or n1.isAfter(getBodyExit(c)) and n2.(NormalExitNodeImpl).getEnclosingCallable() = c or @@ -1692,17 +1700,9 @@ module Make0 Ast> { n1.isBefore(ast) and n2.isBefore(getRankedChild(ast, 1)) or - exists(int i, AstNode prev, AstNode next | - n1.isAfter(prev) and - n2.isBefore(next) - | - prev = getRankedChild(ast, i) and - next = getRankedChild(ast, i + 1) - or - exists(Input1::CallableBodyPartContext ctx | - prev = getRankedBodyPart(ast, ctx, i) and - next = getRankedBodyPart(ast, ctx, i + 1) - ) + exists(int i | + n1.isAfter(getRankedChild(ast, i)) and + n2.isBefore(getRankedChild(ast, i + 1)) ) or ( @@ -2180,11 +2180,12 @@ module Make0 Ast> { } /** - * Holds if `c` is included in both `callableGetBody` and `callableGetBodyPart`. + * Holds if `c` does not include `callableGetBody` in a non-empty `callableGetBodyPart`. */ query predicate bodyPartOverlap(Callable c) { exists(callableGetBody(c)) and - exists(Input1::callableGetBodyPart(c, _, _)) + exists(Input1::callableGetBodyPart(c, _, _)) and + not Input1::callableGetBodyPart(c, _, _) = callableGetBody(c) } } } From 076b020dc42b0e7da2d4777be83c5580202b4926 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 23 Apr 2026 10:37:12 +0200 Subject: [PATCH 197/208] Fix two `QualifiedName` join orders Before on `StanfordLegion__legion` with `cpp/throwing-pointer`: ``` Pipeline standard for QualifiedName::Namespace.getQualifiedName/0#cbc0648a@7ff329j5 was evaluated in 2 iterations totaling 0ms (delta sizes total: 70). 162061 ~0% {2} r1 = JOIN `QualifiedName::Namespace.getQualifiedName/0#cbc0648a#prev_delta` WITH namespacembrs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 70 ~2% {4} | JOIN WITH namespaces ON FIRST 1 OUTPUT Lhs.0, _, Lhs.1, Rhs.1 70 ~0% {2} | REWRITE WITH Tmp.1 := "::", Out.1 := (In.2 ++ Tmp.1 ++ In.3) KEEPING 2 70 ~0% {2} | AND NOT `QualifiedName::Namespace.getQualifiedName/0#cbc0648a#prev`(FIRST 2) return r1 Pipeline standard for QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1@cfd47189 was evaluated in 2 iterations totaling 3ms (delta sizes total: 85). 12 ~0% {2} r1 = JOIN `QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1#prev_delta` WITH _#namespace_inlineMerge_#namespacembrsMerge#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 162417 ~0% {2} r2 = JOIN `QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1#prev_delta` WITH namespacembrs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 73 ~1% {4} | JOIN WITH namespaces ON FIRST 1 OUTPUT Lhs.0, _, Lhs.1, Rhs.1 73 ~0% {2} | REWRITE WITH Tmp.1 := "::", Out.1 := (In.2 ++ Tmp.1 ++ In.3) KEEPING 2 85 ~0% {2} r3 = r1 UNION r2 85 ~0% {2} | AND NOT `QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1#prev`(FIRST 2) return r3 ``` After: ``` Pipeline standard for QualifiedName::Namespace.getQualifiedName/0#cbc0648a@91677d3f was evaluated in 2 iterations totaling 0ms (delta sizes total: 70). 70 ~0% {4} r1 = JOIN `QualifiedName::Namespace.getQualifiedName/0#cbc0648a#prev_delta` WITH _#namespacembrsMerge_1#antijoin_rhs_#namespacembrsMerge_10#join_rhs_#namespacesMerge#join_rhs ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1, Rhs.2 70 ~0% {2} | REWRITE WITH Tmp.1 := "::", Out.1 := (In.2 ++ Tmp.1 ++ In.3) KEEPING 2 70 ~0% {2} | AND NOT `QualifiedName::Namespace.getQualifiedName/0#cbc0648a#prev`(FIRST 2) return r1 Pipeline standard for QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1@3bbc99mb was evaluated in 2 iterations totaling 0ms (delta sizes total: 85). 12 ~0% {2} r1 = JOIN `QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1#prev_delta` WITH _#namespace_inlineMerge_#namespacembrsMerge_1#antijoin_rhs__#namespacembrsMerge_#namespacembrsMerge___#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 73 ~0% {4} r2 = JOIN `QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1#prev_delta` WITH _#namespacembrsMerge_1#antijoin_rhs_#namespacesMerge__#namespacembrsMerge_#namespacembrsMerge_10#joi__#join_rhs ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1, Rhs.2 73 ~1% {2} | REWRITE WITH Tmp.1 := "::", Out.1 := (In.2 ++ Tmp.1 ++ In.3) KEEPING 2 85 ~0% {2} r3 = r1 UNION r2 85 ~0% {2} | AND NOT `QualifiedName::Namespace.getAQualifierForMembers/0#132b16e1#prev`(FIRST 2) return r3 ``` --- cpp/ql/lib/semmle/code/cpp/internal/QualifiedName.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/internal/QualifiedName.qll b/cpp/ql/lib/semmle/code/cpp/internal/QualifiedName.qll index 5974603e33f..967016774d8 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/QualifiedName.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/QualifiedName.qll @@ -18,7 +18,7 @@ class Namespace extends @namespace { if namespacembrs(_, this) then exists(Namespace ns | - namespacembrs(ns, this) and + namespacembrs(ns, pragma[only_bind_out](this)) and result = ns.getQualifiedName() + "::" + this.getName() ) else result = this.getName() @@ -37,7 +37,7 @@ class Namespace extends @namespace { string getAQualifierForMembers() { if namespacembrs(_, this) then - exists(Namespace ns | namespacembrs(ns, this) | + exists(Namespace ns | namespacembrs(ns, pragma[only_bind_out](this)) | result = ns.getAQualifierForMembers() + "::" + this.getName() or // If this is an inline namespace, its members are also visible in any From 1a84b2b555a9868a7d9929023f88fa7da99e6ca8 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 23 Apr 2026 10:01:04 +0200 Subject: [PATCH 198/208] CFG: Use dense ranking --- .../codeql/controlflow/ControlFlowGraph.qll | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll index 1d34992de27..4e8b3753129 100644 --- a/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll +++ b/shared/controlflow/codeql/controlflow/ControlFlowGraph.qll @@ -483,6 +483,8 @@ module Make0 Ast> { * by subsequent instatiation of `Make2`. */ module Make1 { + private import codeql.util.DenseRank + /** * Holds if `n` is executed in post-order or in-order. This means that an * additional node is created to represent `n` in the control flow graph. @@ -687,15 +689,20 @@ module Make0 Ast> { n = callableGetBody(c) or n = Input1::callableGetBodyPart(c, _, _) } - private AstNode getRankedBodyPart(Callable c, Input1::CallableBodyPartContext ctx, int rnk) { - result = - rank[rnk](AstNode child, int ix | - child = Input1::callableGetBodyPart(c, ctx, ix) - | - child order by ix - ) + private module BodyPartDenseRankInput implements DenseRankInputSig2 { + class C1 = Callable; + + class C2 = Input1::CallableBodyPartContext; + + class Ranked = AstNode; + + int getRank(C1 c, C2 ctx, Ranked child) { + child = Input1::callableGetBodyPart(c, ctx, result) + } } + private predicate getRankedBodyPart = DenseRank2::denseRank/3; + private AstNode getBodyEntry(Callable c) { result = callableGetBody(c) and not exists(getRankedBodyPart(c, _, _)) @@ -1247,10 +1254,16 @@ module Make0 Ast> { ) } - private Case getRankedCaseCfgOrder(Switch s, int rnk) { - result = rank[rnk](Case c, int i | getCaseControlFlowOrder(s, c) = i | c order by i) + private module CaseDenseRankInput implements DenseRankInputSig1 { + class C = Switch; + + class Ranked = Case; + + predicate getRank = getCaseControlFlowOrder/2; } + private predicate getRankedCaseCfgOrder = DenseRank1::denseRank/2; + private int numberOfStmts(Switch s) { result = strictcount(s.getStmt(_)) } private predicate caseIndex(Switch s, Case c, int caseIdx, int caseStmtPos) { @@ -1685,11 +1698,19 @@ module Make0 Ast> { not explicitStep(any(PreControlFlowNode n | n.isBefore(ast)), _) } - private AstNode getRankedChild(AstNode parent, int rnk) { - defaultCfg(parent) and - result = rank[rnk](AstNode c, int ix | c = getChild(parent, ix) | c order by ix) + private module ChildDenseRankInput implements DenseRankInputSig1 { + class C = AstNode; + + class Ranked = AstNode; + + int getRank(C parent, Ranked child) { + defaultCfg(parent) and + child = getChild(parent, result) + } } + private predicate getRankedChild = DenseRank1::denseRank/2; + /** * Holds if `n1` to `n2` is a default left-to-right evaluation step for * an `AstNode` that does not otherwise have explicitly defined control From 90ae086822b3d8c0cbf6f4c94c7f49cf6eb4f400 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 23 Apr 2026 11:07:14 +0200 Subject: [PATCH 199/208] Shared: Remove deprecated code --- shared/controlflow/codeql/controlflow/Cfg.qll | 11 - shared/dataflow/codeql/dataflow/DataFlow.qll | 26 - .../codeql/dataflow/internal/DataFlowImpl.qll | 30 - .../dataflow/internal/DataFlowImplCommon.qll | 20 - .../dataflow/internal/DataFlowImplStage1.qll | 15 - shared/ssa/codeql/ssa/Ssa.qll | 619 +----------------- 6 files changed, 21 insertions(+), 700 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Cfg.qll b/shared/controlflow/codeql/controlflow/Cfg.qll index 157bf0ffd4f..02ada45bef6 100644 --- a/shared/controlflow/codeql/controlflow/Cfg.qll +++ b/shared/controlflow/codeql/controlflow/Cfg.qll @@ -252,20 +252,9 @@ module MakeWithSplitting< rank[i + 1](ControlFlowTree child, int j | child = this.getChildNode(j) | child order by j) } - /** Gets the first child node of this element. */ - deprecated final AstNode getFirstChildNode() { result = this.getChildTreeRanked(0) } - /** Gets the first child node of this element. */ final ControlFlowTree getFirstChildTree() { result = this.getChildTreeRanked(0) } - /** Gets the last child node of this node. */ - deprecated final AstNode getLastChildElement() { - exists(int last | - result = this.getChildTreeRanked(last) and - not exists(this.getChildTreeRanked(last + 1)) - ) - } - /** Gets the last child node of this node. */ final ControlFlowTree getLastChildTree() { exists(int last | diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index cacd52cf839..53da239d83e 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -784,19 +784,6 @@ private module DataFlowMakeCore Lang> { /** Gets the location of this node. */ Location getLocation() { result = this.getNode().getLocation() } - - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - deprecated predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } } /** @@ -853,19 +840,6 @@ private module DataFlowMakeCore Lang> { /** Gets a textual representation of this element. */ string toString() { result = super.toString() } - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - deprecated predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** Gets the underlying `Node`. */ Node getNode() { result = super.getNode() } diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index ed0412d1cd4..3af6b9eab99 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -2531,36 +2531,6 @@ module MakeImpl Lang> { /** Holds if this node is a sink. */ final predicate isSink() { this instanceof PathNodeSink } - - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - overlay[caller?] - pragma[inline] - deprecated final predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getLocation() - .hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - - /** - * DEPRECATED: This functionality is no longer available. - * - * Holds if this node is a grouping of source nodes. - */ - deprecated final predicate isSourceGroup(string group) { none() } - - /** - * DEPRECATED: This functionality is no longer available. - * - * Holds if this node is a grouping of sink nodes. - */ - deprecated final predicate isSinkGroup(string group) { none() } } /** Holds if `n1.getASuccessor() = n2` and `n2` can reach a sink. */ diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index 962a58c26f9..c64f0edb846 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -27,26 +27,6 @@ module MakeImplCommon Lang> { private import Aliases module DataFlowImplCommonPublic { - /** - * DEPRECATED: Generally, a custom `FlowState` type should be used instead, - * but `string` can of course still be used without referring to this - * module. - * - * Provides `FlowState = string`. - */ - deprecated module FlowStateString { - /** A state value to track during data flow. */ - deprecated class FlowState = string; - - /** - * The default state, which is used when the state is unspecified for a source - * or a sink. - */ - deprecated class FlowStateEmpty extends FlowState { - FlowStateEmpty() { this = "" } - } - } - private newtype TFlowFeature = TFeatureHasSourceCallContext() or TFeatureHasSinkCallContext() or diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll index b7a45a67b56..7c9881c90d7 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll @@ -1847,21 +1847,6 @@ module MakeImplStage1 Lang> { /** Gets the location of this node. */ Location getLocation() { result = this.getNodeEx().getLocation() } - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - overlay[caller?] - pragma[inline] - deprecated predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** Gets the underlying `Node`. */ final Node getNode() { this.getNodeEx().projectToNode() = result } diff --git a/shared/ssa/codeql/ssa/Ssa.qll b/shared/ssa/codeql/ssa/Ssa.qll index cb2d527c964..8d6b960b283 100644 --- a/shared/ssa/codeql/ssa/Ssa.qll +++ b/shared/ssa/codeql/ssa/Ssa.qll @@ -474,7 +474,7 @@ module Make< private class TDefinition = TWriteDef or TPhiNode; - private module SsaDefReachesNew { + private module SsaDefReaches { /** * Holds if the `i`th node of basic block `bb` is a reference to `v`, * either a read (when `k` is `Read()`) or an SSA definition (when @@ -737,352 +737,12 @@ module Make< ) } - private module SsaDefReaches { - deprecated newtype TSsaRefKind = - SsaActualRead() or - SsaPhiRead() or - SsaDef() - - deprecated class SsaRead = SsaActualRead or SsaPhiRead; - - deprecated class SsaDefExt = SsaDef or SsaPhiRead; - - deprecated SsaDefExt ssaDefExt() { any() } - - /** - * A classification of SSA variable references into reads and definitions. - */ - deprecated class SsaRefKind extends TSsaRefKind { - string toString() { - this = SsaActualRead() and - result = "SsaActualRead" - or - this = SsaPhiRead() and - result = "SsaPhiRead" - or - this = SsaDef() and - result = "SsaDef" - } - - int getOrder() { - this instanceof SsaRead and - result = 0 - or - this = SsaDef() and - result = 1 - } - } - - /** - * Holds if the `i`th node of basic block `bb` is a reference to `v`, - * either a read (when `k` is `SsaActualRead()`), an SSA definition (when `k` - * is `SsaDef()`), or a phi-read (when `k` is `SsaPhiRead()`). - * - * Unlike `Liveness::varRef`, this includes `phi` (read) nodes. - */ - pragma[nomagic] - deprecated predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) { - variableRead(bb, i, v, _) and - k = SsaActualRead() - or - any(Definition def).definesAt(v, bb, i) and - k = SsaDef() - or - synthPhiRead(bb, v) and i = -1 and k = SsaPhiRead() - } - - /** - * Holds if the `i`th node of basic block `bb` is a reference to `v`, and - * this reference is not a phi-read. - */ - deprecated predicate ssaRefNonPhiRead(BasicBlock bb, int i, SourceVariable v) { - ssaRef(bb, i, v, [SsaActualRead().(TSsaRefKind), SsaDef()]) - } - - deprecated private newtype OrderedSsaRefIndex = - deprecated MkOrderedSsaRefIndex(int i, SsaRefKind k) { ssaRef(_, i, _, k) } - - deprecated private OrderedSsaRefIndex ssaRefOrd( - BasicBlock bb, int i, SourceVariable v, SsaRefKind k, int ord - ) { - ssaRef(bb, i, v, k) and - result = MkOrderedSsaRefIndex(i, k) and - ord = k.getOrder() - } - - /** - * Gets the (1-based) rank of the reference to `v` at the `i`th node of basic - * block `bb`, which has the given reference kind `k`. - * - * For example, if `bb` is a basic block with a phi node for `v` (considered - * to be at index -1), reads `v` at node 2, and defines it at node 5, we have: - * - * ```ql - * ssaRefRank(bb, -1, v, SsaDef()) = 1 // phi node - * ssaRefRank(bb, 2, v, Read()) = 2 // read at node 2 - * ssaRefRank(bb, 5, v, SsaDef()) = 3 // definition at node 5 - * ``` - * - * Reads are considered before writes when they happen at the same index. - */ - deprecated int ssaRefRank(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) { - ssaRefOrd(bb, i, v, k, _) = - rank[result](int j, int ord, OrderedSsaRefIndex res | - res = ssaRefOrd(bb, j, v, _, ord) - | - res order by j, ord - ) - } - - deprecated int maxSsaRefRank(BasicBlock bb, SourceVariable v) { - result = ssaRefRank(bb, _, v, _) and - not result + 1 = ssaRefRank(bb, _, v, _) - } - - /** - * Holds if the SSA definition `def` reaches rank index `rnk` in its own - * basic block `bb`. - */ - deprecated predicate ssaDefReachesRank( - BasicBlock bb, DefinitionExt def, int rnk, SourceVariable v - ) { - exists(int i | - rnk = ssaRefRank(bb, i, v, ssaDefExt()) and - def.definesAt(v, bb, i, _) - ) - or - ssaDefReachesRank(bb, def, rnk - 1, v) and - rnk = ssaRefRank(bb, _, v, SsaActualRead()) - } - - /** - * Holds if the SSA definition of `v` at `def` reaches index `i` in the same - * basic block `bb`, without crossing another SSA definition of `v`. - */ - deprecated predicate ssaDefReachesReadWithinBlock( - SourceVariable v, DefinitionExt def, BasicBlock bb, int i - ) { - exists(int rnk | - ssaDefReachesRank(bb, def, rnk, v) and - rnk = ssaRefRank(bb, i, v, SsaActualRead()) - ) - } - - /** - * Same as `ssaRefRank()`, but restricted to a particular SSA definition `def`. - */ - deprecated int ssaDefRank( - DefinitionExt def, SourceVariable v, BasicBlock bb, int i, SsaRefKind k - ) { - result = ssaRefRank(bb, i, v, k) and - ( - ssaDefReachesReadExt(v, def, bb, i) - or - def.definesAt(v, bb, i, k) - ) - } - - /** - * Holds if the reference to `def` at index `i` in basic block `bb` is the - * last reference to `v` inside `bb`. - */ - pragma[noinline] - deprecated predicate lastSsaRefExt(DefinitionExt def, SourceVariable v, BasicBlock bb, int i) { - ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v) - } - - /** Gets a phi-read node into which `inp` is an input, if any. */ - pragma[nomagic] - deprecated private DefinitionExt getAPhiReadOutput(DefinitionExt inp) { - phiHasInputFromBlockExt(result.(PhiReadNode), inp, _) - } - - pragma[nomagic] - deprecated DefinitionExt getAnUltimateOutput(Definition def) { - result = getAPhiReadOutput*(def) - } - - /** - * Same as `lastSsaRefExt`, but ignores phi-reads. - */ - pragma[noinline] - deprecated predicate lastSsaRef(Definition def, SourceVariable v, BasicBlock bb, int i) { - lastSsaRefExt(getAnUltimateOutput(def), v, bb, i) and - ssaRefNonPhiRead(bb, i, v) - } - - deprecated predicate defOccursInBlock( - DefinitionExt def, BasicBlock bb, SourceVariable v, SsaRefKind k - ) { - exists(ssaDefRank(def, v, bb, _, k)) - } - - pragma[noinline] - deprecated predicate ssaDefReachesThroughBlock(DefinitionExt def, BasicBlock bb) { - exists(SourceVariable v | - ssaDefReachesEndOfBlockExt0(bb, def, v) and - not defOccursInBlock(_, bb, v, _) - ) - } - - /** - * Holds if `def` is accessed in basic block `bb1` (either a read or a write), - * `bb2` is a transitive successor of `bb1`, `def` is live at the end of _some_ - * predecessor of `bb2`, and the underlying variable for `def` is neither read - * nor written in any block on the path between `bb1` and `bb2`. - */ - pragma[nomagic] - deprecated predicate varBlockReachesExt( - DefinitionExt def, SourceVariable v, BasicBlock bb1, BasicBlock bb2 - ) { - defOccursInBlock(def, bb1, v, _) and - bb2 = bb1.getASuccessor() - or - exists(BasicBlock mid | - varBlockReachesExt(def, v, bb1, mid) and - ssaDefReachesThroughBlock(def, mid) and - bb2 = mid.getASuccessor() - ) - } - - pragma[nomagic] - deprecated private predicate phiReadStep( - DefinitionExt def, PhiReadNode phi, BasicBlock bb1, BasicBlock bb2 - ) { - exists(SourceVariable v | - varBlockReachesExt(pragma[only_bind_into](def), v, bb1, pragma[only_bind_into](bb2)) and - phi.definesAt(v, bb2, _, _) and - not varRef(bb2, _, v, _) - ) - } - - pragma[nomagic] - deprecated private predicate varBlockReachesExclPhiRead( - DefinitionExt def, SourceVariable v, BasicBlock bb1, BasicBlock bb2 - ) { - varBlockReachesExt(def, v, bb1, bb2) and - ssaRefNonPhiRead(bb2, _, v) - or - exists(PhiReadNode phi, BasicBlock mid | - varBlockReachesExclPhiRead(phi, v, mid, bb2) and - phiReadStep(def, phi, bb1, mid) - ) - } - - /** - * Same as `varBlockReachesExt`, but ignores phi-reads, and furthermore - * `bb2` is restricted to blocks in which the underlying variable `v` of - * `def` is referenced (either a read or a write). - */ - pragma[nomagic] - deprecated predicate varBlockReachesRef( - Definition def, SourceVariable v, BasicBlock bb1, BasicBlock bb2 - ) { - varBlockReachesExclPhiRead(getAnUltimateOutput(def), v, bb1, bb2) and - ssaRefNonPhiRead(bb1, _, v) - } - - pragma[nomagic] - deprecated predicate defAdjacentReadExt( - DefinitionExt def, BasicBlock bb1, BasicBlock bb2, int i2 - ) { - exists(SourceVariable v | - varBlockReachesExt(def, v, bb1, bb2) and - ssaRefRank(bb2, i2, v, SsaActualRead()) = 1 - ) - } - - pragma[nomagic] - deprecated predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) { - exists(SourceVariable v | varBlockReachesRef(def, v, bb1, bb2) | - ssaRefRank(bb2, i2, v, SsaActualRead()) = 1 - or - ssaRefRank(bb2, _, v, SsaPhiRead()) = 1 and - ssaRefRank(bb2, i2, v, SsaActualRead()) = 2 - ) - } - - /** - * Holds if `def` is accessed in basic block `bb` (either a read or a write), - * `bb` can reach a transitive successor `bb2` where `def` is no longer live, - * and `v` is neither read nor written in any block on the path between `bb` - * and `bb2`. - */ - pragma[nomagic] - deprecated predicate varBlockReachesExitExt(DefinitionExt def, BasicBlock bb) { - exists(BasicBlock bb2 | varBlockReachesExt(def, _, bb, bb2) | - not defOccursInBlock(def, bb2, _, _) and - not ssaDefReachesEndOfBlockExt0(bb2, def, _) - ) - } - - pragma[nomagic] - deprecated private predicate varBlockReachesExitExclPhiRead(DefinitionExt def, BasicBlock bb) { - exists(BasicBlock bb2, SourceVariable v | - varBlockReachesExt(def, v, bb, bb2) and - not defOccursInBlock(def, bb2, _, _) and - not ssaDefReachesEndOfBlockExt0(bb2, def, _) and - not any(PhiReadNode phi).definesAt(v, bb2, _, _) - ) - or - exists(PhiReadNode phi, BasicBlock bb2 | - varBlockReachesExitExclPhiRead(phi, bb2) and - phiReadStep(def, phi, bb, bb2) - ) - } - - /** - * Same as `varBlockReachesExitExt`, but ignores phi-reads. - */ - pragma[nomagic] - deprecated predicate varBlockReachesExit(Definition def, BasicBlock bb) { - varBlockReachesExitExclPhiRead(getAnUltimateOutput(def), bb) - } - } - - private import SsaDefReaches - - pragma[nomagic] - deprecated private predicate liveThroughExt(BasicBlock bb, SourceVariable v) { - liveAtExit(bb, v) and - not ssaRef(bb, _, v, ssaDefExt()) - } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Holds if the SSA definition of `v` at `def` reaches the end of basic - * block `bb`, at which point it is still live, without crossing another - * SSA definition of `v`. - */ - pragma[nomagic] - deprecated private predicate ssaDefReachesEndOfBlockExt0( - BasicBlock bb, DefinitionExt def, SourceVariable v - ) { - exists(int last | - last = maxSsaRefRank(pragma[only_bind_into](bb), pragma[only_bind_into](v)) and - ssaDefReachesRank(bb, def, last, v) and - liveAtExit(bb, v) - ) - or - // The construction of SSA form ensures that each read of a variable is - // dominated by its definition. An SSA definition therefore reaches a - // control flow node if it is the _closest_ SSA definition that dominates - // the node. If two definitions dominate a node then one must dominate the - // other, so therefore the definition of _closest_ is given by the dominator - // tree. Thus, reaching definitions can be calculated in terms of dominance. - ssaDefReachesEndOfBlockExt0(bb.getImmediateDominator(), def, pragma[only_bind_into](v)) and - liveThroughExt(bb, pragma[only_bind_into](v)) - } - - deprecated predicate ssaDefReachesEndOfBlockExt = ssaDefReachesEndOfBlockExt0/3; - /** * NB: If this predicate is exposed, it should be cached. * * Same as `ssaDefReachesEndOfBlockExt`, but ignores phi-reads. */ - predicate ssaDefReachesEndOfBlock = SsaDefReachesNew::ssaDefReachesEndOfBlock/3; + predicate ssaDefReachesEndOfBlock = SsaDefReaches::ssaDefReachesEndOfBlock/3; /** * NB: If this predicate is exposed, it should be cached. @@ -1098,176 +758,16 @@ module Make< ) } - /** - * NB: If this predicate is exposed, it should be cached. - * - * Holds if `inp` is an input to the phi (read) node `phi` along the edge originating in `bb`. - */ - pragma[nomagic] - deprecated predicate phiHasInputFromBlockExt(DefinitionExt phi, DefinitionExt inp, BasicBlock bb) { - exists(SourceVariable v, BasicBlock bbDef | - phi.definesAt(v, bbDef, _, _) and - getABasicBlockPredecessor(bbDef) = bb and - ssaDefReachesEndOfBlockExt0(bb, inp, v) - | - phi instanceof PhiNode or - phi instanceof PhiReadNode - ) - } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Holds if the SSA definition of `v` at `def` reaches a read at index `i` in - * basic block `bb`, without crossing another SSA definition of `v`. - */ - pragma[nomagic] - deprecated predicate ssaDefReachesReadExt( - SourceVariable v, DefinitionExt def, BasicBlock bb, int i - ) { - ssaDefReachesReadWithinBlock(v, def, bb, i) - or - ssaRef(bb, i, v, SsaActualRead()) and - ssaDefReachesEndOfBlockExt0(getABasicBlockPredecessor(bb), def, v) and - not ssaDefReachesReadWithinBlock(v, _, bb, i) - } - /** * NB: If this predicate is exposed, it should be cached. * * Same as `ssaDefReachesReadExt`, but ignores phi-reads. */ predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) { - SsaDefReachesNew::ssaDefReachesRead(v, def, bb, i) and + SsaDefReaches::ssaDefReachesRead(v, def, bb, i) and variableRead(bb, i, v, _) } - /** - * NB: If this predicate is exposed, it should be cached. - * - * Holds if `def` is accessed at index `i1` in basic block `bb1` (either a read - * or a write), `def` is read at index `i2` in basic block `bb2`, and there is a - * path between them without any read of `def`. - */ - pragma[nomagic] - deprecated predicate adjacentDefReadExt( - DefinitionExt def, SourceVariable v, BasicBlock bb1, int i1, BasicBlock bb2, int i2 - ) { - exists(int rnk | - rnk = ssaDefRank(def, v, bb1, i1, _) and - rnk + 1 = ssaDefRank(def, v, bb1, i2, SsaActualRead()) and - variableRead(bb1, i2, v, _) and - bb2 = bb1 - ) - or - lastSsaRefExt(def, v, bb1, i1) and - defAdjacentReadExt(def, bb1, bb2, i2) - } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Same as `adjacentDefReadExt`, but ignores phi-reads. - */ - pragma[nomagic] - deprecated predicate adjacentDefRead( - Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2 - ) { - exists(SourceVariable v | - adjacentDefReadExt(getAnUltimateOutput(def), v, bb1, i1, bb2, i2) and - ssaRefNonPhiRead(bb1, i1, v) - ) - or - lastSsaRef(def, _, bb1, i1) and - defAdjacentRead(def, bb1, bb2, i2) - } - - deprecated private predicate lastRefRedefExtSameBlock( - DefinitionExt def, SourceVariable v, BasicBlock bb, int i, DefinitionExt next - ) { - exists(int rnk, int j | - rnk = ssaDefRank(def, v, bb, i, _) and - next.definesAt(v, bb, j, _) and - rnk + 1 = ssaRefRank(bb, j, v, ssaDefExt()) - ) - } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Holds if the node at index `i` in `bb` is a last reference to SSA definition - * `def`. The reference is last because it can reach another write `next`, - * without passing through another read or write. - */ - pragma[nomagic] - deprecated predicate lastRefRedefExt( - DefinitionExt def, SourceVariable v, BasicBlock bb, int i, DefinitionExt next - ) { - // Next reference to `v` inside `bb` is a write - lastRefRedefExtSameBlock(def, v, bb, i, next) - or - // Can reach a write using one or more steps - lastSsaRefExt(def, v, bb, i) and - exists(BasicBlock bb2 | - varBlockReachesExt(def, v, bb, bb2) and - 1 = ssaDefRank(next, v, bb2, _, ssaDefExt()) - ) - } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Holds if the node at index `i` in `bb` is a last reference to SSA definition - * `def`. The reference is last because it can reach another write `next`, - * without passing through another read or write. - * - * The path from node `i` in `bb` to `next` goes via basic block `input`, which is - * either a predecessor of the basic block of `next`, or `input = bb` in case `next` - * occurs in basic block `bb`. - */ - pragma[nomagic] - deprecated predicate lastRefRedefExt( - DefinitionExt def, SourceVariable v, BasicBlock bb, int i, BasicBlock input, DefinitionExt next - ) { - // Next reference to `v` inside `bb` is a write - lastRefRedefExtSameBlock(def, v, bb, i, next) and - input = bb - or - // Can reach a write using one or more steps - lastSsaRefExt(def, v, bb, i) and - exists(BasicBlock bb2 | - input = getABasicBlockPredecessor(bb2) and - 1 = ssaDefRank(next, v, bb2, _, ssaDefExt()) - | - input = bb - or - varBlockReachesExt(def, v, bb, input) and - ssaDefReachesThroughBlock(def, pragma[only_bind_into](input)) - ) - } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Same as `lastRefRedefExt`, but ignores phi-reads. - */ - pragma[nomagic] - deprecated predicate lastRefRedef(Definition def, BasicBlock bb, int i, Definition next) { - exists(SourceVariable v | - lastRefRedefExt(getAnUltimateOutput(def), v, bb, i, next) and - ssaRefNonPhiRead(bb, i, v) - ) - or - // Can reach a write using one or more steps - exists(SourceVariable v | - lastSsaRef(def, v, bb, i) and - exists(BasicBlock bb2 | - varBlockReachesRef(def, v, bb, bb2) and - 1 = ssaDefRank(next, v, bb2, _, SsaDef()) - ) - ) - } - /** * NB: If this predicate is exposed, it should be cached. * @@ -1275,55 +775,7 @@ module Make< * `def`. Since `def` is uncertain, the value from the preceding definition might * still be valid. */ - predicate uncertainWriteDefinitionInput = SsaDefReachesNew::uncertainWriteDefinitionInput/2; - - /** Holds if `bb` is a control-flow exit point. */ - private predicate exitBlock(BasicBlock bb) { not exists(bb.getASuccessor()) } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Holds if the node at index `i` in `bb` is a last reference to SSA - * definition `def`. - * - * That is, the node can reach the end of the enclosing callable, or another - * SSA definition for the underlying source variable, without passing through - * another read. - */ - pragma[nomagic] - deprecated predicate lastRefExt(DefinitionExt def, BasicBlock bb, int i) { - // Can reach another definition - lastRefRedefExt(def, _, bb, i, _) - or - lastSsaRefExt(def, _, bb, i) and - ( - // Can reach exit directly - exitBlock(bb) - or - // Can reach a block using one or more steps, where `def` is no longer live - varBlockReachesExitExt(def, bb) - ) - } - - /** - * NB: If this predicate is exposed, it should be cached. - * - * Same as `lastRefExt`, but ignores phi-reads. - */ - pragma[nomagic] - deprecated predicate lastRef(Definition def, BasicBlock bb, int i) { - // Can reach another definition - lastRefRedef(def, bb, i, _) - or - lastSsaRef(def, _, bb, i) and - ( - // Can reach exit directly - exitBlock(bb) - or - // Can reach a block using one or more steps, where `def` is no longer live - varBlockReachesExit(def, bb) - ) - } + predicate uncertainWriteDefinitionInput = SsaDefReaches::uncertainWriteDefinitionInput/2; /** A static single assignment (SSA) definition. */ class Definition extends TDefinition { @@ -1382,30 +834,16 @@ module Make< } } - deprecated class DefinitionExt = DefinitionExt_; - /** * An extended static single assignment (SSA) definition. * * This is either a normal SSA definition (`Definition`) or a * phi-read node (`PhiReadNode`). */ - private class DefinitionExt_ extends TDefinitionExt { + private class DefinitionExt extends TDefinitionExt { /** Gets the source variable underlying this SSA definition. */ SourceVariable getSourceVariable() { this.definesAt(result, _, _) } - /** - * Holds if this SSA definition defines `v` at index `i` in basic block `bb`. - * Phi nodes are considered to be at index `-1`, while normal variable writes - * are at the index of the control flow node they wrap. - */ - deprecated final predicate definesAt(SourceVariable v, BasicBlock bb, int i, SsaRefKind kind) { - this.(Definition).definesAt(v, bb, i) and - kind = SsaDef() - or - this = TPhiReadNode(v, bb) and i = -1 and kind = SsaPhiRead() - } - /** * Holds if this SSA definition defines `v` at index `i` in basic block `bb`. * Phi nodes are considered to be at index `-1`, while normal variable writes @@ -1427,8 +865,6 @@ module Make< Location getLocation() { result = this.(Definition).getLocation() } } - deprecated class PhiReadNode = PhiReadNode_; - /** * A phi-read node. * @@ -1510,7 +946,7 @@ module Make< * to `phi-read` goes through a dominance-frontier block, and hence a phi node, * which contradicts reachability. */ - private class PhiReadNode_ extends DefinitionExt_, TPhiReadNode { + private class PhiReadNode extends DefinitionExt, TPhiReadNode { override string toString() { result = "SSA phi read(" + this.getSourceVariable() + ")" } override Location getLocation() { result = this.getBasicBlock().getLocation() } @@ -1823,11 +1259,11 @@ module Make< /** Holds if a read is not dominated by a definition. */ query predicate notDominatedByDef(Definition def, SourceVariable v, BasicBlock bb, int i) { exists(BasicBlock bbDef, int iDef | def.definesAt(v, bbDef, iDef) | - SsaDefReachesNew::ssaDefReachesReadWithinBlock(v, def, bb, i) and + SsaDefReaches::ssaDefReachesReadWithinBlock(v, def, bb, i) and (bb != bbDef or i < iDef) or ssaDefReachesRead(v, def, bb, i) and - not SsaDefReachesNew::ssaDefReachesReadWithinBlock(v, def, bb, i) and + not SsaDefReaches::ssaDefReachesReadWithinBlock(v, def, bb, i) and not def.definesAt(v, bb.getImmediateDominator*(), _) ) } @@ -2048,14 +1484,14 @@ module Make< module DataFlowIntegration { private import codeql.util.Boolean - final private class DefinitionExtFinal = DefinitionExt_; + final private class DefinitionExtFinal = DefinitionExt; /** An SSA definition which is either a phi node or a phi read node. */ private class SsaPhiExt extends DefinitionExtFinal { SsaPhiExt() { this instanceof PhiNode or - this instanceof PhiReadNode_ + this instanceof PhiReadNode } } @@ -2222,13 +1658,13 @@ module Make< private newtype TNode = TWriteDefSource(WriteDefinition def) { DfInput::ssaDefHasSource(def) } or TExprNode(DfInput::Expr e, Boolean isPost) { e = DfInput::getARead(_) } or - TSsaDefinitionNode(DefinitionExt_ def) { + TSsaDefinitionNode(DefinitionExt def) { not phiHasUniqNextNode(def) and if DfInput::includeWriteDefsInFlowStep() then any() else ( def instanceof PhiNode or - def instanceof PhiReadNode_ or + def instanceof PhiReadNode or DfInput::allowFlowIntoUncertainDef(def) ) } or @@ -2330,9 +1766,6 @@ module Make< /** A synthesized SSA data flow node. */ abstract private class SsaNodeImpl extends NodeImpl { - /** Gets the underlying SSA definition. */ - abstract deprecated DefinitionExt getDefinitionExt(); - /** Gets the SSA definition this node corresponds to, if any. */ Definition asDefinition() { this = TSsaDefinitionNode(result) } @@ -2354,14 +1787,12 @@ module Make< /** An SSA definition, viewed as a node in a data flow graph. */ private class SsaDefinitionExtNodeImpl extends SsaNodeImpl, TSsaDefinitionNode { - private DefinitionExt_ def; + private DefinitionExt def; SsaDefinitionExtNodeImpl() { this = TSsaDefinitionNode(def) } /** Gets the corresponding `DefinitionExt`. */ - DefinitionExt_ getDefExt() { result = def } - - deprecated override DefinitionExt getDefinitionExt() { result = def } + DefinitionExt getDefExt() { result = def } override BasicBlock getBasicBlock() { result = def.getBasicBlock() } @@ -2374,8 +1805,6 @@ module Make< override string toString() { result = def.toString() } } - deprecated final class SsaDefinitionExtNode = SsaDefinitionExtNodeImpl; - /** An SSA definition, viewed as a node in a data flow graph. */ private class SsaDefinitionNodeImpl extends SsaDefinitionExtNodeImpl { private Definition def; @@ -2391,7 +1820,7 @@ module Make< /** A node that represents a synthetic read of a source variable. */ final class SsaSynthReadNode extends SsaNode { SsaSynthReadNode() { - this.(SsaDefinitionExtNodeImpl).getDefExt() instanceof PhiReadNode_ or + this.(SsaDefinitionExtNodeImpl).getDefExt() instanceof PhiReadNode or this instanceof SsaInputNodeImpl } } @@ -2438,15 +1867,13 @@ module Make< SsaInputNodeImpl() { this = TSsaInputNode(def_, input_) } /** Holds if this node represents input into SSA definition `def` via basic block `input`. */ - predicate isInputInto(DefinitionExt_ def, BasicBlock input) { + predicate isInputInto(DefinitionExt def, BasicBlock input) { def = def_ and input = input_ } SsaPhiExt getPhi() { result = def_ } - deprecated override SsaPhiExt getDefinitionExt() { result = def_ } - override BasicBlock getBasicBlock() { result = input_ } override int getIndex() { result = input_.length() } @@ -2458,8 +1885,6 @@ module Make< override string toString() { result = "[input] " + def_.toString() } } - deprecated final class SsaInputNode = SsaInputNodeImpl; - /** * Holds if `nodeFrom` corresponds to the reference to `v` at index `i` in * `bb`. The boolean `isUseStep` indicates whether `nodeFrom` is an actual @@ -2469,7 +1894,7 @@ module Make< private predicate flowOutOf( Node nodeFrom, SourceVariable v, BasicBlock bb, int i, boolean isUseStep ) { - exists(DefinitionExt_ def | + exists(DefinitionExt def | nodeFrom.(SsaDefinitionExtNodeImpl).getDefExt() = def and def.definesAt(v, bb, i) and isUseStep = false @@ -2497,7 +1922,7 @@ module Make< ) or // Flow from definition/read to phi input - exists(BasicBlock input, BasicBlock bbPhi, DefinitionExt_ phi | + exists(BasicBlock input, BasicBlock bbPhi, DefinitionExt phi | AdjacentSsaRefs::adjacentRefPhi(bb1, i1, input, bbPhi, v) and phi.definesAt(v, bbPhi, -1) | @@ -2507,9 +1932,7 @@ module Make< ) } - private predicate flowIntoPhi( - DefinitionExt_ phi, SourceVariable v, BasicBlock bbPhi, Node nodeTo - ) { + private predicate flowIntoPhi(DefinitionExt phi, SourceVariable v, BasicBlock bbPhi, Node nodeTo) { phi.definesAt(v, bbPhi, -1) and if phiHasUniqNextNode(phi) then flowFromRefToNode(v, bbPhi, -1, nodeTo) @@ -2545,7 +1968,7 @@ module Make< ) or // Flow from input node to def - exists(DefinitionExt_ phi | + exists(DefinitionExt phi | phi = nodeFrom.(SsaInputNodeImpl).getPhi() and isUseStep = false and nodeFrom != nodeTo and @@ -2565,7 +1988,7 @@ module Make< ) or // Flow from SSA definition to read - exists(DefinitionExt_ def | + exists(DefinitionExt def | nodeFrom.(SsaDefinitionExtNodeImpl).getDefExt() = def and nodeTo.(ExprNode).getExpr() = DfInput::getARead(def) and v = def.getSourceVariable() From 14dd72b3b1c6e485f4eba920a5dc40fbb3890c4d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 23 Apr 2026 11:28:33 +0200 Subject: [PATCH 200/208] C#: Remove deprecated references to deprecated shared code --- .../lib/semmle/code/csharp/dataflow/SSA.qll | 63 ------------------- .../code/csharp/dataflow/internal/SsaImpl.qll | 55 ---------------- 2 files changed, 118 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index ae875e97c6d..92149e02640 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -311,69 +311,6 @@ module Ssa { result.getControlFlowNode() = cfn } - /** - * Gets a last read of the source variable underlying this SSA definition. - * That is, a read that can reach the end of the enclosing callable, or - * another SSA definition for the source variable, without passing through - * any other read. Example: - * - * ```csharp - * int Field; - * - * void SetField(int i) { - * this.Field = i; - * Use(this.Field); - * if (i > 0) - * this.Field = i - 1; - * else if (i < 0) - * SetField(1); - * Use(this.Field); - * Use(this.Field); - * } - * ``` - * - * - The reads of `i` on lines 7 and 8 are the last reads for the implicit - * parameter definition on line 3. - * - The read of `this.Field` on line 5 is a last read of the definition on - * line 4. - * - The read of `this.Field` on line 11 is a last read of the phi node - * between lines 9 and 10. - */ - deprecated final AssignableRead getALastRead() { result = this.getALastReadAtNode(_) } - - /** - * Gets a last read of the source variable underlying this SSA definition at - * control flow node `cfn`. That is, a read that can reach the end of the - * enclosing callable, or another SSA definition for the source variable, - * without passing through any other read. Example: - * - * ```csharp - * int Field; - * - * void SetField(int i) { - * this.Field = i; - * Use(this.Field); - * if (i > 0) - * this.Field = i - 1; - * else if (i < 0) - * SetField(1); - * Use(this.Field); - * Use(this.Field); - * } - * ``` - * - * - The reads of `i` on lines 7 and 8 are the last reads for the implicit - * parameter definition on line 3. - * - The read of `this.Field` on line 5 is a last read of the definition on - * line 4. - * - The read of `this.Field` on line 11 is a last read of the phi node - * between lines 9 and 10. - */ - deprecated final AssignableRead getALastReadAtNode(ControlFlowNode cfn) { - SsaImpl::lastReadSameVar(this, cfn) and - result.getControlFlowNode() = cfn - } - /** * Gets an SSA definition whose value can flow to this one in one step. This * includes inputs to phi nodes and the prior definitions of uncertain writes. 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 0a8a4680191..6e933c6a8e0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -713,61 +713,6 @@ private predicate variableReadPseudo(BasicBlock bb, int i, Ssa::SourceVariable v refReadBeforeWrite(bb, i, v) } -pragma[noinline] -deprecated private predicate adjacentDefRead( - Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2, SsaInput::SourceVariable v -) { - Impl::adjacentDefRead(def, bb1, i1, bb2, i2) and - v = def.getSourceVariable() -} - -deprecated private predicate adjacentDefReachesRead( - Definition def, SsaInput::SourceVariable v, BasicBlock bb1, int i1, BasicBlock bb2, int i2 -) { - adjacentDefRead(def, bb1, i1, bb2, i2, v) and - ( - def.definesAt(v, bb1, i1) - or - SsaInput::variableRead(bb1, i1, v, true) - ) - or - exists(BasicBlock bb3, int i3 | - adjacentDefReachesRead(def, v, bb1, i1, bb3, i3) and - SsaInput::variableRead(bb3, i3, _, false) and - Impl::adjacentDefRead(def, bb3, i3, bb2, i2) - ) -} - -deprecated private predicate adjacentDefReachesUncertainRead( - Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2 -) { - exists(SsaInput::SourceVariable v | - adjacentDefReachesRead(def, v, bb1, i1, bb2, i2) and - SsaInput::variableRead(bb2, i2, v, false) - ) -} - -/** Same as `lastRefRedef`, but skips uncertain reads. */ -pragma[nomagic] -deprecated private predicate lastRefSkipUncertainReads(Definition def, BasicBlock bb, int i) { - Impl::lastRef(def, bb, i) and - not SsaInput::variableRead(bb, i, def.getSourceVariable(), false) - or - exists(BasicBlock bb0, int i0 | - Impl::lastRef(def, bb0, i0) and - adjacentDefReachesUncertainRead(def, bb, i, bb0, i0) - ) -} - -pragma[nomagic] -deprecated predicate lastReadSameVar(Definition def, ControlFlowNode cfn) { - exists(BasicBlock bb, int i | - lastRefSkipUncertainReads(def, bb, i) and - variableReadActual(bb, i, _) and - cfn = bb.getNode(i) - ) -} - cached private module Cached { cached From 18da5f61cd289a96f53e30b84784df360f0e42d5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 23 Apr 2026 11:29:04 +0200 Subject: [PATCH 201/208] Ruby: Remove deprecated references to deprecated shared code --- ruby/ql/lib/codeql/ruby/dataflow/SSA.qll | 28 --------- .../codeql/ruby/dataflow/internal/SsaImpl.qll | 57 ------------------- 2 files changed, 85 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/SSA.qll b/ruby/ql/lib/codeql/ruby/dataflow/SSA.qll index 1478d9ed9d6..08ca08732b6 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/SSA.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/SSA.qll @@ -78,34 +78,6 @@ module Ssa { */ final VariableReadAccessCfgNode getAFirstRead() { SsaImpl::firstRead(this, result) } - /** - * Gets a last control-flow node that reads the value of this SSA definition. - * That is, a read that can reach the end of the enclosing CFG scope, or another - * SSA definition for the source variable, without passing through any other read. - * - * Example: - * - * ```rb - * def m b # defines b_0 - * i = 0 # defines i_0 - * puts i - * puts i + 1 # last read of i_0 - * if b # last read of b_0 - * i = 1 # defines i_1 - * puts i - * puts i + 1 # last read of i_1 - * else - * i = 2 # defines i_2 - * puts i - * puts i + 1 # last read of i_2 - * end - * # defines i_3 = phi(i_1, i_2) - * puts i # last read of i3 - * end - * ``` - */ - deprecated final VariableReadAccessCfgNode getALastRead() { SsaImpl::lastRead(this, result) } - /** * Holds if `read1` and `read2` are adjacent reads of this SSA definition. * That is, `read2` can be reached from `read1` without passing through diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll index 1856d03c119..74394150ca3 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll @@ -212,63 +212,6 @@ private predicate hasVariableReadWithCapturedWrite( variableReadActualInOuterScope(bb, i, v, scope) } -pragma[noinline] -deprecated private predicate adjacentDefReadExt( - Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2, SsaInput::SourceVariable v -) { - Impl::adjacentDefReadExt(def, _, bb1, i1, bb2, i2) and - v = def.getSourceVariable() -} - -deprecated private predicate adjacentDefReachesReadExt( - Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2 -) { - exists(SsaInput::SourceVariable v | adjacentDefReadExt(def, bb1, i1, bb2, i2, v) | - def.definesAt(v, bb1, i1) - or - SsaInput::variableRead(bb1, i1, v, true) - ) - or - exists(BasicBlock bb3, int i3 | - adjacentDefReachesReadExt(def, bb1, i1, bb3, i3) and - SsaInput::variableRead(bb3, i3, _, false) and - Impl::adjacentDefReadExt(def, _, bb3, i3, bb2, i2) - ) -} - -deprecated private predicate adjacentDefReachesUncertainReadExt( - Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2 -) { - adjacentDefReachesReadExt(def, bb1, i1, bb2, i2) and - SsaInput::variableRead(bb2, i2, _, false) -} - -/** Same as `lastRefRedef`, but skips uncertain reads. */ -pragma[nomagic] -deprecated private predicate lastRefSkipUncertainReadsExt(Definition def, BasicBlock bb, int i) { - Impl::lastRef(def, bb, i) and - not SsaInput::variableRead(bb, i, def.getSourceVariable(), false) - or - exists(BasicBlock bb0, int i0 | - Impl::lastRef(def, bb0, i0) and - adjacentDefReachesUncertainReadExt(def, bb, i, bb0, i0) - ) -} - -/** - * Holds if the read of `def` at `read` may be a last read. That is, `read` - * can either reach another definition of the underlying source variable or - * the end of the CFG scope, without passing through another non-pseudo read. - */ -pragma[nomagic] -deprecated predicate lastRead(Definition def, VariableReadAccessCfgNode read) { - exists(Cfg::BasicBlock bb, int i | - lastRefSkipUncertainReadsExt(def, bb, i) and - variableReadActual(bb, i, _) and - read = bb.getNode(i) - ) -} - cached private module Cached { /** From 61f1ef877fdd34c245696d5f4fc8fe12619e4884 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 23 Apr 2026 11:29:10 +0200 Subject: [PATCH 202/208] Swift: Remove deprecated references to deprecated shared code --- swift/ql/lib/codeql/swift/dataflow/Ssa.qll | 5 ----- 1 file changed, 5 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/Ssa.qll b/swift/ql/lib/codeql/swift/dataflow/Ssa.qll index 4f0754ff590..b66eaedef73 100644 --- a/swift/ql/lib/codeql/swift/dataflow/Ssa.qll +++ b/swift/ql/lib/codeql/swift/dataflow/Ssa.qll @@ -155,11 +155,6 @@ module Ssa { read2 = bb2.getNode(i2) ) } - - cached - deprecated predicate lastRefRedef(BasicBlocks::BasicBlock bb, int i, Definition next) { - SsaImpl::lastRefRedef(this, bb, i, next) - } } cached From 7b897add220733ae86c7abc0770fee5ee25b7afc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 09:50:34 +0000 Subject: [PATCH 203/208] Initial plan From 081ad03b4bb72685b2897c333d85bf08c0d762fc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:04:52 +0000 Subject: [PATCH 204/208] Add Hibernate SQL injection sink tests Agent-Logs-Url: https://github.com/github/codeql/sessions/2e7aecca-63ea-489f-8b87-4cc557655919 Co-authored-by: owen-mc <62447351+owen-mc@users.noreply.github.com> --- .../CWE-089/semmle/examples/Hibernate.java | 21 +++++++++++++++++++ .../security/CWE-089/semmle/examples/options | 2 +- .../hibernate-5.x/org/hibernate/Session.java | 10 +++++++++ .../org/hibernate/SharedSessionContract.java | 11 ++++++++++ .../org/hibernate/query/Query.java | 4 ++++ .../org/hibernate/query/QueryProducer.java | 10 +++++++++ 6 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java create mode 100644 java/ql/test/stubs/hibernate-5.x/org/hibernate/Session.java create mode 100644 java/ql/test/stubs/hibernate-5.x/org/hibernate/SharedSessionContract.java create mode 100644 java/ql/test/stubs/hibernate-5.x/org/hibernate/query/Query.java create mode 100644 java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java b/java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java new file mode 100644 index 00000000000..c681b17d987 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java @@ -0,0 +1,21 @@ +import org.hibernate.Session; +import org.hibernate.SharedSessionContract; +import org.hibernate.query.QueryProducer; + +public class Hibernate { + + public static String source() { return null; } + + public static void test( + Session session, SharedSessionContract sharedSessionContract, QueryProducer queryProducer) { + session.createQuery(source()); // $ sqlInjection + session.createSQLQuery(source()); // $ sqlInjection + + sharedSessionContract.createQuery(source()); // $ sqlInjection + sharedSessionContract.createSQLQuery(source()); // $ sqlInjection + + queryProducer.createNativeQuery(source()); // $ sqlInjection + queryProducer.createQuery(source()); // $ sqlInjection + queryProducer.createSQLQuery(source()); // $ sqlInjection + } +} diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/options b/java/ql/test/query-tests/security/CWE-089/semmle/examples/options index 8f5ee4913cc..223a083bc76 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/options +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/couchbaseClient:${testdir}/../../../../../stubs/springframework-5.8.x:${testdir}/../../../../../stubs/apache-hive:${testdir}/../../../../../stubs/jakarta-persistence-api-3.2.0 --release 21 +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/couchbaseClient:${testdir}/../../../../../stubs/springframework-5.8.x:${testdir}/../../../../../stubs/apache-hive:${testdir}/../../../../../stubs/jakarta-persistence-api-3.2.0:${testdir}/../../../../../stubs/hibernate-5.x --release 21 diff --git a/java/ql/test/stubs/hibernate-5.x/org/hibernate/Session.java b/java/ql/test/stubs/hibernate-5.x/org/hibernate/Session.java new file mode 100644 index 00000000000..80b3553e70b --- /dev/null +++ b/java/ql/test/stubs/hibernate-5.x/org/hibernate/Session.java @@ -0,0 +1,10 @@ +package org.hibernate; + +import org.hibernate.query.Query; + +public interface Session extends SharedSessionContract { + + Query createQuery(String queryString); + + Query createSQLQuery(String queryString); +} diff --git a/java/ql/test/stubs/hibernate-5.x/org/hibernate/SharedSessionContract.java b/java/ql/test/stubs/hibernate-5.x/org/hibernate/SharedSessionContract.java new file mode 100644 index 00000000000..dbc19674971 --- /dev/null +++ b/java/ql/test/stubs/hibernate-5.x/org/hibernate/SharedSessionContract.java @@ -0,0 +1,11 @@ +package org.hibernate; + +import org.hibernate.query.Query; +import org.hibernate.query.QueryProducer; + +public interface SharedSessionContract extends QueryProducer { + + Query createQuery(String queryString); + + Query createSQLQuery(String queryString); +} diff --git a/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/Query.java b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/Query.java new file mode 100644 index 00000000000..8aa3f169bf2 --- /dev/null +++ b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/Query.java @@ -0,0 +1,4 @@ +package org.hibernate.query; + +public interface Query { +} diff --git a/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java new file mode 100644 index 00000000000..cfb3879422a --- /dev/null +++ b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java @@ -0,0 +1,10 @@ +package org.hibernate.query; + +public interface QueryProducer { + + Query createNativeQuery(String sqlString); + + Query createQuery(String queryString); + + Query createSQLQuery(String queryString); +} From 14efb4502bdbe70a3c97143502e6642b0a38e0ed Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 23 Apr 2026 12:10:09 +0100 Subject: [PATCH 205/208] C++: Fix join in getVariable. --- .../raw/internal/TranslatedAssertion.qll | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedAssertion.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedAssertion.qll index 55818b02858..2c3cb3b2eab 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedAssertion.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedAssertion.qll @@ -114,6 +114,7 @@ private predicate parseArgument(string arg, string s, int i, Opcode opcode) { private Element getAChildScope(Element scope) { result.getParentScope() = scope } +pragma[nomagic] private predicate hasAVariable(MacroInvocation mi, Stmt s, Element scope) { assertion0(mi, s, _) and s.getParent() = scope @@ -121,15 +122,32 @@ private predicate hasAVariable(MacroInvocation mi, Stmt s, Element scope) { hasAVariable(mi, s, getAChildScope(scope)) } -private LocalScopeVariable getVariable(MacroInvocation mi, int i) { - exists(string operand, string arg, Stmt s | +private predicate hasParentScope(Variable v, Element scope) { v.getParentScope() = scope } + +pragma[nomagic] +private predicate hasAssertionOperand(MacroInvocation mi, int i, Stmt s, string operand) { + exists(string arg | assertion0(mi, s, arg) and - parseArgument(arg, operand, i, _) and + parseArgument(arg, operand, i, _) + ) +} + +pragma[nomagic] +private predicate hasNameAndParentScope(string name, Element scope, Variable v) { + v.hasName(name) and + hasParentScope(v, scope) +} + +pragma[nomagic] +private LocalScopeVariable getVariable(MacroInvocation mi, int i) { + exists(string name, Stmt s | + hasAssertionOperand(mi, i, s, name) and result = - unique(Variable v | + unique(Variable v, Element parentScope | + hasAssertionOperand(mi, _, s, name) and v.getLocation().getStartLine() < s.getLocation().getStartLine() and - hasAVariable(mi, s, v.getParentScope()) and - v.hasName(operand) + hasAVariable(mi, s, parentScope) and + hasNameAndParentScope(name, parentScope, v) | v ) From 25d232b81523036f25089a7a4c9923590e5180c8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 13:41:03 +0000 Subject: [PATCH 206/208] Model additional Hibernate query sinks Agent-Logs-Url: https://github.com/github/codeql/sessions/fc2c7f71-3493-4bf7-9136-34571a1d4b47 Co-authored-by: owen-mc <62447351+owen-mc@users.noreply.github.com> --- java/ql/lib/ext/org.hibernate.query.model.yml | 3 +++ .../security/CWE-089/semmle/examples/Hibernate.java | 4 ++++ .../hibernate-5.x/org/hibernate/query/MutationQuery.java | 4 ++++ .../hibernate-5.x/org/hibernate/query/QueryProducer.java | 8 ++++++++ .../hibernate-5.x/org/hibernate/query/SelectionQuery.java | 4 ++++ 5 files changed, 23 insertions(+) create mode 100644 java/ql/test/stubs/hibernate-5.x/org/hibernate/query/MutationQuery.java create mode 100644 java/ql/test/stubs/hibernate-5.x/org/hibernate/query/SelectionQuery.java diff --git a/java/ql/lib/ext/org.hibernate.query.model.yml b/java/ql/lib/ext/org.hibernate.query.model.yml index bb6232c1fcd..5eccefd0dfa 100644 --- a/java/ql/lib/ext/org.hibernate.query.model.yml +++ b/java/ql/lib/ext/org.hibernate.query.model.yml @@ -4,5 +4,8 @@ extensions: extensible: sinkModel data: - ["org.hibernate.query", "QueryProducer", True, "createNativeQuery", "", "", "Argument[0]", "sql-injection", "manual"] + - ["org.hibernate.query", "QueryProducer", True, "createNativeMutationQuery", "", "", "Argument[0]", "sql-injection", "manual"] - ["org.hibernate.query", "QueryProducer", True, "createQuery", "", "", "Argument[0]", "sql-injection", "manual"] + - ["org.hibernate.query", "QueryProducer", True, "createMutationQuery", "", "", "Argument[0]", "sql-injection", "manual"] + - ["org.hibernate.query", "QueryProducer", True, "createSelectionQuery", "", "", "Argument[0]", "sql-injection", "manual"] - ["org.hibernate.query", "QueryProducer", True, "createSQLQuery", "", "", "Argument[0]", "sql-injection", "manual"] diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java b/java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java index c681b17d987..ae61f60e0d0 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/Hibernate.java @@ -15,7 +15,11 @@ public class Hibernate { sharedSessionContract.createSQLQuery(source()); // $ sqlInjection queryProducer.createNativeQuery(source()); // $ sqlInjection + queryProducer.createNativeMutationQuery(source()); // $ sqlInjection queryProducer.createQuery(source()); // $ sqlInjection + queryProducer.createMutationQuery(source()); // $ sqlInjection + queryProducer.createSelectionQuery(source()); // $ sqlInjection + queryProducer.createSelectionQuery(source(), Object.class); // $ sqlInjection queryProducer.createSQLQuery(source()); // $ sqlInjection } } diff --git a/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/MutationQuery.java b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/MutationQuery.java new file mode 100644 index 00000000000..cb7004932e0 --- /dev/null +++ b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/MutationQuery.java @@ -0,0 +1,4 @@ +package org.hibernate.query; + +public interface MutationQuery { +} diff --git a/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java index cfb3879422a..364dc30dd63 100644 --- a/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java +++ b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/QueryProducer.java @@ -4,7 +4,15 @@ public interface QueryProducer { Query createNativeQuery(String sqlString); + MutationQuery createNativeMutationQuery(String sqlString); + Query createQuery(String queryString); + MutationQuery createMutationQuery(String hqlString); + + SelectionQuery createSelectionQuery(String hqlString); + + SelectionQuery createSelectionQuery(String hqlString, Class resultType); + Query createSQLQuery(String queryString); } diff --git a/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/SelectionQuery.java b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/SelectionQuery.java new file mode 100644 index 00000000000..9eb9fddf596 --- /dev/null +++ b/java/ql/test/stubs/hibernate-5.x/org/hibernate/query/SelectionQuery.java @@ -0,0 +1,4 @@ +package org.hibernate.query; + +public interface SelectionQuery { +} From 083909ee3bba9063db1120f63f6cf0acfc63ec7f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Apr 2026 14:10:29 +0000 Subject: [PATCH 207/208] Add Java change note for Hibernate sinks Agent-Logs-Url: https://github.com/github/codeql/sessions/41769e74-a435-4aaf-b5f7-92060f6cd84e Co-authored-by: owen-mc <62447351+owen-mc@users.noreply.github.com> --- .../change-notes/2026-04-23-hibernate-queryproducer-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2026-04-23-hibernate-queryproducer-sinks.md diff --git a/java/ql/lib/change-notes/2026-04-23-hibernate-queryproducer-sinks.md b/java/ql/lib/change-notes/2026-04-23-hibernate-queryproducer-sinks.md new file mode 100644 index 00000000000..018ce8d348e --- /dev/null +++ b/java/ql/lib/change-notes/2026-04-23-hibernate-queryproducer-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added `sql-injection` sink models for the Hibernate `org.hibernate.query.QueryProducer` methods `createNativeMutationQuery`, `createMutationQuery`, and `createSelectionQuery`. From be8c35ad8cd0f49dd62642dc5a35ef03e72e24bc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 25 Apr 2026 00:39:28 +0000 Subject: [PATCH 208/208] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 2 +- java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index 60a20a483f1..1fc91c3c849 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -217,7 +217,7 @@ org.exolab.castor.xml,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, org.fusesource.leveldbjni,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, org.geogebra.web.full.main,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,, org.gradle.api.file,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -org.hibernate,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,,, +org.hibernate,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,,,,, org.ho.yaml,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,,,,,,,,,,,, org.influxdb,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, org.jabsorb,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index a7f940ad571..5a3c8f16894 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -22,7 +22,7 @@ Java framework & library support `Google Gson `_,``com.google.gson``,,52,,,,,,, `Google Guava `_,``com.google.common.*``,,730,43,9,,,,, `Groovy `_,"``groovy.lang``, ``groovy.text``, ``groovy.util``, ``org.codehaus.groovy.control``",,,33,,,,,, - `Hibernate `_,``org.hibernate``,,,7,,,7,,, + `Hibernate `_,``org.hibernate``,,,10,,,10,,, `JBoss Logging `_,``org.jboss.logging``,,,324,,,,,, `JSON-java `_,``org.json``,,236,,,,,,, `Jackson `_,``com.fasterxml.jackson.*``,,9,2,2,,,,, @@ -41,5 +41,5 @@ Java framework & library support `Thymeleaf `_,``org.thymeleaf``,,2,2,,,,,, `jOOQ `_,``org.jooq``,,,1,,,1,,, Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",108,6034,757,131,6,14,18,,185 - Totals,,363,26381,2681,404,16,134,33,1,409 + Totals,,363,26381,2684,404,16,137,33,1,409